Playtesting with the Simulator
Play through your branches before you publish.
Before you publish, play through your story the way a reader would — with every condition, result, and variable change visible as it happens.
Starting a test
Hover a beat on the canvas (or open its ellipsis menu, or use the bottom action bar on mobile) and choose Test. The run always starts from that beat — there's no separate picker, so pick a beat by testing it directly. The launch dialog confirms this with Starting from <beat name>.
If your story has blackboard variables, the same dialog has an optional Variable overrides section — Add override lets you set a variable to a specific value for just this run, useful for jumping straight to a state you'd otherwise have to play through to reach. Overrides apply once, at the very start of the run.
Playing through
Lines appear as chat bubbles with the speaking character's image and name. Click anywhere (or press Enter or Space) to advance to the next line; once choices are reached they show as a button per option — arrow keys move between them, Enter selects. Beats with no lines that are set to auto-advance skip straight through without waiting for you.
Reading the debug info
This is what makes Test different from just reading your story: every line or choice with a condition shows an annotation underneath it — ◇ Trust (3) >= 2 = true — so you can see exactly why something did or didn't appear. A line whose condition fails is still shown, but dimmed and struck through, and its results don't apply. A choice whose condition fails is shown disabled rather than hidden, so you can see every choice you wrote and which ones are currently blocked.
Results get the same treatment — ↳ increment Trust by 5 (3 -> 8) shows both the change you authored and the actual before/after values for this run. Structural problems surface inline too: an empty line, a choice pointing at a beat that no longer exists, or a {{ reference to a variable that doesn't exist all show up as their own annotation right where they happen, instead of failing silently.
The live blackboard
A Variables panel alongside the player shows every blackboard variable and its current value, updating after every line and choice — so you can watch state change in real time instead of piecing it together from result annotations alone.
Restarting and ending
Play again restarts from the same beat with the same overrides, clearing everything you've seen so far. A run ends automatically when you reach a beat with no outgoing choices, or if every choice at a decision point turns out to be disabled. There's no back button — Play again is the way to revisit an earlier moment.
Test is for you: it shows conditions, results, and errors that a reader never sees. Once a story is live, players get the plain version — choices and lines that fail their conditions are simply left out, with none of this debug detail.