# 2.3.0

Engine support: 5.3


# Quality of life

  • External widgets for both items and containers are now TObjectPtr, which means it is not mandatory to remove the widget from the array for it to be garbage collected. But this does mean the widget must be referenced somewhere in your game, such as being on the screen. Otherwise, it'll get garbage collected.

  • Added a "Inventory Framework" category to the content browser right click menu, allowing you to quickly create assets.

  • Most of the classes for the context menu have a blueprint class parent, which is generally not safe to reference in C++. Because of this, a "Inventory Framework" section has been added to Project Settings -> Plugins. This also means you can easily change what classes the content menu creates without touching C++.

# Inventory

  • Added GetTotalValueOfTag function.
  • Added GetNearbyItemsDirectional function.
  • Added GetAvailableEquipmentContainers function.
  • Added GetCompatibleEquipContainersForItem function.
  • Added CanItemBeDestroyed function.
  • Added HasAnyItems function.
  • The item actor has been renamed to A_ItemActor/BP_ItemActor

# Widgets

  • The ContainerSettings variable inside W_Container has been renamed to TemporaryContainerSettings to reduce confusion around how to get the widgets true container settings.
  • OwningItem and ParentTile inside W_Tile have been deprecated. Use GetOwningItem to retrieve the item widget.
  • The quick loot window will now show the root item.
  • Quick loot window will now automatically hide and show the expand option if the item can be expanded.
  • Context menu has been reworked into an item object. If no context menu object is found, then it'll default back to the old method which I won't be maintaining and an print string will pop up.
  • The InventoryHelper no longer automatically imports the items default containers. It will now import them when the item is opened instead of overriding the default containers by default.

# Bug fixes

  • Highlight widget could go out of bounds.
  • TryAddNewItem was not calling the equip dispatcher if it added an item to an equipment container.
  • The drop option in the context menu would never show up for equippable items.
  • DriverStarted delegate was assigned to the wrong delegate.
  • Vendors would delete any currency items that didn't have an acceptable currency.