Debug Chat Commands

In-game testing commands for StowayServerV1.2

⚠️ Production Warning

Remove Debug/ChatCommands.luau before shipping! These commands bypass normal validation and are intended for testing only.

Inventory Display

📋

/inv

Display current inventory state

Shows weight, settings, equipped UUID, hotbar slots, and storage contents with full UUIDs.

Example Output
═══════════════════════════════════════════════════
INVENTORY for PlayerName
───────────────────────────────────────────────────
Weight: 7 / 15 (0 = Infinite)
CanStack: true | MaxStack: 5
Equipped UUID: abc-123-def
───────────────────────────────────────────────────
HOTBAR (max 9):
  [1] Sword x1 (UUID:abc-123-def)
  [2] (empty)
  [3] Potion x5 (UUID:xyz-456-ghi)
STORAGE: #1
  [1] Wood x5 (UUID:jkl-789-mno)
═══════════════════════════════════════════════════

/help

Show all available commands

Item Operations

Command Usage Description
/add /add Sword 3 Add item to hotbar first, then storage. Amount defaults to 1.
/addback /addback Potion 5 Add directly to backpack (bypasses hotbar).
/remove /remove abc-123 2 Remove amount from item by UUID. Omit amount to remove all.
/clear /clear Remove ALL items from inventory.
Examples
/add Sword           -- Adds 1 Sword to first empty hotbar slot
/add Potion 10       -- Adds 10 Potions (stacks across slots if needed)
/addback Wood 5      -- Adds 5 Wood directly to storage
/remove abc-123-def  -- Removes entire stack with that UUID
/remove abc-123-def 2 -- Removes 2 from that stack

Slot Operations

Command Usage Description
/swap /swap Hotbar 1 Storage 2 Swap items between any two slots.
/stack /stack Hotbar 1 Hotbar 2 Merge two stacks (rarely needed - add auto-stacks).
/equip /equip 3 Equip item from hotbar slot. Also accepts /equip Storage 1.
/unequip /unequip Unequip currently equipped item.
/drop /drop Hotbar 1 Drop item from slot into world.
Slot Types
Hotbar  -- Slots 1-9 (configurable via MaxHotbarSlots)
Storage -- Dynamic array, indices start at 1

Settings (Per-Player)

Modify player-specific settings at runtime

Command Usage Description
/toggle_stack /toggle_stack Toggle CanStack on/off for this player.
/toggle_limit /toggle_limit Toggle Limit between 0 (infinite) and 15.
/set_limit /set_limit 50 Set weight limit. 0 = infinite.
/set_max_stack /set_max_stack 10 Set max items per stack.
/set_hotbar_slots /set_hotbar_slots 5 Set number of hotbar slots.
Testing Scenarios
-- Test stacking disabled
/toggle_stack
/add Sword 3        -- Creates 3 separate stacks

-- Test infinite inventory
/set_limit 0
/add Wood 100       -- No weight rejection

-- Test small hotbar
/set_hotbar_slots 3
/add Sword 5        -- 3 go to hotbar, 2 to storage

UI Reload

Dynamically switch UI types and trigger full client reload

🔄

/setui

Change UI type and reload client interface

Changes the player's UI type setting and triggers a full client reload with fresh inventory data. This allows you to swap between different UI implementations (e.g., Default → Mod) on the fly.

Usage
/setui [uitype]

Example:
/setui Default     -- Reload with Default UI
/setui Mod         -- Reload with Mod UI (if configured)
📝 Configuration Required

UI types must be defined in Settings.DifferentUIs:

Settings.luau
Settings.DifferentUIs = {
    Default = {
        FolderName = "StowayGui",
        GuiName = "Stoway",
        HookPresetName = "DefaultHooks"
    },
    Mod = {
        FolderName = "ModStowayGui",
        GuiName = "ModStoway",
        HookPresetName = "ModHooks"
    }
}
How It Works
1. Sets player's Settings.UiType to specified type
2. Calls InventoryService.ReloadClient() with fresh data
3. Client destroys current UI and scopes
4. Client loads new GUI folder from configuration
5. Client rebuilds hotbar/storage with new hooks
6. Client rebinds all keybindings

✅ Use Case: Testing different UI themes or mod interfaces
✅ Maintains inventory state during reload
✅ Applies new hooks and visual styles