Anti dex, Core Gui?

Thanks so much! Hope it works!

Where do you recommend I put it?

I recommend that you put it in StarterPlayerScripts, but be warned, this script does false positive on other built-in CoreGuis like the Developer Console, Microprofiler, etc.

Does it false positive on the player list?

It shouldn’t, but I’ll test it now and if it does I’ll update the model with a workaround.

Since its local, it cant be easily bypassed?

No, it can, local scripts can be deleted but server scripts can’t

1 Like

Well in theory it can, but there are a multitude of methods that you can use to prevent exploiters from disabling them (such as parenting it to nil, ping methods, etc.)

2 Likes

Yes but not with out dex they can’t bypass it.

1 Like

game.GetService(“scriptstatus”)
if game.(Place).(scriptnamehere) == Destory() or nil or .disabled == true then
LocalPlayer:Kick(“Get outta here noob”)

Idk if that will work but try it, it .disabled don’t work I think.

I updated the script to be a bit more robust and false positive less often. It doesn’t false positive on things like the leaderboard or chat, but it still does on the developer panel and other built-in CoreGui objects.

Feel free to edit the script for yourself, and if you find any way to whitelist things such as the developer panel, please let me know.

(You can get the updated version of the script from the same model).

1 Like

Alrighty, I’ll try to find a way. Thanks.

I don’t suggest using this, it will kick controller/mobile players, besides, it’s poorly made and inefficient (using wait at the top to prevent kicking is disgusting too).

1 Like

How do you suggest I do it, any tips?

Unfortunately, I knew two methods, but they’re hacky and shouldn’t be used in-games because it can throw false positives.

What you can do is read Dex’s code and try to find a flaw there.

Can you tell me the methods or the scripts?

It isn’t rare that people use it; in fact, they’re used more commonly than Dex. RSV2 and Hydroxide are pretty common remote spies because they both automatically generate scripts based on the arguments the remote is fired in.

The best way to check if Dex is attached is to look for spikes in memory. Because of methods like Synapse’s protect_gui(), it is impossible to detect it just from checking if it was added to CoreGui.

Here are the functions you can use to detect spikes in memory: Stats | Documentation - Roblox Creator Hub, Stats | Documentation - Roblox Creator Hub

Alternatively, you can check if the delta time between a frame is longer than usual. This way, you can detect the lag spikes that usually occur when executing Dex.

Keep in mind that all of these checks can easily be bypassed. Additionally, they aren’t very reliable, so you should never take action on exploiters based on the results from these methods. Instead, I would consider “flagging” them, so if they also happen to be an obvious alt or fire a remote with the incorrect arguments, then you can be sure that they are exploiting.

8 Likes

So I would use: game:GetService(“stats”)

game.GetTotalMemeoryUsageMB < 400 then
LocalPlayer:Kick(“Exploiting Conserns”)

Additionally, they aren’t very reliable, so you should never take action on exploiters based on the results from these methods. Instead, I would consider “flagging” them, so if they also happen to be an obvious alt or fire a remote with the incorrect arguments, then you can be sure that they are exploiting.

firstly, don’t kick them based on that

and no, you can’t just check it once. you have to do it in a loop and see if it spikes in a short period of time

1 Like
local stats = game:GetService('Stats')
local runService = game:GetService('RunService')

runService.Stepped:Connect(function(_time, deltaTime)
   if stats:GetTotalMemoryUsageMb() > 400 then
      -- do stuff
   end
end)

You mean like this?

2 Likes