Version 1.1 Update Guide
Use this historical guide when moving an Ultimate Inventory System project from version 1.0.x to version 1.1.0. Version 1.1 replaced the user interface rather than updating it in place, so a successful migration keeps the project data but rebuilds the affected UI and reconnects renamed components and references.
Confirm the update boundary
| Starting version | Target version | Use this guide? |
|---|---|---|
| 1.0.x, including 1.0.7 | 1.1.0 | Yes. Follow the complete migration. |
| An earlier 1.1 patch | A later 1.1 patch | No. This guide addresses the 1.0-to-1.1 breaking changes. |
| 1.1.x | 1.2 or later | No. Use the update guide for the target release. |
The 1.0.x UI components and prefabs are not compatible with the 1.1 UI. Do not import 1.1 over an existing 1.0.x installation and expect Unity to resolve renamed or removed scripts.
Before you begin
- Commit the working project to version control or make a complete project backup that you can restore independently.
- Back up any runtime save files separately. This historical update did not guarantee that every project-specific 1.0 save would load unchanged in 1.1.
- Record the Unity version, installed UIS integrations, active Inventory System Database, Inventory Identifier IDs, and the scenes and prefabs that contain UIS components.
- Run the 1.0.x project and record a baseline for the features you use, such as the Bag, Equipment, Gold balance, item actions, pickups, shops, crafting, and saving.
- Make sure project-owned databases, prefabs, scripts, and UI assets are included in the backup before removing the old UIS package files.
Do the migration in a copy or branch of the project. Keep the original project and save data unchanged until the regression checks pass.
Decide what must be migrated
| Area | Migration action |
|---|---|
| Inventory System Database and project data | Keep the project-owned assets, then reconnect serialized database references after importing 1.1. |
| Demo-derived or custom 1.0 menus and panels | Rebuild them with the 1.1 UI Designer. Do not carry the old UI prefabs forward. |
| Scenes and prefabs | Find every Missing Script component and replace it with the 1.1 component that now owns that responsibility. |
| Character inventory setup | Check Inventory, Currency Owner, Item User, Inventory Standard Input, Inventory Interactor, and Inventory Identifier together. |
| Item actions | Replace Category Item Actions references with Item Action Set references. |
| Equipped and world Item Objects | Update the Equipper, usable-item handler, behavior, and visual components described below. |
| Custom code | Replace renamed types, then update and compile one integration or custom assembly at a time. |
| Runtime saves | Treat compatibility as project-specific. Test only against a disposable copy and plan an explicit migration or fresh save if the data does not round-trip. |
Replace version 1.0.x cleanly
- Close Unity after making the backups and recording the baseline.
- Remove the version 1.0.x UIS package files. Do not delete project-owned databases, prefabs, scenes, or scripts that merely reference UIS.
- Import the version 1.1.0 core package without optional integrations.
- Open the project and let Unity finish importing and compiling.
- Resolve duplicate-type and compiler errors before importing integrations or repairing UI prefabs.
Checkpoint: the core package compiles without errors. Missing components in project scenes and prefabs may remain at this stage, but the Console should not show old and new UIS scripts compiling together.
Reconnect database references
Version 1.1 introduced dynamic database references such as Dynamic Item Category, Dynamic Currency, and Dynamic Crafting Recipe. Reassign Inspector references that were serialized by the 1.0 components, including categories in Item Slot Sets, Item Action Set mappings, Category Item View Sets, currencies, and crafting recipes.
- Confirm that the correct Inventory System Database is active.
- Open each project-owned Item Slot Set and reassign its category references.
- Reconnect the Item Action Set and Category Item View Set used by each relevant category or definition.
- Check currency and crafting references in the systems your project uses.
- Save the assets, close Unity, reopen the project, and confirm the assignments remain set.
Checkpoint: database-backed fields show the intended asset names after an editor restart rather than None, a missing value, or an object from another database.
Rebuild the user interface
Recreate menus and panels taken from the 1.0 demo or built with 1.0 UI components using the 1.1 UI Designer. Rebuilding is required because the underlying UI system changed substantially.
Use the following names while translating the old layout:
| Version 1.0 name | Version 1.1 name | What changed |
|---|---|---|
| Item Box | Item View | Displays the selected item data. |
| Attribute Box | Attribute View | Displays an attribute value. |
| Box Slot | View Slot, such as Item View Slot | Owns selection, clicks, dragging, and navigation around a view. |
Rebuild only the interfaces the project uses, such as the inventory grid, Equipment, hotbar, shop, storage, crafting, save, or main menu. Reconnect each panel to the intended Inventory Identifier or owner and test its selection and navigation before moving to the next panel.
Checkpoint: each rebuilt panel opens without a missing component, displays the expected database content, and responds to the intended mouse, keyboard, or controller input.
Repair the character setup
A typical 1.1 player inventory uses these components together:
- Inventory holds the character’s item collections.
- Currency Owner holds balances such as Gold.
- Item User provides the character context used by item actions and equipped item behaviors.
- Inventory Standard Input handles inventory item use and UI input.
- Inventory Interactor supplies the character Inventory to compatible interactables.
- Inventory Identifier registers the character with the Inventory System Manager so other systems can resolve it by ID.
Compare every player prefab with this list. Preserve the project’s Inventory Identifier values, then reconnect UI and interaction components to the correct player.
Update actions, equipment, and Item Objects
Item actions
Category Item Actions was renamed Item Action Set. Reassign the set used by each category. An Item Action Set can also be stored as an item attribute when individual definitions need different actions from the rest of their category.
Equipped items
In 1.1, the Equipper is responsible for the visually equipped Item Object. Add Usable Equipped Items Handler beside it when the character must use equipped Item Object Behaviours, and assign the character’s Item User to the handler.
Verify visual equipment and item use separately: seeing an Iron Sword model does not by itself prove that its behavior can run.
Item Object components
| Version 1.0 name | Version 1.1 name | Migration note |
|---|---|---|
| Item Object Action | Item Object Behaviour | The new name distinguishes a MonoBehaviour on the world object from an inventory Item Action. |
| Usable Item Object | Item Object Behaviour Handler | The handler composes one or more behaviors instead of requiring them through Item Object inheritance. |
| Item Pickup Visual Listener | Item Object View | The view responds to Item Object changes and can also drive a world-space Item View. |
Historical naming note: Item Object View was the replacement name in 1.1. Later Version 1 releases call this visual responsibility Item Object Visualizer, so current documentation and source use that newer name.
Update custom code and integrations
Replace renamed types in custom scripts before changing behavior. Compile the core project first, then add each integration at a version that explicitly supports UIS 1.1 and compile again. The guide does not establish compatibility for an arbitrary current version of a third-party integration.
The version 1.1 Inventory System Manager APIs can resolve a registered Inventory or Display Panel Manager by ID:
var inventoryIdentifier = InventorySystemManager.GetInventoryIdentifier(1);
var inventory = inventoryIdentifier?.Inventory;
inventory?.AddItem("potion", 3);
var displayPanelManager = InventorySystemManager.GetDisplayPanelManager(1);
displayPanelManager?.OpenPanel("Main Menu");
Keep the Inventory Identifier and panel-manager IDs aligned with the values recorded before the update. A lookup that returns no object is usually an identifier or initialization problem, not an item database problem.
Check the editor before Play Mode
Before testing gameplay, confirm all of the following:
- The Console has no compiler errors.
- Project scenes and prefabs have no unresolved Missing Script components from UIS 1.0.
- The active database, dynamic category, currency, recipe, Item Slot Set, Item Action Set, and Category Item View Set references are assigned.
- Each player has the expected Inventory Identifier ID and the rebuilt UI resolves the same owner.
- The character has the input, Item User, interaction, and equipment components required by the features it uses.
- Each optional integration compiles after being added back individually.
Save the project and restart Unity once more. Recheck the Console and serialized assignments before entering Play Mode.
Verify in Play Mode
Run a focused regression pass against the 1.0.x baseline:
- Start with a known Bag, Equipment collection, Gold balance, three Health Potions, and an Iron Sword.
- Open every rebuilt panel and verify content, selection, navigation, descriptions, and close behavior.
- Use one Health Potion and confirm its amount and effect update once.
- Equip and unequip the Iron Sword. Confirm both the visual Item Object and its usable behavior when the project supports one.
- Pick up a world item and confirm its visual changes and its amount reaches the intended collection.
- Complete one shop or crafting transaction if the project uses those systems.
- Change scene or respawn the player if the project depends on identifier-based lookup across those workflows.
- Save, exit Play Mode, restart the test, and load only from a disposable copy of the save. Compare items, collections, Gold, and equipped state with the expected result.
Do not overwrite the only copy of a 1.0 save while testing. If a save does not load correctly, stop and restore the backup before investigating IDs, database ordering, saver keys, or a project-specific data migration.
Troubleshooting and recovery
| Symptom | Check | Fix |
|---|---|---|
| Duplicate types or widespread compiler errors immediately after import | Old and new UIS package files coexist | Restore the migration backup, remove the 1.0 package files cleanly, and import 1.1 again. |
| A scene or prefab shows Missing Script | The object still references a renamed or removed 1.0 component | Replace it with the 1.1 component that owns the same responsibility, then reconnect its references. |
| A rebuilt panel is empty or does not respond | It still uses a 1.0 prefab, has no owner, or points at the wrong Inventory Identifier | Regenerate or rebuild it with UI Designer and reconnect its owner and input. |
| A database-backed field is empty after import | A 1.0 serialized reference was not reassigned to its 1.1 dynamic database field | Select the correct active database object again, save, and verify it survives an editor restart. |
| Item actions are missing | The category still expects Category Item Actions | Assign the equivalent Item Action Set to the category or definition. |
| An item equips visually but cannot be used | Equipper is working, but Usable Equipped Items Handler, Item User, or Item Object Behaviours are incomplete | Add or reconnect the handler and Item User, then verify the behavior list. |
| A pickup has no expected model | The old Item Pickup Visual Listener was removed | In 1.1 use Item Object View; in a later Version 1 project use the current Item Object Visualizer workflow. |
| Inventory input does nothing | Inventory Standard Input, Item User, UI owner, or the input integration is missing | Restore the required character components and add back only a UIS-1.1-compatible integration. |
| Loaded items, Gold, or equipment are wrong | The database IDs or order, Inventory Identifier, saver keys, or save format changed | Stop using that save, restore its backup, compare the recorded identifiers, and implement a project-specific migration or begin with a fresh save. |