
Key RequiredUniversal

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)



Universal Too btw.
Useless asf