What problem does it solve?
It solves the complexity of managing items in a Unity game by providing a consistent way to define items, store them in an inventory, equip them, craft new items, and keep UI synchronized.
Core Features & Use Cases
- ScriptableObject item definitions: Store item data (IDs, stats, icons, economy fields) as editor-friendly assets referenced by ID for save/load.
- Slot-based inventory with stacking: Add/remove quantities, handle overflow when inventory is full, swap slots, and raise change events for UI updates.
- Equipment system with slot filtering: Equip/unequip items per equipment slot and aggregate stat bonuses from currently equipped gear.
- Crafting recipes: Define ingredient lists and resulting items, validate craftability, and perform the ingredient consumption + result insertion.
- UI binding + drag & drop: Bind inventory changes to slot UI rendering and support rearranging/switching slots through drag-and-drop.
- Save/Load integration: Serialize inventory as (itemId, count) pairs and reconstruct runtime references via an item registry on load.
Quick Start
Use the inventory-system skill to implement ScriptableObject-based item definitions, wire them into an ItemRegistry, and then create an Inventory + Equipment + Crafting + UI binding flow that supports save/load by itemId.