Last Update 10/05/2026:12:39

Dungeon Master's Guide

The Lost Realms · Conceive · Build · Edit · Run

A world begins as a single idea and ends as a place people can walk through. This guide walks that whole road — from the first spark, through the World Builder and every tab of the World Editor, to the art that gives it a face.

Getting StartedAbout this guide

This is the author's companion to The Lost Realms. Where the Player's Handbook teaches someone how to play a world and the in-app Field Guide is a reference to every button, this guide is a progressive walkthrough of making worlds: how to conceive one, plan it, generate it with the World Builder, and then shape every detail in the World Editor.

It is organised the way you actually work, in five parts:

I · Conceiving

The idea, the pillars, and a plan — before you touch a single tool.

II · The World Builder

Describe a world in a short form and have the Game Master forge it whole.

III · The World Editor

A section per tab — build, edit, and manage every data object by hand.

IV · Prompt & Image

Art styles, per-object prompts, providers, and the ✨ that writes prompts for you.

V · Running & Growing

Test with debug commands, then grow a world that's already in play.

A living referenceScreenshots throughout are drawn from the built-in demo world, The Lost Realms, so what you see here is exactly what your Editor will look like with content in it. Where a topic is covered elsewhere in more depth, this guide points you there rather than repeating it — see Where to go next.

Getting StartedThe DM & the GM — two different masters

Everything in this guide rests on one distinction. There are two "masters" in The Lost Realms, and they are not the same thing:

DM Dungeon Master

You. The human author. You conceive the world, generate it, and hand-tune every place, person, quest, and rule in the Editor. You decide what exists.

GM Game Master

The AI engine (Claude). At play it narrates, resolves actions, and runs your world within the rules you set. It never invents canon you didn't authorise — it works from your world data.

The two meet constantly while you build. Almost every Editor tab has a GM request box at the bottom: you type an instruction in plain language ("add a grizzled blacksmith named Doran to the square") and the GM authors the underlying data for you. The ✨ buttons work the same way for prompts. So in the Editor you are directing the GM as a co-author; at play you are handing it the keys. Keep the roles straight and the rest of this guide reads cleanly.

Also worth readingThe Field Guide's Part III · The Game Master explains what the GM sees each turn (its "dossier"/system prompt) and the exact JSON vocabulary it speaks. Understanding that helps you predict how your authored data will actually behave in play.
Judgement vs. resolution — where the GM stops and the engine beginsAt play the GM (the AI) is joined by a third, silent hand: the deterministic engine — the app's own code that rolls the dice and does the arithmetic. The line between them is worth internalising, because it governs how your authored rules behave. The GM owns judgement: it reads the player's intent, what your monsters and NPCs do, and what the room affords, and rules on the things only interpretation can settle — whether a check or a saving throw is even called for this turn, which attribute governs it, how hard it is, and whether a situational ability truly fits the moment. The engine owns resolution: once the GM has ruled, the player rolls and the engine computes the total and grades it off the character's live sheet — nothing fudged, nothing forgotten. A saving throw is the cleanest example: the GM decides if and when a save happens and which abilities bear on it; the engine rolls the d20, folds in the character's saving-throw bonuses, and settles the outcome. So when you author a bonus like "+2 to saving throws · against fear" (below, and on any race, item, or ability), you are not handing the GM a number to remember — you are giving the engine a number to apply, the instant the GM judges the fear real. Author the mechanic and its condition; trust the split to enforce it.

Getting StartedThe build workflow, end to end

A world moves through four stages. You can loop back to any of them at any time — worlds are never "finished" — but this is the natural order, and it's the order of this guide.

  1. Conceive. Settle the tone, theme & premise, art style, and the rules of reality. Sketch the regions, cast, and an opening thread. Part I
  2. Build. Open the World Builder from the login screen, describe the world, and press Generate World. The GM forges places, people, lore, and a starter quest as one editable JSON world. Part II
  3. Edit. Open the world in the World Editor and refine it tab by tab — rooms, entities, classes, skills, items, magic, quests, factions, regions. Part III
  4. Dress & run. Generate art from your prompts, then playtest with the DM debug commands, and grow the world as play reveals what it needs. Parts IV–V
Everything is dataUnder the hood a world is a single JSON object — rooms, entities, items, classes, skills, spells, quests, encounters, factions, races, regions, plus its framing (name, tone, theme, artStyle, rules, prologue). Every tool in this guide is just a friendly way to edit that object. You can always see and hand-edit the raw JSON in the World Builder, and export the whole thing to a file.
Part I · Conceiving a World

ConceivingThe seed of a world

Before any tool, decide what the place is. Five choices shape everything the GM does downstream, and all five are things you'll type into the World Builder — so it pays to have opinions about them first.

The choiceWhat it steersExample
ToneThe emotional register. Drives narration voice and, crucially, the art-style presets offered to you.Gothic mystery · grimdark · whimsical folklore
Theme & PremiseThe setting, the central conflict, the hook. The single most important field — the richer it is, the richer the generated world."A drowned archipelago ruled by merchant-priests, where the tide hides a sleeping god."
Art StyleOne line of visual direction, prepended to every image the world generates. Sets the whole look."moody oil painting, brine-dark palette, candlelit highlights"
World RulesHow reality works — magic, physics, death. Fed to the GM every turn, so it keeps play consistent."Tide-magic is real but bound to the moon and costly; the drowned do not always stay drowned."
PrologueThe opening backdrop the player reads as they begin. Canon the GM honours."The bells of Saltmarrow have not rung in a hundred tides…"

You do not have to write all five yourself. The World Builder can Suggest a premise, Suggest an art style derived from your tone and theme, and ✨ Generate both the World Rules and the Prologue from what you've already written. But the more you bring to Theme & Premise, the more the world will feel like yours rather than a default.

Tone firstPick the Tone early. It's the one field that changes the art-style presets the app offers you, and it colours how the GM writes World Rules and the Prologue. Everything else can be iterated; tone is the frame you hang it all on.

ConceivingDesign pillars — the questions worth answering

A premise is a sentence; a pillar is a decision you'll lean on a hundred times. Before you build, answer these — even roughly. They keep the generated world coherent and give you a yardstick for every later edit ("does this fit?").

What is at stake?

The central tension the opening quest pulls on. A curse, a debt, a missing person, a rising power. It should be legible in the first room.

How does magic feel?

Common or feared? Free or costly? This is your World Rules. It decides whether a Mage is ordinary or a marvel — and whether the dead stay dead.

Who holds power?

Your factions. Even one named group (guards, a guild, a cult) gives NPCs allegiances and the player something to navigate.

Where does play start?

One vivid starting room the player can act in immediately — a village square, a ship's deck, a cell. Small and concrete beats sprawling and vague.

What can a newcomer do?

Your starting classes and their inherent skills. These set the verbs of play — fight, sneak, cast, track.

What does it look like?

Your Art Style. Decide it once, in one line, and every banner and portrait inherits it. See Part IV.

ConceivingPlanning the structure

The Game Master will happily forge an entire region from one paragraph, but the worlds that play best are the ones where you had a shape in mind. Think in terms of the objects the world is actually made of — the same objects you'll edit later — so your plan maps straight onto the tools.

Scale it to the Scope

The World Builder offers two scopes: Small (a compact 4–6 room starting area) and Medium (a fuller 8–12 room region). Start small. A tight, fully-dressed six-room world — every room described, every NPC given a secret, one clean quest — is far more satisfying than a sprawling one that's mostly stubs. You can always grow it later.

Sketch the moving parts

ObjectPlan for it by asking…Editor home
RegionsWhat are the 2–4 distinct areas (a village, a moor, a barrow)? They become named zones on the map.World › Geography › Regions
RoomsWhich locations can the player stand in, and how do they connect? Which are interiors of which?Rooms
CastWho lives here? Give each a want and a secret. Which are friendly NPCs, which are monsters?Entities
FactionsWhat organised powers pull on the cast? Even one gives the world politics.World › Factions
Classes & skillsWhat can the player be, and what can each kind of character do?Player
Loot & magicWhat's worth finding? Which items teach, heal, harm, or unlock?Items · Magic
The opening threadWhat one quest, in a few beats, pulls the player into the story?Quests
The demo world as a templateThe built-in Lost Realms is a Medium world you can dissect for scale: 13 rooms across a village, a moor, and a barrow; 12 beings (8 NPCs, 4 monsters); 4 classes, 3 races, 3 quests, one faction, and a full item catalogue. Aim lower than that for a first build.

ConceivingA pre-build checklist

When you can answer all of these, you're ready to open the World Builder:

  • ◈ A one-paragraph Theme & Premise with a hook.
  • ◈ A Tone chosen from the list (it sets your art presets).
  • ◈ A one-line Art Style — or a plan to Suggest one.
  • ◈ A sense of the World Rules: how magic and death work.
  • ◈ A starting location the player can act in on turn one.
  • ◈ 2–4 regions and a rough count of rooms per region.
  • ◈ 3–6 named NPCs, each with a want and a secret.
  • ◈ At least one faction.
  • ◈ One opening quest in 2–4 beats.
  • ◈ Your Claude API key (required) and any image/sound provider keys you want (optional).
Keys & safetyOnly the Claude API key is required — it powers the GM and every authoring handoff. Image and sound provider keys are optional. All keys live on your device (encrypted at rest) and are sent only to their provider; see the Field Guide's API key security.
Part II · The World Builder

The World BuilderOpening the World Builder

The World Builder turns a paragraph of intent into a whole, playable world. You reach it from the login screen.

The Lost Realms login screen
The login screen. Enter your character name and class, paste your Claude API Key, tick Dungeon Master to author, and use the button row for API Keys, Import Game, New World, and Edit World. Tick New Game to reveal the world picker.
  1. On the login screen, paste your Claude API Key (required for generation). Optionally click API Keys to add image/sound provider keys.
  2. Click New World. The World Builder opens as a full-page workspace titled World Builder.
  3. Describe the world (next section), Generate World, review, and Save or Export it.
  4. Back at login, tick New Game, choose your world, and Begin Your Journey.
Two ways to authorNew World builds a brand-new world from scratch. Edit World (enabled when you have a resumable save) opens your current world in the Editor as a draft — handy for tuning a world you're already playing. Both land you in the same tabbed Editor described in Part III.

The World BuilderThe concept form, field by field

The Builder is a single form. Fill in as much or as little as you like — only a Theme & Premise really matters; the rest can be suggested or generated.

The World Builder concept form
The World Builder. Name, Theme & Premise (with Suggest), Tone and Scope, Art Style (with Suggest) and tone Presets, World Rules and Prologue (each with ✨ Generate), the Auto-generate Lore/Unlocks option, and the Generate World button.
FieldWhat it isHelpers
World Name (optional)The world's title. Leave blank to let the GM name it. Also sets the browser-tab title as you type.—
ModelWhich Claude model forges this world, and writes the brief fields behind ✨ Generate and Suggest. Its own picker with its own memory — separate from the model that narrates play, which the player chooses on the login screen. The list runs Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8 (the default), Claude Sonnet 5.5 and Claude Sonnet 5. The Fables are here and nowhere else: they are slow and thorough, which is the wrong trade for a per-turn call and the right one for a one-shot build. Both are listed rather than the newer replacing the older, because a model id is a model and not a version — a world forged with Fable 5 is reproducible only by asking for Fable 5 again. On a vault-served realm the list is filtered to what the operator permits.
It is also a spending decision. The Fables bill at roughly twice the Opuses per token, and a world generation is one large call — the biggest single item a session produces. That is the trade the picker is really offering: a slower, more thorough forge for about double the money, once. Typing /usage in play opens a per-playthrough ledger of what the Game Master has actually cost, priced from the tokens the API reported rather than estimated.
Remembered for next time; shared with the Region Builder's own picker.
Theme & PremiseThe heart of the form: setting, tone, central conflict, notable places or people. The more vivid, the richer the world.Suggest drafts a full premise for you.
ToneA dropdown of 11 registers — Dark Fantasy, High Fantasy, Grimdark, Heroic Adventure, Gothic Mystery, Whimsical Folklore, Science Fantasy, Steampunk, Post-Apocalyptic, Science Fiction, Cyberpunk. Colours narration and selects the art-style presets.Changing it repopulates Presets.
ScopeSmall (4–6 rooms) or Medium (8–12 rooms). Sets how much the GM builds.—
Art StyleOne line of visual direction, prepended to every generated image. Sets the whole look.Suggest derives one from name, theme, tone & prologue.
PresetsReady-made art styles for the chosen Tone. Selecting one replaces the Art Style text.Populated from the Tone.
World Rules (optional)How reality works — magic, physics, death. Fed to the GM every turn so play stays consistent. Blank lets the GM infer from tone & theme.✨ Generate writes them from name, theme & tone.
PrologueThe opening backdrop shown to the player as they begin; canon the GM honours (and consistent with your Rules).✨ Generate / Create Prologue drafts it.
Include the built-in skillsA checkbox, ticked by default. Starts the world from the app’s standard skill set — Stealth, Herbalism, Athletics, Persuasion, Lockpicking, Arcana and the rest — rather than from nothing. The Game Master is shown that list so it reuses Lockpicking instead of inventing “Pick Lock” beside it. Untick it only when you want a skill set that is wholly this world’s.Costs no generation time — the skills are merged in afterwards, not written by the GM.
Generate new skillsA checkbox and a number (4–24, default 8). How many skills of this world’s own the Game Master authors. The first several are the built-in classes’ signature skills — the knacks each one begins the game knowing — and the rest are spent on the setting: its trades, its hazards, the arts its magic needs. Untick it and the classes draw their signatures from the built-in set instead.The count is a budget, not a quota per class.
Auto-generate Lore/UnlocksA checkbox. When ticked, the GM also writes image prompts, hidden lore, and lore-unlock conditions for every applicable place, person, and item as it forges the world.Adds time; richer result.
Auto-generate ErrandsA checkbox, with a Write Errands button beneath it. The small work of living in the world — a delivery carried, a root fetched, a stall minded — written onto the people who would actually ask for it. Ticked, it runs by itself once the world is forged. Unticked, the button runs it whenever you are ready and shows you what it wrote.A second GM pass over the finished world; the button is disabled until there is one.
Why both boxes are usually tickedThey are independent, and the interesting worlds tick both: the standard set underneath, so a player who reaches for Athletics or Persuasion finds them, and a handful of this world’s own on top. Unticking Include the built-in skills is a real choice with a real consequence — the world then holds only what the Game Master wrote, so anything its locks, traps or beings rely on has to be in that list. If the world has magic, one of them must be the casting skill itself; the Game Master is told so, because the engine gates every cast on that one skill and no other, however it is named. Unticking both asks for a world with no skills at all, which is not a thing that can exist — the form quietly re-ticks the first and says why.
Why errands are a separate passEverything else on this form is written during generation; errands are written after it, and the reason is worth knowing because it decides when to press the button. An errand is about the rest of the world — it sends you to another person, in another room, to fetch a thing out of the catalogue — and none of that exists yet at the moment the person asking is being invented. Run too early and you get errands naming people who were never created. So the pass reads the finished world: every ordinary person with their trade and the room they stand in, every room, and every item a reward could name. It is told to author errands where they make sense and nowhere else — a smith short of charcoal, yes; a revenant in a crypt, no — and to skip most people, because a world where everybody has a job for you is a notice board rather than a place. Press it twice and nothing is re-rolled: anyone who already has errands, whether from an earlier press or written by your own hand in Editor › Beings, is left exactly as they are.
Read the summary, not the JSONPressing Write Errands opens a dialog describing what landed: who was given what, their trade and where they stand, each errand’s steps and what it pays. Three parts are worth reading in order. Linked errands come first — two people carrying the two ends of one delivery, sharing one id, so whichever the player reaches first sets it going; check both ends read sensibly, one asking and one waiting. Then the people, for anyone who should not have been asked. Then, if it appears, Rewards naming an item this world does not have: those cannot be handed over at the table, so either give the item an entry or clear the ref and leave the note, which lets the Game Master author something on the spot instead. Nothing is saved until you press Save World, so a pass you dislike is undone by not saving it.
A good order to fill it inPick a Tone → write Theme & Premise (or Suggest) → Suggest an Art Style or pick a Preset → ✨ Generate the World Rules → Create Prologue. Now everything downstream is consistent before you generate.

The World BuilderGenerating the world

Press Generate World. The Game Master reads your whole form and forges one complete world — rooms and their exits, people and creatures, a starting item catalogue, lore, and an opening quest — as a single JSON object. A live timer shows elapsed time while it works (a full world can take a minute or two, especially with Auto-lore on).

Three things to know about how the GM writes it:

  • It is written in one pass, in order, and the order is load-bearing. The world comes back as a single JSON object written top to bottom, so where a thing sits in that object is when it was decided. The classes and the peoples come first; then the skills; then everything that leans on a skill — the items, the beings, the rooms with their locked doors and trapped chests, and the quests. That middle position is the whole reason it is worth naming: a skill has to already exist before a lock can set a picking difficulty against it or a being can be given a knack of this world's own, and it has to come after the peoples and classes to be tailored to them at all. A world whose skills were written last would have items and beings referring to a roster that did not exist when they were written.
  • Prompts are written style-free. Every banner, portrait, and item image prompt the GM authors is a plain subject description — no palette or medium words — because your world's Art Style is applied automatically at generation time. This is why one Art Style line can re-skin the entire world. See Part IV.
  • Your framing is stamped onto the world. The tone, art style, theme, and rules you chose are saved onto the world object so they survive export, import, and reload — and so the World › Profile and Art › Style tabs show them later.
Don't like it? Generate againGeneration is cheap to redo. Tweak the premise, change the tone, and regenerate until the bones feel right — then move to hand-editing. It's usually faster to regenerate a weak world than to fix it by hand.

The World BuilderThe editable World JSON

The generated world drops into the World JSON (editable) panel — a full code editor. Everything about the world is here and hand-editable: rename a room, fix a typo in a description, adjust a stat, delete an entity. Most of the time you'll prefer the friendlier tab-based Editor (Part III), but the raw JSON is always the ground truth, and it's the fastest way to make a surgical change or paste in content you've prepared elsewhere.

Keep it validThe JSON must stay well-formed — matched braces, quoted keys, no trailing commas. If an edit breaks it, saving or playing will report the error. When in doubt, make structural changes in the World Editor instead, which can't produce malformed JSON.

The World BuilderSave, export & import — and opening the Editor

The row of buttons under the JSON panel is how a draft becomes something you can play or share.

ButtonWhat it does
Save WorldStores the world in your browser's world library. It then appears in the login New Game world picker, ready to start a playthrough on.
Export WorldDownloads the world as a .json file (a versioned envelope), dungeon maps and all — tile art only if the checkbox beside it is ticked. Share it, back it up, or Import Game it from another device's login screen.
Import WorldLoads a world .json file back into the Builder for further editing.
World EditorOpens this draft in the full tabbed World Editor — the subject of Part III. This is where most authoring happens.
Back to LoginReturns to the login screen.
World vs. saved gameTwo different files travel through the app. A world (thelostrealms.world envelope) is a place with no history — importing one always starts a fresh game. A saved game is a playthrough with a character and progress — importing one continues it. The Field Guide covers portability in full.

The World BuilderFrom world to playthrough

Once a world is saved or imported, playing it is a login-screen choice:

  1. Tick New Game. A World dropdown appears.
  2. Choose your world — Default (the built-in Lost Realms) or any world you've saved. An imported file is used automatically.
  3. Set your character's Name and Class, keep Dungeon Master ticked if you want Editor access in-game, and press Begin Your Journey.

You now have two roads into the Editor: from a fresh world's World Editor button in the Builder, or in-game via the DM's Editor tab. Both open the same tools. Part III walks every one of them.

Part III · The World Editor

The World EditorThe Editor at a glance

The World Editor is a tabbed workspace over your world's data. Each tab manages one kind of object — rooms, entities, classes, items, quests, and so on. Learn its two recurring patterns once and every tab becomes familiar.

Getting in

Three doors lead to the same Editor:

  • DM In-game. While playing as a DM, the Editor tab across the top of the screen opens it over your live world — edits take effect immediately.
  • From the Builder. The World Editor button on a generated draft opens that draft for tuning before you save.
  • Edit World. The login Edit World button opens your current saved world as a draft (a detached, full-window editor).

Pattern 1 — the standard toolbar

Most tabs are a scrolling list of cards, one per object, topped by the same toolbar:

ControlWhat it does
Filter by nameLive-filters the cards. A ✕ clears it. (Rooms add a region dropdown; Spells/Skills also match school/stat; on NPCs, Monsters and Fauna it also matches what a being is carrying — type an item name to find whoever has it, and Export respects the same filter.)
ExportDownloads the currently listed objects (respecting the filter) to a JSON file.
ImportReads a JSON file and merges it — updating objects with the same id/name and adding the rest. Never duplicates.
Collapse all / Expand allFolds or unfolds every card. Your collapse state is remembered per tab.

Pattern 2 — the GM request box

At the foot of almost every tab is a text box and an Apply button. This is where you author. Type an instruction in plain language and the Game Master edits the data for you:

add a grizzled blacksmith named Doran to the square
give Willa a night-owl routine and a smuggling secret
raise the Mage's base INT to 20
remove the smuggling side quest

There is deliberately no "New" button — you create, change, and delete objects through this box (or by Import). A few things are true of every box:

  • It is strictly scoped. The Factions box only edits factions; ask it for a room and it politely declines. This keeps edits from bleeding across object types.
  • It is not a story turn — it authors data, it doesn't advance play or narrate.
  • It merges, it doesn't clobber. Editing an existing object by name updates its fields in place (and applies to every same-named instance).
  • The result — created / updated / removed — is reported on a status line, and every handoff is written to the Logs tab.

Cards themselves also carry inline editors: description boxes with a ✨ to have the GM (re)write them, portrait controls, and collapsible prompt and lore sections. The rest of Part III is a tour of what each tab manages and the fields each object carries. The tab order below matches the Editor's own.

Two tabs are directly hand-editableMost cards are changed through the GM box, but two things you edit directly: a class's base-stat grid (Player › Classes) and every image/description prompt field. Everything else flows through the GM or Import.

Editor · MapMap

Editor › Map · inner subtabs: World / Regions / Background

The Map tab is a viewer, not an editor — the play-map with the fog lifted, so you can see the whole world's shape at once. It has no card list, no toolbar, and no GM box.

The Editor Map tab
Editor › Map. A fully-revealed node graph of every room and its connections. Drag to pan, scroll to zoom, use the floating controls to zoom/reset, set a map background image, and click a room to inspect it.
  • World (inner subtab) — the realm graph. Zoom in/out and reset view with the floating controls; set or reset a decorative map background image; click a room node to open its detail popup, and click item/being icons on a node to inspect them.
  • Regions (inner subtab) — every region's map on one screen. This is a review surface, not where regions are authored: they are made, named, shaped and filed on World › Geography › Regions, which shows one at a time because that is the right shape for writing one. This board shows them all at once because the question it answers is about the set — do these look like sheets out of one atlas? — which you could not ask before without selecting each region in turn. A card per region with its map, its own map prompt, and Generate / Upload; the head counts how many are still to draw. The controls are the same ones the detail panel draws, so an edit made here is an edit made there.
  • Background (inner subtab) — the world map: a single 2D render of the world's exterior areas in their relative positions, with the world's name lettered across the top. Its own prompt and Generate / Upload, beside the shared Style.
One Style, every mapThe Style box appears on a region's card, on a district's card and on Map › Background, and all three are the same string. Choose a preset while looking at one region and you have restyled every other region's map, every district map and the world map — and while that box holds any text it replaces the world Art Style for all of them rather than adding to it. Empty it and the Art Style comes back. Map › Regions is the one screen that shows it where it belongs: once, above the set it governs.

Use the Map to sanity-check connectivity — dead ends, orphaned rooms, a region that isn't reachable — then jump to Rooms to fix exits.

Editor · WorldWorld — Profile, Chunks, Geography, Factions & Currency

Editor › World · inner subtabs include: Profile / Chunks / Geography / Factions / Currency / Settings

The World tab holds the world's framing and its highest-level structure, spread across several inner subtabs along its bottom edge. This section covers six of them — the ones that shape a world's identity, its geography, its money, and the people in it: Profile, Chunks, Geography (which holds Regions and Districts on a strip of its own), Factions, Currency and Settings. Two more are covered elsewhere: Evaluate compiles the world and reports what is provably wrong with it; because that belongs to testing rather than to authoring, it has its own section in Part V — see Evaluating & fixing a world. Culture is large enough to have outgrown a subsection and has a chapter of its own — see Building Cultures.

World › Profile

The world's identity, mirroring the World Builder form and pre-filled from the live world.

World Profile subtab
World › Profile. World Name, Theme & Premise, Tone, Scope, and Art Style are read-only here; World Rules and Prologue are editable and take effect immediately.
FieldEditable?Notes
World Name, Theme & Premise, Tone, Art StyleRead-onlySet at creation; shown for reference.
ScopeRead-onlyA label derived from room count (Small ≤6 · Medium ≤12 · Large), e.g. "Medium — 9 rooms".
World RulesYesWritten live to the world and fed to the GM every turn. Edit here to change how reality behaves mid-project.
PrologueYesThe opening backdrop / canon. Editable live.

World › Chunks

The world's merge-and-backup bench. Three jobs live here: grow the world with the GM, merge JSON "chunks" by hand, and export the whole world.

World Chunks subtab
World › Chunks. Have the GM author a new region (Generate with GM) or a large skeleton (Stub a large region), stitch it onto existing rooms, or paste a chunk to Merge by hand — plus Export World to back everything up.
  • Generate with GM — describe a new area ("westward, a haunted salt marsh") and the GM authors a full, fleshed region and merges it. The raw JSON also lands in the paste box for review.
  • Stub a large region — lays out 8–16 skeleton rooms (name + one-line description + exits, each flagged a stub) to be fleshed out later from the Rooms tab. Great for blocking out a big area fast.
  • Stitch onto — pick 1–4 existing rooms the new area should connect to (sent to the GM in full detail so it joins cleanly). Leave it unset to attach to the player's current room.
  • Paste & Merge — drop a hand-written or exported chunk into the box and Merge. Supported keys: rooms, items, entities, classes, lore, quests, encounters, and exitPatches (to graft new rooms onto old ones). Merging is additive — existing rooms and quests are never overwritten; catalogue collisions prompt you to overwrite or keep.
  • Export World — downloads the entire world as a versioned .json backup, dungeon maps included. Do this often.
  • Include dungeon tile art (the checkbox beside it) — off by default. Dungeon layouts always travel; the tiles you uploaded to dress them are pictures, and a fully dressed dungeon measured over two megabytes on its own. Unticked, a dungeon arrives on the built-in stone; ticked, exactly as you drew it. The answer is remembered, and it applies to Export Game too.

World › Geography

Geography is one tab with two faces, and its own strip of subtabs along the bottom: Regions and Districts. They are the same subject at two scales — a region is a stretch of the map with an outline and cardinal neighbours, a district is a named part of one — and they used to sit four places apart on the World strip, where nothing suggested they had anything to do with each other. The tab remembers which face you left it on, so stepping out to Calendar and back puts you where you were.

World › Geography › Regions

The functional region map — the world partitioned into named zones the player sees on their map.

World Regions subtab
World › Geography › Regions. Generate 3–7 named regions from the world's lore, select one to edit its name/description/banner, and file each room into a region.
  • Generate / Regenerate — the GM proposes 3–7 regions (each a name + 1–2-sentence description + a banner prompt) and the engine draws them as a selectable map. Regenerating asks for confirmation and clears every room's region, so you'll re-file rooms afterward.
  • Select & edit — click a region (or the "No Region" chip) to open its detail panel: rename it (renames everywhere and re-tags its rooms), edit its description, and give it a banner image (Generate / Upload, with an image prompt + ✨ and an art-style override).
  • File rooms — the region's rooms panel lists matching rooms, each with a dropdown to reassign its region.
  • Map — below the banner, each region card has a Map section that paints an illustrated map of the region's interior layout. A ✨ asks the GM to compose a direction-aware map prompt from the region's rooms and how they connect (e.g. "Market Row lies north of the Village Square"), so locations land near their true relative positions; you can also type the prompt yourself. Below the prompt sits the generated map image (or a placeholder) with Generate / Regenerate and Upload. A shared Style prefix (with a Preset picker — Oil on Aged Parchment, Ink & Quill, Watercolour, Antique Engraving) is prepended to every region's map prompt so all your maps share one look. Region maps generate through the Map AI provider (Settings), and are shown to the player on their Maps › Region tab for whichever region they're currently in.
  • Build — select a region and press Build Region to open the Region Builder, a form for authoring that one place in isolation without leaving the dialog. See below.

The Region Builder

The Region Builder is a region's own brief — description and climate (the same two fields the Regions tab edits) plus eight authoring fields: Theme & Premise, Tone, Scope (small / medium / large / extra large), Art Style, Rules of this place, Prologue, Narrative, and Beings. Every field may be left blank to inherit the world's own answer, and a ✨ beside each asks the GM to suggest it. Pressing Build Region hands the whole brief to the GM, which writes rooms, beings, items (with proper equipment slots, so any gear it mints can actually be worn), quests, and encounters for this region only — plus, if the Auto-generate Lore/Unlocks checkbox is on, its lore — told to write to the region's climate so the weather it describes matches the weather the engine resolves there, and merges the result straight into your world. It refuses on an empty brief rather than inventing a region from nothing but its name.

What a region contributes to the craftsPart of what makes two regions feel like different places rather than different scenery is what comes out of the ground in each, so the build is told to author what this one yields — ore and cut stone from mining country, timber and pitch from forest, hide and horn and sinew where the herds are, salt and shell and gut off a coast — each marked with the material subtype and typed by what it is.

It is told to REUSE before it mints, and that is the rule worth knowing about. The build is handed a list of your world's existing items and asked to reference one rather than write a near-duplicate. The reason is unforgiving: the catalogue keys on a slug of the NAME, so a region that mints an Iron Bar beside your Iron Ingot has not added a material, it has split one — permanently, with nothing to merge them, and a recipe written against either is then unbuyable wherever the other is stocked. If you see a near-twin of something you already have after a build, that is what happened, and the fix is to delete the newcomer and repoint what used it rather than to keep both.

And a vendor only where one belongs. A region with a settlement, a camp or a waystation gets a trader holding those materials; a barrow, a drowned wood or a stretch of road gets none, and its materials are found rather than bought. That is deliberate and differs from the whole-world build, which requires at least one materials trader — a world without one is broken, where a region made to produce one grows a shop in a swamp.

Authoring context, not GM contextThe brief steers generation and is never shown to the Game Master during play — a marsh you describe as bleaker than the coast while writing it does not make the GM narrate a different, incoherent world once the player is standing in it. It is a tool for you, the author, alone.

Export Region downloads this region — its brief, its record, and everything in the world that belongs only to it (its rooms, and the catalog entries only its rooms use) — as a JSON file; Import Region loads one back in. A region file deliberately carries no dungeons: a dungeon's location is free text ("a region, a room name, a direction"), so which dungeons belong to a given region has no answer the engine can compute yet — build and place dungeons separately with the Dungeon Builder.

Region fields: id, name, description, color, polygon, label, bannerImage, bannerImagePrompt, mapImage, mapImagePrompt, ignoreArtStyle, brief. The shared map style lives on world.regions.mapStyle.

World › Geography › Districts

A region is a stretch of the map: it has an outline, a colour, cardinal neighbours, and a room says which one it is in. A district is the other half of how people name where they are — the shambles, the dock ward, the terraces above the mill — and it is a name rather than a shape. It is not drawn on the world map, it has no polygon, and nothing about it needs a room to know it exists.

The tab is a roster like Factions, with the same toolbar, cards and GM box. There are two ways in and they are different acts: + New opens a dialog asking for the name, the region and the two descriptions together, and refuses a nameless district while what you typed is still on screen; + Add has the Game Master invent one whole from this world's regions, theme and tone.

FieldMeaning
nameWhat its own people call the quarter — a name, not a label.
descriptionOne or two lines, the way the card reads at a glance.
detailedDescriptionThe longer account: what stands here, who works it, how it sounds and smells walking it end to end.
regionThe region it lies in, by id — so renaming a region on the Regions tab cannot quietly move a district out of it.
roomsThe rooms filed under it, by id, and the list its map is drawn from. Held on the district, not through a field on the room: a room sits in exactly one region, but a market on a boundary belongs to both quarters that argue over it.
mapImage, mapImagePromptIts map and the prompt it was painted from — the same fields a region carries, under the same names.

An id that stops resolving is kept and shown as missing rather than pruned: a room deleted today may be restored tomorrow, and a dangling reference you can see is one you can fix. The opposite rule applies to the Game Master — a reply naming a region or a room this world does not have has it dropped and named back to you, because that is a new claim made against a roster the model was shown in full, not data you already wrote.

Map Pins, left of Regenerate, opens the map with the district's rooms beside it: click a room, then click the map to place its marker, which shows the room's name above a dot. Clicking a room that already has one re-arms it, which is how a pin is moved. Pins are stored as fractions of the image, so they hold at any size, and a pin only lives as long as its room does — take a room out of the district, or delete it from the world, and its pin goes with it. That is deliberately the opposite of the rule the rooms list follows, and the reason is in the design doc: a dangling room id is recoverable and you can see it, while a dangling pin is a dot labelled with somewhere that is not there.

The map section is the Regions tab's, control for control: the shared Style prefix with its preset picker — world-level on purpose, so every map this world paints reads as one hand's work — the map prompt with its ✨ handoff, the image, and Generate / Upload.

No directionality, and that is the pointA region's map prompt is built by walking each room's exits, so the picture can say one place lies north of another — a region is a piece of the map, and a room on the wrong side of it draws a world the player can walk out of. A district's rooms are a set, not a grid, and several of them commonly do not connect to each other at all. So its prompt hands over the room names and says in as many words that the arrangement is the illustrator's to choose. A layout assembled from a district's exits would be an authoritative-looking picture of nothing.

Once placed, the pins are drawn in four places, so you never have to reopen the dialog to see what you did. The district card's own map carries them under it. Each room on the Rooms tab grows a read-only District section naming the quarters it is filed under, and the room popup — the one an NPC's location link or the map opens — carries a District line under Region. Both are chips and lists rather than single names, because a room may be filed under two quarters and naming one of them would read as a finished answer. Neither is editable: the district owns its rooms list, and a picker on the room would be a second writer onto the same relationship.

The fourth is the player's. When they are standing in a room filed under a district, their Maps tab grows a subtab named after the quarter itself — Quill Ward, not the word District — showing that quarter's map with your pins over it; walk out and the tab goes. A room filed under two quarters gets a subtab each, so the strip names both. It pans and zooms like the Region map. So the district's name is what a player reads on that strip, beside World and Region, which is worth knowing when you name one: a quarter called “District 4” or “the rooms near the docks” is a tab label as much as it is a record. Nothing about it asks whether a room was visited: the world map earns its fog one room at a time because the party assembles it by walking, but a district map is one authored picture, and fogging parts of an illustration would mean cutting it up.

And on that tab the pins are how the player gets about. Pressing one asks to travel there; they confirm, and they walk. The marker for the room they are standing in is drawn and inert — you are here — and on your two surfaces, the card and the pin dialog, markers stay inert too, so a click in the dialog still places a pin rather than moving anybody.

This is what districts are FOR, so it is worth saying plainlyFiling two rooms under one district says they are within walking distance of each other. That is the same statement an exit makes, made once for a set instead of pairwise — which is the whole point: a market with a dozen stalls is a place people cross without thinking, and authoring it as cardinal exits means ninety exits nobody will ever type and a compass rose over somewhere that has none. So inside a district, rooms need no exits between them, and a place the player has never been is still somewhere they can walk to, because they can see it from where they are standing. Two things this does not loosen: a shut or locked door between two rooms still stops the crossing, exactly as it stops “go north”, so a strongroom filed under the same district as its hall is still locked; and directions are untouched — the GM is told never to narrate a district crossing as a compass move. Be deliberate about what you file together: the district list is a claim about geography, and a room dropped into it by mistake becomes somewhere the player can walk to in one turn.

The walk is an ordinary turn, not a jump. The engine sends the command the same way the Maps tab's Return button does, the Game Master narrates the crossing, and the world moves while they cross it — so an ambush, a shut gate or a change since they last came that way all still happen. The GM is told about the district in its per-turn briefing, which is also what lets an NPC standing in the shambles talk about the shambles.

World › Factions

The world's organised powers — guilds, orders, cults, guards. The player only learns a faction exists when play earns it, so factions are as much a GM tool as a roster.

World Factions subtab
World › Factions. Standard toolbar and a GM box; each card carries description, alignment, regions, a hidden reveal condition, portrait controls, and an Add to Player button.

GM box examples: "add a Thieves' Guild aligned chaotic neutral" · "make the Ashen Order hostile to the player" · "give the Salt Cartel a reveal condition tied to dockworkers" · "give the Ashen Order a hidden history and price what it costs to learn it" · "remove the Guards".

FieldMeaning
id, nameIdentity. Entities reference a faction by its id.
description, detailedDescriptionPublic blurb and a fuller write-up (both ✨-editable).
alignmentThe faction's moral bent.
regionsWhere it operates.
rivalsA list of other faction ids this one is at odds with — set through the GM box ("make the Ashen Order and the Salt Cartel rivals") rather than a card control of its own. Naming it in either direction is enough: the engine reads the union of what a faction names and everyone who names it back. Where a rivalry exists, the player rising with one order costs them half as much standing with each rival the instant the gain lands; falling credits the rivals nothing, so the mechanic can't be farmed. Most worlds author none.
revealGM The hidden, in-fiction condition under which the player discovers this faction. Never shown to the player.
lore, loreKey, loreXpGM The order's hidden history, how the player earns it, and what earning it pays — the same trio a room, a person or a people carries, and not the same thing as reveal: that one is how the player learns the order exists, this is the truth underneath it. Authored per-card, on the Lore tab, or from the GM box, which now writes all three. Price it on the world's one absolute scale (~5 a minor confidence, 10–20 a real secret, 30–50 something pivotal) rather than against the other orders — an omitted loreXp is not free, it is the flat default, and a world where every secret pays the same has priced none of them.
portrait, portraitPrompt, ignoreArtStyleIts emblem and how it's generated.

Per-card, you can also generate/upload the emblem, edit the reveal condition, author DM-only lore, and hit Add to Player to enrol the current character.

Reveal conditions make factions feel earnedA faction with a good reveal ("after the player has helped two dockworkers") surfaces naturally through play rather than being handed over. Reputation and factions are covered player-side in the Player's Handbook Ch. 15 and in the Standing & Morality and Factions design docs.
What runs on its ownTwo rules on the ladder need nothing from you beyond letting them run. A member whose regard for the player reaches its top band may, once per order, speak for them in a scene — the order's standing rises for it, at a value scaled to that member's own regard. And an order the player has not touched in a month of in-world time begins forgetting them — its standing slips back toward the rung they hold, never below it, until something moves the number again. Both are engine-driven; the only lever you hold is the Orders Forget You toggle in Settings, which turns the second one off world-wide.

World › Currency

A world's coinage, and anything else it spends. Every world starts with one currency — Coin, denominated gold / silver / copper (1 gold = 10 silver = 100 copper) — and this is where you can rename it, retune it, or mint others alongside it (gems, chits, favors — anything a being might demand instead of coin).

FieldMeaning
Currency nameWhat the family of denominations is called (e.g. "Coin", "Gemstones").
ExchangeableWhether this currency trades against the base one at a fixed rate. Off by default for anything but the base currency — a gem is priced, not made change for.
Denomination name, short form, worth, colourEach currency is a family of denominations (gold/silver/copper are one currency, three denominations); worth is its value in the base copper unit, which is what lets an item's value (always stored in copper) render in any currency.

A currency or denomination can't be deleted out from under a being still using it — the editor names who, and blocks the removal until you've reassigned them. Every item's price stays a plain copper integer regardless of how many currencies a world defines; what changes is which currencies a being will take. That's set on the being itself via its acceptedCurrencies field (GM box, in the order it prefers to be paid) — see Editing items and the Currency & Tender design doc for the fuller picture, including what's still open.

Authoring-side only, for nowThe purse itself already tracks non-coin currencies, and a being genuinely refuses money it doesn't accept (and pays out in its own currency when you sell to it) — but the player's own Wealth displays are still hard-coded to Gold/Silver/Copper, so a player carrying gems has no running total to look at yet. There is also no moneychanger or currency-exchange mechanism. Both are open items in the design doc, not bugs to chase down.

World › Settings

Settings the world itself carries, authored here by the Dungeon Master — distinct from the app's own Settings dialog, which belongs to whoever is sitting at this browser and lives in localStorage. This one travels with the world, and with every save and export of it. Right now it holds one collapsible section, Identity: the world's own signing key, the credential a Realm Registry checks before it will list a world under your name rather than as claimed-first-not-proved.

Mint a key for this world… asks for confirmation, then downloads a private key file and writes the matching public half into the world data, where it travels with every copy from here on. Minting cannot be undone or regenerated — lose the file and this world can never be proved to be yours again, which is why the button insists on that confirmation first rather than after. Once minted, the section reports whether the world is keyed and, when it is, whether the private half is still on this machine or only ever lived in a file you saved elsewhere.

A fork starts unkeyedSaving a world under a new name (a fork) never carries its parent's key: a key is a claim on this world's name, and a fork has a different one. Keeping the parent's key on a fork would let two worlds with different names claim the same signature — worse than no key at all.

Editor · WorldBuilding Cultures

Editor › World › Culture · inner subtabs: Languages / Folklore / History / Castes / Religions / Heraldry

Rooms, beings and items describe what a world contains. Culture describes what its people share — the tongues they speak, the stories they repeat, the powers they swear by, the ranks they sort themselves into, and the arms they fly. It is six inner tabs along the bottom of World › Culture. Another, Beliefs, was considered and then folded into Folklore as a fourth kind of tale rather than built on its own, which is the shape most of this tab's decisions take: prefer one roster with a kind over two rosters that mostly agree. History is the one place that rule was deliberately not followed, and the reason is worth stating: a tale and a chronicle entry are not two rosters that mostly agree, they are opposites. One is what people say happened; the other is what did.

Five of the six carry real world data today. One does not, and the difference is visible the moment you open it.

TabKeyWhat a record carries
Languagesworld.languages builtA name, a sample sentence, who speaks it, a script (the glyphs a reader must learn to see past), a lexicon, and optionally a parent — which makes it a dialect.
Folkloreworld.folklore builtA kind — myth, belief, fable or legend — a name, the tale itself, a picture, and the two fields that make it the player's: xp and unlocked.
Castesnone yetA name and rank against the others; which people sort this way; what a caste may and may not do; how one moves between them, or that nobody does.
Historyworld.history builtA date in this world's own calendar, a title, the text of what happened, and optionally the people it turned on — usually none.
Religionsworld.religions builtA name, a deity, a description, a worship, the races and regions that keep it, and an insignia with the prompt it was painted from.
Heraldryworld.heraldry builtA title, a kind — tapestry, flag, coat of arms or symbol — a faction that bears it (or none), a description of the device and its colours, the picture with the prompt it came from, and your own hidden lore.
Why the tab exists before the modelsThe usual order is the other way round. A screen that names the thing settles arguments a schema cannot — whether these are one system or five, where each attaches, whether a DM would ever open them — and it is cheap to be wrong about: a disabled panel is deleted in one diff, while a persisted world.* key is carried by every save in existence from the day it lands.

A disabled control is a promise kept

On Castes, every authoring control — the filter, the New button, the GM request box, its Apply — is disabled, with the reason in its tooltip. That is deliberate and it is the thing to understand about this tab before you use it. The failure being guarded against is not an empty screen; it is a control wired to a handler that quietly answers not yet, so you type a request, watch it accepted, and change nothing. That has happened twice elsewhere in this app, and both times nothing reported it. A disabled button cannot become either.

The same rule governs the GM boxes on the five built tabs, and they do not all agree yet: Folklore, History, Religions and Heraldry have working boxes, Languages does not. A box is opened only alongside the authoring roster that reads what it writes — Languages' records exist, its roster does not, so its box stays off with "Coming with P4" in the tooltip rather than pretending.

Culture › Languages

A tongue this world speaks, and the one Culture system a player meets through an object rather than a conversation. + New invents one — a name, a sample sentence, and twenty-six letters to draw. The card then holds:

FieldMeaning
name, description, sampleIdentity, and one sentence in the tongue to set its music. The sample is capped at 200 characters.
speakersTwo id lists — races and factions — saying who actually uses it.
parentAnother language's id. Setting it makes this one a dialect: it inherits the parent's script and most of its lexicon and overrides the rest, so a fluent reader of the parent stumbles rather than reads blind.
scriptThe glyph grid — one drawn or generated shape per letter. This is what a reader who has not learned the tongue actually sees.
lexiconEnglish ↔ its own words. A reader who knows the script but not a given word gets a pronounceable placeholder rather than the English.

The glyphs are the part with the most machinery behind them. The sheet dialog will generate a whole alphabet from the language's name and feel, or take one you drew and uploaded, and either can then be traced into vectors so the letters stay crisp at any size — with a trial run first, so you can see what the tracer makes of your sheet before committing the set. Individual glyphs can be replaced or cleared one at a time. The words dialog authors the lexicon by hand or asks for a starter dictionary in one call.

What a language is for lives on the Items tab. language is a fact about the object, so a book, a spellbook, or a scroll alike can be written in one — its chapters, where it has any, render in glyphs and placeholders to a reader who hasn't learned the tongue. The four lessons that teach the tongue itself — teachesScript, teachesWords, bilingual, and teachesLanguage — stay with whatever is actually read, a book or a scroll: they are facts about reading a thing rather than about the thing, and a spellbook grants none of them, being inscribed rather than read. teachesLanguage is the largest of the four and the one to reach for last — a grammar that hands over the tongue itself, letters and every word the world gives it, now and later, subsuming the other three; the directive asks for one to be rare, a whole quest's worth of object rather than a shelf item. All deterministic, with no GM call and nothing to roll. A player reviews what they've learned of a tongue — the alphabet, every word they know, and whether they're marked fluent in it — in their own Journal › Languages. See Items for those fields and Dialects & Languages for the whole system.

Two providers, one tabLanguage AI (OpenAI) does two different jobs — an image call for the glyph sheet and a text call for the dictionary — so its picker in Settings shows a model row for each. Tracing is a third thing again: Glyph AI (Vectorizer.AI) is vault-only and has no self-hosted key picker. See Image providers & keys.

Culture › Folklore

The stories a world's people tell — and the first Culture system a player ever meets. Every tale has a kind, and the kind is chosen before the tale exists: + New opens a menu rather than dropping a blank card, because a tale has to be drawn under a heading and the engine will not guess which.

KindWhat belongs there
🌀 MythHow the world came to be as it is — told as true, and older than anyone who tells it.
🕯️ BeliefSomething held to be so, and acted on: a charm, an omen, a thing nobody does on a Thirdday.
🦊 FableA short tale told to teach or to warn, and usually to children first.
⚔️ LegendWhat somebody is remembered for, whether or not they did it.

A kind you did not write is kept, not corrected. Import a world whose author grouped their tales as sagas and the tab grows a Sagas group; the alternative is rewriting somebody's vocabulary into ours, which nothing downstream would ever report. The tab carries two filters for the same reason the Items and Lore tabs do — a name box and a funnel by kind — plus Import/Export and Collapse/Expand all.

FieldMeaning
id, name, typeIdentity, and which kind it is grouped under.
textThe tale itself. A tale has no hidden half and no public half — the text is the record.
xp, unlockedWhat hearing it pays, on the same absolute scale a lore hook uses, and whether this world's player has heard it yet. Leave xp unset to pay the default; set it to 0 to pay nothing.
image, prompt, ignoreArtStyleGenerate / Upload / ♻ like any other card, and the usual escape hatch for a tale that should be painted outside the world's style.

