Skip to main content

Replication

Starting with Version 1.1 the component can be used in multiplayer. All you need to do is switch on the "Component Replicates" setting of the deformation component, which is the case by default.

Singleplayer

If the component is used in single player, the "Component Replicates" setting can and should be deactivated in order to save some performance.

Dedicated Servers

The component is not yet tested in combination with dedicated servers.

Replicated State, Local Rendering

The deformation component replicates damage state and hits, not the generated GPU/Procedural/Realtime mesh object. Clients maintain their own visual mesh. Unexpected FNetGUIDCache::SupportsObject warnings should be investigated for references to generated mesh components; do not treat every networking warning as harmless.

How it works​

When network replication is active, all hits are recognized by the server and forwarded to all relevant clients. Each client calculates the deformation independently (locally) based on the data received from the server. In general, the hits are always recognized by the server, with the exception of when the actor is a pawn and this pawn is controlled by a player (e.g. a possessed chaos vehicle). In this case, the hits are recognized by the controlling client and then sent to the server.

The native recovery path combines a damage snapshot, delta hit history and the retained hit history. This lets a client apply stored state after joining or becoming relevant again, rather than relying only on live hit events.

Snapshots and Delta Hits​

A snapshot contains compact per-section damage information, including accumulated damage, structural resistance and shear, together with ordering/version information. Subsequent delta hits carry their ordering information so recovery can apply the appropriate newer hits without intentionally applying the same hit twice.

Not a Vertex Snapshot

A damage snapshot does not contain all deformed vertex positions. It cannot reconstruct an unlimited lifetime of exact geometry after the required historical hits have fallen outside the retained window.

SettingDefaultPurpose
Max Hit History300Retained historical hits; oldest entries are replaced at capacity
Max Damage Deltas300Retained newer delta hits; not 300 extra independent historical impacts
Snapshot Every Hits32Number of hits between compact damage snapshots

Both history limits are configurable up to 300. These bounds limit retained recovery data, not the total number of live hits a vehicle can receive.

Native Recovery and Replay Budget​

Apply Replicated Damage State is the native entry point for consuming replicated damage state. Use matching plugin versions, prepared mesh data and deformation settings on server and clients.

Recovery is queued centrally. By default, dmc.Net.ReplayComponentsPerFrame allows 4 components per frame to begin replay work. This spreads recovery across frames when many vehicles become relevant together. It is a component-count budget, not a fixed GPU-time or per-hit budget; a single component with many retained hits can still be expensive.

Custom Blueprint Replay

This applies only if you wrote your own Blueprint loop that reads stored hits and applies them again after a vehicle becomes relevant. Do not also let native recovery apply the same stored hits: the mesh could receive the same deformation twice. Normal collision handling and ordinary manual hits are not that replay loop. Existing custom replay graphs need an individual migration review, especially when they reconstruct hits without stored Damage Zone resistance. See Upgrading.

Limitations
  • Network delivery and budgeted recovery introduce delay. Becoming relevant does not guarantee that all visual work completes in that same frame.
  • The bounded history is not lossless lifetime storage. Once necessary older hits are gone, exact historical geometry recovery is not guaranteed. The compact snapshot does not remove this limitation.
  • The owning actor must also be configured appropriately for replication and relevancy. Component Replicates controls the deformation component's network path; turn it off when replication is not required.