Files
UE5-Modular-Game-Framework/docs/blueprints/14-data-assets/118_DA_DataAssetArchitecture.md
Lefteris Notas dc9c1a6b98 Add DA_RenderPipelineProfile and Platform Render Profiles documentation
- Introduced DA_RenderPipelineProfile data asset to define rendering pipeline configurations for various platforms and quality tiers.
- Documented enums, structs, variables, and default preset tables for render settings.
- Created a comprehensive developer guide for setting up platform-specific render profiles, including file structure, profile creation, and integration with upscalers.
- Included validation rules, console variable references, and testing matrices for ensuring compliance with platform requirements.
2026-05-22 18:10:24 +03:00

4.0 KiB

DA_DataAssetArchitecture — Data Asset Architecture Overview

Parent Class: UDataAsset Dependencies: All consuming systems Purpose: Overview of all 20 Data Asset types in the framework, naming conventions, and dependency rules.


Architecture

The Modular Game Framework uses UDataAsset (and subclass UPrimaryDataAsset where persistent identifiers are needed) as the primary authoring format for designer-facing content. Each DA type covers one content domain: weapons, AI profiles, atmosphere presets, narrative data, encounter definitions, etc.

Conventions

  • Naming: DA_<Domain><Subtype> — e.g., DA_WeaponData, DA_AIProfile, DA_AtmosphereProfile
  • Storage: All DA files live in Content/DataAssets/<Domain>/ in-engine
  • Parent Class: Primary Data Asset (Blueprint class). Maps to C++ UPrimaryDataAsset.
  • Loading: Use Async Load Primary Asset node with Primary Asset Id and Primary Asset Type
  • Validation: Each DA implements a ValidateData() function for editor-time data integrity checks
  • Gameplay Tags: All DAs carry a Gameplay Tag Container for query and filtering

Dependency Rules

  1. DAs reference other DAs by Primary Asset Id or Soft Object Reference, never by hard pointer
  2. No DA may reference a runtime system; only other DAs
  3. Circular DA references are prohibited — use World Context Object for runtime resolution
  4. All DA types are registered in DefaultGame.ini under [/Script/Engine.AssetManagerSettings]
    • In BP: configure via Project Settings → Asset Manager → Primary Asset Types to Scan

BP Type Reference

C++ Type Blueprint Variable Type BP Node
FPrimaryAssetId Primary Asset Id Make Primary Asset Id, Break Primary Asset Id
FPrimaryAssetType Primary Asset Type Make Primary Asset Type
TSoftObjectPtr<T> Soft Object Reference Async Load Primary Asset, Resolve Soft Reference
FGameplayTagContainer Gameplay Tag Container Has Tag, Add Tag, Has Any
UPrimaryDataAsset Primary Data Asset (parent class) Right-click → Miscellaneous → Data Asset → PrimaryDataAsset

Registered DA Types (Section 13 of Master)

# DA Type Domain Consumed By
1 DA_ItemData Items BPC_InventorySystem
2 DA_WeaponData Weapons BPC_FirearmSystem, BPC_MeleeSystem
3 DA_AmmoData Weapons BPC_AmmoComponent
4 DA_AIProfile AI AI_BaseAgentController
5 DA_NarrativeData Narrative BPC_NarrativeStateSystem
6 DA_EndingData Narrative BPC_EndingAccumulator
7 DA_InteractionData Interaction BPC_InteractionDetector
8 DA_ObjectiveData Narrative/UI BPC_ObjectiveSystem, WBP_ObjectiveDisplay
9 DA_EncounterData Adaptive BPC_ProceduralEncounter
10 DA_AtmosphereProfile Adaptive BPC_AtmosphereStateController
11 DA_ScareEvent Adaptive BPC_ScareEventSystem
12 DA_RoomMutation Adaptive BPC_AdaptiveEnvironmentDirector
13 DA_BehaviourVariant AI BPC_BehaviourVariantSelector
14 DA_HapticProfile Settings BPC_HapticsController (148)
15 DA_RenderPipelineProfile Settings BPC_RenderPipelineManager (149)
15 DA_AdaptationRule Adaptive BPC_DifficultyManager
16 DA_EquipmentConfig Inventory BPC_EquipmentSlotSystem
17 DA_PuzzleData Interaction BP_PuzzleDeviceActor
18 DA_RareEvent Adaptive BPC_RareEventSystem
19 DA_LevelConfig Core GM_CoreGameMode
20 DA_AudioSettings Audio SS_AudioManager (132) — replaces deprecated DA_AudioPresets

Reuse Notes

  • This overview serves as a registry — all DA types referenced in any system must appear here
  • New DA types require registration in DefaultGame.ini AND this document
  • All individual DA spec files are in docs/blueprints/14-data-assets/