List of All Nodes
Every node you can add to a verb, grouped the way the Add Node menu groups them. There are 148. Use the search box, or your browser’s find, to jump to one.
Nodes marked Runnable take a turn in an ActionVerb’s sequence, so they only appear in ActionVerbs. The rest supply or transform values and work in any verb. See Nodes for how ports and runnable nodes work.
Most used: Print Text, Offer Choices, Get Instances, Run Action Verb, Run Value Verb.
Adjective
Section titled “Adjective”Add Property or Properties Runnable
Section titled “Add Property or Properties Runnable”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.
Add Relationship Runnable
Section titled “Add Relationship Runnable”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.
Get Properties
Section titled “Get Properties”GetPropertiesNode
The GetPropertiesNode returns all properties of a given instance.
Get Property Modifier
Section titled “Get Property Modifier”GetPropertyModifierNode
The GetPropertyModifierNode is used to get the property modifier of a PropertyInstance object based on its type.
Get Property Named Value
Section titled “Get Property Named Value”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.
Get Property
Section titled “Get Property”GetPropertyNode
The GetPropertyNode is used to retrieve a property instance from a NounInstances in the Narramancer system.
Get Relationship
Section titled “Get Relationship”GetRelationshipNode
The GetRelationshipNode is used to get a relationship between two instances.
Get Relationships
Section titled “Get Relationships”GetRelationshipsNode
The GetRelationshipsNode returns a list of all relationships with the given type from a given instance.
Get Stat
Section titled “Get Stat”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).
Modify Stat Runnable
Section titled “Modify Stat Runnable”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.
Remove Properties Runnable
Section titled “Remove Properties Runnable”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.
Remove Relationship Runnable
Section titled “Remove Relationship Runnable”RemoveRelationshipNode
The RemoveRelationshipNode is used to remove relationships between NounInstances.
Get Flag
Section titled “Get Flag”GetFlagNode
The GetFlagNode is used to get the current value of a given flag.
Is Flag Raised
Section titled “Is Flag Raised”IsFlagRaisedNode
The IsFlagRaisedNode returns true if the given flag is raised.
Raise Flag Runnable
Section titled “Raise Flag Runnable”RaiseFlagNode
The RaiseFlagNode is used to raise the given flag.
Remove Flag Runnable
Section titled “Remove Flag Runnable”RemoveFlagNode
The RemoveFlagNode is used to ‘remove’ a flag, meaning the flag is no longer raised.
Set Flag Runnable
Section titled “Set Flag Runnable”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.
Choice (Option)
Section titled “Choice (Option)”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.
Choose Prioritized Branch Runnable
Section titled “Choose Prioritized Branch Runnable”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:
Conditional Runnable
Section titled “Conditional Runnable”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.
For Loop Runnable
Section titled “For Loop Runnable”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.
Choices (Offer) Runnable
Section titled “Choices (Offer) Runnable”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.
Elements As Choices Runnable
Section titled “Elements As Choices Runnable”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.
Parallel Runnable
Section titled “Parallel Runnable”ParallelNode
The ParallelNode is used to create parallel execution flow by running all connected RunnableNodes simultaneously.
Prioritized Branch
Section titled “Prioritized Branch”PrioritizedBranchNode
Used by the ChoosePrioritizedBranchNode, the PrioritizedBranchNode represents a possible prioritized branch that can be chosen if it’s input condition is true.
Random Next Runnable
Section titled “Random Next Runnable”RandomNextNode
The RandomNextNode randomly selects and runs one of its connected RunnableNodes.
Roll Runnable
Section titled “Roll Runnable”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.
Route Runnable
Section titled “Route Runnable”RouteNode
The RouteNodes are provided for organization. They simply consolidate or reroute RunnableNode connections.
Sequence Runnable
Section titled “Sequence Runnable”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.
Stop Runnable
Section titled “Stop Runnable”StopNodeRunnerNode
The StopNodeRunnerNode is used to stop and reset the execution of a node runner.
Switch (Int) Runnable
Section titled “Switch (Int) Runnable”SwitchOnIntNode
The SwitchOnIntNode selects a connected RunnableNode based on an input int value.
Wait Runnable
Section titled “Wait Runnable”WaitNode
The WaitNode creates a pause for the given duration.
Wait Until Runnable
Section titled “Wait Until Runnable”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.
GameObject
Section titled “GameObject”Find Child Transform
Section titled “Find Child Transform”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.
Find GameObject with Name
Section titled “Find GameObject with Name”FindGameObjectWithNameNode
The FindGameObjectWithNameNode is used to find and return a GameObject with a specific name in the scene during gameplay.
Find GameObject with Tag
Section titled “Find GameObject with Tag”FindGameObjectWithTagNode
The FindGameObjectWithTagNode is used to find and return a GameObject with a specific tag in the Unity scene during runtime.
Get Camera
Section titled “Get Camera”GetCameraNode
The GetCameraNode is used to obtain the camera. Its transform and world position are also provided for convenience.
Get Component
Section titled “Get Component”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.
Get Instance Sprite
Section titled “Get Instance Sprite”GetInstanceSpriteNode
The GetInstanceSpriteNode is used retrieve a Sprite value from a given NounInstance (specifically the instances Blackboard).
Set Image Sprite Runnable
Section titled “Set Image Sprite Runnable”SetGameObjectActiveNode
The SetGameObjectActiveNode sets whether a given GameObject is active or not.
Set Image Sprite Runnable
Section titled “Set Image Sprite Runnable”SetImageSpriteNode
The SetImageSpriteNode takes in a Unity.Image and assigns the given sprite to it.
Set Text Runnable
Section titled “Set Text Runnable”SetTextNode
The SetTextNode assigns the text value of a Unity Text component.
Translate GameObject Runnable
Section titled “Translate GameObject Runnable”TranslateGameObjectNode
The TranslateGameObjectNode moves a GameObject, over a duration, at a speed, or immediately. A save made mid-move resumes the move after a load, and a verb waiting for it carries on when it arrives. The GameObject needs a Saveable; without one, Narramancer logs a warning when the move starts.
Tween GameObject Rotation Runnable
Section titled “Tween GameObject Rotation Runnable”TweenGameObjectRotationNode
The TweenGameObjectRotationNode rotates a GameObject over time. A save made mid-turn resumes the turn after a load. The GameObject needs a Saveable; without one, Narramancer logs a warning when the tween starts.
Unity Object
Section titled “Unity Object”UnityObjectNode
The UnityObjectNode allows you to reference a UnityObject, such as a ScriptableObject, within a Verb.
Any Elements in List
Section titled “Any Elements in List”ListAnyNode
The ListAnyNode returns true if the given list has one or more elements in it. The type of elements must be assigned.
Average of Elements in List
Section titled “Average of Elements in List”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.
Choose One Random Element from List Runnable
Section titled “Choose One Random Element from List Runnable”ListChooseOneNode
The ListChooseOneNode randomly selects a single element from a list. The type of elements must be assigned.
List Contains Element
Section titled “List Contains Element”ListContainsNode
The ListContainsNode returns true if the given element is contained in the given list, and false otherwise.
List Count
Section titled “List Count”ListCountNode
The ListCountNode is used to count the number of elements in a list. The type of elements must be assigned.
Filter List Using Predicate
Section titled “Filter List Using Predicate”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.
First Element from List
Section titled “First Element from List”ListFirstNode
The ListFirstNode returns the first element out of the given list.
For Each Element in List Runnable
Section titled “For Each Element in List Runnable”ListForEachNode
The ListForEachNode iterates over a given list and runs the connected RunnableNode for each one.
Sort or Order Elements in List
Section titled “Sort or Order Elements in List”ListOrderNode
The ListOrderNode is used to sort a list based on a predicate and returns the sorted list as output.
Select Elements from List
Section titled “Select Elements from List”ListSelectNode
The ListSelectNode is used to select or transfrom elements from a a given list based on a predicate.
Subtract Elements from List
Section titled “Subtract Elements from List”ListSubtractNode
The ListSubtractNode is used to subtract elements from one given list from another list.
Sum of Elements in List
Section titled “Sum of Elements in 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).
Union of Lists
Section titled “Union of Lists”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.
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.
Are Equal
Section titled “Are Equal”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.
Is Not Null
Section titled “Is Not Null”IsNotNullNode
The IsNotNullNode is used to check if an object is not null.
NotNode
The NotNode is used to invert the value of its input, returning the ‘not’ value.
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.
Arithmetic (Floats)
Section titled “Arithmetic (Floats)”ArithmeticNode
The ArithmeticNode is used to perform basic arithmetic operations on two floating-point numbers, such as addition, subtraction, multiplication, and division.
Choose (Float)
Section titled “Choose (Float)”ChooseFloatNode
The ChooseFloatNode takes in two float values and chooses between them based on a boolean condition, returning the appropriate one.
Choose (Int)
Section titled “Choose (Int)”ChooseIntNode
The ChooseIntNode takes in two int values and chooses between them based on a boolean condition, returning the appropriate one.
Clamp (Float)
Section titled “Clamp (Float)”ClampFloatNode
The ClampFloatNode is used to limit the value of a float within a specified range, using Mathf.Clamp().
Compare (Floats)
Section titled “Compare (Floats)”CompareFloatNode
The CompareFloatNode is used to compare two float values and return a boolean result based on the specified comparison type.
Float to Int
Section titled “Float to Int”FloatToIntNode
The FloatToIntNode is used to convert a float value into an integer value. The value is rounded.
GameObject Distance Check
Section titled “GameObject Distance Check”GameObjectDistanceCheckNode
The GameObjectDistanceCheckNode is used to compare the distance between two GameObjects, comparing them based on LessThan, GreaterThan, or Approximately.
Inequality (Floats)
Section titled “Inequality (Floats)”InequalityNode
The InequalityNode compares two float values and outputs a bool. Choose the comparison: Approximately Equal To, Greater Than Or Equal To, Less Than Or Equal To, Greater Than, or Less Than.
In 0.5 the options labelled Greater Than and Less Than actually tested ≥ and ≤. 1.0 relabels them as Greater Than Or Equal To and Less Than Or Equal To, so existing graphs behave exactly as before, and adds strict Greater Than and Less Than.
Arithmetic (Ints)
Section titled “Arithmetic (Ints)”IntArithmeticNode
The IntArithmeticNode is used to perform arithmetic operations on two integer values, ither addition, subtraction, multiplication, or division.
Inequality (Ints)
Section titled “Inequality (Ints)”IntInequalityNode
The IntInequalityNode performs an inequality comparison between two int values, either ApproximatelyEqualTo, GreaterThan, GreaterThanOrEqualTo, LessThan, or LessThanOrEqualTo.
Int to Float
Section titled “Int to Float”IntToFloatNode
The IntToFloatNode is used to convert an integer value into a float value.
Map Float To 2D Table
Section titled “Map Float To 2D Table”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.
Map Float To Curve
Section titled “Map Float To Curve”MapToCurveNode
The MapToCurveNode takes an input float value and maps it to an output value using the provided AnimationCurve.
Multiply Floats
Section titled “Multiply Floats”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.
Random Float
Section titled “Random Float”RandomFloatNode
The RandomFloatNode generates a random float value within a specified range.
Sum Floats
Section titled “Sum Floats”SumFloatsNode
The SumFloatsNode is used to sum multiple float values. Any number of values can be connected to the node’s input port.
Any Instance Passes Predicate
Section titled “Any Instance Passes Predicate”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.
Choose Ranked Weighted Action Runnable
Section titled “Choose Ranked Weighted Action Runnable”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:
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.
Create Instance Runnable
Section titled “Create Instance Runnable”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.
Destroy Instance Runnable
Section titled “Destroy Instance Runnable”DestroyInstanceNode
The DestroyInstanceNode is used to destroy a NounInstance, removing it from the list of instances and deleting its associated GameObject.
Filter Instances
Section titled “Filter Instances”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.
Get Instance Display Name
Section titled “Get Instance Display Name”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.
Get Instance
Section titled “Get Instance”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.
Get Instances
Section titled “Get Instances”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.
Get Noun Ingredient
Section titled “Get Noun Ingredient”GetNounIngredientNode
The GetNounIngredientNode takes a noun instance and a chosen ingredient type, and outputs that instance’s ingredient of that type, along with whether it has one. Once a type is chosen, the ingredient’s public fields and methods also appear as outputs.
Select Instances
Section titled “Select Instances”SelectInstancesByPredicateNode
The SelectInstancesByPredicateNode is used to select NounInstances based on a predicate (ValueVerb).
Variable
Section titled “Variable”Get Blackboard Variable
Section titled “Get Blackboard Variable”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.
Get Instance Variable
Section titled “Get Instance Variable”GetInstanceBlackboardVariableNode
The GetInstanceBlackboardVariableNode 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.
Get Variable
Section titled “Get Variable”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.
Set Blackboard Variable Runnable
Section titled “Set Blackboard Variable Runnable”SetBlackboardVariableNode
The SetBlackboardVariableNode is used to set a variable in the Blackboard based on a string key.
Set Instance Variable Runnable
Section titled “Set Instance Variable Runnable”SetInstanceBlackboardVariableNode
The SetInstanceBlackboardVariableNode is used to assign a value to a NounInstance’s blackboard.
Set Variable Runnable
Section titled “Set Variable Runnable”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.
Output (Value Verb)
Section titled “Output (Value Verb)”OutputNode
The OutputNode is only applicable to ValueVerbs and is used to assign the verb’s output values.
Root (Action Verb)
Section titled “Root (Action Verb)”RootNode
The RootNode is the starting point for ActionVerbs.
Run Action Verb for Duration Runnable
Section titled “Run Action Verb for Duration Runnable”RunActionVerbForDurationNode
The RunActionVerbForDurationNode is similar to RunActionVerbNode, but will cancel/interrupt the ActionVerb after the given duration.
Run Action Verb Runnable
Section titled “Run Action Verb Runnable”RunActionVerbNode
The RunActionVerbNode is used to run an ActionVerb.
Run Action Verb While Condition Runnable
Section titled “Run Action Verb While Condition Runnable”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.
Run Noun Ingredient Action Verb Runnable
Section titled “Run Noun Ingredient Action Verb Runnable”RunNounIngredientActionVerbNode
The RunNounIngredientActionVerbNode runs an ActionVerb stored on a noun instance’s ingredient. Choose the ingredient type and the verb field; the verb’s required inputs and outputs then appear as ports.
Run Noun Ingredient Value Verb
Section titled “Run Noun Ingredient Value Verb”RunNounIngredientValueVerbNode
The RunNounIngredientValueVerbNode runs a ValueVerb stored on a noun instance’s ingredient and outputs its results, along with whether the instance has that ingredient. Choose the ingredient type and the verb field; the verb’s required inputs and outputs then appear as ports.
Run Value Verb
Section titled “Run Value Verb”RunValueVerbNode
The RunValueVerbNode executes the given ValueVerb.
Narramancer
Section titled “Narramancer”Call Method On Any Type Runnable Runnable
Section titled “Call Method On Any Type Runnable Runnable”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.
Call Method On Any Type Value
Section titled “Call Method On Any Type Value”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.
Call Method On Instance Runnable Runnable
Section titled “Call Method On Instance Runnable Runnable”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.
Call Method On Instance Value
Section titled “Call Method On Instance Value”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.
Call Method On Property Runnable Runnable
Section titled “Call Method On Property Runnable Runnable”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.
Call Method On Property Value
Section titled “Call Method On Property Value”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.
Call Method On Relationship Runnable Runnable
Section titled “Call Method On Relationship Runnable Runnable”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.
Call Method On Relationship Value
Section titled “Call Method On Relationship Value”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.
Call Method On Scriptable Object Runnable Runnable
Section titled “Call Method On Scriptable Object Runnable Runnable”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.
Call Method On Scriptable Object Value
Section titled “Call Method On Scriptable Object Value”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.
Call Method On Stat Runnable Runnable
Section titled “Call Method On Stat Runnable Runnable”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.
Call Method On Stat Value
Section titled “Call Method On Stat Value”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.
Call Static Method Runnable Runnable
Section titled “Call Static Method Runnable Runnable”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.
Choose Object
Section titled “Choose Object”ChooseObjectNode
The ChooseObjectNode takes in two values of any type and chooses between them based on a boolean condition, returning the appropriate one.
Choose Sprite Based On Float
Section titled “Choose Sprite Based On Float”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.
Choose Sprite Based On Property
Section titled “Choose Sprite Based On Property”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.
Comment
Section titled “Comment”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.
Concat Strings
Section titled “Concat Strings”ConcatStringsNode
The ConcatStringsNode is used to concatenate multiple input strings into a single string output.
Construct Object
Section titled “Construct Object”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.
Debug Log Runnable
Section titled “Debug Log Runnable”DebugLogNode
The DebugLogNode is used to print the given message using Unity.Debug.Log().
Debug Log Object Runnable
Section titled “Debug Log Object Runnable”DebugLogObjectNode
The DebugLogObjectNode is used to log the value of an input object to the console using Unity.Debug.Log().
Destroy Game Object Runnable
Section titled “Destroy Game Object Runnable”DestroyGameObjectNode
The DestroyGameObjectNode destroys a given GameObject. It will also unassign the GameObject from its NounInstance, if there is one.
Expose Object
Section titled “Expose Object”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.
Format String
Section titled “Format String”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.
Get Instance From Game Object
Section titled “Get Instance From Game Object”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.
Get Instance Game Object
Section titled “Get Instance Game Object”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.
Get Next Location In Path
Section titled “Get Next Location In Path”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.
Get Transform
Section titled “Get Transform”GetTransformNode
The GetTransformNode is used to get the Transform of a given GameObject.
Load Asset From Resources
Section titled “Load Asset From Resources”LoadAssetFromResourcesNode
The LoadAssetFromResourcesNode is used to load assets from the Unity Resources using a string value path.
Make Color List
Section titled “Make Color List”MakeColorListNode
The MakeColorListNode is used to create and output a list of colors.
Make List
Section titled “Make List”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).
Play Animation Runnable
Section titled “Play Animation Runnable”PlayAnimationNode
The PlayAnimationNode is used to trigger a Unity AnimationClip on a Unity Animation component.
Play Audio Runnable
Section titled “Play Audio Runnable”PlayAudioNode
The PlayAudioNode plays an AudioClip on the given AudioSource. If no AudioSource is connected, it creates one.
Play Sound Runnable
Section titled “Play Sound Runnable”PlaySoundNode
The PlaySoundNode is used to play an audio clip using a provided AudioSource or finding one if it’s not available.
Print Text Runnable
Section titled “Print Text Runnable”PrintTextNode
The Print Text Node is a RunnableNode that will display narrative text to the player.
A screenshot of a PrintTextNode.
Set Instance Game Object Runnable
Section titled “Set Instance Game Object Runnable”SetInstanceGameObjectNode
The SetInstanceGameObjectNode is used to assign the given GameObject to the given NounInstance, creating a two way connection.
Spawn Runnable
Section titled “Spawn Runnable”SpawnNode
The SpawnNode is used to spawn a GameObject using a SerializableSpawner.
Start Timer Runnable
Section titled “Start Timer Runnable”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.
String Literal
Section titled “String Literal”StringLiteralNode
The StringLiteralNode is used to create a string.
Switch On Primitive
Section titled “Switch On Primitive”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’.
To String
Section titled “To String”ToStringNode
The ToStringNode is used to convert any object into a string representation.
Narramancer is source-available. It's free for noncommercial use underPolyForm Noncommercial 1.0.0, and commercial use needs an Asset Store license.Source on GitHub.