List of all Nodes

Here you will find an alphabetical list of all Narramancer nodes. We give a brief description of the node as well as its inputs and outputs. There are roughly 130 concrete nodes.

Please use search functionality or the directory on the right to jump to the node you are looking for.

If you're just getting started, you should skip this section for now and learn about Nouns next.

AddPropertiesNode

The AddPropertiesNode is used to add a property or properties to a noun instance. It can accept a list of properties and/or multiple property inputs.

AddRelationshipNode

The AddRelationshipNode is used to create relationships between instances. It takes two instances, a relationship, and a designation for which one is the source or destination.

AndNode

The purpose of the AndNode is to perform a logical AND operation on its input ports. When all connected input ports return true, the output result will also be true. If any connected input port returns false, the output result will be false.

AnyInstancePassesPredicateNode

The AnyInstancePassesPredicateNode is used to process a list of NounInstances and check if any instance passes a specified 'predicate', which is a ValueVerb. The ValueVerb must have the appropriate inputs and outputs. The node has two output ports, one bool which is true if the predicate evaluates to true on any instance in the list and false otherwise, and another for the first instance if there is one.

AreEqualNode

The AreEqualNode is used to compare two objects for equality. The values can be of any type, that type just needs to be chosen using the dropdown menu.

ArithmeticNode

The ArithmeticNode is used to perform basic arithmetic operations on two floating-point numbers, such as addition, subtraction, multiplication, and division.

BoolNode

The BoolNode is used to create a literal bool value.

CallMethodOnAnyTypeRunnableNode

The CallMethodOnAnyTypeRunnableNode can call (almost) any method on any type of object. This flavor of the 'CallMethod' nodes is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic.

CallMethodOnAnyTypeValueNode

The CallMethodOnAnyTypeValueNode can call (almost) any method on any type of object. This flavor of the 'CallMethod' nodes is a ValueNode, meaning the method will execute when any of its output values are requested. Use this node for 'getter' methods. There are other flavors of this node that handle specific types offered for convenience.

CallMethodOnInstanceRunnableNode

The CallMethodOnInstanceRunnableNode can call (almost) any method on a given NounInstance. This node is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic. There are other flavors of this node that handle specific types offered for convenience.

CallMethodOnInstanceValueNode

The CallMethodOnInstanceValueNode can call (almost) any method on a given NounInstance. This nodes is a ValueNode, meaning the method will execute when any of its output values are requested. Use this node for 'getter' methods.

CallMethodOnPropertyRunnableNode

The CallMethodOnPropertyRunnableNode can call (almost) any method on a given PropertyInstance. This node is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic.

CallMethodOnPropertyValueNode

The CallMethodOnPropertyValueNode can call (almost) any method on a given PropertyInstance. This nodes is a ValueNode, meaning the method will execute when any of its output values are requested. Use this node for 'getter' methods.

CallMethodOnRelationshipRunnableNode

The CallMethodOnRelationshipRunnableNode can call (almost) any method on a given RelationshipInstance. This node is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic.

CallMethodOnRelationshipValueNode

The CallMethodOnRelationshipValueNode can call (almost) any method on a given RelationshipInstance. This nodes is a ValueNode, meaning the method will execute when any of its output values are requested. Use this node for 'getter' methods.

CallMethodOnScriptableObjectRunnableNode

The CallMethodOnScriptableObjectRunnableNode can call (almost) any method on a given ScriptableObject. This node is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic.

CallMethodOnScriptableObjectValueNode

The CallMethodOnScriptableObjectValueNode can call (almost) any method on a given ScriptableObject. This nodes is a ValueNode, meaning the method will execute when any of its output values are requested. Use this node for 'getter' methods.

CallMethodOnStatRunnableNode

The CallMethodOnStatRunnableNode can call (almost) any method on a given StatInstance. This node is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic.

CallMethodOnStatValueNode

The CallMethodOnStatValueNode can call (almost) any method on a given StatInstance. This nodes is a ValueNode, meaning the method will execute when any of its output values are requested. Use this node for 'getter' methods.

CallStaticMethodRunnableNode

The CallStaticMethodRunnableNode can call (almost) any static method. This node is Runnable, meaning it will execute the method when its turn in the chain comes up. Use this node to use methods that 'set' a value or perform logic.

