reference
Troubleshooting
The issues we actually see in support mail, with fixes. If yours isn't here, write us — replies within two business days.
Import & first run
| Symptom | Description |
|---|---|
| "Missing (Mono Script)" on demo Camera / Light | URP isn't installed. Install Universal RP from the Package Manager and assign a URP asset in Graphics/Quality settings — or delete the demo Camera/Light if you're on Built-in/HDRP; the inventory UI doesn't need them. |
| UnassignedReferenceException: TMP_FontAsset material | TMP Essential Resources aren't imported. Run Window▸TextMeshPro▸Import TMP Essential Resources once. |
| Console warnings during the automated test run | Expected — the negative-path tests intentionally log ~20 warnings/errors (asserted via LogAssert). Pass/fail is the green/red in the Test Runner, not Console noise. |
Items & saving
| Symptom | Description |
|---|---|
| Saved items vanish on load | The load path resolves items by ID via Resources.LoadAll. Check that (a) your ItemData assets live under a Resources/ folder, and (b) no two items share an ID — the Item Browser tints collisions red. Items that can't be resolved are skipped. |
| Wrong item appears after load | Duplicate Item IDs — "first found wins." Use the Item Browser's duplicate tool (it assigns fresh IDs) instead of Ctrl+D copies. |
| Stackable checkbox keeps turning itself off | The item is also rotatable. Items are rotatable XOR stackable by design; the inspector auto-resolves the conflict in favor of rotation. |
| Runtime-created ItemData not found by save/load | The ID cache builds once per session — call ItemDataCache.Clear() after creating items at runtime, or register a custom ItemDataResolver. |
| L-shaped items still collide as rectangles | By design: collision uses the full Width×Height bounding box, not the painted shape mask. Custom shapes are visual/data metadata only. |
Scene setup
| Symptom | Description |
|---|---|
| "GridUI is not assigned" / controller won't initialize | The InventoryController.gridUI field is required. The inspector shows an error with a one-click "Add GridUI" fix. |
| Drag-and-drop does nothing | Usually a missing EventSystem (the controller inspector has an auto-fix) or the inventory isn't under a Canvas with a GraphicRaycaster. |
| Hotbar digit keys don't respond | Digit polling requires the new Input System package (and an Input System-compatible EventSystem module). On legacy input, call ActivateSlot(int) from your own handlers. |
| Performance warning about grid size | Grids past 1000 cells (500 at runtime) warn because every cell is a UI element. Prefer several themed containers over one giant grid. |
Upgrading from v1
// note
v2 renamed the assemblies to
NullBolt.InventorySystem.* (file GUIDs unchanged, so importing over v1 is clean). If your own asmdef referenced InventorySystem.Runtime, re-point it to NullBolt.InventorySystem.Runtime. C# namespaces did not change — code compiles as-is — and v1 save files load transparently. Menu items moved from Tools to Window▸NullBolt▸Inventory System.Still stuck?
Email null.bolt.studios@gmail.com with your Unity version, render pipeline, and a Console screenshot — or use the support form. Replies within two business days.