Usually server is always right, but for my project I would prefer client being right about their movement. It is not competitive multiplayer where I need anti-cheat etc. I value low input lag and less teleportation due to server-client desync more than server correctness.
Good example would be with launch character.
Currently I am executing
- launch on client
- Telling server to launch
- Server tells everyone to launch (except the original client, because he already launched)
This works up to like 50 ping. After that client teleports as it is trying to sync with server.
How to launch character without server correcting the client?