V1.2.0

1.2.0

Engine support: 5.2

Important for those updating:

Because both the container struct and item struct were modified in this update, it means that a lot of blueprints were updated and might override any chances you might have made. Remember to backup your version before installing.

Component

  • FindFirstAvailableContainerAndTile and FindFirstAvailableTile have been replaced with GetFirstAvailableContainerAndTile and GetFirstAvailableTile. These functions can now also be overriden at a blueprint level to allow designers to implement their own rules of how the system finds available containers and tiles.

  • CheckForSpace and CheckBothRotationsForSpace has been updated to return an array of items that were in the way instead of just the first item.

  • Added function for checking if items can be swapped and another function for swapping 2 item locations.

  • Added UpdateItemsOverrideSettings so override settings can be updated in a live multiplayer session. Another function called CanActorChangeItemOverrideSettings has been added and it will ask the server if an actor is allowed to modify an items override settings. By default, this is set to always return true. You can override this function at a blueprint level.

Items

  • Default item tags have been implemented. These are defined in the item data asset, whenever a component is started and an item does not have any of the tags from the data asset, they will automatically be applied.

  • ContainerName has been labelled as deprecated and will be replaced with ContainerIdentifier tag, making it easier for renaming a container and reduces human error when binding containers with their widget representation.

    • During 1.2 both the ContainerName will continue to work for most functions, as most have been updated to use ContainerIdentifier instead, but ContainerName will be fully removed in the next update. It's recommended to update your containers immediately.

  • The physical actor for an item no longer requires any containers to be setup inside the blueprint. When the component is started, it'll automatically add the default containers from the data asset.

Item drivers

  • Item drivers now have the option to "follow" the item they were created by. This means that if a driver is created for an item and the item is moved to a new actor, that driver is moved as well to the new actor. The driver is not destroyed and reconstructed, it will retain all information and continue running any timer logic.

  • Drivers are now referenced by the item struct, giving easy access to access an items item driver.

Widgets

  • The update functions inside of W_InventoryItem have been labelled as deprecated.

  • New I_WidgetUpdates interface added, contains all the update functions that were deprecated in W_InventoryItem

    • During 1.2 both the deprecated functions and the interface events will be called, but the update functions inside of W_InventoryItem will be fully removed in the next update.

  • Item struct and container struct now has an array of "External Widgets", making it easier to manage hotbars, quest trackers and any other widget that is listening to any item updates without listening to a bunch of delegates. Documentation can be found here

  • External widgets get all the same Update functions that the item widget and container widget does from the I_WidgetUpdates interface.

  • More update functions have been added for tags, tag values and equip/unequip events.

  • Add, Remove and Get External Widgets helper functions for both items and containers have been added.

Example Project

  • Added two quick slot example, one for global tracking where a specific item asset is tracked across the entire inventory, and another for a specific slot.

  • In the context menu, the Equip and Unequip buttons now actually... You know... Equips and unequips the item...

  • Example project has been updated to no longer use any of the deprecated features.

  • Gameplay tags have been moved to a data table.

  • The tooltip widget has been updated to use the external widget system to provide a simple example of the new external widget system.

  • Objects now have a better display name.

Bug fixes

  • When splitting an item, the newly created item widget would get created in the incorrect location.

  • When trying to move an item on the same slot but with a new rotation, it would not update the rotation.

  • Generated item icon were being stretched in certain scenarios.

  • Item count was getting reset to default if it was dropped.

  • Random min/max count could be called multiple times.

  • The item and container tag delegates are no longer getting spammed.

  • GetItemDimensions could sometimes return wrong values

  • Set/Remove tag value and IncreaseItemCount wasn't using the new replication system.