Node reference for Actions, Conditions, Decorators, Selectors, and Sequences. For how to open and save trees, see the Behaviour Tree Editor guide.

Actions

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.

AbortMeleeAttackTarget

Force an abort of the current melee attack. This will immediately succeed.

ActionPlayTree

Play anim tree.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • AnimTreeEnum ANIM_TREE_ENUM
    • The anim tree to use.
  • AnimCallbackEnum ANIM_CALLBACK_ENUM
    • The anim callback to use.

AffectedByFlameThrower

React to flamethrower.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

AffectedByFlameThrowerInVent

React to flamethrower in vent.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

AlienWonScareTest

Alien won the 'scare test' - appears deprecated.

ApplyPrimaryDamageControlResponse

Take an impact by aborting the current action (unless already impacted).

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

Assert

Causes an in-game assert (not functional in retail).

  • AssertInfo string
    • Assert information.

BackstageAlienResponse

Performs suspect behaviour when an NPC hears the backstage Alien.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

BackstageAreaSweep

Backstage area sweep.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • BackstageBehaviour BACKSTAGE_BEHAVIOUR
    • The combat state you want to notify.

Breakout

Breakout.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

ChangeCover

Change to pending cover.

Dead

Die!

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

DebugMenuLinkItem

Will always succeed - sets the debug menu item to the given value (not functional) in retail).

  • In_Game_Menu_Text string
    • What to display in the in-game debug menus.
  • DefaultBehaviour bool
    • What should it set the menu item back to?

DebugString

Debug string (not functional in retail).

  • DebugString string
    • Debug string to log.

Despawn

Despawn.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

DoBrokenCover

Broken cover.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

DoneSystematicSearch

Done systematic search.

ExpireTimer

Expires a timer.

  • TimerType LOGIC_CHARACTER_TIMER_TYPE
    • The type of timer we are expiring.

Fail

Returns failure.

FakeSense

Fakes a sense to the specified threshold.

  • SenseType SENSORY_TYPE
    • The sensory type to fake.
  • ThresholdQualifier ThresholdQualifier
    • Which sensory threshold to use.

Force Idle

Force into an idle state.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

Force Search

Force a success (not related to search behaviour).

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

GetOutOfTheWay

Move away from the current spot.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

HitTargetAndRun

Attack the target and run.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

Idle

Switch to an idle state.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

IdleInCover

Idle in cover.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

IdleTime

Switch to an idle state for a set time.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • Time to Idle float
    • Duration in seconds to remain idle.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.

IdleTimeFacingSuspiciousItem

Idle time facing suspicious item.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • Time float
    • Duration in seconds.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.
  • WaitForTeamMembersRouting bool
    • If set then this is used in the WaitForTeamMembersRouting branch.

IdleTimeFacingTarget

Switch to an idle state for a set time, facing a target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • Time to idle once facing the target float
    • Duration in seconds to remain idle once facing the target.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.

IdleTimeFacingTargetMostRecentSensedPosition

Switch to an idle state for a set time and face last sensed position using specified threshold.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • ThresholdQualifier ThresholdQualifier
    • Which sensory threshold to use.
  • Facing Tolerance float
    • What angle do we turn to face target?
  • Time to Idle float
    • Duration in seconds to remain idle.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.

IdleTimeFacingTargetOutsideCombatArea

Switch to an idle state for a set time and face target outside combat area using sense threshold.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • ThresholdQualifier ThresholdQualifier
    • Which sensory threshold to use.
  • Facing Tolerance float
    • What angle do we turn to face target?
  • Time to Idle float
    • Duration in seconds to remain idle.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.

IdleTimeFacingTargetSensedPosition

Switch to an idle state for a set time and face target position using specified sense threshold.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • SenseType SENSORY_TYPE
    • The sensory information we are using for finding the last position.
  • ThresholdQualifier ThresholdQualifier
    • Which sensory threshold to use.
  • Facing Tolerance float
    • What angle do we turn to face target?
  • Time to Idle float
    • Duration in seconds to remain idle.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.

ListeningInConvo

Listen in our conversation.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

MakeAggressive

Make the NPC go into an aggressive state.

MeleeAttackTarget

