Version 1.3 Update Guide
Use this historical guide when moving an Ultimate Inventory System project from version 1.2.x to the initial version 1.3.0 package release. Version 1.3 moves UIS and Opsive Shared from the former Assets/Opsive layout into Unity packages, so importing it over an existing 1.2 installation can leave both layouts in the project and cause errors.
Confirm the update boundary
| Starting version | Target version | Use this guide? |
|---|---|---|
| 1.2.x, including the final verified 1.2.22 source | 1.3.0 | Yes. Follow the complete package migration. |
| 1.0.x or 1.1.x | 1.3.0 | First complete the Version 1.1 update and Version 1.2 update, then use this guide. |
| An earlier 1.3 patch | A later 1.3 patch | No. This guide covers the breaking folder-layout change introduced by 1.3.0. |
| A new project | 1.3.x | No. Follow Getting Started. |
The release history immediately before this transition sets Unity 2021.3 as the minimum version. It does not define a universal compatibility matrix for every Opsive product, third-party integration, or project-specific save format. Record and test the exact combination used by the project rather than treating this guide as a promise of broader version support.
Before you begin
- Commit the working project to version control or make a complete, independently restorable project backup.
- Back up the Inventory System Database, project-owned item assets, prefabs, scenes, UI schemas and prefabs, custom scripts, Project Settings, and runtime save files separately.
- Find any project-owned content stored inside
Assets/Opsive/UltimateInventorySystemorAssets/Opsive/Shared. Copy it to the backup and plan to restore it under a project-owned folder after installing 1.3. - Record the Unity, UIS, and Opsive Shared versions; every other installed Opsive product and integration; the active database; Inventory Identifier IDs; collection names; saver keys; and the scenes and prefabs that contain UIS components.
- Run the 1.2.x project and record a baseline for the Bag, Equipment, Gold, item actions, pickups, UI, shops, crafting, saving, scene transitions, and each integration the project uses.
Perform the migration in a project copy or branch. Keep the original project and the only copies of existing saves unchanged until every editor and Play Mode checkpoint passes.
Decide what must be migrated
| Area | Migration action |
|---|---|
| UIS 1.2 package-owned files | Remove the old Assets/Opsive/UltimateInventorySystem installation before importing 1.3. Do not overlay the two layouts. |
| Opsive Shared | Remove the 1.2 Shared installation as part of the clean replacement, then install the Shared package required by the 1.3 release. |
| Other Opsive products | Reinstall releases compatible with the same Shared package. These products can contribute Shared or product-specific files that UIS does not contain. |
| Inventory System Database and project content | Preserve project-owned assets, open them with 1.3, and verify representative objects and serialized references. |
| UIS UI and scene setup | Keep the 1.2 project-owned UI and scene objects unless a component or reference is actually missing. Version 1.3 is not documented as another blanket UI rebuild. |
| Custom code and editor tools | Recompile first, then update verified API errors and literal paths that still point into the old Assets/Opsive installation. |
| Demo scenes | Do not carry the installed 1.2 demo forward. Import the version 1.3 Demo sample separately after the core project is stable. |
| Runtime saves | Treat compatibility as project-specific. Test only disposable copies and never overwrite the only 1.2 save during migration. |
Replace version 1.2 cleanly
- Complete the backup and baseline, save the project, and close Unity.
- Remove the version 1.2 UIS package-owned files under
Assets/Opsive/UltimateInventorySystemand the corresponding old Opsive Shared installation. Do not delete project-owned databases, prefabs, scenes, scripts, or UI assets merely because they reference UIS. - If project-owned files were placed inside either removed folder, leave them out of the first import. Restore verified copies later under a project-owned folder so a future package update cannot overwrite them.
- Import or install the downloaded UIS 1.3.0 release using its package workflow, without optional integrations.
- Let Unity finish importing and compiling. In the Package Manager or Project window, confirm that one Opsive Ultimate Inventory System package and its required Opsive Shared package are present. The audited source package IDs are
com.opsive.ultimateinventorysystemandcom.opsive.shared. - Resolve all core compiler errors before reinstalling another Opsive product or UIS integration.
- Reinstall each other Opsive product at a release compatible with the installed Shared package. Compile after each product.
- Reinstall integrations one at a time, using versions intended for UIS 1.3 and the other products in the project. Compile after each integration.
Checkpoint: the Console has no duplicate-type or compiler errors, the former UIS 1.2 package folder is absent, the UIS and Shared packages are present once, and the Main Manager opens from Tools > Opsive > Ultimate Inventory System > Main Manager.
Verify the database and project content
The source transition relocates the package; it does not replace the project’s Inventory System Database. Preserve and validate the database rather than creating a new one over the migrated project.
- Open the Main Manager and select the intended project database.
- Inspect representative categories, definitions, currencies, and recipes. For example, confirm that a Consumable and Equippable/Weapon category, Health Potion, Iron Sword, Gold, and one recipe retain their expected attributes and relationships.
- Open every production scene and important prefab. Check for Missing Script components and unassigned database, category, definition, currency, recipe, collection, Item Action Set, and Inventory Identifier references.
- Confirm that project-owned item prefabs, UI schemas, and other customized assets now live outside the installed package folders.
- Save the assets, restart Unity, reopen the database, and confirm that the assignments remain intact.
Checkpoint: the intended database opens without errors, representative data matches the 1.2 baseline, production scenes and prefabs have no unresolved missing components, and the same assignments survive an editor restart.
Reconnect scenes and UI
Do not rebuild working 1.2 UI solely because the package moved. Repair only the references that fail the editor checks.
- Open each scene that contains an Inventory System Manager and confirm it references the intended database.
- Check every player or inventory owner for its Inventory, Currency Owner, Item User, Inventory Identifier, input, and interaction components. Preserve recorded identifiers and collection names.
- Open each production inventory, Equipment, hotbar, shop, crafting, storage, and save panel. Confirm its owner or Inventory Identifier, collection, currency, recipe, and view bindings.
- Open UI Designer only when a project-owned panel needs to be found, repaired, or regenerated. Do not replace a customized panel with a sample prefab without first recording its bindings and modifications.
- If production UI referenced assets from the old demo folder, duplicate the required asset into a project-owned folder and reconnect it. Do not make production content depend on an optional imported sample.
Checkpoint: each production panel opens in the editor with the expected owner and data source, no field points to a missing demo or package asset, and saving and reopening the scene retains the bindings.
Update custom code and asset paths
The verified 1.3 transition establishes a new package layout, but it does not provide a general API-rename table. Use compiler errors and the exact 1.3 source as the migration authority; do not bulk-replace UIS namespaces or substitute Version 2 APIs.
- Compile each project-owned assembly against the UIS and Shared core packages before restoring integrations.
- Search custom editor tools, build scripts, tests, Addressables configuration, and
AssetDatabasecalls for literal paths beginning withAssets/Opsive/UltimateInventorySystem,Assets/Opsive/Shared, or the former demo location. - Replace a literal path only when the code genuinely needs to find a package asset. Prefer a serialized reference or stable GUID where the workflow supports one; write generated and customized content under
Assets, never into the installed package. - Check custom Assembly Definition references after the move. Reference the UIS and Shared assemblies by their assembly names rather than relying on their former folder locations.
- Fix genuine compiler errors one assembly at a time. If an override, interface, or integration API differs, compare it with the installed 1.3 release before changing behavior.
Checkpoint: all project-owned assemblies compile, no production tool writes into either installed package, and a clean editor restart produces no path, assembly, or missing-type errors.
Import the Demo sample separately
Version 1.3 declares the Demo as a package sample rather than installing it with the core runtime. Import it only after the migrated production project passes the core editor checkpoints.
- Open Tools > Opsive > Ultimate Inventory System > Main Manager and select Setup.
- Use the sample import control to import the Demo. The 1.3.0 package manifest declares one Demo sample sourced from
Samples~/Demo; Unity imports a writable copy under the project’sAssets/Sampleshierarchy. - Open the imported demo from its generated sample folder rather than relying on a hard-coded versioned path.
- Treat the version 1.3 Demo as Universal Render Pipeline content. In another render pipeline, convert or replace its materials and camera setup manually in a disposable copy.
- Keep production databases, prefabs, and scenes independent from the sample. Reimporting or replacing a sample must not overwrite project-owned content.
Checkpoint: the sample is absent until explicitly imported, its scene opens from Assets/Samples after import, and any render-pipeline conversion affects only the disposable sample copy.
Check the editor before Play Mode
Before testing gameplay, confirm all of the following:
- The Console has no compiler errors or duplicate UIS/Shared types.
- Only the version 1.3 UIS and compatible Shared package layout remains.
- Other Opsive products and integrations were restored individually and compile with the installed Shared package.
- The active Inventory System Database and representative category, definition, currency, recipe, and attribute data are correct.
- Production scenes and prefabs have no unresolved Missing Script components or missing package references.
- Inventory Identifier IDs, collection names, saver keys, UI owners, and data bindings match the recorded 1.2 values.
- Custom code no longer assumes that UIS or Shared lives under
Assets/Opsive. - The Demo sample is either not imported or is isolated from production content.
Save the project, restart Unity, and repeat this checkpoint before entering Play Mode.
Verify in Play Mode
Compare the migrated project with the recorded 1.2.x baseline:
- Start with known Bag and Equipment contents, a known Gold balance, three Health Potions, and an Iron Sword, or use equivalent representative objects from the project database.
- Add, remove, split, and transfer an item. Confirm the amount changes once and reaches the intended collection.
- Open every migrated panel and verify content, selection, navigation, descriptions, drag-and-drop, and close behavior.
- Use one consumable, then equip and unequip one item. Confirm the action, amount, stats, visual, and collection state match the baseline.
- Pick up and drop one world item. Complete one shop and crafting transaction when the project uses those systems.
- Exercise every reinstalled character-controller or third-party integration in its production scenario.
- Save to a new test slot, exit Play Mode, restart the test, and load it. Compare items, Gold, equipment, UI state, and scene state with the expected result.
- Load only a disposable copy of a 1.2 save. If it does not round-trip correctly, stop and restore the backup instead of overwriting it.
Troubleshooting and recovery
| Symptom | Check | Fix |
|---|---|---|
| Duplicate types or widespread compiler errors immediately after import | The old Assets/Opsive UIS or Shared files coexist with the 1.3 packages |
Restore the migration backup, remove the old package-owned folders cleanly, and import the 1.3 core again. |
| Shared, state, input, or utility types are missing | Opsive Shared or another Opsive product was removed but not reinstalled at a compatible release | Install the Shared package required by UIS 1.3, then reinstall the other Opsive products one at a time. |
| The Main Manager does not open | Core compilation is incomplete, the UIS package is missing, or duplicate editor assemblies remain | Resolve the first Console error, verify the UIS package, and remove the stale 1.2 editor files before retrying. |
| The database appears empty or shows the wrong objects | The Main Manager selected a new or different database | Reassign the backed-up project database and verify representative categories, definitions, currencies, and recipes before saving. |
| A scene or prefab shows Missing Script | It references a removed 1.2 integration, a customized package script, or a component that did not survive the clean replacement | Reinstall the compatible integration or restore the project-owned component outside the package, then reconnect its data. |
| A panel is empty or does not respond | Its owner, Inventory Identifier, collection name, input, or view binding changed or points to missing demo content | Restore the recorded identifier and bindings, then repair the panel with UI Designer if necessary. |
| A custom editor tool cannot find a UIS asset | It contains a literal Assets/Opsive path |
Replace the verified path dependency with a serialized reference, stable GUID, or the installed package location. |
| The Demo does not appear in the project | Package samples are not imported with the core runtime | Open the Main Manager‘s Setup tab and import the Demo sample explicitly. |
| Demo materials are pink or the camera is incorrect | The version 1.3 Demo is being opened in a non-URP project | Convert or replace the sample materials and camera in a disposable copy; do not change production render settings merely to open the demo. |
| An integration fails after the core project compiles | It targets another UIS, Shared, or companion-product release | Remove that integration and install a version explicitly compatible with the historical 1.3 setup. |
| A 1.2 save loads incorrect items, Gold, or equipment | Database IDs or order, Inventory Identifier values, saver keys, or custom serialization changed | Stop using that save, restore its backup, and implement a project-specific migration or begin with a fresh save. |
| A package update removes a customization | The modified file was kept inside UIS, Shared, or an imported sample | Restore the backed-up customization into a project-owned folder and reconnect it without editing the installed package. |
If the core compile checkpoint fails, do not continue repairing scenes or saves in the partially migrated project. Restore the complete pre-update backup into a separate location and repeat the clean replacement. After all regression checks pass, make a new post-migration backup before adopting additional 1.3 features.
What version 1.3 changes
- UIS and Opsive Shared use Unity package folders instead of the former
Assets/Opsiveinstallation layout. - The Demo is an optional package sample that is imported separately from the core runtime.
- The supplied Demo content targets the Universal Render Pipeline.
- The release continues the Version 1 data model; this migration does not authorize substituting Version 2 APIs or components.
Related pages
- Getting Started
- Version 1.1 Update Guide
- Version 1.2 Update Guide
- Demo Scene
- New Database
- Inventory System Manager
- UI Designer
- User Interface
- Save System
- Integrations
Source verification
The released Version 1 master history inspected for this page identifies the last pre-package source as UIS 1.2.22. The transition moves the UIS and Shared source from Assets/Opsive into packages, creates com.opsive.ultimateinventorysystem with package version 1.3.0, declares one Demo sample, and then records the runtime/editor asset version as 1.3.0. The same release work converts the sample materials and project setup to URP and adds the sample import workflow. That history does not declare blanket save compatibility or an all-products integration matrix, so the backup, staged reinstall, and regression checks above remain required.