Quick Setup Guide – Inventory System
This guide walks you through the minimal steps to get the Inventory System running in your Unreal Engine project.
1. Add the Inventory Component to an Actor
- Open your actor in the editor.
- Add a
UInventoryComponentBasecomponent. - Configure the Inventory Size property (number of slots).
cpp
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Inventory")
UInventoryComponentBase* InventoryComponent;2. Create Inventory Items
You can use either Authored Items (shared assets) or Instanced Items (unique per actor).
- Authored Items: Create a
UInventoryObjectBaseasset and assign it directly. - Instanced Items: Add an Item Component to the actor and set
bUseInstancedItem = true.
cpp
UFUNCTION(BlueprintPure, Category = "Item")
UInventoryObjectBase* GetItem() const { return bUseInstancedItem ? InstancedItem : Item; }3. Add Items to Inventory
Use the AddItem function on your inventory component.
cpp
int32 RemainingAmount;
InventoryComponent->AddItem(MyItemObject, 5, RemainingAmount);4. Remove or Use Items
- Remove:
cpp
int32 RemainingAmount;
InventoryComponent->RemoveItem(MyItemObject, 2, RemainingAmount);- Use:
cpp
InventoryComponent->UseItem(MyItemObject, 1);- You can also perform these actions by index:
cpp
InventoryComponent->UseItemAtIndex(0, 1, true); // bUseLocalIndex = true5. Transfer Items Between Inventories
cpp
InventoryComponent->TransferItem(MyItemObject, 1, TargetInventoryComponent);6. Drop Items
cpp
InventoryComponent->DropItem(MyItemObject, 1);- Supports dropping by object or by slot index.
- Triggers the item’s
OnDropfunction if implemented.
7. Hooks & Delegates
Blueprint Events:
K2_OnItemAddedK2_OnItemRemoved
Delegates for UI / Event-Driven Updates:
OnItemChanged_DelegateOnItemRemovedFromInventoryDelegateOnItemAddedToInventoryDelegate