ChoiceNode

A companion to the OfferChoicesNode, the ChoiceNode represents a single choice that can be offered to the player.

A screenshot of an OfferChoicesNode and two connected ChoiceNodes.

A screenshot of an OfferChoicesNode and two connected ChoiceNodes.


The RunnableNode connected to the Choice Node that is selected by the player is the one that will then be run by the system.

The Choice Node has various options that affect how it is displayed. If Enabled is set to false then the option will not be displayed at all UNLESS Display When Disabled is set to true, in which case it will be displayed but in a disabled style.

ChooseFloatNode

The ChooseFloatNode takes in two float values and chooses between them based on a boolean condition, returning the appropriate one.

ChooseIntNode

The ChooseIntNode takes in two int values and chooses between them based on a boolean condition, returning the appropriate one.

ChooseObjectNode

The ChooseObjectNode takes in two values of any type and chooses between them based on a boolean condition, returning the appropriate one.

ChoosePrioritizedBranchNode

The ChoosePrioritizedBranchNode can be used to continuously consider conditional logic and run one of several runnable chains based on which one is highest priority. It depends on one or more PrioritizedBranchNodes being connected to it, which each have a boolean condition and a chain of RunnableNodes.

When running, the ChoosePrioritizedBranchNode will run an update after some amount of time (determined by the Refresh Delay value in milliseconds). During this update, each connected PrioritizedBranchNode will be evaluated, from top to bottom. The first one with a condition that evaluates to true will be run. If a branch was already running, and a higher branch becomes true, the running branch is stopped so the new branch can run.

Additional runnable connections are provided on the ChoosePrioritizedBranchNode which will run under their specific conditions:

  • Run Node on all False - the connected node will run if all branches evaluate to false. It is common to simply connect this node back around to to the ChoosePrioritizedBranchNode itself, creating a loop.
  • Run Node on Branch Completed - the connected node will run if the currently highest priority branch runs out of nodes to run. It is common to simply connect this node back around to to the ChoosePrioritizedBranchNode itself, creating a loop.
  • Run Node on Cancel - the connected node will run if the ChoosePrioritizedBranchNode is interrupted/canceled. This can happen if the ChoosePrioritizedBranchNode is itself on a branch of another ChoosePrioritizedBranchNode. Use this connection to run clean up or stop logic that might not otherwise happen.

ChooseRankedWeightedActionNode

The ChooseRankedWeightedActionNode is used to select a random action from a list of actions based on their weights, and execute the chosen action in the game flow. The node takes in a NounInstance, which is conceptually the thing taking the action.

The ChooseRankedWeightedActionNode is an implementation of a Game AI concept we going to call Ranked Decision Utility Theory. Each action in the list is a possible action the noun can take. At the time when we choose an action, each one is evaluated and given a 'rank' (int value) and a 'weight' (float value). These values can be static or determined by a ValueVerb. Once all actions have had their rank and weight calculated, one is chosen based on the following steps:

  1. Actions with a weight of zero are discarded.
  2. The highest rank among actions is calculated.
  3. Actions with a rank lower than the highest rank are discarded.
  4. One action is randomly selected based on each ones weight, giving higher probability to higher weights.

Each action must have an ActionVerb which is the Effect that that action has when run. The Effect ActionVerb of the chosen action (if there is one) is run.

ChooseSpriteBasedOnFloatNode

The ChooseSpriteBasedOnFloatNode can be used to select from a given set of sprites based on a float value. Each sprite is assigned a range (min and max). This node can be used to choose which sprite to display based on a character's stat.

ChooseSpriteBasedOnPropertyNode

The ChooseSpriteBasedOnPropertyNode can be used to select from a given set of sprites based on a NounInstance's properties. Each sprite is associated with a property. The first pairing where the given NounInstance has the property is selected and its sprite is returned.

ClampFloatNode

The ClampFloatNode is used to limit the value of a float within a specified range, using Mathf.Clamp().

CommentNode

The CommentNode is used to add comments or other information to a graph. It does not have inputs or outputs and does not run. It is simply a box where you can add text. It supports resizing.

CompareFloatNode

The CompareFloatNode is used to compare two float values and return a boolean result based on the specified comparison type.

ConcatStringsNode

The ConcatStringsNode is used to concatenate multiple input strings into a single string output.

