Skip to main content
System decisionData

Data Asset or Primary Data Asset?

Decide whether a data asset needs direct discovery and loading through the Asset Manager.

UDataAssetUPrimaryDataAssetAsset ManagerFPrimaryAssetId

Recommendation

Use UPrimaryDataAsset when the Asset Manager must discover, identify, audit, load, unload, bundle, or chunk the asset directly. Use UDataAsset for ordinary referenced data.

Compare the options

Data Asset

Choose when

  • Normal object references load the asset.
  • A stable Primary Asset ID is not needed.
  • Asset bundles and chunk rules are unnecessary.

Tradeoffs

  • The setup is simple.
  • The Asset Manager treats it as a secondary asset unless its class provides a valid Primary Asset ID.
Blueprint
Use a typed Data Asset object reference.
C++
Derive the definition class from UDataAsset.

Primary Data Asset

Choose when

  • Content must be discovered by type.
  • The asset loads on demand without a hard reference.
  • Asset bundles, auditing, DLC, or install chunks matter.

Tradeoffs

  • The project needs Asset Manager configuration.
  • Asset types, IDs, and bundle rules need consistent ownership.
Blueprint
Use Asset Manager nodes such as Load Primary Asset and Get Primary Asset Object.
C++
Use UPrimaryDataAsset, FPrimaryAssetId, and UAssetManager.

Requirements

Both classes are built into the Engine. Primary assets also need Asset Manager scan rules and a stable asset type and ID scheme.

Example

Use UDataAsset for a small difficulty settings asset that is always loaded. Use UPrimaryDataAsset for an item catalog loaded by item ID and divided into install chunks.

Epic documentation

Related guides

Unreal Directive is free and ad-free.

If it saved you time, you can help keep it that way.

Donate