Create a new Inventory System Database when the project needs its own item catalog instead of the demo data. By the end of this workflow, the database will contain a small category structure and two definitions: Health Potion and Iron Sword.

Starting point

This page assumes Ultimate Inventory System is installed and you want a database created from scratch. Create the destination folder in Unity’s Project window before opening the database save dialog.

Important: Creating the parent folder from the file browser while the database dialog is already open can cause a Missing Parent Folder error. Create the folder first, then select New.

Create the database

  1. Open Tools > Opsive > Ultimate Inventory System > Main Manager.
  2. Select the Setup manager.
  3. Find the Inventory System Database section and select New.
  4. Save the asset in the folder prepared above. A clear project-specific name, such as GameInventoryDatabase, makes the reference easy to recognize later.
  5. Confirm that the new database is selected in the Setup manager.

The Ultimate Inventory System Setup manager showing the Inventory System Database field and New button.

A database created from scratch includes an All Item Category with the common Icon and Description Item Definition attributes. Keep All as the shared parent while building the first categories.

Use the database field actions

The cog beside Inventory System Database owns actions that affect the selected database rather than one Category or Definition.

Duplicate the database

Duplicate copies the database and its owned Categories, Definitions, Currencies, Crafting Categories, and Recipes. The confirmation offers:

  • Keep references to prefabs, which leaves prefab-valued Attributes pointing to the existing assets; or
  • Duplicate all referenced Prefabs, which copies those prefabs for the new database.

Choose a project-owned destination under Assets. The copy is a new database, but selecting it in Main Manager does not update saved scene managers, savers, UI schemas, prefabs, or other consumers. Verify each owner before deleting the original.

Generate database-name constants

Generate C# script writes <DatabaseName>Names.cs in the selected folder under the Opsive.UltimateInventorySystem.DatabaseNames namespace. It contains constants for Item Category names, source Attribute names, and Item Definition names. Generating to the same path overwrites the prior file without a backup. Treat it as generated code and regenerate it after renaming database objects.

Replace references after a deliberate database switch

Assets > Ultimate Inventory System > Replace Database Objects uses the database currently selected in Main Manager. The command is available when the Project selection is an IDatabaseSwitcher, GameObject or prefab, Scene asset, or folder. A folder scan includes supported ScriptableObjects, prefabs, and scenes below that folder; affected scenes are saved.

This operation cannot be reversed from the tool. Commit or back up the project, select the intended database, choose the narrowest possible target, and review the asset and scene diff. It replaces supported references; it does not merge two databases. The Inventory System Manager’s Update Scene command is the narrower route for the currently open scene.

Build the sample structure

The database is the container, Item Categories define the structure and inherited attributes, and Item Definitions describe the item types that the game can create. Build categories before definitions so each definition immediately receives the correct inherited attributes.

Create the categories

  1. Open the Item Categories editor.
  2. Add Consumable and set All as its parent.
  3. Add Equippable and set All as its parent.
  4. Add Weapon and set Equippable as its parent.

The resulting structure is:

  • All
    • Consumable
    • Equippable
      • Weapon

This keeps shared display data on All, groups one-use items under Consumable, and lets Weapon inherit the behavior and attributes intended for Equippable items. More detailed categories can be added later when they serve a real workflow.

Create the definitions

  1. Open the Item Definitions editor.
  2. Add Health Potion. New definitions initially use Uncategorized, so assign Consumable as its Item Category.
  3. Set the inherited Icon and Description values when those assets and text are ready.
  4. Add Iron Sword and assign Weapon as its Item Category.
  5. Set its inherited Icon and Description values.

An Item Definition is the reusable template for runtime Items. Health Potion inherits from Consumable and All; Iron Sword inherits from Weapon, Equippable, and All.

Visible checkpoint

Before adding more data, confirm that:

  • The Setup manager references the new database.
  • The category list contains All, Consumable, Equippable, and Weapon.
  • Consumable and Equippable show All as their parent.
  • Weapon shows Equippable as its parent.
  • Health Potion uses Consumable, and Iron Sword uses Weapon.
  • Both definitions expose the inherited Icon and Description fields.

At this point the relationship is Database > Category > Definition. Runtime Items are created from those definitions; they are not additional catalog entries that need to be created during this setup.

Next workflow

Continue with Defining Attributes before expanding the database. That page explains whether a value belongs to the Item Category, Item Definition, or runtime Item. For this sample, it is the place to decide how Health Potion stores its healing value and how Iron Sword stores values such as attack or per-item durability.