Universal esp changeable color
Key RequiredUniversal

Universal esp changeable color

Universal Scriptgumgumyumyumgumgumyumyum 5.9K views 210 executesUpdated May 19, 2025
Unrated
00
Lua Script•75 lines (3063 chars)
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

local HIGHLIGHT_NAME = "ESPHighlight" -- Unique name for our highlight instance

-- Function to set up highlight for a character
local function setupCharacterHighlight(character)
    -- Ensure character is valid and doesn't already have our highlight
    if not character or character:FindFirstChild(HIGHLIGHT_NAME) then
        return
    end

    local highlight = Instance.new("Highlight")
    highlight.Name = HIGHLIGHT_NAME
    highlight.Adornee = character
    highlight.FillColor = Color3.fromRGB(255, 0, 0)       -- Bright Red fill
    highlight.OutlineColor = Color3.fromRGB(255, 255, 255) -- White outline
    highlight.FillTransparency = 0.6                       -- Semi-transparent fill
    highlight.OutlineTransparency = 0.2                    -- Slightly transparent outline
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop -- Visible through walls and objects
    highlight.Enabled = true
    highlight.Parent = character -- Parent to character for automatic cleanup

    -- Connect to character's Destroying event to clean up the connection itself.
    -- The Highlight instance is automatically destroyed due to being parented to the character.
    local charDestroyingConnection
    charDestroyingConnection = character.Destroying:Connect(function()
        if charDestroyingConnection then
            charDestroyingConnection:Disconnect()
        end
    end)
end

-- Function to handle player joining or already being present
local function onPlayerProcessed(player)
    -- Do not highlight the local player
    if player == LocalPlayer then
        -- Ensure local player's character (if any) doesn't have this highlight
        local function removeHighlightFromLocalPlayerCharacter(character)
            if character then
                local existingHighlight = character:FindFirstChild(HIGHLIGHT_NAME)
                if existingHighlight then
                    existingHighlight:Destroy()
                end
            end
        end

        if player.Character then
            removeHighlightFromLocalPlayerCharacter(player.Character)
        end
        player.CharacterAdded:Connect(removeHighlightFromLocalPlayerCharacter)
        return
    end

    -- If the player's character already exists, set up the highlight
    if player.Character then
        setupCharacterHighlight(player.Character)
    end

    -- Connect to CharacterAdded event for when the player's character spawns/respawns
    player.CharacterAdded:Connect(function(character)
        setupCharacterHighlight(character)
    end)
end

-- Process all players already in the game when the script starts
for _, player in Players:GetPlayers() do
    onPlayerProcessed(player)
end

-- Process players who join the game later
Players.PlayerAdded:Connect(onPlayerProcessed)

-- No specific Players.PlayerRemoving logic is needed for the highlight instances themselves,
-- as parenting them to the character handles their destruction when the character is removed.

Features & Information

universal esp you can change the color the inline and the outline so have fun ig
#universal#esp#wallhack#universalesp

Community Comments (1)

avery12212avery12212Jun 16, 2025

ai

More Scripts for Universal Scripts