GM box: "add a legend about the drowned bell under the millpond". An NPC card carries a Folklore field too — chips for the tales that being can tell, picked from the same grouped list. A monster carries none: the field is for conversation. Each chip names the tale's kind beside its title, since “The Bell Below” says nothing about whether the being is repeating a myth or passing on a warning — and a chip whose tale the world no longer has is kept and marked rather than dropped, the same rule a religion's races follow, so a deleted tale is distinguishable from a being nobody gave one to. Every turn, the GM's dossier lists only the tales tellable by whoever is standing in this room — not the world's whole roster, the way Lore Hooks does — because a tale is earned from its teller, and a teller who is not present is telling nothing. A locked tale reaches the GM with its full text, so it can be told the instant it is earned, under a standing warning that it is a secret until then. Unlocking one copies it into the player's own Compendium › Lore with the tale's own picture.

Why unlocked and not loreUnlockedThe near-miss worth knowing about, since the fields look interchangeable. loreUnlocked/loreXp name the hidden half of a subject that also has a public description. A tale has no public half. Had it reused those names, every reader that scans for a lore hook — the Lore tab's groups, the evaluation's reachability pass, the GM's per-room hook dossier — would have seen a subject whose lore is empty, which is exactly the shape those readers treat as "authored but never written".

Culture › History

The tab beside Folklore, and the other half of the same question. Folklore is hearsay — what a people say happened, handed down and shaped in the telling, true or not. History is the record: wars, famines, sieges, plagues, treaties, successions, the debasement of the coin, the year the river froze. The test is one sentence, and it is worth applying to every entry you write: could a clerk have written it down at the time, and would an ordinary person today know it the way anyone knows their own century? A prophecy, a curse, a haunting or a founding myth fails that test and belongs one tab to the left. One person’s duel fails it too — that is not history unless the realm felt it.

Nothing in the engine plays a historical event. They exist to give the Game Master geopolitical ground to stand on: why this duchy distrusts that one, what the old soldier in the tavern was too young for, which year the coin was cut. A world with a century of dated events behind it answers “what happened here?” out of its own past rather than out of the air.

FieldWhat it is
date{ year, month, day } in this world’s calendar — its month names and its word for a year, so renaming a month on the Calendar tab moves every entry that names it. The year is required; the month and day are each optional and usually absent.
titleWhat a chronicle would call it — “The Siege of Ashfen”, “The Long Winter”.
textWhat happened, to whom, and what it left behind. The consequence is the half that makes it worth recording.
peopleIds into your roster of beings, and usually empty — a famine has no cast. Where one is named they are generally long dead, which is rather the point.

Precision is deliberately partial. Most history is known only to the year, and the form is built to let you say so: leave the month and day unset and the entry reads “Year 218”. Add a month where it matters — a winter famine, a spring campaign — and a day only for a single decisive dated event a chronicler would have stamped. Resist filling in a day to look precise: an over-dated record lies with more confidence than a vague one, and the Game Master is told the same rule when it drafts for you.

The tab draws a timeline, oldest first, the same shape the Journal uses — within a year the precisely-dated entries run in sequence and “sometime that year” trails them. Click an entry to open it and edit it in place; every field writes straight through and saves. It is the one editor tab that draws its cards shut by default, because a chronicle is a list you scan and twenty open edit forms is not a timeline.

Two buttons add one, and they are different acts. + Add hands the job to the Game Master, which is what you want for an event that should fit: it is given your world’s canon, its calendar, the events already recorded and the tales already told, and asked to write one that sits among them without colliding with any. Press it with the request box empty and it records something your world implies and has never had written down. + New opens a dialog for when you already know what happened — it refuses a nameless event and a dateless one, because a timeline has nowhere to draw either.

You decide what your player reads. Every card carries an Unlocked for the player checkbox, off by default. Ticked, the event appears in their Compendium › History — the same timeline, read-only — and its card is badged Published here so you can see at a glance which of forty they have, without opening any of them. Untick it and the event is still fully live for the Game Master; it is simply not in the book your player can read.

The Game Master ticks it too, and this is the thing to know before you are surprised by it: when somebody in the room gives your player an actual account of an event, it is written into their Compendium there and then. So a box you left unticked can come back ticked, and that is the feature rather than a fault. You publish what you want them to have up front; the rest arrives as they are told about it.

It is still publication and not discovery, which is worth being clear about because Folklore one tab to the left carries a box with the same label meaning something else. A tale is earned: your player draws it out of somebody who was not going to volunteer it, and is paid experience for it. Being told about a war is none of those — they asked an ordinary question and got an answer anyone in the realm could have given. So this box pays no XP however it comes to be ticked, has no XP field beside it, and the Game Master never withholds an account to make one of them work for it. What the box records is that your player has been told, so they can look it back up.

The + Add roster is the one place the Game Master may not set it, and the distinction is worth the sentence: writing world data is not telling anybody anything. There is no player in that exchange and nothing has been said aloud, so an unlocked it returns there is ignored — a model asked for “the siege the player heard about” will helpfully publish a beat nobody has recounted.

Write with the same thing in mind either way: everything you record here is public knowledge in your world, published or not. A secret about the past is not a history entry, it is a lore hook, and the engine has three ways of doing those. The checkbox decides whether your player has read the record; it does not make an event a secret.

Your Reveal all toggle works on their tab as it does everywhere else: with it on you see the unpublished beats too, dimmed and badged Unpublished, which is how to review the whole chronicle from their side without ticking forty boxes to check. One difference from your own card is deliberate: a person your world no longer has is kept and flagged here, below, and simply left off theirs — you can repoint a broken reference and they would only be shown a raw id.

Who carries it — the History field on an NPC

A chronicle nobody can speak to is a document. Every NPC card in Editor › Beings carries a History field directly beneath its Folklore one: pick recorded events from the list and they become part of what that person can talk about. The Game Master is then told, every turn, which of the people standing in the room can speak to which event — and what happened in each.

What the pairing gives you is standing, not permission. Anyone in your realm may know of the siege; that is what makes it history. The list says who was at it. Pair the old soldier with it and he tells the player about the ninth day; pair the miller instead and you get what the siege did to the price of bread. Leave a person unpaired and they still know of the thing in the general way everyone does — they simply have no account of their own, and the Game Master is told not to invent one for them.

It is an NPC field, like Folklore, because the point of it is conversation and a monster has none. It stores ids, so retitling an event on this tab does not break the pairing, and an event you delete leaves a marked chip on every card that named it rather than vanishing. The picker is in chronicle order with each event's date beside its title — a title alone does not tell you whether this person lived through the thing or is repeating their grandmother. And it does not offer the publication box: that belongs to the event, not to the person. A beat you have not published is still a beat this person can speak about.

When one of those people actually recounts an event, the engine writes it into your player's Compendium › History and tells them so in a line they can click. That is the second road to the checkbox above, and the pairing is its gate: only an event somebody in the room carries can be filed, so a Game Master that remembered a war from an earlier scene cannot file it in a room where nobody was there.

Filing, not handing out loreNothing in that conversation is a reward. No experience is paid, nothing is withheld, and there is no condition your player has to satisfy — they were told a thing anyone in the realm could have told them, and the engine wrote it down. The Game Master is told this at length, in three places, because every other unlock it has is a reward and the Folklore section sits directly above this one telling it the opposite about tales. It is also told to leave unrecorded history alone: the chronicle is yours, and a war improvised at the table contradicts the one you write next week.
…and it costs the turn nothingWorth knowing when you author a person with both. An account of the old war is exactly the conversation that also earns that person’s own lore hook — ask the gatekeeper what the siege cost him and your player has both heard an event and prised out a secret. Those are two different things and the engine now reports both in the same turn: the event is filed, the hook unlocks, and the hook’s experience is paid. It did not always: history used to share the single slot the rewards use, so filing an account could quietly cost your player a hook they had earned. So pair your veterans with the events they lived through and give them hooks about the same war — the two reinforce each other rather than competing.
A near-miss worth knowingAn NPC's own profile.history is a different field one word along a different axis — that is their hidden backstory, revealed as your player's standing with them rises. This one is the world's chronicle seen from where they stand.
A person your world no longer hasAn id that stops resolving — a being renamed or deleted — is kept and shown as a dashed chip rather than pruned, the same rule a religion’s races follow. Dropped, the treaty would read as though nobody signed it, and the reference could never be restored. The GM’s own replies are held to the opposite rule: a person it invents is dropped and named back to you, because that is a new claim made against a roster it was shown in full.

Culture › Religions

A faith: what is worshipped, by whom, where, and what the faith asks of them.

FieldMeaning
nameThe faith, not the god — the two are often different words and a world may have three orders serving one power.
deityThe power worshipped, in its own field rather than a line of description, because it is the thing an NPC swears by and the thing a player asks about. Both want it addressable.
descriptionWhat it teaches, what it asks, and what it counts as apostasy.
worshipWhere and how it is kept — deliberately not temple. A nomad people carries its worship; a proscribed faith meets in a cellar; a river cult has a bend in the river and no roof at all. A temple field would make half of all authors answer a question they should refuse.
races, regionsWho keeps it and where, stored as ids into rosters the world already has — never as names, so renaming a race on the Races tab cannot silently stop them being worshippers.
portrait, portraitPromptIts insignia, painted from worship — so a faith with no building does not get handed a cathedral, and fourteen faiths do not all get the same generic altar.

An id that stops resolving is kept and shown as missing, never pruned. A race deleted today may be a race restored tomorrow — this app has a Save Editor and an undo-by-reimport habit — and a normalizer that quietly dropped the reference would turn a recoverable mistake into an unrecoverable one.

+ New opens a dialog rather than dropping a blank card, and refuses a nameless faith while what you typed is still on screen: a religion is worth nothing until it has a name, a deity and the peoples who keep it, and a blank card asks for none of those. There is also a + Add on the shared random-add driver for when you want a faith to react to rather than to plan — something Folklore does not have, so the Game Master will write you a tale on request but will not invent one unasked.

GM box examples: "found a new religion of the sea, worshipped by the Fisherfolk" · "give the Sunwrought Faith an insignia". This is the one Culture roster that refuses an invented reference. Asked who keeps a faith, a model will cheerfully answer "the Elves" in a world that has none — so the directive carries the world's real race and region ids in full, drops anything else, and names the drop back to you rather than writing a worshipper who does not exist. Religions is also a group on both halves of Editor › Art: Missing, so Generate All paints every unpainted faith at once, and Review, so the gallery includes them.

Not yet read in playThe Game Master does not narrate a religion yet. No dossier line surfaces a room's dominant faith or an NPC's worship the way Folklore's does for tales, so a faith authored today shapes the world correctly and waits. Folklore is the one Culture system that is wired end to end.

Culture › Heraldry

The devices a house, an order, a realm or a faith is known by — and the one Culture record that is read on another tab entirely. + New opens a dialog; + Add asks the Game Master to devise one whole.

FieldMeaning
titleWhat the device is called — The Drowned Oak, The Broken Wheel. A name, not a blazon.
typeOne of four: tapestry, flag, coat of arms, symbol. This is what the device is borne on, and it is the most load-bearing field on the card — see below.
factionWhich order bears it, by id. Leaving it blank is a real answer: a realm's arms, a family's device and a guild's mark are none of them factions.
descriptionThe charge and its colours, in enough detail to paint, plus the motto if it carries one. The ✨ beside it asks the GM to write one from the title and the kind.

The kind is not a label on a device — it is what the record is about. The same wolf's head woven into a hall's hanging, flown from a mast, painted on a breastplate and branded into a doorpost is four records, not one with four notes. Three things read the field: the picture is painted from it (a prompt naming only the charge gets the same generic shield every time), the card head groups by it, and — the reason it matters most — the armour select on the Items tab offers your coats of arms and nothing else. A tapestry is woven and hung; offering one to an armourer would be offering you something no armourer could put on a breastplate. That is why the New dialog refuses a device with no kind, where the religion dialog beside it refuses only a missing name.

Where you use it: open any item of type armor on Editor › Items. Its Details table carries a Heraldry row — a select listing this world's coats of arms. No other item type draws the row. A world with none yet still shows it, disabled, so you know the feature exists and where to go.

Removing a device clears the armour that bore it, and this is the one place the app breaks its own keep-a-dangling-reference rule on purpose. A broken faction reference shows in red on the card holding it, so you can find and fix it; an armour bearing a device you deleted would show nothing at all, and you would have to hunt it one item card at a time. The confirmation dialog names the armour it is about to clear before you agree.

GM box examples: "a drowned-oak coat of arms for the Fenwardens, and a flag to fly over their tower" · "give the Guards a plain symbol their people would brand". Like Religions, this roster refuses an invented faction and names the drop back to you. It also polices the four kinds: asked for a "pennant", it creates the device without a kind and tells you, rather than filing it as a flag — because guessing what the thing is would put the guess in the picture where nothing could see it.

Heraldry is a group on both halves of Editor › Art: Missing, so Generate All paints every device that has no picture yet rather than making you visit each card, and Review, so the gallery of what your world looks like includes its banners and each cell opens the device it draws.

Half-read in playThe Game Master does not narrate a device yet. The armour association is stored and nothing reads it, so a banner authored today is for you and for the picture on its card.

Castes — what it will be

The tab is drawn, it states its intended shape in the app, and it stores nothing. It is worth opening anyway: the panel is the specification, and reading it is the cheapest way to decide whether your world wants the system at all.

Castes is how a society sorts its people — a name and a rank against the others, which peoples sort this way, what a caste may and may not do, and how one moves between them, or that nobody does. The open question is whether a caste binds to a race independently of place; where it is practised is already answered below.

Where a culture record attaches

A language nothing speaks is a paragraph you wrote once. The question of what these records attach to is what decides whether Culture is a system or a notebook, and it has been answered: the region. A culture record is world-level in the same sense a weather condition or a currency is — its data travels with the world rather than being built into the game — and geographically it belongs to the region, the same way a region already names its climate by id while the climate catalogue lives on the world. A record keeps the properties of a people (which races, which orders); the map keeps place.

That is why a religion names races and regions and a language names its speakers, and why there is no per-system field bolted onto the Region card: a later region culture dialog is where an author picks all of a region's cultural markers at once.

Author the roster firstWrite your world's tongues, tales and faiths, read them back after a reload, export them with the world — that alone is worth the tab. Attachment is a second step and it is where the cost is: every line added to the world half of the system prompt is paid on every cached turn, in every world, forever. See Prompt Economics, and Culture for what is built and what is still open across all five tabs. Heraldry has already taken a step down this road by an unexpected route — an armour item references a device, which makes a breastplate the first thing outside Culture to read one of these records.

Editor · RoomsRooms

Editor › Rooms

Every place the player can stand is a room. This is where you shape geography, exits, contents, atmosphere, and per-time-of-day art.

The Rooms tab
Editor › Rooms. One card per location, with a region filter in the toolbar. Stub rooms show a Flesh out with GM button; full rooms carry a six-slot banner carousel and per-time prompts.

GM box examples: "add a mossy well to the square" · "add a dusty storeroom north of the kitchen" · "rewrite the crypt's description and set its region to The Barrowlands" · "add a hidden exit down from the chapel to a crypt". New rooms are created and stitched into the map automatically; edits merge (exits and descriptions merge rather than replace). A lock on that storeroom is not authored here, though — see Doors on exits below.

Stub & flesh

A stub room is a placeholder — a name, a line, and its exits. Its card shows a Flesh out with GM button that has the GM write its full description, banner prompt, items, and inhabitants, then clears the stub flag (its exits and visited state are preserved). Stubbing a whole region and fleshing rooms as the player approaches is a good way to build big worlds without generating everything up front.

Room fieldMeaning
id, name, descriptionIdentity and the base scene text.
descriptionsOptional per-time-of-day description overrides.
regionThe zone it belongs to (see World › Geography › Regions).
exits, hiddenExits{ direction: { to, description } }, optionally paired with a door (see below). Hidden exits stay secret until revealed in play.
itemsFloor items — catalogue refs {ref, quantity} or inline objects.
entitiesThe beings that call this room home.
interiorOf, interiorsContainment — this room is inside that one, or contains these.
bannerImages, bannerPrompts, bannerArtStyleOverrideSix per-time-of-day art slots and their prompts. See Part IV.
audioPromptsMusic and sound prompts — Music / Sounds, six per-time slots each, plus a General mood-music slot under Music.
ambientPer-time background beats — overheard speech, a sound, a bit of activity — with a chance and interval. Detailed below.
stub, visitedFlags: skeleton-not-yet-fleshed, and whether the player has been here.

Doors on exits

Any exit can carry a door (or a barrier — the same record under a different label and a squarer picture, for a boulder or a portcullis rather than something hinged). Doors aren't authored through the GM box like the rest of a room: each exit row carries its own + door button — or a state chip, once one exists — that opens the Door Editor directly.

FieldMeaning
Name, DescriptionWhat the player reads when they examine the door — separate from the exit's own description of where it leads.
KindDoor or Barrier — same mechanism; only the flavor and art shape (portrait vs. square) differ.
Stateopen / closed / locked, shared by both faces of the door.
Opens bynone / key / magic item / spell / sealed. Key and magic-item locks reference a catalog item by id, not a free-text name.
Pickable, Pick DCOrthogonal to the method above — a door can want a key and still be pickable by a skilled thief.
Hidden, Hides the exit, Found byhidden is whether the player knows the door exists at all; the separate hidesExit covers the rarer case where the exit itself isn't listed either. "Found by" records how the player is meant to discover it — search, a skill + DC, or a GM hint.
ArtGenerate / Upload, independent of the room's own banner art.
Same door on both sidesMirrors the door onto the room at the far end of the exit, sharing one doorId so one key or lever opens it from either side.
The engine enforces itA door authored here actually blocks moveToRoom while it's shut or locked — the GM narrating the player through it anyway doesn't override that, and the refusal is said to both of you. See the openDoor / closeDoor / lockDoor / unlockDoor / revealDoor family in the Field Guide's Appendix A.
Not yet builtA door's lock stops at those five methods — there is no free-text, GM-judged condition lock (a boulder that must be rolled aside rather than opened), no button or switch mechanism, and no engine-rolled search for a hidden door; finding one today is entirely the GM's narrative call. See the Doors & Barriers design doc for what's still open.

Ambient behaviours — a room that breathes

A room's ambient field holds the little background beats that make a place feel lived-in while the player lingers there: a snatch of overheard song, a fist thumping a table, the wind rattling the shutters. It is organised per time of day — dawn, morning, afternoon, evening, dusk, midnight — so the same tavern can roar at evening and fall to embers and wind by midnight. Each period holds a list of acts, and each act is one recurring beat.

Every act has four parts:

PartMeaning
typespeech — a line overheard in the room · sound — an environmental noise (optionally with a real, synthesised audio clip) · action — a brief bit of described activity. The two you will reach for most are SPEECH and SOUND.
promptThe GM steering for the beat — what is heard or happens. It is a seed, not a script: the GM rewrites it fresh each time it fires, so describe a situation, not one fixed sentence.
chanceThe per-check probability, 0–100 (percent; 0 disables the beat). Defaults to 40 when unset.
intervalSeconds between checks — how often the beat's timer rolls its chance while the player is in the room.

A beat written 30% · 60s therefore means: every 60 seconds the player stands in this room at this time of day, there is a 30% chance the beat fires and the GM narrates it. Low chances and longer intervals keep a place subtle; higher chances make it feel busy.

A worked set — one tavern, evening into midnight. Five beats that, read top to bottom, tell a small story of the room emptying out:

TypeBeat (the prompt)Chance · Interval
speecha knot of patrons singing a ragged old drinking song, off-key but full-throated30% · 60s
soundlaughter and the thump of a fist on a table as someone loses a bet30% · 60s
speecha hushed traveller at the corner table murmuring about lights seen moving wrong out on the moor25% · 60s
soundthe fire popping and settling as the crowd thins and voices drop low25% · 60s
soundthe wind rattling the shutters while the last embers glow dim in the hearth, the room otherwise silent20% · 100s

The first three are the busy evening — a song, a lost bet, a nervous rumour; the last two are the room winding down toward midnight — the fire settling, then only the wind, at lower chances and a longer interval. Authoring beats that shift with the hour like this is what makes a place feel alive rather than looped.

Two ways to add them, both in Editor › Rooms:

  • The GM box — describe the atmosphere in plain language and let the Game Master author the acts, chances, and intervals for you, spread across the right times of day: "give the tavern a lively evening — patrons singing off-key, a fist thumping the table over a lost bet, a hushed traveller muttering about lights on the moor — and quieter midnight beats as the fire dies down and the wind picks up."
  • The room card's Ambient section — expand a room and edit its per-time beats by hand: choose the type, write the prompt, and set the chance and interval. For a sound beat you can add a short text-to-sound-effect prompt and press ✨ to synthesise an actual clip (the Audio AI provider), ▶ to preview it, and tick play with ambient so the clip plays alongside the narrated beat.

How the GM generates each beat. Because the prompt is a seed rather than a line, the moment a beat fires the Game Master composes a fresh narration from it — and it does not do so blind. It reads the beat against the room's description and, above all, the room's atmosphere / mood at the current time of day (the per-time mood you can author on the room, GM-eyes-only). The same "patrons talking" prompt becomes uneasy, clipped remarks in a tense, gloom-soaked room and boisterous banter in a warm one. Since both the mood and the beat list are keyed to the hour, the GM lends the room a different voice at dawn than at midnight without any extra work from you. A speech beat yields a single overheard spoken line; a sound beat a described noise (and, if you generated one, its clip); an action beat one brief sentence of activity. None of it advances the plot, changes state, or consumes a turn — it is pure background.

“Ambient on Enter” changes when they are heard, not what they are. A player who keeps moving can walk through a whole village and hear none of your ambience: each beat rolls its chance only while they stand in the room, so beats written to be rare are the first to go unheard. The switch in Settings › Story makes entering a room fire one beat outright — chosen at random and delivered at once, with no chance roll after the pick. It draws from the room's beats for that hour and from the ambient behaviours authored on the beings standing in it, so an NPC with a remark makes it as the player arrives rather than half a minute later. Author for the OFF case, which is the default — low chances, beats that bear repeating — and know that with it on your rarest beat is as likely as your commonest, since the pick is uniform over whatever is eligible. A beat you set to chance 0 is still never chosen: it says never, and a pacing setting does not overrule an authoring decision.

Keep it a background humAmbient beats should never demand a response or move the story — they colour a scene the player is standing in. Favour low chances (roughly 15–35%) and intervals of a minute or more, vary the beats across the day, and reserve the quietest, rarest beats for the dead hours. The full timing mechanics live in the Living World design doc.

Editor · EncountersEncounters

Editor › Encounters

Encounters are the world's randomised, timed events — a wolf pack that prowls the road at night, a merchant who wanders into town by day. Each is a definition the living-world clock rolls against.

The Encounters tab
Editor › Encounters. Cards showing spawn chance, interval, despawn rule, the entities involved, a where-and-when table, and ambient behaviours.

GM box examples: "add a pack of wolves that prowls the forest road at night" · "make the wraith encounter only fire at midnight in the crypt" · "raise the wolf pack's spawn chance to 40%". If an encounter needs a creature that doesn't exist yet, the GM authors it too and adds it to the bestiary.

Encounter fieldMeaning
nameIts key (encounters are upserted by name).
chance0–100, rolled on each tick.
intervalSeconds between rolls.
despawnonPlayerExit · onTimeChange · none.
entitiesWhich beings spawn (refs into the bestiary).
whereLocation × time-of-day probabilities — a room and, per period, a chance it fires there.
ambientSelf-acting atmospheric behaviours the encounter's beings perform.
image, promptIts card art and image prompt.
The living worldEncounters, NPC routines, and ambient beats together make a world feel inhabited. The mechanics are detailed in the Living World design doc.

Editor · DungeonsDungeons

