Highlight script Detect invisible people
Key RequiredUniversal

Highlight script Detect invisible people

Universal ScriptGoldenscriptsGoldenscripts 504 views 117 executesUpdated Mar 10, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•248 lines (5051 chars)
-- Services
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

-- ESP State
local ESP_ENABLED = false

-- GUI
local gui = Instance.new("ScreenGui")
gui.Name = "HighlightPanel"
gui.ResetOnSpawn = false
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")

-- Main Frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0,260,0,150)
frame.Position = UDim2.new(0.35,0,0.3,0)
frame.BackgroundColor3 = Color3.fromRGB(30,30,30)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0,12)
corner.Parent = frame

-- Top Bar
local top = Instance.new("Frame")
top.Size = UDim2.new(1,0,0,35)
top.BackgroundColor3 = Color3.fromRGB(20,20,20)
top.BorderSizePixel = 0
top.Parent = frame

local topCorner = Instance.new("UICorner")
topCorner.CornerRadius = UDim.new(0,12)
topCorner.Parent = top

-- Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,-70,1,0)
title.Position = UDim2.new(0,10,0,0)
title.BackgroundTransparency = 1
title.Text = "Highlight ESP"
title.TextColor3 = Color3.fromRGB(255,255,255)
title.Font = Enum.Font.GothamBold
title.TextSize = 16
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = top

-- Minimize Button
local minimize = Instance.new("TextButton")
minimize.Size = UDim2.new(0,30,0,25)
minimize.Position = UDim2.new(1,-65,0,5)
minimize.Text = "-"
minimize.BackgroundColor3 = Color3.fromRGB(255,170,0)
minimize.TextColor3 = Color3.new(1,1,1)
minimize.Font = Enum.Font.GothamBold
minimize.TextSize = 18
minimize.Parent = top

local miniCorner = Instance.new("UICorner")
miniCorner.CornerRadius = UDim.new(0,8)
miniCorner.Parent = minimize

-- Close Button
local close = Instance.new("TextButton")
close.Size = UDim2.new(0,30,0,25)
close.Position = UDim2.new(1,-35,0,5)
close.Text = "X"
close.BackgroundColor3 = Color3.fromRGB(255,60,60)
close.TextColor3 = Color3.new(1,1,1)
close.Font = Enum.Font.GothamBold
close.TextSize = 16
close.Parent = top

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0,8)
closeCorner.Parent = close

-- Content
local content = Instance.new("Frame")
content.Size = UDim2.new(1,0,1,-40)
content.Position = UDim2.new(0,0,0,40)
content.BackgroundTransparency = 1
content.Parent = frame

-- Toggle Button
local toggle = Instance.new("TextButton")
toggle.Size = UDim2.new(0.8,0,0,40)
toggle.Position = UDim2.new(0.1,0,0.2,0)
toggle.Text = "Enable Highlight"
toggle.BackgroundColor3 = Color3.fromRGB(40,170,255)
toggle.TextColor3 = Color3.new(1,1,1)
toggle.Font = Enum.Font.GothamBold
toggle.TextSize = 16
toggle.Parent = content

local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0,10)
toggleCorner.Parent = toggle


-- Highlight Functions
local function applyHighlight(character)

	if not character then return end

	if character:FindFirstChild("PlayerHighlight") then return end

	local highlight = Instance.new("Highlight")
	highlight.Name = "PlayerHighlight"
	highlight.FillColor = Color3.fromRGB(0,255,0)
	highlight.FillTransparency = 0.4
	highlight.OutlineColor = Color3.fromRGB(0,255,0)
	highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
	highlight.Parent = character

end


local function removeHighlight(character)

	if character and character:FindFirstChild("PlayerHighlight") then
		character.PlayerHighlight:Destroy()
	end

end


-- Update ESP
local function updateESP()

	for _,player in pairs(Players:GetPlayers()) do

		if player ~= LocalPlayer then

			local character = player.Character

			if character then

				if ESP_ENABLED then
					applyHighlight(character)
				else
					removeHighlight(character)
				end

			end

		end

	end

end


-- Player Join Detection
Players.PlayerAdded:Connect(function(player)

	player.CharacterAdded:Connect(function(character)

		task.wait(1)

		if ESP_ENABLED then
			applyHighlight(character)
		end

	end)

end)


-- Existing Players
for _,player in pairs(Players:GetPlayers()) do

	if player ~= LocalPlayer then

		player.CharacterAdded:Connect(function(character)

			task.wait(1)

			if ESP_ENABLED then
				applyHighlight(character)
			end

		end)

	end

end


-- Auto Refresh Loop (map changes / updates)
task.spawn(function()

	while true do

		task.wait(2)

		if ESP_ENABLED then
			updateESP()
		end

	end

end)


-- Toggle Button
toggle.MouseButton1Click:Connect(function()

	ESP_ENABLED = not ESP_ENABLED

	if ESP_ENABLED then
		toggle.Text = "Disable Highlight"
		toggle.BackgroundColor3 = Color3.fromRGB(255,80,80)
	else
		toggle.Text = "Enable Highlight"
		toggle.BackgroundColor3 = Color3.fromRGB(40,170,255)
	end

	updateESP()

end)


-- Minimize System
local minimized = false

minimize.MouseButton1Click:Connect(function()

	minimized = not minimized

	if minimized then
		content.Visible = false
		frame.Size = UDim2.new(0,260,0,40)
	else
		content.Visible = true
		frame.Size = UDim2.new(0,260,0,150)
	end

end)


-- Close GUI
close.MouseButton1Click:Connect(function()
	gui:Destroy()
end)

Features & Information

A good script Highlights that even detect invisible players
#Script#Too good

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts