-- ESP Outline Script for Roblox Studio -- Compatible with Mobile and PC -- Features: -- 1. Outline around players -- 2. Remains active when player dies -- 3. Automatically works for new joining players -- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") -- Configuration local ESP_COLOR = Color3.fromRGB(0, 255, 0) -- Green for outline local ESP_THICKNESS = 2 -- Outline thickness local ESP_TRANSPARENCY = 0.7 -- Outline transparency local ESP_REFRESH_RATE = 0.1 -- Update every 0.1 seconds -- Variables local espCache = {} local connections = {} -- Function to create ESP local function createESP(player) local character = player.Character or player.CharacterAdded:Wait() -- Create highlight for outline local highlight = Instance.new("Highlight") highlight.Name = player.Name .. "_ESP" highlight.OutlineColor = ESP_COLOR highlight.OutlineTransparency = ESP_TRANSPARENCY highlight.FillTransparency = 1 -- Transparent fill highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Adornee = character highlight.Parent = character -- Save to cache espCache[player.Name] = highlight -- Handle character death character:WaitForChild("Humanoid").Died:Connect(function() -- Change outline color to red when dead highlight.OutlineColor = Color3.fromRGB(255, 0, 0) -- Keep outline visible even when dead if character:FindFirstChild("HumanoidRootPart") then highlight.Adornee = character end end) end -- Function to initialize ESP local function initESP() -- Clear old cache and connections for _, highlight in pairs(espCache) do highlight:Destroy() end espCache = {} for _, connection in pairs(connections) do connection:Disconnect() end connections = {} -- Create ESP for existing players for _, player in ipairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer then coroutine.wrap(function() createESP(player) end)() end end -- Handle new joining players table.insert(connections, Players.PlayerAdded:Connect(function(player) coroutine.wrap(function() createESP(player) end)() end)) -- Handle leaving players table.insert(connections, Players.PlayerRemoving:Connect(function(player) if espCache[player.Name] then espCache[player.Name]:Destroy() espCache[player.Name] = nil end end)) -- Handle character respawn table.insert(connections, Players.PlayerCharacterSet:Connect(function(player) if player ~= Players.LocalPlayer and espCache[player.Name] then -- Wait a moment to ensure character exists wait(1) if player.Character then espCache[player.Name].Adornee = player.Character -- Reset color to normal after respawn espCache[player.Name].OutlineColor = ESP_COLOR end end end)) end -- Start ESP after everything is ready RunService.Heartbeat:Wait() initESP() print("ESP Outline Script successfully activated!")