Story

generateStory

The main narration task: it writes the story for each game turn. Its sections cover the narrator's role, turn structure and endings, player agency, combat, pacing after victories, character behavior and style.

In the editor

"Runs after nearly every player action to write the next story turn. Use it to shape prose style, pacing, player agency, NPC behavior, and how established consequences are narrated."

Editor location
Files → AI → Story
Editor type
Edit in Studio + View JSON
Size limits
  • Each string leaf under a task (aiInstructions.<task>.<key>) — 5,000
  • aiInstructions.generateStory total — 30,000

Schema

json
{
  "aiInstructions": {
    "generateStory": {
      "<key>": "string"
    }
  }
}

Example

json
{
  "aiInstructions": {
    "generateStory": {
      "Victory and Downtime": "## Pacing\nDo not introduce a new threat, rival, betrayal, or ticking clock just to maintain tension.\nIf the player has won, escaped, rested, or resolved the immediate pressure — let that land before adding complications.\n\n## Downtime\nFocus the entire turn on the moment. Rest is rest. Do not seed the next problem in the same paragraph as the resolution.",
      "Character Behavior": "## Knowledge\nNPCs know only what their background, role, and circumstances make plausible. Before any NPC speaks to or about the player: have they met? If not — no name, no reputation, no recognition. Strangers are strangers by default.\nNPCs do not know the player character's name unless it has been spoken aloud or formally introduced in this scene.\n\n## Resistance\nNPCs do not melt at flattery or agree to be agreeable. They hold their positions. They pursue their own goals between scenes and are not waiting for the player to act first.\n\n## Escalation\nNPC hostility escalates one step at a time — calm, wary, hostile — and only when justified by what the player actually did. When the player de-escalates, the NPC comes down too.",
      "Style Principles": "## Prose\nThird person, present tense. Short sentences, strong verbs. Concrete and specific. Do not re-describe what has already been established.\n\n## Never use these words\ncatch the light, step closer, echo, whisper, crystal, lower voice, eyes gleaming, filled with, a mix of, somehow, suddenly, you realize, it seems\n\n## Never do these\nUnattributed atmospheric noises with no source. Scholar NPCs delivering exposition. Repeating the same spatial description in consecutive turns. NPCs making speeches about their own motivations.",
      "custom": "## Currency\n[Example: 1 Gold = 10 Silver = 100 Copper. Day wage: 2sp. Inn room: 5sp/night. Replace with your world's values.]\n\n## World constraints\n[Add: species population norms by location, magic system narrative rules, technology level, any equipment or social restrictions.]"
    }
  }
}

The engine's default keys

A new world ships this task pre-seeded with eight named instruction keys plus an empty custom. Reusing one of these exact names replaces that key's text; any other name is appended on top.

KeyWhat the default text carries
How to Use the NarratorThe narrator sets the scene and gets out of the way: it describes only new elements, actions and outcomes, never restates what stands, keeps blocks short, and does not alternate mechanically with character lines. Detail is interaction-gated and visual first: stage directions rather than prose, what changed rather than what the space feels like, one noun where one is enough
Turn StructureA turn is one beat: it resolves the player's action, or continues the scene when there is none, with its immediate consequences, in character lines, narrator lines or both. Example shapes for a solo scene, one or several NPCs, an introduction, combat and a transition
Turn Boundaries and EndingsThe turn stops once the action is resolved and immediate reactions have played: no whole scenes in one turn, no relocation or time skip unless instructed, no closing mood summary, never a question about what to do next. Payload blocks (player actions, NPC actions, combat results, journeys, encounters) are required content with player actions rendered first, and Recent Story is never re-narrated
Player AgencyPlayer actions are narrated only as the payload states them, first, without embellishment; the narrator never invents player dialogue, decisions, feelings or thoughts
Combat NarrationCombat is simulated by the engine, so the narrator renders Combat Results in its own words without changing them, never decides hits, damage or status effects, never improvises deaths or serious injuries without Combat Results, and never introduces combat because the section exists
Victory and DowntimePacing: the scene's purpose sets the pace; no threat, rival, betrayal or ticking clock added just to keep tension; after a win, escape or rest the aftermath lands before new pressure; downtime stays on the chosen activity; escalation only from established causes; no cutaways or teaser endings
Character BehaviorCharacters act from coherent motivations, show personality through dialogue and choices, keep distinct voices, know only what they plausibly could, never lecture or dump lore, and speak in written lines rather than reported speech
Style PrinciplesSimple, concrete, third-person present prose: strong verbs and specific nouns, action and dialogue over atmosphere, sparse narrator interruptions, no re-describing established people or places, secrets revealed only through play, varied sentence shape, no filler or recently used phrasing
customShips empty: the slot for your world's own rules

This task has its own rows in the Size Limits panel.

Fields

The task's real field set is the engine's eight seeded keys plus custom (see the table above); edit their content to change behavior.

custom

World-specific rules for the narrator on every story turn: for example what things cost, which species appear in which places, how magic behaves, and what technology or social rules apply.

Built-in editable sections

generateStory ships with eight built-in sections (see the table above) plus custom. Reusing one of those exact key names overrides that built-in section; any other key name is appended as custom instructions on top. Keep the defaults as they are for normal Voyage behavior - deleting them does not stick, since load and conversion backfill them from the base config. See aiInstructions for the full rules.

Authoring pattern

Overriding Style Principles: the default already asks the narrator, in general terms, to avoid vague filler, stock physical reactions and recently used phrasing. When you replace it, keep those, and add any specific words your world should never use, for example Never use "crystals" or "resonance" as descriptors or explanatory terms.