Character attacks current target with their possible melee.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • AttackType ATTACK_TYPE
    • Type of attack.

MoveInDirection

Move in direction.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • Distance float
    • Distance.
  • Direction MOVE_DIRECTION
    • The direction in which to move.

MoveThroughTarget

Move to our current target and do not attempt to stop on arrival.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.

MoveToAttackTarget

Move to our current target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • PlayStoppingAnim bool
    • Should the atomic succeed when we are close to the target.
  • StoppingDistance float
    • Distance in metres at which movement stops.

MoveToBackstageViaVentClosestToAlien

Move to backstage via vent closest to Alien.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • VentLockReason VENT_LOCK_REASON
    • The vent lock reason to use.

MoveToConvo

Move to our current conversation.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.

MoveToCover

Move to cover position.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

MoveToFrontStageViaFlankedVentClosestToPlayer

Move to frontstage via flanked vent closest to player.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • VentLockReason VENT_LOCK_REASON
    • The vent lock reason to use.

MoveToMostRecentSensedPosition

Move to most recent sensed position.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • ShouldAim bool
    • Should the atomic succeed when we are close to the target.

MoveToNearestStandingPointToTarget

Move to the nearest standing point by our current target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • PlayStoppingAnim bool
    • Should the atomic succeed when we are close to the target.
  • StoppingDistance float
    • Distance in metres at which movement stops.

MoveToObjective

Move to our current objective.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • ObjectiveType OBJECTIVE_TYPE
    • The type of objective we are moving to.

MoveToTarget

Move to our current target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • PlayStoppingAnim bool
    • Should the atomic succeed when we are close to the target.
  • StoppingDistance float
    • Distance in metres at which movement stops.

MoveWithGamepad

Move using gamepad (not functional in retail).

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

NotifySquad

Notify my squad of an event.

  • CombatState NPC_COMBAT_STATE
    • The combat state you want to notify.

PauseSenses

Pause senses for specified duration.

  • Duration to pause senses float
    • Duration in seconds to pause sensory input

PerformAmbush

Perform an ambush.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

PerformRole

Perform a role.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • RoleType ROLE_TYPE
    • The role type to perform.

PlayerController

Control this character as a player.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

PlayTreeAndFaceTarget

Play anim tree and face target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • AnimTreeEnum ANIM_TREE_ENUM
    • The anim tree to use.
  • AnimCallbackEnum ANIM_CALLBACK_ENUM
    • The anim callback to use.

RangedAim

Aim at our current target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • ShouldRaiseGun WEAPON_STANCE
    • Should we raise our gun?
  • Time float
    • Duration in seconds.
  • NoiseTime float
    • Random variation in seconds applied to the base duration.

RangedShoot

Shoot at our current target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • TerminationCondition SHOT_TERMINATOR_TYPE
    • The termination condition to use.
  • ShootStraightAway bool
    • Shoot straight away?

RequestCover

Request a search around the cover the sensed target is in.

  • RequestType NPC_COVER_REQUEST_TYPE
    • The type of cover.
  • Radius of search float
    • Radius in metres to search for cover.
  • InvalidateCurrentCover bool
    • Should the atomic invalidate current cover.

ResetSearchJobs

Reset the search jobs.

Script

Switch to default scripted activities.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

SetFrameFlag

Set frame flag.

  • FrameFlag FRAME_FLAGS
    • The frame flag to use.

SetGaugeAmount

Set gauge amount.

  • GaugeType LOGIC_CHARACTER_GAUGE_TYPE
    • The type of gauge we are setting.
  • GaugeAmountType GAUGE_AMOUNT_TYPE
    • The activation we must be greater than or equal to.
  • SetAtleastTo bool
    • The gauge will be set to at least this value if it is already higher than it will remain unchanged.

SetLogicCharacterFlags

Set if have/haven't done the type.

  • FlagType LOGIC_CHARACTER_FLAGS
    • The type of thing we are setting we have or haven't done.
  • Flag bool
    • Have or haven't we done it?

SetMenaceManager

Set the menace manager.

  • AggressiveMenace bool
    • Alien moving towards player.
  • ResetMenaceGauge bool
    • Reset menace gauge.
  • ProgressionFraction float
    • Fraction of progression between 0 and 1.

