FolioTier 1
return
Pop the call stack and resume the calling scene.
Use return at the end of a subscene or reusable sequence to hand control back to whoever called it. When a scene is invoked from another scene rather than entered as a top-level chapter, return marks the exact moment execution resumes in the caller, right after the line that triggered the jump. Without it, the engine falls through to whatever comes next in the file, which is rarely what you want.
return does nothing if the current scene is already at the top of the call stack - the engine simply stops, as if the story ended. This matters when you share a subscene that can be reached both as a called sequence and as a direct entry point during testing. If you place narration or a background change after return, that content is unreachable and will never execute, so keep return the final statement in any branch that uses it. If you need to pass information back to the caller rather than just resuming it, look at the scene variable scope rules instead - return itself carries no payload.
Parameters
This construct takes no arguments.
Canonical example
narrate "The cutscene ends. We're back where we started."
return"The cutscene ends. We're back where we started."
returnreturn ends a called scene and resumes the caller at the line after
its call. Outside a called scene - at the top level of a start
scene, for instance - return is a no-op the runtime warns about.
Notes
A scene that's only ever entered via call should end with return.
A scene that branches to other scenes via jump or via choice
options never needs an explicit return - control transfers through
the routing instead.
If a called scene ends without a return (no terminating verb at
all), the runtime treats fall-off-the-end as an implicit return and
emits a warning. Authoring tools surface this so the creator can pick
between an explicit return (the recommended fix) and an end
(if the scene was meant to terminate the playthrough).
Authoring surface
return is a first-class entry in the Forge timeline's insert palette
(category Flow). The inline composer exposes a single optional
"Only if" guard expression - leaving it blank emits a bare
return. The inspector form mirrors the composer, so an existing
return if <cond> round-trips without dropping the guard.
See also
call- push onto the call stackend- terminate the playthrough entirelyscene-flow- full routing vocabulary