Backdoor Scanner v2.1
Key RequiredUniversal

Backdoor Scanner v2.1

Universal Scripterlhendererlhender 4.2K views 1.5K executesUpdated Mar 22, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•367 lines (12546 chars)
--[=[
██████╗  █████╗  ██████╗██╗  ██╗██████╗  ██████╗  ██████╗ ██████╗     ███████╗ ██████╗ █████╗ ███╗   ██╗███╗   ██╗███████╗██████╗ 
██╔══██╗██╔══██╗██╔════╝██║ ██╔╝██╔══██╗██╔═══██╗██╔═══██╗██╔══██╗    ██╔════╝██╔════╝██╔══██╗████╗  ██║████╗  ██║██╔════╝██╔══██╗
██████╔╝███████║██║     █████╔╝ ██║  ██║██║   ██║██║   ██║██████╔╝    ███████╗██║     ███████║██╔██╗ ██║██╔██╗ ██║█████╗  ██████╔╝
██╔══██╗██╔══██║██║     ██╔═██╗ ██║  ██║██║   ██║██║   ██║██╔══██╗    ╚════██║██║     ██╔══██║██║╚██╗██║██║╚██╗██║██╔══╝  ██╔══██╗
██████╔╝██║  ██║╚██████╗██║  ██╗██████╔╝╚██████╔╝╚██████╔╝██║  ██║    ███████║╚██████╗██║  ██║██║ ╚████║██║ ╚████║███████╗██║  ██║
╚═════╝ ╚═╝  ╚═╝ ╚═════╝╚═╝  ╚═╝╚═════╝  ╚═════╝  ╚═════╝ ╚═╝  ╚═╝    ╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝
v2.1(oooo ISA winmugen)
by erlhender
ASCII Typeface: ANSI Shadow
 d888b  db    db d888888b      .d888b.      db      db    db  .d8b.  
88' Y8b 88    88   `88'        VP  `8D      88      88    88 d8' `8b 
88      88    88    88            odD'      88      88    88 88ooo88 
88  ooo 88    88    88          .88'        88      88    88 88~~~88 
88. ~8~ 88b  d88   .88.        j88.         88booo. 88b  d88 88   88    @uniquadev
 Y888P  ~Y8888P' Y888888P      888888D      Y88888P ~Y8888P' YP   YP  CONVERTER 
]=]

-- Instances: 20 | Scripts: 4 | Modules: 0 | Tags: 0
local G2L = {};

