Use the Ultimate Inventory System integration when Ultimate Inventory System should own a character’s Items, Item Collections, inventory UI, and saved inventory data while Ultimate Character Controller equips, animates, and uses the corresponding Character Items.

For example, an Ultimate Inventory System Iron Sword can move from a Bag into an equipment collection, cause its Ultimate Character Controller Character Item prefab to appear in the correct hand, activate a valid Ultimate Character Controller Item Set, and return to the Bag when unequipped. The integration keeps those two representations synchronized; it is not a second inventory to maintain beside Ultimate Inventory System.

Compatibility boundary

The checked-in Ultimate Character Controller Version 3 installer inspected for this page identifies itself as integration 3.0.5. Its Integration Inspector requires:

  • Ultimate Character Controller 3.0.10+
  • Ultimate Inventory System 1.2.16+

The current public releases are Ultimate Character Controller 3.3.6 and Ultimate Inventory System 1.3.8. The Ultimate Inventory System 1.3.6 release notes also state that this integration was updated. Because that refreshed package is distributed through Opsive Downloads and may be newer than the checked-in installer, do not treat the 3.0.10 and 1.2.16 minimums as a tested maximum-version guarantee. Recheck the downloaded package’s version block under Tools > Opsive > Ultimate Inventory System > Integrations Manager > Integration Inspectors > Ultimate Character Controller after updating either product.

Ultimate Character Controller Version 4 and Ultimate Inventory System Version 2 use different development APIs and are outside this page’s scope. The exact labels and APIs below were verified against the source-visible 3.0.5 bridge; if a newer downloaded bridge reports different requirements or controls, its Inspector and source take precedence.

The integration is compiled directly against Ultimate Character Controller, Ultimate Inventory System, and Opsive Shared. It does not include compatibility shims for missing products or later major versions, so install both products and let them compile before importing the bridge.

Understand which system owns each job

Job Runtime owner
Item identity, quantity, mutable attributes, categories, definitions, currencies, and collections Ultimate Inventory System Inventory and its Inventory Database
Bag, equipment, hotbar, shop, crafting, and other inventory UI Ultimate Inventory System UI and Item Actions
Translating Ultimate Inventory System equippable Items into Ultimate Character Controller Character Items and Item Sets Character Inventory Bridge and Inventory Item Set Manager
Visible Character Item prefabs, item slots, equip/use abilities, animation, and item states Ultimate Character Controller Version 3
Inventory contents and active Item Set indexes across save/load Inventory Bridge Saver with Inventory System Manager Item Saver

An Item in the Ultimate Inventory System Default collection is owned but not equipped. An Item in a collection listed under Bridge Item Collection Names is available to Ultimate Character Controller and may be soft equipped. It becomes actively equipped only when the corresponding Ultimate Character Controller Item Set is active.

Use the Equippable category only for Items that require an Ultimate Character Controller Character Item, such as weapons, shields, usable tools, or a gameplay ability represented by a Character Item. Ordinary ammo, materials, consumables, and Ultimate Inventory System-only armor should not inherit from Equippable.

Before you begin

  • Install Ultimate Character Controller Version 3 and Ultimate Inventory System Version 1, then resolve all compiler errors.
  • Create and test the Ultimate Character Controller character with Tools > Opsive > Ultimate Character Controller > Character Manager before converting it.
  • Decide which Ultimate Inventory System Inventory Database and Inventory System Manager the scene will use.
  • Save the scene and create a source-control checkpoint. Setup Character removes the standard Ultimate Character Controller Inventory and Item Set Manager and replaces them with the integrated components.
  • Start with one simple single-slot weapon. Add multi-slot weapons, armor, ammo persistence, and menus only after that first item equips correctly.

Install the integration

  1. Sign in to Opsive Downloads and download the current Ultimate Inventory System integration for Ultimate Character Controller Version 3. The bridge is not included in either base product’s Integrations folder before this download.
  2. Import the downloaded package after both products compile. Importing it creates Assets/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem in the project. Remove duplicate scripts from an older bridge before importing a replacement.
  3. Open Tools > Opsive > Ultimate Inventory System > Integrations Manager.
  4. Select Integration Inspectors, then Ultimate Character Controller.
  5. Record the integration version and requirements shown by the downloaded package. The inspected 3.0.5 package reports Ultimate Character Controller 3.0.10+ and Ultimate Inventory System 1.2.16+.