ConditionalNode

The ConditionalNode is used to create a flow-based decision based on a boolean condition. This node has an input port for the condition and two output ports for actions depending on whether the condition is true or false.

ConstructObjectNode

The ConstructObjectNode is used to create an object of any given type. If the type has primitive values, this node exposes them for assignment.

CreateInstanceNode

The CreateInstanceNode is used to create a new instance of a Noun. It can also optionally spawn a new GameObject using a spawner, if provided.

DebugLogNode

The DebugLogNode is used to print the given message using Unity.Debug.Log().

DebugLogObjectNode

The DebugLogObjectNode is used to log the value of an input object to the console using Unity.Debug.Log().

DestroyGameObjectNode

The DestroyGameObjectNode destroys a given GameObject. It will also unassign the GameObject from its NounInstance, if there is one.

DestroyInstanceNode

The DestroyInstanceNode is used to destroy a NounInstance, removing it from the list of instances and deleting its associated GameObject.

ExposeObjectNode

The ExposeObjectNode is used to expose an object's properties and fields, allowing you to access their values and use them as inputs for other nodes.

FilterInstancesByPredicateNode

The FilterInstancesByPredicateNode is used to filter a list of noun instances in a flow-based based on a predicate. The predicate is a ValueVerb appropriate inputs and outputs. The output is a list of the NounInstances that pass the given predicate, if there are any.

FindChildTransformNode

The FindChildTransformNode is used to find a child transform given a GameObject based on the specified name. It also provides that child's game object and world position for convenience.

FindGameObjectWithNameNode

The FindGameObjectWithNameNode is used to find and return a GameObject with a specific name in the scene during gameplay.

FindGameObjectWithTagNode

The FindGameObjectWithTagNode is used to find and return a GameObject with a specific tag in the Unity scene during runtime.

FloatLiteralNode

The FloatLiteralNode creates a literal float value.

FloatToIntNode

The FloatToIntNode is used to convert a float value into an integer value. The value is rounded.

ForLoopNode

The ForLoopNode is used to create a 'for loop', executing the connected RunnableNodes a number of times based on the starting and ending values.

FormatStringNode

The FormatStringNode is used to create a formatted text string. It takes the input text and replaces any placeholders (enclosed in curly braces) with the corresponding values from other nodes connected as inputs based on the input's name. That is, if there is an input with the name 'foo', any occurance of the term '{foo}' in the text value will be replaced with the value of the foo input.

GameObjectDistanceCheckNode

The GameObjectDistanceCheckNode is used to compare the distance between two GameObjects, comparing them based on LessThan, GreaterThan, or Approximately.

GetBlackboardVariableNode

The GetBlackboardVariableNode is used to retrieve a value from a Blackboard based on a string key. The type of the value must be specified. The blackboard used is the one attached to the current Verb. To get a blackboard value from a NounInstance, see GetInstanceBlackboardVariableNode.

GetCameraNode

The GetCameraNode is used to obtain the camera. Its transform and world position are also provided for convenience.

GetComponentNode

The GetComponentNode is used to obtain a component from a given GameObject in Unity, either direct or by including all descendants. The type of the component must be given.

GetDisplayNameNode

The GetDisplayNameNode returns a NounInstance's display name, which defaults to the name given to the asset if a display name has not been assigned.

GetFlagNode

The GetFlagNode is used to get the current value of a given flag.

GetInstanceBlackboardVariableNode

The GetInstanceFromGameObjectNode is used to retrieve a value from a NounInstance's Blackboard based on a string key. The type of the value must be specified. To get a blackboard value from the Verb see GetBlackboardVariableNode.

GetInstanceFromGameObjectNode

The GetInstanceFromGameObjectNode is used to retrieve the corresponding NounInstance from a given GameObject (if there is one). In order to get the GameObject from a NounInstance see GetInstanceGameObjectNode.

GetInstanceGameObjectNode

The GetInstanceGameObjectNode is used to retrieve the corresponding GameObject from a given NounInstance (if there is one). In order to get the GameObject from a NounInstance see GetInstanceFromGameObjectNode.

GetInstanceNode

The GetInstanceNode is used to retrieve the corresponding NounInstance from a given NounScriptableObject. If (for some reason) there are multiple NounInstances created from the NounScriptableObject, only the first one is returned.

