Sequential Multi-Choice Playback
The component supports sequential playback of multiple selected choices, allowing a player to select multiple options in a choice node and have each option’s TargetNodeID branch play one after another as dialogue.
Blueprint API:
SubmitChoiceSequential(SelectedChoiceIDs, bTriggerChoiceEvents=true, bOrderBySelected=true)SelectedChoiceIDs: Array of selected choice GUIDs (keeps selection order ifbOrderBySelected=true)bTriggerChoiceEvents: Whether to broadcast each choice’sOnSelectedEventbOrderBySelected: true to preserve player-selected order; false to use the authored order inFDialogueChoiceNode
Behavior:
Builds an internal queue from selected choices’
TargetNodeIDand plays each branch as a normal dialogue.Preserves
DisplayDelayandAutoAdvanceDelaywith millisecond-level overhead.In sequential mode, text nodes with
AutoAdvanceDelay == 0auto-advance to avoid stalling.If a branch reaches another Choice node, the branch ends (default policy: stop at next Choice) and the system immediately advances to the next selected branch to guarantee all selected branches execute.
If a
TargetNodeIDis invalid or conditions fail at runtime, the system skips that branch and continues with the next.
Events:
OnDialogueChoiceSelected: Broadcasts once with the final set of valid selections for the current choice nodeOnDialogueNodeExecuted: Broadcasts for each text node with resolvedSpeakerInfoOnDialogueEventTriggered: Broadcasts for dialogue or choice eventsOnDialogueStarted/OnDialogueEnded: Fired at the start/end of dialogue (including sequential sessions)
Notes & Best Practices:
If you regenerate choice GUIDs or rewire
TargetNodeIDin the editor, ensure your UI passes the updated GUIDs toSubmitChoiceSequential.To guarantee all selected branches are executed, model deeper “new player decisions” as subsequent choice nodes; the default sequential policy ends at the next Choice to avoid unintended state changes.
If you need an alternative policy (e.g., auto-pick first available, tag-based selection, or skip all inner choices), extend the component with a strategy enum; default prioritizes predictability and robustness.
Last updated