Core Concepts

Introduction
This documentation helps you to understanding the core concepts of Generic Inventory System.
Item
Item Definition
An item definition is a data asset. Creating a new item definition is equivalent to creating a new instance of the item definition class. Essentially, item definitions are static data that can incorporate item data fragments to achieve complex data structures.
Item Fragments
Each item fragment is a data object attached to item definition, user can freely add a new type of item fragment class.
Item Definition Schema
The item definition schema is a data asset used in editor for data validation. You can assign a schema to constrain the configuration specifications of the item definition (such as which data fragments are included, the order of data fragments, etc.).
Item Instance
An item definition can generate multiple item instances during gameplay. Instances can be created, destroyed, or saved. Through an item instance, one can retrieve its definition. Item instances can also undergo data changes during gameplay (such as enhancements or value changes).
Item Attributes
An item instance can possess and maintain a set of float/int attributes, each uniquely identified by GameplayTags. These attributes can be saved and loaded, or replicated across a network.
Inventory
Inventory Component
The inventory component organizes and manages item instances through one or more item collections. An Actor typically possesses one inventory component. In games, players acquire items through shop systems, picking them up from the ground, or obtaining relics by defeating enemies. These mechanisms can essentially be understood as item data exchanges between two different item collections within inventory components. Actions like organizing a player's backpack or equipping weapons are fundamentally interactions and sorting of item data between different collections within an inventory component.
Item Collection
An inventory can contain multiple types of item collection, each of which can include multiple item stacks. Different item stacks can exchange information between different collections within the same inventory, as well as with collections in other inventories (e.g., purchasing an item from the shop inventory to the player’s inventory).
Item Stack
Each element in an item collection is an item stack, which is simply a structure used to store the corresponding item instance, their amount, and their position within the collection.
Item Info
Item information is a temporary structure used to pass item-related information across different operations, such as its belonging collection, quantity, and corresponding item instance.
Euipment
Some items have physical representations in the game world, such as weapons, helmets, and armor. These tangible items are referred to as equipment in the GIS.
Equipiment Definition
An equipment definition is a data asset that outlines all static data used by equipment instances, such as the model of a weapon or the associated GameplayAbilities applied to it.
Equipment Instance
An equipment instance is a UObject tasked with managing the internal logic of the equipment, including the addition or removal of abilities or game effects, as well as the creation or destruction of equipment Actors.
Equipment Actors
An equipment instance may be represented by one or more Actors serving as the physical manifestation of the equipment. For instance, this could be a weapon, or in the case of "equipping a pet," it might spawn a pet to assist you in combat.
Equipment Component
The equipment component oversees the creation, activation, and destruction of equipment instances. It also monitors changes to specific item collection in the inventory, automatically equipping or unequipping instances based on the equipment definitions associated with those items.
LowLevel Concepts
Inventory Subsystem
The inventory subsystem is responsible for creating item instances based on item definitions at a foundational level. The actual creation logic is managed by the Item Factory. Generally, you do not need to understand this part.