Dialogs

The text your players are going to read.

Description

'[character_id][:<expression_id>][:<class_names>] <dialog_text>'

Dialogs are the primary way to display text to the player. Any statement in your script that doesn't match any other action will be displayed as dialog.

Action ID: Dialog

Reversible: Yes

Requires User Interaction: Yes (player must click/tap to proceed)

Related Components:

Syntax

The full dialog syntax is:

[identifier][:<expression>][:<classes>] <text>
Part
Required
Description

identifier

No

Character ID, centered, nvl, or narrator. If omitted, treated as narrator dialog.

expression

No

Expression/side image to show (only for characters with defined expressions).

classes

No

Custom CSS classes separated by | (pipe).

text

Yes

The dialog text to display. Supports HTML and text effects.

Dialog Types

Narrator Dialogs

Any statement that doesn't start with a recognized character ID, centered, or nvl is displayed as a narrator dialog. Narrator dialogs don't show a name in the text box.

You can also explicitly use narrator:

Character Dialogs

To make a character speak, prefix the dialog with their character ID:

The character's name (as defined in their character declaration) will be displayed in the text box.

With Expression/Side Image

If you've defined expressions in your character declaration, you can specify which expression to show:

The expression image appears as a side image next to the text.

Default Expression

If a character has a default_expression defined, it will be shown automatically when no expression is specified:

Centered Dialogs

The centered keyword displays text in a floating box in the center of the screen, hiding the regular text box:

Centered dialogs use the <centered-dialog> component instead of <text-box>.

NVL Dialogs

NVL (Novel) mode displays multiple lines of dialog on screen at once, similar to visual novels like Fate/stay Night. The screen fills up with consecutive dialog entries.

NVL Characters

Characters can be set to always use NVL mode by adding nvl: true to their definition:

Note: Side images/expressions are not supported in NVL mode.

Custom Classes

You can apply custom CSS classes to the text-box (or centered-dialog) element by adding them after the expression:

Classes are reset on every dialog, so you must include them on each dialog where you want them applied.

Example CSS for Custom Classes

Clear Command

The clear command removes all text from the dialog area:

The clear command automatically advances to the next statement without requiring player interaction. Use a wait command after it if you want the player to see a blank dialog box:

Text Effects

Dialogs support inline text effects using special markers. These are processed by the TypeWriter component.

Pause

Pause the typing animation for a specified duration:

The {pause:N} marker pauses for N milliseconds.

Speed

Change the typing speed mid-dialog:

The {speed:N} marker changes speed as a percentage (100 = normal, 50 = half speed, 200 = double speed).

Visual Effects

Enclosed effects apply visual styling to text. Use {effect}text{/effect} syntax:

Animation Effects:

  • {shake}text{/shake} - Shaking text

  • {shake-hard}, {shake-slow}, {shake-little}, {shake-horizontal}, {shake-vertical} - Shake variants

  • {wave}text{/wave} - Wavy text animation

  • {wave-slow}, {wave-fast} - Wave speed variants

  • {fade}text{/fade} - Fading text

  • {fade-slow} - Slow fade

  • {blur}text{/blur} - Blurry text

  • {scale}text{/scale} - Scaling animation

  • {scale-bounce} - Bouncy scaling

  • {slide-up}, {slide-down} - Sliding animations

  • {glitch}text{/glitch} - Glitch effect

  • {glitch-hard}, {glitch-slow} - Glitch variants

  • {flicker}text{/flicker} - Flickering text

Style Effects:

  • {bold}text{/bold} - Bold text

  • {italic}text{/italic} - Italic text

  • {big}text{/big} - Larger text

  • {small}text{/small} - Smaller text

  • {strike}text{/strike} - Strikethrough

  • {redacted}text{/redacted} - Redacted/censored style

  • {invisible-ink}text{/invisible-ink} - Hidden until hover

  • {handwriting}text{/handwriting} - Handwritten style

Emotion Effects:

  • {angry}text{/angry} - Angry styling

  • {scared}text{/scared} - Scared styling

  • {happy}text{/happy} - Happy styling

  • {sad}text{/sad} - Sad styling

  • {mysterious}text{/mysterious} - Mysterious styling

  • {excited}text{/excited} - Excited styling

  • {whisper}text{/whisper} - Whisper styling

  • {shout}text{/shout} - Shouting styling

  • {dizzy}text{/dizzy} - Dizzy effect

  • {dreamy}text{/dreamy} - Dreamy effect

  • {robotic}text{/robotic} - Robotic styling

  • {static}text{/static} - Static/noise effect

  • {rainbow}text{/rainbow} - Rainbow colors

  • {glow}text{/glow} - Glowing text

  • {impact}text{/impact} - Impact/emphasis styling

Combining Effects

You can combine multiple effects and markers:

HTML Support

Dialogs support inline HTML for additional formatting:

Setting
Default
Description

TypeAnimation

true

Enable/disable typing animation globally

NVLTypeAnimation

true

Enable/disable typing animation in NVL mode

CenteredTypeAnimation

true

Enable/disable typing animation for centered dialogs

NarratorTypeAnimation

true

Enable/disable typing animation for narrator

TextSpeed

varies

Typing speed (lower = faster). Configurable by player in settings.

Dialog Log

The dialog log stores all dialogs displayed during gameplay. Players can access it via the quick menu to review past conversations.

The log is automatically populated as dialogs are shown and supports scrolling through the entire conversation history.

Last updated

Was this helpful?