Quick Start (5 Steps)
👋Quick Start
Create Data Asset
In the Content Browser, right-click → Miscellaneous → Data Asset → select
DialogueDataAsset→ Name it

Open the
DialogueDataAssetasset and configure it according to your needs.SpeakerInfos: Add speakers and set
SpeakerName,DisplayName,Avatar, andSpeakerColor.Global Variables: Define variables and set
VariableName,ValueType, andDefaultValue.DialogueSequences: Create a new sequence and set
SequenceNameandStartNodeID.
Note: Pay special attention to the content in the yellow box, as it affects the first dialogue’s start and how dialogues connect. Both the first and subsequent dialogues are identified and controlled by GUIDs.
Configure Node
Dialogue Node (FDialogueNode with NodeType=Text):
Set DialogueText (dialogue text)
Set SpeakerName (reference a speaker from SpeakerInfos)
Configure DisplayDelay (delay before displaying text; 0 = immediate)
Configure AutoAdvanceDelay (auto-advance after delay; 0 = manual)
Set NextNodeID (target node after this node)

Choice Node (FDialogueChoiceNode):
Set PromptText (question or prompt text)
Add choices to the Choices array
Configure bAllowMultipleSelection (true enables multiple selection)
Set MinSelectionCount and MaxSelectionCount (for multiple selection)
Configure SelectionTimeout (seconds; 0 = no timeout)
Set TimeoutNodeID (node to jump to after timeout)


Condition/Event/Delay Node:
Condition: Add conditions to the node's Conditions array
Event: Set EventName to broadcast the event
Delay: Set DisplayDelay to the delay duration in seconds

Add the component to your Actor.
Select the Actor that will drive the dialogue (e.g., player character, UI controller).

Add Component → Search for Dialogue System Component.

In BeginPlay or during initialization:
Call
LoadDialogueDataAsset(DataAsset)and pass in yourDialogueDataAsset.

Starting and Driving Dialogue (Blueprint)
Starting Dialogue:
Call
StartDialogue(SequenceName)and pass in the sequence name from the data asset.

Event Binding:
UIText Node Event: Bind
OnDialogueNodeExecuted(Node, SpeakerInfo, NodeID)to display the UI
Choice Node Event: Bind
OnDialogueChoiceNodeExecuted(ChoiceNode, AvailableChoices, NodeID)to display choices
Event Callback: Bind
OnDialogueEventTriggered(EventName)for external system integration
Dialogue End: Bind
OnDialogueEndedfor cleanup
Advancing Dialogue:
Automatic: If
AutoAdvanceDelay > 0, the dialogue advances automaticallyManual: Call
AdvanceDialogue()when the player clicks "Next"

Submitting Choices:
Collect the selected
ChoiceIDvalues (FGuid) from the UICall
SubmitChoice(SelectedChoiceIDs)and pass in the array of selected choice IDs
Dialogue End:
When the sequence completes, the component automatically triggers
OnDialogueEnded.

Managing Variables and Conditions
Reading Variables:
Call
GetVariableValue(VariableName, OutValue)to read the current value.
Setting Variables:
Call
SetVariableValue(VariableName, ValueString, ValueType)to modify runtime variables.
Condition Evaluation:
Node
Conditionsdetermine whether a node executes (all conditions must pass)Choice
AvailabilityConditionsdetermine whether a choice is visible/selectableConditions are automatically evaluated by the system

Minimum Workflow (Quick Reference)
Create
DialogueDataAsset→ ConfigureSpeakerInfos,GlobalVariables,DialogueSequencesAdd
DialogueSystemComponentto Actor → CallLoadDialogueDataAssetBind events:
OnDialogueNodeExecuted,OnDialogueChoiceNodeExecuted,OnDialogueEventTriggered,OnDialogueEndedStart dialogue:
StartDialogue(SequenceName)→ Update UI →AdvanceDialogue()orSubmitChoice()
Last updated