The package includes a reference scene at Assets/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Demo/Demo.unity. Use it to inspect collection layouts, Item Set Rules, Item Actions, pickups, bindings, and ammo modules. Copy the pattern into project-owned assets rather than editing the integration demo or database directly.

Prepare the database and scene

Duplicate the supplied database

The supplied EmptyCharacterInventoryDatabase is the safest starting point because it already contains the bridge’s required category and attribute structure.

  1. Open Tools > Opsive > Ultimate Inventory System > Main Manager.
  2. Assign EmptyCharacterInventoryDatabase from the integration’s EmptyDatabase folder to Database.
  3. Open the options menu beside Database and select Duplicate.
  4. Save the duplicated database in a project-owned folder outside the integration package and keep it selected in the Main Manager.
  5. Under Setup > Scene Setup, add or update the Ultimate Inventory System scene components.
  6. Select the scene’s Inventory System Manager and confirm that Database references the same duplicated asset.

Do not duplicate only the main .asset in the Project window. The Main Manager’s Duplicate command copies the database-owned categories and definitions into a coherent new database.

The supplied database establishes these integration conventions:

Category Purpose
Equippable Abstract parent for every Item that can create an Ultimate Character Controller Character Item.
Single Item Inherits Equippable and supplies one Item Definition GameObject Attribute named Prefabs.
Multi Item Inherits Equippable and supplies a GameObject[] Item Definition Attribute named Prefabs.
Ammo Parent for ammo Item Definitions stored as Ultimate Inventory System quantities.
Item With Ammo Supplies a mutable Item Attribute named AmmoData for the ammo definition, clip size, and rounds currently loaded.

You may add more categories and multiple inheritance for the game’s organization. Keep the Equippable relationship and the Prefabs Attribute type intact unless the matching Character Item Prefabs Attribute Name on every bridge is deliberately changed.

Connect a character

  1. Put the finished Ultimate Character Controller character in the scene.
  2. Ensure the Ultimate Inventory System Main Manager and the scene’s Inventory System Manager both reference the intended database.
  3. Open Tools > Opsive > Ultimate Inventory System > Integrations Manager.
  4. Select Integration Inspectors > Ultimate Character Controller > Character Setup.
  5. Assign the scene object to Character. Setup Character is enabled only when the object has Ultimate Character Locomotion.
  6. Select Setup Character and wait for the success message.
  7. Select the character and inspect every component and collection before creating Items.

Character Setup creates these Ultimate Inventory System Item Collections:

Collection Type and purpose
Default Main Item Collection for owned Items that are not currently equipped.
Equippable Slots Equipped Item Slot Collection with generated Primary, Secondary, and Tactical slots.
Equippable Additional bridge Item Collection for equippable Items that do not use that slot layout.
Loadout Character Loadout Item Collection for Items granted by the configured loadout rather than restored save contents.

It also adds Character Inventory Bridge, Inventory Item Set Manager, Inventory Identifier, Item User, Currency Owner, Inventory Interactor, and Inventory Bridge Saver. Existing Ultimate Character Controller Item Set abilities remain on the character; setup attempts to remap their categories to the selected Ultimate Inventory System database and logs a warning when a match cannot be found.

Character Inventory Bridge with the Equippable category, Prefabs attribute name, Default collection, bridge collections, and Loadout collection configured.

Review these bridge fields first:

  • Equippable Category points to the database’s Equippable category.
  • Character Item Prefabs Attribute Name is Prefabs.
  • Default Item Collection Name is Default.
  • Bridge Item Collection Names contains every collection that should make Character Items available to Ultimate Character Controller, normally Equippable Slots and Equippable.
  • Loadout Item Collection Names contains Loadout or the exact project-owned loadout names.
  • Inventory Identifier > ID is unique for every persistent character Inventory.
  • Item User > Inventory Input resolves the same Opsive player-input component that controls the Ultimate Character Controller character.

Collection names are exact runtime identifiers. Renaming a collection without updating the bridge, Item Actions, UI, saver assumptions, and Item Set Rules breaks the ownership chain.

Create the first equippable item

