0% found this document useful (0 votes)
1K views3 pages

Blood Debt Esp

The script manages player roles and weapon detection in a game environment, assigning colored dots above players' heads based on their roles, weapons, and hints. It defines various weapon categories and includes functions to create or remove visual indicators for players based on their current state (armed, unarmed, or matching hints). The script continuously checks player statuses and updates the visual indicators every 0.6 seconds.

Uploaded by

gon900p
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views3 pages

Blood Debt Esp

The script manages player roles and weapon detection in a game environment, assigning colored dots above players' heads based on their roles, weapons, and hints. It defines various weapon categories and includes functions to create or remove visual indicators for players based on their current state (armed, unarmed, or matching hints). The script continuously checks player statuses and updates the visual indicators every 0.6 seconds.

Uploaded by

gon900p
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

local Players = game:GetService("Players")

local workspace = game:GetService("Workspace")

local weaponMarkers = {
Killer = {"Sawn-off", "K1911", "RR-LightCompactPistolS", "JS2-Derringy", "KOLT-
AR15", "JS-22", "KamatovS", "Rosen-Obrez"},
Sheriff = {"RR-Snubby", "GG-17", "IZVEKH-412"},
HomigradTerrorist = {"VK's ANKM", "RY's GG-17", "AT's KAR15"},
HomigradPolice = {"RR-40", "IZVEKH-412", "ZJ23M"},
MeleeWeapons = {"Lead Pipe", "KitchenKnife", "Pen"} -- Lower priority than guns
}

-- Function to create the colored dot for the player


local function createDot(player, color)
if player.Character and player.Character:FindFirstChild("Head") then
local head = player.Character.Head
local dot = head:FindFirstChild("RoleDot")
if not dot then
dot = Instance.new("BillboardGui")
dot.Name = "RoleDot"
dot.Size = UDim2.new(0, 8, 0, 8)
dot.Adornee = head
dot.AlwaysOnTop = true
dot.Parent = head

local frame = Instance.new("Frame")


frame.Size = UDim2.new(1, 0, 1, 0)
frame.BackgroundColor3 = color
frame.Parent = dot
else
dot.Frame.BackgroundColor3 = color
end
end
end

-- Function to remove the dot from the player


local function removeDot(player)
if player.Character and player.Character:FindFirstChild("Head") then
local head = player.Character.Head
local dot = head:FindFirstChild("RoleDot")
if dot then
dot:Destroy()
end
end
end

-- Check if the player is completely unarmed


local function isPlayerUnarmed(player)
local backpack = player:FindFirstChild("Backpack")
local toolInHand = player.Character and
player.Character:FindFirstChildOfClass("Tool")
local npcModel = workspace.NPCSFolder:FindFirstChild(player.Name)
local npcWeapon = npcModel and npcModel:FindFirstChildOfClass("Tool")

if not toolInHand and not npcWeapon and (not backpack or


#backpack:GetChildren() == 0) then
return true -- No weapons at all
end
return false
end

-- Function to check if a player has a weapon (either equipped, in the backpack, or


NPC folder)
local function checkValidWeapon(player)
local backpack = player:FindFirstChild("Backpack")
local toolInHand = player.Character and
player.Character:FindFirstChildOfClass("Tool")
local npcModel = workspace.NPCSFolder:FindFirstChild(player.Name)
local npcWeapon = npcModel and npcModel:FindFirstChildOfClass("Tool")

local detectedWeapon = nil


local detectedRole = nil

-- Check for weapons in Backpack, Hand, and NPC


local function checkWeapon(item)
for role, weapons in pairs(weaponMarkers) do
if table.find(weapons, item) then
detectedRole = role
detectedWeapon = item
end
end
end

if backpack then
for _, item in pairs(backpack:GetChildren()) do
checkWeapon(item.Name)
end
end

if toolInHand then
checkWeapon(toolInHand.Name)
end

if npcWeapon then
checkWeapon(npcWeapon.Name)
end

return detectedRole, detectedWeapon


end

-- Function to check if a player matches Target Hints


local function checkTargetHints(player)
local hintsGui =
game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("RESETONDEATHStatus
Gui")
if hintsGui and hintsGui:FindFirstChild("TARGETHINT") then
local hintText = hintsGui.TARGETHINT.Text
local npcModel = workspace.NPCSFolder:FindFirstChild(player.Name)
if npcModel and npcModel:FindFirstChild("Configuration") then
for _, valueObj in pairs(npcModel.Configuration:GetChildren()) do
if valueObj:IsA("StringValue") and valueObj.Value == hintText then
return true -- Player matches the hint
end
end
end
end
return false
end
-- Function to assign dots based on role, hints, and weapons
local function assignDots()
for _, player in pairs(Players:GetPlayers()) do
local role, weapon = checkValidWeapon(player)
local isHintMatch = checkTargetHints(player)
local isUnarmed = isPlayerUnarmed(player)

if isHintMatch then
createDot(player, Color3.fromRGB(255, 255, 0)) -- Yellow for hint match
elseif role then
if role == "Killer" then
createDot(player, Color3.fromRGB(255, 0, 0)) -- Red for Killer
elseif role == "Sheriff" then
createDot(player, Color3.fromRGB(0, 0, 255)) -- Blue for Sheriff
elseif role == "HomigradTerrorist" then
createDot(player, Color3.fromRGB(255, 165, 0)) -- Orange for
Terrorist
elseif role == "HomigradPolice" then
createDot(player, Color3.fromRGB(0, 0, 255)) -- Blue for Police
end
elseif isUnarmed then
createDot(player, Color3.fromRGB(0, 255, 0)) -- Green for No Weapons
else
removeDot(player) -- Remove dot if nothing applies
end
end
end

-- Run the function repeatedly every -.- seconds


while true do
assignDots()
task.wait(0.6)
end

You might also like