FWInventorySystem Plugin¶
Version: 1.0 | Module: FWInventorySystem | Type: Runtime
A comprehensive inventory and equipment system for Unreal Engine 5 featuring item definitions as data assets, instanced items with RNG affixes, equipment slot management, crafting, vendor NPCs, bank storage, and full JSON serialization for database persistence. Built on FFastArraySerializer for bandwidth-efficient delta replication.
Feature Overview¶
| Feature | Description |
|---|---|
| Inventory Management | Add, remove, move, and stack items with delta-replicated arrays |
| Equipment System | Typed equipment slots with automatic stat application |
| Item Definitions | PrimaryDataAsset-based definitions with full property support |
| Item Instances | Runtime instances with unique IDs, durability, affixes, and augments |
| RNG Affix System | Weighted affix pools with min/max ranges, exclusion tags, and item level requirements |
| Augmentation | Multi-stage item augmentation with success/failure states |
| Crafting | Recipe-based crafting with material requirements and skill integration |
| Vendor System | NPC vendor component with buy/sell/buyback functionality |
| Bank Storage | Multi-tab bank with personal and guild bank support |
| Serialization | JSON save/load library for database persistence |
| Item Sets | Set bonus definitions with tiered thresholds |
| Perks | Passive perk system tied to item properties |
Dependencies¶
| Dependency | Type | Notes |
|---|---|---|
GameplayAbilities |
Required | Used for stat application via Gameplay Effects and Attribute Sets. |
FWSkillSystem |
Optional | Enables skill-gated crafting recipes and item level requirements. |
GameplayAbilities Setup
FWInventorySystem uses GAS for applying equipment stats. Ensure your project has GameplayAbilities enabled and your characters have an AbilitySystemComponent. Equipment stats are applied as infinite-duration Gameplay Effects.
Plugin Architecture¶
FWInventorySystem
├── Components/
│ ├── UFWInventoryComponent // Core inventory with replication
│ ├── UFWEquipmentComponent // Equipment slot management
│ ├── UFWCraftingComponent // Recipe-based crafting
│ └── UFWVendorComponent // NPC vendor functionality
├── Data/
│ ├── UFWItemDefinition // PrimaryDataAsset for items
│ ├── UFWItemSetDefinition // Set bonus definitions
│ ├── UFWPerkDefinition // Passive perk data
│ ├── UFWRecipeDefinition // Crafting recipe data
│ └── UFWRecipeDatabase // Recipe collection asset
├── Types/
│ ├── FWInventoryTypes.h // Enums and structs
│ └── FFWItemInstance // Runtime item instance
├── Serialization/
│ └── UFWInventorySerializationLibrary // JSON save/load
└── Replication/
└── FFWItemArray // FFastArraySerializer wrapper
Quick Start¶
1. Enable the Plugin¶
Enable FWInventorySystem and GameplayAbilities in your .uproject file or Plugin Manager.
2. Create an Item Definition¶
- Right-click in the Content Browser.
- Select Miscellaneous > Data Asset.
- Choose
FWItemDefinitionas the class. - Configure item properties (type, quality, stats, affix pool).
3. Add Inventory and Equipment Components¶
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Inventory")
TObjectPtr<UFWInventoryComponent> Inventory;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Inventory")
TObjectPtr<UFWEquipmentComponent> Equipment;
4. Add an Item¶
UFWItemDefinition* SwordDef = LoadObject<UFWItemDefinition>(
nullptr, TEXT("/Game/Items/Weapons/DA_IronSword"));
FFWItemInstance NewSword;
NewSword.Definition = SwordDef;
NewSword.Quantity = 1;
NewSword.InstanceId = FGuid::NewGuid();
Inventory->AddItem(NewSword);
File Reference¶
| Page | Description |
|---|---|
| Inventory Component | Core inventory management with replication |
| Equipment Component | Equipment slot system and stat application |
| Crafting Component | Recipe-based crafting system |
| Vendor Component | NPC vendor buy/sell functionality |
| Types Reference | Enums, structs, and item instance details |
| API Reference | Complete function and delegate reference |
| Configuration | Plugin settings and project configuration |
| Events and Delegates | All inventory events and delegate signatures |
| Data Assets | Item definitions, sets, perks, and recipes |
| Tutorial: Creating a Loot System | Step-by-step implementation guide |
Compatibility¶
| Engine Version | Status |
|---|---|
| UE 5.4+ | Supported |
| UE 5.3 | Supported |
| UE 5.2 and below | Not tested |
Replication
FFWItemArray uses FFastArraySerializer for delta replication. This requires the owning actor to be replicated. Ensure your character or player state has bReplicates = true and that the inventory component is registered as a replicated subobject.