Velocities: Client or Server

I haven’t been able to find an answer to this question yet… I’m wondering what are the differences between velocities being put on the server or client. Does one have better performance or something? I’m just curious… (First post :sunglasses:)

Done on the client, for example let’s say Hit Detection will be more reliable for the client whereas done on the server there will be latency and you would have to predict where you shoot.

If that answers your question?

in an ideal scenario they function the exact same, however:

  • parts moved with velocities on the server will suffer from the NetworkOwnership issue which causes a slight stutter on the part when it comes near a player as the server tries to swap the NetworkOwnership to the player, then back to the server as a quirk of the engine (this can be fixed by setting the NetworkOwnership a player from the start, but doing so opens the exploit gate as anything network owned by the client can be controlled by the client, and even if controlled by a legit player the part would still move at different speed based on the player’s framerate)
  • velocity on the server can be affected by server lag if the server is being throttled (ideally this only happens as a result of incompetent coding/memory leaks), causing the part to be moved at a laggy pace
  • client-sided velocity will have its speed altered by the client’s framerate, however this can be fixed through the use of delta time

Flitering enabled messes with Velocities etc on the client, you can test if flitering enabled is messing with your game by either;

  1. Team testing.
  2. Playing the actual game.

Filtering enabled doesn’t work when you’re testing it within studio.