Dialogue System

Updated May 25, 2026

The Dialogue System is a data-driven framework for fixed conversations, branching choices, predefined voice lines, world dialogue, proximity reactions, and dialogue-driven gameplay events. It is designed for narrative-heavy projects where NPCs, quests, and world state need to affect what is said and what happens after a line is spoken.

For shared setup guidance, see the Migration Guide and Integration Guide. Use the System Atlas to look up functions, variables, events, components, and ownership references. Use this page for dialogue-specific structures, data assets, and authoring workflows.

Related setup: Set Up First Narrative.

Dialogue often works hand in hand with quests; for quest-driven conversations and objective progression, also check the Quest Manager.

The system can support simple NPC greetings, multi-line story conversations, conditional branches, choice memory, timed choices, resolver-based outcomes, and world dialogue that plays without opening a full conversation UI.

There is no direct integration with Articy yet, but the data-driven structure can be adapted to external dialogue authoring tools. Community tools can also be used to generate or fill the required data table structures.

Related Videos

Version note: Some videos may have been recorded before V4. Concepts still apply, but asset names, component names, and folder locations may differ. Treat this written documentation as the source of truth.

  • Add Dialogues, Voices, Subtitles, and Conversations walkthrough
    Play
  • Dialogue System devlog
    Play
  • Manage your open world RPG Dialogue System devlog part 2
    Play
  • Character Voice System
    Play

Adding Dialogue to Actors

Use fixed dialogue for actors that should open a normal conversation, and world dialogue for actors that should speak during gameplay without entering a full dialogue sequence.

Fixed Dialogue

Add AC_CH_DialogueManager_NPC to the actor or class that should support direct dialogue interactions. Configure the dialogue parameters in the Details panel.

Adding fixed dialogies to chars screenshot

In the example, the actor triggers Dialogue.Example.BasicSentences, which matches a row in DT_Dialogues.

Adding fixed dialogies to chars screenshot

World Dialogue

Add AC_CH_WorldDialogue_Manager to actors that should play ambient, proximity, or gameplay-driven lines.

Adding world dialogies to actors screenshot

World dialogue settings in the Details panel are explained in the proximity based dialogue section.

Core Data Structures

The dialogue system is built around structured data. The most important structs are summarized below so authors can understand what each one controls without turning every field into a navigation heading.

StructPurposeImportant fields
F_DialogueDefines one dialogue sequence.Dialogue Identifier Gameplay Tag, Style data asset reference, and Sentences array.
F_Dialogue_SentenceDefines one line or segment inside a conversation.Sentence Identifier, Next Sentence Identifier, Sentence Settings, Predefined Sentence, Custom Sentence, Options, and Trigger Events After Sentence.
F_Dialogue_EventTriggerRuns gameplay events after a sentence or option.Event to Trigger, Target, Value, and Trigger Sequence.
F_Dialogue_SequenceControls Level Sequence playback during dialogue.Should Trigger Sequence, Level Sequence to Trigger, Freeze On Sequence End, Hide Player, and Wait For Sequence End Before Next Sentence.
F_Dialogue_OptionDefines a player choice.Text, Spoken By Player, Condition, Next Sentence, Trigger Events On Select, and Sentence Resolver.
F_Dialogue_Option_ConditionControls whether an option is available.Has Condition, Hide When Not Met, Consume Requirements, Requirements, Quests Requirement, Speaking NPC Memory Requirement, and Player Memory Requirement.
F_Dialogue_Sentence_ResolverChooses dynamic follow-up sentences at runtime.Use Sentence Resolver, Resolver Class to Use, and Resolver Next Sentences.
F_IsSpokenByPlayerControls whether a line is treated as player speech or NPC/world speech.Is Spoken By Player, Predefined Sentence, and Custom Sentence.

Gameplay Tags are used heavily as identifiers. Examples in the source include dialogue tags such as Dialogue.Blacksmith.Intro, sentence tags such as Dialogue.Blacksmith.Intro.Line01, event tags such as Event.Quest.Start, and memory tags such as Memory.Blacksmith.PlayerPromisedTrust.

Dialogue Data Assets

Dialogue Style

Dialogue style screenshot