GetInstancesNode

The GetInstancesNode is used to retrieve all NounInstances and provide them as a list. If there are any elements in the list of 'Must Have Properties' then the NounInstances returned will be limited to those have each have all of the given properties.

GetInstanceSpriteNode

The GetInstanceSpriteNode is used retrieve a Sprite value from a given NounInstance (specifically the instances Blackboard).

GetNextLocationInPathNode

The GetNextLocationInPathNode can be used to traverse a given set of Nouns that are connected by a given relationship, find a path from a starting noun to a destination noun, and return the next step in the path.

GetPropertiesNode

The GetPropertiesNode returns all properties of a given instance.

GetPropertyModifierNode

The GetPropertyModifierNode is used to get the property modifier of a PropertyInstance object based on its type.

GetPropertyNamedValueNode

The GetPropertyNamedValueNode is used to access a Named Value on a PropertyInstance. Named Values are similar to variables, but they are assigned on a PropertyScriptableObject and cannot be changed during runtime.

GetPropertyNode

The GetPropertyNode is used to retrieve a property instance from a NounInstances in the Narramancer system.

GetRelationshipNode

The GetRelationshipNode is used to get a relationship between two instances.

GetRelationshipsNode

The GetRelationshipsNode returns a list of all relationships with the given type from a given instance.

GetStatNode

The GetStatNode is used to get a stat from a given NounInstance, providing outputs for whether the noun has that stat (boolean), the number value of the stat (float), and the number value of the stat as a percentage (for convenience, only applicable if the stat has set min and max values).

GetTransformNode

The GetTransformNode is used to get the Transform of a given GameObject.

GetVariableNode

The GetVariableNode is used to get the value of a given variable. Variables can come from three scopes: either the Global scope, the Scene scope, or the Verb scope.

See also the SetVariableNode.

InequalityNode

The InequalityNode performs an inequality comparison between two float values, either ApproximatelyEqualTo, GreaterThan, or LessThan. Notice that GreaterThanOrEqualTo and LessThanOrEqualTo are NOT provided, do to the fact that we're comparing float values.

IntArithmeticNode

The IntArithmeticNode is used to perform arithmetic operations on two integer values, ither addition, subtraction, multiplication, or division.

IntInequalityNode

The IntInequalityNode performs an inequality comparison between two int values, either ApproximatelyEqualTo, GreaterThan, GreaterThanOrEqualTo, LessThan, or LessThanOrEqualTo.

IntLiteralNode

The IntLiteralNode is used to create an integer literal.

IntToFloatNode

The IntToFloatNode is used to convert an integer value into a float value.

IsFlagRaisedNode

The IsFlagRaisedNode returns true if the given flag is raised.

IsNotNullNode

The IsNotNullNode is used to check if an object is not null.

ListAnyNode

The ListAnyNode returns true if the given list has one or more elements in it. The type of elements must be assigned.

ListAverageNode

The ListAverageNode is used to calculate the average value of elements within a list. The node takes an input list, processes each element using a predicate (ValueVerb), and calculates the average value of these elements.

ListChooseOneNode

The ListChooseOneNode randomly selects a single element from a list. The type of elements must be assigned.

ListContainsNode

The ListContainsNode returns true if the given element is contained in the given list, and false otherwise.

ListCountNode

The ListCountNode is used to count the number of elements in a list. The type of elements must be assigned.

ListFilterNode

The ListFilterNode is used to filter elements in a list based on a predicate. A ValueVerb must be assigned as the predicate with the appropriate inputs and output (one boolean). The resulting list will be all elements from the input list that passed the predicate. The type of elements must be assigned.

ListFirstNode

The ListFirstNode returns the first element out of the given list.

ListForEachNode

The ListForEachNode iterates over a given list and runs the connected RunnableNode for each one.

ListOrderNode

The ListOrderNode is used to sort a list based on a predicate and returns the sorted list as output.

ListSelectNode

The ListSelectNode is used to select or transfrom elements from a a given list based on a predicate.

ListSubtractNode

The ListSubtractNode is used to subtract elements from one given list from another list.

ListSumNode

The ListSumNode is used to calculate the sum of a list of elements. The value of each element is determined by the given predicate (ValueVerb).

ListUnionNode

