ORANGECAT Anti-Cheat V1.1 | Completely Rewritten

And these children will get exploits from experienced programmers/exploit creators who know what they’re doing. It only takes one person to make an exploit that is designed to bypass your anti-exploit before it becomes widespread and used among any games making use of your anti-exploit

And here too, the same as the above applies. It won’t take long for exploits to be made specifically geared towards bypassing your anti-cheat. Trying to rely on the fact that “children don’t know how to exploit and only get them from others” is NOT a good ideology to work from when making an anti-exploit.

You should always be designing you anti-exploits under the understanding and thought process that someone who is experienced in programming or exploit creation can and will play a game using your anti-cheat, and that person can and will create an exploit to bypass your anti-cheat, whether it is public, paid, or private.

The last thing I’ll mention is that you shouldn’t rely on checking the .Velocity of a part if that is what I understand you mean when you plan on using instead when checking the speed of a player, because that too can be manipulated by their client due to how physics works.

4 Likes
humanoid.Running:Connect(function(speed)
			if speed > humanoid.WalkSpeed + 5 then
				p:Kick("\nORANGECAT Anti-Cheat:\nPossible Exploits\n(walkspeed of "..math.round(speed).." detected)")
			end
		end)

I don’t think you can get the client walk speed from the server like this.

Fixed the checks relying on non-spoofed humanoid states.
Rewritten Anti-speedhack and Anti-flyhack with toggles in ServerStorage to disable

It’s basically a worse velocity check. It gives you the velocity the player is moving, but relies on the client enough to be easily spoofable.

I pushed V1.1 last night and am updating the topic to respect that

So if that was a few days ago and you said it was a disaster and your 1st time… what would change today lol, I’ve never heard of learning an entire coding language in 2-3 days. This one does seem better tho.

No, v1 of ORANGECAT was from 2 days ago and was my second time (my first attempt was EpicAntiCheat). v1.1 wasn’t made that long ago, I stayed up late at night to update ORANGECAT to v1.1 and just updated it now. I have known Lua for 3 years, so I didn’t just learn it. I researched better methods of doing the checks and coded them. The fly check uses raycasts now and the speedhack check checks for the magnitude in the distances between the old point and new point, it ignores Y so you don’t get a false positive for falling.

1 Like

Instead of creating an entire different post because your old anticheat that released 2 days ago was a disaster why would you create a new one instead of just updating your old one…

This is the same topic as from 2 days ago. The EpicAntiCheat thread got deleted because I didn’t link the source.

Guys, can you just be thankful that he is trying his best at coding?

4 Likes

Wow ill have to send this to my friend because this is what we need in our game lol

Please don’t kick players immediately upon detection - they’ll be able to fine tune their hacks to evade detection while still cheating.

2 Likes

more importantly: an anti-cheat should never automatically kick players upon detection to begin with unless the detection method has a 100% guarantee that the player is in fact exploiting, and there aren’t many exploits where detection methods can 100% guarantee they are actually exploiting and not just a false positive.

1 Like

How about making network ownership of player who are suspect to be exploiting to nil,To the server,So they can’t hack and false positive,Will make the player thinks their internet is bad,After sometime you make the player network ownership back to the player

Why your anti-exploit sucks

1 Like

First things first, you should create the RaycastParams under the PlayerAdded function. This way you only create these parameters once instead of everytime the character loads. The only thing you should keep under CharacterAdded regarding RaycastParams is raycastParams.FilterDescendantsInstances = {c}. RaycastParams can be reused except that line that I just highlighted.

local function flycheck()
			local ray = workspace:Raycast(root.Position, Vector3.new(0,-5,0),raycastParams)
			if ray and ray.Instance then
				lastOnGround = tick()
			else
				if tick() - lastOnGround >= 5 then
					p:Kick("\nORANGECAT Anti-Cheat V1.1:\nSuspected Fly script")
				end
			end
		end

This is good, however it doesn’t work all the time. If a player is standing half on and half off a part, it’ll thing they’re flying. Also this doesn’t account for jumping off of tall buildings. If you fall for more than 5 seconds it’ll think you’re cheating.

You can fix this by seeing if the player is falling up or down by checking their previous position.Y and their current position.Y and see if it’s positive or negative. If they’re going down, then don’t check for flying. In the long run this won’t really work either, because all the exploiter will have to do is go down slightly every 5 seconds. Not really sure how you’d solve that.

Also, can I have more clarification on what this does? Is it for detecting noclipping?

Also instead of a bunch of while true do loops, I suggest one Heartbeat. Also using Parallel Lua would help out with lag, if there is any.

You still there, will u you updating it?

No, it can be easily bypassed.