Visual Nodes Editor
The XenonCode IDE's node editor offers a wide range of nodes to help you create scripts and programs.
It is comprehensive enough to handle complex tasks and is also easier to grasp for beginners. For even more advanced possibilities, you can also use XenonCode in text mode (code).
Code generation
The Visual Nodes system will always automatically generate code in the background as you make modifications.
The code is generated whenever an output
, print
, or execute
endpoint node is added, and it will back-propagate through input dependencies.
This means adding an input node won't generated any code, but adding an output node will generate the code for both nodes when you connect them together.
List of nodes
Here is a list of the different types of nodes available in the editor, along with their descriptions if necessary:
Constant Number
Defines a constant numerical value.
Constant Text
Defines a constant textual value.
Variable Number
Defines a variable numerical value that can be defined and reset by another node.
Variable Text
Defines a variable textual value that can be defined and reset by another node.
Comment
Allows you to display a comment block in your script.
Input
By Alias
Use an output node of a component using its alias when communicating through a Router.
0,1,2,3...
Use an output node of a component that is currently connected to a port on the computer. When you connect a component to a port, it is automatically detected by the computer.
Output
Print (Console log)
Displays a number/text in the computer console.
By Alias
Use an input node of a component using its alias when communicating through a Router.
0,1,2,3...
Use an input node of a component that is currently connected to a port on the computer. When you connect a component to a port, it is automatically detected by the computer.
Math
Add
Returns the addition of two values.
Subtract
Returns the subtraction of two values.
Multiply
Returns the multiple of two values.
Divide
Returns the division of two values.
Absolute
Returns the absolute value of a number.
Negative
Returns the negative value of a number.
Modulo
Returns the remainder of the division of two numbers.
Floor
Returns the value rounded down to the nearest integer.
Ceil
Returns the value rounded up to the nearest integer.
Round
Returns the value rounded to the nearest integer.
Fract
Returns the decimal part of a number.
Sign
Returns the sign of a number.
Pow
Returns the power of two numbers.
Log
Returns the logarithm of a number.
Sqrt
Returns the square root of a number.
Clamp
Returns the value of a number clamped between a minimum and a maximum.
Step
Returns 0 if the value is less than a threshold and 1 if it is greater.
Smoothstep
Returns an clamped smooth interpolation between two values based on a ratio.
Lerp
Returns a linear interpolation between two values based on a ratio.
Sin
Returns the sine of an angle (given in radians).
Cos
Returns the cosine of an angle (given in radians).
Tan
Returns the tangent of an angle (given in radians).
Asin
Returns the arcsine angle in radians of a number.
Acos
Returns the arccosine angle in radians of a number.
Atan
Returns the arctangent angle in radians of a number.
Boolean
Boolean values are represented as numerical values. 0 means False, anything else means True.
And
Returns 1 if both values evalutate to True.
Or
Returns 1 if either of the two values evalutate to True.
Xor
Returns 1 if only one of the two values evalutate to True.
Not
Returns the opposite of a given boolean value.
Compare
Equal
Compares if two values are equal and returns a boolean (0 or 1).
Greater
Compares if one value is greater than another and returns a boolean (0 or 1).
Lesser
Compares if one value is less than another and returns a boolean (0 or 1).
Functions
Expression
Allows you to write a more advanced mathematical expression using XenonCode functions and/or algebra.
Switch
Returns different values depending on the input value.
Counter
Returns a counter that increments with each call. The initial value, minimum, and maximum can be defined.
Pulse
Returns 1 when its input value has changed.
PulseToggle
Returns a boolean that toggles between True/False each time its input value has changed.
Text
Allows you to write a more advanced textual expression.
PID Controller
Returns a PID control value based on the error, integral of the error, and derivative of the error.
Execution
Statement
Allows you to write a pure XenonCode statement like a function call. Must output to either a Conditional or an Execute node.
Conditional
Consider the given statement only if the given condition evaluates to True. Can be chained with other conditionals.
Execute
Executes the connected statements in top-down order.
Include
Includes another XenonCode script in the current script. Make sure your variables and constants nodes have unique names.
Timing
Time
Returns the current Unix Timestamp in units of seconds, having decimals with microsecond precision.
Delay
Returns a boolean 1 after a given delay in seconds after the Set input has received a change from 1 to 0.
Blinker
Returns an alternating boolean between 0 and 1 changing at each defined time interval in seconds.
Smooth
Returns a value interpolating from the previous target (or 0) to the current target value with a given duration in seconds after the Start input has received a change from 1 to 0.