Anti - FE Kill Exploit

Hello everybody, I didn’t see any topics related to this, so I figured I’d provide people with this simple script to prevent a common exploit.

THE PURPOSE

Having issues with exploiters utilizing tools in your game in order to kill other players? For awhile I myself was struggling with this exploit. Implementing patches such as anti-teleport, and so forth to try and prevent this.

Recently I had an exploiter provide me with some of the open-source code of these exploits. Noticing 2 thing’s. The exploit’s will not work if the targetted player is sitting, and that they essentially destroy the character in order to use this exploit. As seen here:

Destroy(Character);

The issue with this exploit is that it is essentially possible on any tool’s with a handle… Which is literally any tool. How do I fix it? You simply paste the following into a server-side script. The script will detect if the character has been removed by these scripts, and then kick the exploiter before they are even able to properly execute the exploit.

This has been tested multiple times, and works perfectly. I have not noticed any false-positive’s so far.

I am open to any feedback as well! I’m not a “professional scripter” by any means.

local Connection
game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
		Connection = char.ChildRemoved:Connect(function(v)
			if v:IsA("Humanoid") then 
				plr:Kick("Nice try")
				Connection:Disconnect()
			end
		end)  
	end) 
end)
8 Likes

So if someone’s humanoid is destroyed, they get kicked?

Sounds like a terrible idea.

3 Likes

Well, theres a few things to be done here.

First of all use :GetService()

Second, you should do this for existing players as well. Use Players:GetPlayers() and also check if the character has already loaded.

Third, it’s better to parent the Humanoid back to the character instead of kicking the player. Prevention based mechanisms are better than punishment based mechanisms.

Fourth, exploiters can also stop the respawning of the character. You should connect Humanoid.Died:Connect and check if the time took longer than Players.RespawnTime. If it took longer call Players:LoadCharacter() on the player to respawn them. And remember to respect Players.CharacterAutoLoads so it doesn’t respawn players when it shouldn’t.

Anyways here is an anti exploit that I’ve written that fixes a lot of Robloxes replication related exploits [FE++] Best server sided non physics anti-exploit for your Roblox game! (It’s not up to date with all of the new replication based exploits. However you can check it for inspiration)

5 Likes

Yet again, another exploit released on the forum

Maybe, you could just make a video demonstrating the anti exploit, then people can ask for the script
Putting it up here is just a minus, exploiters can see it

Thanks for trying though

1 Like

No, this one is serversided so exploiters seeing it won’t cause much issues.

1 Like

Ohhhh, serversided, forget what I said then

I probably could use this, in the future

Thanks again

1 Like

Sharing code ~= ruining a method/rendering it useless. I’ve noticed you’ve posted something along these lines on a lot of anti-exploit topics over the past few days.

A solid check is a solid check - meaning that even if the detection method or criteria are known, there isn’t much that an exploiter can do. In cases where a method might easily be bypassed if publicized, then it’s probably not a great method in the first place (plus, if this was on the client, an exploiter could simply view the code).

4 Likes

For one, it’s detecting if the Character is removed, not if the Humanoid is being removed.

This can easily be changed into a warning system if false positive’s somehow occur. But after discussing with other developer’s, this is actually a form of anti-exploit used in popular game’s as well.

If you could elaborate for me how you believe this is a terrible idea, rather then just stating it is - that would be awesome!


If really against what I provided, @VortexColor provided in the comments other ways to approach this. However for my game, the script works perfectly fine and does not interfere with any deaths or any other scripts.

1 Like
		Connection = char.ChildRemoved:Connect(function(v)
			if v:IsA("Humanoid") then 

If the Humanoid is removed, then …

Nothing character been removed from Roblox Studio. It still active.

Is this even works when resetted from Roblox menu?