SetWithdrawState

Sets the withdraw state.

  • WithdrawState WITHDRAW_STATE
    • Withdraw state.

SpeakingInConvo

Talk in our conversation.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

StartTimer

Starts or restarts timer, time of -1 means use timer default time.

  • Time float
    • Duration in seconds.
  • TimerType LOGIC_CHARACTER_TIMER_TYPE
    • The type of timer we are setting.
  • OnlyIncreaseExistingEndTime bool
    • If true, only extends an existing timer end time rather than resetting it.

StartTimerRandom

Starts or restarts a timer, duration is random between the given min and max values.

  • MinTime float
    • Minimum duration in seconds.
  • MaxTime float
    • Maximum duration in seconds.
  • TimerType LOGIC_CHARACTER_TIMER_TYPE
    • The type of timer we are starting.

Success

Returns a success.

SuspectTargetResponse

Performs suspect behaviour on target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

Suspend

Suspend the behaviour tree.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

SuspiciousItemDoneStage

Suspicious item done stage.

  • Stage SUSPICIOUS_ITEM_STAGE
    • The stage.

SuspiciousItemMoveTo

Move to suspicious item.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • MovementSpeedType SPEED_BOUNDARY
    • The speed at which we move to the target.
  • ShouldAim bool
    • Should the atomic succeed when we are close to the target.

SuspiciousItemReaction

Suspicious Item Reaction.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • SuspiciousItemReaction SUSPICIOUS_ITEM_REACTION
    • The speed at which we move to the suspicious item.

SwitchToNextTarget

Switch to next target.

TakeStep

Take a step forwards or backwards.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • StepType STEP_TYPE
    • Step forwards or backwards.

ThreatAware

Performs suspect behaviour on target.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

ThreatEscalation

Performs threat escalation behaviour for humans.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.

TriggerSound

Trigger sound on owner.

  • SoundType SOUND_ARGUMENT
    • The sound to trigger.

WeaponEquip

Equip or unequip our weapon.

  • RequestShutDownSpeed SHUTDOWN_SPEED_TYPE
    • The speed this action will shut down at.
  • ShouldWeaponEquip WEAPON_EQUIP
    • Equip or unequip?

Conditions

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.

AlienIsAllowed

Is the Alien allowed to do this?

  • AlienAction ALIEN_DEVELOPMENT_MANAGER_ABILITIES
    • Is the Alien allowed to do this?

AllowedToAttackTarget

Are we allowed to attack the current target?

AllowedToDoSuspiciousWarning

Is squad allowing us to perform a suspicious warning?

AllowedToPursueTarget

Do we have squad permission to pursue our target?

AllowedToSearch

Is squad allowing us to search?

AngleFromTargetAgainstTargetCameraDirnLessThan

Test the absolute angle of the target's facing direction against vector from target to owner.

  • ConditionAngleFromTargetAgainstTargetCameraDirnLessThan float
    • Maximum angle in degrees between the target's camera direction and the vector from target to self.

AngleNPCToTargetsAimLessThan

Test the absolute angle of the player's aim direction to the NPC.

  • AngleLessThan float
    • Maximum angle in degrees.
  • AimMustBeHeld bool
    • Whether the target's aim must be held for the angle test to pass.

AngleToTargetLessThan

Is angle to target less than (degrees)?

  • Angle float
    • Maximum angle in degrees.

AnotherAlienIsAttackingThisTarget

Another Alien is attacking this target!

CanBeControlledByGamepad

Can be controlled by gamepad (not functional in retail).

CanBreakout

Is there a way to break out?

CanShootNow

Can I shoot now?

CanTakeStep

Can the character take a single step forwards or backwards?

  • StepType STEP_TYPE
    • Forwards or backwards?

CheckHealthState

Check for health state.

  • HealthState HEALTH_STATE_TYPE
    • Health state we are testing for.

ConvoInterrupted

Conversation was interrupted.

ConvoInterruptedByPlayer

Conversation was interrupted by player.

CurrentWeaponIsEquipped

Do we have a weapon equipped?

CurrentWeaponNeedsReloading

Do we have a weapon and need to reload it?

DebugMenuLinkTest