Use a single Iron Sword to prove the full workflow before adding special cases.

  1. Open Tools > Opsive > Ultimate Character Controller > Item Manager and create the Iron Sword’s Ultimate Character Controller Character Item prefab. Configure its slot, perspective objects, Item Actions, Animator IDs, and events as described in Item Creation.
  2. In the Ultimate Inventory System database, create or choose a Sword category that inherits from Equippable and Single Item. Use Multi Item only when one Ultimate Inventory System Item Definition needs more than one Ultimate Character Controller Character Item prefab, such as the same weapon in either hand.
  3. Create the Iron Sword Item Definition. Under its inherited Item Definition Attributes, assign the Ultimate Character Controller Character Item prefab to Prefabs.
  4. On Character Inventory Bridge, confirm that Character Item Prefabs Attribute Name is also Prefabs.
  5. On Inventory Item Set Manager, add a rule that accepts the Iron Sword in the Character Item’s Ultimate Character Controller slot.
  6. Add the integration’s Character Equip Unequip Item Action to the Ultimate Inventory System Item Action Set used by the equipment menu.
  7. Give the character one Iron Sword in Default and complete the Play Mode checks below.

An Ultimate Inventory System Item Action Set using Character Equip Unequip with separate Equip and Unequip labels.

The Ultimate Inventory System Item Definition replaces the old Ultimate Character Controller Item Type as the integrated Item’s identity. Do not create a second Ultimate Character Controller Item Type and try to keep it synchronized with the Ultimate Inventory System definition. The Character Item prefab supplies Ultimate Character Controller behavior; the Ultimate Inventory System Item carries identity, amount, and persistent attributes.

Choose the Item Set Rule

Inventory Item Set Manager recomputes Item Sets whenever an Ultimate Inventory System Item enters or leaves a bridge collection. Choose the narrowest rule that expresses the intended loadout:

Rule Use it when
Item Category Item Set Rule Any Item inheriting a category may occupy a slot, such as any one-handed blade in the right hand. It also supports definition and category exceptions.
Item Definition Item Set Rule One exact definition or exact combination needs its own Item Set, state, or animation behavior.
Item Slot Collection Item Set Rule The Ultimate Inventory System Item Slot Collection itself should map directly to Ultimate Character Controller slots. Its default collection name is Equippable Slots.

Inventory Item Set Manager with category-based rules grouped for equippable weapons, grenades, and magic.

Keep separate Item Set groups only when more than one set may be active at the same time. For example, a weapon group and a magic group can combine independently without authoring every weapon-plus-magic permutation.

Set each rule’s state deliberately. Ultimate Character Controller applies that state while the generated Item Set is active, so a Bow, Sword and Shield, or Body setup can select its matching Animator and ability presets. Use Item Set Rules for the underlying Ultimate Character Controller behavior.

Understand soft and active equipment

  • Unequipped: the Item is normally in Default and has no active Character Item.
  • Soft equipped: the Item is in a bridge collection, so the bridge can create its Character Item, but its Item Set is not active. This is useful for a holstered weapon.
  • Active equipped: the Item is in a bridge collection and its Item Set is active, so Ultimate Character Controller equips and can use its Character Item.

The default Character Equip Unequip action moves an Item between Default and a bridge collection and asks Ultimate Character Controller to equip or unequip it. Its advanced Not Move Equip option changes only active versus soft-equipped state; use that option only when another workflow already owns the collection move.

Bind Item attributes to Character Item behavior

Persistent values should live on the Ultimate Inventory System Item, not only on a spawned Character Item prefab.

  • Use Ultimate Inventory System Item Binding when a top-level component property should read or write an Item Attribute.
  • Use the integration’s Item Object Binding inside an Ultimate Character Controller State Object binding list when an Item Attribute should drive a property on an Item Action Module, Impact Action, Item Effect, or another bound State Object.
  • The Attribute value type and target property type must match.
  • The spawned Character Item needs an Item Object that resolves the Ultimate Inventory System Item before its bindings can update.

Good binding candidates include damage, impact force, color, durability, or a project-specific modifier. First prove the prefab with fixed values; then move only the values that genuinely need to persist or vary per Ultimate Inventory System Item into Attributes.

Configure a shootable weapon and ammo

