Unreal Engine 5 Chaos destruction replication

Hello,
I’m trying to create simple fps shooter with destruction system.
I’m trying to replicate chaos destruction. I created GeometryCollection and GeometryCollectionActor (Wall on screens below.), then marked “Enable replication” option in Wall instance.

But it seems that replication not working.

  • If i select this option, mesh is “divided into parts” only on host. Client doesn’t see changes.

  • If I don’t select this option, mesh is divided into parts on client and server, but in different way.

Then, to debug this, I created breakpoint on method UpdateRepData in GeometryCollectionComponent.cpp. Then I saw, that this function is never called, even if enable replication is set to true. (I assume that this method is responsible for replicate changes to other clients)

How can i solve this issue? What I doing wrong?

How can I solve this issue?

The solution to this is to set Component Replicate of “GeometryCollectionComponent” to true and uncheck “Enable abandon after level”, and all elements of partial chaos destruction will be replicated and solved.

I cant recommend this reply more, this is exactly why it wasn’t replicating from my server to my client.

I spent a while on this before concluding it’s the wrong layer to fix.

The thing that made it click: ask what the minimum amount of state both sides actually have to agree on. For most destruction it turns out to be tiny - which parts of the surface are gone. That replicates cheaply and deterministically, and both the visual mesh and the collision can be regenerated from it on every client, so they structurally can’t disagree.

Physics then only ever drives things nobody’s gameplay depends on. Chunks landing differently on two machines stops being a bug and becomes acceptable.

Worth saying the tradeoff is real, you give up arbitrary fracture shapes and take on the cost of rebuilding geometry at runtime. But those are ordinary engineering problems with solutions, unlike solver divergence.