Gateway Nodes - Suvidriel/VNyanDoc GitHub Wiki

Gateway nodes are nodes that receive a signal, and forward that signal on the basis of different conditions. They can be used to change effects based on different values, randomize actions, or time actions, among other things. They are characterized by both a (teal) Listener socket, and one or more (yellow) Call sockets, as well as optional (red) Value Input sockets.

Types of Gateway nodes:

Input and Output:

  • M - Manual input
  • T - Trigger output
  • S - Socket input/output*
    *Gateway Nodes do not have Output Socket Values, and so S will exclusively refer to Socket input.

For more details on node input and output, see Input and Output methods

Value Filter Nodes

Filter Blendshape

Send a trigger signal depending on a Blendshape Clip value.

Input Values:

Name Method Type Description
Blendshape Name M/S String Name of the Blendshape Clip whose value will be checked.
Value M/S Int The value to compare the Blendshape Clip value to.

Output Values:

Name Method Type Description
>= T - Send a trigger signal if the blendshape value of the named blendshape is larger or equal to Value.
< T - Send a trigger signal if the blendshape value of the named blendshape is smaller than Value.

Note The first value of this node is a Blendshape Name.

Filter Parameter

Send a trigger signal depending on a numeric parameter value.

Input Values:

Name Method Type Description
Parameter Name M/S String Name of the numeric parameter whose value will be checked.
Value M/S Int The value to compare the numeric parameter value to.

Output Values:

Name Method Type Description
> T - Send a trigger signal if the blendshape value of the named blendshape is larger than Value.
= T - Send a trigger signal if the blendshape value of the named blendshape is equal to Value.
< T - Send a trigger signal if the blendshape value of the named blendshape is smaller than Value.

Note The first value of this node is a Parameter Name.

Compare Text

Send a trigger signal depending on whether a condition over a text value is true or false.

Input Values:

Name Method Type Description
Operation M - Whether to check if the first value is exactly equal to the second value, or if the first value contains the second value. Has case-sensitive and case-insensitive options.
Text Value M/S String The text value what will be checked.
Compare Value M/S String A text value to which the first text value will be compared.

Output Values:

Name Method Type Description
true T - Send a trigger signal if the condition of the text comparison is met.
false T - Send a trigger signal if the condition of the text comparison is not met.

Compare Decimal

Send a trigger signal depending on the relationship between two values.

Input Values:

Name Method Type Description
Value 1 M/S Float The value on the left side of the comparison.
Value 2 M/S Float The value on the right side of the comparison.

Output Values:

Name Method Type Description
> T - Send a trigger signal if Value 1 is larger than Value 2.
= T - Send a trigger signal if Value 1 is equal to Value 2.
< T - Send a trigger signal if Value 1 is smaller than Value 2.

Note The first value of this node is a number.

Text Logic Filter

Perform a logic operation over two comparisons of text values to a condition, and send a trigger signal depending on whether the operation is true or false. Can take either values or text.

The node makes two comparisons. First, it checks if Value 1 equals the Comparison Value using the set Operation. Next, it checks if Value 2 equals the Comparison Value. The results of those two comparisons are combined according to the selected operation.



Input Values:

Name Method Type Description
Value 1 M/S String The first value to compare against the Comparison Value.
Value 2 M/S String The second value to compare against the Comparison Value.
Comparison Value M/S String The value to compare both Values 1 and 2 to.
Operation M - The logic operation along which comparison 1 and 2 should be combined:
  • AND - Check whether Value 1 and 2 both match Compare Value
  • OR - Check whether either Value 1, 2, or both match Compare Value
  • XOR - Check whether only one Value matches Compare Value
  • NAND - Check whether Value 1 and 2 do not both match Condition Value
  • NOR - Check whether Value 1 and 2 both do not match Compare Value
  • XNOR) - Check whether Value 1 and 2 both either match or do not match Compare Value.
Case Insensitive M/S Bool Toggle whether the comparisons are case insensitive.

Output Values:

Name Method Type Description
true T - Send a trigger signal if the condition of the logic operation is met.
false T - Send a trigger signal is the condition of the logic operation is unmet.

Example

Suppose Value 1 and 2 are set to "yes" and "no" respectively, and Comparison Value is set to "yes". If Operation is set to AND, the false Socket will send a trigger signal, since Value 1 and 2 are not both "yes". If Operation is set to OR, the true Socket will send a trigger signal, since one of the two values is "yes".

Cooldown

Check whether the Cooldown node is on cooldown, send a trigger signal depending on whether it was or not, and if the cooldown was not active, put the node on cooldown for the specified amount of time.

Input Values:

Name Method Type Description
Cooldown milliseconds M/S Int The duration of the cooldown that the cooldown node will be put on after being activated when it is not on cooldown.

