Unusual UI finder

I was goofing around Roblox Studio, and I made a Unusual UI Finder. A simple script, I want to know if this is useful or not.

-- List of okay instances
local safeUIs = {}

-- Wait until Roblox loads the important stuff
wait(1)

-- Gets everything, and puts in the safe UI table
for i, v:GuiObject in pairs(script.Parent:GetDescendants()) do
	table.insert(safeUIs, v)
end

-- Always checking if a unusual UI was detected.
game:GetService("RunService").Heartbeat:Connect(function()
	for i, v:GuiObject in pairs(script.Parent:GetDescendants()) do
		if not table.find(safeUIs, v) then
			-- Script if something detected unusual UI
		end
	end
end)

TLDR; Grabs all the UI in PlayerGui, and checks if there was a newly created one

3 Likes

Ok, I’m not too sure but I think this would be good for detecting hacks! Good job!

2 Likes

Thanks, but I found a downside. Sometimes people make scripts that create newly created UI for lists and stuff. So this could be a problem.

1 Like

Yeah that could be, but hey! You already did a good job and then people can simply modify the script a little to solve the problem!

1 Like

Thanks for the feedback! Appreciate it! I’ll try and find a solution!

2 Likes

This does nothing to stop exploiters as all gui is injected into core gui which is protected by Roblox.

How are they able to do that, BUT WE CAN’T? Is it the security thingy?

Well since exploits modify the program, it is possible to do this. This is why admin panels and dex easily go unnoticed. It us developers do this, it’s considered exploiting.

2 Likes

Wait but weren’t people able to get INTO the core gui? If yes then why don’t we Devs ask Roblox to allow us to get into the coregui to stop exploiters from doing that? Why did nobody thought of taht?

1 Like

This wasn’t intended. CoreGui is protected by Roblox for many important reasons. You would have to ask them to add a core script which removes all guis except their own and studio plugins.

Oh ok, the let’s ask them?! Why not?! What’s the problem?!

There’s no point because they would most likely screw up their client to bypass these checks anyway. It wouldnt even matter if you could still run snippets of code in executors.