
Key Required

-- SERVICES
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
-- Special character list
local specialCharacters = {
["Anderson Byrne"] = true,
["Marko Glaz"] = true,
["John Reed"] = true,
["Frederick Finklebear"] = true,
["Billy Reed"] = true
}
-- Jugg / Gunner list
local juggCharacters = {
["Alexei Tarasov"] = true,
["Ryman Yegorov"] = true,
["Viadimir Koltsov"] = true,
["Veronika Kazakova"] = true,
["Gennadiy Traktirnikov"] = true,
["Stanislav"] = true,
["Mstislav"] = true,
["Kai Zhang"] = true,
["Lyudmila Rozhechuk"] = true
}
-- Create main GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "PlayerInventoryViewer"
ScreenGui.Parent = LocalPlayer.PlayerGui
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.IgnoreGuiInset = true
-- Main frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 380, 0, 420)
MainFrame.Position = UDim2.new(0.1, 0, 0.1, 0)
MainFrame.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
MainFrame.BackgroundTransparency = 0.2
MainFrame.BorderColor3 = Color3.new(0.6, 0.6, 0.6)
MainFrame.BorderSizePixel = 1
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui
-- Title bar
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 30)
TitleBar.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
TitleBar.Parent = MainFrame
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "TitleLabel"
TitleLabel.Size = UDim2.new(1, 0, 1, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "Player Inventory Viewer | Blood Debt Edition"
TitleLabel.TextColor3 = Color3.new(1, 1, 1)
TitleLabel.Font = Enum.Font.SourceSans
TitleLabel.TextSize = 16
TitleLabel.Parent = TitleBar
-- Scroll container
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Name = "ScrollFrame"
ScrollFrame.Size = UDim2.new(1, -10, 1, -35)
ScrollFrame.Position = UDim2.new(0, 5, 0, 35)
ScrollFrame.BackgroundTransparency = 1
ScrollFrame.BorderSizePixel = 0
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollFrame.ScrollBarThickness = 5
ScrollFrame.Parent = MainFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.FillDirection = Enum.FillDirection.Vertical
UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Top
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.Parent = ScrollFrame
-- Drag logic
local dragging = false
local dragStart = Vector2.new(0, 0)
local frameStartPos = UDim2.new(0, 0, 0, 0)
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
frameStartPos = MainFrame.Position
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(
frameStartPos.X.Scale,
frameStartPos.X.Offset + delta.X,
frameStartPos.Y.Scale,
frameStartPos.Y.Offset + delta.Y
)
end
end)
-- GUI persistence
local function ensureGUIPersists()
if not LocalPlayer.PlayerGui:FindFirstChild("PlayerInventoryViewer") then
ScreenGui.Parent = LocalPlayer.PlayerGui
end
end
LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.5)
ensureGUIPersists()
end)
-- Get character name
local function getBloodDebtCharacterName(player)
if player.Character then
local nameObj = player.Character:FindFirstChild("Name") or
player.Character:FindFirstChild("CharacterName") or
player.Character:FindFirstChild("RoleName") or
player.Character:FindFirstChild("DisplayName")
if nameObj and nameObj:IsA("StringValue") and nameObj.Value ~= "" then
return nameObj.Value
end
local hum = player.Character:FindFirstChildOfClass("Humanoid")
if hum and hum.DisplayName ~= "" and hum.DisplayName ~= player.Name then
return hum.DisplayName
end
local cname = player.Character.Name
if cname and cname:match("^[A-Za-z ]+$") and #cname > 3 then
return cname
end
end
local pname = player:FindFirstChild("CharacterName") or player:FindFirstChild("Role")
if pname and pname:IsA("StringValue") then
return pname.Value
end
return "Not Loaded"
end
-- Refresh player info
local function refreshPlayerInfo()
ensureGUIPersists()
for _, c in ScrollFrame:GetChildren() do
if c:IsA("Frame") then c:Destroy() end
end
-- Check if everyone has no items (i.e., in lobby)
local totalPlayers = 0
local emptyPlayers = 0
local playerEmptyStatus = {}
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
totalPlayers += 1
local hasTool = player.Character and player.Character:FindFirstChildOfClass("Tool")
local hasBackpackItem = player.Backpack and #player.Backpack:GetChildren() > 0
local isEmpty = not hasTool and not hasBackpackItem
playerEmptyStatus[player] = isEmpty
if isEmpty then
emptyPlayers += 1
end
end
local allInLobby = (totalPlayers > 0) and (emptyPlayers == totalPlayers)
-- Draw each player
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
local pf = Instance.new("Frame")
pf.Size = UDim2.new(1, -10, 0, 130)
pf.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
pf.BackgroundTransparency = 0.2
pf.BorderColor3 = Color3.new(0.6, 0.6, 0.6)
pf.BorderSizePixel = 1
pf.Parent = ScrollFrame
local charName = getBloodDebtCharacterName(player)
local isSpecial = specialCharacters[charName] or false
local isJugg = juggCharacters[charName] or false
local isEmpty = playerEmptyStatus[player]
-- Color logic
if allInLobby then
pf.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
pf.BorderColor3 = Color3.new(0.4, 0.4, 0.4)
else
if isSpecial then
pf.BackgroundColor3 = Color3.new(0.25, 0.2, 0)
pf.BorderColor3 = Color3.new(1, 0.8, 0)
pf.BorderSizePixel = 3
elseif isJugg then
pf.BackgroundColor3 = Color3.new(0.3, 0.1, 0.1)
pf.BorderColor3 = Color3.new(1, 0.2, 0.2)
pf.BorderSizePixel = 3
else
pf.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
pf.BorderColor3 = Color3.new(0.6, 0.6, 0.6)
pf.BorderSizePixel = 1
end
if isEmpty then
pf.BackgroundColor3 = Color3.new(0.2, 0, 0)
pf.BorderColor3 = Color3.new(1, 0.2, 0.2)
end
end
-- Player name
local nameLbl = Instance.new("TextLabel")
nameLbl.Size = UDim2.new(1, -10, 0, 22)
nameLbl.Position = UDim2.new(0, 5, 0, 5)
nameLbl.BackgroundTransparency = 1
nameLbl.Text = "Player: " .. player.Name
nameLbl.TextColor3 = Color3.new(0.4, 0.9, 1)
nameLbl.Font = Enum.Font.SourceSans
nameLbl.TextSize = 14
nameLbl.Parent = pf
-- Character name
local charLbl = Instance.new("TextLabel")
charLbl.Size = UDim2.new(1, -10, 0, 22)
charLbl.Position = UDim2.new(0, 5, 0, 27)
charLbl.BackgroundTransparency = 1
charLbl.Text = "Character: " .. charName
if allInLobby then
charLbl.TextColor3 = Color3.new(0.7, 0.7, 0.7)
elseif isSpecial then
charLbl.TextColor3 = Color3.new(1, 0.9, 0)
elseif isJugg then
charLbl.TextColor3 = Color3.new(1, 0.2, 0.2)
else
charLbl.TextColor3 = Color3.new(1, 0.8, 0.2)
end
charLbl.Font = Enum.Font.SourceSans
charLbl.TextSize = 14
charLbl.Parent = pf
-- Tags
if allInLobby then
local tag = Instance.new("TextLabel")
tag.Size = UDim2.new(0, 70, 0, 20)
tag.Position = UDim2.new(1, -75, 0, 5)
tag.BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
tag.Text = "🏠 In Lobby"
tag.TextColor3 = Color3.new(1,1,1)
tag.Font = Enum.Font.SourceSans
tag.TextSize = 12
tag.Parent = pf
else
if isSpecial then
local tag = Instance.new("TextLabel")
tag.Size = UDim2.new(0, 70, 0, 20)
tag.Position = UDim2.new(1, -75, 0, 27)
tag.BackgroundColor3 = Color3.new(1, 0.7, 0)
tag.Text = "⭐ Special"
tag.TextColor3 = Color3.new(1,1,1)
tag.Font = Enum.Font.SourceSans
tag.TextSize = 12
tag.Parent = pf
end
if isJugg and not isSpecial then
local tag = Instance.new("TextLabel")
tag.Size = UDim2.new(0, 70, 0, 20)
tag.Position = UDim2.new(1, -75, 0, 27)
tag.BackgroundColor3 = Color3.new(1, 0.2, 0.2)
tag.Text = "🔴 JUGG" -- Changed from "Gunner" to "JUGG"
tag.TextColor3 = Color3.new(1,1,1)
tag.Font = Enum.Font.SourceSans
tag.TextSize = 12
tag.Parent = pf
end
if isEmpty then
local tag = Instance.new("TextLabel")
tag.Size = UDim2.new(0, 70, 0, 20)
tag.Position = UDim2.new(1, -75, 0, 5)
tag.BackgroundColor3 = Color3.new(0.8, 0, 0)
tag.Text = "☠ Dead"
tag.TextColor3 = Color3.new(1,1,1)
tag.Font = Enum.Font.SourceSans
tag.TextSize = 12
tag.Parent = pf
end
end
-- Held item
local hasTool = player.Character and player.Character:FindFirstChildOfClass("Tool")
local held = hasTool and hasTool.Name or "None"
local holdLbl = Instance.new("TextLabel")
holdLbl.Size = UDim2.new(1, -10, 0, 22)
holdLbl.Position = UDim2.new(0, 5, 0, 49)
holdLbl.BackgroundTransparency = 1
holdLbl.Text = "Held: " .. held
holdLbl.TextColor3 = Color3.new(0.9, 0.6, 0.3)
holdLbl.Font = Enum.Font.SourceSans
holdLbl.TextSize = 13
holdLbl.Parent = pf
-- Backpack
local bp = "None"
if player.Backpack then
local names = {}
for _, v in ipairs(player.Backpack:GetChildren()) do
table.insert(names, v.Name)
end
if #names > 0 then bp = table.concat(names, ", ") end
end
local bpLbl = Instance.new("TextLabel")
bpLbl.Size = UDim2.new(1, -10, 0, 55)
bpLbl.Position = UDim2.new(0, 5, 0, 73)
bpLbl.BackgroundTransparency = 1
bpLbl.Text = "Backpack: " .. bp
bpLbl.TextColor3 = Color3.new(0.5, 0.9, 0.5)
bpLbl.Font = Enum.Font.SourceSans
bpLbl.TextSize = 12
bpLbl.TextWrapped = true
bpLbl.Parent = pf
end
UIListLayout:ApplyLayout()
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 10)
end
-- Loop refresh
while task.wait(1) do
pcall(refreshPlayerInfo)
endNo comments yet for this script.


![[UPD-5] OP BEST Script](https://cdn.kocakz.me/images/b2b0e1ea7ab36e4b91a1a1bffaffc376a773eb24ff6fdee045b316ea78fab5c2.webp)