Use Ultimate Inventory System Items for reserve ammunition and the integration’s AmmoData Attribute when a weapon’s loaded rounds and clip size must stay with that individual Item.

  1. Create an ammo Item Definition under the Ammo category, such as Rifle Bullet. Store its reserve quantity in the character’s normal Ultimate Inventory System Inventory.
  2. Make the weapon’s category inherit from both Single Item or Multi Item and Item With Ammo so it remains equippable and its runtime Item has a mutable AmmoData Attribute.
  3. Set AmmoData to the ammo Item Definition, clip size, and starting clip amount.
  4. On the Ultimate Character Controller Shootable Action, add Inventory Item Ammo to the Ammo Module Group.
  5. Enable Use Ammo Data and keep Ammo Data Attribute Name as AmmoData, or assign Ammo Item Definition directly when every instance of that weapon uses the same ammo and no per-Item choice is required.
  6. Leave Ammo Item Collection Names empty to use the Inventory’s Main collection, or list the exact collections that may supply reserve ammunition.
  7. Add Inventory Ammo Data Clip to the Clip Module Group and use the same Ammo Data Attribute Name.
  8. If the Ultimate Inventory System inventory view shows weapon ammunition, add Weapon Ammo Item View Module to the Item View and connect its loaded, clip-size, reserve-count, and optional ammo-icon controls.

An Ultimate Character Controller Shootable Action configured with Inventory Item Ammo and Inventory Ammo Data Clip using the AmmoData Item Attribute.

Inventory Item Ammo consumes Ultimate Inventory System ammo Items. Inventory Ammo Data Clip writes the changing loaded count back to the weapon Item’s AmmoData Attribute. Together they allow a partially loaded weapon to keep its own clip when it is unequipped, transferred, saved, and restored.

Configure pickups and drops

Choose one interaction model for each pickup:

  • Use the integration’s Inventory Item Pickup when the object should be collected through Ultimate Character Controller’s Pickup ability.
  • Use an ordinary Ultimate Inventory System pickup or Inventory Interactable when Ultimate Inventory System interaction should own the collection step.

To create an integration pickup:

  1. Open Tools > Opsive > Ultimate Inventory System > Integrations Manager.
  2. Under Ultimate Character Controller > Item Pickup Setup, assign the Ultimate Character Controller prefab to Character Item and an optional visible object to Pickup Model Object.
  3. Select Setup Item Pickup and save the generated prefab in a project-owned folder.
  4. On Inventory Item Pickup, choose whether to Equip On Pickup, Pickup Item Copies, and Remove Items On Pickup.
  5. Confirm that the pickup’s Ultimate Inventory System Inventory contains the intended Item and amount.

The setup creates the required collider, trigger, Ultimate Inventory System Inventory, Inventory Item Pickup, and Ultimate Character Controller trajectory support. When a Character Item was supplied, it also assigns the generated prefab to that Character Item’s Drop Prefab and seeds the pickup Inventory with its Item Definition.

For character-driven dropping, configure Character Inventory Bridge > Item Drop:

  • Inventory Item Pickup Prefab is the generic drop prefab and must contain an Ultimate Inventory System Inventory and Inventory Item Pickup.
  • Drop Using Character Item When Possible uses the active Character Item’s Drop Prefab when available; otherwise the generic prefab is used.
  • Item Drop Position Offset controls the spawn offset from the character.

Use the integration’s Character Drop or Character Quantity Drop Item Action so the bridge can unequip, remove, and create the correct pickup in one workflow.

Equip clothes and skinned armor

Pure clothing and armor should normally remain an Ultimate Inventory System equipment workflow rather than becoming Ultimate Character Controller Character Items.

  1. Create a separate Ultimate Inventory System Item Slot Collection such as Armor Equipped with purpose Equipped and an Item Slot Set for Head, Chest, Legs, or the slots the game needs.
  2. Do not make those armor categories inherit from the bridge’s Equippable category unless the item genuinely needs Ultimate Character Controller Item Actions and abilities.
  3. Add Ultimate Inventory System Equipper to the character and point Equipment Item Collection ID to Armor Equipped.
  4. Use the same Item Slot Set on the collection, Equipper, and equipment UI.
  5. Assign the armor visual through EquipmentPrefab. Add UsableItemPrefab only when the Ultimate Inventory System Equipper workflow also needs a functional Item Object.
  6. Enable Skinned Equipment for deforming armor and verify its bones against the character rig.
  7. Use Ultimate Inventory System Move To Collection Item Action for armor. Reserve Character Equip Unequip for bridge Items that must activate an Ultimate Character Controller Item Set.

This separation prevents a shirt or helmet from accidentally becoming an active weapon while still allowing Ultimate Inventory System to display, save, and rebuild the equipped visuals. Follow Equipping Items for the complete Equipper workflow.

Configure inventory actions, UI, and input

