I am using Lyra as a template for my project and I placed destructible actors (with meshes) into my level.
When i play as standalone everything works properly.
When i play with 2 players as listen server destruction, collision works properly.
When i play with 2 players as clients (it connects to a dedicated server) the destruction is working properly and replicating to all clients and they are seeing the right result, but the collision does not seem to be right. For example, if i have a destructible table and i destroy it, then i still can jump onto it and i have stuttering movement downwards, like what you see when you have position conflict between the server and client.
I don’t know what’s causing it, since the mesh destruction replicated properly, but the collision not.
Any ideas?
You typically don’t replicate “destruction”. You replicate (Multicast) the damage point and values applied by the server. Then have the client apply the damage to the actor locally.
one thing, the other client that is looking at the client who is trying to jump on the table is seeing the right result, i mean the client who is trying to jump on the table is went through it as its expected, but from the jumping client’s perspective is still stuttering upon the destroyed table.
I need to see your code for the application of damage to the table and the multicast event logic.
General approach is client does something to damage the actor. RPC’s that action to server. Server applies the actual damage to its copy and multicasts that action to all clients. Clients then apply what the server did to get the same result. It’s lockstep because replicating physics is jittery and not quite accurate.