So I have a simple crate that I have created a destructible mesh (DM) from.
This DM is part of an actor blueprint (BP) that fractures the DM when it takes damage.
The actor BP containing the DM is setup to replicate.
The physics of the DM replicate just fine across all clients and the server, including the actual fracture event which “explodes” the DM.
The problem is that the chunks generated when the DM fractures are not replicated, they’re simulated on each client/server and therefore the result is that the chunks from the fracture end up in different places on every single client/server, the end result of which is incorrect collision detection on all clients.
The way it’s setup is that the player character triggers a damage event that will replicate and only run on the server. The DM BP detects when it takes damage, it then runs a Multicast event, this Multicast events executes on all clients and the server, this is were damage is finally actually applied to the DM which causes it to fracture.
I assume since the Apply Damage event is triggered on each client individually, this is what causes the actual fracture of the mesh to be simulated individually on each client, and therefore the inconsistent result.
So the question is: is there a way to replicate the fracture effect of the DM across all clients so that they all see the exact same fracture?
Or simply, is there a way to run the Apply Damage event on only the server and have the effects of the fracture event replicate to all clients?