Every node the plugin adds to the Blueprint editor, grouped the way they appear in the node menu under Data Table Extensions. The nodes work in gameplay Blueprints and editor tools, in the editor and in packaged games on Windows, macOS, and Linux. They run on the game thread, so they cannot be used in thread-safe animation functions.
Callable nodes have execution pins. Pure nodes have none and run when a connected node reads their output. Pin names match the editor. Most nodes return row names; read the rows with the standard Get Data Table Row node or the Read nodes.
For which node to use for a task, start with the User manual.
Before you start#
Shared pins#
Nodes that read a table share these pins. The entries below list them again only where a node differs.
| Pin | Type | Details |
|---|---|---|
| Data Table (input) | Data Table | The table to read. |
| Property Path (input) | String | Field to use. See Property paths. |
| Use Cache (input) | Boolean | Default on. Present on filter, range, query, and matching-random nodes. See Use Cache. |
| Success (output) | Boolean | False when the node could not run. |
| Error Message (output) | String | Why it failed. Always empty when Success is true. See Error messages. |
Check Success before using a result. A query that matches nothing still succeeds; check the length of the returned array.
Pins that must be connected#
The Blueprint does not compile while one of these inputs is unconnected:
- every array input, such as Conditions, Excluded Row Names, Row Names, Input Rows, A, and B. Connect an empty Make Array when you have nothing to pass;
- Options on Query Data Table Rows. Connect Make Query Options;
- the Text Value pin of Get Data Table Row Names By Text Field and Make Text Filter Condition. Connect a Text variable or a literal Text node.
String, Name, number, vector, and Random Stream pins can be typed into or left unconnected.
Rules shared by every node#
Which field types each node accepts, how paths are written, how values are compared, and how Use Cache refreshes are described once in the Feature reference.
Error messages#
Error Message holds one of these texts when Success is false. Parts in angle brackets are filled in by the node with the path, field, or row concerned. The Output Log also shows a warning for missing rows and invalid paths.
| Error Message | Cause |
|---|---|
DataTable is null. |
No table is connected. |
DataTable has no row struct. |
The table has no row structure. |
PropertyPath is empty. |
The path is empty or only dots. |
Property path segment '<name>' was not found on struct '<struct>'. |
A name in the path does not exist. For Blueprint structs, check the spelling and capitalization. |
Property path segment '<name>' is not a struct, so '<path>' cannot be resolved further. |
The path continues past a field that has no fields of its own, such as a number, text, array, or object reference. |
Property '<field>' is of type '<type>', but '<expected>' was required. |
The node does not match the field type. For Blueprint structs, the field name in this message includes an editor-generated suffix. |
Row '<row>' was not found in DataTable '<table>'. |
A requested row does not exist. |
At least one condition is required. |
A condition-based node received an empty Conditions array. |
Condition at path '<path>' uses unsupported value category. |
A condition was built by hand with its Value Type left as Unknown, or set to Struct or Unsupported. Use the Make … Filter Condition nodes. |
Input collection is empty. |
A single random pick found no rows: the table is empty, or nothing matched. |
Property '<path>' is not numeric. |
Min, Max, Average, or Sum was used on a field that is not Int or Float. |
No numeric values were found at path '<path>'. |
Min, Max, Average, or Sum was used on an empty table. |
Property '<path>' is not an enum. |
Get Enum Entries At Path was used on a field that is not an enum. |
Property path '<path>' does not resolve to a struct. |
Get Child Property Paths For Struct Path was given a field that is not a struct. |
Distinct value queries are not supported for property path '<path>'. |
Count Distinct Values At Path does not support the field type. |
Duplicate-value validation is not supported for property '<path>'. |
Find Rows With Duplicate Value At Path does not support the field type. |
Empty-value validation is only supported for string, name, and text properties. '<path>' is '<type>'. |
Find Rows With Empty String Or Name At Path was used on another field type. |
Weighted random requires a numeric (integer or float) weight column. '<path>' is '<type>'. |
The weight path is not an Int or Float field. |
When a node fails, its outputs are cleared: arrays are emptied, counts are 0, and read values return to their defaults. The single random-pick nodes are the exception: on Input collection is empty. their Row Name can keep an earlier value, so always branch on Success.
Filter nodes#
One callable node per field type. Each compares a single field against a value and returns the names of the matching rows, in table order. Use Query Data Table Rows for several conditions.
Inputs: Data Table, Property Path, Compare Op, the value pin, and Use Cache. Outputs: Matching Row Names, Success, and Error Message. A type mismatch is reported only when the table has at least one row.
| Node | Value pin | Use with | Compare Op choices |
|---|---|---|---|
| Get Data Table Row Names By Enum Field | Enum Value (Integer64) | Enum fields, compared by the entry's numeric value | Equal, Not Equal |
| Get Data Table Row Names By Int Field | Value (Integer64) | Integer, Integer64, and non-enum Byte fields | Equal, Not Equal, Less, Less Or Equal, Greater, Greater Or Equal |
| Get Data Table Row Names By Float Field | Value (Float) | Float and double fields | Equal, Not Equal, Less, Less Or Equal, Greater, Greater Or Equal |
| Get Data Table Row Names By String Field | Value (String) | String fields | Equal, Not Equal, Contains, Starts With, Ends With |
| Get Data Table Row Names By Name Field | Value (Name) | Name fields | Equal, Not Equal, Contains, Starts With, Ends With |
| Get Data Table Row Names By Text Field | Value (Text) | Text fields. The value pin must be connected. | Equal, Not Equal, Contains, Starts With, Ends With |
| Get Data Table Row Names By Bool Field | Value (Boolean) | Boolean fields | Equal, Not Equal |
| Get Data Table Row Names By Vector Field | Value (Vector) | Vector fields | Equal, Not Equal |
| Get Data Table Row Names By Vector2D Field | Value (Vector 2D) | Vector 2D fields | Equal, Not Equal |
| Get Data Table Row Names By Rotator Field | Value (Rotator) | Rotator fields | Equal, Not Equal |
Query nodes#
Combine several conditions, filter by a numeric range, or find the first match. The condition-based nodes take an array of Data Table Filter Condition values, built with the pure Make … Filter Condition nodes and Make Array.
Query Data Table Rows#
Callable · Menu: Data Table Extensions › Query
Returns every row that matches the conditions, with the number of matches. This is the recommended node for filtering on more than one field.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Conditions | Data Table Filter Condition array | Must be connected. Build it with Make Array and the Make … Filter Condition nodes. It needs at least one condition. |
| Options | Data Table Query Options | Must be connected. Build it with Make Query Options. |
| Output | Type | Details |
|---|---|---|
| Matching Row Names | Name array | Matching rows, in table order. |
| Count | Integer | Number of matching rows. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
- Excluded rows are skipped before any condition is checked. Their names are matched ignoring case, and names not in the table are ignored.
- AND stops checking a row at its first failing condition; OR stops at the first passing one. A condition whose type does not fit its field therefore fails the query only when a row actually checks it.
Make Query Options#
Pure · Menu: Data Table Extensions › Query
Builds the Options input for Query Data Table Rows.
| Input | Type | Details |
|---|---|---|
| Combine Operator | AND or OR | Default AND: every condition must match. OR: any condition may match. |
| Excluded Row Names | Name array | Must be connected. Rows to leave out; an empty Make Array means no exclusions. |
| Use Cache | Boolean | Default on. See Use Cache. |
| Output | Type | Details |
|---|---|---|
| Return Value | Data Table Query Options | Connect to Options. |
Make … Filter Condition#
Pure · Menu: Data Table Extensions › Query
One node per field type. Each builds a single condition for Query Data Table Rows, Find First Matching Row Name, and the matching random nodes. Inputs: Property Path, Comparison, Value. Output: Return Value, a Data Table Filter Condition. The comparison and field rules are the same as for the filter nodes.
| Node | Value type | Comparison choices |
|---|---|---|
| Make Enum Filter Condition | Integer64 | Equal, Not Equal |
| Make Int Filter Condition | Integer64 | Equal, Not Equal, Less, Less Or Equal, Greater, Greater Or Equal |
| Make Float Filter Condition | Float | Equal, Not Equal, Less, Less Or Equal, Greater, Greater Or Equal |
| Make String Filter Condition | String | Equal, Not Equal, Contains, Starts With, Ends With |
| Make Name Filter Condition | Name | Equal, Not Equal, Contains, Starts With, Ends With |
| Make Text Filter Condition | Text (must be connected) | Equal, Not Equal, Contains, Starts With, Ends With |
| Make Bool Filter Condition | Boolean | Equal, Not Equal |
| Make Vector Filter Condition | Vector | Equal, Not Equal |
| Make Vector2D Filter Condition | Vector 2D | Equal, Not Equal |
| Make Rotator Filter Condition | Rotator | Equal, Not Equal |
| Make Color Filter Condition | Color | Equal, Not Equal |
| Make Linear Color Filter Condition | Linear Color | Equal, Not Equal |
| Make Transform Filter Condition | Transform | Equal, Not Equal |
| Make Int Point Filter Condition | Int Point | Equal, Not Equal |
| Make Vector4 Filter Condition | Vector 4 | Equal, Not Equal |
| Make Date Time Filter Condition | Date Time | Equal, Not Equal |
| Make Guid Filter Condition | Guid | Equal, Not Equal |
Get Data Table Row Names By Int Range#
Callable · Menu: Data Table Extensions › Query
Returns rows whose integer field lies between two values. Get Data Table Row Names By Float Range is the same node for float fields, with Float bounds.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Min Value | Integer64 | Lower bound. |
| Include Min | Boolean | Default off, which excludes rows equal to Min Value. |
| Max Value | Integer64 | Upper bound. |
| Include Max | Boolean | Default off, which excludes rows equal to Max Value. |
| Use Cache | Boolean | Default on. See Use Cache. |
| Output | Type | Details |
|---|---|---|
| Matching Row Names | Name array | Matching rows, in table order. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
A Min Value above Max Value succeeds with no rows. The field type is checked before any row is read, so a mismatch fails even on an empty table.
Count Rows In Int Range#
Callable · Menu: Data Table Extensions › Query
Counts rows whose integer field lies between two values, without returning their names. Count Rows In Float Range is the float version. The bounds work as on the range nodes above, including Include Min and Include Max defaulting to off.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Min Value | Integer64 | Lower bound. |
| Include Min | Boolean | Default off. |
| Max Value | Integer64 | Upper bound. |
| Include Max | Boolean | Default off. |
| Use Cache | Boolean | Default on. See Use Cache. |
| Output | Type | Details |
|---|---|---|
| Count | Integer | Number of rows in range. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Find First Matching Row Name#
Callable · Menu: Data Table Extensions › Query
Returns the first row, in table order, that matches the conditions, and stops there. It never uses the cache and has no exclusions input.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Conditions | Data Table Filter Condition array | Must be connected. Build it with Make Array and the Make … Filter Condition nodes. It needs at least one condition. |
| Combine Operator | AND or OR | Default AND: every condition must match. OR: any condition may match. |
| Output | Type | Details |
|---|---|---|
| Row Name | Name | The first matching row, or None. |
| Found | Boolean | False when no row matched. Success is still true. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Clear Query Cache#
Callable · Menu: Data Table Extensions › Query
Forgets remembered query results for every table. Use it after switching the game language if you filter Text fields.
Invalidate Cache For Data Table#
Callable · Menu: Data Table Extensions › Query
Forgets remembered query results for one table. Use it after C++ code changes row data directly. Does nothing when no table is connected.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
Read nodes#
Read a field from one row, from a list of rows, or from every row. Each node exists once for every supported value type. Row names are matched ignoring case.
Get … Property From Data Table Row#
Callable · Menu: Data Table Extensions › Read
Reads one field from one row. Inputs: Data Table, Row Name, Property Path. Outputs: Value, Success, Error Message. On failure, Value returns to its default, such as 0, empty text, or a zero vector.
| Node | Value type |
|---|---|
| Get Int Property From Data Table Row | Integer64 |
| Get Float Property From Data Table Row | Float |
| Get Bool Property From Data Table Row | Boolean |
| Get Enum Property From Data Table Row | Integer64, the entry's numeric value |
| Get String Property From Data Table Row | String |
| Get Name Property From Data Table Row | Name |
| Get Text Property From Data Table Row | Text |
| Get Vector Property From Data Table Row | Vector |
| Get Vector2D Property From Data Table Row | Vector 2D |
| Get Rotator Property From Data Table Row | Rotator |
| Get Color Property From Data Table Row | Color |
| Get Linear Color Property From Data Table Row | Linear Color |
| Get Transform Property From Data Table Row | Transform |
| Get Int Point Property From Data Table Row | Int Point |
| Get Vector4 Property From Data Table Row | Vector 4 |
| Get Date Time Property From Data Table Row | Date Time |
| Get Guid Property From Data Table Row | Guid |
Get … Property For Rows#
Callable · Menu: Data Table Extensions › Read
Reads the same field from each row in Row Names, for the same value types as the single-row node, such as Get Float Property For Rows. Inputs: Data Table, Row Names (must be connected), Property Path. Outputs: Values, Success, Error Message. Each entry of Values holds a Row Name and its Value.
The result follows the order of Row Names, repeating duplicates. It is all or nothing: one missing row fails the node and empties Values. An empty Row Names array succeeds with no values.
Get … Property For All Rows#
Callable · Menu: Data Table Extensions › Read
Reads the same field from every row, in table order, for the same value types, such as Get Int Property For All Rows. Inputs: Data Table, Property Path. Outputs: Values, Success, Error Message. An empty table succeeds with no values.
Inspect nodes#
Discover which fields a table has and what type each one is. Use them when you build a path or choose a typed node. The Is … nodes return false instead of reporting an error.
Get Leaf Property Paths#
Callable · Menu: Data Table Extensions › Inspect
Lists every field the plugin can read, with nested structs expanded to any depth, in declaration order. Engine value types such as Vector or Transform are listed as one entry each; their components, such as Location.Z, also work as paths but are not listed. Arrays, maps, sets, and references are left out.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Output | Type | Details |
|---|---|---|
| Property Paths | String array | Paths such as Stats.Power. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Property Type At Path#
Callable · Menu: Data Table Extensions › Inspect
Returns the value category of a field.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Value Category | Value category | See Value categories. Unknown when the path does not resolve. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Property Type Name At Path#
Callable · Menu: Data Table Extensions › Inspect
Returns the engine's name for the field's type, such as IntProperty, DoubleProperty for a Blueprint Float, StrProperty, NameProperty, TextProperty, BoolProperty, Enum(…) with the enum's name, or Struct(…) with the struct's name, such as Struct(Vector).
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Type Name | String | Empty on failure. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Is Property Numeric#
Pure · Menu: Data Table Extensions › Inspect
True only for Int and Float fields.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Return Value | Boolean | False for enums, Booleans, and invalid paths. |
Is Property Enum#
Pure · Menu: Data Table Extensions › Inspect
True for enum fields.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Return Value | Boolean |
Is Property Struct#
Pure · Menu: Data Table Extensions › Inspect
True only for the generic Struct category: your own structs and engine structs the plugin does not compare directly.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Return Value | Boolean | False for Vector, Rotator, Transform, and the other supported value types. |
Get Enum Entries At Path#
Callable · Menu: Data Table Extensions › Inspect
Lists the entry names of the enum a field uses, in declaration order. These are the names used in code, not the display names: Blueprint enums return NewEnumerator0, NewEnumerator1, and so on. Hidden entries are included; entries whose names end in _MAX, in any capitalization, are left out.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Entries | String array | Entry names. For a Blueprint enum, an entry's position, starting at 0, is its numeric value. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Supported Comparison Operators For Path#
Callable · Menu: Data Table Extensions › Inspect
Lists the comparisons a field supports, written without spaces: Equal, NotEqual, Less, LessOrEqual, Greater, GreaterOrEqual, Contains, StartsWith, EndsWith.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Operators | String array | Empty, with Success true, for Struct and Unsupported fields. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Property Paths By Type#
Callable · Menu: Data Table Extensions › Inspect
Lists the paths of one value category, from the same list as Get Leaf Property Paths.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Value Category | Value category | The category to list. Struct, Unsupported, and Unknown always return an empty list. |
| Output | Type | Details |
|---|---|---|
| Property Paths | String array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Numeric Property Paths#
Callable · Menu: Data Table Extensions › Inspect
Lists every Int and Float path.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Output | Type | Details |
|---|---|---|
| Property Paths | String array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Enum Property Paths#
Callable · Menu: Data Table Extensions › Inspect
Lists every enum path.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Output | Type | Details |
|---|---|---|
| Property Paths | String array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Child Property Paths For Struct Path#
Callable · Menu: Data Table Extensions › Inspect
Lists every field inside a struct field, at all depths, prefixed with the path you typed. It works on engine value types too: Location returns Location.X, Location.Y, and Location.Z.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Struct Path | String | Path of a struct field, such as Stats. Leave it empty to list the whole row. |
| Output | Type | Details |
|---|---|---|
| Property Paths | String array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Stats nodes#
Summarize one field across the whole table. String, Name, and Text values that differ only in letter case count as the same value; the first spelling is kept.
Get Distinct … Values At Path#
Callable · Menu: Data Table Extensions › Stats
Returns each different value in a field once. Inputs: Data Table, Property Path. Outputs: Values, Success, Error Message. An empty table succeeds with no values. Names ending in a number sort by that number, so Item_2 comes before Item_10.
| Node | Values type | Order |
|---|---|---|
| Get Distinct Int Values At Path | Integer64 array | Ascending |
| Get Distinct Float Values At Path | Float array | Ascending |
| Get Distinct String Values At Path | String array | A to Z, ignoring case |
| Get Distinct Name Values At Path | Name array | A to Z, ignoring case |
| Get Distinct Text Values At Path | Text array | A to Z by displayed text, ignoring case |
| Get Distinct Bool Values At Path | Boolean array | In the order the values first appear |
| Get Distinct Enum Values At Path | Integer64 array | Ascending by numeric value |
Count Distinct Values At Path#
Callable · Menu: Data Table Extensions › Stats
Counts how many different values a field has. Supports Int, Float, String, Name, Text, Bool, and Enum fields. An empty table returns 0.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Count | Integer | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Min Numeric Value At Path#
Callable · Menu: Data Table Extensions › Stats
Returns the smallest value of an Int or Float field. Get Max Numeric Value At Path, Get Average Numeric Value At Path, and Get Sum Numeric Value At Path return the largest value, the mean, and the total. All four fail on an empty table.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Value | Float | 0 on failure. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get … Value Counts At Path#
Callable · Menu: Data Table Extensions › Stats
Returns each different value with the number of rows that use it. Inputs: Data Table, Property Path, Sort By Count Descending. Outputs: Counts, Success, Error Message. Each entry of Counts holds a Value and its Count.
| Node | Value type |
|---|---|
| Get Int Value Counts At Path | Integer64 |
| Get Float Value Counts At Path | Float |
| Get String Value Counts At Path | String |
| Get Name Value Counts At Path | Name |
| Get Text Value Counts At Path | Text |
| Get Bool Value Counts At Path | Boolean |
| Get Enum Value Counts At Path | Integer64 |
By default, entries are sorted by value, ascending, and Boolean lists false before true. With Sort By Count Descending on, the most common value comes first, with ties sorted by value. Only values that occur are listed.
Validation nodes#
Check a table for data problems, or check that a row or path exists before you use it.
Find Rows With Duplicate Value At Path#
Callable · Menu: Data Table Extensions › Validation
Returns every row whose value is shared with another row, including the first occurrence. Supports String, Name, Text, Bool, Enum, Int, and Float fields; text is compared ignoring case. Rows are grouped by value, in the order each value first appears: for rows A = x, B = y, C = x, D = y the result is A, C, B, D.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Row Names | Name array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Find Rows With Empty String Or Name At Path#
Callable · Menu: Data Table Extensions › Validation
Returns rows whose String, Name, or Text field is empty, in table order. A String is empty only when it has no characters, so a value of spaces is not empty; a Name is empty when it is None; a Text is empty when its displayed text is empty.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Row Names | Name array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Does Data Table Have Row#
Pure · Menu: Data Table Extensions › Validation
True when the table contains the row. The name is matched ignoring case.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Row Name | Name |
| Output | Type | Details |
|---|---|---|
| Return Value | Boolean |
Does Data Table Have Property Path#
Pure · Menu: Data Table Extensions › Validation
True when the row structure has a field at the path, even one other nodes cannot use, such as an array. Validate Path Across Data Table does exactly the same; neither checks individual rows.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Output | Type | Details |
|---|---|---|
| Return Value | Boolean |
Utility nodes#
Work with arrays of row names: combine lists, trim them, page through them, shuffle them, or sort them. Names are matched ignoring case. Only the sort-by-path nodes need a table.
Union Row Names#
Pure · Menu: Data Table Extensions › Utility
All of A, including its own repeats, followed by the names from B that A does not have.
| Input | Type | Details |
|---|---|---|
| A | Name array | Must be connected. |
| B | Name array | Must be connected. |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Intersect Row Names#
Pure · Menu: Data Table Extensions › Utility
Names present in both lists, once each, in A's order.
| Input | Type | Details |
|---|---|---|
| A | Name array | Must be connected. |
| B | Name array | Must be connected. |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Subtract Row Names#
Pure · Menu: Data Table Extensions › Utility
Names in A that are not in B, in A's order, keeping A's repeats.
| Input | Type | Details |
|---|---|---|
| A | Name array | Must be connected. |
| B | Name array | Must be connected. |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Remove Duplicate Row Names#
Pure · Menu: Data Table Extensions › Utility
Keeps the first occurrence of each name.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Take First N Row Names#
Pure · Menu: Data Table Extensions › Utility
The first Count names. A negative Count returns nothing; a Count larger than the list returns everything.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Count | Integer |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Skip First N Row Names#
Pure · Menu: Data Table Extensions › Utility
Everything after the first Count names. A negative Count returns everything; a Count larger than the list returns nothing.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Count | Integer |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Take Page Row Names#
Callable · Menu: Data Table Extensions › Utility
Returns one page of a paged list, plus the number of pages.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Page Index | Integer | Zero-based page number. |
| Page Size | Integer | Names per page. 0 or less returns nothing, with a Page Count of 0. |
| Output | Type | Details |
|---|---|---|
| Page Rows | Name array | Empty for a negative index or a page past the end. |
| Page Count | Integer | Total pages, rounded up. |
Shuffle Row Names#
Callable · Menu: Data Table Extensions › Utility
Returns the names in a random order, keeping repeats.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Output | Type | Details |
|---|---|---|
| Shuffled Rows | Name array |
Seeded Shuffle Row Names#
Callable · Menu: Data Table Extensions › Utility
Shuffles repeatably: the same list and seed always give the same order. The result depends on the order of the list you pass in.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Random Stream | Random Stream | Seeded stream. Unconnected means seed 0. See Seeded nodes. |
| Output | Type | Details |
|---|---|---|
| Shuffled Rows | Name array |
Take Random N Row Names#
Callable · Menu: Data Table Extensions › Utility
Picks Count different names at random, after removing repeats. A Count of 0 or less returns nothing; a Count larger than the list returns every name in random order.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Count | Integer |
| Output | Type | Details |
|---|---|---|
| Selected Rows | Name array |
Take Seeded Random N Row Names#
Callable · Menu: Data Table Extensions › Utility
Repeatable version of Take Random N Row Names. The result depends on the order of the list you pass in.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Count | Integer | |
| Random Stream | Random Stream | Seeded stream. Unconnected means seed 0. See Seeded nodes. |
| Output | Type | Details |
|---|---|---|
| Selected Rows | Name array |
Sort Row Names Alphabetically#
Pure · Menu: Data Table Extensions › Utility
Sorts the names themselves A to Z, ignoring case and removing repeats. Names ending in a number sort by that number.
| Input | Type | Details |
|---|---|---|
| Row Names | Name array | Must be connected. |
| Output | Type | Details |
|---|---|---|
| Return Value | Name array |
Sort Rows By Int Path#
Callable · Menu: Data Table Extensions › Utility
Sorts row names by a field's value. Sort Rows By Float Path, Sort Rows By Name Path, Sort Rows By String Path, and Sort Rows By Text Path sort by fields of those types. There is no Enum or Bool sort.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Input Rows | Name array | Must be connected. Rows to sort; an empty array sorts the whole table. |
| Property Path | String | Field to use, such as Power or Stats.Power. |
| Ascending | Boolean | Default off, which puts the largest value, or Z, first. Turn it on for smallest or A first. |
| Output | Type | Details |
|---|---|---|
| Sorted Rows | Name array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Ties are ordered by row name, A to Z. Repeated input rows are kept, and a missing row fails the sort. String and Name values sort ignoring case. Text sorts by displayed text, ignoring case, without language-specific rules, so accented letters come after Z.
Random nodes#
Pick rows at random from a whole table or from the rows that match conditions. See Random rewards for examples.
Get Random Row Name#
Callable · Menu: Data Table Extensions › Random
One row, each with an equal chance. Fails on an empty table. Get Seeded Random Row Name adds a Random Stream input.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Output | Type | Details |
|---|---|---|
| Row Name | Name | Can keep an earlier value on failure; branch on Success. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Random Row Names#
Callable · Menu: Data Table Extensions › Random
Several different rows. A Count larger than the table returns every row, shuffled. A Count of 0 or less, or an empty table, returns an empty list with Success true. Get Seeded Random Row Names adds a Random Stream input; for the same seed, a larger Count keeps the smaller Count's picks and adds more.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Count | Integer | How many rows to pick. |
| Output | Type | Details |
|---|---|---|
| Row Names | Name array | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Random Matching Row Name#
Callable · Menu: Data Table Extensions › Random
One row chosen from the rows that match the conditions. Fails with Input collection is empty. when nothing matches. Get Seeded Random Matching Row Name adds a Random Stream input.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Conditions | Data Table Filter Condition array | Must be connected. Build it with Make Array and the Make … Filter Condition nodes. It needs at least one condition. |
| Combine Operator | AND or OR | Default AND: every condition must match. OR: any condition may match. |
| Use Cache | Boolean | Default on. See Use Cache. |
| Output | Type | Details |
|---|---|---|
| Row Name | Name | Can keep an earlier value on failure; branch on Success. |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Get Weighted Random Row Name#
Callable · Menu: Data Table Extensions › Random
One row, where rows with a larger weight are more likely. Get Seeded Weighted Random Row Name adds a Random Stream input.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Weight Property Path | String | An Int or Float field holding each row's weight. |
| Output | Type | Details |
|---|---|---|
| Row Name | Name | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
A negative weight counts as 0. A zero-weight row is never picked while any row has a positive weight. When every weight is 0, each row has an equal chance.
Get Weighted Random Matching Row Name#
Callable · Menu: Data Table Extensions › Random
Applies the conditions first, then makes a weighted pick among the matching rows. Get Seeded Weighted Random Matching Row Name adds a Random Stream input.
| Input | Type | Details |
|---|---|---|
| Data Table | Data Table | The table to read. |
| Conditions | Data Table Filter Condition array | Must be connected. Build it with Make Array and the Make … Filter Condition nodes. It needs at least one condition. |
| Combine Operator | AND or OR | Default AND: every condition must match. OR: any condition may match. |
| Use Cache | Boolean | Default on. See Use Cache. |
| Weight Property Path | String | An Int or Float weight field. |
| Output | Type | Details |
|---|---|---|
| Row Name | Name | |
| Success | Boolean | False when the node could not run. True with an empty result is normal. |
| Error Message | String | Why the node failed. Empty on success. |
Seeded nodes#
- Every seeded node leaves your Random Stream unchanged, so calling a node twice with the same stream gives the same result. For a different pick each time, change the seed, or ask for several rows in one call.
- An unconnected stream uses seed 0.
- Seeded weighted nodes give the same result for the same seed regardless of row order, across sessions and machines.
- Seeded Shuffle Row Names and Take Seeded Random N Row Names depend on the order of the list you pass in.
Deprecated nodes#
These nodes still work in existing graphs but are hidden from the node menu. They behave like Query Data Table Rows; replace them when you next edit the graph.
| Deprecated node | Replacement |
|---|---|
| Get Data Table Row Names By Conditions | Query Data Table Rows with Make Query Options. |
| Get Data Table Row Names By Conditions Excluding | Query Data Table Rows, with the rows in Excluded Row Names. |
| Count Rows Matching Conditions | Query Data Table Rows, using its Count output. |
Structures and enumerations#
Types you meet on node pins. Use Break on a structure pin to read its members.
Data Table Filter Condition#
One condition. Build it with a Make … Filter Condition node rather than by hand: the node sets Property Path, Value Type, the comparison, and the value that belong together. A hand-made condition whose Value Type stays Unknown fails the query.
Data Table Query Options#
Options for Query Data Table Rows.
| Member | Default | Details |
|---|---|---|
| Combine Operator | AND | AND or OR. |
| Excluded Row Names | Empty | Rows to skip. |
| Use Cache | On | See Use Cache. |
Row and value pairs#
Returned in the Values array of the For Rows and For All Rows read nodes. Each has a Row Name and a Value of the node's type.
Value counts#
Returned in the Counts array of the Value Counts nodes. Each has a Value and a Count.
Comparisons#
The choices offered by Compare Op and Comparison pins.
| Used for | Choices |
|---|---|
| Int and Float fields | Equal, Not Equal, Less, Less Or Equal, Greater, Greater Or Equal |
| String, Name, and Text fields | Equal, Not Equal, Contains, Starts With, Ends With |
| Bool, enum, and structure fields | Equal, Not Equal |
Value categories#
Returned by Get Property Type At Path and accepted by Get Property Paths By Type.
| Category | Meaning |
|---|---|
| Integer, Float, Enum, String, Name, Text, Bool | A field the typed nodes of that kind accept. |
| Vector, Vector2D, Rotator, Color, Linear Color, Transform, Int Point, Vector4, Date Time, Guid | An engine value type the plugin compares directly. |
| Struct | A struct the plugin does not compare directly, such as your own struct. Use a dotted path to reach its fields. |
| Unsupported | A field that cannot be read or compared: arrays, maps, sets, object and class references, and similar. |
| Unknown | The path did not resolve. It is also the starting Value Type of a hand-made condition. |