Exploit detection?

So i have 2 questions, first Is it possible to check if a player has injected a script executor or a script from the script executor and are there ways to detect when a player is using esp?

3 Likes

If they are inserting for example GUI’s then that can be detected, but custom windows, like RC7 I don’t think so.

Yeah, custom windows cannot be detected at all.

I don’t know about the execution thingy, I think that can only be checked in the developer console.

There is no way to detect injections. Well, when you inject client memory goes up, but you can’t really detect injections that way because client memory can go up for many different reasons.

1 Like

And how @vamik64 said memory goes up, but you cannot detect their memory so I guess there is no way.

1 Like

You can see the client memory of a player through the Stats service. But you won’t know if the memory went up because the player injected an exploit or because of another reason.

1 Like

Yeah, I have to agree there could be a lot reasons why that happened I guess Roblox needs to give us more information about Hacks and what happens background my opinion.

1 Like

This thread contains everything you should know about exploits:

1 Like

When it comes to exploit detection and prevention, I would argue that understanding how a security breach is made is the most important.

If Roblox gave a service that had the ability to detect whenever a hack was injected, why wouldn’t they detect the hack themselves instead of leaving it to game makers? This isn’t really Roblox’s fault.

5 Likes

You can’t quite detect when a user injects a script, but you can try and check for “ESP”. I’m not quite sure how though - I don’t even know what “ESP” is.

There’s several hundred topics, debates and arguments about detecting exploits, try scrolling around. Just know that exploiters can circumvent checks you put on the client or spoof improperly done checks on the server.

Personally, I don’t normally bother with exploit detection on a whole. So long as the server is doing its job in preventing damaging exploits and being secure, then the exploiter can go ahead and ruin their own game for some cheap thrills. I’d rather get updates out for my game first.

6 Likes

ESP renders boxes over other players’ characters which are visible through walls.
Not really patchable, since exploits use ImGui to render them.

Well, you can tell if a person is using a speed hack for example. Let me show you this script:

if hum.WalkSpeed > GAMESETWALKSPEEDHERE
kickWithMsg(“you just got caught for speed hacking!”)

I got this script from here.

You could do something like that to detect if a player uses speed, jump etc. exploits.
This script works for jumping health and speed.

That won’t have much effect. Exploiters have access to the debug.getmetatable also known as getrawmetatable, which let’s them proxy Roblox Instance metamethods such as __index, making them able to make WalkSpeed always return 16.

(Not to mention they can just override Kick())
(client-sided obviously)

6 Likes

Yes, not so effective you can , for example, check values like player’s speed , head size and other values an exploiter can alter.
Other things I do is make functions that trigger when exploiters insert GUIs, parts or any sort of instances that shouldn’t be there. (client sided measure which of course can be bypassed by clever people)
On the server side you can, check the pings and kick player with very very high pings this can prevent teleport exploitation.
Remember, no matter what you do, you can’t always kick all exploiters but measures like these can prevent popular scripts.
And because hackers can bypass/delete your protections (also consider exploiters the clients which are not running or do not have the main scripts that are supposed to be running at all times, depends on your game) you should do as much server sided checks as you can.

I don’t think what you suggest would really work.

Remember that exploiters can spoof the WalkSpeed and head sizes.
As for guis, well, I don’t see how you would go for detecting the ones inserted into CoreGui after the recent change to how tostring(rlocked obj) works. Detecting local instances isn’t a good idea either.

This is a very very bad idea. Some players have slow internet, and I don’t see how this could possibly prevent changing your CFrame.

Well yes in some cases ,it wasn’t originally my idea.
I’ll keep in mind , thanks!

How can I detect when the GUI is added?

game.Players.Player1.PlayerGui.ChildAdded:Connect(function(newChild) end)

1 Like

this

game:GetService("Players").DescendantAdded:Connect(function(item)
if item:IsA("ScreenGui") then
-- code here
end
end)
10 Likes