How would I go about making an Anti-Cheat for a "parkour" game

Now, when I say “Parkour”, I mean the player has an acceleration script, and wall runs + a mechanic called dashing heavily alters the players movement. I tried using a basic server sided one, and even after changing the threshold for maximum speed, one the game teleported the player, the anti cheat would count it as cheating.

I am completely new to anti cheats, so I always try to make my code as secure as possible, although most of my games are small fun projects. The game I need the anti cheat for is planned to be bigger, so I want to make sure that if there was a slip up, there is a fallback.

I’m not asking for a full on anti cheat system, more so just a way to check if these conditions are happening and how to stop the anti cheat from having a false positive, and a few tips on how to construct anti cheats would help a lot.

1 Like

Have it so if someone skips a checkpoint the character resets. Unless they go to each checkpoint.

Anti-Cheat systems are sure complex, but I recommend trying to do what AdminTelamon said about the ‘Checkpoints’ and make a protective system where you can change the max speed of the criteria, like that, and you could detect the cheater whoever hacks and goes above the walkspeed limit. I am sorry if this is a terrible idea, I am new to helping people.

You could make it so if a player is not touching the ground for an extended period of time, the character is reset.
local plr = game:GetService(“Players”)
local count = 0
while true do
local waited = wait()
if plr.Character:FindFirstChild(“Humanoid”) then
plr.Character.Humanoid.FloorMaterial == nil then
count += waited
if waited >= 10 then
waited = 0
count = 0

lmk if u have any problems with that.

I agree @AdminTelamon has suggested, you could also implement an anti-teleport system to prevent players from teleporting to each checkpoint as well. As @Minecrablox has said, anti-cheat systems can get quite complex, so I suggest you do as much research/testing as possible before writing your anti-cheat.

Ok, I will try out this system, I think I’ll have 3 - 4 checks per course.

The player will normally go through all checkpoints, but if a player is cheating in some way they won’t. If the player dies, or falls, the checkpoints are reset, and at the very end if the player did not touch all the checkpoints, they will be reset with no badge, no message in chat, and their time won’t be counted on the leaderboard.

Would this be a good idea?

Yeah, I will try to research it as much as possible.
Right now, I will try doing a checkpoint system, and in the future stop noclip/flying hacks.

1 Like