That’s just… Not a good way to treat another developer… Roblox, please lock this post!
Dark Dex is undetectable because they use something called the random string method plus Synapse X has a protectgui() method where it turns the roblox gui into a html based gui in the C++ programming language. Plus exploiters also use the randomstring() method which encrypts the gui
------- EXAMPLE OF A ENCYPTION OF A GUI
function randomString()
local length = math.random(10,20)
local array = {}
for i = 1, length do
array[i] = string.char(math.random(32, 126))
end
return table.concat(array)
end
COREGUI = game:GetService("CoreGui")
PARENT = nil
if (not is_sirhurt_closure) and (syn and syn.protect_gui) then --sirhurt is ■■■■■■■■
local Main = Instance.new("ScreenGui")
Main.Name = randomString()
syn.protect_gui(Main)
Main.Parent = COREGUI
PARENT = Main
elseif get_hidden_gui or gethui then
local hiddenUI = get_hidden_gui or gethui
local Main = Instance.new("ScreenGui")
Main.Name = randomString()
Main.Parent = hiddenUI()
PARENT = Main
elseif COREGUI:FindFirstChild('RobloxGui') then --------- Also sometimes they put it in the roblox gui located in coregui
PARENT = COREGUI.RobloxGui
else
local Main = Instance.new("ScreenGui") ---------Encrypts the GUI for non SynapseX scripts
Main.Name = randomString()
Main.Parent = COREGUI
PARENT = Main
end
That’s called a drawing library ui, but that’s not what protect_gui() is at all lmao, protect gui protects the instance from certain connections such as FindFirstChild, childAdded, and descendantAdded.
You won’t be able to ever delete DarkDex or any other major exploit UI, because the Synapse operator changes the programs’ names every 2-3 hours.
Your script won’t work either, because Kick
needs to call from a player, which you haven’t declared.
as you said, LocalScripts can’t access CoreGui, so you can’t access LocalPlayer to be able to kick them either.
This is incorrect. The way obfuscators work is by making a lot of function calls and having weird arrays and strings. Unless there is incredible optimization in the compiler, what you said could not be farther from the truth.
To add, if there are remote events exposed that can only work if they are exposed, do something called server authentication.
(ex: Check if a player had enough money instead of just verifying if a remote event has fired, people can easily fake those remote events)
I was mostly referring to stuff like minification, but to be honest it’s not like I work at Roblox and know how their compiler works, and it’s not like I’ll break their ToS just to prove a point, so you could be right.
the server cant see when a localscript is destroyed because its local and not replicated and even if it was, the exploiter could just say “yep. the localscript is still there.” whenever you check or they could just redefine “DescendantRemoving” in YOUR script to be anything they want,
they can redefine :kick and localplayer in your script
:kick on the client does nothing to exploiters, and you cant even send it to the server because the exploiter can spoof that too
exploiters can just make their objects not visible to your scripts AT ALL you literally can not see them because referencing them returns nil(almost as if they weren’t there)
It Will Replicate On Player Character
The client decides what it replicates, therefore exploiters can just… make something not if they really wanted to.
Wouldn’t you need another client script to detect if that’s deleted?
No, you can use AncestryChanged, however exploiters can now hook this.
I Found Way Detect How Many Instances Added In Core Gui But Exploiter Now Put There Exploit In Nil Which Is Undetectable
tldr: pointless
long answer:
doubt its possible, but even if there’s a method to detect dark dex, that would have no point in doing so.
there is a synapse code saveinstance()
which basically saves (almost) everything without creating a single gui, part or anything else (that means it will save workspace, replicatedstorage, etc). exploiters can even take stuff further and enable decompiling for localscripts to see what script does a localscript run.
edit: if you dont get it how saveinstance()
works, it creates a place file with all stuff in it
kinda sad though, as all of my effects + hitboxes are handled through client
False and false there are some chads like me who have done it in a secure way with out indexing anything in the game as well as anti connection breaking checks , but yes a rlly good exploiter could probably figure it out.
In the game subdirectory there is an index of nil, and when a C++ Interpreter/injector parents an instance to nil, it becomes unmodifiable, because the LUAU game environment initializes after the injection is complete. Roblox has to step up their security, but after an entire decade of the same problem, it seems unlikely to happen soon.
You will never be use able to Dex or any other UI, Roblox has disabled this entirely for developers. So there is no way. Sadly in CoreGui without us knowing.