Cheat Shield - Server Side AntiCheat

Cheat Shield

Cheat shield is an anti-cheat fully hosted on the server. I have been working on it for a bit now and decided to release it to the public..

The place is uncopylocked so you can check out the anti-cheat yourself.

Currently the anti-cheat contains:

  1. Anti-Fly
  2. Anti-NoClip
  3. Anti-Speed

All detections were scripted by me and are unique (I think)

Here is the showcase of these detections:

Fly:


NoClip:

Speed:

You can check out the anti-cheat here yourself:
Anti cheat place
Discord server : ENdgGeqDyq
(P.S I dont know if discord servers are allowed if they are not please tell me :pray:)

15 Likes

#scripting-support:creations-feedback since this is not Open Source

1 Like

This should be at #help-and-feedback:creations-feedback because this isn’t open sourced.

1 Like

It is, the place is uncopylocked

1 Like

Oh ok. So please say it in the topic.

Alright ill edit it right now.

1 Like

I would recommend not kicking players for server-sided anti-cheats, unless you are ABSOLUTELY SURE that it’s an exploiter and not some check triggered due to things out of your control.
(For example, lag can trigger walkspeed checks because it looks like you are teleporting.)
Instead, you should just revert the effect of the cheat, for example, setting players back to where they should be.

4 Likes

Please make a proper GitHub please. It’s much easier to take a glance at the code and see if it actually works then opening a new place.

4 Likes

Let’s see everything wrong with this:


Noclip detection seems not horrible although I believe this would have false positives if you have parts that toggle between colliding and not as it doesn’t double check to my knowledge.


The fly detection is prime for false positives from lag/desync, and by the seems of it can be bypassed by just having an animation playing the whole time.

image

Also, you don’t even have the speed detection in the game anymore, what gives? Was it a common detection method that was begging for false positives or is easily bypassed?

4 Likes

From what I am reading in his code, the “Speed Check” kick was removed and changed to instead teleport the player back. Here is what I believe is his “speed check” and a commented version.

3 Likes

Heyo, just a friendly reminder to keep it constructive (e.g., not framing everything in the negative/only focusing on negative aspects).

@OP Nice contribution, anti-exploit culture only improves when people put their stuff out there, offer new ideas, and share what they know with others - so thanks for that. @2jammers suggested adding a GitHub, which I would second, more specifically for the reason that people can create Pull Requests and create Issues to draw your attention to specific parts of code/offer solutions at the same time. This helps capitalize on the resource of the programming community itself and will help make your resource better and stronger.

If you’re looking to continue maintaining this, I’d recommend a modular set-up, so that you can freely enable or disable anti-exploit checks. This would make it simpler to maintain, easier to segment different checks, and would make things more efficient when it comes to adding onto what already exists.

Nice work though so far!

14 Likes

Thanks everyone for your replies, I’ll make sure to improve the anti-cheat and add what you guys told me :+1:

2 Likes

i really recommend doing this instead of kicking unless you are 100% sure the player is an exploiter

HRP:SetNetworkOwner(nil)
task.wait(3)
HRP:SetNetworkOwner(plr)

(also floating is undetected)

3 Likes

friend, what you just said does not make sense, you are only good for criticism and it is already in an incomplete version, read WELL, you need to learn no no no

3 Likes

Just learned new ways to counter exploiters, what other detections should I add?

an anti-autoclicker would be good

That’s not really an exploit + would be easy to bypass

How come bedwars added a CPS limit?

Probably server side debounces.

1 Like

Agreeing with what LambHubGoBrrrr said, Bedwars cannot have a server CPS detection since the server doesn’t have access to the LocalPlayer’s mouse clicking and so “BedWars” uses a Sanity check on the remote for hitting, a way this can be done is by adding a player to a table then adding a IntValue of + 1 to the player’s table and every second reset the players table’s to 0. If the player’s intvalue is above X then ignore any attempts until it resets. Another way you can do this is having a tool debounce on the server and checking for what the correct wait time should be before hitting again.