Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Mode B overlay

Mode B = story/script.txt plus story/story.json. Script is primary; JSON overlays complex nodes. Mode C is JSON only (no script).

// story/story.json
[
  {
    "id": "park",
    "commands": [
      { "type": "sprite", "id": "chair", "value": "chair", "layer": "bg_front" }
    ]
  }
]

Usually you need

RuleBehavior
MatchOverlay id (or _ref) → script node id
Most keysOverlay replaces the script value
commandsOverlay commands are appended after script commands
Absent keysScript values kept

_ref is an alternative to id in an overlay entry when you prefer not to repeat the node id; it matches a script node the same way.

Merge rules

RuleBehavior
MatchBy id or _ref
OverrideAll overlay keys replace script values
Exceptioncommands: appended to script commands
text + {@phN}Substitute from script line N before erase
Absent keysScript kept (talking, etc.)
Localescript_<locale>.txt / story_<locale>.json

Modes

ModeFiles
Ascript.txt only
Bscript.txt + story.json overlay
Cstory.json only