custom inventory GUI

MADE BY furries must die

FEATURE:

  • CUSTOM INVENTORY GUI

SCRIPT:

local plr = game.Players.LocalPlayer
local backpack = game.CoreGui:WaitForChild("RobloxGui"):WaitForChild("Backpack")
local rs = game:GetService("RunService")
local ts = game:GetService("TweenService")

local function fiximage(id)
   return string.format("rbxthumb://type=Asset&id=%s&w=420&h=420",tonumber(id))
end

function textbounds(str,fontsize,font,size)
   return game:GetService("TextService"):GetTextSize(str,fontsize,font,size)
end

function style(v,equippable)
   local bg = Instance.new("ImageLabel")
   local tool
   bg.Size = UDim2.new(0.9,0,0.9,0)
   bg.AnchorPoint = Vector2.new(0.5,0.5)
   bg.Position = UDim2.new(0.5,0,0.5,0)
   bg.BackgroundTransparency = 1
   bg.ImageTransparency = 0.4
   bg.Image = fiximage(1215686062)
   bg.ImageColor3 = Color3.fromRGB(0,0,0)
   bg.ZIndex = -2
   bg.Parent = v
   v.BackgroundTransparency = 1
   v.ToolName.Font = "Gotham"
   Instance.new("UIStroke",v.ToolName)
   
   Instance.new("UIStroke",v.Number)
   if equippable then
       local tip = v:WaitForChild("ToolTip")
       
       v.Number.Font = "Gotham"
       tip.Font = "Gotham"
       tip.BackgroundColor3 = Color3.fromRGB(70,70,75)
       tip.TextSize = 13
       tip.RichText = true
       
       Instance.new("UIStroke",tip).ApplyStrokeMode = "Border"
       Instance.new("UICorner",tip).CornerRadius = UDim.new(0,4)
       
       tip.Changed:Connect(function()
           wait()
           local size = textbounds(tip.Text,tip.TextSize,tip.Font,tip.AbsoluteSize)
           tip.Size = UDim2.new(0,size.X+15,0,size.Y)
       end)
       
       v.ChildAdded:Connect(function(sel)
           rs.RenderStepped:Wait()
           if sel.Name == "Equipped" then
               ts:Create(bg,TweenInfo.new(0.1),{Size=UDim2.new(1,0,1,0)}):Play()
               v.BackgroundTransparency = 1
               sel.Visible = false
               bg.ImageColor3 = Color3.fromRGB(10,130,255)
               
               sel:GetPropertyChangedSignal("Parent"):Wait()
               bg.ImageColor3 = Color3.fromRGB(0,0,0)
               ts:Create(bg,TweenInfo.new(0.1),{Size=UDim2.new(0.9,0,0.9,0)}):Play()
           end
       end)
   end
   
   v.Changed:Connect(function()
       v.BackgroundTransparency = 1
   end)
   
   rs.RenderStepped:Connect(function()
       if tool then
           bg.ImageTransparency = (tool.Enabled and 0.4) or 0.7
       else
           tool = plr.Character:FindFirstChildOfClass("Tool")
       end
   end)
end

if not game:IsLoaded() then game.Loaded:Wait() end
repeat wait() until game.Players.LocalPlayer
plr = game.Players.LocalPlayer

for i,v in pairs(backpack:WaitForChild("Hotbar"):GetChildren()) do
   style(v,true)
end

local inv = backpack:WaitForChild("Inventory")
local list = inv:WaitForChild("ScrollingFrame"):WaitForChild("UIGridFrame")
local sr = inv:WaitForChild("Search")
local t = sr:WaitForChild("TextBox")

inv.BackgroundTransparency = 0.4
inv.BackgroundColor3 = Color3.fromRGB(0,0,0)
sr.BackgroundTransparency = 0.5
t.Font = "Gotham"
t.TextSize = 16

Instance.new("UICorner",inv)
Instance.new("UICorner",sr)

t.Changed:Connect(function()
   local empty = t.Text == "Search"
   
   if empty then
       t.TextColor3 = Color3.fromRGB(195,195,195)
   else
       t.TextColor3 = Color3.fromRGB(255,255,255)
   end
end)

list.ChildAdded:Connect(function(v)
   rs.RenderStepped:Wait()
   if v:IsA("TextButton") then
       style(v,false)
   end
end)

⚠️ Warning: Do not download any extensions or anything other than .txt/.lua file, because script will download only in .txt/.lua format or It will redirect you to a pastebin link.

📋 Notice: If you find any of the scripts patched or not working, please report it to Forever4D through Discord. The script will be removed or marked as patched!