The dialogue style asset controls presentation and cinematic behavior. It can define UI style, typewriter behavior, speaker name display, speaker prefixes, portraits, and camera mode.

  • Dialogue UI Style: Presentation mode such as cinematic, minimal, or subtitle-only.
  • Use Typewriter Effect: Shows text progressively instead of all at once.
  • Show Speaker Name: Displays the active speaker.
  • Prefix Sentences With Speaker: Adds the speaker name inside the text.
  • Show Portrait: Displays a character portrait for RPG or visual-novel style dialogue.
  • Camera Mode: Controls camera behavior during dialogue playback.

Dialogue Transition

Dialogue transition screenshot

Dialogue transition settings control how the system advances between sentences.

  • Auto Continue: Moves to the next line automatically.
  • Auto Continue Timer: Delay before advancing when auto-continue is enabled.
  • Manual Continue: Lets the player advance with input.
  • Skip Mode: Defines whether skipping is instant, sped up, or disabled.

Auto Gibberish Profile

The Auto Gibberish Profile defines simulated speech playback for characters without recorded voice acting. It controls the looping sound, words-per-minute pacing, and tag-based sound overrides for predefined dialogue.

  • Sound To Loop: Base looping sound used while the character speaks.
  • Words Per Minute: Playback pacing for the simulated speech.
  • Override on Predefined Dialogue: Map from Gameplay Tag to Sound Cue for specific efforts, laughs, grunts, or other special lines.

Predefined Voices

Predefined Voices screenshot

The Predefined Voices data asset is the central library for reusable voice profiles, audio lines, subtitles, and optional animations. A voice profile can represent player voices, NPC archetypes, merchants, creatures, or other speaker types.

  • Voice To Sentence: Maps a voice profile tag to one or more sentence entries.
  • Audio: Sound Cue or Wave used for the spoken line.
  • Spoken Text: Subtitle or written line.
  • Should Play Animation While Saying Sentence: Triggers a montage while the line plays.
  • Montage To Play On Sentence Start: Optional animation montage.
  • Memory Context: Optional context for memory or emotional state.

DT_Dialogues

DT_Dialogues screenshot

DT_Dialogues stores dialogue rows. Each row uses a dialogue identifier, a style, and one or more sentence entries.

Add a Dialogue Row

  1. Open the DT_Dialogues DataTable or dialogue data asset.
  2. Add a new row and name it for the dialogue identifier you want to trigger.
  3. Set Dialogue Identifier, for example Dialogue.Blacksmith.Intro.
  4. Assign a Style, such as DA_DialogueStyle_Generic or DA_DialogueStyle_Cinematic.
  5. Add the first sentence to the Sentences array.
  6. Set the Sentence Identifier, for example Dialogue.Blacksmith.Intro.Line01.
  7. Set Next Sentence Identifier to the next line, or leave it empty when this is the only line.
  8. Configure Sentence_Settings, including speaker, portrait, camera, or voice reference when supported.
  9. Choose one content source: Predefined_Sentence for a reusable line, or Custom_Sentence for a unique line.
  10. Add Options when the player should choose a response.
  11. Add Trigger Events After Sentence when completing the sentence should start a quest, play a sequence, open a shop, or run another gameplay action.
  12. Add more sentence entries and connect them with Next Sentence Identifier as needed.
  13. Optionally enable Sentence Resolver for dynamic branches.
  14. Save the asset and trigger the dialogue from the NPC, quest stage, or interaction logic by its Gameplay Tag.

Add a Predefined Voice

Adding your own predefined voice screenshot

Navigate to the predefined voice asset location.

Adding your own predefined voice screenshot

Create a Dialogue Voice asset from the Content Browser, rename it, and choose the desired gender and plurality options.

Then open the predefined data asset that should include the new voice profile.

Adding your own predefined voice screenshot
Adding your own predefined voice screenshot

Use predefined voices when a line should be reused across multiple dialogues, characters, or world-reaction contexts. They are useful for greetings, combat reactions, effort sounds, vendor lines, player status barks, and other repeated sentence categories.

Sentence Types

Fixed Dialogue

Fixed dialogue is used for direct conversations with an NPC or actor. It usually opens a dialogue UI and follows the sentence chain, options, conditions, and events defined in DT_Dialogues.