Editor › Dungeons

A dungeon is two things kept in two places, and knowing which is which explains almost everything about this tab. The record — its name, where it lies, what it looks like, its hidden lore — is world data, and you write it here on a card like any other. The map — levels, corridors, doors, locks, chests, monsters and the stone they are all cut from — belongs to the Dungeon Builder, a separate application that opens in its own window from the card's Edit button. The two are joined by the dungeon's id and nothing else.

The Dungeons tab with two dungeon cards
Editor › Dungeons. A dungeon card: portrait, description, and the Details block that reports what the Builder has drawn (Layout) and which rooms open onto it (Enters from). Enter takes the party down; Edit opens the Builder on this dungeon.

+ Add makes an empty dungeon and you fill the card in. Export and Import move the records — the cards, honouring the filter — as their own JSON file; they carry no maps, so a dungeon imported that way arrives undrawn. Whole worlds do carry maps — see World › Chunks and the tile-art checkbox beside Export World.

Card fieldMeaning
name, locationEditable here. location is free text — a region, a road, a room — because a dungeon is not pinned to a room in the world model.
typeAlways dungeon, shown read-only. It is a declaration, not a choice.
Dungeon idWhat the Builder files its map under. Assigned from the name when the dungeon is created, and stable thereafter.
LayoutWhat has been drawn: levels, floor tiles, grid size and the date — or not drawn yet. Read from the Builder's own summary, so it is never a guess.
Enters fromThe rooms that open onto this dungeon. Derived, not authored — see below. A room named here that does not exist, or that already has its own way down, is flagged in amber.
description, detailedDescriptionThe blurb and the fuller write-up, both with GM Generate. The first is what the party is told; the GM reads both when they are underground.
Portrait + promptGenerate or upload a picture, with its own image prompt and the usual per-card art-style override.
LoreThe same hidden-lore set every other card has, and it is four fields rather than the three this used to say: lore, loreKey, loreXp and the unlocked flag. The GM box writes the first three — it will not leave the price out, and an omitted loreXp is not free but the flat default.
Removing a dungeon removes its mapThe map is not in your world save, so deleting the card deletes the only copy of an afternoon's drawing. The confirm says how much you are about to lose ("3 levels · 214 tiles · 20×20") precisely so the answer is an informed one. Any Builder window open on it closes.
The GM box does not author dungeonsEvery other tab's GM box writes world data for you. This one says so and stops: dungeons are laid out by hand, in the Builder. Use + Add and fill the card in yourself.

The Dungeon Builder

Press Edit on a card and the Builder opens in its own window, already pointed at that dungeon. It is a genuinely separate application — no login, no world, no network — which is why it can also be opened on its own from Modules/Dungeons/dungeon-builder.html and even installed as a standalone app. It has no copy of your world, so anything it needs from one (a room id, an item to put in a chest) is either taken on trust or handed to it by the game.

The Dungeon Builder's Editor tab
The Dungeon Builder › Editor. Twenty squares by twenty, per level. Piece brushes carve the floor, wall brushes paint the faces, and the sidebar carries levels, history and the dungeon's own settings — including the amber standing note when a dungeon still has no way out. Shown here opened standalone, on the demo map it ships with.

You draw with three families of tool. Piece brushes stamp the shape of the floor — Bedrock, Dead end, Hallway, Corner, T, Cross, Room, and a plain Floor that carves rock without deciding its walls for you; right-click or R turns the stamp. Wall and door brushes paint one face of one square: Wall, Torch (a sconce, and a real light), Door, Open (which cuts through into the rock behind), Secret, and Switch. Select, Lock and Visible act on something already placed rather than painting — Select opens a properties panel for the face or the square you clicked. Undo goes back eighty steps.

Mechanisms are three fields on a door or a wall, and they compose. A lock id is free text and global to the dungeon, so several doors can share one; a switch carries the lock id it throws, and pressing it opens every lock of that name at once, wherever they are. A secret wall reads as plain stone until it is searched out, and can carry a lock id too. A switch can itself start hidden. And a locked door can carry a narrated act instead — something the party must do at that door, written out in your own words (speak the word "mellon") — which is the one lock down there the engine cannot judge, so it asks the GM.

Chests are real containers: give one a lock, a trap and contents, and the party works it with exactly the rules a chest on a room's floor obeys. Because the Builder has no world to look items up in, the game publishes a digest of this world's item catalogue for it, so the chest editor offers a picker rather than asking you to type an id. You can also create monsters and replace any of the sixteen tile-art slots with your own images.

The sprite sheet editor

A monster in this engine is its sheet — a horizontal strip of equal frames billboarded onto a quad, its width taken from one frame's own proportions so a squat spider comes out squat and a tall skeleton tall. + Create monster… opens one dialog for the whole act, in two pages you turn between with the pager under them: Creature & prompt, which is everything you type, and Sheet & corridor, which is everything you look at. Generating or choosing a sheet turns to the second page by itself, that being the point of pressing the button.

The second page keeps together the things that have to be judged against each other: the sheet itself with the grid the engine will cut it on drawn over it, the frames taken apart underneath, and beside them how the result reads moving down a corridor at one square's distance. A frame count that is wrong looks perfectly fine examined alone, so seeing all of that at once is the whole job — and giving those two half a dialog each is why they are no longer sharing it with the prompt.

Fill in a name, a build (Small/Medium/Large, which sets the cell proportions) and a frame count, then either write the creature clause yourself or press Invent at the left of the acts row to have the Game Master supply one, write it into the image prompt at the build and frame count you've set, and paint the sheet — three steps in one press, each stopping on its own failure and keeping whatever the earlier steps produced. Generate sheet runs the last of those three steps alone, from whatever prompt is in the box. The background comes back a flat colour rather than transparent — magenta by default, green as the fallback for a rose- or flesh-toned creature magenta would eat into — and the Builder keys it out the moment the sheet arrives; the sheet sits on a chequerboard so a colour that didn't key cleanly is visible rather than merely dark-on-dark. Save sheet (labelled Create monster on a new one) commits it to this dungeon's palette.

Default animation is two frames a secondNot the tile-art flame's fourteen — a four- or eight-frame walk cycle at fourteen reads as a vibration, not a step. A monster saved before this changed animates at two now unless you had set some other rate by hand, which is left untouched.

Judging a sheet — the cuts, the corridor and the cells

Three things in the dialog answer the question is this sheet right, and they are on screen together because each of them alone can be misread. The sheet shows what came back with the cut lines drawn over it. The frame strip shows those cuts taken apart, so a cell holding half a creature is obvious. And the corridor shows the thing animating where the party will actually meet it.

The cut lines, and dragging them

The prompt asks for frames of equal width and the image providers frequently paint the right number of figures and then space them by eye. That is not a fault the frame count can repair — there really are eight figures; it is the even cuts that fall through two of them — so each line can be dragged to where the gap between two figures actually is. A line cannot pass or sit on top of its neighbour, and the numbers under the sheet report the slice widths as you go.

What a drag does is worth knowing, because it is not what it looks like. The engine always slices a texture into equal columns and is not being taught otherwise: when you move a line, the editor rebuilds the sheet, copying each slice into a cell of its own, every cell as wide as the widest slice, each slice centred in its cell rather than stretched to fill it. Stretching would make the creature pulse in size across its own walk cycle. So the sheet that leaves the dialog is an ordinary even one, and nothing downstream ever knows the sheet arrived crooked. Even cuts puts the lines back where they started; changing the frame count or loading a new sheet does the same, since positions placed against one picture describe nothing about another. Nudging the background tolerance does not reset them — that dial moves no figure.

Cropping the empty space — the reason monsters come out small

Image providers hand back a frame with a lot of sky in it, and how much varies by creature. That is worth knowing because the symptom does not look like framing: the monster is simply smaller than the Height you typed. The engine works out how wide the creature stands from one frame’s proportions and then draws the whole frame at that height — so a creature filling three fifths of its frame is drawn at three fifths of the height you asked for. Nothing on screen disagrees with anything else; it just comes out short.

Trim to the creature does the whole thing in one press. By that point the background has already been keyed out, so the sheet itself knows exactly which rows hold the figure — the button finds them and sets both lines, leaving a row of slack so the creature’s own outline is not shaved off. Nudge the handles afterwards if you want more air. If it tells you there is nothing to find, the background has not been keyed out: set the Background colour on the first page and generate again, or drag the lines by hand.

The two horizontal lines across the sheet are the fix. Drag the top one down to the creature’s head and the bottom one up to its feet; the shaded bands are what is being thrown away. The sheet is rebuilt without them, so the frame the engine measures is that much shorter and the creature fills it — watch the corridor beside it, which will jump to the size you meant. It gets wider in the same proportion, because it is the same picture at a larger scale. Full height puts the lines back to the edges.

One band comes off every frame at once, which is right: the empty space is a property of the cell the model painted in, and that is the same cell in all of them. Where you cropped to is saved with the monster, so reopening its sheet shows the lines where you left them — over a sheet that has already been trimmed to match.

The corridor

The creature at the rate it will move at, standing one square away — orthogonal adjacency, which is the distance the party actually meets a monster at and therefore the view worth being sure about. The corridor is drawn with the engine's own figures, a square across and a ceiling at 1.15 squares, so how the thing sits against the walls and under the ceiling is true rather than suggestive.

− and + zoom, and Fit returns to the framing that holds the whole creature. Zoom tightens the lens; it does not walk the camera forward. That distinction is what keeps the picture honest: focal length scales the walls, the floor, the ceiling and the creature by exactly the same factor, so the relationship between them is unchanged at every setting — it is the same true geometry through a tighter lens. Past 1× the creature runs off the top and bottom of the frame, which is the point; past a certain size the question is what a hand or a face looks like, not how the thing fits under a ceiling.

Trying another provider

Under the sheet is Painted by — the image provider this sheet came from — and Regenerate. Some providers are simply better than others at a flat-lit row of equal frames, and which one is better varies by creature, so the quickest answer to a sheet that came back wrong is often the same prompt somewhere else. The list is the game’s own: whatever is offered under Settings › Image AI is offered here, including any your vault adds. A provider you have set no key for is still listed and marked as such, because it still works — the game falls back to its keyless provider for that call and notes the substitution in the Logs.

Choosing here changes nothing outside this dialog: your Settings choice is untouched, and the rest of the game goes on painting with it. What is remembered is which provider painted this monster, so reopening its sheet comes back to that one.

Which cell is playing

The corridor names the cell it is showing — Cell 3 / 8 — the sheet prints that number inside each of its cells, and the one playing is lit. Three sightings of one fact, because the question you have when a frame looks wrong is which frame, and the only other way to answer it is to count along a row whose count is the very thing you are unsure about. On a sheet with many frames the numbers drop out below about fourteen pixels a cell, a clipped 8 being easy to read as a 3.

Pause holds it on one cell without stopping the corridor answering everything else — you can zoom, drag a cut or change the height while it is held, which is most of what anybody pauses in order to do. The arrows either side of Pause walk one cell at a time and wrap both ways, so the seam between the last frame and the first is as easy to inspect as any other join. They pause as they go: a step taken while the animation is running is overwritten by the next frame, so rather than sitting greyed out until you have pressed Pause, they simply stop it and hold where you asked.

The way in, and the way out

You do not tell a room that it leads to a dungeon. You tell the dungeon where it comes out, and the entrance is worked backwards from that. Stairs up on level 1 have no floor above them to pair with, so they are the way out, and each carries the id of the room the party climbs into — typed into the Room field on that tile. The room then offers a Descend exit, derived at read time and never written into your world data, so clearing the stair later cannot strand a phantom way down.

Two rules follow, and the card reports both. A room that already has its own down exit keeps it — the authored cellar wins, and the dungeon gets no entrance there. And a dungeon with no way out is not enterable at all: its Enter button is disabled and says which half is missing, either nothing drawn yet or no stair with a room on it. A way in with no way out is a trap, so the app declines to build one.

What the party does down there

Enter replaces the Story view with a first-person view of the dungeon. The party walks it themselves — keys, or the pad under the view — and that is the one thing the GM does not do for them: it describes, adjudicates, answers questions and keeps the thread, but it does not move them a square or open a door. Ask it to go north and it will tell you, plainly, that down here you walk yourself.

The first-person dungeon view
Below ground. Grid-stepped movement and ninety-degree turns, a carried torch and wall sconces, and the chart filling in as the party maps it. Everything the party can do to the stone — open, close, search — is theirs.

Everything else works as it does above ground. A chest is picked, trapped, detected, disarmed and looted through the ordinary container rules; a secret is found by searching the right wall, and the GM decides whether the search earned it; a skill check is a skill check. Monsters you placed stand where you put them and attack when the party comes alongside — the engine starts that fight, not the GM, which is why nothing is ever foreshadowed down a corridor — and a fallen one leaves remains holding whatever it was carrying, opened like any other container. A monster is only a foe if you told it what it is: point it at one of this world's monster kinds in the Builder and it fights as that creature, pack and all; leave it unpointed and it is scenery, which stands there and is never fought. Leave puts the party back in the room they descended from.

What is remembered

The map is what you drew; what the party has done to it is play state, and the two are kept apart. Doors they opened, secrets they found, switches they threw, lids they lifted, the ground they have charted and the square they were standing on all ride in the game save, per dungeon — so a crypt left half-explored is exactly as they left it when they come back, while your authored map is untouched and a locked vault is locked again in a fresh game.

The map itself lives in this browser, filed under the world it belongs to, and it travels with a world export or an exported save — layout always, and the tile art you uploaded only if you tick Include dungeon tile art beside Export World, since art is megabytes where a layout is kilobytes. Arriving somewhere that has already drawn that dungeon, a carried map is ignored: what is on the machine wins, so importing an old file can never overwrite an afternoon's work.

Not yetThree things a dungeon still does not do. The GM box on this tab cannot author one. A region export carries no dungeons, because a dungeon's location is free text and the engine cannot compute which region owns it. And the party's own Maps tab knows nothing of the chart they filled in underground — two exploration records that do not yet meet.

Editor · EntitiesEntities — NPCs & Monsters

Editor › Entities · inner subtabs: NPCs / Monsters / Catalog

Entities are the living beings of your world, split by behaviour: NPCs (people to talk to) and Monsters (hostile creatures). Wildlife (animal-type) lives one tab over, under Environment › Fauna. All three share the same rich card. A third subtab, Catalog, shows the templates those beings are built from.

The Entities NPCs subtab
Entities › NPCs. A being card: portrait, vitals & location, attributes, race, reputation, faction membership, description, and a full behind-the-scenes profile.

GM box examples (NPCs): "add a grizzled blacksmith named Doran to the square" · "give Willa a night-owl routine and a smuggling secret" · "add the Ironvale Guard faction to both Town Guards".
Monsters: "add a pack of dire wolves to the forest road" · "make the cave troll stronger and give it a regeneration ability" · "make the crypt wraith respawn after 3 days" · "set a size on every monster that has none".

