studio
FolioTier 1
say
Attribute a dialogue line to a named character.
Use say for a line spoken by a character. A cast handle keeps recurring dialogue connected to the same character through renames; a quoted name suits a one-off voice such as a guard or announcement.
For a line that should continue on its own, enable Auto-advance in the event Inspector and choose a delay. In narration mode, open the timing control for the same setting. The switch starts at 2 seconds; leave it off to follow the reader's Auto setting.
The delay begins after the entire line is revealed. This event advances even with reader Auto off and uses its own delay instead of the reader's delay or voice-end wait. A reader can still advance manually. Use auto(0) to continue as soon as the full text appears; the setting applies only to this event.
Parameters
| Parameter | Kind | Required | Default | Notes |
|---|---|---|---|---|
| auto(seconds) | number | no | - | Optional auto(2) after the text and before any if clause. Advances this event after 0-60 seconds from full text reveal, even with reader Auto off. Replaces the reader's delay and voice-end wait for this line. Menus, editing, and paused playback hold the timer; manual advance still works. Omit to follow reader settings. |
| character | string | yes | - | The speaker. A bare cast handle (`say vee:`) references a cast member by a stable id and is rename-safe - renaming the character never touches the line. A quoted name (`say "Guard":`) is a one-off custom speaker that is not in the cast, optionally followed by a `#rrggbb` namebox color (`say "Guard" #8899ff:`). The colon separator is required. For a line with no speaker, use `narrate` instead. |
| text | string | yes | - | The dialogue line. Supports text-tag grammar (see Effects → text-tags). Each `say` is one logical line - implicit string continuation across indentation changes inside a label body is not supported. |
Canonical example
say "Emma": "I missed you."
say "Emma": "How long has it been?"e "I missed you."
e "How long has it been?"Folio spells out the dialogue verb and separates the speaker from the
text with a colon. For a timed exclamation, write
say "Elise": "Hyaa!" auto(2). Put an optional condition last:
say "Elise": "Hyaa!" auto(2) if ready.
Notes
Each say is one event. Start another say for the next line; use
narrate when there is no speaker. Both accept
the same inline text tags and optional auto-advance timing.
Menus, editing, and paused playback suspend the countdown. Returning to playback starts the full delay again. Selecting a line in Forge holds it for inspection until playback resumes.
See also
narrate- narrator lines without a character attributioncharacters- defining the characters this verb referencestext-tags- inline formatting grammar