HomeDeveloper docsBlueprint examples for every object kind
Examples by kind 4 min read

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.

Choose an object kind

A Smart Object document has four accepted blueprint.kind values. A node’s type and a connection’s kind are separate contracts. This guide covers each with complete JSON, editor steps, expected results, validation and a task-specific AI prompt.

blueprint.kindNative statesStarting eventsComplete example
doorclosed, open, lockedinteract, destroyDoor toggle with preserved lock
leveroff, oninteract, presence:enter, presence:exit, destroyVisible switch and Empty Object
torchoff, oninteract, presence:enter, presence:exit, destroyTurn and set flame
regionempty, occupiedpresence:enter, presence:exit, destroyFirst-entry/last-exit pressure plate

Every kind can also receive a valid named signal:<name> graph. A region has no direct interact event. An Empty Object is a lever without an image, private to the GM. A composed torch owns a linked native light; there is no Blueprint kind named light.

Understand the three vocabularies

FieldValuesExample
blueprint.kinddoor, lever, torch, regionThe torch owns off/on mechanism states
edge.kindexecution, dataFlow and typed values
node.type44 validated node typesOne complete graph per node type

The editor may label an event onInteract, onAreaEnter or onAreaExited. Stored graph/event IDs are interact, presence:enter and presence:exit. Use the serialized IDs shown in the examples. Do not recreate retired change or state-specific event graphs.

Real Smart Object editor showing a door graph, a light, a message and a state action

Existing Gravewright 0.3.0 screenshot, English interface. It shows the editor’s controls; the downloadable recipes below define their own graphs.

Get the examples

These JSON files describe the stored Blueprint v2 subdocument. They are development fixtures, not an installable module, a complete Builder project or a campaign archive. Recreate the nodes in the editor, or use the fixtures in isolated contributor tests. This guide does not assume a JSON import button in the Smart Object editor.

Download the complete example bundle or the validator. Every example uses original synthetic data. The host's internal Python evaluator is for source development; browser modules must use the public SDK.

Run the fixture in a development installation

Extract the example bundle to data/blueprint-examples inside a disposable checkout of the documented host. From the checkout root, run:

sh
uv run --locked python data/blueprint-examples/check-examples.py --host .

The checker configures an in-memory database, blocks database queries and calls the real clean_blueprint and evaluate_graph functions. It validates all four object kinds, both connection kinds and all 44 node types, including requestRoll and setQuestStatus. It checks both roll visibilities, all six quest statuses and continuing execution without drawing dice or changing journals. This verifies document shape and predicted actions. Test behavior is still needed to check real targets, authorization and the complete server chain.

Safe starting assumptions

  • An event only starts a connected execution path. It does not automatically toggle, change artwork or set a flame.

  • Conditions and properties read the state at the beginning of the event. Use explicit actions for changes.

  • Region occupancy comes from authoritative token commands and eligible presence filters.

  • Simulate predicts one graph locally. Test behavior checks the server chain with rollback. Generation/update and player activation are separate operations.

  • Source definitions and graph links remain GM-only. A player sees the authorized resulting presentation.

How to use AI to choose a kind

text
I am targeting Gravewright 0.3.1, source 0e91fef. Read blueprints.py and the Map Builder guide. My behavior is: [describe the trigger, visible object, state changes, targets and audience]. Choose among door/lever/torch/region and explain why. Start from the matching complete recipe. Preserve actual state and event IDs, execution/data ports and player permissions. Return complete JSON plus editor instructions and meaningful GM/player tests. Distinguish Empty Object from a new kind and composed torch from a light resource.

Module package kinds · Map Builder reference