Detailed use

This page presents the system elements in their usual order of use: the global management point, central logic, speakers, conversations, then display data and input.

1. Game Instance Subsystem

The Game Instance Subsystem is the global access point for ADS Dialog System. It is available throughout the game session.

Access

In Blueprint, use the Get Dialog System function. It directly returns the active dialog logic: the result of Get Dialog Logic (Typed).

Get Dialog System function

Functions

FunctionDescription
Get Dialog SystemReturns the active dialog logic, which is the result of Get Dialog Logic (Typed).

Blueprint logic

The Subsystem uses BP_ADS_DialogSystem as its central logic. This Blueprint logic is created and retained by the Subsystem throughout the game session. It is separated from the Subsystem so it can be extended more easily in your project without modifying the system's central behaviour.

2. Central logic BP_ADS_DialogSystem

Central logic is where you connect ADS Dialog System to your project. It can be extended in Blueprint to apply game rules, open widgets, or react to a conversation's flow.

Parameters

NameDescription
Acceptable DistanceDistance used to consider a speaker close enough during a conversation.
Auto NextDefault value that enables automatic progression to the next line. It can be changed at Runtime.
Seconds Per WordTime used to calculate automatic progression to the next line from its word count.
Min DurationMinimum display duration for a line, even when its text is short.
Dialog ContextInput Mapping Context used for dialog commands.
Travel ContextInput Mapping Context used for Travel-mode conversations.
Camera PresetsCollection of camera presets available for lines.
Current IETFDefault IETF culture code used by the system, for example en-US.
Dynamic Text Data TableData Table used to replace dynamic text tags, for example {{TownName}}.

3. Actor Component AC_ADS_Dialog

AC_ADS_Dialog is the component that connects an Actor in your game to the dialog system. Add it to the Blueprint of every Actor that must be used as a speaker, then configure its data and conversations.

Add and connect the component

In the speaker Blueprint, add AC_ADS_Dialog from the Components panel. The component must remain attached to the relevant Actor. Then configure its speaker data and the conversations in which this Actor can participate.

Parameters

NameDescription
Acceptable DistanceDistance at which interaction with the speaker is considered possible.
Collision RadiusRadius used by the component for its detection area.
AvatarAvatar data used to represent the speaker in dialog.
ConversationsList of all game conversations associated with this speaker, including those disabled by default. They can be enabled at Runtime by your project or by a previous conversation.

Functions

FunctionDescription
Find Nearest NPCSearches for the closest NPC that can be used by dialog.
Find ConversationSearches for a conversation associated with the speaker.
Is Conversation EnabledIndicates whether a conversation is currently enabled.
Hide WidgetHides the dialog widget associated with the component.

4. Speaker Asset PDA_Speakers

PDA_Speakers is the data asset used to define a speaker. Create a child asset for every speaker in your project, such as DA_Player for the player or DA_NPC for an NPC, then associate it with the AC_ADS_Dialog component of the corresponding Actor.

Parameters

NameDescription
Speaker NameName displayed for the speaker in dialogs.
AvatarVisual definition of the speaker avatar.

5. Conversation Asset PDA_ConversationParent

PDA_ConversationParent is the parent asset for your conversations. Create a child asset for every conversation in your project, then add this asset to the Conversations list of AC_ADS_Dialog.

The Conversations list contains conversations for the entire game, including those that are not yet available. An end-game conversation can therefore be assigned from the start, remain disabled by default, then be enabled at Runtime by a project event or a previous conversation.

General parameters

NameDescription
EnabledDefines whether the conversation is currently available. This value can be changed at Runtime.
Is Travel ConversationDefines whether the conversation uses Travel mode. When disabled, the conversation uses Classic mode.

Lines

Lines contains the conversation lines. Each item is a line and has the following parameters:

NameDescription
SpeakerSpeaker Asset that says the line.
TextLine text. It can contain Rich Text, icons, variables, and portions resolved by functions.
VoiceLineMap of Voice Lines associated with the line.
BubbleSpeachDialog bubble type used for the line.
BubbleAppearAppearance used by the dialog bubble.
Camera.ChangeCameraDefines the camera change applied during the line.
Camera.CameraPresetCamera preset used when the line changes the camera.
Camera.DurationChangeDuration used for the camera change.
EventNameName of the event to trigger during the line. This Event must exist in the conversation asset.
AutoNextDurationDuration before automatically progressing to the next line.
bForceAutoNextForces automatic progression for this line.

Choices

Choices contains the choices offered to the player.

NameDescription
TextText displayed for the choice.
ConversationConversation launched when the player validates this choice.

Conversation activation

NameDescription
Deactivate ConversationsList of conversations to disable when this conversation ends.
Activate ConversationsList of conversations to enable when this conversation ends.

6. Text, bubbles, and display

Structures and Data Tables in Data prepare the display of dialog lines.

Dynamic text and Rich Text

Data Tables in Data/Tables prepare the text displayed by dialog lines.

Create dynamic text

  1. Add a row in DT_DialogDynamicText.
  2. Set its Tag and the Text that must replace it.
  3. In a dialog line, use this tag between double braces.

Dynamic text example

For example, if the Tag is Demo and the Text is Framework, a line containing {{Demo}} is replaced with Framework during playback.

Display a value through a function

Resolve Expression is already overridden in BP_ADS_DialogSystem.

  1. Open the Resolve Expression function in BP_ADS_DialogSystem.
  2. On the Switch on String node, add a pin with the desired function name, for example UserName.
  3. Implement the logic for this pin, then return the text to display.
Resolve Expression function in BP_ADS_DialogSystem

In a dialog line, call the function with the syntax {{=FunctionName()}}. For example, {{=UserName()}} calls the UserName pin on Switch on String.

Create a Rich Text style

  1. In DT_RichText_Dialog, add a row with the desired style name, for example yellow.
  2. Configure this style in the Data Table.
Rich Text styles in DT_RichText_Dialog

In dialog text, the opening tag uses the row name: <RowName>. The closing tag is always </>.

For example, for the yellow row, use <yellow>portion</>: only portion uses the yellow style.

Icons used in text are defined in DT_TextIcon.

UI and Menu

MENU_Dialog, W_DialogAuto, W_DialogButton, W_DialogNPC_Icon, and UI_DialogTravel are widgets used directly by the system. Edit their appearance to adapt the interface to your project.

WARNING

Do not modify elements defined as variables. Only visual customization is allowed.

Create a bubble style

  1. Add the new style to the E_BubbleAppear enum.
  2. In MENU_Dialog, add the corresponding widget to WidgetSwitcher_Bubble.
  3. Edit the SetLine Event and, on the Switch on E_BubbleAppear node, add the logic that displays this style.
Switch on E BubbleAppear in SetLine

7. Input

The Inputs folder contains IMC_Dialog and the system Input Actions: IA_Dialog_Up, IA_Dialog_Down, IA_Dialog_Validate, IA_Dialog_Skip, and IA_Dialog_Auto. Use them to connect player commands to choice navigation, validation, skipping, and automatic playback.