system

Use when

You need conversation, choices, or branching narrative with real consequence.

What it is. A graph of authored lines the player walks by choosing edges, gated by state and stamped back into state. Talking is the verb; branching is where the verb has stakes.

Player fantasy / why it’s fun. This world listened. The pull is authorship of self — a line you picked, a bridge you burned, a truth the NPC now knows about you. Choice is only fun when the world remembers it made a difference.

When to use / when NOT

Variants

VariantStructureChoice weightReference
Branch-and-bottleneckBranches fan out, then reconverge at authored bottlenecksLocal flavor + remembered flags; spine stays fixedmost narrative RPGs, anchor-papers-please framing
Stat / skill checkOptions exist only if your build clears a threshold; roll or auto-passYour sheet is the key; failure is content, not a wallanchor-disco-elysium
Reactive state flagsLines and options appear/vanish from prior flagsDeep memory; NPCs cite what you did three hours agoanchor-shadow-of-mordor nemesis chatter
Swipe / binary under pressureOne card, two edges, fastVolume of small choices compounds into a reignanchor-reigns
Hub-and-spokeReturn to a topic menu; spokes exhaustExploration, not commitment; pacing riskclassic adventure games

Twist seams

Tuning levers

LeverLowHighWatch for
Branch depthShallow, reconverge fastLong divergent arcsCost scales with the square; content budget dies at high depth
Reconverge cadenceRare (true forks)Frequent bottlenecksFrequent + unwritten state = antipattern-fake-choice
Memory horizonForgets by next sceneCites hour-old flagsLong memory needs a readable ledger or it feels arbitrary
Check difficultyAuto-passCoin-flip / hard-gatedGate hard and failure must branch, not dead-end
Option count2–36+Past ~5, add antipattern-decision-paralysis risk; timer amplifies it
Flag visibilitySilentToast / journal echoInvisible consequence reads as no consequence

The load-bearing lever is memory. Depth and reconvergence are cosmetic without state that persists and gets referenced back. A choice the world never mentions again did not happen.

How it wires to Hayao

Composes with

Fails when…

Verify

Design is done here; proof lives there. Judge these branches against narrative-decision craft in design/FUN.md#21-·-narrative-decisions: does a choice change a probe-able flag, does that flag get referenced downstream, and does every gate have at least one clearing path? A branch that fails the “did the world remember?” test is cosmetic — cut it or give it teeth.

This module rendersthe repo's markdowndirectly — edit it there, it changes here.