Changelog
2.15.44
[added] Dedicated (optional) Loot Handler that can handle received loot on client and server.
[added] Dynamic Attributes will support level-based curve tables to update their values.
[added] Dynamic Attribute ViewModel to be used in conjunction with the equivalent List version.
2.12.44 - 11/12/2025
[added] Item prerequisites that can be applied when the item is being added to the inventory or an equipment state is being set.
[added] Support for Customizable Objects (Mutable) for Equipment State Representations.
[added] Preliminary checks for pickups, before adding them to inventories. Includes stack change and synchronization for pickup quantities.
[added] Introduced a new specialized base widget for grid-based containers.
[added] Offhand placement fragment including a fast-access cache in the Equipment Manager.
[added] Loot persistency policies used by loot generation (none, requester, source).
[improvement] Removed timer from Equipment Manager used to wait for a controller. Added broadcasts for avatars and owners to the Inventory Subsystem.
[improvement] Helper function to move equipment items between storage and equipment containers (i.e. "right click equip").
[improvement] Introduced an option to create a brush based on the icon, for the User Interface ViewModel.
[improvement] Promoted spatial layouts and linked containers from experimental to beta.
[improvement] Consumable fragment is more deliberate about its use mode, supporting unlimited and single use directly.
[fix] Get Inventory from the Function Library will be able to navigate Pawn/Player States/Controllers for inventory search.
[fix] Ensured that items with equipment without a presence for their initial state are always initialized.
[fix] Ensured that the item is removed from the inventory when the last item stack is consumed.
2.6.36 - 17/11/2025
[added] Key fragment with accompanying unlock operation class.
[improvement] Removed the order requirement for container and equipment fragments.
[improvement] Equipment Manager is compatible with inventory avatar changes during gameplay.
[build] Added support to Unreal Engine 5.7, removed Unreal Engine 5.4 support
2.5.33 - 13/11/2025
[added] "InventoryInitializationWatcherInterface" to track final inventory states on an owner or avatar.
[added] "EquipmentAnimationInterface" allows Equipment Animation Blueprints to receive the equipment and avatar.
[improvement] Consolidated interface names to be categorized in a better hierarchy.
[fix] Ensure that presence is updated when state changes, so sockets are updated.
[fix] Ensure that all active equipment presences are removed when equipment manager ends play.
2.3.30 - 27/09/2025
[added] Encumbrance Gameplay Effect for convenience.
[improvement] Gameplay Effect fragment can interact with the Stack fragment.
[improvement] Ensure the Weight fragment always synchronizes with new stack sizes.
[improvement] Clean-up the Wealth Gameplay Effect, so it can be properly extended.
[improvement] Gameplay Debugger also allows displaying item IDs.
[improvement] Reviewed equipment state callback functions to avoid potential race conditions.
[fix] Replication for Dynamic Attributes is kept during inventory transfers.
[fix] Items fully merged will be deleted instead of dropped.
[fix] The drag and drop operation will correctly trigger a swap for items of same type, when the target item has a full stack.
[fix] Ensured that swap logic will always sanitize position types and prioritize swapped items before finding alternative positions.
2.2.21 - 19/09/2025
[added] ViewModel exposing Inventory Attributes, such as Encumbrance and Wealth.
[improvement] Modified Equipment Load callback to make it more robust for precompiled libraries plus deep hierarchies.
[fix] Send Inventory Event notify won't trigger ensure assertion on editor.
[fix] Added platform allowlist for the test module.
[fix] Ensured that dynamic magnitudes are always applied, regardless of a previous application that happened before.
[fix] Changed direct call to interface call in NinjaInventoryDropZoneWidget.
2.1.16 - 10/09/2025
[improvement] Marked container function GetTotalSlots as virtual.
[improvement] Added an option to still execute item actions, even when an ability animation is missing.
[improvement] The inventory Subsystem will support registering inventories using either the avatar or owner.
[improvement] Added a GetInventoryAnimInstance function in the Equipment Interface, to support realtime retargeting scenarios.
[fix] Ensured that the equipment manager queries equipment instances, not items.
[fix] Reintroduced missing blueprint attributes for inventory item, equipment and components.
[fix] Corrected the logic to determine the attach socket for the equipment actor, so it correctly addresses optional overrides.
2.1.9 - 01/09/2025
[added] Introduced a network proxy and authorized inventory checkers.
[improvement] Exposed dedicated transfer function for inventory items.
[improvement] Updated arrays with raw object pointers to use TObjectPtr instead.
[improvement] Simplified the ASC binding flow to remove the confusing "bShouldFailFromASC" flag.
[improvement] Modified fragment initialization signature to avoid unnecessary copying of the initial memory struct.
[improvement] Automatic server RPC management for item and container functions.
[improvement] Tag-based visibility for Equipment Actors.
[fix] Build issue from FInventoryItemContainerPlacementOperation.
[fix] Corrected the description to match the purpose of the Drag and Drop ViewModel.
[fix] Added missing call to "Super" in the Inventory View Model resolver.
2.0.0 - 22/08/2025
[major] Moved all inventory and fragment delegates to the Inventory Manager.
[major] Updated Blueprint APIs to use FInstancedStruct (replaces TInstancedStruct in select signatures).
[major] Converted mostly the entire UI to View Models + Inventory Resolver.
[major] Container Placement: memory-driven initialization with salvage; deterministic container/position selection.
[major] Container Placement: new PlacementInitialized event; refined ContainerChanged/PositionChanged gating.
[major] Container Placement: accurate payloads (previous/current container & position); swap-aware add/move.
[major] Linked Container: primary and linked mirroring (equipment single-slot semantics).
[major] Linked Container: redirect when placed in linked first; move owner to primary, then mirror.
[major] Nested Container: auto-create on activation; lifecycle tied to owner; auto-remove on owner removal.
[added] Allowed build platforms: Linux and Mac.
[added] Spatial layout: PerCell and BitSetRows fit algorithms; custom hook via TestWithCustomAlgorithm (C++).
[added] Occupancy Masks with rotation support and in-editor mask UI (paint/mirror/rotate/validate).
[added] Drag & Drop: UNinjaInventoryDropZoneWidget + UNinjaInventoryDragDropOperation integration for world/container drops.
[added] Automated test suite covering placement, events, swaps, nested/linked, eviction, container removal.
[improvement] Container Placement: single graceful retry path (TryPlaceWithRetry) for transient failures.
[improvement] Container Placement: ResolveById for authoritative container instance resolution.
[improvement] Linked Container: listens to item + container events; clears mirror on container removal/unequip.
[improvement] Consume ability: expanded logs/comments to clarify cancellation causes.
[improvement] Attribute Set: replaced ensure with check/warning for Equipment Managers.
[improvement] Test utilities consolidated into shared event listeners and helpers.
[fix] Crash when removing items without stacks fragments.
[fix] Consume from gameplay events condition corrected.
[fix] Equipment State ability now ends correctly when no animation is found.
[fix] Linked Container: prevented duplicate subscriptions and stale mirror memory on deactivate.
[fix] Nested Container: prevented duplicate creation on re-activation or load.
[fix] Crash when loading inventory with certain stack values.
1.3.17 - 30/12/2024
[added] Completed "Load" functionality.
[added] New Scene Selector (`EquipmentSceneComponentProvider`) based on an interface, for advanced logic.
[improvement] Added the source to pickup actors.
[improvement] Exposed consumable objects in the Consumable Ability.
[fix] Fixed `IsSuccessful` in the `FInventoryItemContext`.
1.1.14 - 16/11/2024
[added] Support for Unreal Engine 5.5.
[improvement] Added the appropriate Editor Category for all Inventory Assets in the Content Browser.
[improvement] Improved the logic for the Inventory Animation Ability activation check.
[fix] Fixed the Equipment State Changed broadcast not being called.
1.0.11 - 08/09/2024
[improvement] Added a default implementation to the Equipment Actor Interface so it can use the Equipment Receiver Component.
1.0.10 - 25/08/2024
[improvement] Organizing the code to eventually auto-generate Mesh Components for slots.
[improvement] Added a component that enables direct integration with Ninja Combat.
[improvement] Added a function that can assume the container from an item in safe scenarios.
[fix] Fixed initial memories for Level and Quality fragments.
[fix] Fixed filters for Data Tables.
[fix] Fixed a crash while checking for empty Inventory Avatars.
[fix] Fixed a corner-case of adding items to the first position in a container, without a pre-set container and multiple stacks.
[fix] Fixed the helper function that checks the result of an item context and provides a path.
1.0.0 - 12/08/2024
First release for Unreal Engine 5.3 and 5.4.
Last modified: 13 December 2025