Skip to content

Data Tables & Assets

Blueprint AI manages the data-driven side of a project: Data Tables and their rows, Composite Data Tables that inherit and override rows, and Data Assets with full structured property values. The struct and enum types these reference are authored in the Blueprints domain.

Create a Data Table called DT_Weapons in /Game/Data using the WeaponRow struct Add a row named Pistol with Damage 12, FireRate 0.4, and ClipSize 12 Update the Pistol row to set Damage to 15 Sort DT_Weapons by Damage descending and search for rows where FireRate < 0.5

Batch-add ten weapon rows to DT_Weapons from this JSON Import DT_Weapons from this CSV Export DT_Weapons to JSON

Composite tables stack parent tables; higher-priority parents override rows from lower ones.

Create a Composite Data Table called DT_WeaponsTuned that inherits from DT_Weapons_Base and DT_Weapons_Balance Show which parent the Pistol row resolves from and list any conflicts Reorder DT_Weapons_Balance to the top priority

A Data Registry is a named, queryable store of struct data — a wrapper around one or more Data/Curve Tables (or other sources) that gameplay code fetches items from by id. Author the registry’s type name, its item (row) struct, its cache policy, and its ordered list of table sources.

Create a Data Registry called DR_ItemStats in /Game/Data Set its RegistryType to ItemStats and its ItemStruct to /Script/Engine.TableRowBase Add a DataTable source pointing at DT_ItemStats and a CurveTable source pointing at CT_ItemCurves Set DefaultCachePolicy.MaxNumberKept to 64 Describe DR_ItemStats to list its sources, item struct, and cache policy

Data Assets accept full JSON values — scalars, arrays, nested structs, maps, and object references.

Create a Data Asset called DA_LevelConfig of class LevelConfigData in /Game/Data Set its SpawnPoints array and its Difficulty map from this JSON Append an entry to DA_LevelConfig’s EnemyWaves array Diff DA_LevelConfig against DA_LevelConfig_Hard