Our Anti-Cheat system is your game’s guardian against unfair advantages and exploits. We’ve designed a strong defense to ensure a level playing field for all players. Say goodbye to hackers and cheaters ruining the fun – our Anti-Cheat is here to protect the integrity of your game.
No more unfair advantages.
Protection against cheats and exploits.
Fair and competitive gaming experience for all.
Constantly updated to stay ahead of emerging threats.
With our Anti-Cheat, you can focus on creating exciting gameplay, and we’ll handle the rest. Let’s keep your game fair, secure, and enjoyable for everyone!
Protectors:
Fly
Walkspeed
JumpHeight / JumpPower
(More coming soon!)
Features
Settings
Tampering Protection
Blacklist Text
Why should we use Flair?
Flair is always being updated to the latest protections. Protecting your game is our #1 priority. We also include other features just in one model!
Want to see it in action?
Watch the video!
Interested in our Anti-Exploit? Feel free to take the model! Get the Model!
You can’t use InsertService when loading assets not published by yourself so this wouldn’t work for anyone other than you, this is also a client side anti-cheat which can be bypassed easily especially since it’s open source, you should consider researching and developing a server side solution instead.
Kicks are handled on the server so they can’t be bypassed. You also cannot tamper with any of the Anti-Exploit Remote Events, client scripts, etc. otherwise you’ll be kicked.
That’s cool! I think the direction this is going is good; but you should also consider adding something on the server that is checking if stuff is reasonable like @Ax3nx mentioned.
And yes, I’ve seen your reply. Adding something on the server is still good though.
The issue with this is that its all local and exploiters have pretty much full control
I noticed that you only get detected when the scripts are deleted from StarterCharacterScripts, parenting the anti cheat scripts to the character is a terrible way to make an anti cheat just because with a little bit of searching any skilled exploiter can find it within minutes.
I recommend hiding the main “anti” and “detected” scripts, potentially even make more copies and checks
I unfortunately cannot give any more tips on how to improve it because I’ve never made an anti-cheat so I wish you best of luck with your project!
The Remote tampering protection seems weak. The kick is performed on the client and could be bypassed.
if not remoteEvent then
localPlayer:Kick("[Flair AE] Tampering detected.")
break
end
A better solution would be for the server to expect a signal from the client every ~5 seconds. If the server doesn’t receive the signal, it suspects tampering and kicks the player.
Honestly, it’s best to do this on the server, anti-tampers aren’t likely to work most of the time.
On top of that this anti-cheat can be thwarted with a simple
local old; old = hookmetamethod(game, "__index", function(self, key)
if key:lower() == "Kick" then
return task.wait(math.huge)
end
return old(self, key)
end)
local function disconnect(signal)
for _, connection in ipairs(getconnections(signal)) do
connection:Disable()
end
end
disconnect(humanoid.RootPart.ChildAdded)
disconnect(humanoid:GetPropertyChangedSignal("WalkSpeed"))
disconnect(humanoid:GetPropertyChangedSignal("JumpHeight"))
disconnect(humanoid:GetPropertyChangedSignal("JumpPower"))
disconnect(humanoid:GetPropertyChangedSignal("Health"))
disconnect(humanoid:GetPropertyChangedSignal("MaxHealth"))