Node reference for Actions, Conditions, Decorators, Selectors, and Sequences. For how to open and save trees, see the Behaviour Tree Editor guide.
Node reference for Actions, Conditions, Decorators, Selectors, and Sequences. For how to open and save trees, see the Behaviour Tree Editor guide.
Action nodes are the leaves of a behaviour tree that actually make the character do something – playing animations, moving, firing weapons, updating state and so on. They have no children and report back whether the action succeeded, failed or is still running.
Force an abort of the current melee attack. This will immediately succeed.
Play anim tree.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
AnimTreeEnum ANIM_TREE_ENUM
AnimCallbackEnum ANIM_CALLBACK_ENUM
React to flamethrower.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
React to flamethrower in vent.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Alien won the 'scare test' - appears deprecated.
Take an impact by aborting the current action (unless already impacted).
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Causes an in-game assert (not functional in retail).
AssertInfo string
Performs suspect behaviour when an NPC hears the backstage Alien.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Backstage area sweep.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
BackstageBehaviour BACKSTAGE_BEHAVIOUR
Breakout.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Change to pending cover.
Die!
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Will always succeed - sets the debug menu item to the given value (not functional) in retail).
In_Game_Menu_Text string
DefaultBehaviour bool
Debug string (not functional in retail).
DebugString string
Despawn.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Broken cover.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Done systematic search.
Expires a timer.
TimerType LOGIC_CHARACTER_TIMER_TYPE
Returns failure.
Fakes a sense to the specified threshold.
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
Force into an idle state.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Force a success (not related to search behaviour).
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Move away from the current spot.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Attack the target and run.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Switch to an idle state.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Idle in cover.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Switch to an idle state for a set time.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Time to Idle float
NoiseTime float
Idle time facing suspicious item.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Time float
NoiseTime float
WaitForTeamMembersRouting bool
Switch to an idle state for a set time, facing a target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Time to idle once facing the target float
NoiseTime float
Switch to an idle state for a set time and face last sensed position using specified threshold.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
ThresholdQualifier ThresholdQualifier
Facing Tolerance float
Time to Idle float
NoiseTime float
Switch to an idle state for a set time and face target outside combat area using sense threshold.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
ThresholdQualifier ThresholdQualifier
Facing Tolerance float
Time to Idle float
NoiseTime float
Switch to an idle state for a set time and face target position using specified sense threshold.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
Facing Tolerance float
Time to Idle float
NoiseTime float
Listen in our conversation.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Make the NPC go into an aggressive state.
Character attacks current target with their possible melee.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
AttackType ATTACK_TYPE
Move in direction.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
Distance float
Direction MOVE_DIRECTION
Move to our current target and do not attempt to stop on arrival.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
Move to our current target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
PlayStoppingAnim bool
StoppingDistance float
Move to backstage via vent closest to Alien.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
VentLockReason VENT_LOCK_REASON
Move to our current conversation.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
Move to cover position.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Move to frontstage via flanked vent closest to player.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
VentLockReason VENT_LOCK_REASON
Move to most recent sensed position.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
ShouldAim bool
Move to the nearest standing point by our current target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
PlayStoppingAnim bool
StoppingDistance float
Move to our current objective.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
ObjectiveType OBJECTIVE_TYPE
Move to our current target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
PlayStoppingAnim bool
StoppingDistance float
Move using gamepad (not functional in retail).
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Notify my squad of an event.
CombatState NPC_COMBAT_STATE
Pause senses for specified duration.
Duration to pause senses float
Perform an ambush.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Perform a role.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
RoleType ROLE_TYPE
Control this character as a player.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Play anim tree and face target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
AnimTreeEnum ANIM_TREE_ENUM
AnimCallbackEnum ANIM_CALLBACK_ENUM
Aim at our current target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
ShouldRaiseGun WEAPON_STANCE
Time float
NoiseTime float
Shoot at our current target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
TerminationCondition SHOT_TERMINATOR_TYPE
ShootStraightAway bool
Request a search around the cover the sensed target is in.
RequestType NPC_COVER_REQUEST_TYPE
Radius of search float
InvalidateCurrentCover bool
Reset the search jobs.
Switch to default scripted activities.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Set frame flag.
FrameFlag FRAME_FLAGS
Set gauge amount.
GaugeType LOGIC_CHARACTER_GAUGE_TYPE
GaugeAmountType GAUGE_AMOUNT_TYPE
SetAtleastTo bool
Set if have/haven't done the type.
FlagType LOGIC_CHARACTER_FLAGS
Flag bool
Set the menace manager.
AggressiveMenace bool
ResetMenaceGauge bool
ProgressionFraction float
Sets the withdraw state.
WithdrawState WITHDRAW_STATE
Talk in our conversation.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Starts or restarts timer, time of -1 means use timer default time.
Time float
TimerType LOGIC_CHARACTER_TIMER_TYPE
OnlyIncreaseExistingEndTime bool
Starts or restarts a timer, duration is random between the given min and max values.
MinTime float
MaxTime float
TimerType LOGIC_CHARACTER_TIMER_TYPE
Returns a success.
Performs suspect behaviour on target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Suspend the behaviour tree.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Suspicious item done stage.
Stage SUSPICIOUS_ITEM_STAGE
Move to suspicious item.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
MovementSpeedType SPEED_BOUNDARY
ShouldAim bool
Suspicious Item Reaction.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
SuspiciousItemReaction SUSPICIOUS_ITEM_REACTION
Switch to next target.
Take a step forwards or backwards.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
StepType STEP_TYPE
Performs suspect behaviour on target.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Performs threat escalation behaviour for humans.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
Trigger sound on owner.
SoundType SOUND_ARGUMENT
Equip or unequip our weapon.
RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
ShouldWeaponEquip WEAPON_EQUIP
Condition nodes are leaf nodes that test the current state of the game or character and report success or failure without performing any action. They are used to gate parts of the tree, allowing a branch to run only when the world is in the expected state.
Is the Alien allowed to do this?
AlienAction ALIEN_DEVELOPMENT_MANAGER_ABILITIES
Are we allowed to attack the current target?
Is squad allowing us to perform a suspicious warning?
Do we have squad permission to pursue our target?
Is squad allowing us to search?
Test the absolute angle of the target's facing direction against vector from target to owner.
ConditionAngleFromTargetAgainstTargetCameraDirnLessThan float
Test the absolute angle of the player's aim direction to the NPC.
AngleLessThan float
AimMustBeHeld bool
Is angle to target less than (degrees)?
Angle float
Another Alien is attacking this target!
Can be controlled by gamepad (not functional in retail).
Is there a way to break out?
Can I shoot now?
Can the character take a single step forwards or backwards?
StepType STEP_TYPE
Check for health state.
HealthState HEALTH_STATE_TYPE
Conversation was interrupted.
Conversation was interrupted by player.
Do we have a weapon equipped?
Do we have a weapon and need to reload it?
Checks against the in-game debug menu (not functional in retail).
In_Game_Menu_Text string
DefaultBehaviour bool
Returns true if event A occurred after event B within the given time
EventA EVENT_OCCURED_TYPE
EventB EVENT_OCCURED_TYPE
Returns true if game is the selected difficulty.
Difficulty DIFFICULTY_SETTING_TYPE
Returns true if the character has the specified aggro level.
AggroLevel NPC_AGGRO_LEVEL
Returns true if the character has the specified alertness state.
AlertnessState ALERTNESS_STATE
Has a point where we could ambush the player.
Can we have sensed our target using the given threshold?
ThresholdQualifier ThresholdQualifier
Returns true if the character sense has been above the threshold within time.
TimeConstraint float
ThresholdQualifier ThresholdQualifier
Do we have a weapon?
Npc_Weapon_Type NPC_WEAPON_TYPE
Returns true if a suspect response move-to action has been completed
Returns true if a suspect response was performed within the given time.
TimeConstraint float
Returns true if a flanked vent exists close to the player.
VentLockReason VENT_LOCK_REASON
Are we in the specified NPC group awareness state?
GroupAwarenessState GROUP_AWARENESS_STATE
Do we have a point where we could killtrap the player?
Is there a melee attack available on the current target?
AttackType ATTACK_TYPE
Is there a melee attack available on the current target?
AttackType ATTACK_TYPE_NO_TRAP
Is there a melee block available on the current target.
Is there a melee counter-attack available on the current target?
Returns true if the character has the specified motivation type.
MotivationType MOTIVATION_TYPE
Do we have an objective set?
ObjectiveType OBJECTIVE_TYPE
Do we have a script to execute?
Have we searched at our target's most recent sensed position?
Can we have sensed the target at the threshold supplied?
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
Has the timer expired?
TimerType LOGIC_CHARACTER_TIMER_TYPE
Has a high priority task token?
Do I have valid cover to change to?
Do we have a valid route to our target (within given range)?
Distance to nearest standing point float
Can we route to our target?
Returns true if a vent exists close to the alien
VentLockReason VENT_LOCK_REASON
Should we switch to the next target?
Check if we have a target.
In conversation.
In position for conversation.
Check we are sensing the target at the threshold supplied with any sense.
ThresholdQualifier ThresholdQualifier
MustBeTriggered bool
Is the Alien backstage?
Is the specified branch decorator active?
BranchType BEHAVIOR_TREE_BRANCH_TYPE
Is the character of the given class?
CharacterType CHARACTER_TYPE
CharacterClass CHARACTER_CLASS
Are we a corpse trap?
Is our cover exposed?
Exposure Angle float
Is our target within the given distance of cover?
Distance to check float
Is the given character crouching?
CharacterType CHARACTER_TYPE
Is my current cover valid?
Are we dead?
Check if target is our enemy.
Is this frame flag set?
FrameFlag FRAME_FLAGS
Is the gauge amount equal to or above specified amount?
GaugeType LOGIC_CHARACTER_GAUGE_TYPE
GaugeAmountType GAUGE_AMOUNT_TYPE
MustBeTriggered bool
Is the gauge amount equal to or below specified amount?
GaugeType LOGIC_CHARACTER_GAUGE_TYPE
GaugeAmountType GAUGE_AMOUNT_TYPE
Are we in the specified combat area?
CombatAreaType COMBAT_AREA_TYPE
Am I in cover?
CheckSlotMatchesDesired bool
Is the given character inside a crawl space?
CharacterType CHARACTER_TYPE
Are we in our target's weapon range?
WeaponRange WEAPON_RANGE_THRESHOLD_NO_EFFECTIVE
Is the given character in a vent?
CharacterType VENT_CHARACTER_TYPE
Returns true if the character is part of an NPC group.
Are we acting out a role or could we act it out?
RoleType ROLE_TYPE
Am I waiting for cover?
Are we sensing the target at the threshold supplied?
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
MustBeTriggered bool
Is the target in deep crouch?
Returns true if a search was performed within the given time.
TimeConstraint float
Checks if the last time the sense was above the threshold within the given time.
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
TimeThreshold TIME_THRESHOLD
Checks if the last time the sense was above the threshold within the given time.
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
LastSensedTimeWithin float
Checks if the last time our squad received the given notification was within the given time.
CombatState NPC_COMBAT_STATE
TimeThreshold TIME_THRESHOLD
True if a shot from the target passed nearby within the given time.
TimeConstraint float
Checks if we were able to shoot at the target within the given time.
TimeConstraint float
Listening in conversation.
Have we done the specified flag?
FlagType LOGIC_CHARACTER_FLAGS
Returns true if most recent sense activation has been above the given threshold.
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
Do we need to get out of the way?
Is our objective within the specified combat area type?
CombatAreaType COMBAT_AREA_TYPE
ObjectiveType OBJECTIVE_TYPE_NO_COVER
Are within a specified distance of the objective?
ObjectiveType OBJECTIVE_TYPE
Distance to check float
Is the player an enemy?
Is the player inside an exploitable area volume?
Player joined conversation.
Has the script asked us to withdraw?
Checks if the character has been damaged.
Has the script asked us to withdraw?
Should we follow someone or something?
Returns true if this character should process the current suspicious item.
Should the tree get suspended?
Can we use cover?
Someone joined the conversation.
Is someone in the squad doing aggression escalation?
Is someone in the squad doing a suspicious warning?
Returns true if the suspicious item behaviour tree priority matches.
Priority SUSPICIOUS_ITEM_BEHAVIOUR_TREE_PRIORITY
Returns true if this character is the first group member handling the suspicious item.
Controls which group members are allowed to progress with the item.
Returns true if group members are routing to the suspicious item.
Returns true if the suspicious item is within the specified distance.
Distance to check float
Returns true if the suspicious item should proceed to the specified stage.
Stage SUSPICIOUS_ITEM_STAGE
Should we wait for rest of group to complete routing checks?
Talking in conversation.
Is our target in the specified combat area?
CombatAreaType COMBAT_AREA_TYPE
UseLastSensedPosition bool
Is our target within the given weapon range?
WeaponRange WEAPON_RANGE_THRESHOLD
Is our target in a crawl space?
Distance to nearest standing point float
Is our target the player?
Is the current target targetting us?
Is the current target performing a melee attack against us?
Is our target within our scripted aggro radius?
Is our target within the given distance?
Distance to check float
Is our target within the given distance (for the Alien)?
Distance to check float
Is our target within the given distance threshold?
DistanceThreshold DISTANCE_THRESHOLD
Is our target within the given distance, as the crow flies or pathing?
Distance to check float
Is our target within the given routing distance?
Distance to check float
Has our target set this flag?
FlagType LOGIC_CHARACTER_FLAGS
Is the nearest standing point to our target within the given distance?
Distance to check float
Does the target's weapon have ammo?
Does the target's weapon have the specified property?
WeaponProperty WEAPON_PROPERTY
Last time we saw the target, was our visual (even partly) through glass?
Check if the supplied sense threshold was the last one that increased.
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
MustBeTriggered bool
Check if the supplied sense threshold was at least this when we last increased its activation.
SenseType SENSORY_TYPE
ThresholdQualifier ThresholdQualifier
MustBeTriggered bool
Checks if we are in the specified withdraw state.
WithdrawState WITHDRAW_STATE
Decorator nodes wrap a single child and modify how it runs – for example repeating it, inverting its result, applying a timer or changing the character's mood while the child is active. They are used to add behaviour around an existing subtree without changing the subtree itself.
Manages aggression escalation for child nodes.
Used to set NPC target awareness state.
AwarenessState AWARENESS_STATE
Used for marking branch types.
BranchType BEHAVIOR_TREE_BRANCH_TYPE
Sets the behaviour mood for child nodes.
BEHAVIOUR_MOOD_SET BEHAVIOUR_MOOD_SET
Locks the best vents for the specified reason.
VentLockReason VENT_LOCK_REASON
Forces a loop in the tree search.
Stores a percentage (for use with SelectorPercentage, for example).
Percentage int
Sets the active sense set for child nodes.
SENSE_SET SENSE_SET
Coordinates squad search behaviour for child nodes.
Marks that a suspicious item response is in progress.
Used to restart timers every frame.
Time float
TimerType LOGIC_CHARACTER_TIMER_TYPE
OnlyIncreaseExistingEndTime bool
Selector nodes are composite nodes that run their children in turn until one of them succeeds, behaving like a logical OR. They are typically used to pick the first viable behaviour from a prioritised list of options.
Run a child based on a percentage dice roll.
Run first successful child.
Name string
Sequence nodes are composite nodes that run their children in order, continuing only while each child succeeds, behaving like a logical AND. They are used to perform a series of steps that must all complete for the overall behaviour to succeed.
Run each child in order.
Name string
ChildStateType SEQUENCE_CHILD_STATE_TYPE
Run each child from the first one each time the tree is searched.
Name string
ChildStateType SEQUENCE_CHILD_STATE_TYPE