Skip to content

Inventory System API Reference

Complete function and delegate reference for the FWInventorySystem plugin, organized by component and class.


UFWInventoryComponent

BlueprintCallable Functions

Function Parameters Returns Description
AddItem Item: FFWItemInstance bool Adds item to inventory (auto-stacks).
RemoveItem InstanceId: FGuid, Quantity: int32 = 1 bool Removes quantity from stack.
MoveItem InstanceId: FGuid, TargetSlot: int32 bool Moves/swaps item to target slot.
EquipItem InstanceId: FGuid bool Equips item to matching slot.
UnequipItem Slot: EFWEquipmentType bool Returns equipped item to inventory.

BlueprintPure Functions

Function Returns Description
GetItemAt const FFWItemInstance* Item at slot index (nullptr if empty).
FindItemByDefinition const FFWItemInstance* First matching item instance.
GetItemCount int32 Total quantity of matching definition.
HasItem bool Whether inventory has required quantity.
GetCapacity int32 Total slot count.
GetUsedSlots int32 Occupied slot count.
GetFreeSlots int32 Empty slot count.
IsFull bool Whether all slots are occupied.
GetAllItems const TArray<FFWItemInstance>& All items in the inventory.

Delegates

Delegate Signature Description
OnInventoryChanged () Any inventory modification.
OnItemAdded (const FFWItemInstance& Item, int32 SlotIndex) Item added to inventory.
OnItemRemoved (const FFWItemInstance& Item, int32 SlotIndex) Item removed from inventory.
OnItemMoved (const FGuid& InstanceId, int32 FromSlot, int32 ToSlot) Item moved between slots.
OnItemStackChanged (const FGuid& InstanceId, int32 OldQuantity, int32 NewQuantity) Stack count changed.
OnInventoryLoaded () Inventory loaded from serialized data.
OnInventoryFull (const FFWItemInstance& RejectedItem) Item rejected due to full inventory.
OnBankCollectionChanged () Bank contents modified.
OnBankCustomTabChanged (int32 TabIndex) Bank tab configuration changed.
OnBankLoaded () Bank data loaded from serialized data.

UFWEquipmentComponent

BlueprintCallable Functions

Function Parameters Returns Description
Equip Item: FFWItemInstance bool Equips item to slot by type.
Unequip Slot: EFWEquipmentType FFWItemInstance Removes and returns equipped item.
RecalculateStats -- void Forces stat recalculation.

BlueprintPure Functions

Function Returns Description
GetEquippedItem const FFWItemInstance* Item in specified slot.
IsSlotOccupied bool Whether slot has an item.
GetAllSlotTypes TArray<EFWEquipmentType> All available slot types.
GetAllEquippedItems TMap<EFWEquipmentType, FFWItemInstance> All equipped items by slot.
GetTotalStatValue float Sum of stat across all equipment.
GetActiveSetBonuses TArray<UFWItemSetDefinition*> Currently active set bonuses.
GetSetPieceCount int32 Equipped pieces from a set.

Delegates

Delegate Signature Description
OnItemEquipped (EFWEquipmentType Slot, const FFWItemInstance& Item) Item equipped.
OnItemUnequipped (EFWEquipmentType Slot, const FFWItemInstance& Item) Item unequipped.
OnEquipmentStatsChanged () Equipment stat totals changed.
OnSetBonusActivated (const UFWItemSetDefinition* Set, int32 PieceCount) Set bonus threshold reached.
OnSetBonusDeactivated (const UFWItemSetDefinition* Set) Set bonus no longer active.

UFWCraftingComponent

BlueprintCallable Functions

Function Parameters Returns Description
CraftItem Recipe: UFWRecipeDefinition*, Quantity: int32 = 1 bool Crafts item, consuming materials.
LearnRecipe Recipe: UFWRecipeDefinition* void Adds recipe to known list.
UnlearnRecipe Recipe: UFWRecipeDefinition* void Removes recipe from known list.
SetRecipeDatabase Database: UFWRecipeDatabase* void Sets the recipe database.

BlueprintPure Functions

Function Returns Description
CanCraft bool Whether recipe can be crafted.
GetAvailableRecipes TArray<UFWRecipeDefinition*> Craftable recipes with current materials.
GetLearnedRecipes TArray<UFWRecipeDefinition*> All known recipes.
KnowsRecipe bool Whether player knows the recipe.
GetRecipeDatabase UFWRecipeDatabase* Current recipe database asset.

Delegates

Delegate Signature Description
OnCraftingStarted (const UFWRecipeDefinition* Recipe) Crafting initiated.
OnCraftingCompleted (const UFWRecipeDefinition* Recipe, const FFWItemInstance& CraftedItem) Crafting succeeded.
OnCraftingFailed (const UFWRecipeDefinition* Recipe, const FString& Reason) Crafting failed.
OnRecipeLearned (const UFWRecipeDefinition* Recipe) New recipe learned.

UFWVendorComponent

BlueprintCallable Functions

Function Parameters Returns Description
BuyItem BuyerInventory, VendorSlotIndex, Quantity = 1 bool Purchase from vendor.
SellItem SellerInventory, ItemInstanceId, Quantity = 1 bool Sell to vendor.
BuybackItem BuyerInventory, BuybackSlotIndex bool Repurchase from buyback.
RefreshVendorInventory -- void Force restock.

BlueprintPure Functions

Function Returns Description
GetBuyPrice int32 Buy price for vendor item.
GetSellPrice int32 Sell price for player item.
GetVendorInventory const TArray<FFWItemInstance>& Vendor's stock.
GetBuybackInventory const TArray<FFWItemInstance>& Buyback buffer contents.

Delegates

Delegate Signature Description
OnItemPurchased (const FFWItemInstance& Item, int32 Price, int32 Quantity) Item bought from vendor.
OnItemSold (const FFWItemInstance& Item, int32 Price, int32 Quantity) Item sold to vendor.
OnTransactionFailed (const FString& Reason) Transaction rejected.
OnVendorInventoryRefreshed () Vendor restocked.

UFWInventorySerializationLibrary (Static)

BlueprintCallable Static Functions

Function Parameters Returns Description
SerializeInventory Component: UFWInventoryComponent* FString Serializes inventory to JSON.
DeserializeInventory Component: UFWInventoryComponent*, JsonString: FString bool Loads inventory from JSON.
SerializeEquipment Component: UFWEquipmentComponent* FString Serializes equipment to JSON.
DeserializeEquipment Component: UFWEquipmentComponent*, JsonString: FString bool Loads equipment from JSON.
SerializeItemInstance Item: FFWItemInstance FString Serializes single item to JSON.
DeserializeItemInstance JsonString: FString FFWItemInstance Deserializes single item from JSON.
ValidateSerializedData JsonString: FString bool Validates JSON structure.

Data Flow Diagram

Player Action (UI / Gameplay)
    |
    v
UFWInventoryComponent
    |
    +--> AddItem / RemoveItem / MoveItem
    |       |
    |       +--> FFWItemArray (FFastArraySerializer)
    |       |       |
    |       |       +--> Delta replication to clients
    |       |
    |       +--> Delegates fire (OnItemAdded, etc.)
    |
    +--> EquipItem
            |
            +--> UFWEquipmentComponent::Equip()
                    |
                    +--> Apply stats via GAS
                    +--> Check set bonuses
                    +--> OnItemEquipped fires

UFWInventorySerializationLibrary
    |
    +--> SerializeInventory() --> JSON string --> Database
    +--> DeserializeInventory() <-- JSON string <-- Database