Checks against the in-game debug menu (not functional in retail).

  • In_Game_Menu_Text string
    • What to display in the in-game debug menus.
  • DefaultBehaviour bool
    • Should it fail or succeed by default?

EventAOccuredAfterB

Returns true if event A occurred after event B within the given time

  • EventA EVENT_OCCURED_TYPE
    • The event A to use.
  • EventB EVENT_OCCURED_TYPE
    • The event B to use.

GameIsDifficulty

Returns true if game is the selected difficulty.

  • Difficulty DIFFICULTY_SETTING_TYPE
    • The difficulty to use.

HasAggroLevel

Returns true if the character has the specified aggro level.

  • AggroLevel NPC_AGGRO_LEVEL
    • The aggro level to check for.

HasAlertnessState

Returns true if the character has the specified alertness state.

  • AlertnessState ALERTNESS_STATE
    • The alertness state to check for.

HasAmbushPoint

Has a point where we could ambush the player.

HasAnySenseBeenAbove

Can we have sensed our target using the given threshold?

  • ThresholdQualifier ThresholdQualifier
    • The threshold to check against.

HasAnySenseBeenAboveWithinTime

Returns true if the character sense has been above the threshold within time.

  • TimeConstraint float
    • Time window in seconds within which the event must have occurred.
  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier of the information we sensed.

HasAWeapon

Do we have a weapon?

  • Npc_Weapon_Type NPC_WEAPON_TYPE
    • The weapon type.

HasDoneSuspectResponseMoveTo

Returns true if a suspect response move-to action has been completed

HasDoneSuspectResponseWithinTime

Returns true if a suspect response was performed within the given time.

  • TimeConstraint float
    • Time window in seconds within which the event must have occurred.

HasFlankedVentCloseToPlayer

Returns true if a flanked vent exists close to the player.

  • VentLockReason VENT_LOCK_REASON
    • The vent lock reason to use.

HasGroupAwarenessState

Are we in the specified NPC group awareness state?

  • GroupAwarenessState GROUP_AWARENESS_STATE
    • The group awareness state we are testing if we are in.

HasKilltrap

Do we have a point where we could killtrap the player?

HasMeleeAttackAvailable

Is there a melee attack available on the current target?

  • AttackType ATTACK_TYPE
    • The attack type to check for.

HasMeleeAttackAvailableOrIsAttacking

Is there a melee attack available on the current target?

  • AttackType ATTACK_TYPE_NO_TRAP
    • The attack type to check for.

HasMeleeBlockAvailable

Is there a melee block available on the current target.

HasMeleeCounterAttackAvailable

Is there a melee counter-attack available on the current target?

HasMotivation

Returns true if the character has the specified motivation type.

  • MotivationType MOTIVATION_TYPE
    • The motivation type to check for.

HasObjective

Do we have an objective set?

  • ObjectiveType OBJECTIVE_TYPE
    • The type of objective we are interested in.

HasScript

Do we have a script to execute?

HasSearchedMostRecentSensedPosition

Have we searched at our target's most recent sensed position?

HasSenseActivationBeenAbove

Can we have sensed the target at the threshold supplied?

  • SenseType SENSORY_TYPE
    • The sensory information we are checking that we sensed.
  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier for the information we sensed.

HasTimerExpired

Has the timer expired?

  • TimerType LOGIC_CHARACTER_TIMER_TYPE
    • The type of timer we are querying.

HasToken

Has a high priority task token?

HasValidCoverToChangeTo

Do I have valid cover to change to?

HasValidRouteToNearTarget

Do we have a valid route to our target (within given range)?

  • Distance to nearest standing point float
    • Maximum distance in metres to the nearest standing point.

HasValidRouteToTarget

Can we route to our target?

HasVentCloseToAlien

Returns true if a vent exists close to the alien

  • VentLockReason VENT_LOCK_REASON
    • The vent lock reason to use.

HaveNextTarget

Should we switch to the next target?

HaveTarget

Check if we have a target.

InConvo

In conversation.

InPositionForConvo

In position for conversation.

IsAnySenseActivationAbove

Check we are sensing the target at the threshold supplied with any sense.

  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier of the information we sensed.
  • MustBeTriggered bool
    • If the sense must be triggered this frame.

