If you’re a fan of the Roblox game Blood Debt, you’re going to love this. Sometimes, it’s hard to tell who’s who—who’s the killer, the sheriff, or just an innocent player. That’s where scripts come in handy. These scripts can show you the roles of all players, boost your game with ESP, and even add cool extras like teleporting and jump boosts. Let’s check out the best working scripts for Blood Debt right now!
01. Show All Roles Bypass 2025 – By skibidisigmasa420
This script helps you see everyone’s roles, whether they’re the killer, sheriff, terrorist, or even a target. It puts icons and colored outlines on each character so you can easily tell who’s who.
Features
Feature | Description |
---|---|
Role ESP | Shows roles above players’ heads |
Icon Display | Role icons visible from a distance |
Colored Outlines | Easy to spot who’s what with color codes |
Supports XENO | Works well with XENO executor |
Script:
--[[ Role ESP dengan Ikon & Outline Fix | Support XENO Executor ]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local RoleIcons = {
Killer = 607147197, Sheriff = 125117925593395,
HomigradPolice = 418541763, HomigradTerrorist = 71660057329682,
Target = 997927539
}
local RoleColors = {
Killer = Color3.fromRGB(255, 0, 0), Sheriff = Color3.fromRGB(0, 0, 255),
HomigradPolice = Color3.fromRGB(0, 0, 255), HomigradTerrorist = Color3.fromRGB(255, 165, 0),
Target = Color3.fromRGB(255, 255, 0), Unarmed = Color3.fromRGB(0, 255, 0)
}
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"}
}
local function createESP(player, role)
local char = player.Character
if not char or not char:FindFirstChild("Head") then return end
local head = char.Head
if not head:FindFirstChild("RoleESPIcon") then
local gui = Instance.new("BillboardGui")
gui.Name = "RoleESPIcon"
gui.Adornee = head
gui.Size = UDim2.new(0, 30, 0, 30)
gui.StudsOffset = Vector3.new(0, 2, 0)
gui.AlwaysOnTop = true
gui.Parent = head
local img = Instance.new("ImageLabel")
img.BackgroundTransparency = 1
img.Size = UDim2.new(1, 0, 1, 0)
img.Image = "rbxassetid://" .. (RoleIcons[role] or "")
img.Parent = gui
else
head.RoleESPIcon.ImageLabel.Image = "rbxassetid://" .. (RoleIcons[role] or "")
end
if not char:FindFirstChild("RoleHighlight") then
local hl = Instance.new("Highlight")
hl.Name = "RoleHighlight"
hl.FillTransparency = 1
hl.OutlineTransparency = 0
hl.OutlineColor = RoleColors[role] or Color3.fromRGB(255, 255, 255)
hl.Adornee = char
hl.Parent = char
else
char.RoleHighlight.OutlineColor = RoleColors[role] or Color3.fromRGB(255, 255, 255)
end
end
local function clearESP(player)
local char = player.Character
if char then
local hl = char:FindFirstChild("RoleHighlight")
if hl then hl:Destroy() end
end
if char and char:FindFirstChild("Head") then
local icon = char.Head:FindFirstChild("RoleESPIcon")
if icon then icon:Destroy() end
end
end
local function getPlayerRole(player)
local npc = workspace:FindFirstChild("NPCSFolder") and workspace.NPCSFolder:FindFirstChild(player.Name)
local tool = (player.Character and player.Character:FindFirstChildOfClass("Tool")) or (npc and npc:FindFirstChildOfClass("Tool"))
local backpack = player:FindFirstChild("Backpack")
local function checkWeapon(weapon)
for role, list in pairs(weaponMarkers) do
if table.find(list, weapon) then return role end
end
end
local statusGui = LocalPlayer:FindFirstChild("PlayerGui") and LocalPlayer.PlayerGui:FindFirstChild("RESETONDEATHStatusGui")
if statusGui and statusGui:FindFirstChild("TARGETHINT") then
local hintText = statusGui.TARGETHINT.Text
if npc and npc:FindFirstChild("Configuration") then
for _, val in ipairs(npc.Configuration:GetChildren()) do
if val:IsA("StringValue") and val.Value == hintText then
return "Target"
end
end
end
end
if tool then return checkWeapon(tool.Name) end
if backpack then
for _, item in pairs(backpack:GetChildren()) do
local role = checkWeapon(item.Name)
if role then return role end
end
end
return "Unarmed"
end
RunService.RenderStepped:Connect(function()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local role = getPlayerRole(player)
if role then
createESP(player, role)
else
clearESP(player)
end
end
end
end)
02. I AM BLOOD DEBT – By aidsfrvr
This is a full-feature script that doesn’t just show roles but adds aimbot, walk/jump modifiers, and even teleport options. It’s fun, powerful, and made for serious trolling too!
Features
Feature | Description |
---|---|
ESP | Shows all player roles |
Aimbot | Helps you aim better automatically |
Player Modifiers | Change walk speed and jump height |
Teleportation | Go to the lobby, remove map borders |
Trolling Tools | Includes fun extras like “jerk off tool” |
Script:
loadstring(game:HttpGet("https://raw.githubusercontent.com/ratlabsofficial/scripts/refs/heads/main/blooddebt"))()
How to Use the Script
- Install a Script Executor – You’ll need tools like Synapse X, Delta, or Trigon.
- Open Blood Debt on Roblox – Join the game and wait for it to load.
- Paste the Script – Copy one of the scripts above into your executor.
- Run It – Click the Execute button and enjoy all the extra features instantly!
What Are the Benefits of Using a Script?
Using scripts in Blood Debt gives you a big advantage. You can see everyone’s role, aim better, and even teleport around the map. It makes the game much easier to play and adds more fun with tools like jump hacks or silly trolling features. If you’re tired of guessing who the killer is or just want to relax and still win, these scripts are perfect.
Scripts also make the game more exciting, especially when you want to try something new or troll your friends in a harmless way. And since they work with popular executors, you won’t run into many problems.