-- StarterGui.Scanner
G2L["1"] = Instance.new("ScreenGui", game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"));
G2L["1"]["IgnoreGuiInset"] = true;
G2L["1"]["DisplayOrder"] = 999999999;
G2L["1"]["ScreenInsets"] = Enum.ScreenInsets.DeviceSafeInsets;
G2L["1"]["Name"] = [[Scanner]];
G2L["1"]["ZIndexBehavior"] = Enum.ZIndexBehavior.Sibling;
G2L["1"]["ResetOnSpawn"] = false;


-- StarterGui.Scanner.Frame
G2L["2"] = Instance.new("Frame", G2L["1"]);
G2L["2"]["BorderSizePixel"] = 0;
G2L["2"]["BackgroundColor3"] = Color3.fromRGB(40, 40, 40);
G2L["2"]["Size"] = UDim2.new(0.24702, 0, 0.38394, 0);
G2L["2"]["Position"] = UDim2.new(0.03067, 123, 0.58205, -53);
G2L["2"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);


-- StarterGui.Scanner.Frame.UIStroke
G2L["3"] = Instance.new("UIStroke", G2L["2"]);
G2L["3"]["Color"] = Color3.fromRGB(255, 255, 255);
G2L["3"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border;


-- StarterGui.Scanner.Frame.Frame
G2L["4"] = Instance.new("Frame", G2L["2"]);
G2L["4"]["BorderSizePixel"] = 0;
G2L["4"]["BackgroundColor3"] = Color3.fromRGB(35, 35, 35);
G2L["4"]["Size"] = UDim2.new(1, 0, 0.11453, 0);
G2L["4"]["Position"] = UDim2.new(0, 0, -0.00035, 0);
G2L["4"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);


-- StarterGui.Scanner.Frame.Frame.UIStroke
G2L["5"] = Instance.new("UIStroke", G2L["4"]);
G2L["5"]["Color"] = Color3.fromRGB(255, 255, 255);
G2L["5"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border;


-- StarterGui.Scanner.Frame.Frame.TextLabel
G2L["6"] = Instance.new("TextLabel", G2L["4"]);
G2L["6"]["TextWrapped"] = true;
G2L["6"]["BorderSizePixel"] = 0;
G2L["6"]["TextSize"] = 14;
G2L["6"]["TextScaled"] = true;
G2L["6"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["6"]["FontFace"] = Font.new([[rbxasset://fonts/families/Roboto.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["6"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["6"]["BackgroundTransparency"] = 1;
G2L["6"]["Size"] = UDim2.new(1, 0, 1, 0);
G2L["6"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["6"]["Text"] = [[Executor]];


-- StarterGui.Scanner.Frame.TextBox
G2L["7"] = Instance.new("TextBox", G2L["2"]);
G2L["7"]["CursorPosition"] = -1;
G2L["7"]["PlaceholderColor3"] = Color3.fromRGB(179, 179, 179);
G2L["7"]["BorderSizePixel"] = 0;
G2L["7"]["TextWrapped"] = true;
G2L["7"]["TextSize"] = 14;
G2L["7"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["7"]["TextScaled"] = true;
G2L["7"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 54);
G2L["7"]["FontFace"] = Font.new([[rbxasset://fonts/families/Roboto.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["7"]["PlaceholderText"] = [[Code here...]];
G2L["7"]["Size"] = UDim2.new(0.95219, 0, 0.6347, 0);
G2L["7"]["Position"] = UDim2.new(0.02034, 0, 0.15525, 0);
G2L["7"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["7"]["Text"] = [[]];


-- StarterGui.Scanner.Frame.TextBox.UIStroke
G2L["8"] = Instance.new("UIStroke", G2L["7"]);
G2L["8"]["Color"] = Color3.fromRGB(255, 255, 255);
G2L["8"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border;


-- StarterGui.Scanner.Frame.TextButton
G2L["9"] = Instance.new("TextButton", G2L["2"]);
G2L["9"]["BorderSizePixel"] = 0;
G2L["9"]["TextSize"] = 14;
G2L["9"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["9"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 54);
G2L["9"]["FontFace"] = Font.new([[rbxasset://fonts/families/PressStart2P.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["9"]["Size"] = UDim2.new(0.33898, 0, 0.12329, 0);
G2L["9"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["9"]["Text"] = [[Execute]];
G2L["9"]["Position"] = UDim2.new(0.02034, 0, 0.83562, 0);


-- StarterGui.Scanner.Frame.TextButton.UIStroke
G2L["a"] = Instance.new("UIStroke", G2L["9"]);
G2L["a"]["Color"] = Color3.fromRGB(255, 255, 255);
G2L["a"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border;


-- StarterGui.Scanner.Frame.TextButton.LocalScript
G2L["b"] = Instance.new("LocalScript", G2L["9"]);



-- StarterGui.Scanner.Frame.TextButton
G2L["c"] = Instance.new("TextButton", G2L["2"]);
G2L["c"]["BorderSizePixel"] = 0;
G2L["c"]["TextSize"] = 14;
G2L["c"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["c"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 54);
G2L["c"]["FontFace"] = Font.new([[rbxasset://fonts/families/PressStart2P.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["c"]["Size"] = UDim2.new(0.33714, 0, 0.12329, 0);
G2L["c"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["c"]["Text"] = [[Clear]];
G2L["c"]["Position"] = UDim2.new(0.63539, 0, 0.83562, 0);


-- StarterGui.Scanner.Frame.TextButton.UIStroke
G2L["d"] = Instance.new("UIStroke", G2L["c"]);
G2L["d"]["Color"] = Color3.fromRGB(255, 255, 255);
G2L["d"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border;


-- StarterGui.Scanner.Frame.TextButton.LocalScript
G2L["e"] = Instance.new("LocalScript", G2L["c"]);



-- StarterGui.Scanner.Frame.TextButton
G2L["f"] = Instance.new("TextButton", G2L["2"]);
G2L["f"]["BorderSizePixel"] = 0;
G2L["f"]["TextSize"] = 14;
G2L["f"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["f"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 54);
G2L["f"]["FontFace"] = Font.new([[rbxasset://fonts/families/PressStart2P.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["f"]["Size"] = UDim2.new(0.19322, 0, 0.12329, 0);
G2L["f"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["f"]["Text"] = [[Scan]];
G2L["f"]["Position"] = UDim2.new(0.40339, 0, 0.83562, 0);


-- StarterGui.Scanner.Frame.TextButton.UIStroke
G2L["10"] = Instance.new("UIStroke", G2L["f"]);
G2L["10"]["Color"] = Color3.fromRGB(255, 255, 255);
G2L["10"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border;


-- StarterGui.Scanner.Frame.TextButton.LocalScript
G2L["11"] = Instance.new("LocalScript", G2L["f"]);



-- StarterGui.Scanner.Frame.UIDragDetector
G2L["12"] = Instance.new("UIDragDetector", G2L["2"]);
-- [ERROR] cannot convert BoundingUI, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues"
G2L["12"]["DragUDim2"] = UDim2.new(0, 123, 0, -53);


-- StarterGui.Scanner.Backdoor
G2L["13"] = Instance.new("ObjectValue", G2L["1"]);
G2L["13"]["Name"] = [[Backdoor]];


-- StarterGui.Scanner.AutoDefend
G2L["14"] = Instance.new("LocalScript", G2L["1"]);
G2L["14"]["Name"] = [[AutoDefend]];


-- StarterGui.Scanner.Frame.TextButton.LocalScript
local function C_b()
local script = G2L["b"];
	local b=script.Parent
	local stgui=game:GetService("StarterGui")
	
	b.MouseButton1Click:Connect(function()
		local code=script.Parent.Parent.TextBox.Text
		local backdoor=script.Parent.Parent.Parent.Backdoor.Value
		if backdoor:IsA("RemoteEvent") then
			backdoor:FireServer(code)
		elseif backdoor:IsA("RemoteFunction") then
			backdoor:InvokeServer(code)
		elseif backdoor:IsA("BindableEvent") then
			backdoor:Fire(code)
		elseif backdoor:IsA("BindableFunction") then
			backdoor:Invoke(code)
		elseif not backdoor then
			stgui:SetCore("SendNotification",{
				Title="Backdoor Executor",
				Text="No backdoor remote yet.",
				Duration=2
			})
		end
	end)
end;
task.spawn(C_b);
-- StarterGui.Scanner.Frame.TextButton.LocalScript
local function C_e()
local script = G2L["e"];
	local b=script.Parent
	
	b.MouseButton1Click:Connect(function()
		script.Parent.Parent.TextBox.Text=""
	end)
end;
task.spawn(C_e);
-- StarterGui.Scanner.Frame.TextButton.LocalScript
local function C_11()
local script = G2L["11"];
	--[[
	=====================================================================================
	                         BACKDOOR SCANNER + EXECUTOR BY ERL
	=====================================================================================]]
	local stgui=game:GetService("StarterGui")
	local b=script.Parent
	local snippet="a=Instance.new('IntValue',game.Workspace) a.Name='Confirmation'"
	local found=false
	--[[
	=====================================================================================
	]]
	stgui:SetCore("SendNotification",{
		Title="Erl's Backdoor Scanner",
		Text="AAAAAA HIIIII js press scan to start",
		Duration=5,
	})
	b.MouseButton1Click:Connect(function()
		found=false
		-- Scan
		stgui:SetCore("SendNotification",{
			Title="Backdoor Scanner",
			Text="Scanning...",
			Duration=5,
		})
		
		for _, v in ipairs(game:GetDescendants()) do
			if v:IsA("RemoteEvent") then
				warn("Erl's Backdoor Scanner: Scanning "..v.Name)
				local fn=v:GetFullName()
				print("Address: "..fn)
				v:FireServer(snippet)
				local val=game.Workspace:WaitForChild("Confirmation")
				if val then
					stgui:SetCore("SendNotification",{
						Title="Backdoor Scanner",
						Text="Backdoor found! (RemoteEvent)",
						Duration=5,
					})
					script.Parent.Parent.Parent.Backdoor.Value=v
					found=true
				end
				if found==true then
					do return end
				end
			elseif v:IsA("RemoteFunction") then
				warn("Erl's Backdoor Scanner: Scanning "..v.Name)
				local fn=v:GetFullName()
				print("Address: "..fn)
				v:InvokeServer(snippet)
				local val=game.Workspace:WaitForChild("Confirmation")
				if val then
					stgui:SetCore("SendNotification",{
						Title="Backdoor Scanner",
						Text="Backdoor found! (RemoteFunction)",
						Duration=5,
					})
					script.Parent.Parent.Parent.Backdoor.Value=v
					found=true
					return
				end
				if found==true then
					do return end
				end
			elseif v:IsA("BindableEvent") then
				warn("Erl's Backdoor Scanner: Scanning "..v.Name)
				local fn=v:GetFullName()
				print("Address: "..fn)
				v:Fire(snippet)
				local val=game.Workspace:WaitForChild("Confirmation")
				if val then
					stgui:SetCore("SendNotification",{
						Title="Backdoor Scanner",
						Text="Backdoor found! (BindableEvent)",
						Duration=5,
					})
					script.Parent.Parent.Parent.Backdoor.Value=v
					found=true
				end
				if found==true then
					do return end
				end
			elseif v:IsA("BindableFunction") then
				warn("Erl's Backdoor Scanner: Scanning "..v.Name)
				local fn=v:GetFullName()
				print("Address: "..fn)
				v:Invoke(snippet)
				local val=game.Workspace:WaitForChild("Confirmation")
				if val then
					stgui:SetCore("SendNotification",{
						Title="Backdoor Scanner",
						Text="Backdoor found! (BindableFunction)",
						Duration=5,
					})
					script.Parent.Parent.Parent.Backdoor.Value=v
					found=true
					return
				end
				if found==true then
					do return end
				end
			end
		end
	end)
	
end;
task.spawn(C_11);
-- StarterGui.Scanner.AutoDefend
local function C_14()
local script = G2L["14"];
	--[[
	==================================================================
	                           DEFENDS THE GUI :)
	==================================================================]]
	local rs=game:GetService("RunService")
	local plr=game:GetService("Players").LocalPlayer
	local g=script.Parent
	
	g.AncestryChanged:Connect(function()
		g.Parent=plr.PlayerGui
	end)
	
	rs.Heartbeat:Connect(function()
		g.Enabled=true
		g.ResetOnSpawn=false
		g.IgnoreGuiInset=true
		task.spawn(function()
			for _, v in ipairs(g:GetDescendants()) do
				if v:IsA("GuiObject") then
					v.Visible=true
				elseif v:IsA("LocalScript") then
					v.Enabled=true
				end
			end
		end)
	end)
end;
task.spawn(C_14);

return G2L["1"], require;

Features & Information

[Important] - Font in thumbnail isn't the real font. - May not detect all backdoors. Simple Backdoor Scanner ;D I'm still new to creating client sided scripts, so please alert me if there are any issues/bugs .·´¯`(>▂<)´¯`·. and I am not that talented of a scripter at all too, I'd call myself an amateur.
#Backdoor Scanner#erlhender#Backdoor#Executor#SS Executor

Community Comments (4)

OmnimanOmnimanApr 2, 2026

Неа не работает, даже на самые древние плейсы найти РАБОЧИЙ бэкдор не смог

Replying to @Omniman
erlhendererlhenderMay 4, 2026

@Omniman I'm pretty sure it depends if the game has a backdoor at all. You also have to take in the account that I made it stupidly slow, waiting 10 seconds to confirm, which I'm slowly regretting, you shouldn't have to wait that long in the newer version I'm making, but thank you for the comment nontheless. :)

vixielmaovixielmaoApr 3, 2026

how do i make a game backdoored

Replying to @vixielmao
erlhendererlhenderMay 4, 2026

@vixielmao you can't. (Unless you're the game dev, have access to it, etc.)

More Scripts for Universal Scripts