Keep Your Assets in a Cooked Build

Goal: make sure every CrimsonInventory asset you author ships in a packaged build, not just in the editor.

Prerequisites
CrimsonInventory enabled, and at least one asset of the types below authored somewhere in your project's content.

These types are reached through soft references and by-id lookups, which the cooker does not follow. CrimsonInventory registers them with the Asset Manager as AlwaysCook, but it can only do that for folders you tell it about.

Primary asset typeAuthored as
CrimsonInventoryItemDefinitionBlueprint subclass of UCrimsonInventoryItemDefinition

1. Point the scan paths at your content

Set ItemDefinitionScanPaths on UCrimsonInventorySettings to the folder (or folders) holding these assets. Sub-folders are included. Use the mount path the Content Browser's Copy Reference gives you for that folder.

Project Settings -> Crimson -> Crimson Inventory -> Asset Discovery -> ItemDefinitionScanPaths. Click +, then pick your folder with the directory picker.

Verify
Restart the editor and search the Output Log for LogCrimsonInventory: CrimsonInventory: registered N primary asset type(s) as AlwaysCook across M scan path(s). M must match the number of paths you added; a blank entry is skipped and never counted.

2. Confirm the Asset Manager sees them

With the editor open, the registration log line names how many types were registered:

ini
LogCrimsonInventory: CrimsonInventory: registered N primary asset type(s) as AlwaysCook across M scan path(s).
Verify
Open the item picker in the Inventory dev tools, or call GetAllItemDefinitionIds - every definition in a scanned folder should be listed.

3. Confirm they cooked

Package a Development build, then look for the assets in the cooked output under Saved/Cooked/<Platform>/<YourProject>/. Assets in your own content folders land under that project's Content/; assets that ship inside a plugin cook under that plugin's own mount point.

Then open the cook log in Saved/Logs/ and search it for the names of the types in the table above. A type the cooker could not find is reported there, and anything of a type in the table that is missing from the cooked output is still being dropped - re-check step 1, then re-cook.

See also

  • API Reference - UCrimsonInventorySettings::ItemDefinitionScanPaths
  • How-To: Get the Building Blocks - where the settings live