Output Values:

Name Method Type Description
Ok T - Send a trigger signal if the Cooldown node is not on cooldown at the moment it is activated.
On Cooldown T - Send a trigger signal if the Cooldown node is on cooldown at the moment it is activated.

Text Switch

Send a different trigger signal depending on whether an input text value matches one of the specified text values.

Input Values:

Name Method Type Description
Switch Value M/S String The input text that will be compared against the specified cases.
Case 1-5 Value M/S String The text value where, if Switch Value matches it, a trigger signal will be sent for that case.

Output Values:

Name Method Type Description
Case 1-5 Value T - Send a trigger signal is the Switch Value matches the specific Case Value.
Else T - Send a trigger signal is Switch Value matched none of the Case Values.

Bool Filter

Send a trigger signal depending on whether an input boolean is true or false at the moment the Bool Filter node is activated.

Input Values:

Name Method Type Description
Input Value S Bool The boolean value that determines which trigger signal the Bool Filter node sends.

Output Values:

Name Method Type Description
true T - Send a trigger signal if Input Value is true when the Bool Filter node is activated.
false T - Send a trigger signal if Input Value is false when the Bool Filter node is activated.

Bool Logic Filter

Perform a logic operation over two boolean values, and send a trigger signal depending on whether the operation is true or false.

Input Values:

Name Method Type Description
Value 1 S Bool The first boolean value in the logic operation.
Operation M - The logic operation along which values 1 and 2 should be combined:
  • AND - Check whether Value 1 and 2 both match Compare Value
  • OR - Check whether either Value 1, 2, or both match Compare Value
  • XOR - Check whether only one Value matches Compare Value
  • NAND - Check whether Value 1 and 2 do not both match Condition Value
  • NOR - Check whether Value 1 and 2 both do not match Compare Value
  • XNOR) - Check whether Value 1 and 2 both either match or do not match Compare Value.
Value 2 S Bool The second boolean value in the logic operation.

Output Values:

Name Method Type Description
true T - Send a trigger signal if the condition of the logic operation is met.
false T - Send a trigger signal is the condition of the logic operation is unmet.

Input Filter Nodes

These nodes are used to check if certain inputs are present at the moment that the node is triggered.

Filter Volume

Send a trigger signal depending on whether the volume of the input from a specified microphone exceeds a specified value.

Audio Input can be a virtual audio cable, like VB Audio Cable or similar (note that swapping default audio devices in Windows while VNyan is running will break audio processing).



Input Values:

Name Method Type Description
Audio Input M - The audio device whose input volume will be compared against Volume.
Frequencies M - The frequency band across which the volume is taken.
  • All - Read the volume across the entire frequency spectrum.
  • Low - Read the volume across the bass frequency spectrum.
  • Mid - Read the volume across the middle frequency spectrum.
  • High - Read the volume across the treble frequency spectrum.
Volume M/S Float A value between 0 and 100 to which the input volume will be compared.

Output Values:

Name Method Type Description
Current Volume - Float The current input volume.
>= T - Send a trigger signal if the input volume at the moment the node is triggered is larger than or equal to Volume.
< T - Send a trigger signal if the input volume at the moment the node is triggered is smaller than Volume.

Community Note: We would like to add more detailed information about the frequency bands for the Frequency settings. If you have more information about this, please let us know.

Filter Heart Rate

Send a trigger signal depending on whether the heartrate registered by Pulsoid exceeds a specified value. Heartrate is expressed in beats per minute. Pulsoid must be connected in order for this node to work.

Input Values:

Name Method Type Description
Heart Rate M/S Int Value against which heart rate will be checked.

Output Values:

Name Method Type Description
Current HR - Int The current heart rate in beats per minute.
>= T - Send a trigger signal if heartrate at the moment the node is triggered is larger than or equal to Heart Rate.
< T - Send a trigger signal if heartrate at the moment the node is triggered is smaller than Heart Rate.

Builtin Parameters

  • [heartrate] contains current heart rate
  • [heartpercent] percentage (0.0-1.0) of heart rate between 30-300

Filter Hotkey

Send a trigger signal depending on whether a specified key combination is pressed at the moment the node is activated.

Input Values:

Name Method Type Description
Set Hotkey M - The key combination to check for the moment the node is activated. The key combination can be specified by pressing the Set Hotkey button and pressing the desired key combination on your key board. TAB, Caps Lock, META, or punctuation like the semi-colon, period, etc. are not accepted as input. CTRL, ALT and SHIFT can be used as modifiers with other keys.

Output Values:

Name Method Type Description
On T - Send a trigger signal if the specified key combination is pressed at the moment the node is activated.
Off T - Send a trigger signal if the specified key combination is not pressed at the moment the node is activated.

