If you’re playing Blood Debt and want to spot killers, sheriffs, or other roles faster, ESP (extra sensory perception) scripts can help. These scripts make it easier to see who’s who by showing colors or checks based on what weapon a player has. Below are two working ESP scripts for Blood Debt that will help you stay safe and get ahead.
01. Blood Debt Killer ESP Script by wie_134
This script marks other players with color dots based on their roles, weapons, or if they’re unarmed.
Feature | Description |
---|---|
Killer Detection | Shows red dot for killers |
Sheriff Detection | Shows blue dot for sheriffs |
Terrorist Spotting | Orange dot for Homigrad terrorists |
Police Spotting | Blue dot for Homigrad police |
Hint Matches | Yellow dot if matched with target hint |
Unarmed Players | Green dot for players without weapons |
Auto Update | Checks every 1.5 seconds for new changes |
Script:
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"},
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"}
}
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
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
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
end
return false
end
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
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
local function checkTargetHints(player)
local hintsGui = game:GetService("Players").LocalPlayer.PlayerGui:FindFirstChild("RESETONDEATHStatusGui")
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
end
end
end
end
return false
end
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))
elseif role then
if role == "Killer" then
createDot(player, Color3.fromRGB(255, 0, 0))
elseif role == "Sheriff" then
createDot(player, Color3.fromRGB(0, 0, 255))
elseif role == "HomigradTerrorist" then
createDot(player, Color3.fromRGB(255, 165, 0))
elseif role == "HomigradPolice" then
createDot(player, Color3.fromRGB(0, 0, 255))
end
elseif isUnarmed then
createDot(player, Color3.fromRGB(0, 255, 0))
else
removeDot(player)
end
end
end
while true do
assignDots()
task.wait(1.5)
end
02. Blood Debt ESP AI Script by bymbyka
This script checks if players have one of 6 main weapons used by killers and sheriffs and shows ESP accordingly.
Feature | Description |
---|---|
Weapon Check | Scans for 6 popular killer/sheriff guns |
Easy Setup | Just copy and paste one line to run it |
Lightweight Script | Doesn’t slow the game |
AI Created Script | Made by a neural network, updates possible |
Public Code | Anyone can view or edit the code |
Script:
loadstring(game:HttpGet("https://raw.githubusercontent.com/qwezxc123zz/FreeCheats/main/ESPBloodDebt.lua"))()
How to Use the Script
To use any of the scripts above, open your Roblox executor and paste the full script into it. Then run the script while inside the Blood Debt game. It will start working immediately and show you role-based dots or ESP checks depending on the version you use.
What Are the Benefits of Using These Scripts?
Using ESP scripts in Blood Debt helps you survive longer and find threats faster. You can easily spot who has a weapon and what role they play. This means fewer surprises, smarter decisions, and a better shot at staying alive or winning. It’s also great if you’re new to the game and want to understand what’s happening around you.