Behavior Tree Node Reference: Decorators

Decorator, also known as conditionals in other Behavior Tree systems, are attached to either a Composite or a Task node and define whether or not a branch in the tree, or even a single node, can be executed.

Blackboard

Blackboard.png

The Blackboard node will check to see if a value is set on the given Blackboard Key.

Property Description
Notify Observer
On Result Change Reevaluate only when the condition has changed.
On Value Change Reevaluate only when the observed Blackboard Key changes.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Key Query
Is Set Is the value set?
Is Not Set Is the value not set?
Blackboard Key The key to check. This is most useful for data types that can return None such as Objects, as other types may return their initialized values (0, false, {0,0,0}, etc...).
Node Name The name the node should display in the Behavior Tree graph.

Compare Blackboard Entries

CompareBBEntries.png

The Compare Blackboard Entries nodes will compare the values of two Blackboard keys and will block or allow the execution of a node based on that result (either equal to or not equal to).

Property Description
Operator
Is Equal To Are the two keys equal to each other?
Is Not Equal To Are the two keys different to each other?
Blackboard Key A The first key to use in this comparison.
Blackboard Key B The second key to use in this comparison.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Node Name The name the node should display in the Behavior Tree graph.

Composite

Composite.png

The Composite Decorator node enables you to setup more advanced logic than the built in nodes but not as complex as a full Blueprint. Once you have added a Composite Decorator to a node, Double-click the Composite Decorator to bring up the Composite's Graph. By Right-clicking in the graph area you can add Decorator Nodes as stand alone nodes, then wire them together through AND nodes, OR nodes, and NOT nodes, to create more advanced logic:

CompositeGraph.png

Property Description
Composite Name The name the node should display in the Behavior Tree graph.
Show Operations This will cause the operations to be listed on the node in plain text.

Conditional Loop

As long as the Key Query condition is met, this Decorator will have the node it's attached to loop.

ConditionalLoop.png

Property Description
Node Name The name the node should display in the Behavior Tree graph.
Key Query
Is Set Is the value set?
Is Not Set Is the value not set?
Blackboard Key The key to check. This is most useful for data types that can return None such as Objects, as other types may return their initialized values (0, false, {0,0,0}, etc...).

Cone Check

ConeCheck.png

The Cone Check decorator takes in 3 vector keys: the first for the location to start the cone, the second to define the direction the cone points, and the third for the location to check if it is inside the cone. You define the angle of the cone by using the Cone Half Angle property.

Property Description
Cone Half Angle The half angle of the cone. So for a 90 degree cone, this value should be set to 45 degrees.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Cone Origin The location where the cone should start (the tip of the cone).
Cone Direction The direction in which the mouth of the cone should point.
Observed The location or Actor that is being checked to see if it is in the cone.
Inverse Condition Should the result be reverse (true to false, false to true).
Node Name The name the node should display in the Behavior Tree graph.

Cooldown

Cooldown.png

The Cooldown node will lock the execution of a node or branch until the cooldown time expires.

Property Description
Cool Down time The time, in seconds, the Cooldown decorator should lock execution of this node.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Node Name The name the node should display in the Behavior Tree graph.

Does Path Exist

DoesPathExist.png

The Does Path Exist node checks to see if a path can be made from the two vectors: Blackboard Key A and Blackboard Key B.

Property Description
Blackboard Key A The first location in the path.
Blackboard Key B The second location in the path.
Path Query Type
NavMesh Raycast 2D Really Fast.
Hierarchical Query Fast.
Regular Path Finding Slow.
Inverse Condition Should the result be reverse (true to false, false to true).
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Filter Class Which navigation data should be used? If set to None the default navigation data will be used.
Node Name The name the node should display in the Behavior Tree graph.

Force Success

ForceSuccess.png

The Force Success decorator changes the node result to a success.

Property Description
Node Name The name the node should display in the Behavior Tree graph.

Gameplay Tag Condition

GameplayTagCondition.png

Property Description
Actor to Check The Blackboard Key that contains the reference to the Actor to check.
Tags to Match Should the Decorator match Any or All of the Tags listed in the property Gameplay Tags.
Gameplay Tags Loads the Gameplay Tag editor to select the tags that should be used in this Decorator.
Inverse Condition Should the result of this Decorator be inversed? (false becomes true, true becomes false)
Node Name The name the node should display in the Behavior Tree graph.

Is Blackboard Value of Given Class

IsBlackboardValueOfGivenClass.png

Property Description
Test Class The Class type that is tested against Class of the Object of the Blackboard Key property.
Blackboard Key The Blackboard Key that is tested.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Node Name The name the node should display in the Behavior Tree graph.

Keep in Cone

KeepInCone.png

Property Description
Cone Half Angle The half angle of the cone. So for a 90 degree cone, this value should be set to 45 degrees.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Cone Origin The location where the cone should start (the tip of the cone)
Observed The location or Actor to keep in the cone.
Node Name The name the node should display in the Behavior Tree graph.

Loop

Loop.png

Loops the node or branch a number of times, or infinitely.

Property Description
Num Loops The number of loops to run.
Infinite Loop Should this loop run indefinitely?
Node Name The name the node should display in the Behavior Tree graph.

Reached Move Goal

ReachedMoveGoal.png

The Reached Move Goal node will check the path of the Pawn (with a Character Movement component) and return a success if the Pawn has reached its movement goal.

Property Description
Inverse Condition Should the result be reverse (true to false, false to true).
Node Name The name the node should display in the Behavior Tree graph.

Set Tag Cooldown

SetTagCooldown.png

Property Description
Cooldown Tag The GameplayTag that will be used for the Cooldown.
Cooldown Duration How long the Cooldown is in seconds.
Add to Existing Duration If there is an existing Cooldown on the given GameplayTag, should we add more?
Node Name The name the node should display in the Behavior Tree graph.

Tag Cooldown

TagCooldown.png

Property Description
Cooldown Tag The GameplayTag that will be used for the Cooldown.
Cooldown Duration How long the Cooldown is in seconds.
Add to Existing Duration If there is an existing Cooldown on the given GameplayTag, should we add more?
Adds/Sets Cooldown on Deactivation Whether or not we are adding/setting to the CooldownTag's value when the decorator deactivates.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Node Name The name the node should display in the Behavior Tree graph.

Time Limit

TimeLimit.png

The Time Limit decorator will give a branch or node a set amount of time to finish before stopping it and failing out. The timer is reset every time the node gains focus.

Property Description
Time Limit The time limit before the node fails out, in seconds.
Observer Aborts
None Do not abort anything.
Self Abort self, and any sub-trees running under this node.
Lower Priority Abort any nodes to the right of this node.
Both Abort self, any sub-trees running under me, and any nodes to the right of this node.
Node Name The name the node should display in the Behavior Tree graph.