Studio

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

Folio
narrate "The cutscene ends. We're back where we started."
return
Ren'Py
"The cutscene ends. We're back where we started."
return

return 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 stack
  • end - terminate the playthrough entirely
  • scene-flow - full routing vocabulary