How do I replicate this Anticheat Punishment?

I’ve always seen anticheats (in games like Generic Roleplay Game, Bedwars, Crystal Anticheat) and other games, whenever I false positive (or attempt to trigger an anticheat via bugs) it teleports you back to your previous position, in a weird laggy form (movements are delayed) and i’ve seen anticheat showcases and when this punishment happens, any attempts of noclip are literally impossible and teleportation is highly limited. Is there a way to replicate something similar to this? As I think it would be really useful instead of just loop teleporting them back, as it feels like a more annoying punishment to this issue, and I love to annoy exploiters!

3 Likes

This one teleports the player back if they go too fast.

1 Like

I know how to make a anticheat? I just want to replicate that punishment. it’s more punishing than just teleporting them back lol.

In Crystal Anticheat, they check whether you’ve been walking through walls several times and teleport you back before deciding to kick you. There’s no way to safely detect if you’re lagging on the client, so there will be false positives, which is why crystal anti-cheat doesn’t kick you as soon as you walk through a wall.

not what i meant. i did not mean client lag. i meant a sort of weird punishment that (i think turns your movement serverside only) or something, i just want to have a sort of lagback that will turn their movements from being clientside to replicate to severside, to their movement having to be done by the server. i’ll try to get an example of this real quick.

Update: I’ve figured out how to.

children = game.Workspace.IncoSlay:GetDescendants()
for i=1,#children do
if children[i].ClassName == “BasePart” or children[i].ClassName == “Part” then
children[i]:SetNetworkOwner()
end
end

i could literally just do that. but hey! it prevents noclip and tp!

2 Likes

Wow it works, but is there a way to give the player back their character control?

Set the network ownership back to the player.

Example code:

local Players = game:GetService("Players")

for i, child in ipairs(Players.Katrist.Character:GetChildren()) do
	if child:IsA("BasePart") then
		child:SetNetworkOwner(Players.Katrist)
	end
end
2 Likes

This is brilliant. Absolutely brilliant. I never though about punishing a cheating player in such a way. I’ve tested it out and guess what?

  • The player cannot teleport on their own.
  • The player cannot use speed hacks.
  • The player cannot walk through walls (noclip/ghost).
  • The player cannot use jump power/height hacks.
  • The player lags in movement and actions.

And the best part? They can’t bypass it. Here’s a list of punishments that I have implemented:

  • Announce in chat that player such and such was caught cheating.
  • Encircle the player in red flames.
  • Very bright red pointlight on the player.
  • Skybeam on the player that follows them everywhere.
  • Double, triple, or quad damage done against the player by other players.
  • Cheater does no damage to other players.
  • Other players get double, triple, or quadruple rewards for killing the cheating player.

Now with this, there’s a number of things that I can do.

  • Set their walk speed to 0 which imobilizes them.
  • Set their walk speed to 8 (default is 16).
  • Set their jump power to 0.

There’s a lot of things that can be done to punish a cheater besides kicking, banning, or killing them. The best punishments, in my opinion, are the ones that discourage the player from cheating and teaches them play without cheating.

3 Likes

Thing about this though is that many games use this such as BedWars, and GRG, but exploiters still find a way to kind of bypass it.

It could also send false positives if the player is moving too fast and also I dont reccomend awarding players more cash as that can be abused and plays can get alt accounts and farm cash.

But this system is actually not bad for stopping hackers.

You should also implement sort of a heat system for it. For example, when a player is detected more than 5 times in 2 minutes, reload their character/kick them.

1 Like

Which is what I do. If they are caught, there’s a strike against them. Strikes go down over time, so if they go past the threshold, they are punished in accordance with their offence. Physics based hacks? They lose network ownership of their character. Aimbot? They can’t do any damage to other players. etc…

Legit I figured it out with just tweaking for hours. It’s the same thing Roblox Bedwars does.

Its amazing that you can actually completely just prevent someone from exploiting at all, however since this changes ownership it gives the player delay, so it would have to apply AFTER the exploiter actually does something.

Yeah. And calling out the cheater to add some humiliation to them works too. It’s all part of a multi-faceted strategy to get them to stop cheating.

1 Like