MadAntiCheat
MadAntiCheat has been discontinued. However, I have made a successor anti-cheat, BitAntiCheat, which addresses many issues present in this anti-cheat, and is overall much better than this one. https://devforum.roblox.com/t/bitanticheat-a-server-sided-general-purpose-anti-cheat/
Disclaimer: This is an open-source anti-cheat, it is not a top-of-the-line industrial grade anti-cheat. I made this as a side project. This is not made to block all exploiters (ones with scripting backgrounds, etc). This IS made to block script kiddies from just using open-source exploits to ruin games. This anti-cheat is not an artificial intelligence, and can’t detect every exploit that pops up in your game.
MadAntiCheat V2 is a remake of MadAntiCheat V1, which had a lot of flaws, false positives, and unoptimized code. I created V2 in hopes of fixing that!
**Note, this is currently in alpha. Expect there to be updates posted here. **
Installation
In order to install MadAntiCheat, simply go to the github and follow the instructions posted there.
MadAntiCheat (madonox.github.io)
Features
MadAntiCheat has a lot of features packed into it, from administrative utilities to preventing exploiters from using exploits in your games!
Here is a list of all current features:
- Speed check.
- Ping check (anti-lagswitch).
- Administrative gui.
- Screenwatch ability for admins.
- Anti hitbox expanding.
- Anti script injection (not tested I don’t own an exploit client).
- Ability to import admins from external admin systems.
API
While MadAntiCheat V2 is certainly an improvement compared to V1, it can still interfere with external scripts. Because of this, I have made it so that developers can interact with the API to disable certain checks, such as speed.
Getting the API module
In order to get the API module, you can simply do:
local MadAntiCheatAPI = require(game.ReplicatedStorage:WaitForChild("MadAntiCheatAPI"):WaitForChild("MadAntiCheatAPI"))
Once you have the API required, you can begin to interact with it.
In order to interact with any server sided checks (speed, ping, etc), you must use the invoke
method.
Below is an example of interacting with the speed check.
MadAntiCheatAPI.invoke("Speed","ignorePlayerNext",game.Players:WaitForChild("Madonox"))
The code above will ignore the player for one check, once that check has passed it will continue to check them.
Speed Check Documentation:
Method | Argument(s) | Effect |
---|---|---|
“ignorePlayerNext” | Player | Ignores check on player once. |
“ignorePlayer” | Player | Ignores checks on the player. |
As of now, this is all to the API, I will be expanding on it in the future, though!