-- 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) end