IsBackstage

Is the Alien backstage?

IsBranchActive

Is the specified branch decorator active?

  • BranchType BEHAVIOR_TREE_BRANCH_TYPE
    • The branch type.

IsCharacterClass

Is the character of the given class?

  • CharacterType CHARACTER_TYPE
    • Character to check - is it the owner of the tree or the target?
  • CharacterClass CHARACTER_CLASS
    • The character class we are checking for.

IsCorpseTrap

Are we a corpse trap?

IsCoverExposed

Is our cover exposed?

  • Exposure Angle float
    • Angle in degrees above which cover is considered exposed.

IsCoverTooClose

Is our target within the given distance of cover?

  • Distance to check float
    • Maximum distance in metres to check.

IsCrouching

Is the given character crouching?

  • CharacterType CHARACTER_TYPE
    • Character to check - is it the owner of the tree or the target?

IsCurrentCoverValid

Is my current cover valid?

IsDead

Are we dead?

IsEnemyOfTarget

Check if target is our enemy.

IsFrameFlagSet

Is this frame flag set?

  • FrameFlag FRAME_FLAGS
    • The frame flag to check.

IsGaugeAmountAbove

Is the gauge amount equal to or above specified amount?

  • GaugeType LOGIC_CHARACTER_GAUGE_TYPE
    • The type of gauge we are querying.
  • GaugeAmountType GAUGE_AMOUNT_TYPE
    • The type activation we much be greater than or equal to.
  • MustBeTriggered bool
    • If the gauge must be triggered this frame.

IsGaugeAmountBelow

Is the gauge amount equal to or below specified amount?

  • GaugeType LOGIC_CHARACTER_GAUGE_TYPE
    • The type of gauge we are querying.
  • GaugeAmountType GAUGE_AMOUNT_TYPE
    • The activation we must be greater than or equal to.

IsInCombatArea

Are we in the specified combat area?

  • CombatAreaType COMBAT_AREA_TYPE
    • The combat area type we are testing if we are in.

IsInCover

Am I in cover?

  • CheckSlotMatchesDesired bool
    • Should check if current slot is the desired slot?

IsInCrawlSpace

Is the given character inside a crawl space?

  • CharacterType CHARACTER_TYPE
    • Character to check - is it the owner of the tree or the target?

IsInTargetsWeaponRange

Are we in our target's weapon range?

  • WeaponRange WEAPON_RANGE_THRESHOLD_NO_EFFECTIVE
    • The weapon range of the target's weapon to test against.

IsInVent

Is the given character in a vent?

  • CharacterType VENT_CHARACTER_TYPE
    • Character to check - is it the owner of the tree or the target?

IsPartOfNPCGroup

Returns true if the character is part of an NPC group.

IsPerformingRoleOrCouldPerformRole

Are we acting out a role or could we act it out?

  • RoleType ROLE_TYPE
    • The role type to check for.

IsRequestingCover

Am I waiting for cover?

IsSenseActivationAbove

Are we sensing the target at the threshold supplied?

  • SenseType SENSORY_TYPE
    • The type we are checking that we sensed.
  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier of the information we sensed.
  • MustBeTriggered bool
    • If the sense must be triggered this frame.

IsTargetInDeepCrouch

Is the target in deep crouch?

LastTimeSearchedWithinTime

Returns true if a search was performed within the given time.

  • TimeConstraint float
    • Time window in seconds within which the event must have occurred

LastTimeSensed

Checks if the last time the sense was above the threshold within the given time.

  • SenseType SENSORY_TYPE
    • The sense in question.
  • ThresholdQualifier ThresholdQualifier
    • Which sensory threshold to use.
  • TimeThreshold TIME_THRESHOLD
    • Time since last sensed threshold qualifier.

LastTimeSensedFloat

Checks if the last time the sense was above the threshold within the given time.

  • SenseType SENSORY_TYPE
    • The sense in question.
  • ThresholdQualifier ThresholdQualifier
    • Which sensory threshold to use.
  • LastSensedTimeWithin float
    • Time window in seconds since the sense was last above the threshold.

LastTimeSquadNotified

