Inventory System Plugin

Overview

The main challenge in creating the Inventory System plugin was figuring out how to generalize its usability such that it can be used in various types of inventory mechanics (grid-based, weight-based, limitless, etc.).

At the time of creating this plugin, I was only interested in making the plugin fit for my main project (see Beings Beyond), which required the ability to:

  • limit the capacity of an inventory category
  • stack and lock items
  • track multiple instances of the same, non-stackable item
Testing the bare-bones functionality of the system, which includes three common attributes of a generic inventory item

Features and API

Common features of the plugin include, but not limited to:

  • Add/remove items to/from inventory, respectively
  • Customizable item definitions
    • Custom (and savable) item properties
    • Modular usage definitions
    • Evaluable, runtime GameplayTags
  • Extendable UI data for items
  • Save/load inventories and items synchronously and asynchronously
  • Interface for any UObject-derived classes that can be added to an inventory
  • Initialize inventories with preset items
Available nodes for the Inventory System plugin (non-exhaustive)

Use-cases

Creature Archive (Beings Beyond)

In Beings Beyond, the Creature Archive is a collection of unlockable creatures.

Modules and Gadgets (Beings Beyond)

Gadgets are collectable items that can be equipped by a team to gain certain effects.
Gadgets are collectable items that can be equipped by a team to gain certain effects.

Setup

Tony Nguyen
Tony Nguyen
Technical Game Designer

Tenacious game developer with an unwavering passion for overcoming game development challenges.