I recently created a movement system for my game. I started wondering how exploiters might manipulate my scripts, which led me to this question: what happens if different systems are handled differently (e.g., a wall-running system is dealt with on the server, while the dash is handled on the client)? I can understand why a running system wouldn’t be handled on the server, but something like wall-running might be. However, I also considered the issue of server lag when multiple players are using it, as well as potential delays, which makes it more complicated to decide whether to handle it locally or on the server.
Here’s a list of movement features I plan to include in my game:
Wall Running,
Ledge Grabbing,
Climbing,
Dashing,
Running,
Crouching,
Sliding,
Breakfall (Rolling when hitting the ground at a high velocity),
Vaulting,
Swinging Mechanic.
I would honestly put anything movement related on the client, but it does make it tricky to check if there is anyone exploiting and I personally do not have experience preventing exploiters from doing that, but movement systems feel 1000000% better when they are on client because they do not have latency issues.
add movement systems on client and add checking on the server side
anything that is velocity/physics/movement based and related to the player should be on the clientside
Oh yeah also I forgot to add should I make a client sided controller (Get’s all the inputs then fires a Bindable function or remote function) I’ll try this out and see how it goes.