Build the Bag, equipment, hotbar, and menu with Ultimate Inventory System. Use integration actions only where the operation must pass through Ultimate Character Controller:

Ultimate Inventory System Item Action Result
Character Equip Unequip Moves and equips, unequips, or changes active versus soft-equipped state through the bridge.
Character Use Equips an Item when necessary and starts its Ultimate Character Controller Use ability. If the action had to equip the Item first, it unequips it after use completes.
Character Drop Drops the selected Item through the character bridge.
Character Quantity Drop Opens the quantity picker when needed, then drops that amount through the bridge.
Character Modify Attribute Changes one named Ultimate Character Controller Attribute from Ultimate Inventory System Item Attribute values and can consume the Item.
Character Modify Attributes Applies multiple configured Ultimate Inventory System-to-Ultimate Character Controller Attribute changes in one use.

Use ordinary Ultimate Inventory System actions for Ultimate Inventory System-only operations such as moving armor between Bag and an armor Item Slot Collection.

The integration also supplies Character Equipped Select Item View Module to distinguish unequipped, soft-equipped, and active-equipped Item Views, and Weapon Ammo Item View Module to display current shootable ammo.

Character Setup assigns the detected Opsive player input to Item User > Inventory Input. Verify that reference after conversion, particularly when the project uses Unity’s Input System or a third-party input integration. Do not leave two active IPlayerInput implementations on one player.

For a full-screen menu:

  1. Use Ultimate Inventory System Enable Disable Inventory Input to disable gameplay inventory handlers while the menu is enabled and restore them when it closes.
  2. Keep the menu’s EventSystem, UI input module, and close action active.
  3. Use Display Panel Manager Handler for the panel shortcuts and cursor behavior.
  4. Test that Ultimate Character Controller movement and Item Actions stop while the menu owns input and resume after it closes.

See Ultimate Inventory System Input for backend, EventSystem, action-map, and local-player ownership setup.

Apply Item-driven character states

Use Item To Character State Binding when owning or equipping an Item should activate one or more Ultimate Character Controller states without creating a custom script.

  1. Add a string Item Attribute such as State to the relevant Ultimate Inventory System category or definition.
  2. Add Item To Character State Binding to the character.
  3. Assign Inventory Bridge, set Item Collection Name to the collection to watch, and set State Attribute Name to State.
  4. Put one or more Ultimate Character Controller state names in the Item Attribute. Separate multiple names with commas.

The component reevaluates the watched collection whenever it changes, activates states named by current Items, and deactivates states that are no longer present. Use a dedicated collection when a state should apply only while equipped rather than merely owned. See State System for state and preset behavior.

Save the integrated Inventory

Use Inventory Bridge Saver on the converted character. Do not also add the standard Ultimate Inventory System Inventory Saver to that Inventory; it does not preserve the bridge’s active Item Set state and is not compatible with this character workflow.

  1. Set up the Ultimate Inventory System Save System Manager.
  2. Add Inventory System Manager Item Saver so mutable and unique Ultimate Inventory System Items are serialized once.
  3. Keep Inventory Bridge Saver on the same GameObject as the bridged Ultimate Inventory System Inventory and Ultimate Character Controller character.
  4. Give every saved character a unique Inventory Identifier > ID.
  5. Keep the Item Collection order and Item Set group structure stable after shipping save files.
  6. Save with an Item equipped, change both its collection and active Item Set, then load the same slot.

Inventory Bridge Saver records each non-Loadout collection by index and the active Item Set index for each group. During loading it unequips and clears the previous bridge state, restores the saved Items, waits one frame for Character Items to initialize, and then restores the active Item Sets. Loadout collections are deliberately handled as loadout rather than saved inventory contents.

Follow Ultimate Inventory System Save System for save slots, UI, and custom save-system nesting.

Migrate an existing Ultimate Character Controller item setup

Treat migration as a change of inventory ownership, not a field-for-field conversion.

  1. Make every existing Ultimate Character Controller Item a tested Character Item prefab using the current Item Creation workflow.
  2. Record its slot, Animator IDs, Item Actions, Item Set rules, loadout, pickup prefab, and state dependencies.
  3. Create a project checkpoint, select the Ultimate Inventory System database, and run Setup Character.
  4. Create one Ultimate Inventory System Item Definition per inventory identity and assign the corresponding Character Item prefab through Prefabs.
  5. Rebuild or review the rules on Inventory Item Set Manager. Resolve every category-remapping warning from Character Setup.
  6. Replace direct Ultimate Character Controller inventory grants with Ultimate Inventory System loadouts, pickups, shops, crafting, or project code.
  7. Replace UI equip/drop/use actions with the integration actions where Ultimate Character Controller must participate.
  8. Validate saving with Inventory Bridge Saver before removing the old scene or prefab setup.

