local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ESPEnabled = true local ESPColor = Color3.fromRGB(255, 0, 0) local ESPTransparency = 0.5 local UpdateInterval = 0.1 local HighlightCache = {} local ArmedPlayers = {} local function CreateHighlight(character) if HighlightCache[character] then return HighlightCache[character] end local highlight = Instance.new("Highlight") highlight.FillColor = ESPColor highlight.OutlineColor = ESPColor highlight.FillTransparency = ESPTransparency highlight.OutlineTransparency = 0 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Enabled = false highlight.Parent = character HighlightCache[character] = highlight return highlight end local function IsPlayerArmed(player) if not player.Character then return false end local character = player.Character local backpack = player:FindFirstChild("Backpack") for _, item in pairs(character:GetChildren()) do if item:IsA("Tool") then return true end end if backpack then for _, item in pairs(backpack:GetChildren()) do if item:IsA("Tool") then local equipped = character:FindFirstChildOfClass("Tool") if equipped then return true end end end end return false end local function UpdatePlayerESP(player) if not player.Character then return end local character = player.Character local highlight = CreateHighlight(character) local isArmed = IsPlayerArmed(player) ArmedPlayers[player.UserId] = isArmed highlight.Enabled = ESPEnabled and isArmed end local function MonitorPlayer(player) player.CharacterAdded:Connect(function(character) character:WaitForChild("Humanoid") CreateHighlight(character) character.ChildAdded:Connect(function(child) if child:IsA("Tool") then task.wait(0.05) UpdatePlayerESP(player) end end) character.ChildRemoved:Connect(function(child) if child:IsA("Tool") then task.wait(0.05) UpdatePlayerESP(player) end end) end) if player.Character then CreateHighlight(player.Character) end end for _, player in pairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer then MonitorPlayer(player) end end Players.PlayerAdded:Connect(function(player) if player ~= Players.LocalPlayer then MonitorPlayer(player) end end) Players.PlayerRemoving:Connect(function(player) if player.Character and HighlightCache[player.Character] then HighlightCache[player.Character]:Destroy() HighlightCache[player.Character] = nil end ArmedPlayers[player.UserId] = nil end) RunService.Heartbeat:Connect(function() for _, player in pairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer and player.Character then UpdatePlayerESP(player) end end end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F3 then ESPEnabled = not ESPEnabled for character, highlight in pairs(HighlightCache) do if ArmedPlayers[Players:GetPlayerFromCharacter(character).UserId] then highlight.Enabled = ESPEnabled end end end end)