FolioTier 2
@flash
Punctuate a moment with a full-stage color flash that fades back to the scene.
Demo
@flash
Hello.
A full-stage white pulse. The overlay sits above the stage layer but below the textbox so dialogue remains legible through the flash.
Parameters
| Parameter | Kind | Required | Default | Notes |
|---|---|---|---|---|
| duration | number | no | 0.3 | Total seconds the flash is visible (fade-in plus fade-out combined). Range `0.05`–`2.0`. The midpoint of the duration is the peak; either half rises or falls linearly. |
| color | string | no | #ffffff | Flash color as a `#rrggbb` or `#rgb` hex literal, or a theme token (e.g. `dialogue.accent`). Defaults to white. Non-hex non-token values reject at parse time. |
| alpha | number | no | 1.0 | Peak opacity at the flash's midpoint. Range `0.1`–`1.0`. Lower the alpha for softer punctuation (a pulsed shimmer at `0.4` reads very differently than a full-stage white-out at `1.0`). |
Canonical example
show explosion-frame
@flash
say "Narrator": "And then everything went white."show explosion frame
with Flash(0.3, "#ffffff")
"And then everything went white."@flash paints a solid color over the entire stage, peaks at the
midpoint of the duration, then fades back to the underlying scene.
The next line advances once the flash has fully cleared.
Notes
Common parameter combinations:
@flash # short white flash, full opacity
@flash duration=0.6 color="#000000" # slow black drop
@flash duration=0.15 alpha=0.5 color="#ff0066" # soft magenta pulse
The color accepts theme tokens (e.g. dialogue.accent) so a project
can keep flashes on-palette without hard-coding hex. The importer's
deterministic pass lowers Ren'Py with Flash(...) to this verb;
projects that defined custom flash transforms fall through to the
pattern or AI pass.
@flash is a punctuation effect — it doesn't change scene state.
For a longer color-wash transition between scenes, prefer
@fade, which holds the color through a scene
swap.