Esp script
Key RequiredUniversal

Esp script

Universal Scriptneosnappneosnapp 530 views 159 executesUpdated Mar 30, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•168 lines (5922 chars)
-- 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)

Features & Information

esp --fully ai used --discord neo_snap_31882
#esp#universal#solora#keyless#open source

Community Comments (1)

neosnappneosnappMar 30, 2026

Please like my scripts and support me

More Scripts for Universal Scripts