Story authoring playbook
The engine will let you build a valid story of any shape. This is how you build a good one — rich, non-linear, and worth replaying — without spending months on it. It is written for an AI author driving the MCP, but a human in the Studio follows the same moves.
Start with the spine, not the first scene
Before any beat: agree a blueprint — the acts, the spine (the must-pass beats), the optional quests, the cast, the factions, the state that carries, and the endings. Approve the shapefirst; author into it. A campaign is not a pile of scenes; it is a spine with reactive branches hanging off it.
Build in passes (and read the signals between them)
- Spine — the through-line from start to at least two endings.
- Acts & optional quests — structure + side content.
- Cast & factions — the people and powers that react.
- Variables & relationship systems — the state that remembers.
- Encounters & D&D builds — real checks, saves, stat blocks.
- Payoffs — where every setup reads back (the most-skipped pass).
- Companion banter & reactivity — conditional dialogue on relationship state.
- Narration, media, art.
- Read the loop —
validate → simulate → get_health → get_world(see quality metrics). Fix what they name. Repeat. - Dry-publish → publish.
Use the recipes — don’t hand-compose what a stamp gives you
get_vocabulary lists reusable recipes (each with a full contract: purpose, when-to-use, required anchors, generated state, expected payoff). Prefer a recipe over wiring primitives by hand — the signature companion arc is 90–150 manual actions, or one stamp.
Wizard patterns (relationship / consequence)
- relationship-domino — the signature “Mira chain”: a bond you build early reads back as a rescue, a combat ally, and a stay-or-leave payoff. The template for a companion who matters.
- romance-rivalry — a charged relationship that turns on a check into devotion or a sworn rivalry.
- faction-favor — do a job to earn a faction’s favor, get their forces in a fight, spend the standing at a payoff.
- civilian — a help-or-exploit moment the world remembers (cheap, high-value reactivity).
- ending-callback — an epilogue montage where each resolved thread appends its own line.
Mechanics modules (subsystems)
- store — buy/sell/haggle/steal with a real merchant purse and stock.
- quest-board — optional quests with prerequisites and rewarded turn-ins.
- crafting-station — recipes gated on ingredients, firing craftItem.
- region — an explorable dungeon/woods with weighted random encounters and an anti-grind depth cap.
Some arcs have no single recipe yet — a relic-fragment hunt or an ancient-mystery trackyou compose from primitives (a counter variable + gates + a payoff beat that reads the count). The recipes are the shortcuts; the closed vocabulary is the rest.
Braid by default; branch only when the mechanics demand it
The cheapest reactivity is not a new branch — it is the SAME beat that reads back a prior choice in its prose (a {{ flag ? … : … }} binding). Prefer braiding (one beat, many remembered states) over forking (many beats to maintain). Fork when the paths genuinely diverge — a different fight, a different location, a locked door. A story that braids feels reactive everywhere; a story that only forks feels thin between the forks.
Richness is consequence, not count — do not game the metrics
This is the rule that outranks every number. It is easy to inflate a story into something that looks rich — many endings, many choices, many variables — and is actually shallow. Don’t.
- Every branch must change something real: knowledge, trust, resources, danger, the route, or the texture of an ending. A choice that changes nothing is fake agency (the validator flags it).
- Every durable variable must pay off. If you set it, read it later — in prose, a DC, a gate, or the montage. An unpaid variable is a broken promise.
- Every optional quest must alter state, reveal something, move a relationship, or change the finale. A side quest that only grants gold is a vending machine, not a story.
- Two endings that differ only by the last click are not non-linearity. At least one ending or late scene should depend on state built earlier — that is the difference between a branch and a payoff.
Chase these, not a high counter. The quality signals exist to catch the gap between “looks rich” and “is rich” — use them that way.
Authorship is recorded (and honest about it)
Every write an AI makes through the MCP is recorded and labeled at the event level — the provenance ledger tags it mcp-pat, and the owner sees it in the Publish Center’s “Recent activity.” To be precise: recorded today is each MCP/PAT write event; not yet is per-field authorship inside each node. So the human always knows an AI changed something and when — the finer per-field attribution is a future layer, not a claim we make today.
Next: A worked example →
