@F4ll_ouT Hello, we don’t have a client authoritative physics multiplayer solution in Unreal Engine at this point.
Disabling UPrimitiveComponent.bReplicatePhysicsToAutonomousProxy will only stop the client from running physics replication for the Autonomous Proxy actor, so you don’t get corrected to the servers state.
But there is no logic that makes the server correct itself to the autnomous proxy state. You will need to write a solution that sends the autonomous proxy state to the server and apply the state there.
Issues with client authority comes with interactions in physics, imagine you and another player both jumping onto a see-saw (a tipping board which is physics simulated) you both land on it at the same time in realtime, it takes time to send states over the network though so neither of you see eachother landing at the same time.
On your screen you see yourself land on it on the right side, pushing the left side up into the air. The other player sees themself land on left side pushing the right side up into the air.
You both send your autonomous proxy positions to the server which applies your positions, but what happens to the see-saw on the server?
Which one of the two players were correct? Both can’t be correct since you will see two completely different physics states but the server is also not allowed to say any of you were incorrect?
Who owns the see-saw? If you land on it at the same time and you try to take client ownership of the see saw then it becomes a race-condition for who gets their AActor::SetOwner call first to the server. But even if one of the clients got ownership of the see-saw the other autonomous proxy interacting with that see-saw is not allowed to be corrected so it might see the see saw getting snapped up into a different state but the autonomous proxy player might then clip into the physics collider or end up under the see saw instead of following it up.
If the server is the owner of the see saw then you could use Predictive Interpolation for the see-saw but the server is not allowed to correct players. So interactions will be subject to latency which results in sluggish interactions.
Your autonomous proxy will land on the see-saw and it’s not going to be allowed to push it down more than a little bit depending on how much Predictive Interpolation (or your own physics interpolation logic) allows it to move away from the server state it replicates with. So you will land on it and push it a little bit down and you will have to wait for the server to receive your autonomous proxy state where you are clipping into the see-saw on the server forcing the server to move the see-saw down and then you need to wait for that state to arrive from the server for the see saw to move down a bit which allows you to push it down a little bit further due to leniency in Predictive Interpolation. And so on..
My recommendations with networked physics is to take it slow, step by step ensure things work with each new thing you do since if you take many steps in a row it might be hard to debug what is causing issues. So if you follow the tutorial and then add smaller things continuously ensuring things work each time and then solving the issues that pop up you will be able to make complex pawns from this.