All physics simulation runs only on the server. Clients never simulate physics. Instead, they receive finished poses from the server and blend them smoothly. Active ragdoll blending is fully integrated; the server merges animation targets and physics results into a single authoritative state. The result: zero desync, zero prediction complexity.
| Role | Responsibility |
|---|---|
| Server | Simulates all bodies, constraints, and collisions. Blends animation pose with physics forces to produce the final authoritative pose. Generates snapshots at a fixed interval. |
| Client | Buffers the two latest snapshots, interpolates between them, and applies the resulting bone transforms to the skeletal mesh. No local physics simulation. |
| Snapshot System | Packs all bone transforms, velocities, and active ragdoll flags into a compact struct. Sent from server to clients via replicated property or RPC. |
| Default Unreal Behaviour | This System |
|---|---|
| Physics simulated client-side, server only activates ragdoll. | Physics runs 100% on the server. |
| Each client gets different results, leading to desync. | Single source of truth; all clients see the exact same state. |
| Active ragdoll motors/constraints often run locally, adding prediction and correction overhead. | All motors and blending are resolved on the server; clients receive the finished pose. |
| Frame rate drops or network lag directly affect physics behaviour. | Client conditions are irrelevant — snapshots are authoritative and deterministic. |