► 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
Copy Server Code
Copy the entire src/server/StowayServerV1_2 folder to your ServerScriptService
ServerScriptService/ - StowayServerV1_2/ - init.luau - Core/ - Operations/ - Replication/ - Utils/
Copy Client Code
Copy the entire src/client/StowayClientv1_2 folder to your StarterPlayerScripts
StarterPlayer/ - StarterPlayerScripts/ - StowayClientv1_2/ - init.luau - CoreState/ - Input/ - Hook/ - Operations/
Copy Shared Code
Copy the shared modules to ReplicatedStorage
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
Create GUI Folder
In ReplicatedStorage, create a folder named Gui with your interface:
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
-- 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
Server Initialization
Add this to a ServerScript (e.g., ModuleScript in ServerScriptService):
-- ServerScriptService/Main.luau
local InventoryService = require(
game.ServerScriptService.StowayServerV1_2
)
-- Initialize the system
InventoryService.Init()
print("[Stoway] Inventory system initialized!")
Client Initialization
Client starts automatically via StarterPlayerScripts entry point
-- 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
-- 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
ServerStorage.Tools with the matching name before adding it to inventories.
Next Steps
Where to go from here