New beings need a homeWhen you create a being, name it and give it a valid location (a room id) — that's required. Editing by exact name updates every being that shares it, so two "Town Guard" NPCs change together.
The Entities Monsters subtab
Entities › Monsters. The same card, tuned for creatures — editable description, kind classes, abilities, and respawn controls.
Entity fieldMeaning
name, typetype is npc, monster, or animal — the behavioural split.
raceFree-text people/species (NPCs & monsters), editable inline; ties to the Races tab.
gendermale · female · other, from a dropdown directly under Race on every NPC and monster card (animals have neither). Blank is a real answer and stays in the list: an unstated gender means nobody has decided, which is a different statement from Other — and the Game Master is told to judge an unstated one from the description rather than guess. Unlike Aggression and Size below it, this is a fact about the individual and is not written through to the catalogue type: two beings called Town Guard are two people, and making one of them a woman leaves the other, and every guard yet to spawn, exactly as they were. The GM reads it in the room dossier (every line it writes about a being picks a pronoun), and the being's paper doll and full-body render read it for the silhouette.
ageA number box beside Gender, offered on every being including animals — a three-year-old wolf and an old one are different creatures to narrate. Typing a number writes a birthday behind the scenes (the same mechanism the player's own Age/Born pair uses), so a being's age follows the world clock from then on rather than staying whatever you typed — wind a world forward five years and the blacksmith's apprentice is five years older without anyone touching the card. A card also shows the day it was born, once one exists. Clearing the box clears the birthday and falls back to whatever the free-text profile.age says (see below) — which is why the built-in world can still say a lich is "over four centuries dead" rather than a number. This is a fact about the individual, like Gender, and never travels to another being of the same name.
description, detailedDescriptionThe blurb and a fuller write-up.
level, stats str/dex/int/wis/cha/conPower and the six attributes (shown as chips). Scale stats to the being's level.
hp / maxHpHealth pool.
reputation, status, aliveStanding toward the player, current activity, and living state.
classes1–3 kind tags (undead, humanoid, beast, construct…) — used to judge what actions are feasible against it. Distinct from type.
factionsMemberships { ref, role, reputation }.
aggressionHow readily it starts a fight — evasive, passive, defensive, aggressive or hostile, picked from a dropdown on the card. The five are one word each so they read as one scale, which costs hostile its old spelling hostile-on-sight and with it the part that explained itself: it means the being attacks on sight, with no parley, and evasive at the other end means it will not be approached at all. Distinct from reputation, which is what it thinks of the player and moves with play; this is what it is like and does not move. Blank is a real answer: an unstated aggression is not "passive", it is a being nobody has decided about, and the GM judges it from the fiction.
sizeHow big it is — tiny (a rat, under 1 ft) · small (a badger, 1–4 ft) · medium (a human or a wolf, 4–8 ft — the player's own scale) · large (a bear, 8–16 ft) · huge (a troll, 16–32 ft) · gargantuan (a dragon, over 32 ft). Also a dropdown, directly under Aggression, on every card including animals. It is not decoration: the GM reads it to settle what physically fits, fits through and fits inside — a rat rides in the player's pack, a wolf does not — and to weigh a grapple, a shove or a lift between two things rows apart on that scale. It is also the one fact a portrait cannot carry, so it is what a victory banner paints the creature's true size from. Leave it blank and the banner says nothing about scale rather than guessing, which is how a rat once came out the size of a person.
abilities, inventoryNamed powers and carried items.
equippedItemsWhat the being is wearing, as against inventory, which is everything it is carrying. The card's Equipment section lists each worn piece with the slot it fills, and its ⚙ Doll button opens the player's Equipment tab, for this being: the same paper doll, the same three Stored places (Back, Left Hip, Right Hip), the same pack column, and the same full-body render column with its Generate, Extract Portrait, Update, upload and gallery. It is not a copy of that screen — it is that screen, told a different wearer — so anything the tab learns, this learns with it. Drag from the pack onto a slot to dress the being, drag a piece off the figure to take it off. A being can only wear what it carries: add the gear on the card's Inventory section first, and taking an item away takes it off the doll with it.
bodyPortrait, bodyGalleryThe being's full-body render and every one it has worn — the same two fields the player carries, painted by the same pipeline from the being's own compendiumImage as the face and everything it has equipped as the prompt. Extract Portrait runs the other way: it crops a head-and-shoulders picture out of the render and adopts it as the being's portrait, propagated to every copy of that being.
armor & the AC rowarmor is natural armour — a hide, a carapace, a thick coat. The AC row above Health is derived and not typeable: worn armour's own ac sets the base (10 + DEX modifier when the being wears none), every other worn piece's signed acBonus adjusts it, and armor stands on top of whichever base applies. It is the same rule the player's AC follows, so a chain shirt means the same number whoever is wearing it. To change a being's AC, change its natural armour or what it has on — there is no box that would let the two disagree. A being wearing nothing scores exactly what it always did, so no world you have already authored moves.
routine, routineDescriptionWhere the being is at each time of day, and a GM-eyes-only note on its habits.
ambientSelf-acting atmospheric beats it performs (mutter, pace, comment).
profileOccupation, age, appearance, personality, mannerisms, demeanour, speech style, history, motivation, secrets — the actor's bible. None of it is shown to the player raw.
lore, location, homeLocationHidden history fuel, and where it is / belongs.
folkloreNPCs only — chips for the tales this person can tell, picked from a roster grouped by kind (World › Culture › Folklore). A monster or animal carries none — the field is for conversation. The GM's dossier lists, per room, only the tales tellable by whoever's actually present.
respawn, respawnCooldownDaysCreatures only — whether and how soon it returns after death.
restock, restockTo, restockHoursPer inventory line — whether a sold-out item returns, to what quantity, and after how long (world default 24h). Set from the Restock block on the being's Inventory section, directly under Respawn, same shape and same control; unticking strips the fields rather than leaving them dormant. Tops up toward the baseline only — never erases what a player has sold the merchant, and never restocks past it. See Merchant Restocking.
acceptedCurrenciesWhich currencies this being will take, in the order it prefers to be paid — empty means the base currency (Coin) only. A merchant who deals solely in gems refuses ordinary coin and says so; see World › Currency.
tasksNPCs only — errands or favours this NPC can ask of the player. Each is { name, description (the goal), subtasks:[{ text, xp }], completionXp }: a title, the desired end, the currently-known steps (each with a small XP reward), and a final XP reward for finishing the whole task. When you ask the GM to author an NPC it decides whether they warrant a task, scales the rewards to the task's difficulty (more for one that requires defeating enemies or long travel) and to the NPC's reputation toward the player (neutral or unfavourable → slightly lower), and may mint the items/other NPCs the task routes through — gating their appearance on the task's state (e.g. the fetched item need not appear until the player accepts the task or completes an earlier step). Send tasks to replace the set, or addTasks to add/update one as the story reveals new steps. You author these on the being's card, under Errands — name, what is asked, the XP, the coin, and the id in a field of its own — or by asking the bar at the foot of the tab for them. This roster reaches the Game Master at the table now, which for most of its life it did not: every living person in a room brings their open errands into that turn's dossier — the id, what is asked, your steps where you wrote any, and what it pays — as a menu for the Game Master to offer from when a scene opens one, never to be read out to the player. Finished ones are left off; one the player is already carrying stays, marked in hand, so the person can ask after it. When the player agrees, the Game Master sets taskOffered naming the person and the id, and everything the player carries is copied off your record — description, steps, XP — because you priced it and it is not the Game Master's to inflate. It may bring only this occasion's steps, and only where you wrote none, which is why a one-line prose errand is a perfectly good thing to author. An errand may pay in GOODS as well as coin, and for many people that is the truer payment — a smith in iron, an innkeeper in a bed and a hot meal. Set reward on the errand: catalogue ids and a note saying which one and how. Ids and never a described item: an id names an object this world already has, with its own value and lore, while a name composed at the moment of handing over mints a look-alike that reads correctly on screen and carries none of it. Where no existing item fits, create one — define it in the top-level items object exactly as you would an item the errand asks the player to fetch, and name its id here; the card marks an id the world does not have in red. Or leave the choice open, which is often the better authoring. Give the note ALONE, with no ids, and the Game Master authors the object when it hands it over — which is the only moment anyone can see who finished the errand. Say in the note what the choice turns on. It may be the PLAYER (“an iron weapon suited to their class, from what is left of the ore”), where a cleric and a druid should not walk away with the same thing. It may be the GIVER (“the herbalist offers something from her cabinet”, “a meal and a bed for the night”), where what matters is that the thing is characteristically theirs, whoever they are paying. Only a vague note is a bad one: “a reward” leaves nothing to reason from. Listing ids WITH a note is the middle road — examples the Game Master may pick from, or past, so long as it stays inside what the world has. Where you have named ids it may not invent an object at all: a new one beside an authored one is a counterfeit of it. It is handed over once, and a second is refused and reported back. An errand the Game Master invents in conversation carries no goods reward at all. Write a coin fee as coin, not only in the prose. A task pays its XP through the engine; coin it does not — the figure you set is a promise, shown to the Game Master as “Promises: N copper”, and the Game Master decides whether, when and how much to hand over in the scene. Writing it as data rather than leaving it in the description is what lets it survive an hour of play and a trimmed transcript. The engine does one thing of its own here: it will not apply a payment twice for the same step, and a refusal is logged (Double payment refused) and reported back to the Game Master. An errand with two people in it can be written on both — the one who wants a thing carried and the one waiting for it — so whichever the player reaches first sets it going. Give both entries the same id — the field is on the card, so type one over the other and read them back to be sure. That is what makes them one errand, and the engine then refuses a second copy of it from the other end. Two errands on the SAME person may not share an id (nothing could tell them apart when one is offered) and the card refuses that edit; deleting an errand here removes the template only, never a copy a player has already agreed to. Different ids mean two errands, which is also a thing you may mean. This is not the only road onto the sheet. An errand the player agrees to that nobody wrote copies across through taskTaken, with the Game Master authoring whatever the world needs for it in the same breath — a creature placed in a named room, an object left lying in one; an order's duty arrives through the faction's roster instead. What an invented errand may pay is bounded where yours is not: XP and the scene's coin, never an order's standing, and no more than five errands stay open at once whichever door they came through. The Game Master also owns the ticking — a milestone is marked done by its turn field and not by the player, who has no box to click. See Tasks & the Small Work of Living §03a, §03c and §09a, decisions G, I, K, M and N. Rarely, the Game Master may promote a task into a full quest thread mid-play, when what the player took on for a courier's fee turns out to matter more than either of you planned — the task stays on their sheet, gains a line pointing at the new thread, and the thread opens already crediting the beats the task's own milestones cover.
compendiumImage, portraitPrompt, ignoreArtStylePortrait and how it's generated.
seen, seenCondition, discoveryAny being can be hidden. seen: false keeps it out of the sidebar, the room text, the map and the Compendium until found; seenCondition is the specific act that would find it ("searching the tall grass"), and an optional discovery: {skill, dc, hint} puts a roll behind it — the GM-only hint never printed verbatim. Omit discovery and doing the named thing is the discovery. A creature is not removed while hidden — it can watch, follow, or attack, and a hidden attacker reveals itself the instant it strikes.
revealed, apparentName, identifyDCFauna only — the species gate, independent of seen. revealed: false shows the being everywhere as its apparentName ("a small brown bird") rather than its true name, until identified. A creature that is both hidden and unidentified must be found before it can be named — finding it only ever reveals that something is there.
Two skills see without searchingWildlore (tier 1, WIS, open to any class) spots any hidden fauna and names any animal on sight — Herbalism's exact twin for wildlife. Vigilance (tier 2, WIS, built on Perception) spots any hidden being at all, animal or not. Neither rolls or consults discovery.dc — having the skill is the whole of it, the same courtesy Herbalism has always paid a hidden plant. The GM's own actions are revealBeing and identifyBeing, each taking a name or an array and matching either the true or the apparent name. See Hidden Beings for the full design.
The GM is told what a being has onDressing a being is not only bookkeeping — it reaches the model. Every turn, the room dossier gives each being present a wearing:[…] list naming the slot each piece fills and the one number that piece decides (an armour's base, a weapon's dice, a signed AC bonus), and flags those same pieces — WORN in its carries: list so the GM can tell a blade at the hip from a spare in the pack. A stowed piece — in one of the three Stored places — gets its own stowed:[…] list and a — STOWED flag instead: it is riding on the body and visible, so the GM can describe it, but it counts toward no Armor Class. Carrying a breastplate has never made anybody harder to hit. Once a fight starts each foe's own line in the combat block repeats what it is wielding, with the dice, and what it has on. The combat contract tells the GM two things about that: its AC already counts every worn piece, so never add the armour again; and a listed weapon's dice are the ones to roll for its blows, instead of a figure invented per turn. A foe with nothing listed is unarmed or improvising, which is a real answer rather than a gap. A being wearing nothing adds not one character to the prompt.

Standing, Fame & Renown — the two scales, and which one is hidden

Your world carries two measures of how the player is regarded, and the difference between them is worth holding: reputation is what one person thinks of them, and Fame is what the realm at large has heard. Reputation is a visible number; Fame is a hidden one the player only ever sees as a word. Standing & Morality is the full write-up; this is what you need to run one.

Reputation sits on each being, on the engine’s single −100…+100 scale, and the player sees both the number and its label in an NPC’s close-up. You set it on the being’s card; the Game Master moves it in play with reputationChange. One asymmetry is deliberate and catches people out: on a positive change the engine adds the player’s CHA bonus and their Fame bonus; on a negative one it adds neither. Charm and renown open doors and do not soften an insult.

ReputationLabel
+40 and upDevoted
+20Friendly
+5Warm
−4 to +4Neutral
−19Wary
−39Hostile
below −40Enemy — attacks on sight

Fame is one hidden number, fameValue, that the player never sees. They see its label, and they are told once when the label moves — “Your fame grows — you are now Notable.” Each tier also lends a persuasion bonus, which is the mechanical reason to care about it at all: a famous character is believed more readily by people who have never met them.

Fame valueLabelPersuasion bonus
0Unknown—
25Locally Known+1
75Recognized+1
150Notable+2
300Renowned+3
600Famous+4
1200Legendary+5

Unknown is the bottom rung, not an error. A fresh character is nobody, and every surface that shows the label — the Character Profile, the Renown chip on a Legends entry — will say so until something moves the number.

Four things move it, and all of them happen in play:

SourceWhat it adds
A quest beat unlocking8, and 20 more on the beat that completes the quest
Treasure collected12 per item, plus 1 per 500 copper of its value
Wealth held1 per 500 copper — but only past the highest total ever held. It is a high-water mark, so spending loses no Fame and re-earning the same purse credits nothing twice
The Game MasterfameDelta for a notable deed, or the fame field to override the label outright

Your own lever is the console: // fame +150 or // set fame 300 (renown works as an alias). It echoes the number and the label back, so you can see where a value lands without consulting the table above.

Unlocking beats by hand pays no Fame — or XPThe quest-beat and quest-completion Fame above are paid on the live path, when the Game Master unlocks a beat during a turn. Ticking beats open yourself in Editor › Quests sets the state, closes the branches it should close and chronicles the arc in Legends — and pays nothing: no Fame, no XP, no beat rewards. So a quest you stage forward leaves the character Unknown with a chronicle saying they finished it, and the Legend’s spoil chips naming rewards that were never handed over. If you meant the player to have them, pay them yourself: // fame +N, // xp +N, and the items by hand.

Alignment is the third measure and the only one nobody computes. It starts at True Neutral and the Game Master nudges it as the character behaves; the valid set is your world’s own alignments map, each with a description the model is shown, so a world can moralise on its own terms rather than on a borrowed nine-box grid. Set it directly with // set alignment Lawful Good.

Catalog — the templates, and what is using them

The NPCs and Monsters subtabs list the beings standing in rooms. Catalog lists something different: the templates a room's {"ref": "…"} resolves against. The distinction is invisible until it matters, and then it matters completely — a template is a description of a being, not a being. Defining one puts nobody anywhere.

So the column that earns this screen is the last one: what is using each template. There are three answers.

The row saysMeaning
One or more room namesBeings built from this template stand in those rooms. It appears on the NPCs or Monsters subtab.
spawned by …An encounter references it and spawns it as the player plays. In no room by design — this is correct, not a gap. The built-in world's villager is exactly this.
used by nothingNo room holds it and no encounter spawns it, so no such being can ever appear. Usually a Game Master that authored the template and forgot to place it. These sort to the top.

Two controls per row. Place builds a being from the template into the room you choose — the repair for a template nothing uses, and equally the quick way to put a second Town Guard somewhere. Delete removes the template, and is offered only while nothing uses it: deleting one that is placed, or that an encounter spawns, would leave live beings whose reference resolves to nothing.

Import adds templates and places nobodyThe Catalog's Import writes to the catalogue and puts no one in a room — cataloguing and placing are separate acts, and anything that lands unused shows here as such. A world with no templates at all is perfectly normal: beings can be written straight into their rooms instead, which is how much of the built-in world is authored.

Editor · RacesRaces

Editor › Races

The peoples and species of the world. A race is lore-and-flavour: it gives NPCs a heritage and the player a sense of place. Beings reference a race by name.

The Races tab
Editor › Races. One card per people, with traits, lifespan, homeland, description, and a portrait.

GM box examples: "add a race of stone-skinned mountain dwellers" · "give the Sylvani a 300-year lifespan and a woodland homeland" · "remove the Hollow".

Race fieldMeaning
id, nameIdentity.
description, detailedDescriptionBlurb and fuller write-up (both ✨-editable).
traits, lifespan, homelandDistinguishing features, how long they live, where they hail from.
lore, loreKey, loreXpHidden history, the condition under which the player earns it, and what earning it pays. The GM box writes all three.
abilitiesCustom racial abilities — named, described traits, each rooted in a mechanic. A racial ability is inherent (members are born with it), so every racial ability is a PASSIVE (kind:"passive"): an always-true capability the character never rolls a check to use. (The "checked" modifier shape — kind:"modifier" with appliesTo/bonus, which rides a d20 check — is reserved for learned skills and granted boons, not a birthright.) A passive does one or both:
  • Waives a check it renders moot — a standing capability the members simply have. { name, description, kind:"passive", condition, waives:{ tags } }. E.g. Amphibious → waives "drowning" while submerged.
  • Modifies a roll — a signed bonus/penalty on a named roll (saving throws, to hit, AC, damage, initiative, or a free-form check), applied to the character (self) or a foe (enemy). { name, description, kind:"passive", effect:{ modifiers:[{ target, stat, delta }], condition } }. The passive isn't rolled itself, but it tips the other rolls made in play. E.g. Warded Mind → +2 to your saving throws against fear; Dreadful Mein → −3 to the enemy's to-hit. A saving throws modifier the engine folds into the player's own save; other roll modifiers are GM-adjudicated in play.
A single passive may both waive and modify. Members inherit these on their Character › Profile (with a racial badge), and race cards render an Abilities section.
portrait, portraitPrompt, ignoreArtStyleA representative portrait and its prompt.

Editor · EnvironmentEnvironment — Flora & Fauna

Editor › Environment · inner subtabs: Flora / Fauna

Environment gathers the world's natural life — plants and non-hostile wildlife — so they don't clutter the Items and Entities tabs.

The Environment Flora subtab
Environment › Flora. Plant-type items — herbs, fungi, trees, flowers — on the same card as ordinary items.
  • Flora — plant-type items. They use the same card as the Items tab, scoped to type: "plant". Author with the GM box ("add a luminous moor-moss that glows at dusk"). Common vegetation is usually worth 0 coin; give it an evocative icon (🌿🌳🍄🌸) and a subtypes tag (herb/tree/fungus/flower).
  • Fauna — animal-type entities. These are beings, not items, so they use the full entity card (stats, hp, size, aggression, routine, ambient, portrait) minus race — and size earns its keep here more than anywhere, because a wildlife roster is where the difference between a thing that fits in your pack and a thing that does not is most often the whole question. Author with the GM box ("add a marsh heron that stalks the shallows"); new entries must be non-hostile animals.
Where each thing livesPlants are items → they carry a value, weight, and can be picked up. Animals are entities → they move, act, and can be encountered. Choosing the right home is really choosing whether the thing is an object or a creature.

Editor · PlayerPlayer — Classes & Progression

Editor › Player · inner subtab: Classes

Classes are the archetypes a player can begin as. Each sets starting attributes, a starting loadout, the signature skills it begins knowing, and — optionally — a milestone progression timeline.

The Player Classes subtab
Player › Classes. A class card with a directly-editable base-stats grid, starting-inventory chips, and the gold ✦ Progression button.

GM box examples: "add a Cleric class built around WIS with a mace and holy symbol" · "raise the Mage's base INT to 20" · "give the Ranger a bow and 3 arrows as starting gear".

Class fieldMeaning
name, descriptionIdentity and pitch.
baseStats{ hp, mp, str, dex, int, wis, cha, con } — whole numbers ≥ 1. This is the one grid you edit directly on the card.
startingInventoryThe opening loadout (catalogue refs or inline items). Replaces, doesn't append.
inherentSkillsSkill ids the class begins knowing — its signature abilities.
equipmentSlotsOptional — overrides to the default paper-doll gear slots when a class equips differently (e.g. a Mage swaps its Shield slot for a Spellbook slot). Add/remove/replace ops; most classes omit it and use the standard slots.
portrait, portraitPromptThe class's picture and the prompt that paints it — the same pair a race or faction carries. Authored from the card's portrait column and Prompts › Portrait section, not by hand.
progressionAn optional authored milestone timeline (below). Built-in classes ship without one.

The class portrait

A class card carries a picture, with the same controls every other object card has: Generate and Upload on an empty slot, ⬆ beside ♻ once there is one, and a Portrait box under Prompts with its ✨ writer and the per-object art-style override. It matters more here than almost anywhere else: a class is what a player picks from at the login screen, before they have seen a single room.

Leave the prompt blank and Generate still works — the fallback is derived from the class's description and its starting loadout, because gear is most of what tells two classes apart in a picture. A warrior and a mage differ in the frame by what they are carrying far more than by any adjective, so the loadout you authored above is doing double duty.

A class you ask the GM for arrives with a faceThe class-edit box now asks the GM for a portraitPrompt whenever it creates a class, and the portrait is painted straight afterwards without you pressing anything — the same courtesy a GM-authored race gets. An edit that does not mention the prompt leaves the one you wrote alone.
Every class needs a signatureWhen you create a class, give it 1–3 class skills with at least one inherent signature. Skill-reliant archetypes (rogues, mages) warrant 2–3; a tanky weapon class often needs just one. The built-ins model this: Warrior → Swordsmanship; Rogue → Lockpicking, Sneak, Surprise Attack; Mage → Spellcasting, Runecraft; Ranger → Tracking, Spellcasting; Cleric → Spellcasting, Theology; Druid → Spellcasting, Herbalism, Animal Handling; Alchemist → Herbalism, Concoction. Author the skills on the Skills tab and reference them by id.

The Progression dialog

Each class card carries a gold ✦ Progression button (with a beat-count badge). It opens a big dialog showing that class's milestone timeline — the rewards a character earns as it levels.

The Class Progression dialog
The Progression dialog. A vertical timeline of level beats — each with an optional nickname, a hidden/revealed flag, and reward lines. Generate drafts it; the ask bar refines it; Confirm closes.
  • Generate drafts a whole timeline. If one already exists it asks to confirm the overwrite first.
  • The ask bar refines it in plain language: "space the beats out more" · "add a level-5 riposte class skill" · "give level 10 a +2 CON bump".
  • Confirm simply closes — edits are already applied.

A beat is { level, title?, revealed, rewards[] }: a level (2+, since level 1 is creation), an optional nickname reserved for meatier milestones (it also becomes the character's honorific), a revealed flag (show the player the beat early, or keep it hidden until reached), and one or more rewards. Reward types: classSkill, skill, stat (a fixed bump), statPoints (points to allocate), and other (a mechanical boon). Timelines are meant to be sparse and front-loaded — a handful of beats across twenty levels, not one per level. The full design rationale is in the Player Progression doc; the player sees their own copy on the Character › Progression tab.

Editor · PlayerPlayer — Skills

Editor › Player · inner subtab: Skills

The world's skill catalogue — the proficiencies the GM rolls against when an action calls for one. Skills are what classes grant, books teach, and mentors train.

The Player Skills subtab
Player › Skills. Each skill shows its governing attribute, its class gate, and its base difficulty.

GM box examples: "add a Pickpocketing skill for Rogues (DEX)" · "make Herbalism governed by INT" · "add an open-to-all Swimming skill, DC 10".

Skill fieldMeaning
id, name, iconA lowercase_snake_case id, a display name, and one emoji.
statThe governing attribute (str/dex/int/wis/cha/con) — the check adds its modifier.
classesThe class gate. Empty means anyone can use it; listed means it's a signature of those classes.
baseDCBase difficulty, 5–25.
descriptionWhat it does (inline-editable, with a ✨).
How players actually get skillsThree routes: inherent (granted by the class at creation); books (an item of type: "book" with teaches: <skillId> — reading it is an INT check vs the skill's DC, one attempt per character level); and mentors. Root skills like Spellcasting are hard-gated off-class; softer skills can be learned off-class at lesser effect. The built-in catalogue runs three tiers, not two — Venomcraft and Apothecary are the only tier-3 skills, both built on Concoction, which is itself tier 2 behind Herbalism. A tier is a rung a skill's own prerequisites climb to, never a flag, so a skill built atop a tier-2 skill cannot itself be tier 2 without outranking its own parent. The rules are in Player's Handbook Ch. 9 and the Character Skills doc.

What the Game Master can see of this tab

Until recently, only the skills a character had learned reached the Game Master. The world's catalogue — everything a character could learn — was never sent, and that had one consequence worth knowing about as an author: the GM could not name a skill the player had not got. Asked to adjudicate something that wanted training the character lacked, it either refused in general terms or invented a plausible-sounding skill name, and an invented name is a dead end you did not write. The player goes looking for it in their Skills panel and there is nothing there.

The whole catalogue now travels in the cached half of the prompt, with each skill's name, id, governing stat, base DC, tier and — for a gated skill — what it wants first, by name. So a refusal can say “that wants Apothecary, and you would need Concoction before it”, and every word of it points at something the player can actually go and learn. Two things follow for you. Anything you author here is immediately nameable by the GM, so a skill with a vague description will be recommended vaguely. And the catalogue is cached, not per-turn, so its cost is one write rather than a charge on every turn — see What it is costing you.

A skill closed to a class is described as closedMost class gates are soft: an off-class character can learn the skill the hard way and use it at reduced proficiency. Spellcasting is the one hard gate, and the catalogue says so in as many words, because a Game Master telling a Warrior they could earn magic the hard way has promised something the point-buy will never sell them. If you author a hard-gated skill of your own, the same wording follows it automatically.

Crafting

Crafting is built. All seven phases of the design in Crafting have shipped — the skills, the skill catalogue the Game Master is briefed with, dismantling, assembly with its hours-and-stages dial, the recipe a successful craft leaves behind, the condition ladder, and repair. Everything below describes what the engine does today, and the part you author for it is authored in this very tab.

Crafting is the mundane half of making things, and it is three acts: putting materials together into an item, taking an item back apart into materials, and repairing a worn one. It is adjudicated by the Game Master rather than by a recipe table, which is the deliberate opposite of Concoctions, and §2 of the design doc argues why both are right: a concoction is magic and magic is specific, so its catalogue is closed; there is no canonical way to make a knife, and a table of authored knife recipes would be endless and beside the point.

Two rules shape everything else. A craft combines what already exists and never creates it — no conjuring a material to make the thing you want — so the economy is bounded at the input end by your world's own material stock rather than by a value ceiling you would have to keep tuning, and magic falls out of scope by that same logic, since magic is not a material a hammer can work. And the cost is hours, under four rules a player can guess without being told: aim higher and it is harder and longer; rush it and you will probably botch it; take somewhat longer and it goes somewhat better, up to a ceiling; work through the night and you get worse at it, because a long craft advances the clock and the sleep-deprivation tiers are already wired into every roll.

The hours buy stages, one check each, and the grade you land on is how many you cleared — so a player reaching for a masterwork and falling short comes away with a good blade rather than nothing. A successful craft leaves its recipe behind in the save — on the PLAYER, not the world, because a discovered method is knowledge a character earned rather than a fact about the place — and it can be worked again with no GM call at all. A re-run is still a sitting per turn, though: what re-use saves is the model call, not the hours. Both halves live in the player’s Character › Crafting tab, which lists unfinished projects on one side and the known methods on the other.

Making a thing, and what the engine ownsA player says what they want to make and names materials they are carrying. The Game Master answers with a craft directive — the target, the craft it wants, a DC, the hours, what it consumes, and a spec for the result — and the engine owns everything after that. It checks the materials really are in the pack and refuses with a list when they are not; spends them at once, because the leather really is cut; puts a half-made item in the pack in their place; then works one sitting of about eight hours per turn, rolling a stage at a time, until the piece is done.

Two figures are worth understanding because they are the whole of the player’s decision. The grade they ask for sets how many stages the work takes and how hard each is; the hours they give it are weighed against what the job wants. Short by a quarter costs +2 on every stage (to a ceiling of +6, which is all the arithmetic allows); over by a quarter buys an extra stage, never more than two. How far up the stages they got is the grade they land on — so reaching too high usually yields an honest lesser piece rather than nothing, which is what makes the gamble worth taking. Do not narrate the outcome: describe them setting to work and let the engine’s manifest say how it went, and do not describe a finished piece until the engine says it is finished.

What the crafts work withThe built-in world ships thirty-four materials, one set per craft — ore and ingots and charcoal for Metalwork, hide through to tanned leather for Leatherworking, timber and plank and glue for Woodworking, fibre through thread to cloth for Tailoring, and gold leaf, silver wire and enamel for Engraving. Each is typed by what it is rather than by what it is for: an ingot is a mineral, tanned leather an animalpart, a bolt of linen misc. What marks them all is the subtype material, which any type may carry.

Use it on anything you author that a craft would consume. It is what lets a player (and the Game Master) tell stock from a finished piece at a glance, and the Game Master is told to add it to anything it invents that fits. The pairs to keep straight: material is stock somebody stocks, salvage is what a working left behind, and a thing can honestly be both — a scrap of iron off a sword is salvage, and if your world also sells scrap iron it is material too.

One word to avoid on a material: component. The engine reads ingredient, reagent and component as alchemy, so anything wearing one joins the concoction recipe picker and reaches the Game Master as an ingredient for brewing. It is the right English word for a small fitting and the wrong label for one.

Where a player buys it. Market Row keeps two traders beside the herbalist — Hesk the tanner (hide through cured to tanned, sinew, tallow, bone) and Wenna the chandler (board, haft, glue, pegs, charcoal, rivets, and cloth from fibre through thread to bolt) — and Aldric’s forge carries the metal: ore, ingots, charcoal and flux. Both Row traders keep the herbalist’s hours and are gone after dusk, so a player who wants materials at midnight wants the morning instead. Engraving stock is deliberately sold nowhere — gold leaf and niello are not village goods, and where they are bought is a question your world gets to answer.

Making a trader of your own, which is the part with a trap in it. A vendor is simply an NPC who CARRIES the stock — there is no shop screen and no shop record; the Game Master adjudicates the sale out of what the being has on it. Putting merchant in a being’s classes does not create that: it is a label, which files them under ⚖ Merchant in the Compendium and is what the Game Master attaches when you ask it for a trader. Useful, and not the mechanism. What makes somebody a shop is stock, a price on it, and being somewhere the player can reach at the hour they get there.

Stock by ref, not by copy. An inventory row of { "ref": "tanned_leather", "quantity": 4 } hands over that catalogue entry — its price, its description, its picture, all still answered in one place. Writing the item out inline instead gives that trader a second definition of the same thing, and the two drift the first time you reprice one. And a mistyped ref is silent: it does not warn and does not fail, because the engine mints an empty entry under the id it did not find. The stall then sells something with no name but the id, no description and no worth, which looks exactly like a shop the player has already cleaned out. Read a new trader’s stock back off their card once, and you will never meet it.

Give them hours, and make the room agree. A trader with a routine that leaves the room is genuinely unavailable then — which is good, and is why the Row is bare frames after dark. The room’s own time-of-day descriptions are separate prose and will not follow on their own: a description that still has somebody hawking at midnight while their routine has them asleep is the kind of contradiction the player meets and the engine never notices.

A world you GENERATE is asked for its own. The World Builder’s directive now tells the Game Master to author a working stock — two or three materials per craft the world actually practises, typed by what they are, in that world’s own register (a realm of ash and bone does not sell oak planks) — and to put at least one trader who deals in materials rather than gear somewhere the player passes early. So a generated world should arrive with the supply already in it. The id crafting is load-bearing, and the engine now guarantees it. Making, mending and taking apart all read that one id, the way every cast reads spellcasting — so a world that keyed its smith-craft Smithing and had no crafting at all lost all three acts for the length of the game. The refusal was honest (that is the Crafting skill, and you have never learnt it) and permanent, because a skill your world does not define cannot be learnt either. That is fixed in the engine rather than left to you to notice: crafting joins the short list of ids the engine guarantees, beside the two a container trap’s detect and disarm DCs default to, and it is filled in from the built-in catalogue whenever a world is built or a save is loaded. So it is in your world now whether you authored it or not, including in a world saved before this was true. The cost is a world that deliberately wants no crafting carrying one unused row in its skill list, which is the better side of that trade. The generation directive still asks for the id by name, so a generated world names it on purpose rather than by rescue.

A region you build gets a different instruction, on purpose. It joins a world that already has a supply and is handed the list of it, so the Game Master is told to reuse first: a region that mints an “Iron Bar” beside your “Iron Ingot” has not added a material, it has split one, and nothing merges them afterwards. What it authors is what that place actually yields — ore from mining country, timber and pitch from forest, hide and horn where the herds are. And it gets a trader only where the region has somebody to sell from: a wild region’s materials are found rather than bought, which is the right answer rather than a gap.

If your world is your own, the MATERIALS are not in it — a world you have edited or imported is exempt from the built-in merge, by design, so new content never rewrites somebody’s realm. Ask the Game Master for the set on Editor › Items: add a stock of crafting materials — ore, ingots, charcoal, hide, leather, timber, plank, thread, cloth — each with the subtype "material". The skill is a different matter and needs nothing from you: it is guaranteed rather than merged, so an imported world has Crafting even though it has none of the stock. That is the right way round — a skill with nothing to practise on is a prompt to go shopping, where stock with no skill to use it would be furniture.

The hours on screen, and whose dice they areEach sitting plays the timed banner a night’s sleep uses — clock faces at each end, the span in hours, and a bar that sweeps while the header clock fast-forwards. The clock is advanced by the engine before the animation starts, so a player who refreshes mid-sweep keeps the hours rather than working for free.

“Auto Roll Skills” governs the bench too. With it off, all three crafting acts ask the player for a d20 from the bag and resolve it in the engine — you are not asked for a skillRollRequest and should not narrate a result, exactly as when the engine rolls. A craft asks per stage, not per sitting: a sitting makes one check per stage and each is the player’s to roll, so a long piece of work stops at every stage. The banner follows the same unit, which is why it is one card per sitting when the engine rolls and one per stage when the player does. The hours are identical either way.

When the work comes to nothingClearing no stages at all is the one outcome partial credit does not soften, and it is rare — a fair DC almost never produces it, which is why it reads as a shock when it does. The half-made thing is destroyed: what is left was never going to be a sword, and leaving it in the pack would be a project that can never be finished. The materials come back, one rung worse. Good stock returns average, average returns worn, and ruined stock returns ruined — the ladder has a bottom and nothing falls off it.

That is deliberately the gentler of two possible answers and it is not as gentle as it looks, because the cost is paid later rather than at once. The week is gone and the fatigue was real; more to the point, a craft can be no better than its worst material, so stock that has been through a failure caps everything it goes into afterwards. A smith who botches twice is working ruined iron and can make nothing better than ruined out of it. You do not have to enforce any of that — the ladder does it — and it is worth knowing so you can narrate the loss at its real weight rather than as a total one.

Two details in case a player asks. A material with a Compendium entry comes back as that entry, picture and all, rather than as a same-named copy with default stats; something uncatalogued (your room clutter, a thing they made themselves) comes back as what it was and mints no new entry. And where the returned stock merges into intact stock of the same name — one entry, because things stack by name — that entry takes the worse condition. A player who kept spares does not get to launder the damage through them.

Half-made things, and how to author oneThe unfinished thing is an ordinary item in the pack, named Short Sword (partial) and carrying a partial subtype. It cannot be worn or wielded, it never reaches the Compendium, and its picture is repainted as the work goes. That makes it something you can author: a half-forged blade on a dead smith’s bench, a shop’s abandoned seconds, a reward nobody could finish. The player picks it up and resumes it like their own.

An authored partial has no conversation behind it, so it has to carry everything itself. Give the item "subtypes": ["partial"], "minor": true (which keeps it out of the catalogue and the Compendium), and a "project" block holding target, grade, stages, done, skill, dc and hours — plus an item spec for what it becomes. Leave any of those out and they are filled in with defaults rather than lost.

One rule binds you the same as anyone: an unfinished thing is not a loophole. Its TARGET must be something you could have authored outright — an unfinished masterwork is a tempting reward precisely because it reads as generous and costs the player work, and it is still subject to everything a finished one would be.

The notebook, and where players see all thisA successful craft leaves its method behind, stored on the character rather than on the world — a discovered method is knowledge somebody earned, not a fact about the realm, so it does not travel to another character who happens to share your map and it is not exported with a published world. Both halves live in the player’s Character › Crafting tab: unfinished projects on one side with a stage bar, known methods on the other with a button that re-runs them at no cost to you at all — no Game Master call, the same blade every time. A method is keyed by target and grade, so a player who later reaches higher gets a second method beside the first rather than losing the cheap one.

Worth knowing when you author: a made thing is an instance, not a type. It never merges with a bought item of the same name, it keeps its own picture rather than sharing one with its namesakes, and a player may give it a name of their own — so two swords in one pack may legitimately read the same and still be two swords. If you author a sword called what a player’s own forged one is called, nothing collides and nothing is lost. A second craft that genuinely differs from the first — a different recipe, different materials, anything craftSameThing reads as a real difference — is never merged silently either: the engine renames the newcomer with the next free ordinal off its own base name, so a second Fine Short Sword becomes Fine Short Sword (2) and the player can tell them apart in a list. Two identical crafts off the very same recipe still stack as one, same as any other item. A name the player gave a thing themselves is never overwritten this way.

RepairA repair directive mends a worn thing: name the item, the craft, a DC and the hours, and optionally what it consumes. The engine adds the difficulty the thing’s current state deserves — the same +2/+4/+6 the ladder charges a dismantling — spends the materials and the hours, rolls, and moves it one rung up on a pass, two on a critical, never past pristine. A failure does not make it worse; the hours and the materials are the cost, and they are spent either way. Do not offer to repair something already pristine or a half-finished craft — the engine refuses both, the second because it wants resuming rather than mending.
An item’s condition is a rung now, not a captionThe Condition box on an item used to be pure display — nothing in the engine read it. It is now a five-rung ladder: ruined · worn · average · good · pristine, with good as the rung that costs nothing and the one an item with an empty box is treated as. It is still a free-text box, because a validator that rejected your wording would be a world that would not load: write waterlogged or rune-etched and humming and it simply reads as ordinary. But write a word the ladder knows — worn, battered, cracked, fair, ruined — and it means something, including inside a sentence: “worn at the grip” is worn, and “good, if a little battered” is battered, because the worst word you used is the one that counts. Phrases work too (barely holding together, seen better days).

What reads it: taking a thing apart is harder the worse its state (+2 average, +4 worn, +6 ruined, added to whatever DC the Game Master set, and shown to the player), and what a dismantling yields comes out one rung below the thing itself — so a good sword gives average iron, and nobody can take a blade apart and rebuild it forever. If you give a yield its own condition in the dismantle directive, yours is kept; the one-rung drop only fills in where you said nothing.

A condition is always a fact about one object, never about its kind — worth stating because the engine got it wrong for a fortnight and the symptom was invisible from the pack. The rung a dismantling works out belongs to that scrap, so it is written on the piece the player is handed and never on the material’s Compendium entry. Sent to the entry it would be inherited by every copy minted afterwards and saved with your world: one ruined sword taken apart, and every scrap of iron anybody ever gets in that realm is the scrap off that sword. If you see a material in the Compendium whose Condition you did not write, that is what it was; it is fixed, and the box is yours to set.

One more, because it looks like a bug from the outside: salvage merging into stock you already hold takes the worse condition. Things stack by name, one entry cannot hold two states, so ruined scrap dropped into pristine scrap makes the whole entry ruined. That is deliberate — the alternative is that a player holding a little of something can launder any amount of damage through it — and it is the same rule that bounds a craft by its worst material.

It matters for authoring: an item you write as worn is now meaningfully worse to work with, not just described that way. If you want flavour without a penalty, use a word the ladder does not know.

And it bounds what can be MADE from a thing. A craft’s result takes the lower of two figures: how well it was made (the grade the player’s hours and rolls earned) and the worst condition among the materials that went into it. So scrap iron makes a poor sword however long somebody works at it, and the condition you put on an ingot is a real constraint on what a smith can do with it. The grade still names and prices the piece, so a Pristine Short Sword in good condition is not a bug — it is a beautifully made thing out of ordinary stock. A critical on the final stage of the work beats that bound by one rung, which is the one way a smith exceeds their materials. Materials whose Condition box is empty impose no bound at all, so you only need to fill it in when you mean it.

The skills are already in your cataloguePhase 1 shipped, so they are rows you can open, edit and rename today: Crafting at tier 1 on INT, and five at tier 2 behind it — Metalwork (STR; metal and glass), Leatherworking (DEX; hide, fur, sinew), Woodworking (DEX; wood, bone, horn, stone), Tailoring (DEX; cloth, thread, cord) and Engraving (DEX). Four of those are families of material, each absorbing several, because a skill per material is a tree nobody can afford to buy into. Engraving is not a material at all — it is the fine decorative pass over a piece already made, and it will add a stage to a craft rather than replace one.
Crafting is the only gateWorth knowing before you author around it: the five crafts are investment, not permission. A character with Crafting alone may attempt anything, and the Game Master sets the bar — high, or too high for them today, but never a refusal for want of a craft. So the tier-2 layer is a build rather than a checklist: an armourer takes Metalwork and Engraving, a thief takes Leatherworking and Tailoring. If you author a craft of your own, leave its class gate empty and do not hard-gate it, or you turn proficiency back into permission. Dismantling reads them now. A player can ask to take something apart, and the engine owns what follows: it checks the item is really in the pack, allows one attempt per item per in-world day, rolls against the craft the GM names (at no proficiency if they have not learnt it), and on a pass removes the item and grants what it was made of. Magical yields are stripped, because magic is not a material a hammer can work.

The parts do not have to exist in your world already. The Game Master invents them and the engine creates them — you need not have authored an “Iron Ingot” for a sword to yield one. This is the exact opposite of the rule on making things, and the two are worth holding apart: a craft may not conjure its materials, because there the player is asking the world for something it may not have; a dismantling only takes out what the subject was already made of, and the subject is a real object the engine has just checked is in the pack. The constraint is plausibility rather than inventory — whatever comes out has to be plausibly that object taken apart, which is what stops a dismantling becoming a way to hand out treasure.

Which makes an item’s Description the field that decides this, so write it accordingly. The Game Master is handed each carried item’s Description and (truncated) Detailed description alongside its name, and those are what it reasons from. A chest called Bound Chest and described as “a wooden chest with iron bands” comes apart into scrap wood and iron bands; the same chest with an empty Description gets whatever the model supposes chests are generally made of. If a thing has parts worth recovering, say what they are in the Description. It costs you a clause and it is the difference between the parts being yours and being invented.

The distinction the Game Master is asked to draw is between an assembly and a single whole, and your wording is what settles it. A chest, a sword, a lantern are assembled from parts and come apart into them. A clay pot, a glass bead, a cast ingot are shaped in one piece from one substance and do not revert to it — a pot does not dismantle into clay, because that is unmaking rather than taking apart. Where breaking such a thing still leaves something usable the Game Master names the broken form instead: pottery shards, not clay. And a single whole can still carry separable things: a clay pot set with gemstones yields pottery shards and the gemstones, because the stones were fitted to it and were never part of its substance. A thing with no parts and no useful broken form — a candle, a plain cup — yields nothing, and the Game Master is told to say so rather than invent filler.

An item can settle this once, and then it stops changing. Give an item a Comes apart into list and every dismantling of it yields exactly that — the Game Master’s own suggestion for the turn is ignored, because the world has already answered. Without one, the parts are worked out afresh each time, so the same sword can give iron and leather today and steel scrap and a grip wrap tomorrow, and neither is wrong. The list is read-only in the editor, on the item card and in the item dialog: it is written by the Game Master when it creates the item, and you can have it added to an existing item at any time by asking — record what a short sword comes apart into. That is not a missing control. The list has to stay plausibly the object, which is a judgement about that object’s own description, and a box you could type in is an invitation to put a ruby in a sword.

And the first dismantling settles it for you. Where an item has no list and somebody takes one apart successfully, the engine writes what came out of it onto that kind of item — so the second short sword comes apart into exactly what the first did, and nobody works it out twice. The player is told when it happens (you will not have to work out what one of these is made of again) and the Logs record it, because it is a change to your world that nobody asked for. Three things about it are worth knowing. It happens on a success only: a failed attempt taught nobody anything, and the guess at what was inside was never put to the test. It is recorded against the kind of item rather than the one that came apart — that one has just been consumed, and what a sword is made of is a fact about swords. And it never overwrites: an item that already answers this, whether you authored the answer or an earlier dismantling did, is left alone. If the first one got it wrong, have the Game Master record it again — a bound chest comes apart into scrap wood and iron bands, not planks and nails — which is the same path that wrote it in the first place, and the correction sticks the same way. A one-off with no catalogue entry behind it (a scrap of room clutter, something a player made) comes apart exactly as it would have and simply has nowhere for the lesson to live.

What the list does not hold is condition. A parts list says what a thing is made of — names and counts, which is all the card shows. What state those parts come out in is decided at the time, one rung below the thing that was taken apart, so a pristine sword and a ruined one give the same parts in different states off the same list. That is deliberate, and it is what keeps the ladder honest: a condition stored on the list would outrank it for ever, and one first dismantling that happened to yield pristine scrap would have every later ruined sword giving pristine iron. The Game Master may still name a condition for a part in the turn it invents one and that is honoured — it simply does not become part of the record.

What the list does hold is a price on each part, and that price is the one figure here the engine will argue with you about. Every part carries a value and a count, and together they are meant to come to a fraction of what the whole thing is worth. That is what makes taking something apart a decision rather than a trade: you give up a sword and get back less than a sword. Reverse it and dismantling becomes a money printer — buy the thing, take it to pieces, sell the pieces, repeat — and nothing else in the game closes that loop. The condition rung the parts lose on the way out reads like a brake on this and is not one: nothing in the engine prices an item by its condition, so a worn ingot fetches exactly what a pristine one does at the counter. The wear matters to what you can make from it, never to what you can sell it for.

The arithmetic to check is the one that is easy to get wrong: a part’s value is what one of them is worth, so three boards at 10 is thirty, not ten. The Game Master is told all of this now, in both of the places it authors a parts list, so a list it writes should already obey it. The ones to look at are lists written before that instruction existed, and your own hand-authored prices.

Two findings in the world evaluation watch it for you, and they are the only part of the crafting system the report can see — everything else about a craft is invented in the moment and exists in no world data to audit. A thing worth more in pieces than intact is reported when the parts come to as much as the whole or more. Parity counts: parts worth exactly the whole make dismantling free, and a free dismantling is not a decision either. A salvage part that carries no value is reported when a part has no price at all — which matters more than it looks, because the first time somebody takes one of these apart that part is minted as a real catalogue entry worth nothing, and from then on it stacks by name with every other one. The player collects something worthless and no later authoring can tell it from a part you meant to be worthless.

Both arrive as Your call rather than Ask the GM, and that is the honest badge rather than a cautious one: the data cannot tell which number is wrong. Parts worth more than the whole may be parts priced too dear, or an item that has been underpriced since the day it was authored, and a model told to “fix the balance” would pick a side and write a price nobody chose. Open the object, decide which half is wrong, and fix that one.

What the report deliberately will not tell you is whether the parts were the right parts, and it is worth knowing why, because it looks like an omission. A chest your description calls copper-banded should come apart into copper scraps even if your world holds nothing else copper — the parts have to come out of the object’s own description, and that description said copper. In the data that is indistinguishable from the Game Master minting an “Iron Bar” beside the “Iron Ingot” you already have, which is the thing it is asked to avoid. The only difference between the two is a judgement about the object’s prose, and a check that guessed at it would start flagging your correct authoring. If a near-twin ever does slip through, it costs very little: ask the Game Master to make the thing and it will reconcile the intent against whatever the player is holding, or tell them why the two are not the same after all. The one place it bites is a stored method, which matches its inputs by exact name and runs with no Game Master in the loop — so it will say short Iron Bar while the player holds ingots. That is a shortcut declining, not a craft blocked; ask for the thing the ordinary way and the next success overwrites the stale method.

Leaving it empty is an answer too. An item with no list does not mean “nobody got round to it” — it means the Game Master works the parts out at the time, and for a thing that genuinely does not come apart it will say so. And every part handed back is marked salvage whether it came from a list or was worked out on the spot, so what a working left behind is tellable from what somebody bought. That is a different label from material, which is what the catalogue’s own stock carries: salvage says where a thing came from, material says it is stock a craft consumes, and a thing can honestly be both.

Containers: empty ones come apart, full ones do not. A chest the player has emptied is boards and iron bands like anything else. One with something still in it is refused, and the player is told why — breaking it would take whatever is inside with it. That reads off the CONTENTS and not off whether the player has looked: a locked box nobody has opened is still refused while it holds something, since a character with their hands on it knows a full one from an empty one. If you want a container that can never be taken apart, leave something in it.

One thing that looks like a bugTwo identical swords share one cooldown. acquireItem stacks pack entries by name, so a second Iron Sword merges into the first and the day marker rides on the entry — take one apart today and the other is unavailable too. Same rule that makes a brewed concoction a “Potent Knitbone Salve” rather than a salve with a potency field: to this engine, two identical swords are two of one thing.

Editor · ItemsItems

Editor › Items

The catalogue of ordinary gear — weapons, armour, consumables, keys, books, treasure, and clutter. (Magic items, spells, and spellbooks have their own tab; plants live under Environment.)

The Items tab
Editor › Items. Item cards with type, value, weight, icon, description, and — for containers — hidden contents, locks, and traps.

GM box examples: "add a silvered dagger that harms undead" · "make the Health Potion worth 20 copper" · "add a locked chest to the vault holding a jewelled crown".

Item fieldMeaning
id, name, typeIdentity and kind — weapon, armor, wearable (jewelry, dress and regalia — worn for what it IS rather than what it stops, bordering armor), consumable, key, book, spellbook, scroll, plant, treasure, gem, ring, mineral, animalpart, misc, …
description, detailedDescriptionThe blurb and a fuller write-up (✨-editable).
value, weight, size, conditionWorth (always a copper integer, whatever currencies the world defines — see World › Currency), how heavy, how much container space it takes, and wear.
icon / iconImage, image, promptAn emoji or a generated glyph, a card picture, and its image prompt.
subtypesKind/taxonomy tags for the item (e.g. sword, one-handed weapon) — a specialization of type.
classesOptional — character classes the item is restricted to (empty = any class may use it).
ac, acBonusac: the base Armour Class a piece of body armour sets. acBonus: what every other worn piece (coif, helm, shield) adds on top. Two body pieces give one AC, decided by the body armour rather than the order worn.
damage, damageBonus, damageTypeFor weapons: the damage dice (NdX / NdX+M), a signed magic modifier, and the type (slashing, piercing, …) — the offensive twin of ac. Shown wherever AC is; combat consuming it is a later phase. See the Weapon Damage design doc.
lore, loreKey, loreXp, loreUnlockedHidden history, how it's earned, what earning it pays, and whether this character has earned it yet.
minorFlag for incidental room dressing — playable but kept out of the catalogue and Compendium.
teachesFor a book or a scroll — a skill id or a list of them — a thicker primer teaches several, one lesson per read, in whatever order the reader doesn't yet know. For spellbooks, spell id(s), inscribed rather than read.
teachesReagentsFor a book or a scroll — an array of reagent ids. A receipt: reading it sets each formula down in the reader's compendium, no check and the item stays in the pack. Worth writing only for a reagent marked secret — teaching an open one grants nothing, and the card's Receipts picker and the item's own chip say so.
chaptersFor a book or a scroll — what it says, as a list of chapters. Each carries a title, a page of text (up to 4,000 characters, a chapter being a page), and optionally a plate: an illustration with its own image prompt, drawn to the left of the words when the chapter is read. Authored on the item card's Chapters section — each chapter is a chip, and a chip opens the chapter editor. An item carrying any chapter is never consumed, even once every teaches lesson is spent; one with nothing in it reads as empty.
passageThe single page a book carried before chapters existed, and still does. A book with a passage and no chapters reads exactly as it always did and shows its page as one untitled chapter on the card; saving any chapter of it converts the field. Nothing migrates on load, so an older world file is untouched until you edit it.
languageWhich entry in World › Culture › Languages this object is written in — a fact about a book, spellbook, or scroll alike, not only a book's passage. A reader who hasn't learned that tongue's script sees glyphs; one who knows the script but not a given word sees a pronounceable placeholder instead of English.
teachesScript, teachesWords, bilingual, teachesLanguageA book or scroll (never a spellbook, which is inscribed rather than read) that teaches the tongue itself rather than — or besides — speaking in it: the alphabet as one flag, specific words as a list granted only where the lexicon defines them, the whole passage as a Rosetta stone whose every lexicon word is learned at once, or — the largest, meant to stay rare — teachesLanguage, a whole grammar that grants fluency: every word the tongue's record ever pairs, now and later, subsuming the other three. All deterministic: no GM call, no check, no consumption. NPC-taught words (teachWords in conversation) are P4 of the system and not yet built.
containerMakes the item a container — see below.

Containers, locks & traps

Any item can be a container. Its container object holds hidden contents (concealed until opened), a capacity, a lock (method none / key / pick / button / sealed, a pick DC, an optional key ref, and hidden-button details), and optional trap fields — a labelled effect that springs on opening, with detect and disarm DCs. Containers and traps are covered in the Containers design doc.

Treasure

Items of type: "treasure" are special: they're filed into the player's admired Treasure trove rather than usable inventory, and finding them raises Fame. Use them for trophies and hoard-pieces.

Editor · MagicMagic — Items, Spells, Spellbooks, Schools & Concoctions

Editor › Magic · inner subtabs: Items / Spells / Spellbooks / Schools / Concoctions

Everything arcane lives here, split five ways.

The Magic Spells subtab
Magic › Spells. The world grimoire — each spell shows its school, level, MP cost, effect, and which tomes teach it.
  • Items — magic-type items (rings, wands, relics). The same card as the Items tab, scoped to the "magic" category. "add a ring of invisibility".
  • Spells — the world grimoire. "add a level 3 healing spell" · "make Firebolt cost 8 MP and deal 18 damage". Fields: id, name, school, level, mpCost, target, description, icon/image/prompt, an effect summary, and a GM-facing Usage note on what casting actually does in and out of combat (✨-authored).
  • View (in a book's Actions row, when it has at least one chapter) — the one control on an item card that is not an editor. It opens the book as the player meets it, shaped like an open book: the plate is the left page and fills half the width, cropped to fill it the way a printed plate is; the words are the right page and scroll on their own, so the picture facing them stays put. In the book's own tongue, translated only as far as the current character has got, one chapter at a time with a row of pips to move between them, each move turning the page in the direction you went. On a narrow screen the two stack and the plate becomes a band; a reader whose system asks for reduced motion gets no turn at all. The Chapters editor cannot answer this, and structurally never could — it shows the English, because the English is what you are typing — so until now the plainest question about a book in a world's own alphabet, can they read any of this yet?, meant putting a copy in the pack and reading it in play. It reads the character's knowledge and never writes it: nothing is learned, nothing spent, and there is deliberately no Translate button, that being one attempt per book per level and an act of play rather than something a preview should burn.
  • Chapters (on a book or scroll card) — what the thing says. Each chapter is a chip; + Chapter and any chip open the chapter editor, which puts the plate on the left and the page on the right — the same arrangement the chapter is read in. Three ✨ buttons: one beside The page asks the Game Master to write the chapter from the book's title and description and every chapter before this one, in full, so chapter four continues from chapter three instead of opening the book again; one to the right of Title names the chapter from what it says, refusing an empty page rather than inventing a heading for a chapter nobody has written yet; one under the plate prompt asks for a picture of this chapter rather than of the book. The plate is painted into the dialog and only reaches the book when you press Save, so Cancel really does discard it.
  • Spellbooks — the tomes that teach spells. Each card adds a Teaches section linking to the spells it grants. "add a tome that teaches Firebolt" · "make The Emberleaf Codex also teach Frost Lance". A spellbook item's teaches field is a spell id or list; reading it learns those spells. The app can even mint an evocative tome for a given spell for you.
  • Schools — one card per school the world's own spells and craft skills actually declare (derived from live data — a school appears without anyone maintaining a list). Each carries a name, a type of magic (divine, arcane, earthen, or whatever a world calls its kinds), an origin, a description, and a governing attribute that, once set, overrides the engine's own school→attribute table for every spell in that school — a world may re-point Restoration off WIS, or give a school the engine never named an attribute at all. Left blank, nothing changes. There is no GM box here yet; the cards are hand-edited.
Spells vs. skillsSpells are cast from a memorised loadout and cost MP; they're learned only by reading spellbooks (never consumed). The whole magic system — the Spellcasting skill as the gate, field spellbooks as leveled loadout carriers — is laid out in the Spells and Player Spells design docs.

Concoctions & Reagents

Concoctions is earth magic: compounded from ingredients by ritual rather than cast from a loadout, governed by the concoction skill (CON, tier 2, open to any class) rather than Spellcasting. Three tiers, three vocabularies — an ingredient is a real item (subtype ingredient) the player finds, buys, or cuts off a corpse; a reagent is a transformation of one, and is not an item at all — a record in world.reagents, with a count of prepared measures kept on the player; a concoction is brewed from reagents and is an item again. The tab's two inner panels:

  • Catalog — one card per recipe (world.recipes): the governing skill and dc, the hours a working takes, a reagents map of reagent id → count, the batch a single working yields, the yields item (defaulting to the recipe's own id — a concoction is the item it makes), a description, and a Preparation box for the rite itself in plain prose. + Add is disabled here, because a concoction names the item it yields and only the Items tab can mint one; ask the GM box for it instead once the item exists — "recipe a Knitbone Salve from comfrey root and beeswax, worked by poultice, DC 13".
  • Reagents — one card per reagent record, each carrying an origin (where in this world it's got — what makes it findable rather than merely purchasable), its own preparation (how the raw ingredient is readied, distinct from a recipe's rite worked on several reagents together), the recipe that yields it, a skill (the craft gate — defaults to concoction rather than to ungated, so a world cannot open the tier by omitting the field), and secret (the formula gate — unticked, which is common knowledge, unless a keeper is meant to hold this one).

Playable end to end. A player prepares an ingredient into a reagent — a Prepare button on the item's card, or typing prepare <reagent> — labour rather than a roll: it spends the ingredients and the recipe's hours and always succeeds, once two gates are open. The craft gate is the reagent's own skill (see above) — without it, preparing refuses by name: "Preparing Knitbone Meal is Concoction work, and you have not learned it." The formula gate is secret — a character who has not been taught a secret reagent is refused with "You do not know how to prepare Cured Venom." A receipt book (an item of type: "book" carrying teachesReagents, an array of reagent ids) teaches a secret formula the moment it's read: no check, and unlike a skill book, the book is never consumed. Marking a reagent secret with no book or keeper anywhere in the world leaves it unobtainable, which nothing yet checks for. They then brew a concoction from reagents on hand — a Brew button, or brew <concoction> (brew 3 knitbone salve to scale up) — which spends the reagents and hours before rolling d20 + Concoction proficiency + CON against the recipe's DC; a failed roll still costs what was spent. The roll uses the engine's outcome ladder: a natural 1 spoils the working, a natural 20 lands it at the best grade, a total at or above the DC grades on margin (Workable, Sound at +5, Potent at +10), missing by one or two yields a thin batch (half the doses, floored, never below one, at the plain grade), and missing by three or more spoils it. dc (default 12) and hours (0 is legal) are authorable on the recipe with no upper clamp; the hours are discounted by the player's proficiency (skill level + 1, capped at 5) by about a tenth per step above the first, to the quarter hour — never by grade, which is only known after the clock has advanced. The grade is carried in the brewed item's own name and description, since the game adjudicates a consumable from its description rather than a hidden field. A recipe's batch and the player's chosen scale multiply how many doses one working yields; the DC and hours do not grow with the batch, so one roll governs the whole of it. The GM's dossier now carries the craft — what earth magic is, that prepare/brew are the player's own to invoke, that grade multiplies effect, and the measures currently on hand — and is told explicitly never to move a measure, decide a working's outcome, or hand over a brewed item on its own initiative.

Nothing yet stops a workingNo place, combat, or weather gate exists: a concoction can be brewed mid-fight or in a blizzard exactly as readily as at a quiet hearth. This is an open decision (Decision M), not an oversight to route around. See Reagents & Concoctions for the fuller picture.

Editor · QuestsQuests

Editor › Quests

Quests are threads of story told in beats. Crucially, they are GM-eyes-only: the player never sees a quest list or a beat title until play organically triggers it, at which point the beat is woven into narration and written to their Journal. As DM you see the whole thread — every beat, locked and unlocked, with its hidden trigger.

The Quests tab
Editor › Quests. The full DM view of every quest thread as a vertical timeline of beats, each showing its lock state, trigger, tagged NPCs, and rewards.

GM box examples: "add a three-beat revenge quest against Baron Vale" · "give the missing-child quest a reward of the silver locket" · "change the final beat's trigger to entering the crypt at midnight" · "remove the smuggling side quest".

Quest / beat fieldMeaning
Quest id, title, summaryIdentity and a GM-only description of the thread.
Beat id, titleIdentity and the heading the player eventually reads.
Beat textThe Journal entry shown to the player once the beat unlocks.
Beat triggerGM The natural-language condition that unlocks it. Never shown to the player.
Beat npcsExact NPC names the beat concerns — cross-referenced into the Compendium.
Beat locationOptional — the room id (or exact room name) where the beat takes place. The Journal shows it as a clickable Location chip that opens that room's popup. Omit for a beat with no single location.
Beat rewards{ ref, quantity?, note } — an item, a count, and a GM-only note on how it's obtained. Delivered when the beat unlocks.

Each beat's badge toggles its lock state so you can test a thread without playing to its trigger (see Testing your world). Beats unlock one per turn, in order, only when their trigger is genuinely met.

Edits to journaled beats are guardedIf an edit would remove or change a beat the player has already unlocked (it's in their Journal), the Editor shows a confirmation listing exactly which entries are affected before applying. Non-destructive edits apply immediately. Quests are covered further in the Quests & Journal doc.
Part IV · Prompt & Image Generation

Prompt & ImageHow art works

A world can be entirely text, but a handful of images transform it. The Lost Realms is built so that one line of visual direction — your Art Style — gives the whole world a consistent look, and so that the GM can write the individual image prompts for you.

Three ideas make the whole system click:

Style is global

Your world's Art Style is prepended to every image prompt at generation time. Change that one line and every banner and portrait re-skins to match.

Prompts are subjects

Each object stores a subject-only prompt — "a grizzled gatekeeper before a village gate" — with no palette or medium words. The style supplies the look; the prompt supplies the thing.

The GM writes prompts

Every ✨ button hands off to the GM to author a prompt grounded in that object's data and your world's canon. You rarely type prompts by hand.

So the division of labour is: you set the style once and pick a provider; the GM writes the subjects; the app combines them and paints. The rest of this part shows where each of those levers lives.

Prompt & ImageThe Art › Style tab

Editor › Art · inner subtab: Style

This is the control room for your world's look. It has four sections.

The Art Style tab
Art › Style. The world Style Prompt (prepended to every image), the read-only World Tone, tone-matched Presets to copy from, and an Image Prompt test bench with Generate and Test.
SectionWhat it's for
Style PromptYour world's Art Style, live-editable. This exact text is prepended to every image prompt when art is generated. Rewrite it to change the world's entire look at once.
World ToneRead-only, from the World Builder. The presets below key off it.
PresetsReady-made styles for your tone. Choosing one drops its full text below so you can copy it into the Style Prompt.
Image PromptA test bench. Generate asks the GM for a random subject fitting your world; Test paints it through the real pipeline (style prepended) so you can preview your Style Prompt on a live image before committing.
Iterate here firstBefore you batch-generate a hundred images, dial in the Style Prompt on this tab. Generate a test subject, Test it, tweak the style, Test again. A good Style Prompt pays off across every image in the world.

Prompt & ImagePer-object prompts & the ✨ handoff

Almost every object that can have a picture carries its own image-prompt field and a small set of controls. The glyphs are consistent everywhere:

GlyphMeans
✨Ask the GM to write the prompt (or, on an item icon, generate the icon) — grounded in the object's data and world canon.
⬆Upload your own image for this object.
♻Regenerate the portrait/banner from its current prompt.
GeneratePaint an image for an object that has none yet.
▶Play a generated sound.

Where prompts live, by object:

  • Rooms — a banner for each of six times of day. Each slot has its own prompt, a ✨ to suggest it, a per-slot art-style override, and Generate/Upload/Regenerate. So a tavern can look warm at evening and cold at dawn.
  • Entities, items, factions, races, classes, spells, encounters, regions — a single portrait/emblem/scene prompt with a ✨, plus ⬆ upload and ♻ regenerate.
  • Items — additionally, a generated icon: the item popup's ✨ mints a minimalist game glyph (a single bold symbol on a transparent field) that then shows in place of the emoji across the sidebar, sheet, story, and Compendium.

The "Override World Art Style" checkbox

Every prompt block has an Override World Art Style checkbox. Ticked, that one object is generated from its prompt alone, without your world style prepended — for the rare thing that needs to look different (a map, a UI-like sigil, a photoreal insert). Leave it unticked and the object inherits the world look.

Why prompts stay style-freeBecause the style is applied at generation time, the stored prompts are pure subjects. That's what lets you re-skin the world by editing one Style Prompt — and it's why the GM is told to write subjects, not styles, when it authors a world. If you hand-write a prompt, keep it a subject description too.

Prompt & ImageThe Missing dashboard & batch Generate

Editor › Art · inner subtab: Missing

The Art tab opens on Missing — a dashboard of everything in your world that doesn't have art yet, grouped as Characters & Monsters, Races, Classes, Encounters, Rooms, Items (and, separately, their icons), Spells, Skills, and Factions. It's your worklist for dressing a freshly-built world.

The Art Missing dashboard
Art › Missing. Every un-arted object in one place, with a single gold Generate button that paints them all — one at a time — then turns green to Confirm.

The single Generate button at the foot batch-paints every card shown (respecting the name filter), one at a time: it writes any missing prompt first, then paints. While it runs, the button becomes Stop (click to finish the current card and halt), and each card leaves the list the moment it has art — so the tab shrinks as the batch works through it and what is left on screen is always what is still outstanding. A card whose generation failed stays, and the next run picks it up again. A summary is logged.

A good dressing passSet your Style Prompt → filter Missing to one group (say, just NPCs) → Generate, and watch the group empty. Working a group at a time keeps the batch short and lets you catch a bad Style Prompt before it's painted onto everything — the Review subtab is where you look at what came out.

The Review subtab is a gallery of everything that already has art, grouped the same way as Missing — click any cell to open that object's detail popup. It's the place to spot-check a world's art after a batch, without hunting through each catalog tab. The Music/Sounds subtabs remain shells, carrying the standard chrome but no authoring yet.

Prompt & ImageImage providers & keys

Prompts are provider-agnostic; the painter is a separate choice. There are two independent decisions: which image provider renders your pictures, and which optional keys you've supplied.

Choosing a provider

Providers are chosen in Settings (the gear), under Image AI (with parallel pickers for Icon AI, Map AI — the provider used for region maps (see World › Geography › Regions), Gallery AI, Sound AI, Music AI, Video AI, and Language AI):

ProviderNotesKey
PollinationsThe default and fallback. Keyless (an optional token raises limits). If any other provider lacks a key, the app silently falls back to this one.Optional token
Nano Banana (Gemini)Google's image models. A model picker offers Nano Banana (flash) and Nano Banana Pro.Gemini key
HiggsfieldA model picker offers Soul (1080p) and a faster 720p variant.Higgsfield key ID
OpenAIThe GPT Image models. Text-to-image only, so it is offered for Image, Icon, and Map but not for the Gallery or weathered banners.OpenAI key
fal.aiThe SANA family — a model picker offers Base, the very fast Sprint, and 1.5 at 1.6B and 4.8B, with three optional tuning fields beneath it (see below). Text-to-image only, the same three slots as OpenAI.fal.ai key

Keys are entered from the login screen's API Keys dialog (Pollinations, Nano Banana / Gemini, Higgsfield, OpenAI, fal.ai, ElevenLabs for sound, Runware for video, Tripo for 3D) — each optional, each stored encrypted on your device. On a Server Vault realm they are held on the server instead, entered once on the admin page and never sent to a browser. When a provider that needs a key doesn't have one, generation quietly uses Pollinations and notes the substitution.

Language AI has two halvesUnlike the other slots, Language asks two things of one provider (OpenAI only): an image call for the glyph sheet and a text call for the starter dictionary, so its picker shows a model row for each. Tracing a drawn or uploaded sheet into vectors is separate again — it runs through Glyph AI (Vectorizer.AI), which is vault-only and doesn't appear as a self-hosted key picker. See World › Culture › Languages.

Tuning SANA

Choosing fal.ai reveals three optional fields under the model picker: Inference steps, Guidance scale, and Seed. All three are blank by default, and blank is the setting that matters most — a blank field is not sent at all, so the model you picked uses its own tuned default. That is deliberate rather than lazy: Sprint resolves a picture in a handful of steps where Base wants roughly eighteen, so any number pinned across all four variants would suit one and spoil the rest.

  • Inference steps — how many denoising passes the model makes. More is generally finer and slower.
  • Guidance scale — how tightly the picture is held to your prompt. Higher obeys the words more literally; lower gives the model more room to compose.
  • Seed — pin one and the same prompt paints the same picture every time, which is how you refine wording without the composition shifting underneath you. Left blank, every generation gets a fresh seed.

A value out of range settles to the nearest one the API accepts, and clearing a field hands the decision back to the model. Whatever you set applies to every fal slot — Image, Icon, and Map alike.

Two different "models"Don't confuse the GM text model (the Claude model picked on the login screen, which powers narration and every ✨/GM-box authoring call) with your image provider (chosen in Settings). They're separate systems: the text model writes the prompt; the image provider paints it.

Prompt & ImageVictory banners

When a player wins a fight, the story can carry one wide scene of the blow that ended it: that character killing that creature in that room, by the means they actually typed. It is the one picture in the game the DM does not author — and the one that most directly repays having authored everything else.

It is assembled from art you already made

Nothing about the banner is invented. Four things are gathered and handed to the image model together, each read from its own home:

WhatComes from
The heroThe player's own Character › Equipment full-body render, if they have generated one — it already shows their kit. Failing that, their face portrait plus their equipment written out, because a face alone paints an unarmed person.
The foeThat being's portrait, resolved the same way its popup resolves one.
The placeThe room banner that is on screen when the fight ends, used as the backdrop. That is the weathered repaint if the sky has been painted into it, otherwise the pinned slot if you pinned one, otherwise the current hour's. A victory in the rain is painted in the rain.
The deedThe player's last command and the GM's narration of it, read out of the story. “Stomp on the rat” paints a boot; “stab it with my dagger” paints the dagger.
The spellIf one was cast: its picture, its description, and its image prompt — the only one of the three that says what the magic looks like.
The scaleThe foe's size, written out against the player's own. This is the one thing the pictures cannot supply: each reference image is cropped to fill its own frame, so a rat's portrait and a hero's portrait are the same size on the page and nothing inside either says which subject is smaller. A creature with no size set gets no scale sentence at all rather than a guessed one — which is worth knowing, because it is why an unauthored rat once came out as tall as the person killing it.
This is the payoff for a dressing passA world whose monsters have no portraits and whose rooms have no banners produces no victory banners — the feature declines rather than painting strangers fighting in a void. Every picture you generate on Art › Missing is an ingredient here, and a spell's image prompt earns its keep twice: once for the spell's own card, once for every fight the spell ends.

How often, and what it costs

Each banner spends one image generation. Settings › Imagery › “All Victory Banners” governs how often, not whether. Left off, only a notable victory earns one — a fight worth 20 XP or more, or a foe at least the player's level — so a corridor of rats does not become a corridor of banners. Turn it on and every win is painted.

It also needs a provider that accepts reference pictures, since the whole prompt is written around its attachments. That is Nano Banana, and the banner runs on the Gallery slot to get it — the same slot the portrait Gallery and weathered banners use, which is hard-wired to Nano Banana Pro exactly as they are. So there is no provider to choose: all it needs is a Nano Banana key.

Your other art stays where it isDeliberately not the Image slot, even though that one is labelled “portraits & banners”. Routing it there would mean repricing every room banner and item picture onto Nano Banana to switch one feature on. Gallery and Weather exist so a reference-taking provider can be configured for reference work alone — a victory banner is the third member of that family, and your Image slot is untouched.

Without a key the banner is declined outright rather than painted from the words alone, and it now says so in the story, under the victory recap, as well as in the Logs.

What it will not do

  • No second GM call. The narration already is the description of the scene, so nothing paraphrases it — the prompt is composed from the story and your world data directly.
  • One duel per fight. With several foes down, the banner shows the last to fall — the death the closing narration describes, so the picture and the words above it agree.
  • It keeps a dozen. The pictures live in Journal › Gallery — shared now with sleep pictures, merged newest first so the screen reads as a record of the campaign rather than as two lists — each folding the GM's own account of the kill beneath it; the story line only points at them. Past twelve the oldest drops out and its story line says the picture has aged out.
Deeper readingThe reasoning, and four decisions left open, are written up in Designs › Victory Banners.

Prompt & ImageSleep pictures

The victory banner's quieter sibling. A full night's sleep or camp paints one wide scene of the night into the story — the player's own body render asleep in the room they slept in — assembled from two pictures the world already has.

WhatComes from
The sleeperThe player's Character › Equipment full-body render, or their face portrait if they have no render. With only a face, the prompt describes their clothing instead — and says it is not armour, since a face alone otherwise paints a knight asleep in full plate.
The placeThe room banner that is on screen — the weathered repaint if the sky has been painted in, else a pinned slot, else the current hour. A night in the rain is painted in the rain.

Three prompts, and the branch between them is the feature

Each case exists because the obvious single prompt produces a specific wrong picture.

CaseWhat it asks forWhat it prevents
Camping, outdoorsADD a campfire to this place, lay them asleep beside it, and let the firelight light the scene.The room reference has no fire in it. Told only “this is a camp”, a model reproduces the place as given and leaves the sleeper in an empty landscape — and a fire with no lighting direction arrives pasted onto a daylit field.
Indoors, with a bedIn the bed already in the room picture, where the picture puts it.A second bed added in a clear corner while the room's own one stays empty.
Indoors, with nothingWhatever the room offers — a pallet, a bench, straw, the floor — and no bed is to be added.Furniture painted into your authored room. The room picture is the evidence; an awkward picture is the better failure.
“Has a bed” is not a new questionIt is the same answer that already decides the bed rest bonus — a scan of the room's descriptions and its items for a bed, mattress, cot, bunk or bedroll. One answer, both consumers, so the picture and the mechanics cannot disagree about what is in the room. If a room should read as having a bed and does not, the fix is the room's own prose or an item in it, and it will move the rest bonus too.
A camp under a roof is a sleepCamping indoors is downgraded to sleeping before anything else happens, and the picture is asked for after that — so a player who types “camp” in an inn gets an indoor sleep, not a campfire on the floorboards.

What it costs, and how to stop it

One image generation per night, which is a different rhythm from the victory banner's one per notable fight — nights come round every in-world day. Settings › Imagery › Sleep Pictures turns it off; it is on by default. Like the victory banner it composes from reference pictures, so it runs on the Gallery slot and needs a Nano Banana key — see Victory banners for why that slot and not Image.

It declines rather than guessesA room with no banner, or a character with no portrait, produces a dim line in the story naming the missing picture instead of a scene painted from nothing. A world given a dressing pass gets sleep pictures for free; one without art gets told what to generate.

Where it lands, and when

  • Before the night, not after. The picture is painted and shown FIRST; the rest notice and its eight-hour clock sweep follow it. The other order reads backwards — the player watches themselves sleep, wake, and only then sees the bed they did it in. While it paints, the header clock is held and the action box is locked, so nothing can be typed into the gap between lying down and falling asleep.
  • The clock sweep waits to be seen. The rest notice's progress bar does not start until the card is actually on screen. A freshly mounted picture reflows the story as it decodes, and a player who has scrolled up is not watching at all — and the notice is built showing the COMPLETED state, so a sweep that runs against a card nobody is looking at leaves them a bar that was finished before they found it. It gives up waiting after a few seconds and starts anyway, so scrolling away can never strand a night.
  • Nothing to paint costs nothing. Every refusal is decided without waiting, so a world with the setting off, no Nano Banana key, or no room art starts the night exactly as promptly as it always did.
  • In the story it is a room banner. Same size, same crop, and clicking it widens it to the full column exactly as a room banner does — it is a picture of a room and sits where that room's banner sits.
  • It keeps eight. The pictures live in Journal › Gallery beside the victory banners, merged newest first. Eight rather than the victory dozen because nights come round far more often than notable kills, and the two caps are separate so a week of sleeping cannot evict a campaign's fights.
Deeper readingThe three prompts, the ordering, and the decisions left open are written up in Designs › Rest Banners.

Prompt & ImageMusic & sound

Rooms can carry audio the same way they carry banners. Under a room's Audio section are Music and Sounds, each with six per-time-of-day prompt slots and a ✨ to have the GM write them. Sound slots add Generate Audio (synthesise a clip via your Sound AI provider and play it) and ▶ Play. Music's General slot has a composer of its own — see below.

Music carries one more, above the six: General — the mood score for the place itself, whatever the hour. It is the slot to fill when you want a room to have a sound at all, and the six times are for when a room sounds genuinely different at dawn than at midnight. Its ✨ asks a different question from theirs: where a time slot is written from that hour's mood, General is written from the room's name and description together with the world's tone and premise, so the score belongs to this setting rather than to any tavern anywhere. Sounds has no General slot — an ambient soundscape with no time attached is one the engine has no moment to play.

Under the General prompt is ♪ Generate Music. Pressing it opens a dialog: while your Music AI provider composes, the dialog says who is working and how long it has been at it; when the track arrives it shows the name it will be filed under, where that name came from — your provider's own filename, or the room's (“The Village Square Theme”) when the provider sends none — and a player, so you hear it before you commit to it. The gold Accept button does the filing: the bytes are stored, the track is added to Art › Audio as an Area sound, and it is selected in this room's Music box. Cancel discards the take and changes nothing — the generation is already paid for either way, so turning down one you don't like costs you nothing but the call. Press again for another take; accepted tracks pile up in the library rather than replacing each other.

Only General has it, and that is deliberate — a room loops one Area track, so a score per time of day would be six generations billed and five of them unhearable. The hour is what the Sounds prompts are for.

Under every one of the music prompts, General included, is ⬆ Upload Music — the other way a track gets here: write the prompt, feed it to a music model elsewhere, and bring the file back. It opens the same Add a Sound dialog the Art › Audio tab uses — same four fields — retitled Add Music, and pressing Add does three things at once: stores the file, adds it to Art › Audio as a new entry, and selects it in this room's Music box. Area is pre-picked and kept even if you swap it out, because a room's Music list holds Area sounds and nothing else — a track without it would land on the Art tab and then be missing from the very picker you opened the dialog to fill.

Whichever door a track came through, it ends up in the room's Music box near the bottom of the card — a short picker listing the world's Area sounds, with a ▶ beside it. Pressing ▶ plays the selected track and turns into ■; pressing it again stops. Only one preview plays at a time across the whole editor, so starting one here silences a sound you left playing on Art › Audio, and that card's button goes back to Play.

Where the audio goes — generated or uploaded — depends on how you are running. With a vault, the bytes land in its media store and your world keeps a short reference — which matters more here than anywhere else, since a music track is the largest thing you will upload and an embedded one is rewritten into your save on every write. In Direct mode there is nowhere to put it, so it is embedded and travels with the world. If an upload fails you still get the track, embedded, and you are told so rather than left to wonder.

Ambient beats of the "sound" kind can carry a play-with-ambient flag: when the beat fires in play, the app makes sure a clip exists (authoring the sound prompt via the GM and synthesising it if needed), stores it so it isn't regenerated, and plays it so the text and the sound land together.

The Sound AI and Music AI providers (currently ElevenLabs for both) are chosen in Settings and keyed from the API Keys dialog. They are separate pickers because they are separate services — a sound effect and a composed score are different endpoints, even on the same account — but one ElevenLabs key covers both, so there is nothing extra to enter. As with images, the standalone Music and Sounds Art subtabs are shells today — room-level audio is where sound authoring lives.

Part V · Running & Growing

Running & GrowingTesting your world

Authoring and playtesting are the same loop: build a little, play a little, fix what the play reveals. A set of DM-only tools lets you test without grinding through your own content.

The // debug console

As a DM, prefixing a typed line with // issues an out-of-character command that changes the live game directly — no story turn, no time passing. Use it to jump to the state you want to test:

// heal            — full HP/MP
// set dex 14      — set an attribute
// gold +100       — coin, xp, fame…
// level up        — jump a level (to test progression)
// give me a torch — conjure an item
// scar face left three claw scars      — give a lasting mark (// unscar 1 · // unscar all)
// tear clothing: torn at the front     — damage the one piece worn there (// mend clothing)
Staging scars and torn gearScars and worn damage normally come from the Game Master's narration, and only when a wound or a blow warrants it. So these two commands exist to set the situation up without waiting for a bear. // scar takes a body region (face, scalp, neck, shoulder, arm, hand, chest, back, abdomen, leg, or a plain word like cheek), an optional side, and what the mark looks like. // tear takes the slot or the item's name, a short label that becomes part of the item's name, and optionally, after a |, what the damage looks like. Only the worn piece is torn; identical ones in the pack stay whole. Both are cosmetic only. Repaint the portrait or the full-body render to see them.
The character on one pageClick the portrait in the sidebar to open the whole character sheet as a dialog over the story: seven tabs, from Profile (render, identity, vitals, attributes, statuses, ailments, marks and damaged gear) to Treasure. Its Print button lays all of it out as a single page in a new window and opens the print dialog, so you can print it or save it as a PDF. That makes it a quick record of where a playtest stood: what the character carried, what ailed them, what the world had done to them. The printed sheet shows more than the player's pictures do. It lists every mark, including unticked ones (as not painted), and every damaged piece with what the damage looks like. If nothing opens, allow pop-ups for the site and press Print again.
Ask the guide with //A // line phrased as a question (e.g. // how do I add a faction? or // what do encounter timers do?) is recognised as a how-to query and answered from this Dungeon Master's Guide in a popup — the DM counterpart to the player's / Field-Guide lookup — rather than changing any game state. Anything phrased as an instruction still runs as a live command.

Quest & hint testing

  • unlock the quest beat <name> / lock the quest beat <name> — jump a beat's state so you can test a thread without meeting its trigger. (The Quests tab's per-beat badge does the same by click.)
  • /hint — ask the GM for a subtle nudge toward the nearest quest thread. Useful for checking that a beat's trigger and nearby NPCs actually point the player where you intend.
  • verbose on / verbose off — lengthen or tighten GM narration while you read your own scenes.

Holding the world still while you work

The ⏸ Pause Story button in the story panel's corner stops the in-world clock and, with it, the whole living world — encounter rolls, ambient beats, NPC routines, weather, respawns, restocking. That is more useful while authoring than it sounds. Reading a scene you just wrote, checking a room's data against what the GM actually narrated, or stepping away mid-playtest all take longer than a turn, and without it the realm carries on: an encounter fires into an empty chair, a merchant restocks, the hour turns and the banner you were assessing is repainted for a different sky.

It lifts on your next game action and on nothing else — so a // debug line does not lift it, which is exactly what you want while poking at state between turns. It is unavailable during combat, which runs on its own clock. A held world is marked on the header clock, so it never reads as a hung app.

Its automatic siblingSettings › Pause World when Inactive does the same thing on a timer, holding the realm after a configurable stretch of idleness so a session left open overnight does not run the world down. The two are the same mechanism and may both be in force at once; the idle one lifts on any interaction at all, while Pause Story waits for you to actually do something. Only the idle one masks the app — a dimmed screen over the whole page saying the world is paused and that a move or a keypress will pick it up. It waits a beat before drawing, so coming straight back — you were reading, not away — resumes the world without the mask ever appearing. That mask takes the first click rather than passing it through, so returning to a frozen screen wakes the world instead of landing an action you did not mean; the interaction still reaches the app, so the mask clears on the same event that resumes the clock. Pause Story draws none, because nothing a mask could ask you to do would lift it.

The Logs tab

Every GM handoff — world edits, prompt authoring, turns — is recorded on the DM-only Logs tab, including the raw model responses. When an edit doesn't do what you expected, the log tells you what the GM actually returned.

The full debug familyThe complete // command set (attributes, vitals, coin/xp/fame, scars and worn damage, status effects, spells/skills, alignment, travel, world/being construction, app recolouring) is documented in the Field Guide's OOC meta-commands.

Running & GrowingEvaluating & fixing a world

Editor › World · inner subtab: Evaluate

Playtesting finds what feels wrong. The evaluator finds what is wrong — a door that opens onto nothing, a shop the player can never afford, a lore hook worth no experience, a quest beat that needs an NPC something else kills. It compiles your world the way a build does, reports what it can prove, and names a remedy for each finding. Fix World then hands the remedies it can back to the Game Master in one press.

Running the pass

Open Editor › World › Evaluate and press Evaluate this world. It runs on the Server Vault using the same compile pass as the command line (Tools/build-evaluation.js), so the two can never describe the same world differently. Without a vault there is nowhere to run it, and the tab says so.

It reads the draft in front of you, not the published library world — they differ mid-session, and the source line at the top of the report names which world was read. Art and audio are stripped before sending: a measured world export is 99% base64 pictures, and the evaluator never looks at one.

What comes back is three things stacked:

  • Six headline figures — objectives, findings (split error / warn / info), authored XP and the level it reaches, authored wealth and the purse it starts from, and what the economy reads as against the archetypes.
  • The action plan — the remedy cards, described below.
  • The findings themselves, worst-first, each with an Action button that jumps to the card that remedies it.
Silence is not a clean bill of healthThe pass only reports what it can prove from the data, and its bounds are deliberately generous — so it is trusted when it complains and never when it is quiet. "No findings" means nothing more than that this pass found nothing; it is not a verdict on whether the world is any good.

The action plan — and who each card belongs to

Every card aggregates one kind of finding and states the remedy precisely: why it matters, the act that closes it, which subjects it concerns, and — where the fix depends on another card — what it is blocked by and what it unlocks. Cards are ordered by leverage, not severity: declaring an economy before grading one saves three later cards, so the pass puts it first even though a dangling exit is the louder error.

The badge at the head of each card says whose job it is, and this is the distinction Fix World turns on:

BadgeMeansFix World
Ask the GMGenuine invention — writing lore that does not exist, giving a room the exit its description already implies. The card carries the prompt and names the roster to run it against.Runs it.
DM editA mechanical edit the pass has already worked out for you. Making it by hand is faster than asking, and cannot go wrong.Listed, left to you.
Your callThe missing input is your intent. Which of two colliding names survives is not a thing to be researched — it is a thing to be decided. There is nothing to hand the GM until you have chosen.Listed, left to you.

Each card carries Done and Dismiss (and Reopen after either). That checklist is stored per world in your browser, not in the world file — it is your working state, and exporting a world must not carry one author's half-finished checklist to whoever opens it next. A tick survives re-running the pass, which is the point: if a card you marked done comes back in the next report, it says so plainly rather than showing you a tick and letting you move on.

An Ask the GM card can be run on its own with its Execute button — it confirms, then puts the prompt in that roster's own GM request box and runs it where you can watch. A card offering two or more branches also offers Plan placement, which asks the GM to decide where each subject belongs first and opens the result for review before anything is written.

Fix World — the whole plan in one press

Working a report card by card is precise and slow. When you would rather defer the whole thing to the Game Master, the gold Fix World button at the top right of the Evaluate tab does it in one press.

It appears only once a report exists — before that it would be offering to fix a list nobody has compiled. When a report exists but holds nothing the GM can act on, the button stays visible but disabled, and says why on hover; hiding it would only leave you wondering where it went.

Pressing it opens the Fix World dialog, which shows the plan before it runs anything:

  1. What the Game Master will fix, numbered, in the order they will run — each with the instruction that will be sent and the roster (Rooms, Items, Quests, NPCs, Monsters) it will be sent to. A card blocked by another says so, and runs anyway: the edit still lands, it simply cannot be graded until the blocker is settled.
  2. What is left for you, greyed, each with its reason. These are not omissions — they are the dialog saying how much of the report this button can honestly close.
  3. Execute Plan. Nothing is written until you press it.

While it runs, each step shows its own state — waiting, asking the GM, done, or failed — and the dialog stays up throughout. It has to: each roster switches the Editor to its own tab as it goes, and a dialog that closed would leave you watching tabs flip with nothing saying why. It also stops taking input, because pressing Execute twice would run every roster again over a world the first pass has already rewritten.

A failed step does not stop the plan. The remaining edits are independent, against different editors; stopping at the first problem would leave you with a half-run plan and no way to finish but to start again from the top. The failed step is marked, the rest carry on, and only the steps that actually succeeded are recorded as run — so a failure still shows as open in the next report instead of quietly ticking green.

When the last edit is in, it re-runs the evaluation itself, so the report behind the dialog describes the world you now have rather than the one you started with.

It skips what you have already answeredCards you marked Done or Dismissed are left out of the plan entirely. The checklist is you saying you have dealt with something, and a button that re-opened that decision would be arguing with you.
This edits the world, not your saveFix World runs real GM edits against the draft you are evaluating — the same edits the per-card Execute buttons make, just in a batch you approve once. Your playthrough save is untouched, but the world is not. Take an Export World first if the plan is a long one, and read the list before you press Execute Plan: the instructions are shown in full precisely so you can decline one.
A report on the GM, as much as on the worldEverything the evaluator flags came from the GM in the first place. So handing a report back is also a test of the authoring process: as the GM's dossier gets better at creating things properly, the same worlds should come back with less to fix. A card that keeps returning after the GM has been asked twice is usually telling you about a missing directive, not a stubborn world.

Running & GrowingGrowing a live world

Worlds are meant to expand as play pushes at their edges. You have three ways to grow one that's already in motion:

  • From the Editor. Everything in Part III works on a live world — add a room where the player is headed, a quest to chase, an NPC who just became relevant.
  • World chunks. On World › Chunks, have the GM author a whole new region and stitch it onto existing rooms, or stub a large area to flesh out room-by-room from the Rooms tab as the player approaches.
  • In play. The DM command expand the world <brief> grows the world mid-session from a one-line description.

Because merges are additive, growing a world never overwrites what's already there — new rooms and quests are added, existing ones are left intact, and only catalogue collisions ask you to choose.

Running & GrowingKeeping it consistent

A few habits keep a growing world coherent:

  • Export often. Use World › Chunks → Export World as a backup before big changes. A world file is small and portable.
  • Lean on World Rules. Because your Rules are fed to the GM every turn, keeping them accurate is the single biggest lever for consistent play. Update them when the world's reality shifts.
  • Let reveals be earned. Faction reveal conditions, hidden lore loreKeys, and quest triggers all keep secrets until play earns them — resist spelling things out in public descriptions.
  • Write a key as the whole of the gate. The Game Master reads a loreKey as written and judges only whether the player did what it says; it will not add a person, a skill, a reputation or a second visit the key does not name. A key that asks the player to say something (“examine the hull and say aloud that it was burned from within”) is met once the examining is done and the words are said — the player is articulating what they understood, not submitting proof. If you want proof, a skill check or a particular person, put it in the key.
  • One Art Style. Resist per-object style overrides except where genuinely needed; a single Style Prompt is what makes the world look like one place.
Appendices

Running & GrowingWhat it is costing you

Authoring a world is the expensive half of this app, and it is expensive in a way that is easy not to notice: every ✨, every GM box request, every Update button and every world generation is a paid call on your key, and none of them announce a price. Typing /usage in play opens the ledger of what they have actually come to.

It is the same dialog the player has — the Field Guide describes it for them — but a DM reads it for a different reason. A player wants to know what a session cost; you want to know which of the things you do is costing it.

What it showsWhat to read it for
Spent so far, and GM calls with an averageThe headline, and the size of a typical call. An average that climbs across a build usually means the world itself has grown — every turn carries it.
Prompt tokens, with the share served from cacheThe number that decides most of the bill. A cached prompt token bills at a tenth of the normal rate, so this percentage matters more than the token count above it.
Cumulative spend and Cost per callThe second chart plots each call against a ten-call trailing average, which is where an expensive habit shows up as a run of spikes rather than one.
Show the numbersThe last sixty calls in a table — time, what the call was for, model, tokens in, cached, out, and cost. This is the view that answers “which of my tools is the expensive one”, because each row is labelled with the function that made it.
Per call site — the second table behind Show the numbersOne row per kind of call, sorted by how close each is to running out of room to answer in: calls, p95 out, budget, used, and how many replies were cut off. This is the newest view and the only one that is about a limit rather than a cost. See below.
Two things it will not doIt never invents a figure. A call on a model with no published rate is counted but not priced, and the total carries a + to say so — a made-up number in a spend report is worse than a blank. And the ledger is bounded at the most recent 5,000 calls; past that the oldest are dropped and the dialog says how many, so a total that begins partway through never reads as the whole story.

It is scoped to one character in one world, so it is a per-playthrough figure rather than an account total — and a fresh test character starts a fresh ledger, which is the cleanest way to price a change: play the same stretch twice and compare. Your real bill is in the Anthropic console; this is computed from the token counts the API itself returned.

The output budget, and the one row worth acting on

Every call the app makes sets a ceiling on how much the Game Master may write back — its output budget. You never set these; they are part of the app. But you can see them now, and the reason you should is that a call which runs out of room is billed in full and returns less than it meant to. That is the most expensive thing that can happen per unit of work: you pay for every token and get an answer that was cut off in the middle.

It is not hypothetical. A region map prompt for a nine-room region ran past its ceiling in September 2026 and came back mid-sentence — “…a torch-lit archway opening on” — and what the DM saw was a ✨ button reporting that the Game Master had returned nothing at all. The budget has been raised and the engine now rescues what it can, but the general shape of the problem is permanent: the app ships one number per call, and your world decides how much writing that number has to cover.

ColumnWhat it means
p95 outThe biggest reply this call realistically writes — as big as or bigger than 95 in every 100 it has produced. Deliberately one of the sizes actually seen rather than an average, because what matters here is the long replies and not the typical one. Read it against the calls column beside it: with a handful of calls it is simply the largest of them, which is the honest answer to a question asked of four data points and not a stable figure.
BudgetThe ceiling that call asks for. Reads not recorded for calls made before the ledger started storing it — that is an absence, not a zero, and it fills in as you play.
UsedThe p95 against the budget. Anything over 80% is highlighted: its next long reply is the one that gets cut off.
Cut offHow many replies from that call actually hit the ceiling. Any number here outranks everything else in the table — a high p95 is an argument, a cut reply is the thing itself.
You do not have to go lookingWhen a call site is under pressure, /usage says so in a line above the charts, naming it, without the numbers being opened. When nothing is, the line is not there at all. So the answer to “should I be checking this?” is no — it checks itself, and tells you.

What you can actually do about it is the honest part, because you cannot edit these numbers. Two things. The first is that you control the input: the calls that run long are the ones whose prompt is assembled from your world, and a region map prompt has to name every room filed under the region. A region of thirty rooms asks for a far longer reply than one of six, so splitting an overgrown region, or filing fewer rooms under one, is a real fix rather than a workaround. The second is to report it — a call site that keeps appearing in that column is a budget that wants raising in the app, and the table is the evidence for it.

Where the money actually goesTwo things dominate, and both are worth knowing before optimising anything. World generation is one very large call — and on a Fable model it bills at roughly twice an Opus, which is the trade that picker is offering. Play is many small ones whose cost is governed almost entirely by the cache share above. The living-world timers are cheaper than they look: most of them roll and resolve locally without reaching the model at all.

AppendixWhere to go next

This guide covers authoring. For the rest of the system, these companions go deeper:

The in-app Field Guide (guide.html)

The Player's Handbook (players-handbook.html)

The player-facing rules — attributes, combat & dice, skills, spells, containers & traps, reputation & factions, time, XP & leveling. Know these to author fair challenges.

Design deep-dives (Designs/)

DocCovers
combat.htmlTurn-based combat, initiative, AC/to-hit, fleeing, rewards.
weapon-damage.htmlThe per-weapon damage stat (dice, magic bonus, type) — the offensive twin of AC.
spells-and-scrolls.htmlThe spell system — how the world catalog, a class and a spellbook decide what is castable (§04), and everything from memorisation to casting.
character-spells.htmlThe player-facing side of the same system: the memorised loadout, field spellbooks, and how casting reads on the character sheet.
reagents-and-concoctions.htmlEarth magic — recipes, reagents, and the concoction skill. Playable end to end: a player prepares reagents and brews concoctions in play; nothing yet stops a working by place or circumstance (Decision M).
dialects-and-languages.htmlA world-authored alphabet and dictionary, rendering written matter in its own glyphs and teaching it through books and scrolls like any other skill. A dialect may inherit a parent tongue's script and most of its dictionary, overriding the rest, so a reader of the parent tongue stumbles rather than reads blind — unless taught the third tier, fluency, which grants every word a tongue's record ever pairs and is deliberately the rare, largest grant in the system. Built through P3 — including tracing a drawn or generated sheet into vectors (Glyph AI) and a Language AI that can author a whole alphabet and starter dictionary — plus a built-in Foreign Languages skill that lets any reader puzzle out one page of an unlearned tongue without teaching it the words. Only P4 — the Game Master authoring or teaching a language in the moment — remains proposed.
character-skills.htmlSkills — gating, checks, off-class penalties.
class-gating.htmlClass gating – why gear is a hard refusal and skills a soft penalty, and where to draw each.
player-progression.html · character-progression.htmlClass progression timelines and the attribute/vitals model.
entity-leveling.htmlHow level shapes a being's stats and abilities.
living-world.htmlThe clock, routines, encounters, and ambient life.
quests-and-journal.htmlQuest threads, beats, triggers, and the Journal.
standing-and-morality.htmlReputation, Fame, and alignment.
containers.htmlChests, locks, keys, and traps.

AppendixData-object cheat-sheet

The world's building blocks and where you edit each. Fields are detailed in the linked sections above.

ObjectLives inEditor tab
World framing (name, tone, theme, artStyle, rules, prologue)world rootWorld › Profile · Art › Style
Regionworld.regionsWorld › Geography › Regions
Factionworld.factionsWorld › Factions
Folklore (tale)world.folkloreWorld › Culture › Folklore
Religionworld.religionsWorld › Culture › Religions
Currency (+ denominations)world.currenciesWorld › Currency
Room (+ its doors)world.roomsRooms
Encounterworld.encountersEncounters
Entity (NPC / monster / animal)world rooms' entitiesEntities · Environment › Fauna
Raceworld.racesRaces
Class (+ progression)world.classesPlayer › Classes
Skillworld.skillsPlayer › Skills
Item (incl. plant, container, treasure, book)item catalogueItems · Environment › Flora
Magic item / Spell / Spellbookcatalogue · world.spellsMagic
Recipe (concoction)world.recipesMagic › Concoctions
Reagent (+ ingredient item)world.reagents · item catalogue (ingredient subtype)Magic › Concoctions (Reagents panel)
Language (script + lexicon)world.languagesWorld › Culture › Languages · fields on Items
Quest (+ beats)world.questsQuests

AppendixGlossary

TermMeaning
DMDungeon Master — you, the human author.
GMGame Master — the AI engine that runs and co-authors your world.
World BuilderThe New-World screen that generates a whole world from a concept form.
World EditorThe tabbed workspace for hand-editing a world's data.
GM request boxThe bottom-of-tab input that has the GM author data from a plain-language instruction.
ChunkA partial world (rooms/items/entities/…) that merges additively into an existing world.
StubA skeleton room — name, line, exits — to be fleshed out later.
BeatOne step of a quest, unlocked by a hidden trigger and written to the player's Journal.
Art StyleThe world's one-line visual direction, prepended to every image prompt.
Reveal / loreKey / triggerHidden conditions that keep factions, lore, and quests secret until play earns them.
Inherent skillA signature skill a class begins knowing.
SizeA being's scale on a six-step ladder from tiny to gargantuan, with medium being a person. A trait of the kind, not the individual. Decides what fits in a pack or through a grate, weighs a grapple or a shove, and gives a victory banner the one fact no reference picture can carry.
Sleep pictureThe scene painted when a player sleeps a full night: their own body render asleep in the room they slept in — in its bed, or beside a campfire under open sky. See Sleep pictures.
Door / BarrierA record on an exit with its own state (open/closed/locked), an optional lock, and whether it's hidden. Same mechanism either way — Barrier is just the label and picture for a boulder, portcullis, or the like. Engine-enforced: a shut or locked one genuinely blocks moveToRoom.
EvaluatorThe vault-side pass on World › Evaluate that compiles a world and reports what it can prove is wrong — unreachable, unaffordable, unpriced, or locked to one build.
Action cardOne remedy in an evaluation report, badged Ask the GM, DM edit, or Your call by whose job the fix is. Ticking it Done or Dismissed is your working state and stays in your browser.
Fix WorldThe gold button on the Evaluate tab that hands every Ask the GM card in a report to the Game Master in one approved batch, then re-evaluates.
CurrencyA family of denominations that trade as one kind of money (gold/silver/copper is the default). A world may mint others; a being decides which it will take via acceptedCurrencies.
RivalsTwo factions named at odds via rivals. Rising with one costs the player half as much standing with each rival; falling credits them nothing.
Concoction / ReagentEarth magic, in three tiers: an ingredient (a real item) is prepared into a reagent (a record in world.reagents, not an item), then brewed — per a recipe in world.recipes — into a concoction (an item again). Governed by the concoction skill rather than cast. Playable end to end via the Prepare and Brew verbs; authored on Magic › Concoctions.
LanguageA world-authored tongue (world.languages): a script (glyphs a reader must learn to see past), a lexicon (English ↔ its own words), or both. A book, spellbook, or scroll's passage can be written in one; a book or scroll teaches it the same deterministic way it teaches a skill, up to and including a rare teachesLanguage grammar that grants outright fluency. The alphabet grid can also be traced from a drawn or uploaded sheet (Glyph AI) or generated whole, with a starter dictionary, by a Language AI. The built-in Foreign Languages skill lets any reader puzzle out one page of an unlearned tongue without teaching it the words.
FolkloreA tale this world's people tell — myth, belief, fable, or legend (world.folklore). Earned through conversation like lore; an NPC's own folklore field lists which tales they can tell.
ReligionA faith (world.religions): a deity, a description, who keeps it (races/regions), and where (worship). Authorable on World › Culture › Religions; not yet narrated by the GM in play.

The Lost Realms — Dungeon Master's Guide. Companion to the Field Guide and Player's Handbook. Copyright © 2026 Brave You Worlds, LLC. All rights reserved. This guide is Game Content, not software: licensed under LICENSE-CONTENT, with no Change Date — it does not become open source on any future date, the way the engine does. Free to read, print and use in personal or non-commercial play, permanently; commercial use needs a separate licence — licensing@braveyouworlds.com.