Inventory
Inventories store items on characters. Each inventory is a configurable set of slots that can hold item stacks, with support for filtering, locking, stacking, drag-and-drop, temporary inventories, and persistence.
Creating an Inventory Entry
Open the Spark Editor, go to Items > Inventory and click Create New.
Each inventory entry defines:
Slot Count
Number of slots in the inventory (default: 20).
Allow Stacking
Whether items can stack in a single slot.
Auto Stack Similar
Automatically merge matching items into existing stacks when added.
Inventory Type
Optional type reference for custom inventory behavior.
Slot Filters
Individual slots can have filters that restrict what items they accept:
Slot Index
Which slot this filter applies to.
Allowed Item Types
Whitelist of item types this slot accepts (empty = accept all).
Blocked Item Types
Blacklist of item types this slot rejects.
Max Stack Override
Override the item's default max stack size for this slot (0 = use item default).
This lets you create specialized inventory layouts. For example, the first row of slots could only accept potions, or a specific slot could be locked to quest items only.
Setting Up an Inventory Entity
To give a character (or any GameObject) an inventory at runtime, add an InventoryEntity component in the Inspector.
Inventory Entry
The inventory entry to use as a template.
Custom Inventory Id
Optional custom ID. Leave empty for auto-generated.
Auto Create On Start
Automatically create the inventory when the component starts (default: true).
Destroy On Disable
Destroy the inventory when the component is disabled (default: false).
Is Persistent
Save and load inventory contents across sessions (default: false).
Auto Save On Change
Automatically save whenever the inventory changes (default: true). Requires Is Persistent.
Load On Create
Load saved data when creating the inventory (default: true). Requires Is Persistent.
Spark Entity
Reference to the SparkEntity on this character. Required for persistence.
Inventory Slots
Each slot in an inventory is an independent container that holds one item stack.
Slot features:
Locking
Locked slots cannot have items added or removed by the player. Useful for quest items that should not be moved, or reserved slots unlocked later.
Highlighting
Visual highlight state for UI feedback — for example, highlighting valid slots when the player is dragging an item.
Quick Use
Marks a slot for quick-use functionality such as hotbar binding.
Inventory Operations
The inventory supports these operations:
Add
Add an item to the inventory. If stacking is enabled and a matching stack exists, the item merges into it.
Remove
Remove an item or quantity from the inventory.
Move
Move an item between slots within the same inventory.
Transfer
Move an item from one inventory to another.
Split
Split a stack into two separate slots.
Merge
Combine two matching stacks into one slot.
Sort
Sort all items in the inventory.
Clear
Remove all items. Optionally skip locked slots.
Equip
Move an item to an equipment slot.
Unequip
Return an item from an equipment slot to the inventory.
Use
Consume or use an item.
Temporary Inventories
Inventories can be created as temporary with an optional expiration duration. Temporary inventories are useful for timed loot windows, vendor inventories, or any container that should not persist. When a temporary inventory expires, it is automatically cleaned up.
Drag-and-Drop
The inventory system includes built-in drag-and-drop for UI interaction.
Inventory Slot
Inventory Slot
Move item between slots. If the target has a compatible item, stacks merge. If both slots have different items, they swap.
Inventory Slot
Equipment Slot
Equip the item (if compatible).
Equipment Slot
Inventory Slot
Unequip the item back to the inventory.
Inventory Slot
Outside Inventory
Triggers an item drop or deletion confirmation.
The drag-and-drop system validates all operations before executing — it checks slot locks, item type filters, stack limits, and slot acceptance rules. Invalid drops are rejected and the item returns to its source slot.
Persistence
When Is Persistent is enabled on the InventoryEntity, the inventory contents are saved and loaded through Spark's save system.
What is saved per slot:
Slot Index
Which slot the item is in.
Item Entry
Reference to the item database entry.
Quantity
Stack count.
Is Locked
Lock state of the slot.
If Auto Save On Change is enabled, the inventory saves automatically whenever any change occurs. If Load On Create is enabled, saved data is loaded when the inventory is first created.
Last updated
Was this helpful?
