Rather than check if the gui is ran or not, u should check what data it reads. I’m pretty sure dark dex is detected with metatable tampering, and not with gui parenting in most cases.
Either way, detecting metatable tampering is a lot more efficient, cause gui parenting can be bypassable.
CoreGui won’t allow you to check for dark dex. If there are ways to detect it, then you should research on that. I don’t think a lot of people know how to do this, so you’re out of luck.
This is an server-side version of Dex designed to be used on SS executors/script builders, it normally parents to PlayerGui, the LoadData remote is for server-client communication, you cannot use require(assetId) on the client as no executors bypass that.
(I know all of this because I used the exact same thing and modified it aswell)
I’ve actually got someone to test dex with synapse in my game (does not use memory checks)
You have many posibilities to do stuff as a developer. Detecting exploits, UIs or even scripts is very possible (you can even get the constants from their script and remake it if you’re smart enough)
Exactly. You don’t have a reliable way to detect dark dex. Nobody has. It is client-side after all, how much can you realistically achieve? Also, if you are so scared of decompilation, why not just obfuscate? I’d have thought someone “able” to get constants from exploiter scripts would at least know about obfuscation.
I don’t need it for myself. I asked on behalf of the other members of the dev forum unable but willing to do this stuff. Oh, and by the way, I was just referring to
“get constants from exploiter scripts”
(you can even get the constants from their script…
that you stated. Any methods to detect anything client-side are unreliable and not worth anyones time (unless used as a hurdle). Keep remotes secure
repeat wait() until game:IsLoaded()
wait(2);
local diff = 10000000
while game:GetService("RunService").RenderStepped:wait() do
local first = gcinfo()
wait(0.1)
local new = gcinfo()
if diff == 10000000 and new - first > 1 then
diff = (new - first) * 10
end;
if diff < new - first then
wait(0.2)
game.Players.LocalPlayer:kick("\nDetected\n Dont use Exploits\n GCI = " .. new - first)
wait(3)
if game.Players.LocalPlayer ~= nil then
game.Players.LocalPlayer:Destroy()
end
end
end
It seems to be working.
Edit: Yes ik exploiters can just hook gcinfo and bypass this but this should prevent some people from exploiting.
Uh, nope can’t cause there is not reliable way. Every way will work but be flawed. Only Football Fusion has a good way, but we’re not supposed to know it.
Football Fusion has a method that detects changes in the CoreGui, as well as memory checks. Since the map is so small, they can get away with memory checking without causing much harm. However, apple users face struggles of getting banned frequently on this game. Nevertheless, you can get away with memory detection as long as you’re using it with caution and kicking instead of banning.