⚡ Headless Backend Architecture

Stoway Docs

A production-ready, server-authoritative inventory system for Roblox with O(1) lookups, full persistence support, and cross-platform input (mouse, touch, gamepad).

Key Concepts

Understand the core ideas behind Stoway

🔒

Server-Authoritative

All operations validated server-side. Single RemoteEvent with per-player operation locking prevents exploit spam.

Learn more →
🔗

Context-Based Input

IllusionIAS contexts prevent bind conflicts. Same keys work differently in Combat vs Inventory mode.

Learn more →
📚

Hooks System

Client-side customization without modifying core code. Sound effects, animations, analytics via event hooks.

Learn more →
🎨

GUI Skins

Template-based UI system. Multiple skins with different layouts, all using the same slot factory.

Learn more →

Settings Layers

Global defaults in Settings.luau, per-player overrides in state.Settings. Runtime modifiable.

Learn more →
🎮

Console Support

Gamepad-aware UI with selection states, visual mode indicators, and hybrid input switching.

Learn more →

Project Structure

Quick reference to source locations

Server Code Location
src/server/StowayServerV1_2/
- init.luau              # Entry point & API
- Core/
-   InventoryState.luau  # Per-player data container
-   SlotManager.luau     # Hotbar/Storage slot logic
-   LimitChecker.luau    # Weight validation
- Operations/
-   AddOperation.luau    # Add items to inventory
-   RemoveOperation.luau # Remove items
-   SwapOperation.luau   # Swap/move items
-   EquipOperation.luau  # Equip/Unequip items
-   DropOperation.luau   # Drop to world
- Replication/           # Delta updates to clients
- Utils/                 # UUID, MetadataParser, etc.
- Debug/                 # Chat commands
Client Code Location
src/client/StowayClientv1_2/
- init.luau              # Entry point & UI builder
- CoreState/
-   InventoryStore.luau  # Fusion reactive state
- Input/
-   InputManager.luau    # Context-based binds
-   InteractionManager.luau # Mouse/Gamepad switching
-   ConsoleModeManager.luau # Combat/Inventory modes
-   SelectionManager.luau   # Selection state machine
-   ConsoleDropUI.luau  # Drop amount UI
- Hook/
-   HookManager.luau     # Event hook system
- Operations/
-   InventoryController.luau # Client operations
- DragFunctions/
-   DragHandler.luau     # Drag-and-drop logic
- SlotCreation/
-   SlotFactory.luau     # Slot UI component
- NetworkFunctions/
-   NetworkHandler.luau  # Server sync