Me and my friend are working to prevent Dark Dex and how it seems to work is that it gets put into CoreGui.
It doesn’t seem possible to prevent to our knowledge.
Any help with preventing Dark Dex would be appreciated.
After a quick read (like 20 seconds, bash me if you want) of CoreGui, a theoretical solution is to listen into its events. However, it requires a localscript, and we all know what happens with those and exploiters.
You simply can’t since anything in Core gui is RobloxLocked meaning you can’t read any properties to check if it’s an exploit also some exploits use nil rather than CoreGui.
Executors like Synapse use NoByteCode and they place scripts in nil so there would be no way for you to detect it, though there was one way this month (The owner patched it quickly) Basically you detected “NotificationFrame”
Actually you can patch dex, the issue is there are 4 different types.
version 1 and 2 are easy to detect and lucky for us dex v2 is the most popular. However dev v3 and v4 are virtually impossible to detect but this might help…
-- Anti Dex & other exploit guis for unprotected guis that are not parented to core gui...
if game:IsLoaded() then
wait(6) -- so we dont get kicked right off spawn
local plr = game.Players.LocalPlayer
local gui = plr.PlayerGui
game.gui.ChildAdded:Connect(function(child)
if child:IsA("ScreenGui") or child:IsA("Folder") then --checking for guis and folders
wait(1.5) -- so nothing goes wrong
plr:kick()
wait(10)
print("Player is still in game, possible bypass detected")
gui:Destroy()
end
end
end)
end
This one will work for dex 1 & 2 The other 2 versions are virtually undetectable but this may work…
while true do -- keeps it in a loop even though the findfirstchild is recursive just to be safe
wait(5) -- DONT MAKE THIS ANY LOWER IT CAN LAG THE GAME!
local dex = pcall(function() game:FindFirstChild("Dex Output" , true)
if dex then
wait(1)
game.Players.LocalPlayer:kick()
wait(10)
print("Player still in game, oh so your still in the game huh?")
game.Players.LocalPlayer.PlayerGui:Destroy() -- anti bypass, kills their guis ;)
end
end) — after testing this script no longer works sorry
I know the 1st script works, i’m not 100% sure if this one does but it should. Hope This Helps.
Not necessarily, put a check for the Anti-Cheat in one of the Player Control Modules.
If it gets removed kick the player.
I put my Anti-cheat scripts in StarterPlayerScripts so it’s easiest for the Player Controls to detect it.
Edit: To my knowledge it’s impossible to reload the player control modules without re-joining causing this Anit-cheat detection system to be impossible to bypass.