studio
FolioTier 1
end
Terminate the playthrough.
Use end to close the playthrough at any point in your script. When the engine reaches it, the session stops and control returns to whatever the host application shows after a finished story - a credits screen, a chapter select, or simply the title. It is the narrative full stop: place it wherever the story is genuinely over for the player on that branch.
Every branch that does not loop or hand off to another scene needs to reach an end, or the engine will run out of instructions and halt with an error. If you have multiple endings, each one gets its own end - there is no limit on how many times it appears across a script, only the rule that each reachable path must eventually arrive at one. Do not confuse it with scene transitions: moving to another scene continues the playthrough, while end terminates it entirely.
Parameters
This construct takes no arguments.
Canonical example
narrate "And that was the last she ever saw of him."
end"And that was the last she ever saw of him."
returnend terminates the story. The player sees the story-end Curtain even
when later episodes exist. Reaching end from inside a called scene
still terminates: the call stack is discarded. end if <guard> only
terminates when its guard passes.
Notes
Folio splits the responsibility Ren'Py overloads onto return. In
Ren'Py, return at the top level of start ends the game; inside a
called label it pops the stack. Folio names the two cases
separately - end for "the playthrough is over", return for "the
called scene is finished, resume the caller". The disambiguation
makes the creator's intent visible in the Story Map (an end node
has no outgoing edges; a return node draws an edge back to its
callers).
The importer translates Ren'Py's terminating return to end when
it's at the top level of start (or any label that's only ever
entered as the entry point), and to return when it's inside a
called label. This relies on call-graph analysis the importer runs
during the deterministic pass.
A project can have multiple end lines - one per ending. Saves record
that the story ended, but do not yet record which ending was reached.
Authoring surface
end is a first-class entry in the Forge timeline's insert palette
(category Flow). The inline composer takes a single optional
"Only if" guard expression - blank emits a bare end. The inspector
form preserves the guard on round-trip so end if game-over survives
edits.
See also
return- return from a called scene without ending the playthroughscene-flow- full routing vocabulary