<943> Base class for BT composite tasks.
<944> Base class for all <l1>BehaviorTree</l> composite tasks. You can create your own composite tasks by extending the BTComposite class.
<945> Composite is a control task within a <l1>BehaviorTree</l> that contains one or more child tasks. It defines the structure and flow of the <l2>BehaviorTree</l> by specifying how child tasks are executed. Composites can be used to group related tasks into a single unit, making it easier to manage and maintain the <l3>BehaviorTree</l>. Examples of <l4>BehaviorTree</l> composites include <l5>BTSelector</l>, <l6>BTSequence</l>, and <l7>BTParallel</l>.
<946> BTCondition
<947> <b>Inherited By:</b> <l1>BTCheckAgentProperty</l>, <l2>BTCheckTrigger</l>, <l3>BTCheckVar</l>
<948> Base class for BT conditions.
<949> Base class for all <l1>BehaviorTree</l> conditions. You can create your own conditions by extending the <b>BTCondition</b> class.
<950> Condition is a task within a <l1>BehaviorTree</l> that checks for a specific condition before executing subsequent tasks. It is often used inside composite tasks to control the execution flow. Conditions are used to verify the state of the environment, check for the presence of an enemy, or evaluate the health status of the agent. The use of condition tasks in a <l2>BehaviorTree</l> can improve system efficiency and prevent unnecessary actions. However, they may not be suitable for complex decision-making processes, and too many condition tasks can make the <l3>BehaviorTree</l> difficult to read.
<951> Conditions typically don’t take multiple ticks to finish and return either <1/> or <2/> immediately.
<952> BTConsolePrint
<953> BT action task that outputs text to the console.
<954> BTConsolePrint action outputs text to the console and returns <1/>. It can include placeholders for format arguments similar to GDScript’s % operator.
<955> <l1>bb_format_parameters</l>
<956> <l1>text</l>
<957> <1/> <b>bb_format_parameters</b> = <2/> <l3>🔗</l>
<958> <1/> <b>set_bb_format_parameters</b>(value: <2/>)
<959> <1/> <b>get_bb_format_parameters</b>()
<960> The values of format parameters are used as format arguments for the text that will be printed.
<961> <b>Note:</b> The returned array is <i>copied</i> and any changes to it will not update the original property value. See <1/> for more details.
<962> <1/> <b>text</b> = <2/> <l3>🔗</l>
<963> <1/> <b>set_text</b>(value: <2/>)
<964> <1/> <b>get_text</b>()
<965> The text to be printed, which can include multiple placeholders to be substituted with format arguments. These placeholders follow the same format as GDScript’s % operator and typically start with ‘%’ followed by a format specifier. For instance: %s for string, %d for integer, %f for real.
<966> BTCooldown
<967> BT decorator that executes its child task only if <l1>duration</l> time has passed since the previous execution.
<968> BTCooldown runs its child task only if <l1>duration</l> time has passed since the last successful child task execution. It will only consider successful executions unless <l2>trigger_on_failure</l> is set to <3/>.
<969> Returns <1/>, if the child task results in <2/>.
<970> Returns <1/>, if the child task results in <2/>, and triggers the cooldown timer.
<971> Returns <1/>, if the child task results in <2/> or if <l3>duration</l> time didn’t pass since the previous execution.
<972> <l1>cooldown_state_var</l>
<973> <l1>duration</l>
<974> <l1>process_pause</l>
<975> <l1>start_cooled</l>
<976> <l1>trigger_on_failure</l>
<977> <1/> <b>cooldown_state_var</b> = <2/> <l3>🔗</l>
<978> <1/> <b>set_cooldown_state_var</b>(value: <2/>)
<979> <1/> <b>get_cooldown_state_var</b>()
<980> A boolean variable used to store the cooldown state in the <l1>Blackboard</l>. If left empty, the variable will be automatically generated and assigned.
<981> If the variable’s value is set to <1/>, it indicates that the cooldown is activated. This feature is useful for checking the cooldown state from other parts of the tree or sharing it among different sections of the <l2>BehaviorTree</l>.
<982> <1/> <b>duration</b> = <2/> <l3>🔗</l>
<983> <1/> <b>set_duration</b>(value: <2/>)
<984> <1/> <b>get_duration</b>()
<985> Time to wait before permitting another child’s execution.
<986> <1/> <b>process_pause</b> = <2/> <l3>🔗</l>
<987> <1/> <b>set_process_pause</b>(value: <2/>)
<988> <1/> <b>get_process_pause</b>()
<989> If <1/>, process cooldown when the <2/> is paused.
<990> <1/> <b>start_cooled</b> = <2/> <l3>🔗</l>
<991> <1/> <b>set_start_cooled</b>(value: <2/>)
<992> <1/> <b>get_start_cooled</b>()
<993> If <1/>, initiate a cooldown as if the child had been executed before the first BT tick.
<994> <1/> <b>trigger_on_failure</b> = <2/> <l3>🔗</l>
<995> <1/> <b>set_trigger_on_failure</b>(value: <2/>)
<996> <1/> <b>get_trigger_on_failure</b>()
<997> If <1/>, the cooldown will be activated if the child task also returns <2/>. Otherwise, the cooldown will only be triggered when the child task returns <3/>.
<998> BTDecorator
<999> <b>Inherited By:</b> <l1>BTAlwaysFail</l>, <l2>BTAlwaysSucceed</l>, <l3>BTCooldown</l>, <l4>BTDelay</l>, <l5>BTForEach</l>, <l6>BTInvert</l>, <l7>BTNewScope</l>, <l8>BTProbability</l>, <l9>BTRepeat</l>, <l10>BTRepeatUntilFailure</l>, <l11>BTRepeatUntilSuccess</l>, <l12>BTRunLimit</l>, <l13>BTTimeLimit</l>
<1000> Base class for BT decorators.
<1001> Base class for all <l1>BehaviorTree</l> decorators. You can create your own decorators by extending the BTDecorator class.
<1002> A decorator is a task within a <l1>BehaviorTree</l> that alters the behavior of its child task. Decorators can have only one child task.
<1003> Decorators can be used to add conditions, limits, or other constraints to the execution of a task. Examples of <l1>BehaviorTree</l> decorators include <l2>BTInvert</l>, <l3>BTRepeat</l>, and <l4>BTCooldown</l>. The use of <l5>BehaviorTree</l> decorators can simplify the design and implementation of complex behaviors by adding additional logic to existing tasks.
<1004> BTDelay
<1005> BT decorator that introduces a delay before executing its child task.
<1006> BTDelay introduces a delay of <l1>seconds</l> before executing its child task. Returns <2/> during the delay period.
<1007> <l1>seconds</l>
<1008> <1/> <b>seconds</b> = <2/> <l3>🔗</l>
<1009> <1/> <b>set_seconds</b>(value: <2/>)
<1010> <1/> <b>get_seconds</b>()
<1011> Delay duration in seconds.
<1012> BTDynamicSelector
<1013> <b>Inherits:</b> <l1>BTComposite</l> <b><</b> <l2>BTTask</l> <b><</b> <l3>BT</l>
<1014> BT composite that executes tasks from scratch every tick until first <1/>.
<1015> BTDynamicSelector executes its child tasks sequentially, from first to last, until any child returns <1/>. Unlike <l2>BTSelector</l>, it will execute tasks from the beginning every tick, reevaluating their statuses. It is quite useful when you want to retry higher-priority behaviors in every tick.
<1016> Returns <1/> if a child task results in <2/>. BTDynamicSelector will remember the last <3/> child, but, unlike <l4>BTSequence</l>, on the next execution tick, it will reexecute preceding tasks and reevaluate their return statuses. If any of the preceding tasks doesn’t result in <5/>, it will abort the remembered <6/> task.
<1017> Returns <1/> if all child tasks result in <2/>.
<1018> Returns <1/> if a child task results in <2/>.
<1019> BTDynamicSequence
<1020> BT composite that executes tasks from scratch every tick as long as they return <1/>.
<1021> BTDynamicSequence executes its child tasks sequentially, from first to last, for as long as they return <1/>. Unlike <l2>BTSequence</l>, it will execute tasks from the beginning every tick, reevaluating their statuses. It is quite useful when you want to recheck conditions preceding a long-running action during each tick and abort the <3/> action when any condition results in <4/>.
<1022> Returns <1/> if a child task results in <2/>. BTDynamicSequence will remember the last <3/> child, but, unlike <l4>BTSequence</l>, on the next execution tick, it will reexecute preceding tasks and reevaluate their return statuses. If any of the preceding tasks doesn’t result in <5/>, it will abort the remembered <6/> task.
<1023> Returns <1/> if a child task results in <2/>.
<1024> Returns <1/> if all child tasks result in <2/>.
<1025> BTEvaluateExpression
<1026> BT action that evaluates an <1/> against a specified <2/> or <3/>.
<1027> BTEvaluateExpression action evaluates an <l1>expression_string</l> on the specified <2/> or <3/> instance and returns <4/> when the <5/> executes successfully.
<1028> Returns <1/> if the action encounters an issue during the <2/> parsing or execution.
<1029> <l1>expression_string</l>
<1030> <l1>input_include_delta</l>
<1031> <l1>input_names</l>
<1032> <l1>input_values</l>
<1033> <l1>node</l>
<1034> <l1>result_var</l>
<1035> Error
<1036> <l1>parse</l>()
<1037> <1/> <b>expression_string</b> = <2/> <l3>🔗</l>
<1038> <1/> <b>set_expression_string</b>(value: <2/>)
<1039> <1/> <b>get_expression_string</b>()
<1040> The expression string to be parsed and executed.
<1041> <b>Warning:</b> Call <l1>parse</l> after updating <l2>expression_string</l> to update the internal <3/> as it won’t be updated automatically.
<1042> <1/> <b>input_include_delta</b> = <2/> <l3>🔗</l>
<1043> <1/> <b>set_input_include_delta</b>(value: <2/>)
<1044> <1/> <b>is_input_delta_included</b>()
<1045> If enabled, the input variable <1/> will be added to <l2>input_names</l> and <l3>input_values</l>.
<1046> <b>Warning:</b> Call <l1>parse</l> after toggling <l2>input_include_delta</l> to update the internal <3/> as it won’t be updated automatically.
<1047> <1/> <b>input_names</b> = <2/> <l3>🔗</l>
<1048> <1/> <b>set_input_names</b>(value: <2/>)
<1049> <1/> <b>get_input_names</b>()
<1050> List of variable names within <l1>expression_string</l> for which the user will provide values for through <l2>input_values</l>.
<1051> <b>Warning:</b> Call <l1>parse</l> after updating <l2>input_names</l> to update the internal <3/> as it won’t be updated automatically.
<1052> Array[<l1>BBVariant</l>] <b>input_values</b> = <2/> <l3>🔗</l>
<1053> <1/> <b>set_input_values</b>(value: Array[<l2>BBVariant</l>])
<1054> Array[<l1>BBVariant</l>] <b>get_input_values</b>()
<1055> List of values for variables specified in <l1>input_names</l>. The values are mapped to the variables by their array index.
<1056> <l1>BBNode</l> <b>node</b> <l2>🔗</l>
<1057> <1/> <b>result_var</b> = <2/> <l3>🔗</l>
<1058> Error <b>parse</b>() <l1>🔗</l>
<1059> Calls Expression.parse considering <l1>input_include_delta</l> and <l2>input_names</l> and returns its error code.
<1060> BTFail
<1061> BT action that always returns <1/>.
<1062> BTForEach
<1063> BT decorator that executes its child task for each element of an <1/>.
<1064> BTForEach executes its child task for each element of an <1/>. During each iteration, the next element is stored in the specified <l2>Blackboard</l> variable.
<1065> Returns <1/> if the child task results in <2/> or if the child task results in <3/> on a non-last iteration.
<1066> Returns <1/> if the child task results in <2/>.
<1067> Returns <1/> if the child task results in <2/> on the last iteration.
<1068> <l1>array_var</l>
<1069> <l1>save_var</l>
<1070> <1/> <b>array_var</b> = <2/> <l3>🔗</l>
<1071> <1/> <b>set_array_var</b>(value: <2/>)
<1072> <1/> <b>get_array_var</b>()
<1073> A variable within the <l1>Blackboard</l> that holds an <2/>, which is used for the iteration process.