Changelog
3.1.11
[fix] Items dropped in the linked container weren't updating the primary one.
3.1.10 - 30/06/2026
[change] Added static check to ensure correct fragment types are being searched for.
[change] Updated linked containers to make sure they synchronize on all events.
[change] Updated spatial layouts to better handle wrong placement scenarios and anchor sensitivity.
[fix] Crash from Async Drop Fragment, due to incorrect context being captured in lambda.
[fix] Widget names in Spatial Container Widget were leading do duplicate widgets and incorrect behavior.
[build] Added support for Unreal Engine 5.8, removed support for Unreal Engine 5.5
[deprecation] Common UI Widgets will be removed. There are no meaningful features these widgets, UMG counterparts can be used with/without Common UI.
3.1.6 - 18/05/2026
[change] Better handling deferred initialization of containers.
[fix] Ensured that Loot updates from transfer are broadcast to the player client.
[fix] Improved UI clean-up for items changing the container.
[fix] Reviewed and fixed odd states when inventory is loaded from a client.
[fix] Ensured that singleton ViewModels are reset for new pawns.
[fix] Function CheckAndResetBlockedMergeFromMemory changed to Blueprint Callable.
[fix] Corrected race condition leading to memory issues.
3.0.0 - 17/04/2026
[major] Refactored the base Pickup actor for easier integration with Interaction.
[major] Inventory supports loading save files from clients, which are sent to the server and become authoritative.
[major] Improved Loot Generation to use a dedicated Default Loot entry, extending from the Default Item.
[new] A vendor component that provides a gameplay API to buy and sell items to a non-inventory, catalog-based actor.
[new] Firearm fragment, integrated with Combat Firearms.
[new] Global Stack observers, available from the Subsystem and Function Library. Useful for the incoming hotbar module.
[new] Option to set a range for random stack sizes, when setting default memories (including loot).
[new] Option to generate pickup contents from a loot table.
[new] Option to have gameplay-only equipment instances.
[new] Option to load inventory data from a network client.
[new] UI Subsystem for singleton ViewModels.
[change] Inventory Items can be filtered before serialization.
[change] Inventory will notify Player Controllers and HUD classes during initialization, via IInventoryInitializationWatcherInterface.
[change] Moved Gameplay Debugger to Gameplay module, so it can be used in packaged builds.
[change] Added a new "AddItems" function to the Inventory Manager.
[change] Added extra methods to Loot ViewModel for individual loot transfers.
[change] Organized the Animation Ability class, so the Combat Animation Task (or other animation tasks) can be used.
[change] Separated the main Inventory Manager implementation file into domain-based ones.
[fix] Removed const from the Loot Handler.
[fix] Changed raw pointers in FInventoryContainerPosition to TObjectPtr.
[fix] Ensured that loot outcomes are properly handled by standalone "clients".
[fix] Ensured that transferred loot is properly removed from the source over network.
[fix] Consume ability has a gameplay event trigger set by default.
2.16.50 - 12/01/2026
[new] Dedicated (optional) Loot Handler that can handle received loot on client and server.
[new] Dynamic Attributes will support level-based curve tables to update their values.
[new] Dynamic Attribute ViewModel to be used in conjunction with the equivalent List version.
[new] Interface-based Loot Table provider, which allow instance-editable tables.
[new] Helper function to provide the equipment actor for an item.
[change] New event that notifies when an item has been fully initialized.
[change] Organized/standardized all function categories.
[change] Added owner tags to the Chooser Animation Criteria.
[fix] Connected the loot handler, routing the correct methods to server and client.
[fix] Ensured that animation layers are re-linked if an animation instance is re-instantiated.
[fix] Corrected order in which equipment instances add GAS-related objects, so a potential actor causer is ready.
[fix] Ensured that loaded items register for lifecycle updates so they can be added to the internal list.
[fix] Corrected condition for items in queue check.
2.12.44 - 11/12/2025
[new] Item prerequisites that can be applied when the item is being added to the inventory or an equipment state is being set.
[new] Support for Customizable Objects (Mutable) for Equipment State Representations.
[new] Preliminary checks for pickups, before adding them to inventories. Includes stack change and synchronization for pickup quantities.
[new] Introduced a new specialized base widget for grid-based containers.
[new] Offhand placement fragment including a fast-access cache in the Equipment Manager.
[new] Loot persistency policies used by loot generation (none, requester, source).
[change] Removed timer from Equipment Manager used to wait for a controller. Added broadcasts for avatars and owners to the Inventory Subsystem.
[change] Helper function to move equipment items between storage and equipment containers (i.e. "right click equip").
[change] Introduced an option to create a brush based on the icon, for the User Interface ViewModel.
[change] Promoted spatial layouts and linked containers from experimental to beta.
[change] 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
[new] Key fragment with accompanying unlock operation class.
[change] Removed the order requirement for container and equipment fragments.
[change] 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
[new] "InventoryInitializationWatcherInterface" to track final inventory states on an owner or avatar.
[new] "EquipmentAnimationInterface" allows Equipment Animation Blueprints to receive the equipment and avatar.
[change] 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
[new] Encumbrance Gameplay Effect for convenience.
[change] Gameplay Effect fragment can interact with the Stack fragment.
[change] Ensure the Weight fragment always synchronizes with new stack sizes.
[change] Clean-up the Wealth Gameplay Effect, so it can be properly extended.
[change] Gameplay Debugger also allows displaying item IDs.
[change] 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
[new] ViewModel exposing Inventory Attributes, such as Encumbrance and Wealth.
[change] 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
[change] Marked container function GetTotalSlots as virtual.
[change] Added an option to still execute item actions, even when an ability animation is missing.
[change] The inventory Subsystem will support registering inventories using either the avatar or owner.
[change] 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
[new] Introduced a network proxy and authorized inventory checkers.
[change] Exposed dedicated transfer function for inventory items.
[change] Updated arrays with raw object pointers to use TObjectPtr instead.
[change] Simplified the ASC binding flow to remove the confusing "bShouldFailFromASC" flag.
[change] Modified fragment initialization signature to avoid unnecessary copying of the initial memory struct.
[change] Automatic server RPC management for item and container functions.
[change] 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.
[new] Allowed build platforms: Linux and Mac.
[new] Spatial layout: PerCell and BitSetRows fit algorithms; custom hook via TestWithCustomAlgorithm (C++).
[new] Occupancy Masks with rotation support and in-editor mask UI (paint/mirror/rotate/validate).
[new] Drag & Drop: UNinjaInventoryDropZoneWidget + UNinjaInventoryDragDropOperation integration for world/container drops.
[new] Automated test suite covering placement, events, swaps, nested/linked, eviction, container removal.
[change] Container Placement: single graceful retry path (TryPlaceWithRetry) for transient failures.
[change] Container Placement: ResolveById for authoritative container instance resolution.
[change] Linked Container: listens to item + container events; clears mirror on container removal/unequip.
[change] Consume ability: expanded logs/comments to clarify cancellation causes.
[change] Attribute Set: replaced ensure with check/warning for Equipment Managers.
[change] 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
[new] Completed "Load" functionality.
[new] New Scene Selector (`EquipmentSceneComponentProvider`) based on an interface, for advanced logic.
[change] Added the source to pickup actors.
[change] Exposed consumable objects in the Consumable Ability.
[fix] Fixed `IsSuccessful` in the `FInventoryItemContext`.
1.1.14 - 16/11/2024
[new] Support for Unreal Engine 5.5.
[change] Added the appropriate Editor Category for all Inventory Assets in the Content Browser.
[change] 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
[change] Added a default implementation to the Equipment Actor Interface so it can use the Equipment Receiver Component.
1.0.10 - 25/08/2024
[change] Organizing the code to eventually auto-generate Mesh Components for slots.
[change] Added a component that enables direct integration with Ninja Combat.
[change] 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.
07 July 2026