Skip to content
Tuxedo CatSTUDIO
Menu

Dialogue Director 2.4.0 Integration Contract

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

Dialogue Director owns conversation state and presentation queries in a GameInstance-scoped UDialogueDirectorSubsystem. Optional integrations remain consumers of public Dialogue APIs; Dialogue has no knowledge of UI Director or DirectorBridge.

GetActiveSessionId() returns a transient FGuid while a conversation is active and an invalid Guid otherwise. Each new session receives a new identity. The identity is not based on a definition, participant, node, or memory address and is not serialized into runtime snapshots.

OnPresentationChanged(FGuid SessionId) fires after a committed Dialogue-owned change that can alter the public presentation snapshot, including session start, current node or frame transitions, effective participant binding changes, and supported Dialogue-owned choice/retry state changes. The event carries no copied presentation state. Consumers query Dialogue’s current session, line, delivery, participant, and choice APIs after notification. No-op operations do not cause duplicate events.

OnSessionEnded(FGuid SessionId) fires after the active state and identity are cleared. A callback must observe HasActiveConversation() == false and an invalid GetActiveSessionId().

An event-driven consumer should take an initial authoritative snapshot, refresh on presentation notifications, and refresh after accepted Dialogue commands. For conditions, skills, or resolution providers with externally owned mutable state, the consumer may bind an explicit provider invalidation source when available. Dialogue cannot observe silent changes internal to an external provider and performs no per-frame polling.

Dialogue retains its neutral IDialogueResolutionProvider registration and dispatch contract. Missing providers continue to return structured ProviderUnavailable; Dialogue does not use a local random fallback. This presentation seam does not change provider requests, provider lifetime, choice evaluation, or randomized resolution determinism.

Dialogue Director has no direct Probability Director, UI Director, or DirectorBridge dependency. Probability-backed resolution remains an optional provider integration. DirectorBridge remains optional and may adapt this source-owned contract in its own module.