Skip to content

Zyn-ic/Stoway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

73 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Stoway - Advanced Roblox Inventory System (V2.4.1)

Stoway Logo

Stoway is a data-driven inventory and hotbar framework for Roblox. It uses Fusion for reactive UI, server-authoritative inventory state, and delta replication for efficient updates. Use it as a base for RPG, survival, or utility-heavy inventory systems.

Download the latest packaged release from Releases.


Table of Contents

Features

Hotbar

  • Drag and drop between hotbar and storage.
  • Supports static slots and dynamic display behavior.
  • Keybind support for quick equip.

Storage

  • Items are tracked as data (UUID-based), not persistent tool instances.
  • Configurable stacking, limits, sorting, and filtering.
  • Optional backpack enable/disable modes.

Systems

  • Reactive UI with Fusion.
  • Server-authoritative state with delta replication and correction sync paths.
  • Console mode support, selection mode, and drop UI.
  • Multi-skin UI support via settings.

Getting Started

  1. Download the latest .rbxm from Releases.
  2. Place server module(s) in ServerScriptService.
  3. Place client module(s) in StarterPlayerScripts.
  4. Place shared modules (Settings, Types, RarityValues, Binds) in ReplicatedStorage/Shared.
  5. Ensure required packages (such as Fusion) are available in ReplicatedStorage/Packages.
  6. Initialize on server:
local StowayServer = require(game.ServerScriptService.StowayServerV1_2)
StowayServer.Init()

Configuration

Primary settings are in src/shared/Settings.luau.

local Settings = {}

Settings.Hotbar = {
    Type = "Static", -- "Static" | "Dynamic"
    MaxSlots = 10,
}

Settings.Storage = {
    Limit = 15,        -- 0 = infinite
    CanStack = true,
    Sorting = true,
    MaxStackSize = 5,
    BackpackEnabled = true,
    SortOrder = "None" -- "None" | "Name" | "Rarity" | "ItemType"
}

Settings.Gameplay = {
    Droppable = true,
    DropDistance = 10,
    MouseScroll = true,
}

return Settings

Debug Commands

Built-in chat commands for testing (do not leave unrestricted in production):

  • /inv
  • /add [itemId] [amount?]
  • /addback [itemId] [amount?]
  • /remove [uuid] [amount?]
  • /swap [Hotbar/Storage] [slot] [Hotbar/Storage] [slot]
  • /drop [Hotbar/Storage] [slot] [amount?]
  • /set_limit [n]
  • /set_hotbar_slots [n]
  • /setui [UiType]

Documentation

Full docs: https://zyn-ic.github.io/Stoway/

Basic Load Flow: MermaidLiveView

Cross Compatability Flow: MermaidLiveView

Different Console Modes Flow: MermaidLiveView

Credits

  1. HowToRoblox - sourced a lot of core mechanics from him for backpack/hotbar in my ealier versions.
  2. Knineteen19 - his series helped me get a good understanding for inventory/hotbar, presistance, and stacking.
  3. Avafe - learned about the existance of fusion and react on roblox from this custom hotbar and backpack system.
  4. Illusion for creating a module around roblox's new InputActionService thank you this saved me a lot of time ๐Ÿ˜ญ