► Quick Start Guide

Get Stoway running in 5 minutes. This guide covers installation, basic configuration, and your first inventory operation.

🎥

Video Walkthrough

Prefer watching? Follow along with this visual guide

Step 1: Copy the Files

Add Stoway to your Roblox project

1

Copy Server Code

Copy the entire src/server/StowayServerV1_2 folder to your ServerScriptService

Expected Location Tree
ServerScriptService/
- StowayServerV1_2/
-   init.luau
-   Core/
-   Operations/
-   Replication/
-   Utils/
2

Copy Client Code

Copy the entire src/client/StowayClientv1_2 folder to your StarterPlayerScripts

Expected Location Tree
StarterPlayer/
- StarterPlayerScripts/
-   StowayClientv1_2/
-     init.luau
-   CoreState/
-   Input/
-   Hook/
-   Operations/
3

Copy Shared Code

Copy the shared modules to ReplicatedStorage

Required Files Tree
ReplicatedStorage/
- Shared/
-   Settings.luau      # Configuration
-   Binds.luau         # Input bindings
-   RarityValues.luau  # Optional: item rarities
- Packages/
-   Fusion             # UI framework
-   IllusionIAS        # Input system

Step 2: Set Up GUI Templates

Create your inventory interface structure

4

Create GUI Folder

In ReplicatedStorage, create a folder named Gui with your interface:

GUI Structure Tree
ReplicatedStorage/
- Gui/
-   StowayGui/
-     Stoway              # Main ScreenGui
-       Backpack          # Storage container
-         ScrollingFrame  # Dynamic slots
-         SearchFilter    # Optional search
-         Weight          # Optional weight label
-       Hotbar            # Fixed slots (1-9)
-     Slot/               # Slot template folder
-       template          # Slot template Frame
-         slotbutton      # ImageButton for item
-         stackcount      # Amount label
-         slotnumber      # Keybind display
-         selecticon      # Equipped indicator
-         rarityframe     # Rarity border

See Create GUI Skins for detailed template requirements.

Step 3: Configure Settings

Edit src/shared/Settings.luau for your game

Essential Settings Luau
-- ReplicatedStorage/Shared/Settings.luau

-- Hotbar slot count
Settings.Hotbar = {
    MaxSlots = 9,  -- Change to your preference
}

-- Inventory capacity
Settings.Storage = {
    Limit = 15,       -- 0 = unlimited
    CanStack = true,
    MaxStackSize = 5,
}

-- UI Configuration (matches GUI folder names)
Settings.DifferentUIs = {
    Default = {
        FolderName = "StowayGui",
        GuiName = "Stoway",
        HookPresetName = "DefaultHooks"
    }
}

Step 4: Initialize the System

Start Stoway in your game

5

Server Initialization

Add this to a ServerScript (e.g., ModuleScript in ServerScriptService):

Server Setup Luau
-- ServerScriptService/Main.luau

local InventoryService = require(
    game.ServerScriptService.StowayServerV1_2
)

-- Initialize the system
InventoryService.Init()

print("[Stoway] Inventory system initialized!")
6

Client Initialization

Client starts automatically via StarterPlayerScripts entry point

Client Entry Luau
-- StarterPlayerScripts/StowayClientv1_2/init.luau

local ClientInventoryService = require(script)

-- Initialize client (called automatically)
ClientInventoryService.Init()

Step 5: Add Your First Item

Test the system with an item

Give Item Script Luau
-- ServerScriptService/GiveItems.luau

local InventoryService = require(
    game.ServerScriptService.StowayServerV1_2
)

-- Example: Give a tool to a player
local player = game.Players.LocalPlayer  -- Use in a RemoteFunction context

-- Add item to player's inventory
local result = InventoryService.AddItem(
    player,
    "Sword",      -- Item ID (must exist in ServerStorage.Tools)
    1,             -- Amount
    nil,            -- Optional metadata
    true            -- Replicate to client
)

if result.success then
    print("Added item successfully!")
else
    warn("Failed to add item: " .. result.reason)
end
💡 Tip: Ensure your item exists in ServerStorage.Tools with the matching name before adding it to inventories.

Next Steps

Where to go from here