DEV505 / START HERE
Shaping values and making choices
Calculate volumes, speeds, conditions, indexes, and small random variations.
Data nodes are read when another node needs their result. They do not need an execution wire. Float means a decimal number, Int means a whole number, and Bool means true or false. Use converter nodes where port types differ.
See it in a complete example: Jukebox track selection and crossfades.
For the full list, open the node catalogue.
Random Float
Section titled “Random Float”Draws a decimal value between Min and Max. Single Value keeps the first result for this play; without it, subsequent reads can draw new values.
Random · pink headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | Min | Float |
| Input | Max | Float |
| Output | Result | Float |
Set it up. Min defaults 0, Max 1, Single Value true. For a stable random pitch on a whole play, leave Single Value enabled.
Try it. Footstep gives each new step a small pitch variation.
Random Int
Section titled “Random Int”Draws a whole number including both bounds. Reversed bounds are exchanged. Avoid Repetition skips the previous draw when there is a choice; this history belongs to this node within this play.
Random · pink headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | Min | Int |
| Input | Max | Int |
| Output | Result | Int |
Set it up. Min defaults 0, Max 1; Single Value and Avoid Repetition default false. Single Value keeps the first draw for the play.
Try it. Pick one of three command paths with values 0–2.
Remap Float
Section titled “Remap Float”Converts a value from Old Min…Old Max into New Min…New Max. Clamp keeps it inside the input range before mapping. Equal old bounds return New Min.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | Parameter | Float |
| Input | Old Min | Float |
| Input | Old Max | Float |
| Input | New Min | Float |
| Input | New Max | Float |
| Output | Result | Float |
Set it up. Clamp defaults true; old/new minima default 0, maxima 1. Disable Clamp only when values outside the output range are intentional.
Try it. Engine maps normalized RPM to a useful playback-speed range.
Float Compare
Section titled “Float Compare”Compares two decimal values with Less, Less Or Equal, Equal, Greater Or Equal, or Greater and returns true or false.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Float |
| Input | B | Float |
| Output | Result | Bool |
Set it up. Choose Operation; A and B default to 0. Float equality is exact, so thresholds are usually more useful for gradually changing values.
Try it. Feed RPM > 0.7 into Track Condition to control a high-speed layer.
Float Math
Section titled “Float Math”Combines A and B using Add, Subtract, Multiply, Divide, Min, Max, or Pow (power). Divide by zero and non-finite power results return 0.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Float |
| Input | B | Float |
| Output | Result | Float |
Set it up. Choose Operation. Both inline inputs default to 0. Volume is ultimately clamped to 0–1 by playback.
Try it. Multiply a rain amount by the maximum volume for a layer.
Int Compare
Section titled “Int Compare”Compares two whole-number values with Less, Less Or Equal, Equal, Greater Or Equal, or Greater and returns true or false.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Int |
| Input | B | Int |
| Output | Result | Bool |
Set it up. Choose Operation; A and B default to 0. For example, compare a surface index with 2 to check for wood in the Footstep graph.
Try it. Feed RPM > 0.7 into Track Condition to control a high-speed layer.
Int Op
Section titled “Int Op”Combines integers with Add, Subtract, Multiply, Divide, Modulo, Min, or Max. Add/subtract/multiply saturate at integer limits. Division truncates toward zero; division or modulo by zero returns 0.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Int |
| Input | B | Int |
| Output | Result | Int |
Set it up. Both inputs default to 0. At the signed minimum, division by −1 returns the minimum; its modulo returns 0. Use ordinary small indexes rather than relying on overflow behavior.
Try it. Convert a 1-based ground choice to a 0-based selection using Subtract.
Looks up an output using the authored curve points. Linear mode interpolates between neighboring points; Step holds a point until the next. Outside the points, the nearest end value is held.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Float |
| Output | Out | Float |
Set it up. The initial curve goes from (0, 0) to (1, 1). Runtime uses points and the chosen interpolation mode, not arbitrary editor tangent shaping. An empty point list passes the input through.
Try it. Shape engine volume so idle stays quiet and high RPM becomes louder.
Multiplier To Semitones
Section titled “Multiplier To Semitones”Converts a positive playback multiplier into semitones with 12 × log₂(In). A non-positive input returns 0.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Float |
| Output | Out | Float |
Set it up. Input defaults to 0. A multiplier of 1 is 0 semitones; 2 is +12.
Try it. Express a playback-speed change as a musical interval.
Semitones To Multiplier
Section titled “Semitones To Multiplier”Converts semitones into a multiplier with 2^(In/12). Zero semitones gives 1; +12 gives 2.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Float |
| Output | Out | Float |
Set it up. Input defaults to 0. Play Audio still limits its final playback speed to 0.01–3. This changes pitch and duration together.
Try it. Set a random pitch offset in semitones, then convert it for Playback Speed.
Float Function
Section titled “Float Function”Applies Abs, Sqrt, Floor, Ceil, Round, Sign, Sin, Cos, Log, or Exp. Sin/Cos use radians; Log is the natural logarithm. Round rounds midpoint values away from zero.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Float |
| Output | Out | Float |
Set it up. Input defaults to 0. Negative square roots, non-positive logarithms, and non-finite results return 0. Sign returns −1, 0, or 1.
Try it. Use Abs to turn a signed control into a positive intensity.
Int Function
Section titled “Int Function”Applies Abs, Negate, or Sign to an integer. Sign returns −1, 0, or 1. Abs/Negate of the lowest signed integer returns the highest integer.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Int |
| Output | Out | Int |
Set it up. Input defaults to 0. Choose Operation for the transformation you need.
Try it. Use Sign to distinguish reverse, idle, and forward control values.
Convert To Int
Section titled “Convert To Int”Converts a decimal using Round, Floor, Ceil, or Truncate. Round handles midpoint values away from zero. Out-of-range results saturate to integer limits; non-finite input becomes 0.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Float |
| Output | Out | Int |
Set it up. Input defaults to 0. Choose how boundaries should behave before using the result as an index.
Try it. Map a continuous slider to a discrete selection.
Convert To Float
Section titled “Convert To Float”Converts a whole number to a decimal value. Very large integers can lose precision in a Float.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Int |
| Output | Out | Float |
Set it up. Input defaults to 0. Use an explicit converter when the port types differ.
Try it. Turn Counter Count into a value for a volume calculation.
Returns the opposite of In.
Logic · orange headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Bool |
| Output | Out | Bool |
Set it up. An unconnected In defaults to false, so Not returns true. Connect a Bool parameter or a comparison result to reverse its meaning.
Try it. Combine two permission checks before a Branch or Wait For Condition.
Select Float
Section titled “Select Float”Reads one Float input selected by the zero-based Index. Only that selected input is evaluated. Index is clamped to the available range.
Logic · orange headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | Index | Int |
| Output | Out | Float |
| Input | In 0 … In (Count − 1) | Float |
Set it up. Count defaults to 2 (allowed 0–255); with Count 0 the result is 0. Numbered inputs start at In 0.
Try it. Choose a different gain or repeat interval for each Workshop tool.
Select Int
Section titled “Select Int”Reads one Int input selected by the zero-based Index. Only that selected input is evaluated. Index is clamped to the available range.
Logic · orange headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | Index | Int |
| Output | Out | Int |
| Input | In 0 … In (Count − 1) | Int |
Set it up. Count defaults to 2 (allowed 0–255); with Count 0 the result is 0. Numbered inputs start at In 0.
Try it. Choose a different gain or repeat interval for each Workshop tool.
Smoothstep Float
Section titled “Smoothstep Float”Normalizes In between Min and Max, clamps it to 0–1, and bends it into a gentle S-shaped curve. Equal bounds give a step: 0 below the bound and 1 at or above it.
Values · green headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | In | Float |
| Input | Min | Float |
| Input | Max | Float |
| Output | Out | Float |
Set it up. Min defaults 0, Max 1. This shapes a value; it does not smooth changes over time. Use Float Parameter rates for time smoothing.
Try it. Give a crossfade a softer response near either end of its control range.
Returns true only when both A and B are true.
Logic · orange headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Bool |
| Input | B | Bool |
| Output | Result | Bool |
Set it up. Unconnected Bool inputs default false. And, Or, and Xor evaluate both inputs; they do not use C# short-circuit evaluation.
Try it. Combine two permission checks before a Branch or Wait For Condition.
Returns true when at least one of A and B is true.
Logic · orange headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Bool |
| Input | B | Bool |
| Output | Result | Bool |
Set it up. Unconnected Bool inputs default false. And, Or, and Xor evaluate both inputs; they do not use C# short-circuit evaluation.
Try it. Combine two permission checks before a Branch or Wait For Condition.
Returns true when exactly one of A and B is true.
Logic · orange headerColor key
| Direction | Port | Value |
|---|---|---|
| Input | A | Bool |
| Input | B | Bool |
| Output | Result | Bool |
Set it up. Unconnected Bool inputs default false. And, Or, and Xor evaluate both inputs; they do not use C# short-circuit evaluation.
Try it. Combine two permission checks before a Branch or Wait For Condition.
Continue with graph checks and debugging if a connection or event is refused.