Studio

FolioTier 2

@flash

Punctuate a moment with a full-stage color flash that fades back to the scene.

@flash slams the stage (or a single sprite) to a solid color and lets it fade back, giving you a hard visual punctuation mark for a single frame in time. Reach for it on impacts, camera-flash bulbs, magic bursts, lightning, screen-clearing transitions, or anywhere you want the eye to register a jolt before the scene resumes underneath.

Because it defaults to white at full alpha over a third of a second, the out-of-the-box call reads as a classic photo-flash or explosion beat. Swap color and alpha for softer or thematic hits - a dim red flash for a gunshot, a pale blue flash for a spell - and keep duration short; anything past half a second starts to feel like a fade rather than a flash.

Leave target empty for whole-frame flashes tied to big story beats. Set target to a sprite tag when you want the hit to read as belonging to one character or object - a portrait flashing white on a slap, for instance - without blowing out the rest of the scene.

wait true is the common case, since a flash usually anchors a beat you want the player to sit with before dialogue continues, as in the canonical example. Set wait false when you're layering @flash with other effects, such as a @shake at the same moment, so the two overlap instead of running back to back.

Alpha below 1 tints rather than replaces the scene, which is useful for a lighter gut-punch than a full whiteout. Very low alpha values paired with a long duration can end up looking like a color grade shift instead of a flash, so keep the two parameters in tension with each other.

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

ParameterKindRequiredDefaultNotes
durationnumberno0.30.05-2 seconds. Default 0.3.
colorstringno#ffffffHex color (#rgb or #rrggbb) or white/black. Default #ffffff.
alphanumberno10.1-1 (0-1). Default 1.
targetstringno""Optional sprite tag; empty targets the whole frame.
waitbooleannotrueBlock for the effect's duration when true; false fires and continues so effects can overlap.

Canonical example

Folio
sprite show explosion-frame
@flash
say "Narrator": "And then everything went white."
Ren'Py
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(0.6, color=#000000)              # slow black drop
@flash(0.15, color=#ff0066, alpha=0.5)  # soft magenta pulse

The color is a #rrggbb or #rgb hex literal only - non-hex values reject at parse time. 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 cross-target: with no target (the default) the overlay covers the whole frame, above the sprites; target=backdrop flashes only the background layer, below the sprites, so the characters stay clear. In Forge this is the scope - a flash added from the Global effect event hits the whole frame, one from Background hits the backdrop.

@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.

See also

  • @shake - kinetic punctuation that pairs well with @flash
  • @dissolve - cross-fade between scene states (no color hold)
  • @fade - fade-out through a color, then fade-in