Skip to content


The one that fixes many, many bugs.

Arc Inventory 2.3.4 supports 5.2, 5.3, and 5.4.


  • Improved the replication of slots
  • Removed the NAMED_ITEM_SLOT concept, and improved equality checks between item slots
  • Re-Added the "Default Item Stack Class" to the Developer Settings. This will be the Item Stack Class chosen when generating items by default. It can be overriden in many places
  • Improved Query Functions in the Item Stack Base
  • Added Query modes to match Item Definitions
  • Added "Default Item Stack" for Item Definitions to the ModularBPFL. This lets you get an item stack that is not replicated that can be used as a default version of that itemstack, similar to a CDO.
  • Added helper methods for quickly adding items to inventory.
  • Added "Exact Item Stack" inventory queries. This is mostly useful for finding all slots an item is in.
  • Added the ability to specify the owner of a newly generated ItemStack in UArcInventoryModularBPFL::QuickGenerateModularItem, saving an object duplication if you provide the owner of the inventory the item will be placed into if the item is to be instantly placed into an inventory.
  • Added the ability to get items from the inventory even if the item is pending kill


  • Fixed Modular Inventory calling the incorrect processor's OnRep functions when replicating
  • Fixed Processors RPCs not working
  • Fixed various instances of Processors not being resolved correctly when loading (Instanced Subobject woes)
  • Improved Pre-Process Item Swap, and used it in more places. You can now take complete control over item swapping for specific items in a processor
  • Added bulk item slot creation and removal, which invokes the Inventory Update event once for all the slots added in bulk
  • Batched Callbacks during slot replication so that they all happen at the end of the replication frame. Ensure we only call one of each callback.
  • Added an optional context tag for RemoveAllItemsFromInventory
  • Cleaned up some issues around Item Slot Generations (NOTE: Item Slot Generations will be removed in a future version)
  • Added verbose inventory logging around adding and removing items to the inventory.
  • Added a "Contains Item Stack" function
  • Added a runtime "AddInventoryProcessor()" function.
  • Optimized LootItem() and allowed processors to opt into being considered for looting. This dramatically increases performance with many processors that do not score item slots for LootItem.
  • Added sorting of Processors for ProcessItemSwap, so that users have better control over which processors go first when deciding how to put items into the inventory.
  • Modular Inventory Events are now split based on the modular inventory event tag. In C++ you will need to bind to the specific tag's event. There is a static event that catches all tags. This allows for optimization reducing the number of callbacks per tag. Note: This is the first part of a major refactor of the event system.

Active Processor

  • Fixed the double activate Bug
  • Reworked the OnActive event. It is now called regardless of an ActiveAbilityInfo on the item, and is called more reliably on the client in network relevancy scenarios
  • Added a behavior toggle for what to do if an item that is currently active is removed.

Equipment Processor

  • Fixed some unreliability in the OnEquipped event not being fired in relevancy scenarios

Item Stack

  • Added and replicated OnStatTag changed events
  • Added Loose Item Tags that are replicated. You can now custom tag items.


  • Item Cards now have an Item Slot in addition to the item stack. This is largely optional, but helps when implementing widgets that may have default values