Keep Your Assets in a Cooked Build

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

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

Primary asset typeAuthored as
CrimsonAbilityAugmentData asset (UCrimsonAbilityAugment)
CrimsonAbilityContractData asset (UCrimsonAbilityContract)
CrimsonAbilityDefinitionData asset (UCrimsonAbilityDefinition)
CrimsonComboGraphAssetData asset (UCrimsonComboGraphAsset)

1. Point the scan paths at your content

Augments are the usual casualty
Combo steps hold augments as TArray<TSoftObjectPtr<UCrimsonAbilityAugment>>, and an augment attached to a skill tree node cooks only if that tree cooks. Before this registration existed, a Development cook of this project shipped zero augments.

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

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

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

3. Confirm they cooked

Package a Development build, then check the cooked output directly. Assets from your own content folders land under Saved/Cooked/<Platform>/<Project>/Content/..., and a plugin's content cooks under that plugin's own mount point. Confirm every asset of a type in the table above is present, and that the cook log in Saved/Logs/ 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 - UCrimsonAbilitySystemSettings scan paths
  • How-To: Get the Building Blocks - where the settings live