Data nodes
Read the pure expressions, literals, operators, conditionals, and null-aware values that feed statement pins.
On this page
Data nodes answer “what value?” They usually have no exec pins. Their colored wires feed branches, calls, returns, assignments, and other expressions without claiming a separate statement in the white flow path.
Pure expression
Section titled “Pure expression”Purpose. Produces a value without owning statement order. Member access, conversion, array or struct construction, tuple operations, string interpolation, and other value-producing shapes use pure nodes.
| Pin | Direction | Type |
|---|---|---|
| operand or source values | Input | Shape-specific typed values |
| result | Output | Inferred or declared result type |
playerBottom >= enemyTop - TopContactToleranceGuide: Operators and expressions.
Literal
Section titled “Literal”Purpose. Supplies a value directly. Eligible unwired data pins show an inline literal box; a separate literal node appears when the value is represented as its own source expression.
| Pin | Direction | Type |
|---|---|---|
| value | Output | Literal type, such as int, float, bool, string, char, object, or struct |
0.5fAn unwired hollow pin has no value yet. A literal is a real value, not a default guessed by the graph.
Guide: Pills and literals.
Operators
Section titled “Operators”Purpose. Combines or transforms values. Binary operators have left and right inputs; unary operators have one input. Comparison and logical operators produce Boolean output.
| Pin | Direction | Type |
|---|---|---|
| left | Input | Operand type, binary only |
| right | Input | Compatible operand type, binary only |
| value | Input | Operand type, unary only |
| result | Output | Operator result type |
playerVerticalPosition <= fallRespawnHeightOperators cover arithmetic, logical work, comparisons, and supported casts or conversions. Their header family stays pure green; the pin and wire colors still show the actual value types.
Guide: Operators and expressions.
Conditional
Section titled “Conditional”Purpose. Chooses one of two values without creating statement branches. The condition input is Boolean, and both value arms must produce a compatible result.
| Pin | Direction | Type |
|---|---|---|
| condition | Input | bool |
| when true | Input | Result-compatible type |
| when false | Input | Result-compatible type |
| result | Output | Inferred common type |
var sprite = IsUnlocked ? _unlockedSprite : _lockedSprite;Guide: Operators and expressions.
Null-aware
Section titled “Null-aware”Purpose. Keeps null handling inside the value path. Null coalescing chooses a fallback value; null-conditional access stops member access when its receiver is null.
| Pin | Direction | Type |
|---|---|---|
| value or target | Input | Nullable or reference type |
| fallback | Input | Compatible type, for ?? |
| result | Output | Resolved result type |
var playerCollider = collision.otherCollider != null ? collision.otherCollider : _bodyCollider;_audio?.PlayCoin();A null-aware call that has side effects still participates in exec flow as a call. The null-aware receiver or condition remains part of its data shape.
Guide: Operators and expressions.