Dialogue
Network Dialogue Module (GC2 Dialogue)
This module adds server-authoritative networking for Game Creator 2 Dialogue (Dialogue, Story, choices).
Compile symbol: GC2_DIALOGUE
Authority Modes
Coop and most production flows: interception mode is usually enough, no source patch required.
Strict competitive-grade authority: apply the optional Dialogue patcher so direct
Play/Stop/Continue/Choosecalls are validated before local execution.
Patch menu:
Game Creator > Networking Layer > Patches > Dialogue > Patch (Server Authority)
Components
NetworkDialogueManagerNetworkDialogueController(one per networked dialogue endpoint)
NetworkDialogueController needs:
a
Dialoguereferencean owning
NetworkCharacterreference (used forNetworkIdownership/security)
These can be on different GameObjects.
If they are not on the same object, assign both references in the controller inspector. Multiple Dialogue components in scene are supported by adding one controller per dialogue you want networked.
Transport Wiring
Wire the manager delegates to your transport layer:
OnSendDialogueRequestOnSendDialogueResponseOnBroadcastDialogueChangeOnBroadcastFullSnapshotOnSendSnapshotToClient
Then route inbound packets to:
ReceiveDialogueRequest(request, rawSenderClientId)on serverReceiveDialogueResponse(response, targetNetworkId)on clientsReceiveDialogueChangeBroadcast(broadcast)on clientsReceiveFullSnapshot(snapshot)on clients
Supported Authoritative Actions
PlayStopContinueChoose
Interception Fallback
NetworkDialogueController listens to local Dialogue events on owner clients and forwards them as network requests. This lets existing GC2 Dialogue instructions/UI continue to work without immediate graph rewrites.
For strictest competitive behavior, combine Request* APIs with the Dialogue patcher.
Initialization
Set manager server role:
NetworkDialogueManager.Instance.IsServer = isServerSession;
Initialize each controller role:
controller.Initialize(isServer, isLocalClient);
The controller auto-registers itself with NetworkDialogueManager when it has a valid owner NetworkCharacter.NetworkId.
Security
Server request processing uses:
SecurityIntegration.ValidateModuleRequest(...)SecurityIntegration.ValidateTargetEntityOwnership(...)
with strict ownership + protocol correlation checks.
Last updated