Filter Gesture

Send a trigger signal depending on whether a selected gesture is registered by the Gestures System at the moment the node is activated.

Input Values:

Name Method Type Description
Gesture M - The gesture to check for the moment the node is activated. Gestures must be registered in the [[Gestures Menu

Output Values:

Name Method Type Description
On T - Send a trigger signal if the specified gesture is registered at the moment the node is activated.
Off T - Send a trigger signal if the specified gesture is not registered at the moment the node is activated.

Filter Gamepad Button

Send a trigger signal depending on whether a specified gamepad button is pressed at the moment the node is activated. VNyan should automatically connect any currently plugged in gamepads.

Input Values:

Name Method Type Description
Button M - The button to check for the moment the node is activated.

Output Values:

Name Method Type Description
On T - Send a trigger signal if the specified button is pressed at the moment the node is activated.
Off T - Send a trigger signal if the specified button is not pressed at the moment the node is activated.

Note To filter based on joystick directional input, use the Filter Parameter node. Joystick directional input is stored to the _gamepadrightx, _gamepadrighty, _gamepadleftx, and _gamepadlefty parameters automatically when a gamepad is connected.

Community Note: The behavior when multiple gamepads are connected is currently unknown, e.g. which gamepad is given priority, or are all gamebads read?

Filter Steam VR Button

Send a trigger signal depending on whether a specified Steam VR controller button is held at the moment the node is activated.

Input Values:

Name Method Type Description
Button M - The button whose state is checked at the time the node is activated.

Output Values:

Name Method Type Description
On T - Send a trigger signal if the specified button is pressed at the moment the node is activated.
Off T - Send a trigger signal if the specified button is not pressed at the moment the node is activated.

Randomizer Nodes

Random2 Split

Randomly send one of two trigger signals.

Output Values:

Name Method Type Description
- T - Two Call Sockets, one of which will send a trigger signal whenever the node is activated.

Random10 Split

Randomly send one of ten trigger signals.

Output Values:

Name Method Type Description
- T - Ten Call Sockets, one of which will send a trigger signal whenever the node is activated.

Note Unconnected Call Sockets can be selected for an output signal, effectively providing a 10% change nothing will happen when the node is activated.

Other Nodes

TArray Contains

Check if a given Text Array contains an item that exactly matches a specified case-sensitive text value.

Input Values:

Name Method Type Description
Text Array Name M/S String The name of the array to check.
Case Sensitive Value M/S String The text value that will be searched for in the Text Array.

Output Values:

Name Method Type Description
Yes T - Send a trigger signal if Case Sensitive Value exists in the Text Array.
No T - Send a trigger signal if Case Sensitive Value does not exist in the Text Array.

Ordered Execution

Execute all output sockets in order from top to bottom.

Usually, when multiple wires are connected to a single Call Socket, the order of execution is based on the order that the wires were created. This order can change during VNyan's startup. Using the Ordered Execution node, the order in which multiple nodes are activated can be ensured to remain the same between sessions.

Output Values:

Name Method Type Description
- T - Five Call Sockets which will send trigger signals in order.

Cycler5 Split

Send one trigger signal each time the node is activated, in order from top to bottom. Empty sockets are skipped.

Output Values:

Name Method Type Description
Next Output - - Which socket will send a trigger signal the next time the node is activated. Advances to the next connected socket whenever the node is activated. After all connected sockets have sent a trigger signal, it will cycle back to the first connected socket.
- T - Five Call Sockets which will send trigger signals in order. Each time the Cycler5 Split node is activated, only the socket listed in Next Output will send a trigger signal.

Wait

Wait a specified amount of milliseconds after being activated before sending a trigger signal to connected nodes. The node will not stop the parent node's other child nodes from executing.

Input Values:

Name Method Type Description
Wait milliseconds M/S Int The time to wait after the wait node is activated before sending a trigger signal to connected nodes, in milliseconds.

Output Values:

Name Method Type Description
- T - Send a trigger signal after the wait-time has elapsed.

Message Box

A message box used to add documentation within graphs. The Message Box node in its entirety is an input field, and can be edited by clicking anywhere within it.

The node supports Rich Text editing so it's possible to enter markup inside angle brackets. Supports italics, bold, size, and color. Note that the markup will disappear while the textbox is selected. To remove a markup tag, put the cursor at the beginning of the marked-up text and press backspace, and put the cursor near the end of the text and press delete.



Markup Tags:

Name Method Type Description
bold M String <b>message</b>
italics M String <i>message</i>
size M String <size=20>message</size>
color M String <color=red>message</color>. The color tag accepts the names of common colors or color hexadecimal value.
⚠️ **GitHub.com Fallback** ⚠️