Checks if the last time our squad received the given notification was within the given time.

  • CombatState NPC_COMBAT_STATE
    • The squad notification we are checking.
  • TimeThreshold TIME_THRESHOLD
    • Time since we last received the squad notification.

LastTimeTargetShotAtMe

True if a shot from the target passed nearby within the given time.

  • TimeConstraint float
    • Time window in seconds within which the event must have occurred.

LastTimeWasAbleToShootTarget

Checks if we were able to shoot at the target within the given time.

  • TimeConstraint float
    • Time window in seconds within which the event must have occurred

ListeningInConvo

Listening in conversation.

LogicCharacterFlags

Have we done the specified flag?

  • FlagType LOGIC_CHARACTER_FLAGS
    • The type of flag we are testing if we have done.

MostRecentSenseActivationHasBeenAbove

Returns true if most recent sense activation has been above the given threshold.

  • SenseType SENSORY_TYPE
    • The sensory information we are checking that we sensed.
  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier of the information we sensed.

NeedsToGetOutOfTheWay

Do we need to get out of the way?

ObjectiveIsInCombatArea

Is our objective within the specified combat area type?

  • CombatAreaType COMBAT_AREA_TYPE
    • The combat area we are testing if our objective is in.
  • ObjectiveType OBJECTIVE_TYPE_NO_COVER
    • The type of objective we are interested in.

ObjectiveIsWithinDistance

Are within a specified distance of the objective?

  • ObjectiveType OBJECTIVE_TYPE
    • The type of dynamic objective we are interested in.
  • Distance to check float
    • Maximum distance in metres to check

PlayerIsAnEnemy

Is the player an enemy?

PlayerIsInExploitableArea

Is the player inside an exploitable area volume?

PlayerJoinedConvo

Player joined conversation.

RangeTestForScriptedWithdrawal

Has the script asked us to withdraw?

RequiresPrimaryDamageControlResponse

Checks if the character has been damaged.

ScriptedWithdrawRequested

Has the script asked us to withdraw?

ShouldFollow

Should we follow someone or something?

ShouldProcessSuspiciousItem

Returns true if this character should process the current suspicious item.

ShouldSuspend

Should the tree get suspended?

ShouldUseCover

Can we use cover?

SomeoneJoinedConvo

Someone joined the conversation.

SquadDoingEscalation

Is someone in the squad doing aggression escalation?

SquadDoingSuspiciousWarning

Is someone in the squad doing a suspicious warning?

SuspiciousItemBTPriority

Returns true if the suspicious item behaviour tree priority matches.

  • Priority SUSPICIOUS_ITEM_BEHAVIOUR_TREE_PRIORITY
    • The behaviour tree prioriy.

SuspiciousItemFirstGroupMember

Returns true if this character is the first group member handling the suspicious item.

SuspiciousItemGroupAllowedToProgress

Controls which group members are allowed to progress with the item.

SuspiciousItemGroupMembersRoutingTo

Returns true if group members are routing to the suspicious item.

SuspiciousItemIsWithinDistance

Returns true if the suspicious item is within the specified distance.

  • Distance to check float
    • Maximum distance in metres to check.

SuspiciousItemShouldDoStage

Returns true if the suspicious item should proceed to the specified stage.

  • Stage SUSPICIOUS_ITEM_STAGE
    • The stage.

SuspiciousItemWaitForGroupRouting

Should we wait for rest of group to complete routing checks?

TalkingInConvo

Talking in conversation.

TargetIsInCombatArea

Is our target in the specified combat area?

  • CombatAreaType COMBAT_AREA_TYPE
    • The combat area we are testing if our target is in.
  • UseLastSensedPosition bool
    • Should we use the last sensed position?

TargetIsInWeaponRange

Is our target within the given weapon range?

  • WeaponRange WEAPON_RANGE_THRESHOLD
    • The weapon range to check.

TargetIsOnlyAccessibleCrouching

Is our target in a crawl space?

  • Distance to nearest standing point float
    • Maximum distance in metres to the nearest standing point.

TargetIsPlayer

Is our target the player?

TargetIsTargetingMe

Is the current target targetting us?

TargetIsUsingMeleeAttack

Is the current target performing a melee attack against us?

TargetIsWithinAggroRadius

Is our target within our scripted aggro radius?

