ue-data-driven-design

Implements data-driven Unreal gameplay using DataTables, DataAssets, curves, and config-backed settings.

55|5|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-data-driven-design-kevinpbuckley
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ue-data-driven-design
Source: https://github.com/kevinpbuckley/unreal-engine-skills/tree/main/skills/core/ue-data-driven-design
Command: npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-data-driven-design-kevinpbuckley

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Hardcoded gameplay values in Unreal Engine C++ make iteration slow and risky. This Skill guides you to move item stats, enemy configs, balance numbers, and curves into externally-editable assets and config objects that designers can tune without recompiling. ## Core Features & Use Cases - Container Selection Guidance: Choose the right data container for each need — UDataTable for tabular records, UCompositeDataTable for DLC/platform row layering, UDataAsset/UPrimaryDataAsset for rich config objects, UCurveFloat/UCurveTable/FRuntimeFloatCurve for value-over-input relationships, and UDeveloperSettings for Project Settings panel entries. - Real API Patterns: Provides working C++ snippets for FindRow, ForeachRow, FDataTableRowHandle pickers, config UPROPERTY binding to .ini files, and GetDefault accessors, all grounded in UE 5.8 engine source with file and line citations. - Validation & Gotchas: Covers IsDataValid overrides, Data Validation CI integration, and common pitfalls like hard references in rows, row name typos, and CSV column mismatches. - Use Case: You are defining an item system with hundreds of records. Use this Skill to set up an FTableRowBase row struct, a UDataTable asset, FDataTableRowHandle pickers for designers, and a UDeveloperSettings class exposing the table reference project-wide. ## Quick Start Ask the agent to create a data-driven item system in Unreal using a DataTable row struct and a DeveloperSettings class that references the table.

Frequently Asked Questions about ue-data-driven-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a DataTable row struct in Unreal C++?

Define a USTRUCT(BlueprintType) inheriting FTableRowBase with UPROPERTY fields, then create a DataTable asset using that struct. Access rows at runtime with FindRow<T>, ForeachRow<T>, or GetAllRows<T> on the UDataTable.

DataTable vs DataAsset in Unreal Engine — which should I use?

Use UDataTable for many rows of the same schema with spreadsheet-style workflows. Use UDataAsset or UPrimaryDataAsset when each record needs inheritance, rich nested types, Blueprint subclassing, or AssetManager async loading.

How do I expose project-wide settings in Unreal Project Settings panel?

Subclass UDeveloperSettings with UCLASS(Config=Game, DefaultConfig) and Config-marked UPROPERTYs, then add DeveloperSettings to PublicDependencyModuleNames. The class auto-registers under Project Settings with the CategoryName and SectionName you set.

Why does FindRow return null for my DataTable row?

FindRow returns null when the row name does not match exactly, logging only a warning. Prefer FDataTableRowHandle UPROPERTYs so designers pick rows from a validated dropdown instead of typing string names.

Can I override DataTable rows for DLC or platforms in Unreal?

Yes, use UCompositeDataTable, which stacks parent UDataTable assets so later parents override duplicate row names. It is read-only in the editor and rejects circular parent chains at load time.

When should I use config UPROPERTY instead of DataAssets?

Use UPROPERTY(Config) only for global programmer-near defaults stored in .ini files, not content-scale data. Config values are not visible in the Content Browser, so designers get a worse authoring experience than with DataTables or DataAssets.