Studio

FolioTier 1

call

Run another scene as a subroutine, return when it finishes.

Use call when you want to hand execution off to another scene and come back. The target scene runs completely - playing through its dialogue, effects, and logic - and then execution returns to the line immediately after the call. This is the primary tool for reusing scenes across your project: shared flashbacks, recurring dream sequences, tutorial overlays, or any chunk of story that more than one path needs to visit.

The called scene does not need to do anything special to return; reaching its natural end is sufficient. If the called scene contains its own call instructions, those nest correctly - each returns to its own caller in order. Be careful about calling a scene that eventually calls back into the current one, even indirectly; that creates an unbounded loop with no built-in safety. call is a one-way trip with a guaranteed return, so it is distinct from a plain jump: after a jump there is no return, whereas after a call the rest of your current scene still runs. If you only want to go somewhere and never come back, reach for jump instead.

Parameters

ParameterKindRequiredDefaultNotes
targetscene targetyes-Identifier of the scene to call into. The called scene runs to its `return` (or `end`); execution then resumes at the line after the `call`.

Canonical example

Folio
call shared-cutscene
say "Emma": "Now where were we?"
Ren'Py
call shared_cutscene
e "Now where were we?"

call is the subroutine primitive - like jump, but the called scene is expected to return so execution can resume at the line after the call. Use it for shared cutscenes, recurring transitions, or any sub-flow that multiple scenes invoke without forking the story.

Notes

The runtime maintains a call stack per playthrough. Nested calls work (scene A calls B, B calls C); each return pops one frame. A jump inside a called scene clears the stack - control transfers to the jump target without returning to the caller.

call does not pass arguments. The called scene reads the same project state every other scene reads. If you need parameterised behaviour, set state variables before the call and read them inside the called scene.

An imported route can include carry-stage between the target and an optional if tail. It preserves the live backdrop and sprites while opening the called scene. Native Vizno calls omit the modifier and clear the stage at the scene boundary.

If the called scene contains an end, the playthrough terminates there - the calling scene never sees its return. Don't put end inside a scene meant to be called.

Authoring surface

call is a first-class entry in the Forge timeline's insert palette (category Flow). The inline composer pairs a scene picker (the target subroutine) with an optional "Only if" guard expression. The inspector exposes the same two fields, so an existing call event's target and guard round-trip cleanly.

See also

  • return - pop the call stack and resume the caller
  • jump - transfer without a return
  • scene-flow - full routing vocabulary