Start typing to search packages!
vide-backpack
By @encodedlux
Roblox
Mirrored🎒 VideBackpack
[image: VideBackpack Preview]
A modern and reactive backpack system for Roblox, built using Vide.
⚡ Features
- Familiar UI: Maintains a highly intuitive layout familiar to Roblox players, matching the core interface patterns they expect, but elevated with a sleek, premium, and modern aesthetic.
- Customizable Themes: Highly customizable theme properties using
setTheme. Easily switch between predefined themes (defaultandwhite) or define your own. - Total Architectural Freedom: Highly modular source code. You have absolute freedom to edit, extend, or rewrite UI components to match any unique design or specific gameplay behavior.
- Custom Categorization: Group your inventory items into tab categories (e.g., Weapons, Potions, Resources) using simple, custom declarative predicate functions.
📦 Installation
Github Releases
- Download the
VideBackpack.rbxmmodel file from the Github Releases. - Open Roblox Studio and create a new place or open an existing place.
- In the Explorer window, insert VideBackpack into ReplicatedStorage.
- Select the VideBackpack model file you downloaded from GitHub.
VideBackpack uses RunContext to run anywhere, so you do not need to move it from Workspace, though it is recommended to parent it to ReplicatedStorage for better practices and organization.
Wally
Add VideBackpack to your wally.toml dependencies:
[dependencies]
VideBackpack = "encodedlux/vide-backpack@0.1.0"
Then, run wally install in your project folder.
💡 Usage
1. Basic Setup
Initialize VideBackpack in your client script:
-- Require VideBackpack to run startup
require("@game/ReplicatedStorage/Packages/VideBackpack")
2. Registering Custom Categories
Group items dynamically based on tag configurations or attributes:
local VideBackpack = require("@game/ReplicatedStorage/Packages/VideBackpack")
-- Category for items tagged as "Consumable"
VideBackpack.createCategory("Consumable", function(item)
return item:HasTag("Consumable")
end)
-- Category for tools whose name starts with "Sword"
VideBackpack.createCategory("Swords", function(item)
return string.match(item.Name, "^Sword") ~= nil
end)
3. Subscribing to Inventory Lifecycles
Track when items are equipped and handle custom mechanics:
local VideBackpack = require("@game/ReplicatedStorage/Packages/VideBackpack")
local disconnect = VideBackpack.onBackpackEquipped(function(item)
print("Player is now holding their:", item.Name)
end)
-- Clean up subscriptions when no longer needed (optional)
disconnect()
4. Changing Themes
Seamlessly update colors, fonts, corner radius, and stroke values on the fly with smooth transition animations:
local VideBackpack = require("@game/ReplicatedStorage/Packages/VideBackpack")
-- Switch to the light theme (white)
VideBackpack.setTheme(VideBackpack.themes.white)
-- Switch to the default theme (dark)
VideBackpack.setTheme(VideBackpack.themes.default)
-- Or create a custom theme
local customTheme = {
backgroundColor = Color3.fromHex("#492a17ff"),
textColor = Color3.fromHex("#e09e74ff"),
...
} :: VideBackpack.ThemeConfig
VideBackpack.setTheme(customTheme)
🛠️ API Reference
Functions
setEnabled(enabled: boolean)
Enables or disables the custom backpack interface.
enabled: Set totrueto display the UI, orfalseto hide it.
VideBackpack.setEnabled(true)
isEnabled() -> boolean
Returns whether the custom backpack UI is currently enabled.
local isEnabled = VideBackpack.isEnabled()
openInventory()
Opens the inventory screen interface.
VideBackpack.openInventory()
closeInventory()
Closes the inventory screen interface.
VideBackpack.closeInventory()
toggleInventory()
Toggles the visibility state of the inventory interface.
VideBackpack.toggleInventory()
isInventoryOpen() -> boolean
Returns whether the inventory screen is currently open.
local isOpen = VideBackpack.isInventoryOpen()
createCategory(name: string, predicate: (item: Tool | HopperBin) -> boolean)
Creates a custom category filtering items based on the provided predicate function.
name: The display name of the category (e.g.,"Weapons").predicate: A function that receives anitemand returns aboolean(whether the item belongs in the category).
VideBackpack.createCategory("Weapons", function(item)
return item:HasTag("Weapon")
end)
getTopbarIcon() -> Icon?
Returns the TopbarPlus icon instance generated by the module.
local icon = VideBackpack.getTopbarIcon()
if icon then
icon:setLabel("Inventory")
end
setTheme(config: ThemeConfig)
Sets the active theme configuration.
config: The newThemeConfiglayout to apply. Individual values are automatically animated using spring physics.
VideBackpack.setTheme(VideBackpack.themes.white)
Events (Hooks)
All event listeners return a disconnect function when called, which can be executed to clean up and stop listening to the event.
onInventoryOpened(callback: () -> ()) -> (() -> ())
Fires whenever the player's inventory interface is opened.
local disconnect = VideBackpack.onInventoryOpened(function()
print("Player opened their inventory!")
end)
-- Unsubscribe when no longer needed:
disconnect()
onInventoryClosed(callback: () -> ()) -> (() -> ())
Fires whenever the player's inventory interface is closed.
VideBackpack.onInventoryClosed(function()
print("Player closed their inventory!")
end)
onBackpackEquipped(callback: (item: Tool | HopperBin) -> ()) -> (() -> ())
Fires when the player equips an item on character.
item: TheToolthat was equipped.
VideBackpack.onBackpackEquipped(function(item)
print("Equipped item:", item.Name)
end)
onBackpackUnequipped(callback: (item: Tool | HopperBin) -> ()) -> (() -> ())
Fires when the player unequips their currently active item.
item: TheToolthat was unequipped.
VideBackpack.onBackpackUnequipped(function(item)
print("Unequipped item:", item.Name)
end)
onBackpackAdded(callback: (item: Tool | HopperBin) -> ()) -> (() -> ())
Fires when an item is added to the player's backpack.
item: TheToolorHopperBinthat was added.
VideBackpack.onBackpackAdded(function(item)
print("Added to backpack:", item.Name)
end)
onBackpackRemoved(callback: (item: Tool | HopperBin) -> ()) -> (() -> ())
Fires when an item is removed entirely from the player's backpack.
item: TheToolorHopperBinthat was removed.
VideBackpack.onBackpackRemoved(function(item)
print("Removed from backpack:", item.Name)
end)
onBackpackEmpty(callback: () -> ()) -> (() -> ())
Fires when the backpack becomes entirely empty (contains no items).
VideBackpack.onBackpackEmpty(function()
print("The backpack is now empty!")
end)
🤝 Credits
📄 License
VideBackpack is licensed under the MIT License - see the LICENSE file for details.
Package Details
Install command (Click to copy)
Version
0.1.0-rc.7
License
MIT
Safe for commercial use
Automated license review — not legal advice.
