Inventory Dev Tools Window
An immediate-mode SlateIM panel for the full inventory feature surface during PIE. Open it from Tools -> Crimson Inventory -> Inventory Dev Tools or with the console command Crimson.Inventory.DevTools.
Target selector
A dropdown above the tabs enumerates every UCrimsonInventoryManagerComponent in the PIE world - player pawns, container actors, instance actors, and personal containers held by routing components. Every tab retargets when you switch.
Tabs
| Tab | Purpose |
|---|---|
| Items | Grant items by definition + placement policy + quantity; live entries table with EntryId / slot / grid / rotation / group / locked / stacks; per-row Lock / Drop 1 / Drop All / Delete; per-row Sel checkbox feeding the Drop Selected as Bag (N) button (needs DefaultBagActorClass set); 'Clear All' / 'Clear Selection'; 'Grant All Starter Items' shortcut driven by UCrimsonInventoryDevToolsSettings::StarterItems. |
| Layout | Inspect layout asset (class, capacity hint, grid size, occupancy). Swap layout from a dropdown. Bump int/float tag-stack caps by entering a tag and delta. Add/remove runtime UCrimsonInventoryConstraint subobjects from a class picker. |
| Currency | List currencies on the target. Pick a registered currency data table + row, set an amount, click Add / Remove. |
| Containers | Every ACrimsonContainerActorBase in the world with scope + tag + entry count. Click Target to retarget the window. Sub-section: registered virtual stashes (UCrimsonContainerSubsystem). |
| Routing | Routing-component readout for the first PIE PlayerController. Personal containers list. Scope-key overrides: type a party id or dungeon id and click Apply; the routing component returns it from ResolvePartyKey / ResolveDungeonInstanceKey for the next OpenContainer call (no real party/dungeon system required). Live instance-subsystem table with per-row Add Me / Remove Me / Destroy. |
| Crafting | Pick a crafting station in the level + a recipe asset. Live table of required ingredients vs. quantity in the targeted inventory. 'Craft (force)' button calls Station->CraftItem. |
| Messages | Coalesced live tail of all eight inventory message tags (StackChanged, InventoryUpdated, ConstraintFailureMessage, ConstraintChanged, ItemDropped, CurrencyDropped, CurrencyChanged, Container_Message_Changed). Pause / Resume / Clear, tag-substring filter. Caps at 20 entries. |
| Save | Snapshot Now -> renders a human-readable summary of FCrimsonInventorySaveData (layout, entries, constraints, caps, currencies). 'Snapshot -> Re-apply (round-trip test)' button verifies the data path. 'Clear Inventory' empties the selected target while preserving its layout. |
| Cheats | Buttons defined in Project Settings -> Crimson -> Crimson Inventory Dev Tools -> Custom Cheats. Each cheat has Label / Command / Category - cheats with the same category render in one row. Commands route through the first PIE PlayerController's ConsoleCommand. |
UCrimsonInventoryDevToolsSettings
Project Settings -> Crimson -> Crimson Inventory Dev Tools. Config saved to DefaultGame.ini, source-controlled so the whole team shares the setup.
| Property | Used by |
|---|---|
CustomCheats | Cheats tab: array of { Label, Command, Category } entries |
StarterItems | Items tab: 'Grant All Starter Items' shortcut - one of each in order |
DefaultDebugLayout | Routing tab: layout assigned to a personal container created via the debug button |
DefaultBagActorClass | Items tab: pickup actor class spawned by the 'Drop Selected as Bag' button (multi-select checkboxes in the entries table) |
PIE / scope-key overrides
The Routing tab calls UCrimsonInventoryRoutingComponent::SetTestPartyKeyOverride / SetTestDungeonInstanceKeyOverride (both WITH_EDITORONLY_DATA, no shipping cost). The overrides clear automatically on PIE end so they never leak into the next session.
WITH_EDITORONLY_DATA blocks. None of it ships with a packaged build.