The ListUnionNode performs a union on the two given lists. Additional elements can also be attached individually to the 'elements' port that will also be added to the resulting list. The operation is specifically a union, meaning that each unique element will only appear at most once in the output list.

LoadAssetFromResourcesNode

The LoadAssetFromResourcesNode is used to load assets from the Unity Resources using a string value path.

MakeColorListNode

The MakeColorListNode is used to create and output a list of colors.

MakeListNode

The MakeListNode is used to create and output a list of ScriptableObjects. The type of the elements in the output list must be assigned (and that type must extend from ScriptableObject).

MapTo2DTableNode

The MapTo2DTableNode maps two input float values (x and y) to a corresponding float value on a 2D table. The min and max values of the table can be manipulated to create a gradient or vector field.

MapToCurveNode

The MapToCurveNode takes an input float value and maps it to an output value using the provided AnimationCurve.

ModifyStatNode

The ModifyStatNode is used to modify a stat value for a given NounInstance. It allows you to increase, decrease, or set a specific stat's value, with optional constraints.

MultiplyFloatsNode

The MultiplyFloatsNode is used to multiply multiple float values together and output the resulting product. Any number of values can be connected to the node's input port.

NotNode

The NotNode is used to invert the value of its input, returning the 'not' value.

OfferChoicesNode

The OfferChoicesNode displays any connected ChoiceNodes to the player as buttons and waits for them to select one.

A screenshot of an OfferChoicesNode and two connected ChoiceNodes.

A screenshot of an OfferChoicesNode and two connected ChoiceNodes.


The Offer Choices Node can have any number of Choice Nodes connected to it.

OfferObjectsAsChoicesNode

The OfferObjectsAsChoicesNode is used to present a list of choices to the player, enabling them to select an object or value from the list. When the player selects a choice, the associated action is executed, and control is passed to the next node in the flow.

OrNode

The OrNode is used to perform an OR logic operation in a flow-based system for game flow and logic called Narramancer. Any number of values can be connected to the node's input port and the result is true if any of the inputs are true, or false if all inputs are false.

OutputNode

The OutputNode is only applicable to ValueVerbs and is used to assign the verb's output values.

ParallelNode

The ParallelNode is used to create parallel execution flow by running all connected RunnableNodes simultaneously.

PlayAnimationNode

The PlayAnimationNode is used to trigger a Unity AnimationClip on a Unity Animation component.

PlaySoundNode

The PlaySoundNode is used to play an audio clip using a provided AudioSource or finding one if it's not available.

PrintTextNode

The Print Text Node is a RunnableNode that will display narrative text to the player.

A screenshot of a PrintTextNode.

A screenshot of a PrintTextNode.


The text can either be typed into the text editor field OR given as an input by connecting the text input port.

A Text Printer can also be given, which will determine the GameObject that receives the text, but if none is set then the first one found in the scene will be used.

The text editor field supports rich text tags, and provides convenience buttons for added tags around selected text. The R button will enable or disable the rich text being displayed in the editor. The B button will add (or remove) bold tags around the selected text. The I button will add (or remove) italic tags around the selected text. The C button will add (or remove) color tags for the color currently selected by the color picker around the selected text.

The Print Text Node can also be resized by selecting the node and dragging the bottom right corner.

The Print Text Node also allows for dynamic terms within the text using inputs. Use the ‘Add New Input’ button to create an input for any given type. Give the input a name, then use that name wrapped in curly brackets within the text to have that term replaced with the string representation of the input value.

A PrintTextNode with one dynamic input.

A PrintTextNode with one dynamic input named 'characterName'.


The example given in the above figure will result in the text output to be “Hello, Samuel!” He said.

PrioritizedBranchNode

Used by the ChoosePrioritizedBranchNode, the PrioritizedBranchNode represents a possible prioritized branch that can be chosen if it's input condition is true.

RaiseFlagNode

The RaiseFlagNode is used to raise the given flag.

RandomFloatNode

The RandomFloatNode generates a random float value within a specified range.

RandomNextNode

The RandomNextNode randomly selects and runs one of its connected RunnableNodes.

RemoveFlagNode

The RemoveFlagNode is used to 'remove' a flag, meaning the flag is no longer raised.

RemovePropertiesNode

