Dialog
Dialog is the node you will use most. It gives the story a voice: a speaker, a line of text, and the next place the story should go.
Use Insert > Dialogue & Logic > Say Dialogue when the player should read a line before the route continues.
Properties
Node-specific properties
| Field | What it does |
|---|---|
| Speaker | Character or narrator speaking this line. |
| Text | The line shown to the player. Supports variable templates such as {playerName}. |
| Inherit Previous Speaker | Reuses the previous speaker when set. |
| Speaker Label Override | Shows custom speaker text for this line only. |
| Text Continuation | Chooses whether this line replaces the current text or appends on a new line, with a space, or directly with no separator. |
| Wait For Advance Input | When off, the line continues after a timer instead of waiting for player input. |
| No-Input Delay | Timer used when Wait For Advance Input is off. Falls back to the project no-input delay. |
| Typewriter Speed | Overrides the project typewriter speed for this line. |
| Scroll Sound Set | Overrides the typing sound for this line. |
| Skippable | Controls whether advance input can finish the typewriter or bypass a no-input dialog timer. |
| Portrait Override | Shows a specific portrait for this line. |
| Emphasize Sprite | Emphasizes a visible sprite while the line is active. |
| Style Preset Override | Uses a different Prompt Style preset for this line. |
| Cues | Triggers audio or effects when specific text appears. |
Inherited/common properties
| Field | What it does |
|---|---|
| Name | Optional label used in the editor and Story Map. Leave it empty to use VNC's automatic node name. |
| Next | Node that runs after this node finishes its own work. |
Runtime Behavior
When a Dialog node runs, VNC resolves variable templates, updates the dialog UI, refreshes portrait and scroll sound choices, writes the line into the story log, then waits for input or a timer.
Text Continuation controls how the new line joins the visible text: replace it, append on a new line, append with a space, or append directly. Direct continuation supports mid-sentence speaker changes without inserting punctuation or whitespace.
Use Continue Dialogue / Change Speaker from a Dialog node's context menu or the Command Palette to create and link both halves as one undoable edit. The first Dialog hands off immediately; the new Dialog starts as a direct continuation and can inherit the speaker, choose another Speaker, or set a line-only Speaker Label Override.
Scroll sound playback keeps its authored Sound PlaybackSpeed during both editor preview and installed-runtime playback, including across character reveals and text continuations.
Cues
Cues watch for exact text as the line scrolls. Each cue can play an audio asset or trigger an effect. If the same trigger text appears more than once, VNC tracks each occurrence separately.
Effect cue options depend on the selected target. Dialog and Screen cues support Shake and Jump; Sprite cues also support Emphasize and Deemphasize and can use Target Slot. If you change a cue away from Sprite, sprite-only effects are cleared so the cue stays valid.
Example Setups
| Goal | Setup |
|---|---|
| Personalized line | Speaker narrator, Text Then you're the courier, {playerName}. Trust level {score}; badge clearance confirmed., Set Next to the next node in your route. |
| Continued warning | Leave Speaker empty, turn on Inherit Previous Speaker, set Text Continuation to Append On New Line, write choose the route you can defend., then set Next to the next node in your route. |
| Mid-sentence speaker change | Run Continue Dialogue / Change Speaker on the first Dialog, split the sentence between the two Text fields, then choose the second Dialog's Speaker or Speaker Label Override. Keep Text Continuation set to Append Directly. |
| Timed interruption | Turn off Wait For Advance Input, set No-Input Delay to 0.75 and Typewriter Speed to 1.4, then turn off Skippable so input cannot bypass the line. |
| Portrait and voice override | Set Speaker first_noob, Speaker Label Override Archive Voice, Portrait Override noob, Scroll Sound Set default, Emphasize Sprite noob, and Style Preset Override episode for a line that should temporarily read differently. |
| Text-timed impact | Add a cue with trigger text Listen!, audio sfx/story/punchLight, Effect Target Screen, Effect Shake, Intensity 4, and Duration 0.15. |
Common Mistakes
| Problem | Fix |
|---|---|
| The line does not run | Make sure the scene starts at this node or another connected node reaches it. |
| The story stops after the line | Set Next unless this is intentionally the end of the path. |
| A portrait does not appear | Check the character default portrait or Portrait Override. |
| A variable template appears as blank | Check that the variable key exists and has a value before this line runs. |
Dialog nodes are the spine of most routes. Once the line reads correctly, the rest of the scene has something solid to connect to.