GRAVEWRIGHT / Developer docs

Understand the platform. Build your own tools.

Build real modules and systems: start with a complete tutorial, install its project and verify the result. Then explore the API and contracts.

85 guides0.3.1English / Português

A practical starting point

  1. 01Learn to build modules and systems
  2. 02Create, install and update your first module
  3. 03How to create a complete original system package

Implementation tutorials 29

Implementation tutorials

Learn to build modules and systems

Choose what you want to build and follow it from the first file to a working tabletop feature.

Implementation tutorials

Create, install and update your first module

From an empty folder to a table button, with complete files, installation, activation and a second version.

Implementation tutorials

All extension capabilities and where to implement them

An explicit method-by-method map to projects, local helpers, surfaces, server integrations and release limits.

Implementation tutorials

How to create a complete original system package

One installable ZIP with working actor/token sheets, item types, stored initiative and three original compendium packs.

Implementation tutorials

How to create a journal module

Build, install and run a normal module that creates private journals and appends saved GM session drafts.

Implementation tutorials

Create a journal from a module, from scratch

Use the public create operation from a table.interface form and open the resulting private document.

Implementation tutorials

How to create a module that acts on a sheet

Start with an empty folder and ship a working rename action on existing actor and token sheets.

Implementation tutorials

How to build and replace a complete system sheet

Use the working Example Expedition package, install it, create actors and verify linked and independent tokens.

Implementation tutorials

How to create a compendium module

Build the complete package from an empty directory, install it and verify its original content.

Implementation tutorials

How to include compendiums in a system

Build the complete package from an empty directory, install it and verify its original content.

Implementation tutorials

How to create a scene tools module

Build a working module to inspect scene layers, edit metadata, manage folders, draw a native door and broadcast a test scene.

Implementation tutorials

How to create a token tools module

Place, move, duplicate, configure and remove tokens; control native vision/visibility and timed conditions.

Implementation tutorials

How to create a combat tools module

Build a working encounter laboratory covering participants, initiative, order, flags, turns, rounds and cleanup.

Implementation tutorials

How to build item and inventory tools

Create, organize, duplicate, share and edit original items with native revisions and permissions.

Implementation tutorials

How to build deck and card tools

Create reusable deck definitions, draw, reveal, move, transfer and recover cards with real ownership.

Implementation tutorials

How to build scene audio and soundtrack tools

Configure native tracks, playlists, spatial sources, scene voices and timed scores with the correct revisions.

Implementation tutorials

How to build chat, dice and ready-check tools

Create a working module that sends messages, publishes rolls, moderates chat, searches documents and updates readiness.

Implementation tutorials

How to create quest automation and quest-board actions

Create and read a real quest, advance objectives, assign actors and manage every board relationship.

Implementation tutorials

How to create, draw and reset weighted roll tables

Build an original journal roll table, edit a weight without losing data and publish native draws with or without replacement.

Implementation tutorials

How to create, organize and share journal documents

Build native rich diaries, preserve pages when editing, organize folder trees and control access and presentations.

Implementation tutorials

Build an actor-directory module

Create, organize, rename and authorize actors using system-owned types.

Implementation tutorials

Persist module settings safely

Implement personal, shared and browser-local JSON with revisions and cleanup.

Implementation tutorials

Upload and use module and campaign files

Use File/Blob, actor images, card assets, native file providers and downloads.

Implementation tutorials

Translate a module and react to changes

Read package files, format translated UI and subscribe without leaking listeners.

Implementation tutorials

Maintain a module using the original host.call SDK

Concrete actor/token DTOs, opaque revisions and the remaining multipart/local operations.

Implementation tutorials

Build Customize forms and native module windows

A complete personal settings form with migration, CAS, translations, modal lifecycle and preferences mounting.

Implementation tutorials

Create a trusted Django integration and server hooks

Complete Python app with authenticated routes, native mutations and after-commit signals.

Implementation tutorials

How to create and activate an installation language package

Package six original interface strings, install globally, choose a personal locale and verify English fallback.

Implementation tutorials

How to version, sign and distribute a module

Prepare immutable ZIP releases, verify Ed25519 catalog records and understand installation, activation and revocation.

Examples by kind 29

Examples by kind

Complete examples by kind

Choose a contract and jump to complete code, downloadable files, expected behavior and validation.

Examples by kind

Browser module: a campaign summary

A complete package with a table action, authorized API read and native modal.

Examples by kind

System package: an editable character sheet

A single original system package with actor types, a complete minimal sheet and revision-aware saving.

Examples by kind

Language package: Portuguese and Spanish catalogs

A minimal installation-wide language package with valid catalogs, activation and English fallback.

Examples by kind

Django package: an owner-only server endpoint

A trusted server app with a valid manifest, AppConfig, URL and permission-checked read view.

Examples by kind

actor.directory: Readable actor counter

