-
-
Notifications
You must be signed in to change notification settings - Fork 12
LegendPlugin Node Documentation
This page details available nodes within LegendPlugin for modding Alien: Isolation behaviour trees. Some nodes roles are presumed and may have slight variations when actually used. Certain nodes are "built for purpose" and will crash the game if used incorrectly.
This page is currently under construction, and not all nodes are documented!
Common recurrences to note:
- Stopping distance: this is the distance as which the entity will begin to stop its movement in order to smooth the transition from active to idle (or attack). Can be used in conjunction with configured locomotion settings.
- It is also common to have the option to play a stopping animation or not, which will further smooth the transition with a bespoke animation. This may not be required if straight switching to a kill sequence.
- Shutdown speed: a number of nodes allow for a shutdown speed request, this is believed to be how the node is cancelled by other nodes: E.G. if a move to attack is performed, it will want to be quickly shut down by a death action.
- Debug menu: the debug menu is a functionality to display behaviour options in-game and toggle them at runtime. Through modding, the debug menu can be accessed in the shipped game - but is non-functional. Nodes still exist for creating the debug menu options and checking if they are enabled at runtime, however without the functioning menu, they are redundant.
- Squad: human and android entities have squads which allows for coordination when attacking or becoming alert to an environmental state. Squads can be notified of each individual's current state, and individuals can also perform actions differently dependant on their squad being present or not (E.G. a human may want to wait to attack until it has other squad members for backup).
- This is believed to link to the "alliance groups" which you can modify within the tool's character attribute editor.
- Objectives: each entity can have an internal objective such as get to cover, get to a safe zone, etc. This gives the entity an internal motivation while performing other actions.
Feel free to open an issue on the repo if you feel a node needs more cover in the documentation, or if any information given here is inaccurate.
Actions (under the category NodeGroupActions) are terminating nodes that perform certain logic within the behaviour tree. They end a branch and cannot lead to other nodes.
- Intended character: Alien
- Description: Creates a flamethrower reaction for use outside of vents.
- Options: Shutdown speed request time.
- Indended character: Alien
- Description: Creates a flamethrower reaction for use in vents.
- Options: Shutdown speed request time.
- Intended character: N/A
- Description: Throws an assertion within the code to terminate an action. Would have been used for debugging invalid logical operations such as failing to pathfind during development.
- Options: Assertion information.
- Intended character: Human NPC
- Description: Triggers a response to hearing the alien backstage. This should be used after notifying the squad of the backstage alien discovery.
- Options: Shutdown speed request time.
- Intended character: Alien
- Description: Forces the alien to perform a sweep of the backstage area.
- Options: Sweep with/without killtraps (vent grabs), shutdown speed request.
- Intended character: Alien
- Description: Performs a breakout action, part of the hit-and-run mechanic when an alien knocks the player down after being flamed.
- Options: Shutdown speed request time.
- Intended character: Human NPC
- Description: Breaks the entity out of cover.
- Options: Shutdown speed request time.
- Intended character: Human NPC
- Description: Changes the entity's current cover if another valid cover location is available (this condition should be checked first).
- Options: N/A
- Intended character: Any
- Description: Performs the death action for the current entity.
- Options: Shutdown speed request time.
- Intended character: N/A
- Description: Adds an item to the debug menu system, was utilised during development for toggling entity behaviours at runtime. Debug menu is no longer functional.
- Options: Text to display in the menu (also used to identify it to the conditional operator).
- Intended character: Any
- Description: Despawns the current entity.
- Options: Shutdown speed request time.
- Intended character: Human NPC / Android
- Description: Alerts other systems that the entity has finished its systematic search operation.
- Options: N/A
- Intended character: Any
- Description: Sets a specified logic timer as expired.
- Options: The timer to expire.
- Intended character: Any
- Description: Returns a fail from the branch's current operation. The opposite of the SUCCESS node.
- Options: N/A
- Intended character: Any
- Description: Forces the entity to go into its idle state.
- Options: Shutdown speed request time.
- Intended character: Human NPC / Android
- Description: Tries to move the entity out of the way of action.
- Options: Shutdown speed request time.
- Intended character:
- Description:
- Options:
- Intended character: Any
- Description: Puts the entity into its idle state (seems to differ to FORCE IDLE in that requesting only IDLE may be overridden by other ongoing logic).
- Options: Shutdown speed request time.
- Intended character: Any (only humans use cover)
- Description: Puts the entity into its idle state while in cover.
- Options: Shutdown speed request time.
- Intended character: Any
- Description: Puts the entity into an idle state for a specified amount of time.
- Options: Time to be idle for, the time to account for noise, and shutdown speed request time.
- Intended character: Any
- Description: Puts the entity into an idle state for a specified amount of time while facing a suspicious item, and optionally waits for the team's arrival to leave idle.
- Options: Time to be idle for, the time to account for noise, shutdown speed request time, and if we should wait for team members to route to the suspicious item.
- Intended character: Any
- Description: Puts the entity into an idle state for a specified amount of time while facing its current target.
- Options: Time to be idle for, the time to account for noise, and shutdown speed request time.
- Intended character: Any (only used by androids)
- Description: Puts an entity into an idle state for a specified amount of time while facing its current target that is outside the entity's combat area.
- Options: The tolerance for facing direction, the time to account for noise, the threshold qualifier type, the time to idle, and shutdown speed request time.
- Intended character: Any (only used by androids)
- Description: Puts an entity into an idle state for a specified amount of time while facing its current target's latest sensed position.
- Options: The tolerance for facing direction, the time to account for noise, the threshold qualifier type, the time to idle, and shutdown speed request time.
- Intended character: Human NPC / Android
- Description: Sets the entity's current action to be the listener in a conversation.
- Options: Shutdown speed request time.
- Intended character: Any
- Description: Actions the entity to become aggressive.
- Options: N/A
- Intended character: Any
- Description: Performs a melee attack of a specified type.
- Options: The attack type to perform, and shutdown speed request time.
- Intended character: Any
- Description: Moves the entity in a specified direction over a specified distance with a specified speed. Intended for debugging, but is still functional.
- Options: The direction, speed, and distance to move, and shutdown speed request time.
- Intended character: Any
- Description: Moves through a target's location at a specified speed. Will probably want to attack once we get to the target.
- Options: The speed to move at, and shutdown speed request time.
- Intended character: Any (only used for alien)
- Description: Move from the current entity's position to the target's position for an attack. Allows for a custom stopping distance to smooth the transition to kill.
- Options: The option to play a stopping animation, the distance to stop at, the speed to move at, and shutdown speed request time.
- Intended character: Alien
- Description: Moves the alien backstage from frontstage using the closest valid vent to itself.
- Options: Shutdown speed request time, the reason to lock the selected vent (prevents other aliens using it).
- Intended character: Human NPC / Android
- Description: Moves the entity to the conversation's location at a specified speed.
- Options: Speed to move to the conversation, and shutdown speed request time.
- Intended character: Human NPC
- Description: Moves the entity into cover if it is available (should be checked first with a conditional node).
- Options: Shutdown speed request time.
- Intended character: Alien
- Description: Moves the alien back to the frontstage area from backstage, using a valid vent that is the closest to the player.
- Options: Shutdown speed request time, the reason to lock the selected vent (prevents other aliens using it).
- Intended character: Any
- Description: Moves the entity to the target's last sensed position at a specified speed, with the option of approaching while aimed (acting hostile).
- Options: The speed to move at, if the entity should approach aimed, and shutdown speed request time.
- Intended character: Any
- Description: Moves the entity to the nearest standing point to the target - useful for driving tension while hiding.
- Options: The speed to move at, the stopping distance, if a stopping animation should play, and shutdown speed request time.
- Intended character: Any
- Description: Moves the entity to its current objective (an objective being to get to a safe area, get to cover, etc).
- Options: The speed to move at, the type of objective to move to, and shutdown speed request time.
- Intended character: Any
- Description: Moves the entity to its current target at a specified speed with a specified stopping distance.
- Options: The speed to move at, the stopping distance, if a stopping animation should play, and shutdown speed request time.
- Intended character: Any
- Description: Allows programmer control of an NPC via a gamepad. Seems to be disabled in the shipping build.
- Options: Shutdown speed request time.
- Intended character: Human NPC / Android
- Description: Notifies the entity's squad of its current combat state, allows for squad coordination when an event occurs (E.G. hearing the alien backstage, becoming aggressive, etc).
- Options: The current combat state to notify the squad about.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: Any
- Description: Plays an animation tree while facing target. This is a functionality which was seemingly intended to be implemented further but reworked during development as only stun uses this functionality in the final game.
- Options: Animation callback, animation tree, and shutdown speed request time.
- Intended character: Player
- Description: This places the player controller on the entity with this behaviour tree. Should only be given to the player, as that's who the camera is attached to.
- Options: Shutdown speed request time.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: Any
- Description: Perform the entity's active script if one exists (conditional node should be used to check this first).
- Options: Shutdown speed request time.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: Any
- Description: Returns a success from the current branch's execution. The opposite of the FAIL node.
- Options: N/A
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: Human NPC
- Description: Actions the entity to equip (or unequip) its current weapon, intended for aggressive use.
- Options: If the weapon should be equipped or unequpped, and shutdown speed request time.
Conditions (under the category NodeGroupConditions) are decision nodes which switch a branch's path depending on a certain logical condition.
- Intended character: Alien
- Description: Returns true if the specified action can be performed, false if not.
- Options: The "alien action" to check.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: Alien
- Description: Returns true if another alien is already attacking the entity's target (shouldn't let multiple aliens attack one target).
- Options: N/A
- Intended character: Any
- Description: Checks to see if the entity can be controlled via gamepad - seems like this would've been toggled in the now disabled debug menu.
- Options: N/A
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: N/A
- Description: Checks to see if an options is enabled/disabled in the now disabled debug menu.
- Options: The menu text of the debug menu option.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character: Any
- Description: Returns true if the entity's target is within a specified distance (calculated by pathed route), false if not.
- Options: The distance to check.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
Decorator nodes (NodeGroupDecorators) transform the result of their child. A decorator node can only have one child.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
Selector nodes (NodeGroupSelectors) are composite nodes. A selector node will return a SUCCESS if any of its children do. The children are executed in order and execution is stopped as soon as a child returns SUCCESS.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
Sequence nodes (NodeGroupSequences) are also composite nodes. A sequence node is effectively an AND statement and requires all of its children to return SUCCESS.
- Intended character:
- Description:
- Options:
- Intended character:
- Description:
- Options:
- Behaviour tree workflow
- LegendPlugin node documentation
- --
- Editing difficulty settings
- Editing senses
- Editing alien configurations
- Editing vision properties
- Editing character attributes
- Editing locomotion configurations
- --
- Editing item and inventory settings
- Editing weapon ammo configurations
- --
- Editing movie playlists
- Editing lighting and character shading settings
- Editing blueprint recipes
- Editing graphical settings
- Editing hack tool difficulties
- Editing material properties
- --
- Save/Load/Reset config changes