Skip to content

Repeating, gating and calling

Most of a story is a line you follow. These are the nodes for the parts that aren’t: the bit that happens once per person, the bit that repeats until something changes, and the scene you want to use in six places without copying it six times.

They live at the bottom of the palette, after the storytelling nodes. That’s deliberate — you sketch the story first and make it repeat second.

Declare a list under Story — “the suspects”, “the party”, “what they’re carrying” — then drop a For each node and point it at that list.

Give the current one a name. That name only exists inside the loop, so you can write {{ it }} in a line of dialogue and it reads as whoever the story is on. Two loops can both call theirs it without treading on each other.

The loop has two ways out:

  • For each one — the part that happens per person.
  • When they’re done — where the story goes afterwards.

While goes round for as long as a condition holds. While the alarm is still rising. While anyone is still standing.

Something inside the loop has to make the condition stop being true, or it would never end. If that goes wrong the run stops itself and tells you which node was looping, rather than freezing mid-session.

Node What it does
In order Fires each of its outputs one after another. The next starts when the one before runs out of nodes.
First time only Passes the first time the story reaches it, and never again.
Alternate One way, then the other, then back again.

A Gate opens when its condition holds — and then it stays open, even if that stops being true.

That’s the difference between it and a Branch, and it’s the whole point. A branch re-asks its question every time, so a route that opened when the party learned the Duke was a traitor would close again the moment they handed over the evidence. Once the world has been a certain way, a gate remembers.

A Watch for node isn’t on the path at all. It fires the moment its condition becomes true, whatever the story was doing.

When suspicion reaches five, the city guard arrives. You write that once, instead of wiring the same branch into forty places.

It fires when the condition becomes true — not every time it happens to be true. So a watcher on suspicion reaching five fires on the pass that crosses five, and then leaves you alone. Leave Only once on unless you want it to fire again every time the count drops and climbs back.

Any story board can be run from another one. Put a When called node on it, say what it needs, and it becomes something you can use anywhere.

Haggling with a merchant is the classic one. Write it once, with the merchant as something the caller fills in, and every shop in your world uses the same scene.

  1. On the board you want to reuse, drop a When called node. Add what it takes — a name like who, which its own nodes then use.

  2. Optionally end it with a Hand back node carrying a value.

  3. On the board doing the calling, drop a Call a board node and pick it. Fill in what it asks for, and name a variable for whatever it hands back.

  4. The story goes over, runs it, and comes back to the Call node’s Next.

A Portal pointing at another board now keeps the same playthrough. Everything the campaign remembers, where you’ve been, and the loop you were halfway through all carry across. Open Stories in your world’s hub to see every board and how they lead into each other, with anything broken listed at the top.

Open the Runner and look under Playtest. It plays the whole board two hundred times without you touching anything, and reports what it found:

  • which endings people actually reach, and how often
  • anything nothing ever reaches
  • a choice that’s offered but never becomes available
  • a loop that doesn’t stop

Same seed gives the same answer, so you can fix something and see whether the warning goes away. And it always tells you what it couldn’t see — a rare branch it didn’t happen to take is still a branch, so an absence there isn’t proof.