Skip to main content

Multiplayer Integration

The subsystem, manager and settings are local objects. The component values/state tags replicate through their Pawn owner. No native Server RPC is declared by the supplied survival components or subsystem.

Client input → owned Pawn/PlayerController Server RPC (project)
→ server validates action and current Pawn
→ component interface mutation
→ replicated numeric values/state tags
→ client queries and delegates → HUD

Derive the requesting player from the owned RPC actor. Validate action permission, amount, target, rate and current life/movement state. Never accept an arbitrary client-selected Pawn or free healing amount without project rules.

Numerical mutation helpers commonly check PawnRef and HasAuthority, contrary to the technical PDF's assertion that core code contains no authority checks. Some tag, affect and modifier methods omit this guard; keep every mutation on authority.

Component constructors enable replication, but the Pawn must also replicate and be relevant. Properties use DOREPLIFETIME without owner-only conditions; do not assume stat privacy. Server mutations broadcast several local value/tag events while client OnRep broadcasts receive events. Special life/sprint/threshold delegates do not have uniform server/client behavior.

Test listen server, dedicated server, remote clients and late join individually. Standalone has a current server-only timer exclusion. See Replication and Timers and Lifecycle.