TargetIsWithinDistance

Is our target within the given distance?

  • Distance to check float
    • Maximum distance in metres to check.

TargetIsWithinDistanceOfAlien

Is our target within the given distance (for the Alien)?

  • Distance to check float
    • Maximum distance in metres to check.

TargetIsWithinDistanceThreshold

Is our target within the given distance threshold?

  • DistanceThreshold DISTANCE_THRESHOLD
    • The distance threshold the NPC is within.

TargetIsWithinDistanceUnobscured

Is our target within the given distance, as the crow flies or pathing?

  • Distance to check float
    • Maximum distance in metres to check.

TargetIsWithinRoutingDistance

Is our target within the given routing distance?

  • Distance to check float
    • Maximum distance in metres to check

TargetLogicCharacterFlags

Has our target set this flag?

  • FlagType LOGIC_CHARACTER_FLAGS
    • The type of flag we are testing if the target has set.

TargetNearestStandPointIsWithinDistance

Is the nearest standing point to our target within the given distance?

  • Distance to check float
    • Maximum distance in metres to check.

TargetsWeaponHasAmmo

Does the target's weapon have ammo?

TargetsWeaponHasProperty

Does the target's weapon have the specified property?

  • WeaponProperty WEAPON_PROPERTY
    • Which weapon property to test.

VisualSomeRaysThroughGlass

Last time we saw the target, was our visual (even partly) through glass?

WasSenseThresholdLastIncreaseActivation

Check if the supplied sense threshold was the last one that increased.

  • SenseType SENSORY_TYPE
    • The sensory information we are checking that we sensed.
  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier of the information we sensed.
  • MustBeTriggered bool
    • If the sense must be triggered this frame.

WasSenseThresholdLastIncreaseActivationAbove

Check if the supplied sense threshold was at least this when we last increased its activation.

  • SenseType SENSORY_TYPE
    • The sensory information we are checking.
  • ThresholdQualifier ThresholdQualifier
    • The threshold qualifier for the information we sensed.
  • MustBeTriggered bool
    • If the sense must be triggered this frame.

WithdrawState

Checks if we are in the specified withdraw state.

  • WithdrawState WITHDRAW_STATE
    • Withdraw state.

Decorators

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.

AggressionEscalation

Manages aggression escalation for child nodes.

AwarenessState

Used to set NPC target awareness state.

  • AwarenessState AWARENESS_STATE
    • The awareness state we are setting.

Branch

Used for marking branch types.

  • BranchType BEHAVIOR_TREE_BRANCH_TYPE
    • The type of branch this is.

DecoratorMood

Sets the behaviour mood for child nodes.

  • BEHAVIOUR_MOOD_SET BEHAVIOUR_MOOD_SET
    • The behaviour mood to apply.

LockBestVents

Locks the best vents for the specified reason.

  • VentLockReason VENT_LOCK_REASON
    • The vent lock reason to use.

Loop

Forces a loop in the tree search.

Percentage

Stores a percentage (for use with SelectorPercentage, for example).

  • Percentage int
    • A percentage value between 1-100.

SetSenseSet

Sets the active sense set for child nodes.

  • SENSE_SET SENSE_SET
    • The sense set to apply.

SquadSearch

Coordinates squad search behaviour for child nodes.

SuspiciousItemInProgress

Marks that a suspicious item response is in progress.

Timer

Used to restart timers every frame.

  • Time float
    • Duration in seconds.
  • TimerType LOGIC_CHARACTER_TIMER_TYPE
    • The type of timer we are restarting.
  • OnlyIncreaseExistingEndTime bool
    • If true, only extends an existing timer end time rather than resetting it.

Selectors

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.

PercentageSelector

Run a child based on a percentage dice roll.

Selector

Run first successful child.

  • Name string
    • Selector name.

Sequences

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.

Sequence

Run each child in order.

  • Name string
    • Name of sequence.
  • ChildStateType SEQUENCE_CHILD_STATE_TYPE
    • How we handle the child state.

SequenceStateless

Run each child from the first one each time the tree is searched.

  • Name string
    • Name of sequence.
  • ChildStateType SEQUENCE_CHILD_STATE_TYPE
    • How we handle the child state.