RealDocs

UDataAsset

class Engine Since 4.0
#include "Engine/DataAsset.h"

Description

A simple UObject-derived asset that holds designer-authored data. Create native subclasses with UPROPERTY fields, then create instances as `.uasset` files in the Content Browser.

Signature

class UDataAsset : public UObject

Caveats & Gotchas

  • UDataAsset is not manageable by UAssetManager — use UPrimaryDataAsset if you need async loading, bundle support, or asset management.
  • Data assets load lazily by default (LoadBehavior=LazyOnDemand). They won't be in memory until something hard-references them at cook time.
  • Prefer UDataAsset over UDeveloperSettings for per-object data; UDeveloperSettings is for project-wide config.

Example

Define a weapon data asset C++
UCLASS()
class UWeaponData : public UDataAsset
{
    GENERATED_BODY()
public:
    UPROPERTY(EditDefaultsOnly)
    float Damage = 10.f;
    UPROPERTY(EditDefaultsOnly)
    float FireRate = 0.5f;
    UPROPERTY(EditDefaultsOnly)
    TSoftObjectPtr<UStaticMesh> Mesh;
};

Version History

Introduced in: 4.0

Version Status Notes
5.6 stable

Feedback

Was this helpful?

Suggest an edit

Select a field above to begin editing.