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

call

Jumps to a subroutine node after the current command batch and pushes a return frame. Resume is the caller’s resolved next (via next_if / next) — not the rest of the same node.

{ "type": "call", "to": "phone_ring" }
:: hallway
You're in the hallway.
[call phone_ring]
-> hallway_after

:: phone_ring
Your phone rings.
[return]

:: hallway_after
You're still in the hallway.

Usually you need

FieldTypeDefaultEffect
tostring—Subroutine entry node id

All fields

FieldTypeDefaultEffect
tostring—Target
whenexpression—Skip when falsy

Rules

  • Prefer calling from nodes without pending choices; resume uses linear next only.
  • Mid-node resume (text after [call] in the same node) is not supported — put continuation on a following node.
  • Nesting depth is capped (64). A jump / jump_if while a call is active clears the stack (returns abandoned).
  • First control command in a batch wins (call / return / jump / story end).

Batch timing: Command flow. Pair with return.