The “Description” Attribute is usually defined as an Item Definition Attribute. The Description attribute is used in in the “Item Description” component to display the description text.
The “Icon” Attribute is usually defined as an Item Definition Attribute. The Icon attribute is used in multiple places such as the “Icon Item View” component or even in the Editor to preview the Icon in the little colored box (Only if Editor Icon is null)
The “CategoryIcon” Attribute is usually defined as an Item Category Attribute. The CategoryIcon attribute is used in the Editor to preview the Item Category Icon in the little colored box (Only if Editor Icon is null)
Price, SellPrice, BuyPrice <CurrencyAmounts>
The Attributes “Price”, “SellPrice” and “BuyPrice” are usually defined as an Item Definition Attributes. Either “Price” or “SellPrice”+”BuyPrice” is used.
Some prefabs such as “Big Item Description” use “BuyPrice” and “SellPrice” attributes by default, this can be changed in the inspector.
The “PickupPrefab” Attribute is usually defined as an Item Definition Attribute. By default the “Item Object View” component will use this attribute to spawn the visual prefab when an Item is bound to an Item Object (example when dropping an Item Pickup).
The “UsableItemPrefab” Attribute is used by the Equipper component. It is spawned when the Item equips a none-SkinMesh. The prefab must have an ItemObject component and may also have usually an “Item Object Behavior Handler” component to use the equipped Item.
The “UsableItemPrefab” Attribute value is meant to be used to define the weapon functionality. The “EquipmentPrefab” Attribute is the attribute used to show the Weapon/Cloth Model.
The “EquipmentPrefab” Attribute is used by the Equipper component. It is spawned when the Item equips an Item. It is the visual part of the Item. It is spawned under the “UsableItemPrefab” which contains the functionality.
The “ItemActionSet” Attribute is used by the “Use Item Action Set Attribute” Item Action. It is really useful to give different Item Action depending on the Item. For example magic scrolls which can be cast but all do something completely different.
The “Shape” Attribute is used by the Item Shape Inventory Grid system, both in the Grid Data components and the relevant Item View Modules. In all cases the attribute name can be set in the inspector if “Shape” is unavailable
The “Slots” Attribute is used in the “Item Slots Item View” and is used to show the Icons of the Items that are slotted unto another item.
The “IsEquipped” Attribute is used in the “Equipped Item View” and can be used to defined if an Item is equipped or not. This is optional as usually the system can tell an Item is equipped simply by checking if the Item is contained in the Equipped Item Collection.
If it is used the “IsEquipped” Attribute should be set as Item Attribute and the Item should be Mutable such that it can be changed at runtime.
The “StackSizeLimit” Attribute is used by the “MultiStack Item Collection” to limit Item Stacks max size.
The “CategorySizeLimit” Attribute is used by the “GroupItemRestriction” object. It is completely optional. It is used to limit the number of Items with that Item Category the Inventory can hold.
The “DefinitionSizeLimit” Attribute is used by the “GroupItemRestriction” object. It is completely optional. It is used to limit the number of Items with that Item Definition the Inventory can hold.
The “ItemSizeLimit” Attribute is used by the “GroupItemRestriction” object. It is completely optional. It is used to limit the number of particular Items the Inventory can hold.
Attribute value types can be set to any type in your project. While attributes can be of any type, the types below are the more commonly used attribute types.
Integers are used to define full numeric values. They also work with the modify expression feature.
Floats, also known as Singles, are used to define decimal values. They also work with the modify expression feature.
Bools are used to define if a value is on or off.
Strings are used to define names, descriptions, etc. They also work with the modify expression feature.
Unity Objects (GameObject, Sprite, Material, etc.)
Any Unity object can be used as an attribute and it can be used for referencing prefabs, icons, sounds, etc.
Item Amounts are used for item slots and attachments. It allows for item nesting and takes care of serializing/deserializing nested item correctly, which enables the saving and loading of nested items.
Currency Amounts are used to define the prices of items. It is usually defined as an Item Definition attribute as it does not usually change over time.
The Item Shape is used to define the shape of an Item in an Item Shape Inventory Grid. It let’s set the shape with a boolean grid and an anchor.
Item Action Set
You may add scriptable objects as Attributes to add functionality to your items. A good way to use Item Actions which are item specific instead of Category specific is to use an Item Action Set as attribute.