
KeylessUniversal

-- Modern UI with Multi-Color Cycle (Blue, Red, Green, Yellow)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Player = Players.LocalPlayer
-- Settings
local espEnabled = true
local namesEnabled = false
local selfEspEnabled = true
-- Color Cycling Logic
local colorIndex = 1
local colors = {
{Name = "Blue", Color = Color3.fromRGB(0, 162, 255)},
{Name = "Red", Color = Color3.fromRGB(255, 60, 60)},
{Name = "Green", Color = Color3.fromRGB(46, 204, 113)},
{Name = "Yellow", Color = Color3.fromRGB(255, 215, 0)}
}
local currentColor = colors[1].Color
-- Connection storage
local renderConnection
-- Helper: Remove ESP elements
local function clearVisuals(char)
if char:FindFirstChild("ESPHighlight") then char.ESPHighlight:Destroy() end
if char:FindFirstChild("ESPName") then char.ESPName:Destroy() end
end
-- Draggable Function
local function makeDraggable(frame)
local dragging, dragInput, dragStart, startPos
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
frame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)
UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end
end)
RunService.RenderStepped:Connect(function()
if dragging and dragInput then
local delta = dragInput.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
-- UI Creation
local screenGui = Instance.new("ScreenGui", Player.PlayerGui)
screenGui.Name = "ModernESP_Colors"
local mainFrame = Instance.new("Frame", screenGui)
mainFrame.Size = UDim2.new(0, 220, 0, 280)
mainFrame.Position = UDim2.new(0.1, 0, 0.4, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
mainFrame.BorderSizePixel = 0
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 12)
local uiStroke = Instance.new("UIStroke", mainFrame)
uiStroke.Thickness = 2
uiStroke.Color = Color3.fromRGB(45, 45, 45)
local title = Instance.new("TextLabel", mainFrame)
title.Size = UDim2.new(1, 0, 0, 40)
title.Text = "ESP SETTINGS"
title.TextColor3 = Color3.new(1, 1, 1)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextSize = 16
local buttonContainer = Instance.new("Frame", mainFrame)
buttonContainer.Size = UDim2.new(1, -20, 1, -50)
buttonContainer.Position = UDim2.new(0, 10, 0, 45)
buttonContainer.BackgroundTransparency = 1
Instance.new("UIListLayout", buttonContainer).Padding = UDim.new(0, 8)
local function createButton(text, defaultColor, callback)
local btn = Instance.new("TextButton", buttonContainer)
btn.Size = UDim2.new(1, 0, 0, 38)
btn.Text = text
btn.BackgroundColor3 = defaultColor
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.GothamMedium
btn.TextSize = 14
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
btn.MouseButton1Click:Connect(function() callback(btn) end)
return btn
end
-- ESP Update Loop
renderConnection = RunService.RenderStepped:Connect(function()
for _, p in pairs(Players:GetPlayers()) do
local char = p.Character
if char and char:FindFirstChild("HumanoidRootPart") then
local isSelf = (p == Player)
local shouldShow = espEnabled
if isSelf and not selfEspEnabled then shouldShow = false end
if not shouldShow then
clearVisuals(char)
continue
end
local highlight = char:FindFirstChild("ESPHighlight") or Instance.new("Highlight", char)
highlight.Name = "ESPHighlight"
highlight.FillColor = currentColor
highlight.FillTransparency = 0.5
local nameTag = char:FindFirstChild("ESPName")
if not nameTag then
nameTag = Instance.new("BillboardGui", char)
nameTag.Name = "ESPName"
nameTag.Size = UDim2.new(0, 100, 0, 30)
nameTag.StudsOffset = Vector3.new(0, 3, 0)
nameTag.AlwaysOnTop = true
local l = Instance.new("TextLabel", nameTag)
l.Size = UDim2.new(1,0,1,0); l.BackgroundTransparency = 1; l.TextColor3 = Color3.new(1,1,1)
l.Font = Enum.Font.GothamBold; l.TextSize = 12; l.Text = p.Name
end
nameTag.Enabled = namesEnabled
end
end
end)
-- Buttons
createButton("ESP: ON", Color3.fromRGB(46, 204, 113), function(btn)
espEnabled = not espEnabled
btn.Text = "ESP: " .. (espEnabled and "ON" or "OFF")
btn.BackgroundColor3 = espEnabled and Color3.fromRGB(46, 204, 113) or Color3.fromRGB(231, 76, 60)
end)
createButton("Nametags: OFF", Color3.fromRGB(60, 60, 60), function(btn)
namesEnabled = not namesEnabled
btn.Text = "Nametags: " .. (namesEnabled and "ON" or "OFF")
btn.BackgroundColor3 = namesEnabled and Color3.fromRGB(0, 162, 255) or Color3.fromRGB(60, 60, 60)
end)
-- MULTI-COLOR BUTTON
createButton("Color: Blue", colors[1].Color, function(btn)
colorIndex = colorIndex + 1
if colorIndex > #colors then colorIndex = 1 end
local selected = colors[colorIndex]
currentColor = selected.Color
btn.Text = "Color: " .. selected.Name
btn.BackgroundColor3 = selected.Color
end)
createButton("Self ESP: ON", Color3.fromRGB(46, 204, 113), function(btn)
selfEspEnabled = not selfEspEnabled
btn.Text = "Self ESP: " .. (selfEspEnabled and "ON" or "OFF")
btn.BackgroundColor3 = selfEspEnabled and Color3.fromRGB(46, 204, 113) or Color3.fromRGB(231, 76, 60)
if not selfEspEnabled and Player.Character then clearVisuals(Player.Character) end
end)
createButton("Destroy Everything", Color3.fromRGB(30, 30, 30), function()
if renderConnection then renderConnection:Disconnect() end
for _, p in pairs(Players:GetPlayers()) do if p.Character then clearVisuals(p.Character) end end
screenGui:Destroy()
end)
makeDraggable(mainFrame)



Please like my scripts and support me