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.