
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local espEnabled = false
local badgeParts = {}
-- Clean old GUI
if PlayerGui:FindFirstChild("BadgeESPGUI") then
PlayerGui.BadgeESPGUI:Destroy()
end
-- Create toggle GUI
local gui = Instance.new("ScreenGui", PlayerGui)
gui.Name = "BadgeESPGUI"
gui.ResetOnSpawn = false
local toggle = Instance.new("TextButton", gui)
toggle.Size = UDim2.new(0, 120, 0, 40)
toggle.Position = UDim2.new(0, 10, 0, 10)
toggle.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
toggle.TextColor3 = Color3.new(1, 1, 1)
toggle.TextScaled = true
toggle.Font = Enum.Font.SourceSansBold
toggle.Text = "⚪ ESP: OFF"
-- Function: Check if part is real badge giver
local function isBadgePart(part)
if not part:IsA("BasePart") then return false end
for _, obj in ipairs(part:GetDescendants()) do
if obj:IsA("Script") then
local n = obj.Name:lower()
if n:find("award") or n:find("badge") then
return true
end
end
end
return false
end
-- Function: Create ESP on a badge part
local function createESP(part)
if part:FindFirstChild("BadgeESP") then return end
local gui = Instance.new("BillboardGui")
gui.Name = "BadgeESP"
gui.Adornee = part
gui.Size = UDim2.new(0, 100, 0, 50)
gui.StudsOffset = Vector3.new(0, part.Size.Y + 1.5, 0)
gui.AlwaysOnTop = true
gui.Parent = part
local label = Instance.new("TextLabel", gui)
label.Size = UDim2.new(1, 0, 0.5, 0)
label.Position = UDim2.new(0, 0, 0, 0)
label.BackgroundTransparency = 1
label.Text = "🎖️ Badge"
label.TextColor3 = Color3.fromRGB(255, 255, 0)
label.TextScaled = true
label.Font = Enum.Font.SourceSansBold
local distLabel = Instance.new("TextLabel", gui)
distLabel.Size = UDim2.new(1, 0, 0.5, 0)
distLabel.Position = UDim2.new(0, 0, 0.5, 0)
distLabel.BackgroundTransparency = 1
distLabel.Text = ""
distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
distLabel.TextScaled = true
distLabel.Font = Enum.Font.SourceSans
-- Update distance
RunService.RenderStepped:Connect(function()
if not gui or not gui.Parent or not part:IsDescendantOf(workspace) then return end
local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if hrp then
local studs = (part.Position - hrp.Position).Magnitude
distLabel.Text = math.floor(studs) .. " studs"
end
end)
end
-- Function: Enable ESP (scan + create)
local function enableESP()
-- Clear badgeParts
table.clear(badgeParts)
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") and isBadgePart(part) then
createESP(part)
table.insert(badgeParts, part)
end
end
end
-- Function: Disable ESP (remove GUIs)
local function disableESP()
for _, part in ipairs(badgeParts) do
if part and part:FindFirstChild("BadgeESP") then
part.BadgeESP:Destroy()
end
end
end
-- Toggle handler
toggle.MouseButton1Click:Connect(function()
espEnabled = not espEnabled
toggle.Text = espEnabled and "🔵 ESP: ON" or "⚪ ESP: OFF"
if espEnabled then
enableESP()
else
disableESP()
end
end)



How does this work and what games are supported
It's universal.
No bad 🔰
goat script
Admin So cool
tuff