Chapter 30 — Equipment System
Part VII — Systems
Slot-based equipment with item catalogs, loadout management, and aggregate effect computation.
Package
Section titled “Package”@ai-rpg-engine/equipment — zero dependencies.
npm install @ai-rpg-engine/equipmentArchitecture
Section titled “Architecture”ItemCatalog → equipItem() → Loadout → computeLoadoutEffects() → LoadoutEffect ↓ ↓ ↓ tag validation 5 slots stat/resource mods auto-inventory + inventory tags + verbsAll operations are immutable — every function returns a new loadout.
Equipment Slots
Section titled “Equipment Slots”| Slot | Purpose |
|---|---|
weapon | Primary offensive item |
armor | Defensive gear |
accessory | Ring, amulet, augment |
tool | Utility item |
trinket | Charm, badge, passive |
Item Definition
Section titled “Item Definition”Each item has:
- id/name/description — identity
- slot — which slot it occupies
- rarity — common, uncommon, rare, legendary
- statModifiers — stat adjustments when equipped
- resourceModifiers — resource adjustments when equipped
- grantedTags — tags active while equipped
- grantedVerbs — verbs unlocked while equipped
- requiredTags — character must have these tags to equip
- provenance — flavor text for item origin
Core Functions
Section titled “Core Functions”createEmptyLoadout()— all slots null, empty inventoryequipItem(loadout, itemId, catalog, characterTags)— equip with validation; auto-moves replaced item to inventoryunequipItem(loadout, slot)— move equipped item to inventoryaddToInventory(loadout, itemId)— add item to carried listremoveFromInventory(loadout, itemId)— remove from carried listcomputeLoadoutEffects(loadout, catalog)— aggregate all equipped item effectsvalidateLoadout(loadout, catalog, characterTags)— verify loadout integritygetAllItems(loadout)— list all equipped + inventory items
Starter Gear
Section titled “Starter Gear”Each of the 7 starter packs exports an itemCatalog with 7 genre-appropriate items spanning all slots and rarities.