Skip to main content
System decisionData

Data Table or Data Asset?

Choose between a table of uniform rows and individual assets with their own data definitions.

Data TableData AssetFTableRowBaseUDataAsset

Recommendation

Use a Data Table for many records that share one row structure and benefit from spreadsheet editing. Use Data Assets when each definition needs its own asset or may grow beyond a flat record.

Compare the options

Data Table

Choose when

  • Many records share the same fields.
  • Designers need to compare or edit values in bulk.
  • CSV or JSON import and reimport is part of the workflow.

Tradeoffs

  • Every row follows the same UStruct.
  • The table is one shared asset in source control.
  • Hard asset references can load their targets with the table.
Blueprint
Use Get Data Table Row or a Data Table Row Handle, then break the row struct.
C++
Use UDataTable, a struct derived from FTableRowBase, FDataTableRowHandle, and FindRow<T>().

Data Asset

Choose when

  • Each definition needs its own Content Browser asset.
  • Definitions contain rich asset references.
  • Different definition types need different classes.

Tradeoffs

  • Individual assets are easier to own and review separately.
  • Bulk comparison and spreadsheet round-tripping are weaker.
Blueprint
Use a typed Data Asset object reference and read its exposed properties.
C++
Create a class derived from UDataAsset and create instances in the Content Browser.

Requirements

Both systems are built into the Engine. A Data Table row struct must inherit from FTableRowBase.

Example

Store 300 level-to-XP records in a Data Table. Store each weapon definition in a Data Asset when it owns meshes, sounds, abilities, and presentation data.

Epic documentation

Related guides

Unreal Directive is free and ad-free.

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

Donate