Skip to content

DIALOGUE

Nodes for managing dialogue sequences and subtitles in Range Game Engine. The system uses globalDict as a signal bus and stores dialogue state on the object that holds the DialoguePlayer component.

Nodes

Node Type Description
Start Dialogue Action Start a dialogue sequence by ID
Advance Dialogue Action Manually advance to the next line
Stop Dialogue Action Force-stop a running dialogue
Dialogue Player Action (branch) Main player — detects line changes
On Dialogue End Action (branch) Fires for one frame when dialogue ends
Dialogue Text Data Text of the current line
Dialogue Speaker Data Speaker name for the current line
Dialogue Index Data Zero-based index of the current line
Is Dialogue Active Data True while dialogue is playing
Show Subtitle Action Display timed text (subtitle with duration)
Get Subtitle Data Return subtitle text if not yet expired

System architecture

Trigger → [Start Dialogue: ID="intro"]
               ↓ (globalDict: _dlg_start_intro = True)

[On Update] → [Dialogue Player: ID="intro", Advance=Spacebar]
                  └── Line Changed ──► [Set Text: Object=text_box, Text={Dialogue Text: ID="intro"}]
                                    ──► [Set Text: Object=speaker_label, Text={Dialogue Speaker: ID="intro"}]
                  └── Idle ──► [...]

[On Update] → [On Dialogue End: ID="intro"]
                  └── On End ──► [Overlay Scene: Scene=DialogueHUD, Mode=Remove]
                  └── Otherwise ──► [...]

Notes

  • Dialogue Player must be on an object with On Update — it is the only node that executes the advance logic.
  • Data nodes (Dialogue Text, Dialogue Speaker, etc.) must be on the same object as Dialogue Player.
  • For dialogues with more than 8 lines, chain two DialoguePlayers using On Dialogue EndStart Dialogue.