Count actors whose sheets the current member may open, and update after actor changes.

Examples by kind

actor.sheet: Actor sheet revision inspector

Read the real actor sheet and display its name, sheet revision and top-level data keys beneath the native sheet.

Examples by kind

token.sheet: Linked or independent token inspector

Read the token’s own sheet context, so an independent snapshot is never replaced by actor data.

Examples by kind

item.directory: Item counts by type

Group readable items by their package-owned type, without assuming an RPG catalog.

Examples by kind

item.sheet: Item data inspector

Show the actual item name, type, version and system-owned data as safe JSON below its native editor.

Examples by kind

scene.directory: Scene broadcast status

Distinguish the scene broadcast to players from the scene the GM is navigating.

Examples by kind

scene.controls: Scene information control

Add a working button that reads the mounted scene and opens its dimensions and grid in the native modal.

Examples by kind

scene.overlay: Scene center marker

Mark the scene center and keep its position correct under pan and zoom without capturing pointer input.

Examples by kind

chat.log: Visible chat statistics

Count only the messages returned by the authorized history and report their visible authors.

Examples by kind

combat.tracker: Current turn summary

Show encounter activity, round and the current visible combatant, without implementing initiative rules.

Examples by kind

journal.sheet: Journal outline

Show the journal title, type and only the section titles in its authorized projection.

Examples by kind

preferences: Persistent personal density preference

Save a personal compact/comfortable preference with compare-and-swap revisions, and make a concurrent conflict visible.

Examples by kind

table.interface: Authorized document search

Search table documents from a workspace panel and render their names, kinds and snippets as text.

Examples by kind

Search: all 7 kinds and the empty filter

Eight concrete browser functions, quest versus journal categories, authorized recents and validation.

Examples by kind

Actor images: portrait and token

Two complete File-picker mount functions using the actual multipart host.call operation.

Examples by kind

Compendium entries: all five kinds

Capture actor, item, journal, scene and deck resources with authorized reads and GM imports.

Examples by kind

Compendium packs: 3 installed and 7 local types

Complete original JSON for every pack type, exact manifest restrictions and downloadable fixtures.

Examples by kind

Blueprint examples for every object kind

Choose a complete recipe for door, lever, torch or region, then inspect execution/data connections and all 44 node types.

Examples by kind

Blueprint kind door: open, close and preserve a lock

A complete v2 door graph that opens a closed door, closes an open door and leaves a locked door unchanged.

Examples by kind

Blueprint kind lever: a two-state switch and an Empty Object

A complete off/on toggle, with the same kind reused by an image-free private controller.

Examples by kind

Blueprint kind torch: turn the mechanism and set the flame

A composed torch example with independent state and flame actions in both toggle branches.

Examples by kind

Blueprint kind region: a pressure plate with first/last occupancy

Complete enter/exit graphs that open a referenced door on first arrival and close it on last departure.

Examples by kind

Connection kinds: execution and data, a complete graph

Trace a lever graph that reads a state through typed data edges and runs actions through ordered execution edges.

Examples by kind

All 44 Blueprint node types, with complete examples

Concrete configurations and downloadable validated graphs for every NODE_TYPES entry, from event to cooldown.

Project reference 19

Project reference

Getting started

Installation, prerequisites, first launch and source checkout setup.

Project reference

Architecture

Runtime boundaries, domain services, permissions and persistence.

Project reference

Code map

Find the files and domain responsible for each application workflow.

Project reference

Development

Development workflow, migrations, generated contracts and release preparation.

Project reference

Public API reference

Python API, browser domain API, SDK operations, payloads and error contracts.

Project reference

Systems and modules

Installable packages, system declarations, browser lifecycle, signing and SDK contracts.

Project reference

Frontend architecture

Jinja2, Datastar, native JavaScript, PixiJS, styles and asset preparation.

Project reference

Testing

Django, node:test, Playwright and native validation with disposable data.

Project reference

Configuration

Installation-local configuration, execution profiles and environment settings.

Project reference

Deployment

Hosting, security, reverse proxies, backups and operational recovery.

Project reference

Windows installer and Runner

Native Windows preparation, portable tools, startup and recovery.

Project reference

Linux installer and Runner

Native Linux preparation, portable tools, dependencies and platform limits.

Project reference

macOS installer and Runner

Native macOS preparation, portable tools, startup and platform support.

Project reference

Map Builder reference

Builder workflows, Smart Objects, automation, supported limits and developer contracts.

Project reference

Universal VTT import and export

Import/export workflows, coordinates, limits and authorization.

Project reference

Application workflow reference

Complete project guide to campaign preparation and tabletop tools.

Project reference

Ethical module porting

Licenses, content rights and mapping an integration to the owning domains.

Project reference

Contributing

Contribution conventions, licensing, review and validation requirements.

Project reference

Licensing

Project licensing, independent module permission and third-party obligations.

How to use AI 8