Keep Your Assets in a Cooked Build

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

Prerequisites
CrimsonUI 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. CrimsonUI registers them with the Asset Manager as AlwaysCook, but it can only do that for folders you tell it about.

Primary asset typeAuthored as
CrimsonRadialMenuDefinitionData asset (UCrimsonRadialMenuDefinition)
CrimsonRadialLayoutDefinitionData asset (UCrimsonRadialLayoutDefinition)

1. Point the scan paths at your content

CrimsonUI uses its own ini
UCrimsonUISettings is declared Config = CrimsonUI, so its entries live in Config/DefaultCrimsonUI.ini, not DefaultGame.ini.

Set PrimaryAssetScanPaths on UCrimsonUISettings to the folder (or folders) holding these assets. Sub-folders are included.

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

Verify
Restart the editor and search the Output Log for LogCrimsonUI: CrimsonUI: 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
LogCrimsonUI: CrimsonUI: registered N primary asset type(s) as AlwaysCook across M scan path(s).
Verify
Run AssetManager.DumpAssetRegistryInfo in the editor console - both radial types should report a non-zero count.

3. Confirm they cooked

Package a Development build, then check the cooked output directly. Under Saved/Cooked/<Platform>/<Project>/ you should find every asset of the types in the table above: assets you authored in your own content cook under your project's mount point, and plugin content cooks under that plugin's own mount point. Then open the cook log in Saved/Logs/ and confirm it reports no missing entry for them.

Anything of a type in the table above that is absent from the cooked output is still being dropped - re-check step 1, then re-cook.

See also

  • API Reference - UCrimsonUISettings scan paths
  • How-To: Get the Building Blocks - where the settings live