Do not copy an old Item’s scene instance into the Ultimate Inventory System pickup Drop Prefab. An Ultimate Character Controller Character Item prefab runs on the character; a pickup prefab is a world object with its own Inventory and pickup component.

Editor checkpoint

Before entering Play Mode, confirm that:

  • the Integration Inspector’s version and requirement block has been reviewed and the bridge has no compile errors;
  • the Main Manager and scene Inventory System Manager use the same project-owned database;
  • the character has Ultimate Inventory System Inventory, Character Inventory Bridge, Inventory Item Set Manager, Item User, and Inventory Bridge Saver;
  • Default, Equippable Slots, Equippable, and Loadout exist in the expected order and match the bridge’s names;
  • Equippable Category and every Item Set group category belong to the current database;
  • every equippable definition inherits from Single Item or Multi Item and its Prefabs value has the correct type;
  • each Character Item prefab has the intended Ultimate Character Controller slot and a matching Item Set Rule;
  • the Ultimate Inventory System Item Action Set uses Character Equip Unequip for weapons;
  • Item User > Inventory Input points to the correct local player’s Opsive input;
  • each Inventory Identifier ID is unique;
  • ammo Attribute and module names match exactly when a shootable weapon uses Ultimate Inventory System ammo; and
  • the Save System Manager has Inventory System Manager Item Saver, with no standard Inventory Saver on the bridged character.

Verify in Play Mode

  1. Start with one Iron Sword in Default. Confirm that the Ultimate Inventory System Bag shows it and no sword is active on the character.
  2. Invoke Character Equip Unequip. Confirm that the Item moves into the intended bridge collection, the correct Character Item appears in its Ultimate Character Controller slot, and the expected Item Set becomes active.
  3. Use the sword through normal character input. Confirm that Ultimate Character Controller owns the Use ability and animation while the Ultimate Inventory System Item remains available to UI and bindings.
  4. Unequip the sword. Confirm that it returns to Default and the Character Item and active Item Set change as intended.
  5. Put the weapon in a bridge collection without activating its set. Confirm that the UI reports soft equipped and that it cannot be used as the active Item.
  6. For a shootable weapon, fire and reload. Confirm that reserve Ultimate Inventory System ammo decreases and AmmoData keeps the loaded count after unequipping and re-equipping the weapon.
  7. Pick up and drop one equippable Item. Confirm that the world object, Ultimate Inventory System quantity, bridge collection, Character Item, and Item Set each change once.
  8. Equip Ultimate Inventory System-only armor. Confirm that Equipper creates the visual without activating an Ultimate Character Controller weapon Item Set.
  9. Open the inventory menu. Confirm that gameplay input stops, UI input and the close action remain available, and the cursor follows the menu state.
  10. Save with an Item equipped and a partially loaded clip, change the Inventory, then load. Confirm that collection contents, mutable Item data, and active Item Set return together.
  11. Repeat equip, UI, pickup, and save checks for every local player. Each player’s input, Inventory Identifier, UI owner, and Inventory must remain separate.

Troubleshooting

