Need help with figuring out an anti-cheat for my movement system!

alrighty hi

i’m working on a movement-based fighting game with me friends, and i’ve implemented a loadd of features most importantly including:

  • acceleration, a vectorforce which pushes you in the direction your moving
  • dashing
  • super jumping, also functioning as a double jump
  • stomping
  • cooldowns and a stamina bar
  • chaining moves, combo stuff i dunno how to explain it properly

and a lot more very very cool features to spice up the gameplay, i could go more in-depth but i believe this is enough info

note that i still haven’t started working on the combat yet, that’ll come after the movement

now! i have recently realized i am utterly stupid and coded EVERYTHING on the client side, now i would be an average lazy developer and go “if you see an exploiter just hop servers” but i’m thinkin of preventing people from launching themselves across the map with the ancient power of hackery (once it stops being funny, at least)

considering my aforementioned stupidity, i’ve never really written a properly optimized anti-cheat, and i’d rather not port the entire movement to the server since i want to make sure all players have a smooth experience with it, since the movement requires alot of timing to pull off and the game would be complete crap if it didn’t perform crispy and nice on bad internet connections

so, i’d appreciate help yup!! i need to make sure the movement isn’t hard to control with high ping while still not being too exploitable, so i’ll take any help i can get, thank you!

1 Like

You could check if the player reaches a velocity that is bigger then the max velocity or if you dont have a max velocity, then you could check if the player reaches a unrealistic velocity and then kick them from the game.

the thing is, i’m not worried about the max velocity, that’s easy to fix, i’m just worried about them turnin the cooldowns to 0 and infinitely dashing to take less damage and be extremely hard to hit

This is just an ide, I haven’t tried this myself but you could have a script in server script service with a remote event that has the dash cool down on the server.

Now all bad using client scripts. Good way to test stuff out to see if you like it.
Need to use remotes and ModuleScripts like Person is saying do checks bla bla bla … You can still use client scripts, just also use sever remote checks.

Sometimes it’s easier to set up bait with direct permanent bans. I try to use all this stuff and it is a pain. Roblox really needs to address this more.