Top 2 Blood Debt ESP Scripts For Roblox 2025

Photo of author
Published by

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.

FeatureDescription
Killer DetectionShows red dot for killers
Sheriff DetectionShows blue dot for sheriffs
Terrorist SpottingOrange dot for Homigrad terrorists
Police SpottingBlue dot for Homigrad police
Hint MatchesYellow dot if matched with target hint
Unarmed PlayersGreen dot for players without weapons
Auto UpdateChecks 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.

FeatureDescription
Weapon CheckScans for 6 popular killer/sheriff guns
Easy SetupJust copy and paste one line to run it
Lightweight ScriptDoesn’t slow the game
AI Created ScriptMade by a neural network, updates possible
Public CodeAnyone 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.

Click to rate this script!
[Total: 0 Average: 0]

Leave a Comment