Alright, so I’ve been working with my friends for a while - and we’ve been developing quite a few anti-cheat solutions and looking at how others are developed. There is quite a common issue when it comes to client-side hacks such as no-clip, fly and speedhack. Even though they can be tackled - bypasses can be found and sometimes they punish innocent users due to false-positives.
This is simply an alternative method of catching cheaters, I’ll explain our own implementation of it and then how it can be used in other methods.
We created a system that allows developers to use the following functions;
[x] The player object [t] An optional time to record, if not it will wait for rac.stop()
rac.begin(x, t) - Begins the recording, with an optional t variable, if not included it will await manual stopping
rac.stop(x) - Stops a recording manually for the given player
rac.save(x) - Saves it to a datastore for future review, also includes a unique recording key
rac.clear - Clears all recordings currently on that server NOT THE SAVES, to remove the saves for that player that can be done via the gui.
What this does is pretty simple, it records the torso of the user based on a few configuration values such as how often and the max frames - it then saves it to a datastore and with a included gui you can then load-up an interface as an admin to see all players that have saved recordings.
This can be implemented in many ways, heres two.
A; You can have an Obby whereas if the player’s time is in the top 10 of the leaderboard then it saves the recording and requires it to be reviewed by admins before it can be displayed.
B; A report system, if a player is reported it begins recording for X amount of time then saves off the recording for later review.
If you think this is a good idea, or can be improved or anything let me know.
The entire script is one module-script that just needs to be put in server-script service and its good to go. It’s as simple as requiring the script and then running the functions.
Example usage and photos:
Two recordings.
[white] A player who got into the top 10 legit, as you can see the spacing is normal the player jumped and the replay seems to be fair.
[red] A player whom clearly used a cheat such as btools or fly to prevent jumping and thus get a faster time.
What does this attempt to fix?
It’s an alternative to standardized anti-cheats, if you have a speed-running game for example you do not need to attempt to patch every single hack such as btools, fly hack, speedhack, teleporting, and the other millions of ways - because the recording will literally display the exact path and time it took them, and since the recording system is within the server and not displayed to the users - attempting to fake a run is extremely difficult and impossible if the user is unaware of the system.
And lets face it, there is no way to patch every single hack manually - if the hackers know Lua they can develop bypasses with relative ease. This system is fool-proof at catching such users, its all server-side and with manual review. You will get no false-positives. The GUI includes information such as the players current ping, etc.