circle-caret-downGC2 Core

GC2 Core Networking Module

Server-authoritative networking for Game Creator 2 Core character features.

Features Covered

Feature
Request/Response
Broadcast
Server Direct

Ragdoll

NetworkRagdollRequest/Response

NetworkRagdollBroadcast

ServerStartRagdoll()

Props

NetworkPropRequest/Response

NetworkPropBroadcast

-

Invincibility

NetworkInvincibilityRequest/Response

NetworkInvincibilityBroadcast

ServerSetInvincibility()

Poise

NetworkPoiseRequest/Response

NetworkPoiseBroadcast

ServerDamagePoise(), ServerResetPoise()

Busy Limbs

NetworkBusyRequest/Response

NetworkBusyBroadcast

-

Interaction

NetworkInteractionRequest/Response

NetworkInteractionBroadcast

-

Note: This package also syncs GC2 States and Gestures animations, but that path is handled by NetworkCharacter + UnitAnimimNetworkController (not by Core message IDs 200-229).

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                     NetworkCoreManager                          │
│  • Message type routing (IDs 200-229)                          │
│  • Prop registry for prefab lookup                              │
│  • Convenience methods for client/server                        │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                    NetworkCoreController                        │
│  • Request/Response handling                                    │
│  • Server validation & cooldowns                                │
│  • Client pending request tracking                              │
│  • Broadcast distribution                                       │
└─────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                     NetworkCoreTypes.cs                         │
│  • Compact serializable structs                                 │
│  • Enums for action types & rejection reasons                   │
│  • Combined CoreState for delta sync                            │
└─────────────────────────────────────────────────────────────────┘

Message Type IDs

Reserved range: 200-229

ID
Message Type

200-202

Ragdoll (Request, Response, Broadcast)

205-207

Props (Request, Response, Broadcast)

210-212

Invincibility (Request, Response, Broadcast)

215-217

Poise (Request, Response, Broadcast)

220-222

Busy (Request, Response, Broadcast)

225-228

Interaction (Request, Response, Broadcast, Focus)

229

Core State Sync

Usage

Where To Add Components

  • Add NetworkCoreManager to a single bootstrap object in your scene (or use the Setup Wizard scene step).

  • Do not manually add NetworkCoreController in Setup Wizard or on player prefabs.

  • NetworkCoreManager auto-ensures and initializes NetworkCoreController on the manager GameObject at runtime if it is missing.

  • Keep Use Core Networking enabled on NetworkCharacter when you want core feature interception, but avoid manually placing extra NetworkCoreController components on characters (prevents duplicate-controller ambiguity).

  • For animation state/gesture sync, enable Use Animation Sync on NetworkCharacter so it adds/uses UnitAnimimNetworkController.

Setup

Client Requests

Server Direct Methods

Network Message Handling

States & Gestures Sync (Also Supported)

In addition to the Core features above, the networking layer also syncs GC2 animation commands for:

  • Character.States

  • Character.Gestures

This uses UnitAnimimNetworkController on NetworkCharacter (owner drives commands, remotes apply). Common API surface:

  • SetState(...)

  • StopState(...)

  • PlayGesture(...)

  • StopGesture(...) / StopGestures(...)

This is intentionally separate from NetworkCoreManager message routing and Core type IDs.

Validation Rules

Ragdoll

  • Cooldown between state changes (configurable)

  • Cannot start ragdoll if already ragdoll

  • Cannot recover if not ragdoll

Props

  • Maximum props per character (configurable)

  • Prop prefab must exist in registry

  • Bone must exist on character skeleton

Invincibility

  • Maximum duration cap (configurable)

  • Cooldown after invincibility ends (configurable)

  • Cannot cancel if not invincible

Poise

  • Validates damage values (optional)

  • Tracks broken state

  • Supports damage, set, reset, add operations

Interaction

  • Maximum range validation (configurable)

  • Per-target cooldown (configurable)

  • Character busy state check

Prop Registry

Register props in inspector or at runtime:

Integration with Existing Modules

This Core module complements:

  • NetworkCharacter - Death/Revive, Driver assignment

  • UnitAnimimNetworkController - States/Gestures animation command sync

  • UnitAnimimNetworkKinematic - Optional server-authoritative locomotion animation parameters

  • UnitMotionNetworkController - Movement, Dash, Jump

  • NetworkCombatController - Hit validation, Lag compensation

  • NetworkMeleeController - Block, Skills, Reactions

  • NetworkShooterController - Reload, Jam, Sight

  • NetworkStatsController - Stats, Modifiers, Status Effects

Statistics

Last updated