Keep Your Assets in a Cooked Build
Goal: make sure every CrimsonSkillTree asset you author ships in a packaged build, not just in the editor.
These types are reached through soft references and by-id lookups, which the cooker does not follow. CrimsonSkillTree registers them with the Asset Manager as AlwaysCook, but it can only do that for folders you tell it about.
| Primary asset type | Authored as |
|---|---|
CrimsonSkillTree | Skill tree asset (UCrimsonSkillTree) |
1. Point the scan paths at your content
TObjectPtr. A tree granted at runtime through AddDynamicSkillTree has nothing pointing at it, so without this registration it is cooked out. Any augment reachable only through that tree's node events goes with it.Set PrimaryAssetScanPaths on UCrimsonSkillTreeSettings to the folder (or folders) holding these assets. Sub-folders are included.
Project Settings -> Crimson -> Crimson Skill Tree -> Asset Discovery -> PrimaryAssetScanPaths. Click +, then pick your folder with the directory picker.
LogCrimsonSkillTree: CrimsonSkillTree: 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:
LogCrimsonSkillTree: CrimsonSkillTree: registered N primary asset type(s) as AlwaysCook across M scan path(s).
AssetManager.DumpAssetRegistryInfo in the editor console - CrimsonSkillTree should report one entry per authored tree.3. Confirm they cooked
Package a Development build, then look in the cooked output for the assets themselves. Cooked content keeps its mount point: a tree authored in your project's content folder lands under Saved/Cooked/<Platform>/<Project>/Content/..., while a tree that ships inside a plugin lands under that plugin's own folder.
Confirm every tree of a type in the table above is present there, and that the cook log in Saved/Logs/ reports no missing entry for it.
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 -
UCrimsonSkillTreeSettingsscan paths - How-To: Get the Building Blocks - where the settings live