To set this up to be somewhat secure, place this into a local script in ReplicatedFirst and have the scripts first line be parenting script to nil. There are other ways to bypass this script but I will not be posting the detections for those here. Enjoy the script.
spawn(function()
while task.wait() do
game:GetService("ContentProvider"):PreloadAsync({game.CoreGui}, function(CoreGuiID, _nil)
if string.find(CoreGuiID, "rbxassetid://") or string.find(CoreGuiID, "rbxasset://DexStorage.rbxm") then
warn("Suspicious UI Detected")
end
end)
If a script like that has been out for a while out like that, some people wouldve told 3ds and he wouldve noticed. There might not be a permanent patch to this as there are still other things you can look for when executing dex.
Thats not entirely true, this method relies on finding a file called “DexStorage.rbxm” but exploiters can just not set the gui in the coregui, they could set it directly to the players gui.
There are also drawing libraries that don’t use GUIs, but instead actually draw things to the client, making them quite literally undetectable. I’ve seen GUIs that rely on this library before and to my knowledge you can’t patch them.
This is already a public method btw, this is nothing new. Also it wont get immediatly “patched”, but exploits can have custom scripts that bypass this.
include this to make sure there are no false detections.
GetService=game.GetService
local GuiService = GetService(game, 'GuiService')
GuiService:SetInspectMenuEnabled(false)
while wait(2) do
GuiService:SetInspectMenuEnabled(false)
end
this script may also flag false detections with backpack items (tool icons)
Ah, that’s why literally nobody uses this script: It’s completely pointless and can be defeated instantly.
Local scripts can have :Destroy() run on them and bam, they no longer work. Doesn’t matter if you parent them to nil or not, as any self respecting exploit has a multitude of ways to get nil instances (the most popular one literally having getnilinstances() which returns a whole table of them.)
for i,v in pairs(getnilinstances()) do
if v:IsA("LocalScript") then
v:Destroy()
end
end
So much for “somewhat secure” considering you shouldn’t be putting stuff in nil anyway.
Do you not know anything about exploiting? You cant destroy a nil LocalScript, best thing you can do is bypass Kick() but I already have a detection for that by wrapping game:Kick() in a pcall and checking it constantly. Plus im working on implementing Anti HookFunction and Anti MetaHook. All though it is still bypassable with those layers of protection (including other small detections so user cant error the script and such), it will be extremely difficult to bypass and time consuming to bypass.
Oh and I also have script = nil in that to confirm it cant be deleted.
Yeah those kind of ones that draw are undetectable, and above that dex storage one that is right and such. This post was made for mainly anti cheat devs so they know what to do with the DexStorage.rbxm and with detecting player gui and such cause of how easy it is. For some reason I can only detect Synapse Inf Yield and not Scriptwares with this, even with my anti hook in place, I am currently finding more detections.