Skip to content
Tuxedo CatSTUDIO
Menu

DialogueResolutionProvider

Review draft. This source page has not completed website editorial and release-specific verification.

# Dialogue Resolution Provider (2.1.0)

Dialogue Director 2.1.0 owns semantic resolution intent and contains no Probability Director dependency. Runtime checks and weighted selection use only the native IDialogueResolutionProvider contract.

Implement IDialogueResolutionProvider from Resolution/DialogueResolutionProvider.h:

  • ResolveCheck receives a neutral binary-check request.
  • SelectWeighted receives ordered stable candidate IDs and non-negative weights.

Provider registration is native-only. Register one shared provider per Dialogue GameInstance through UDialogueDirectorSubsystem::RegisterResolutionProvider, and retain the returned FDialogueResolutionProviderHandle. Unregister with that exact handle. Re-registering the same provider and ID is idempotent; a different provider conflicts while the slot is occupied. GameInstance teardown releases the provider.

FDialogueCheckDefinition contains a stable ResolutionProfileId, semantic ValueSourceKey, authored BaseValue, optional SkillId and SkillParticipantRoleId, comparison, target and range end, ordered neutral scalar inputs, and success/failure outcome IDs. The profile ID is an FName-based stable identifier, not an asset reference. Dialogue structural validation checks its structure only; it does not require a provider registry.

DialogueDirectorEditor optionally exposes IDialogueResolutionEditorProvider. This Editor-only contract can enumerate lightweight profile descriptors and add Check validation, summary, search terms, and generic preview fields. It does not change or register the Runtime provider contract, and provider absence does not prevent authoring.

When ValueSourceKey is Skill, Dialogue resolves the authored participant role in the active frame and queries the optional Skill value service before dispatch. Dialogue does not own Skill state. The selected provider profile owns resolution mechanics.

The graph uses one generic Check node. Retry policy and reset-condition identity are Dialogue routing state attached to that node. A project may author a Skill-sourced Check through the same neutral definition.

FDialogueResolutionIdentity combines DialogueId, ContextKey, OperationId, ActivationScope, OperationKind, and AttemptIndex. Root and SubDialogue frames receive deterministic activation scopes and monotonically assigned activation ordinals. Retry attempts preserve frame scope and advance the attempt index only under Dialogue retry semantics.

Neutral resolution statuses are Resolved, ProviderUnavailable, InvalidRequest, Rejected, and Failed. Check results additionally report Dialogue-owned definition, identity, participant, and Skill-acquisition failures. Provider failures do not route through an authored gameplay failure outcome.

Without a registered provider, checks, random branches, and weighted Dialogue Sets return structured ProviderUnavailable results. They do not take an authored failure route, select a candidate, consume a retry attempt, or invoke local random generation. Ordinary lines, choices, conditions, actions, events, history, and conversation traversal remain available.

Probability mechanics may be supplied by optional DirectorBridge integration Dialogue.Probability ContractVersion 3. Dialogue core neither loads nor references that integration.