Symptom Check Fix
The integration is missing or reports unresolved types Bridge version, installed product versions, and duplicate old integration files Install the product versions required by the downloaded bridge, remove the old copy, then reimport after both products compile. For the inspected 3.0.5 bridge, the minimums are Ultimate Character Controller 3.0.10 and Ultimate Inventory System 1.2.16.
Setup Character is disabled The assigned object may not be a scene object with Ultimate Character Locomotion Build or update the Ultimate Character Controller character, place it in the scene, and assign its root.
Character Setup warns that Ammo or Equippable cannot be found The selected database lacks the expected categories or the scene uses another database Duplicate EmptyCharacterInventoryDatabase, assign that database to both managers, or add the exact categories before converting.
Character Setup stops while configuring input The packaged setup path may not resolve the character’s current Opsive input implementation Do not add a second input backend merely to hide the error. Keep the existing player input, verify which conversion components were added, assign it to Item User > Inventory Input, and use a bridge update or project fix for the setup path.
An Item exists in Ultimate Inventory System but no Character Item appears Category inheritance, Prefabs spelling and type, assigned prefab, and bridge Attribute name Inherit from Single Item for GameObject or Multi Item for GameObject[], assign the prefab, and keep the bridge name synchronized.
The Character Item appears but never becomes active Bridge collection, Character Item slot, Item Set group category, and rule Put the Item in a listed bridge collection and make the rule, category, and slot agree.
The UI changes equipment but the character does not The UI may use ordinary Move To Collection instead of the integration action Use Character Equip Unequip for Ultimate Character Controller weapons and confirm the target collection is listed under Bridge Item Collection Names.
A holstered Item is treated as unequipped or active at the wrong time Collection membership and the Not Move Equip choice may not match the intended soft-equip flow Keep the Item in a bridge collection for soft equipment and change only its active Item Set when appropriate.
The wrong hand or weapon combination activates Character Item slot and Item Set Rule slots or exceptions Correct the prefab slot and use a category, definition, or slot-collection rule that permits only the intended combination.
Ammo never decreases or reload finds no reserve Ammo Item Definition, source collection names, and Inventory Item Ammo configuration Put the correct ammo Item in a searched collection and match the definition or AmmoData Attribute.
A weapon loses its loaded rounds when switched or loaded Missing mutable AmmoData, missing Inventory Ammo Data Clip, or wrong Attribute name Add the Item-level Attribute and clip module, use the same name, and save mutable Items with Inventory System Manager Item Saver.
Dropping logs that the pickup prefab is missing or has no Inventory Inventory Item Pickup Prefab, Character Item Drop Prefab, and required pickup components Assign a generated integration pickup or another prefab containing Ultimate Inventory System Inventory and Inventory Item Pickup.
Armor enters the weapon bridge or activates an Item Set Armor category or UI action may use the Ultimate Character Controller bridge workflow Remove the Equippable inheritance, use a separate Ultimate Inventory System Item Slot Collection and Equipper, and use Move To Collection.
Item Actions or menu shortcuts do not respond Item User > Inventory Input, active input backend, panel owner, and gameplay-input state Assign the correct local IPlayerInput, remove competing input owners, and restore gameplay input when the menu closes.
Loading duplicates Items or restores the wrong active set Standard Inventory Saver, missing manager Item saver, changed collection order, or non-unique identifier Keep only Inventory Bridge Saver on the character, add Inventory System Manager Item Saver, preserve order, and use a unique ID.

Developer reference

The current runtime types use different Item and Inventory names across the two products. Alias them explicitly in integration code:

using InventoryItem = Opsive.UltimateInventorySystem.Core.Item;
using Inventory = Opsive.UltimateInventorySystem.Core.InventoryCollections.Inventory;
using ItemCollection = Opsive.UltimateInventorySystem.Core.InventoryCollections.ItemCollection;
using CharacterItem = Opsive.UltimateCharacterController.Items.CharacterItem;

CharacterInventoryBridge exposes the main project extension points: MoveItemToEquippable, MoveItemToDefault, MoveEquip, Equip, IsItemActive, GetActiveInventoryItem, GetInventoryItem, and DropItem. Use MoveEquip when code owns both the collection move and active equip request. Use Equip only when the Item is already in a bridge collection.

The bridge source is under Assets/Opsive/UltimateCharacterController/Integrations/UltimateInventorySystem/Scripts. Important extension types include:

  • CharacterInventoryBridge and InventoryItemSetManager
  • ItemCategoryItemSetRule, ItemDefinitionItemSetRule, and ItemSlotCollectionItemSetRule
  • CharacterEquipUnequipItemAction, CharacterUseItemAction, CharacterDropItemAction, and CharacterQuantityDropItemAction
  • ItemObjectBinding and ItemToCharacterStateBinding
  • InventoryItemAmmo and InventoryAmmoDataClip
  • InventoryItemPickup
  • CharacterEquippedSelectItemViewModule and WeaponAmmoItemViewModule
  • InventoryBridgeSaver

The integration-specific save lifecycle events are OnInventoryBridgeSaverWillLoad and OnInventoryBridgeSaverLoaded, declared in IntegrationEventNames. The bridge does not add network replication or authority. In a multiplayer project, make the Ultimate Inventory System inventory transaction authoritative, replicate Item and collection state through the networking layer, and let each owning client rebuild the local Ultimate Character Controller Character Item and Item Set representation.