The RemovePropertiesNode is used to remove a property or properties from a NounInstance. It accepts a list of PropertyScriptableObject instances, which represent the properties to be removed.

RemoveRelationshipNode

The RemoveRelationshipNode is used to remove relationships between NounInstances.

RollNode

The RollNode is used randomly run one of the two connected RunnableNodes. A 'roll' is performed, choosing a random float value between 0.0 and 1.0. If the value is higher than the given threshold than the top chain is taken, otherwise the bottom.

RootNode

The RootNode is the starting point for ActionVerbs.

RouteNode

The RouteNodes are provided for organization. They simply consolidate or reroute RunnableNode connections.

RunActionVerbForDurationNode

The RunActionVerbForDurationNode is similar to RunActionVerbNode, but will cancel/interrupt the ActionVerb after the given duration.

RunActionVerbNode

The RunActionVerbNode is used to run an ActionVerb.

RunActionVerbWhileConditionIsTrueNode

The RunActionVerbForDurationNode is similar to RunActionVerbNode, but only if the given condition evaluates to true and will cancel/interrupt the ActionVerb if the condition becomes false.

RunValueVerbNode

The RunValueVerbNode executes the given ValueVerb.

SelectInstancesByPredicateNode

The SelectInstancesByPredicateNode is used to select NounInstances based on a predicate (ValueVerb).

SequenceOfNodesNode

The SequenceOfNodesNode allows you to define a series of RunnableNodes that should be executed one after another in the order they are positioned vertically.

SetBlackboardVariableNode

The SetBlackboardVariableNode is used to set a variable in the Blackboard based on a string key.

SetFlagNode

The SetFlagNode set the given flag to the given value. Setting a flag to 1 or more is the same as 'raising' it, setting it to 0 is the same as 'removing' it.

SetGameObjectActiveNode

The SetGameObjectActiveNode sets whether a given GameObject is active or not.

SetImageSpriteNode

The SetImageSpriteNode takes in a Unity.Image and assigns the given sprite to it.

SetInstanceBlackboardVariableNode

The SetInstanceBlackboardVariableNode is used to assign a value to a NounInstance's blackboard.

SetInstanceGameObjectNode

The SetInstanceGameObjectNode is used to assign the given GameObject to the given NounInstance, creating a two way connection.

SetTextNode

The SetTextNode assigns the text value of a Unity Text component.

SetVariableNode

The SetVariableNode is used to assign the value of a given variable. Variables can come from three scopes: either the Global scope, the Scene scope, or the Verb scope.

See also the GetVariableNode.

SpawnNode

The SpawnNode is used to spawn a GameObject using a SerializedSpawner.

StartTimerNode

The StartTimerNode starts a timer for the given number of seconds. It does not halt, and immediately allows the next RunnableNode to execute. Other nodes can then use the bool outputs of the StartTimerNode to determine if the timer is completed or not.

StopNodeRunnerNode

The StopNodeRunnerNode is used to stop and reset the execution of a node runner.

StringLiteralNode

The StringLiteralNode is used to create a string.

SumFloatsNode

The SumFloatsNode is used to sum multiple float values. Any number of values can be connected to the node's input port.

SwitchOnIntNode

The SwitchOnIntNode selects a connected RunnableNode based on an input int value.

SwitchOnPrimitiveNode

The SwitchOnPrimitiveNode is used to choose one element (of a given primitive type) when given a corresponding element (of a separate primitive type). It does this using a predefined list of 'pairings'.

ToStringNode

The ToStringNode is used to convert any object into a string representation.

TranslateGameObjectNode

The TranslateGameObjectNode is used to translate a GameObject. It allows you to move it by duration, speed, or immediately based on user-defined values. The GameObject MUST have SerializableTranform component attached to it.

TweenGameObjectRotationNode

The TweenGameObjectRotationNode is used to tween the rotation of a GameObject. The GameObject MUST have SerializableTranform component attached to it.

UnityObjectNode

The UnityObjectNode allows you to reference a UnityObject, such as a ScriptableObject, within a Verb.

WaitNode

The WaitNode creates a pause for the given duration.

WaitUntilNode

The WaitUntilNode waits until a specific condition is met before continuing the execution of other nodes. The refresh delay determines (in milliseconds) how often the condition should be checked for changes. When the condition becomes true, the node will resume the execution of the following nodes in the flow.