World Dialogue

World dialogue plays during normal gameplay. It is used for ambient comments, proximity greetings, combat reactions, fatigue lines, environmental observations, and other short responses that should not interrupt player control.

Dialogue Behaviors

Basic Sentences

Basic sentences play in sequence using their sentence identifiers and next-sentence identifiers.

Basic sentences in a dialogue screenshot

Random Sentences

Random sentence behavior selects one entry from a predefined voice or data asset list, which keeps repeated reactions from sounding identical every time.

Random sentences in a dialogue screenshot

In the source example, the random reaction uses the Data Asset Taunt, which contains an array of combat taunts in response to the NPC line “I don’t like you.”

Random sentences in a dialogue screenshot

The character randomly selects one of those indices. Make sure the predefined voice is correct for the character using the line.

Choices and Memory

Choices can store memory tags and use them later to change dialogue. For example, a line can store Memory.Blacksmith.PlayerPromisedTrust; later, the blacksmith can check that tag and respond differently if it exists.

Trigger Events

Dialogue can trigger gameplay events after a sentence completes or when an option is selected. Use this for quests, animations, world changes, AI behavior, shop opening, cinematic playback, or similar dialogue-driven actions.

Conditional Dialogue

Conditions can hide, show, or disable dialogue options based on quests, relationship values, morale, inventory, skills, memory, or reputation. Conditions can also consume requirements when the dialogue represents a trade or handoff.

Timed Choices

Timed choices show a countdown while the player decides. If the timer expires, the system can choose a default or silent response.

Chance-Based Outcomes

Resolver logic can choose outcomes based on chance, stats, skills, reputation, or relationship values. For example, a bribe option can branch into success or failure sentences based on the resolver result.

Forced Proximity Dialogue

Forced proximity dialogue starts automatically when the player enters a trigger, sphere, or event volume. Use it for story introductions, warnings, environmental reactions, or cinematic moments that should happen without manual interaction.

World Dialogue Manager

The World Dialogue Manager controls predefined and custom speech that plays during normal gameplay. It coordinates voice profiles, world dialogue components, trigger systems, conditions, randomization, subtitles, and audio playback.

World dialogue is useful for combat reactions, environmental comments, emotional exclamations, player fatigue or status lines, and ambient chatter between AI survivors.

Proximity-Based Dialogue

Proximity-based dialogue lets NPCs greet the player when entering range and say goodbye when leaving.

  • Proximity Sphere Trigger: Detects when the player enters or exits range.
  • Predefined Dialogue Sets: Selects greetings and goodbyes from predefined data.
  • ChanceOfDialogueInProximity: Controls how often proximity dialogue triggers. 1.0 means 100% chance.
  • Sequencing: Prevents greeting and goodbye lines from overlapping.

Proximity based dialogue screenshot

In the example, walking within a 300 radius triggers a predefined greeting. Leaving the radius triggers a predefined goodbye, with the chance set to 100%.

Predefined Sentence Mapping

Predefined sentence mapping links sentence categories to voice profiles, conditions, and randomization. A guard, merchant, follower, or creature can use the same broad category while still selecting lines from the correct voice profile.

Examples include PredefinedDialogue.Greeting, PredefinedDialogue.CombatAlert, and PredefinedDialogue.VendorFarewell.

Audio Handling

World dialogue supports recorded voice lines and auto gibberish. Recorded audio uses assigned Sound Cues for specific predefined or custom sentences. Auto gibberish generates speech-like audio from profile settings and can be overridden per predefined dialogue tag.

Interactive World Reactions

Gameplay Blueprints or components can trigger predefined dialogue by calling Play Predefined Sentence and passing an event type Gameplay Tag, the speaker or target actor, and optional context.

Common categories include PredefinedDialogue.WorldInteraction, PredefinedDialogue.VendorResponse, PredefinedDialogue.CombatReaction, and PredefinedDialogue.SkillUse.

Custom World Sentences

Custom sentences can be injected at runtime for one-off story events, dynamic AI reactions, procedural conversations, temporary dialogue, or debug text. They can use auto gibberish, a specific audio file, or text-only subtitle playback.