What's new
Heapleak - Scripthub

Get the most out of HeapLeak by creating a free account! Once signed in, you’ll gain full access to restricted content, be able to share your own scripts, and participate in our member-only discussions.

Highlight survivors and murderer

Version / Update: v1.0.0
Download / Script Link
local RED = Color3.fromRGB(255, 0, 0)
local BLUE = Color3.fromRGB(0, 0, 255)
local PURPLE = Color3.fromRGB(170, 0, 255)

local FillColor = Color3.fromRGB(0, 0, 0)
local DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
local FillTransparency = 1 -- Set to 0.98 if they still flicker at distance
local OutlineTransparency = 0

local Players = game:GetService("Players")
local lp = Players.LocalPlayer

-- Using PlayerGui as a safe container for the highlights
local PlayerGui = lp:WaitForChild("PlayerGui")
local Storage = Instance.new("Folder")
Storage.Name = "ESP_Storage"
Storage.Parent = PlayerGui

local gunTypes = {
["PPK"] = "Purple", ["UMP45"] = "Purple", ["UMP45M"] = "Purple",
["Type79"] = "Red", ["SVT40"] = "Red", ["Luty"] = "Red",
["VintorezO"] = "Red", ["VintorezN"] = "Red", ["M16A4"] = "Red",
["AK74"] = "Red", ["AKS74U"] = "Red", ["R870"] = "Red",
["R870A"] = "Red", ["Saiga 12"] = "Red", ["KS23M"] = "Red",
["P320"] = "Red", ["Obrez Mosin"] = "Red", ["TEC9"] = "Red",
["G17S"] = "Red", ["G17SM"] = "Red", ["Deagle"] = "Red", ["Degle"] = "Red"
}

-- Scans both Backpack and Character for guns
local function getInventoryHighlightColor(plr)
local hasRed = false
local hasPurple = false

local function scan(container)
if not container then return end
for _, item in ipairs(container:GetChildren()) do
local colorType = gunTypes[item.Name]
if colorType == "Purple" then hasPurple = true
elseif colorType == "Red" then hasRed = true end
end
end

scan(plr:FindFirstChild("Backpack"))
scan(plr.Character)

if hasPurple then return PURPLE end
if hasRed then return RED end
return BLUE
end

local function CreateESP(plr)
if plr == lp then return end

-- We store connections in a table so we can disconnect old ones on respawn
local playerConnections = {}

local function cleanup()
for _, conn in ipairs(playerConnections) do
conn:Disconnect()
end
playerConnections = {}
local oldHl = Storage:FindFirstChild(plr.Name)
if oldHl then oldHl:Destroy() end
end

local function onCharacterAdded(char)
cleanup() -- Clear any leftover highlights/connections from the previous life

local hl = Instance.new("Highlight")
hl.Name = plr.Name
hl.Adornee = char
hl.FillColor = FillColor
hl.DepthMode = DepthMode
hl.FillTransparency = FillTransparency
hl.OutlineTransparency = OutlineTransparency
hl.Parent = Storage

local function update()
hl.OutlineColor = getInventoryHighlightColor(plr)
end

-- Update when tools are added/removed from character (Equipping)
table.insert(playerConnections, char.ChildAdded:Connect(update))
table.insert(playerConnections, char.ChildRemoved:Connect(update))

-- Update when tools move in/out of Backpack (Picking up/Dropping)
local backpack = plr:WaitForChild("Backpack", 5)
if backpack then
table.insert(playerConnections, backpack.ChildAdded:Connect(update))
table.insert(playerConnections, backpack.ChildRemoved:Connect(update))
end

update() -- Initial color check
end

-- Run whenever the character spawns or teleports
table.insert(playerConnections, plr.CharacterAdded:Connect(onCharacterAdded))

-- If the character already exists when the script runs
if plr.Character then
onCharacterAdded(plr.Character)
end
end

-- Setup for new players
Players.PlayerAdded:Connect(CreateESP)

-- Setup for players already in the server
for _, v in ipairs(Players:GetPlayers()) do
CreateESP(v)
end

-- Full cleanup when someone leaves
Players.PlayerRemoving:Connect(function(plr)
local oldHl = Storage:FindFirstChild(plr.Name)
if oldHl then oldHl:Destroy() end
end)
[ View More ]
a716ad85-e058-4523-a210-66837f0ef2d7.webp


It highlights survivors with blue, murderers with red, it's not fixed, so when a player pick the gun from dead murderer or security or police, he may be red too, security and police may be red too. If there any problem please leave it on the comments.
 
Works on mobile
  1. Yes
Back
Top