# 2.9.0

Engine support: 5.4

# Deprecated

  • Both GetWidgetForItem and GetWidgetForContainer have been deprecated and replaced with functions with the same name, but are found in the function library.
    • This used to have several functions for retrieving the widgets, because in some cases they were more optimal. But now with the ID map system, there is no need to try and optimize this anymore.
  • The CompatibilitySettings has been updated to use item tag types as the EItemType enum has been deprecated
  • Since the EItemType enum has been deprecated, you should use the tag item type version instead.
  • The attachment widget variable in the item struct has been deprecated, is now a part of the external objects system. Use the GetItemsAttachmentWidget function instead.
  • Override settings Price and SpawnChance have been deprecated. Spawn chance has bee replaced with a tag value while overriding the price is no longer supported.

# Documentation

  • Equipment documentation updated.
  • Working in the System -> Creating New Items has been removed, the contents have been moved to Classes and Settings -> DA_CoreItem
  • A loot table system has been added, documentation can be found here

# Inventory

  • Container struct title is now much more readable. Can be configured through config settings.
  • A new SkipValidation system for StartComponent has been added for both items and containers. This can drastically improve performance (in some cases 40x improvements) when used correctly. AC_Inventory documentation has been updated. This system is primarily meant for save files.
  • StartComponent has been heavily reworked to provide better support for the new loot table system.
  • Item Drivers are now included in the GetObjectsForItemBroadcast function and now inherit the I_ExternalObjects interface by default.
  • The MoveItem server RPC is now almost 4 times cheaper.
  • GetComponentByTag has been moved to C++. Added new helper function for getting the visual for an item GetItemsVisual
  • The Unequip event has been reworked slightly so it is possible to modify an item when it is unequipped, for example the item tags.
  • Added GetObjectsForItemBroadcastWithInterface and GetObjectsForItemBroadcastWithInterface
  • Added MassSplitItem
  • The Rotation, RandomMinMaxCount and OverrideSettings are now hidden in the item settings depending on settings that would make them irrelevant, such as the container not supporting rotation and item type not being stackable.

# Items

  • Some of the item asset functions have been changed to virtual. People who have made children item assets with default containers will now want to override these functions.
  • When moving an item to a new container, the attachment widget is no longer automatically removed off the screen.
  • Added non-array version of GetObjectByTag/ByClassForItem

# Equipment

  • Added a UpdateItemsEquipStatus, which allows you to manually declare if an item is equipped. This way you do not have to have an item be in an equipment container to be considered as equipped.
    • This can accept custom trigger filters to help evaluate what equipment settings to use.
  • Whenever an item is equipped, a tag is automatically applied, called EquipTag. This can be set in the class defaults for the inventory component
  • Equipment driver can now automatically assign leader poses for skeletal equipment.

# Editor

  • When hovering over an item asset icon, the in-game tooltip will now show. The in-built tooltip has been reworked to just accept item data, instead of the item widget to allow editor tools like this to use it without creating an item widget.

# Bug fixes:

  • The Item actor could cause a crash if the owner did not implement the I_Inventory interface.
  • Tile map for other actors was not being initialized correctly.
  • Swapping item locations could break collision in some cases.
  • The quick loot window could create 2 instances of the same item in some cases.
  • Custom shaped widgets would break without a padding and radius object in the item asset.
  • External objects on items would have client-only objects, such as widgets, removed when an item was moved during a multiplayer session.
  • Dropped item actors would have some data, such as item count, reset or wiped.
  • It was possible to split an item in a location that would overlap the original item.