Data Table Extensions / Reference

Feature reference

v1.3.1Runtime plugin
  • UE 5.5–5.8
On this pageAt a glanceProperty pathsField typesHow values are comparedUse CachePerformanceLimits

How Data Table Extensions reads your tables: supported platforms and field types, property paths, how values are compared, caching, and performance. For each node and pin, see Blueprint nodes.

At a glance#

Item Details
Plugin type Runtime. It ships in packaged games.
Platforms Windows, macOS, and Linux, in the editor and in packaged games
Engine versions UE 5.5–5.8
Works with Standard Data Table assets, with C++ or Blueprint row structures. No separate table format.
Where you use it Gameplay Blueprints, Editor Utility Widgets, and other editor tools
Blueprint nodes About 150, under Data Table Extensions in the node menu. See Blueprint nodes.
Settings and console commands None
Output Log Warnings for missing rows and invalid paths appear under LogDataTableExtensions.

The nodes run on the game thread. They cannot be called from thread-safe animation functions.

Property paths#

  • A path names a field in the row, with a dot between a struct and its fields: Stats.Power.
  • C++ row structs: use the member name as written in code, such as RequiredLevel. Capitalization is ignored.
  • Blueprint row structs: type the field name exactly as the struct editor shows it. Capitalization matters, and spaces inside a name are fine.
  • Paths can step into engine value types: Location.Z and Rotation.Yaw are Float fields, Tint.R is a Float on a Linear Color and an Integer from 0 to 255 on a Color, and Spawn.Translation is a Vector.
  • A Gameplay Tag field is read as MyTag.TagName, a Name. A Data Table Row Handle is read as Handle.RowName.
  • Paths cannot enter arrays, maps, sets, or object references. Items[0] and Items.0 are not supported.
  • Empty segments are ignored, so Stats..Power works like Stats.Power.

Get Leaf Property Paths lists every usable field, with nested structs expanded, in declaration order. Engine value types such as Vector are listed as one entry each; their components work as paths but are not listed. Get Child Property Paths For Struct Path on Location returns Location.X, Location.Y, and Location.Z.

Field types#

Node type Accepts
Int Integer, Integer64, and Byte fields that are not enums, plus C++ integers of any size
Float Float and double fields. Integer fields need the Int nodes.
Enum C++ enums of any size and Blueprint enums, compared by numeric value
String, Name, Text Only that exact type. A String node does not read Name or Text fields.
Bool Boolean fields
Vector, Vector2D, Rotator, Color, Linear Color, Transform, Int Point, Vector4, Date Time, Guid Only that exact engine type

Enum and Boolean fields are not numeric: statistics and weights need Int or Float fields. For a Blueprint enum, an entry's numeric value is its position in the enum, starting at 0.

Fields of other types, such as your own structs, have the value category Struct and are reached through a dotted path. Arrays, maps, sets, and references have the category Unsupported.

How values are compared#

Values Rule
String, Name, Text All five comparisons ignore letter case, but only for A to Z; accented and non-Latin letters must match exactly. Values are not trimmed, so leading and trailing spaces count.
Empty comparison value Equal matches only empty fields, Contains matches every row, and Starts With and Ends With match nothing.
Name fields An unset Name is compared as the text None.
Text fields Compared as currently displayed, in the active language.
Integers Exact.
Floats Exact, with no tolerance. Single-precision float fields declared in C++ hold approximate values, so 0.1 is stored as slightly more than 0.1; widen a bound slightly when comparing them. Blueprint Float fields match typed values exactly.
Vector, Vector2D, Vector4, Color, Linear Color, Int Point, Guid Exact on every component.
Rotator Exact per Pitch, Yaw, and Roll, without normalizing, so 0 and 360 differ.
Transform Nearly equal: within 0.0001 per axis for location and scale, and the same orientation counts as equal even when written differently, such as Yaw 180 and Yaw -180.
Date Time Exact to the tick.

Sorting and distinct-value nodes also ignore letter case for String, Name, and Text, and sort Text without language-specific rules, so accented letters come after Z. Names that end in a number sort by that number, so Item_2 comes before Item_10.

Use Cache#

With Use Cache on, a successful query remembers its matching rows. Asking the same question of the same table again returns them without scanning the table. Failed queries are never remembered. Use Cache is on by default on the filter, range, query, and matching-random nodes.

The remembered results refresh automatically whenever the table changes through the editor or the engine:

  • edits in the Data Table editor;
  • reimports;
  • filling a table from CSV or JSON;
  • adding, removing, or emptying rows;
  • changing the row structure.

They do not refresh when:

  • C++ code writes directly into a row's data. Call Invalidate Cache For Data Table afterwards;
  • the game language changes while you filter Text fields. Call Clear Query Cache.

Results are kept in memory while the table is loaded. They survive level changes and, in the editor, Play In Editor sessions, and are discarded when the table unloads or the game closes. Nothing is written to disk.

Every different question adds an entry, so turn Use Cache off for comparison values that change constantly. Queries whose vector, rotator, color, transform, or date values differ only very slightly can return the same remembered rows; turn Use Cache off for such fine distinctions.

Performance#

Nodes Work per call
Filter, query, range, statistics, validation, sort, For All Rows, weighted random Read every row.
Find First Matching Row Name Stops at the first match.
Single-row reads, Does Data Table Have Row Look the row up directly.
Utility nodes Work on the array you pass, without reading the table.

Use Cache helps only repeated identical questions. For fields with many different values, the Value Counts nodes are faster than the Distinct nodes. On large tables, run broad queries once and keep the result rather than repeating them every frame.

Limits#

  • Paths cannot enter arrays, maps, sets, or object references.
  • There is no sort by Enum or Boolean fields.
  • Enum and Boolean fields do not count as numeric for statistics or weights.
  • Seeded random nodes never advance your Random Stream; change the seed for a different result.
  • Available on Windows, macOS, and Linux.
Documentation
↑ ↓ Navigate ↵ Openesc Close