[ { "kind": "body", "tag": "h1", "path": "", "html": "LimboAI Documentation", "text": "LimboAI Documentation", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "LimboAI is an open-source C++ module for Godot Engine 4 providing a combination of Behavior Trees and State Machines for crafting your game’s AI. It comes with a behavior tree editor, built-in documentation, visual debugger, and more! While it is implemented in C++, it fully supports GDScript for creating your own tasks and states. The full list of features is available on the LimboAI GitHub page.", "text": "LimboAI is an open-source C++ module for Godot Engine 4 providing a combination of Behavior Trees and State Machines for crafting your game’s AI. It comes with a behavior tree editor, built-in documentation, visual debugger, and more! While it is implemented in C++, it fully supports GDScript for creating your own tasks and states. The full list of features is available on the LimboAI GitHub page.", "markers": { "1": "creating your own tasks", "2": "LimboAI GitHub" } }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees are powerful hierarchical structures used to model and control the behavior of agents in a game (e.g., characters, enemies, entities). They are designed to make it easier to create complex and highly modular behaviors for your games. To learn more about behavior trees, check out Introduction to Behavior Trees.", "text": "Behavior Trees are powerful hierarchical structures used to model and control the behavior of agents in a game (e.g., characters, enemies, entities). They are designed to make it easier to create complex and highly modular behaviors for your games. To learn more about behavior trees, check out Introduction to Behavior Trees.", "markers": { "1": "Introduction to Behavior Trees" } }, { "kind": "body", "tag": "p", "path": "", "html": "Hierarchical State Machines are finite state machines that allow any state to host their own sub-state machine. This allows you to tackle your AI’s state and transition complexity by breaking down one big state machine into multiple smaller ones.", "text": "Hierarchical State Machines are finite state machines that allow any state to host their own sub-state machine. This allows you to tackle your AI’s state and transition complexity by breaking down one big state machine into multiple smaller ones.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "Getting LimboAI", "text": "Getting LimboAI", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "LimboAI can be used as either a C++ module or as a GDExtension shared library. There are some differences between the two. In short, GDExtension version is more convenient to use but somewhat limited in features. The module version provides better editor experience and is slightly more performant, but it requires using custom engine builds including the export templates. Whichever you choose to use, your project will stay compatible with both and you can switch from one to the other any time.", "text": "LimboAI can be used as either a C++ module or as a GDExtension shared library. There are some differences between the two. In short, GDExtension version is more convenient to use but somewhat limited in features. The module version provides better editor experience and is slightly more performant, but it requires using custom engine builds including the export templates. Whichever you choose to use, your project will stay compatible with both and you can switch from one to the other any time.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Choose the version you’d like to use. If you’re unsure, start with the GDExtension version. You can change your decision at any time - both versions are fully compatible.", "text": "Choose the version you’d like to use. If you’re unsure, start with the GDExtension version. You can change your decision at any time - both versions are fully compatible.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Get GDExtension version", "text": "Get GDExtension version", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Precompiled builds are available on the official LimboAI GitHub page, and in the Asset Library.", "text": "Precompiled builds are available on the official LimboAI GitHub page, and in the Asset Library.", "markers": { "1": "LimboAI GitHub" } }, { "kind": "body", "tag": "p", "path": "", "html": "GDExtension is the most convenient way of using the LimboAI plugin, but it comes with certain limitations:", "text": "GDExtension is the most convenient way of using the LimboAI plugin, but it comes with certain limitations:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Documentation tooltips are not available.", "text": "Documentation tooltips are not available.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Handy BBParam property editor is not available in the extension due to dependencies on the engine classes that are not available in the Godot API.", "text": "Handy BBParam property editor is not available in the extension due to dependencies on the engine classes that are not available in the Godot API.", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 See also: What is GDExtension?", "text": "🛈 See also: What is GDExtension?", "markers": { "1": "What is GDExtension?" } }, { "kind": "body", "tag": "p", "path": "", "html": "Installation instructions:", "text": "Installation instructions:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Make sure you’re using the latest stable version of the Godot editor.", "text": "Make sure you’re using the latest stable version of the Godot editor.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Create a new project for your experiments with LimboAI.", "text": "Create a new project for your experiments with LimboAI.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In Godot, click AssetLib tab at the top of the screen and search for LimboAI. Download it. LimboAI plugin will be downloaded with the demo project files. Don’t mind the errors printed at this point, this is due to the extension library not being loaded just yet.", "text": "In Godot, click AssetLib tab at the top of the screen and search for LimboAI. Download it. LimboAI plugin will be downloaded with the demo project files. Don’t mind the errors printed at this point, this is due to the extension library not being loaded just yet.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Reload your project with Project -> Reload project. There shouldn’t be any errors printed now.", "text": "Reload your project with Project -> Reload project. There shouldn’t be any errors printed now.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In the project files, locate a scene file called showcase.tscn and run it. It’s the demo’s entry point.", "text": "In the project files, locate a scene file called showcase.tscn and run it. It’s the demo’s entry point.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Get module version", "text": "Get module version", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Precompiled builds are available on the official LimboAI GitHub page.", "text": "Precompiled builds are available on the official LimboAI GitHub page.", "markers": { "1": "LimboAI GitHub" } }, { "kind": "body", "tag": "p", "path": "", "html": "Installation instructions:", "text": "Installation instructions:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In GitHub releases, download the latest pre-compiled release build for your platform.", "text": "In GitHub releases, download the latest pre-compiled release build for your platform.", "markers": { "1": "GitHub releases" } }, { "kind": "body", "tag": "p", "path": "", "html": "Download the demo project archive from the same release.", "text": "Download the demo project archive from the same release.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Extract the pre-compiled editor and the demo project files.", "text": "Extract the pre-compiled editor and the demo project files.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Launch the pre-compiled editor binary, import and open the demo project.", "text": "Launch the pre-compiled editor binary, import and open the demo project.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Run the project.", "text": "Run the project.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Important: To export your game using the module version of LimboAI, make sure to use the pre-compiled export templates included in the same GitHub release build.", "text": "Important: To export your game using the module version of LimboAI, make sure to use the pre-compiled export templates included in the same GitHub release build.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "Using LimboAI with C#", "text": "Using LimboAI with C#", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Here’s how you can use the module version with C# to write your tasks and states.", "text": "Here’s how you can use the module version with C# to write your tasks and states.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Locate LimboAI NuGet package files.", "text": "Locate LimboAI NuGet package files.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Each provided build comes with a GodotSharp folder, which has packages under “GodotSharp/Tools/nupkgs/”. Note down the directory path; you’ll need it in the next step.", "text": "Each provided build comes with a GodotSharp folder, which has packages under “GodotSharp/Tools/nupkgs/”. Note down the directory path; you’ll need it in the next step.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Add a local source for NuGet packages using the following command:", "text": "Add a local source for NuGet packages using the following command:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Your C# project should be able to see LimboAI classes and compile.", "text": "Your C# project should be able to see LimboAI classes and compile.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Regarding GDExtension, I can only confirm success with the module version and C#. Unfortunately, I haven’t had any luck with the GDExtension version yet. If you’ve had success with GDExtension, please let me know via Discord or email.", "text": "Regarding GDExtension, I can only confirm success with the module version and C#. Unfortunately, I haven’t had any luck with the GDExtension version yet. If you’ve had success with GDExtension, please let me know via Discord or email.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "Contributing", "text": "Contributing", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "We target the latest stable version of the Godot Engine for development until a third beta or a release candidate of an upcoming Godot release becomes available. If you want to contribute to the project, please ensure that you are using the corresponding Godot version.", "text": "We target the latest stable version of the Godot Engine for development until a third beta or a release candidate of an upcoming Godot release becomes available. If you want to contribute to the project, please ensure that you are using the corresponding Godot version.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "We follow the Godot code style guidelines. Please use <2/> to maintain consistent styling. You can install <3/> hooks for Git using <4/> to automate this process.", "text": "We follow the Godot code style guidelines. Please use to maintain consistent styling. You can install hooks for Git using to automate this process.", "markers": { "1": "Godot code style guidelines", "2": "clang-format", "3": "pre-commit", "4": "pre-commit install" } }, { "kind": "body", "tag": "p", "path": "", "html": "Please keep the minor versions backward-compatible when submitting pull requests.", "text": "Please keep the minor versions backward-compatible when submitting pull requests.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "We support building LimboAI as a module for the Godot Engine and as a GDExtension library. Make sure your contribution is compatible with both. Our CI workflow will verify that your changes can be compiled in both configurations.", "text": "We support building LimboAI as a module for the Godot Engine and as a GDExtension library. Make sure your contribution is compatible with both. Our CI workflow will verify that your changes can be compiled in both configurations.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Compiling as module of the Godot Engine", "text": "Compiling as module of the Godot Engine", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Clone the Godot Engine repository.", "text": "Clone the Godot Engine repository.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Switch to the latest stable tag.", "text": "Switch to the latest stable tag.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Clone the LimboAI repository into the <1/> directory.", "text": "Clone the LimboAI repository into the directory.", "markers": { "1": "modules/limboai" } }, { "kind": "body", "tag": "p", "path": "", "html": "Consult the Godot Engine documentation for detailed instructions on building the engine.", "text": "Consult the Godot Engine documentation for detailed instructions on building the engine.", "markers": { "1": "Godot Engine documentation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Unit tests can be compiled using the <1/> build option. To execute them, run the compiled Godot binary with the <2/> command-line options.", "text": "Unit tests can be compiled using the build option. To execute them, run the compiled Godot binary with the command-line options.", "markers": { "1": "tests=yes", "2": "--test --tc=\"*[LimboAI]*\"" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Building C# Packages", "text": "Building C# Packages", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "If you want C# Support for LimboAI when building from source, follow Godot’s instructions for building from source with C# Support: Compiling with .NET. LimboAI’s classes will be included in the output from that build process.", "text": "If you want C# Support for LimboAI when building from source, follow Godot’s instructions for building from source with C# Support: Compiling with .NET. LimboAI’s classes will be included in the output from that build process.", "markers": { "1": "Compiling with .NET" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Compiling as GDExtension library", "text": "Compiling as GDExtension library", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "You’ll need the SCons build tool and a C++ compiler. See also Compiling. Run <2/> to build the plugin library for your current platform.", "text": "You’ll need the SCons build tool and a C++ compiler. See also Compiling. Run to build the plugin library for your current platform.", "markers": { "1": "Compiling", "2": "scons target=editor" } }, { "kind": "body", "tag": "p", "path": "", "html": "SCons will automatically clone the <1/> repository if it doesn’t already exist in the <2/> directory.", "text": "SCons will automatically clone the repository if it doesn’t already exist in the directory.", "markers": { "1": "godot-cpp", "2": "limboai/godot-cpp" } }, { "kind": "body", "tag": "p", "path": "", "html": "By default, built targets are placed in the demo project: <1/>.", "text": "By default, built targets are placed in the demo project: .", "markers": { "1": "demo/addons/limboai/bin/" } }, { "kind": "body", "tag": "p", "path": "", "html": "Check <1/> for other options and targets.", "text": "Check for other options and targets.", "markers": { "1": "scons -h" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Contributing to the documentation", "text": "Contributing to the documentation", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Online documentation is created using Sphinx. Source files are located in the <2/> directory in RST format and can be built locally with <3/>. See the Sphinx documentation for more details.", "text": "Online documentation is created using Sphinx. Source files are located in the directory in RST format and can be built locally with . See the Sphinx documentation for more details.", "markers": { "1": "Sphinx", "2": "doc/source", "3": "sphinx-build", "4": "Sphinx documentation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Class documentation resides in XML files within the <1/> directory. If you create a new class or modify an existing one, you can run the compiled Godot binary with the <2/> option in the root of the Godot source code to generate the missing XML files or sections within those files in the class documentation. After editing the XML files, please run the compiled editor binary with the <3/> option again to update and tidy up the XML files.", "text": "Class documentation resides in XML files within the directory. If you create a new class or modify an existing one, you can run the compiled Godot binary with the option in the root of the Godot source code to generate the missing XML files or sections within those files in the class documentation. After editing the XML files, please run the compiled editor binary with the option again to update and tidy up the XML files.", "markers": { "1": "doc_classes/", "2": "--doctool", "3": "--doctool" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sphinx RST files for the class documentation are generated from XML files using the Godot script <1/> and stored in the <2/> directory. This process is performed using our own script <3/>. RST files in <4/> should not be edited manually.", "text": "Sphinx RST files for the class documentation are generated from XML files using the Godot script and stored in the directory. This process is performed using our own script . RST files in should not be edited manually.", "markers": { "1": "make_rst.py", "2": "doc/source/classes", "3": "scripts/update_rst.sh", "4": "doc/source/classes" } }, { "kind": "body", "tag": "h2", "path": "", "html": "Introduction to Behavior Trees", "text": "Introduction to Behavior Trees", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 Note: Demo project includes a tutorial that provides an introduction to behavior trees through illustrative examples.", "text": "🛈 Note: Demo project includes a tutorial that provides an introduction to behavior trees through illustrative examples.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees (BT) are hierarchical structures used to model and control the behavior of agents in a game (e.g., characters, enemies, entities). They are designed to make it easier to create complex and highly modular behaviors for your games.", "text": "Behavior Trees (BT) are hierarchical structures used to model and control the behavior of agents in a game (e.g., characters, enemies, entities). They are designed to make it easier to create complex and highly modular behaviors for your games.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees are composed of tasks that represent specific actions or decision-making rules. Tasks can be broadly categorized into two main types: control tasks and leaf tasks. Control tasks determine the execution flow within the tree. They include Sequence, Selector, and Invert. Leaf tasks represent specific actions to perform, like moving or attacking, or conditions that need to be checked. The BTTask class provides the foundation for various building blocks of the Behavior Trees. Such tasks can share data using the Blackboard.", "text": "Behavior Trees are composed of tasks that represent specific actions or decision-making rules. Tasks can be broadly categorized into two main types: control tasks and leaf tasks. Control tasks determine the execution flow within the tree. They include Sequence, Selector, and Invert. Leaf tasks represent specific actions to perform, like moving or attacking, or conditions that need to be checked. The BTTask class provides the foundation for various building blocks of the Behavior Trees. Such tasks can share data using the Blackboard.", "markers": { "1": "Sequence", "2": "Selector", "3": "Invert", "4": "BTTask", "5": "share data using the Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 Note: To create your own actions, extend the BTAction class.", "text": "🛈 Note: To create your own actions, extend the BTAction class.", "markers": { "1": "create your own actions", "2": "BTAction" } }, { "kind": "body", "tag": "p", "path": "", "html": "A Behavior Tree is usually processed each frame. It is traversed from top to bottom, with the control tasks determining the control flow. Each task has a _tick method, which performs the task’s work and returns a status indicating its progress: <2/>, <3/>, or <4/>. <5/> and <6/> indicate the outcome of finished work, while <7/> status is returned when a task requires more than one tick to complete its job. These statuses determine how the tree progresses, with the <8/> status usually meaning that the tree will continue execution during the next frame.", "text": "A Behavior Tree is usually processed each frame. It is traversed from top to bottom, with the control tasks determining the control flow. Each task has a _tick method, which performs the task’s work and returns a status indicating its progress: , , or . and indicate the outcome of finished work, while status is returned when a task requires more than one tick to complete its job. These statuses determine how the tree progresses, with the status usually meaning that the tree will continue execution during the next frame.", "markers": { "1": "_tick", "2": "SUCCESS", "3": "FAILURE", "4": "RUNNING", "5": "SUCCESS", "6": "FAILURE", "7": "RUNNING", "8": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "There are four types of tasks:", "text": "There are four types of tasks:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Actions are leaf tasks that perform the actual work.", "text": "Actions are leaf tasks that perform the actual work.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Examples: PlayAnimation, Wait.", "text": "Examples: PlayAnimation, Wait.", "markers": { "1": "PlayAnimation", "2": "Wait" } }, { "kind": "body", "tag": "p", "path": "", "html": "Conditions are leaf tasks that conduct various checks.", "text": "Conditions are leaf tasks that conduct various checks.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Examples: CheckVar, InRange.", "text": "Examples: CheckVar, InRange.", "markers": { "1": "CheckVar", "2": "InRange" } }, { "kind": "body", "tag": "p", "path": "", "html": "Composites can have one or more child tasks, and dictate the execution flow of their children.", "text": "Composites can have one or more child tasks, and dictate the execution flow of their children.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Examples: Sequence, Selector, Parallel.", "text": "Examples: Sequence, Selector, Parallel.", "markers": { "1": "Sequence", "2": "Selector", "3": "Parallel" } }, { "kind": "body", "tag": "p", "path": "", "html": "Decorators can only have a single child and they change how their child task operates.", "text": "Decorators can only have a single child and they change how their child task operates.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Examples: AlwaysSucceed, Invert, TimeLimit.", "text": "Examples: AlwaysSucceed, Invert, TimeLimit.", "markers": { "1": "AlwaysSucceed", "2": "Invert", "3": "TimeLimit" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sequence is one of the core composite tasks. It executes its child tasks sequentially, from first to last, until one of them returns <2/>, or all of them result in <3/>. In other words, if any child task results in <4/>, the Sequence execution will be aborted, and the Sequence itself will return <7/>.", "text": "Sequence is one of the core composite tasks. It executes its child tasks sequentially, from first to last, until one of them returns , or all of them result in . In other words, if any child task results in , the Sequence execution will be aborted, and the Sequence itself will return .", "markers": { "1": "Sequence", "2": "FAILURE", "3": "SUCCESS", "4": "FAILURE", "5": "Sequence", "6": "Sequence", "7": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Selector is another essential composite task. It executes its child tasks sequentially, from first to last, until one of them returns <2/> or all of them result in <3/>. In other words, when a child task results in <4/>, it moves on to the next one until it finds the one that returns <5/>. Once a child task results in <6/>, the Selector stops and also returns <8/>. The purpose of the Selector is to find a child that succeeds.", "text": "Selector is another essential composite task. It executes its child tasks sequentially, from first to last, until one of them returns or all of them result in . In other words, when a child task results in , it moves on to the next one until it finds the one that returns . Once a child task results in , the Selector stops and also returns . The purpose of the Selector is to find a child that succeeds.", "markers": { "1": "Selector", "2": "SUCCESS", "3": "FAILURE", "4": "FAILURE", "5": "SUCCESS", "6": "SUCCESS", "7": "Selector", "8": "SUCCESS", "9": "Selector" } }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees handle conditional logic using condition tasks. These tasks check for specific conditions and return either <1/> or <2/> based on the state of the agent or its environment (e.g., “IsLowOnHealth”, “IsTargetInSight”). Conditions can be used together with Sequence and Selector to craft your decision-making logic.", "text": "Behavior Trees handle conditional logic using condition tasks. These tasks check for specific conditions and return either or based on the state of the agent or its environment (e.g., “IsLowOnHealth”, “IsTargetInSight”). Conditions can be used together with Sequence and Selector to craft your decision-making logic.", "markers": { "1": "SUCCESS", "2": "FAILURE", "3": "Sequence", "4": "Selector" } }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 Note: To create your own conditions, extend the BTCondition class.", "text": "🛈 Note: To create your own conditions, extend the BTCondition class.", "markers": { "1": "create your own conditions", "2": "BTCondition" } }, { "kind": "body", "tag": "p", "path": "", "html": "Check out the BTTask class documentation, which provides the foundation for various building blocks of Behavior Trees.", "text": "Check out the BTTask class documentation, which provides the foundation for various building blocks of Behavior Trees.", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "h2", "path": "", "html": "Creating Behavior Trees", "text": "Creating Behavior Trees", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "This chapter describes how to create and debug behavior trees.", "text": "This chapter describes how to create and debug behavior trees.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Add a Behavior Tree to an agent", "text": "Add a Behavior Tree to an agent", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Follow these steps to add a behavior tree to a new or existing agent:", "text": "Follow these steps to add a behavior tree to a new or existing agent:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Make a scene file for your agent, or open an existing scene.", "text": "Make a scene file for your agent, or open an existing scene.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Add a BTPlayer node to your scene.", "text": "Add a BTPlayer node to your scene.", "markers": { "1": "BTPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "Select BTPlayer, and create a new behavior tree in the inspector.", "text": "Select BTPlayer, and create a new behavior tree in the inspector.", "markers": { "1": "BTPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "Optionally, you can save the behavior tree to a file using the property’s context menu.", "text": "Optionally, you can save the behavior tree to a file using the property’s context menu.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Click the behavior tree property to open it in the LimboAI editor.", "text": "Click the behavior tree property to open it in the LimboAI editor.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Debugging Behavior Trees", "text": "Debugging Behavior Trees", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In Godot Engine, follow to “Bottom Panel > Debugger > LimboAI” tab. With the LimboAI debugger, you can inspect any currently active behavior tree within the running project. The debugger can be detached from the main editor window, which can be particularly useful if you have a HiDPI or a secondary display.", "text": "In Godot Engine, follow to “Bottom Panel > Debugger > LimboAI” tab. With the LimboAI debugger, you can inspect any currently active behavior tree within the running project. The debugger can be detached from the main editor window, which can be particularly useful if you have a HiDPI or a secondary display.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Inspecting task properties and blackboard", "text": "Inspecting task properties and blackboard", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "When you click on a task in the LimboAI debugger, its properties are shown in the remote Inspector panel, including the Blackboard reference. Click the Blackboard to open it and view all variables across the full scope chain, grouped by scope. You can also edit variable values live, which can be useful for testing and debugging your game’s AI.", "text": "When you click on a task in the LimboAI debugger, its properties are shown in the remote Inspector panel, including the Blackboard reference. Click the Blackboard to open it and view all variables across the full scope chain, grouped by scope. You can also edit variable values live, which can be useful for testing and debugging your game’s AI.", "markers": { "1": "Blackboard", "2": "Blackboard" } }, { "kind": "body", "tag": "h2", "path": "", "html": "Creating custom tasks", "text": "Creating custom tasks", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "By default, user tasks should be placed in the <1/> directory. You can set an alternative location for user tasks in the <2/> (To see those options, <3/> should be enabled in the Project Settings).", "text": "By default, user tasks should be placed in the directory. You can set an alternative location for user tasks in the (To see those options, should be enabled in the Project Settings).", "markers": { "1": "res://ai/tasks", "2": "Project Settings → Limbo AI", "3": "Advanced Settings" } }, { "kind": "body", "tag": "p", "path": "", "html": "Each subdirectory within the user tasks directory is treated as a category. Therefore, if you create a subdirectory named “motion_and_physics,” your custom tasks in that directory will automatically be categorized under “Motion And Physics.”", "text": "Each subdirectory within the user tasks directory is treated as a category. Therefore, if you create a subdirectory named “motion_and_physics,” your custom tasks in that directory will automatically be categorized under “Motion And Physics.”", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "When creating custom tasks, extend one of the following base classes: BTAction, BTCondition, BTDecorator, BTComposite. More on task types you can read in the Introduction to Behavior Trees.", "text": "When creating custom tasks, extend one of the following base classes: BTAction, BTCondition, BTDecorator, BTComposite. More on task types you can read in the Introduction to Behavior Trees.", "markers": { "1": "BTAction", "2": "BTCondition", "3": "BTDecorator", "4": "BTComposite", "5": "Introduction to Behavior Trees" } }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 Note: To help you write new tasks, you can add a script template to your project using “Misc → Create script template” menu option.", "text": "🛈 Note: To help you write new tasks, you can add a script template to your project using “Misc → Create script template” menu option.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Using the Blackboard is covered in Accessing the Blackboard in a Task.", "text": "Using the Blackboard is covered in Accessing the Blackboard in a Task.", "markers": { "1": "Blackboard", "2": "Accessing the Blackboard in a Task" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Task anatomy", "text": "Task anatomy", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Example 1: A simple action", "text": "Example 1: A simple action", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Example 2: InRange condition", "text": "Example 2: InRange condition", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Creating tasks in C#", "text": "Creating tasks in C#", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "You can use the following script template for custom tasks:", "text": "You can use the following script template for custom tasks:", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "Sharing data using Blackboard", "text": "Sharing data using Blackboard", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "To share data between different tasks and states, we employ a feature known as the Blackboard. The Blackboard serves as a central repository where tasks and states can store and retrieve named variables, allowing for seamless data interchange. Each instance of a behavior tree or a state machine gets its own dedicated Blackboard. It has the capability to store various data types, including objects and resources.", "text": "To share data between different tasks and states, we employ a feature known as the Blackboard. The Blackboard serves as a central repository where tasks and states can store and retrieve named variables, allowing for seamless data interchange. Each instance of a behavior tree or a state machine gets its own dedicated Blackboard. It has the capability to store various data types, including objects and resources.", "markers": { "1": "Blackboard", "2": "Blackboard", "3": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Using the Blackboard, you can easily share data in your behavior trees, making the tasks in the behavior tree more flexible.", "text": "Using the Blackboard, you can easily share data in your behavior trees, making the tasks in the behavior tree more flexible.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Accessing the Blackboard in a Task", "text": "Accessing the Blackboard in a Task", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Every BTTask has access to the Blackboard, providing a straightforward mechanism for data exchange. Here’s an example of how you can interact with the Blackboard in GDScript:", "text": "Every BTTask has access to the Blackboard, providing a straightforward mechanism for data exchange. Here’s an example of how you can interact with the Blackboard in GDScript:", "markers": { "1": "BTTask", "2": "Blackboard", "3": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "If you are accessing a variable that holds an object instance, and it is expected that the instance may be null or freed, you can do it like this:", "text": "If you are accessing a variable that holds an object instance, and it is expected that the instance may be null or freed, you can do it like this:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "It is recommended to suffix variable name properties with <1/>, like in the example above, which enables the inspector to provide a more convenient property editor for the variable. This editor allows you to select or add the variable to the blackboard plan, and provides a warning icon if the variable does not exist in the blackboard plan.", "text": "It is recommended to suffix variable name properties with , like in the example above, which enables the inspector to provide a more convenient property editor for the variable. This editor allows you to select or add the variable to the blackboard plan, and provides a warning icon if the variable does not exist in the blackboard plan.", "markers": { "1": "_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 Note: The variable doesn’t need to exist when you set it in code.", "text": "🛈 Note: The variable doesn’t need to exist when you set it in code.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Editing the Blackboard Plan", "text": "Editing the Blackboard Plan", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "The Blackboard Plan, associated with each BehaviorTree resource, dictates how the Blackboard initializes for each new instance of the BehaviorTree. BlackboardPlan resource stores default values, type information, and data bindings necessary for BehaviorTree initialization.", "text": "The Blackboard Plan, associated with each BehaviorTree resource, dictates how the Blackboard initializes for each new instance of the BehaviorTree. BlackboardPlan resource stores default values, type information, and data bindings necessary for BehaviorTree initialization.", "markers": { "1": "BehaviorTree", "2": "Blackboard", "3": "BehaviorTree", "4": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "To add, modify, or remove variables from the Blackboard Plan, follow these steps:", "text": "To add, modify, or remove variables from the Blackboard Plan, follow these steps:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Open the LimboAI editor and load the behavior tree you want to edit.", "text": "Open the LimboAI editor and load the behavior tree you want to edit.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In the editor, click on the small button located inside the tab. This will open the BlackboardPlan in the Inspector.", "text": "In the editor, click on the small button located inside the tab. This will open the BlackboardPlan in the Inspector.", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "In the Inspector, click the “Manage…” button to show the blackboard plan editor.", "text": "In the Inspector, click the “Manage…” button to show the blackboard plan editor.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In the blackboard plan editor, you can add, remove, or reorder variables, and modify their data type and hint.", "text": "In the blackboard plan editor, you can add, remove, or reorder variables, and modify their data type and hint.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "The hint provides additional information about the variable to the Inspector, such as minimum and maximum values for an integer variable. Learn more about property hints in the official Godot documentation.", "text": "The hint provides additional information about the variable to the Inspector, such as minimum and maximum values for an integer variable. Learn more about property hints in the official Godot documentation.", "markers": { "1": "property hints in the official Godot documentation" } }, { "kind": "body", "tag": "p", "path": "", "html": "You can specify the default values of the variables directly in the Inspector.", "text": "You can specify the default values of the variables directly in the Inspector.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Overriding variables in BTPlayer", "text": "Overriding variables in BTPlayer", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Each BTPlayer node also has a “Blackboard Plan” property, providing the ability to override values of the BehaviorTree’s blackboard variables. These overrides are specific to the BTPlayer’s scene and do not impact other scenes using the same BehaviorTree. To modify these values:", "text": "Each BTPlayer node also has a “Blackboard Plan” property, providing the ability to override values of the BehaviorTree’s blackboard variables. These overrides are specific to the BTPlayer’s scene and do not impact other scenes using the same BehaviorTree. To modify these values:", "markers": { "1": "BTPlayer", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Select the BTPlayer node in the scene tree.", "text": "Select the BTPlayer node in the scene tree.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In the Inspector, locate the “Blackboard Plan” property.", "text": "In the Inspector, locate the “Blackboard Plan” property.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Override the desired values to tailor the blackboard variables for the specific scene.", "text": "Override the desired values to tailor the blackboard variables for the specific scene.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Task parameters", "text": "Task parameters", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In some cases, it can be beneficial to allow behavior tree tasks to export parameters that can either be bound to a blackboard variable or specified directly by the user. For this purpose, LimboAI provides special parameter types that begin with “BB”, such as BBInt, BBBool, BBString, BBFloat, BBNode, and more. For a complete list, please refer to the BBParam class reference.", "text": "In some cases, it can be beneficial to allow behavior tree tasks to export parameters that can either be bound to a blackboard variable or specified directly by the user. For this purpose, LimboAI provides special parameter types that begin with “BB”, such as BBInt, BBBool, BBString, BBFloat, BBNode, and more. For a complete list, please refer to the BBParam class reference.", "markers": { "1": "BBInt", "2": "BBBool", "3": "BBString", "4": "BBFloat", "5": "BBNode", "6": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Usage example:", "text": "Usage example:", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Connecting variables in BTs to HSMs: Variable mapping", "text": "Connecting variables in BTs to HSMs: Variable mapping", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Each BTState creates a new blackboard scope for its BehaviorTree instance. Because BehaviorTrees are reusable resources that can run in different contexts or on different agents, they do not automatically see variables defined in the HSM. At runtime, HSM variables are usually accessible inside the BT via the parent scope blackboard, but the recommended way to access them is through mapping.", "text": "Each BTState creates a new blackboard scope for its BehaviorTree instance. Because BehaviorTrees are reusable resources that can run in different contexts or on different agents, they do not automatically see variables defined in the HSM. At runtime, HSM variables are usually accessible inside the BT via the parent scope blackboard, but the recommended way to access them is through mapping.", "markers": { "1": "BTState" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note", "text": "Note", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "To learn more about scopes, see Blackboard.", "text": "To learn more about scopes, see Blackboard.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "When both the BehaviorTree and the HSM declare variables in their respective BlackboardPlan resources, the editor provides a Mapping section in the BlackboardPlan inspector. Mapping is the intended and recommended way to connect variables between related plans.", "text": "When both the BehaviorTree and the HSM declare variables in their respective BlackboardPlan resources, the editor provides a Mapping section in the BlackboardPlan inspector. Mapping is the intended and recommended way to connect variables between related plans.", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Key points about mapping", "text": "Key points about mapping", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Mapping connects two variables so they behave as a single logical variable at runtime.", "text": "Mapping connects two variables so they behave as a single logical variable at runtime.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Linked variables are updated immediately in both scopes — they literally share the same state in memory (no polling or copying).", "text": "Linked variables are updated immediately in both scopes — they literally share the same state in memory (no polling or copying).", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Mapping is explicit: you decide which variables the BT exposes as inputs and outputs.", "text": "Mapping is explicit: you decide which variables the BT exposes as inputs and outputs.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Linkage is bidirectional — there is no distinction between input and output.", "text": "Linkage is bidirectional — there is no distinction between input and output.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Mapping does not create new variables automatically — the variables must already exist in both blackboard plans before they can be linked.", "text": "Mapping does not create new variables automatically — the variables must already exist in both blackboard plans before they can be linked.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Inspector workflow", "text": "Inspector workflow", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Define the required variables in each BlackboardPlan (HSM plan and BT plan, for example).", "text": "Define the required variables in each BlackboardPlan (HSM plan and BT plan, for example).", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Select the BTState node in the scene or a BTSubtree inside a behavior tree.", "text": "Select the BTState node in the scene or a BTSubtree inside a behavior tree.", "markers": { "1": "BTState", "2": "BTSubtree" } }, { "kind": "body", "tag": "p", "path": "", "html": "In the Inspector, select the Blackboard Plan property.", "text": "In the Inspector, select the Blackboard Plan property.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In the BlackboardPlan resource inspector, locate the Mapping section.", "text": "In the BlackboardPlan resource inspector, locate the Mapping section.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Create mappings by pairing variables (<1/>).", "text": "Create mappings by pairing variables ().", "markers": { "1": "BT variable ↔ parent variable" } }, { "kind": "body", "tag": "p", "path": "", "html": "On startup the mappings are applied, and the variables are automatically linked for the running instance.", "text": "On startup the mappings are applied, and the variables are automatically linked for the running instance.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Programmatic alternative: linking variables in code", "text": "Programmatic alternative: linking variables in code", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "You can also link variables directly in code using Blackboard.link_var:", "text": "You can also link variables directly in code using Blackboard.link_var:", "markers": { "1": "Blackboard.link_var" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Best practices", "text": "Best practices", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Declare all BT dependencies in the BT’s BlackboardPlan instead of relying on parent scopes.", "text": "Declare all BT dependencies in the BT’s BlackboardPlan instead of relying on parent scopes.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Use Mapping to explicitly declare which variables should be shared with the HSM.", "text": "Use Mapping to explicitly declare which variables should be shared with the HSM.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Prefer the inspector-based Mapping workflow for clarity and editor support; use <1/> only when runtime or programmatic setup is required.", "text": "Prefer the inspector-based Mapping workflow for clarity and editor support; use only when runtime or programmatic setup is required.", "markers": { "1": "link_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "Avoid writing to <1/> from inside BT tasks unless you have a very specific reason and accept the coupling it introduces.", "text": "Avoid writing to from inside BT tasks unless you have a very specific reason and accept the coupling it introduces.", "markers": { "1": "blackboard.get_parent()" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Advanced topic: Blackboard scopes", "text": "Advanced topic: Blackboard scopes", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "The Blackboard in LimboAI can act as a parent scope for another Blackboard. This means that if a specific variable is not found in the active scope, the system will look in the parent Blackboard to find it. This creates a “blackboard scope chain,” where each Blackboard can have its own parent scope, and there is no limit to how many blackboards can be in this chain. It’s important to note that the Blackboard doesn’t modify values in the parent scopes.", "text": "The Blackboard in LimboAI can act as a parent scope for another Blackboard. This means that if a specific variable is not found in the active scope, the system will look in the parent Blackboard to find it. This creates a “blackboard scope chain,” where each Blackboard can have its own parent scope, and there is no limit to how many blackboards can be in this chain. It’s important to note that the Blackboard doesn’t modify values in the parent scopes.", "markers": { "1": "Blackboard", "2": "Blackboard", "3": "Blackboard", "4": "Blackboard", "5": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Scopes are created automatically to prevent naming collisions between contextually separate environments:", "text": "Scopes are created automatically to prevent naming collisions between contextually separate environments:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Within BTNewScope.", "text": "Within BTNewScope.", "markers": { "1": "BTNewScope" } }, { "kind": "body", "tag": "p", "path": "", "html": "Under BTSubtree decorators.", "text": "Under BTSubtree decorators.", "markers": { "1": "BTSubtree" } }, { "kind": "body", "tag": "p", "path": "", "html": "With LimboState that have a non-empty blackboard plan defined.", "text": "With LimboState that have a non-empty blackboard plan defined.", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "Under LimboHSM nodes: A new scope is created at the root level, and each BTState child also receives its own separate scope.", "text": "Under LimboHSM nodes: A new scope is created at the root level, and each BTState child also receives its own separate scope.", "markers": { "1": "LimboHSM", "2": "BTState" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Sharing data between several agents", "text": "Sharing data between several agents", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "The blackboard scope mechanism can also be used for sharing data between several agents. In the following example, we have a group of agents, and we want to share a common target between them:", "text": "The blackboard scope mechanism can also be used for sharing data between several agents. In the following example, we have a group of agents, and we want to share a common target between them:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In this example, blackboard.top() accesses the root scope of the Blackboard chain. We assign that scope to each agent in a group through code:", "text": "In this example, blackboard.top() accesses the root scope of the Blackboard chain. We assign that scope to each agent in a group through code:", "markers": { "1": "blackboard.top()", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "In conclusion, the Blackboard scope chain not only prevents naming conflicts that can occur between state machines, behavior trees, and sub-trees, but it can also be used to share data between several agents.", "text": "In conclusion, the Blackboard scope chain not only prevents naming conflicts that can occur between state machines, behavior trees, and sub-trees, but it can also be used to share data between several agents.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Debugging blackboard variables", "text": "Debugging blackboard variables", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "When debugging a running project, you can inspect Blackboard variables in the remote Inspector. Click on a task in the LimboAI debugger to view its properties, then click the Blackboard reference to see all variables across the full scope chain, grouped by scope. Variables can be edited live to aid in debugging. For state machines, select a LimboState node in the Remote Scene Tree to access its Blackboard in the same way.", "text": "When debugging a running project, you can inspect Blackboard variables in the remote Inspector. Click on a task in the LimboAI debugger to view its properties, then click the Blackboard reference to see all variables across the full scope chain, grouped by scope. Variables can be edited live to aid in debugging. For state machines, select a LimboState node in the Remote Scene Tree to access its Blackboard in the same way.", "markers": { "1": "Blackboard", "2": "Blackboard", "3": "LimboState", "4": "Blackboard" } }, { "kind": "body", "tag": "h2", "path": "", "html": "Accessing nodes in the scene tree", "text": "Accessing nodes in the scene tree", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "There are several ways to access nodes in the agent’s scene tree from a BTTask.", "text": "There are several ways to access nodes in the agent’s scene tree from a BTTask.", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "🛈 Note: The root node of the agent’s scene tree can be accessed with the scene_root property.", "text": "🛈 Note: The root node of the agent’s scene tree can be accessed with the scene_root property.", "markers": { "1": "scene_root" } }, { "kind": "body", "tag": "h3", "path": "", "html": "With <1/> property", "text": "With property", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "h3", "path": "", "html": "With <1/> property", "text": "With property", "markers": { "1": "NodePath" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Using blackboard plan", "text": "Using blackboard plan", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "You can create a blackboard variable in the editor with the type <2/> and point it to the proper node in the BTPlayer blackboard plan. By default, any <4/> variable will be replaced with the node instance when the blackboard is instantiated at runtime (see BlackboardPlan.prefetch_nodepath_vars).", "text": "You can create a blackboard variable in the editor with the type and point it to the proper node in the BTPlayer blackboard plan. By default, any variable will be replaced with the node instance when the blackboard is instantiated at runtime (see BlackboardPlan.prefetch_nodepath_vars).", "markers": { "1": "create a blackboard variable", "2": "NodePath", "3": "BTPlayer", "4": "NodePath", "5": "BlackboardPlan.prefetch_nodepath_vars" } }, { "kind": "body", "tag": "p", "path": "", "html": "The property BTPlayer.prefetch_nodepath_vars should be set to <1/>.", "text": "The property BTPlayer.prefetch_nodepath_vars should be set to .", "markers": { "1": "true" } }, { "kind": "body", "tag": "h2", "path": "", "html": "Create State Machines", "text": "Create State Machines", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "This guide will show how to set up and use a state machine using LimboHSM.", "text": "This guide will show how to set up and use a state machine using LimboHSM.", "markers": { "1": "LimboHSM" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Initialization", "text": "Initialization", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "To use the LimboHSM state machine, you first need to initialize it in your code. This is typically done in the <2/> function of your script. Here’s an example of how to do this:", "text": "To use the LimboHSM state machine, you first need to initialize it in your code. This is typically done in the function of your script. Here’s an example of how to do this:", "markers": { "1": "LimboHSM", "2": "_ready" } }, { "kind": "body", "tag": "p", "path": "", "html": "In this example, we first declare the state machine and the states we want to use. Then, in the <1/> function, we add transitions between the states. Finally, we initialize the state machine and set it to active.", "text": "In this example, we first declare the state machine and the states we want to use. Then, in the function, we add transitions between the states. Finally, we initialize the state machine and set it to active.", "markers": { "1": "_init_state_machine" } }, { "kind": "body", "tag": "h3", "path": "", "html": "State example", "text": "State example", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "You can define the behavior of a state in a script and attach it to the state node. Here’s an example of a state that plays an animation on an <1/> and waits for it to finish:", "text": "You can define the behavior of a state in a script and attach it to the state node. Here’s an example of a state that plays an animation on an and waits for it to finish:", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "In this example, the <1/> method is called when the state is entered, and it plays the specified animation. The <2/> method is called every frame, and it checks if the animation is finished. If it is, it dispatches the <3/> event, which can result in a transition to the next state.", "text": "In this example, the method is called when the state is entered, and it plays the specified animation. The method is called every frame, and it checks if the animation is finished. If it is, it dispatches the event, which can result in a transition to the next state.", "markers": { "1": "_enter", "2": "_update", "3": "EVENT_FINISHED" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Events and transitions", "text": "Events and transitions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "The LimboHSM comes with an event system that helps to decouple transitions from the state implementations. A transition is associated with a specific event, a starting state, and a destination state, and it is performed automatically when such an event is dispatched.", "text": "The LimboHSM comes with an event system that helps to decouple transitions from the state implementations. A transition is associated with a specific event, a starting state, and a destination state, and it is performed automatically when such an event is dispatched.", "markers": { "1": "LimboHSM" } }, { "kind": "body", "tag": "p", "path": "", "html": "To register a transition and associate it with a specific event, you can use the LimboHSM.add_transition method:", "text": "To register a transition and associate it with a specific event, you can use the LimboHSM.add_transition method:", "markers": { "1": "LimboHSM.add_transition" } }, { "kind": "body", "tag": "p", "path": "", "html": "In this example, we’re registering a transition from the <1/> to the <2/> when the <3/> event is dispatched.", "text": "In this example, we’re registering a transition from the to the when the event is dispatched.", "markers": { "1": "idle_state", "2": "move_state", "3": "movement_started" } }, { "kind": "body", "tag": "p", "path": "", "html": "A transition can be also associated with no particular starting state:", "text": "A transition can be also associated with no particular starting state:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Events are dispatched with the LimboState.dispatch method. It’s important to note that this method can be called from anywhere in the state machine hierarchy and outside of it. Events are propagated from the leaf to the root state. This means that if an event is consumed by a state, it won’t be propagated to its parent states.", "text": "Events are dispatched with the LimboState.dispatch method. It’s important to note that this method can be called from anywhere in the state machine hierarchy and outside of it. Events are propagated from the leaf to the root state. This means that if an event is consumed by a state, it won’t be propagated to its parent states.", "markers": { "1": "LimboState.dispatch" } }, { "kind": "body", "tag": "p", "path": "", "html": "States can also define event handlers, which are methods that react to specific events. These event handlers typically don’t result in a state transition; they are simply a mechanism for states to react to particular events. You can use the LimboState.add_event_handler method to register event handlers in your states:", "text": "States can also define event handlers, which are methods that react to specific events. These event handlers typically don’t result in a state transition; they are simply a mechanism for states to react to particular events. You can use the LimboState.add_event_handler method to register event handlers in your states:", "markers": { "1": "LimboState.add_event_handler" } }, { "kind": "body", "tag": "p", "path": "", "html": "If the event handler returns <1/>, the event will be considered as consumed, and it won’t propagate further or result in a state transition.", "text": "If the event handler returns , the event will be considered as consumed, and it won’t propagate further or result in a state transition.", "markers": { "1": "true" } }, { "kind": "body", "tag": "h3", "path": "", "html": "State anatomy", "text": "State anatomy", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Using behavior trees with state machines", "text": "Using behavior trees with state machines", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "The BTState is a specialized state node in LimboHSM that can host a behavior tree. When a BTState is active, it executes the hosted behavior tree each frame, effectively using the behavior tree as its implementation.", "text": "The BTState is a specialized state node in LimboHSM that can host a behavior tree. When a BTState is active, it executes the hosted behavior tree each frame, effectively using the behavior tree as its implementation.", "markers": { "1": "BTState", "2": "LimboHSM", "3": "BTState" } }, { "kind": "body", "tag": "p", "path": "", "html": "This allows you to combine the power of behavior trees with the structure and control of state machines. Behavior trees are excellent for defining complex, hierarchical behaviors, while state machines are great for managing the flow and transitions between different behaviors.", "text": "This allows you to combine the power of behavior trees with the structure and control of state machines. Behavior trees are excellent for defining complex, hierarchical behaviors, while state machines are great for managing the flow and transitions between different behaviors.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Once the LimboHSM has been created, a BTState can be created for a given LimboHSM:", "text": "Once the LimboHSM has been created, a BTState can be created for a given LimboHSM:", "markers": { "1": "LimboHSM", "2": "BTState", "3": "LimboHSM" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Single-file state machine setup", "text": "Single-file state machine setup", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "In certain scenarios, such as prototyping or during game jams, it’s practical to keep the state machine code in a single file. For such cases, LimboHSM supports delegation and provides chained methods for easier setup. Let’s illustrate this with a practical code example:", "text": "In certain scenarios, such as prototyping or during game jams, it’s practical to keep the state machine code in a single file. For such cases, LimboHSM supports delegation and provides chained methods for easier setup. Let’s illustrate this with a practical code example:", "markers": { "1": "LimboHSM" } }, { "kind": "body", "tag": "h2", "path": "", "html": "Important classes", "text": "Important classes", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "There are a lot of classes introduced in LimboAI. Here is a list of the most important ones you should know about:", "text": "There are a lot of classes introduced in LimboAI. Here is a list of the most important ones you should know about:", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "BTTask", "text": "BTTask", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BT", "text": "Inherits: BT", "markers": { "1": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTAction, BTComment, BTComposite, BTCondition, BTDecorator", "text": "Inherited By: BTAction, BTComment, BTComposite, BTCondition, BTDecorator", "markers": { "1": "BTAction", "2": "BTComment", "3": "BTComposite", "4": "BTCondition", "5": "BTDecorator" } }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all BehaviorTree tasks.", "text": "Base class for all BehaviorTree tasks.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all BehaviorTree tasks. A task is a basic building block in a BehaviorTree that represents a specific behavior or control flow. Tasks are used to create complex behaviors by combining and nesting them in a hierarchy.", "text": "Base class for all BehaviorTree tasks. A task is a basic building block in a BehaviorTree that represents a specific behavior or control flow. Tasks are used to create complex behaviors by combining and nesting them in a hierarchy.", "markers": { "1": "BehaviorTree", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "A task can be one of the following types: action, condition, composite, or decorator. Each type of task has its own corresponding subclass: BTAction, BTCondition, BTDecorator, BTComposite.", "text": "A task can be one of the following types: action, condition, composite, or decorator. Each type of task has its own corresponding subclass: BTAction, BTCondition, BTDecorator, BTComposite.", "markers": { "1": "BTAction", "2": "BTCondition", "3": "BTDecorator", "4": "BTComposite" } }, { "kind": "body", "tag": "p", "path": "", "html": "Tasks perform their work and return their status using the _tick method. Status values are defined in Status. Tasks can be initialized using the _setup method. See also _enter & _exit.", "text": "Tasks perform their work and return their status using the _tick method. Status values are defined in Status. Tasks can be initialized using the _setup method. See also _enter & _exit.", "markers": { "1": "_tick", "2": "Status", "3": "_setup", "4": "_enter", "5": "_exit" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note: Do not extend BTTask directly for your own tasks. Instead, extend one of the subtypes mentioned above.", "text": "Note: Do not extend BTTask directly for your own tasks. Instead, extend one of the subtypes mentioned above.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "agent", "text": "agent", "markers": { "1": "agent" } }, { "kind": "body", "tag": "p", "path": "", "html": "agent", "text": "agent", "markers": { "1": "agent" } }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard", "text": "blackboard", "markers": { "1": "blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard", "text": "blackboard", "markers": { "1": "blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "custom_name", "text": "custom_name", "markers": { "1": "custom_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "custom_name", "text": "custom_name", "markers": { "1": "custom_name" } }, { "kind": "body", "tag": "td", "path": "", "html": "elapsed_time", "text": "elapsed_time", "markers": { "1": "elapsed_time" } }, { "kind": "body", "tag": "p", "path": "", "html": "elapsed_time", "text": "elapsed_time", "markers": { "1": "elapsed_time" } }, { "kind": "body", "tag": "td", "path": "", "html": "scene_root", "text": "scene_root", "markers": { "1": "scene_root" } }, { "kind": "body", "tag": "p", "path": "", "html": "scene_root", "text": "scene_root", "markers": { "1": "scene_root" } }, { "kind": "body", "tag": "td", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "td", "path": "", "html": "status", "text": "status", "markers": { "1": "status" } }, { "kind": "body", "tag": "p", "path": "", "html": "status", "text": "status", "markers": { "1": "status" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "_enter() <2/>", "text": "_enter() ", "markers": { "1": "_enter", "2": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_enter() <2/>", "text": "_enter() ", "markers": { "1": "_enter", "2": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "_exit() <2/>", "text": "_exit() ", "markers": { "1": "_exit", "2": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_exit() <2/>", "text": "_exit() ", "markers": { "1": "_exit", "2": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "_generate_name() <2/> <3/>", "text": "_generate_name() ", "markers": { "1": "_generate_name", "2": "virtual", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "_generate_name() <2/> <3/>", "text": "_generate_name() ", "markers": { "1": "_generate_name", "2": "virtual", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "_get_configuration_warnings() <2/> <3/>", "text": "_get_configuration_warnings() ", "markers": { "1": "_get_configuration_warnings", "2": "virtual", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "_get_configuration_warnings() <2/> <3/>", "text": "_get_configuration_warnings() ", "markers": { "1": "_get_configuration_warnings", "2": "virtual", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "_setup() <2/>", "text": "_setup() ", "markers": { "1": "_setup", "2": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_setup() <2/>", "text": "_setup() ", "markers": { "1": "_setup", "2": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "td", "path": "", "html": "_tick(delta: <2/>) <3/>", "text": "_tick(delta: ) ", "markers": { "1": "_tick", "2": "float", "3": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_tick(delta: <2/>) <3/>", "text": "_tick(delta: ) ", "markers": { "1": "_tick", "2": "float", "3": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "abort()", "text": "abort()", "markers": { "1": "abort" } }, { "kind": "body", "tag": "p", "path": "", "html": "abort()", "text": "abort()", "markers": { "1": "abort" } }, { "kind": "body", "tag": "td", "path": "", "html": "add_child(task: BTTask)", "text": "add_child(task: BTTask)", "markers": { "1": "add_child", "2": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "add_child(task: BTTask)", "text": "add_child(task: BTTask)", "markers": { "1": "add_child", "2": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "add_child_at_index(task: BTTask, idx: <3/>)", "text": "add_child_at_index(task: BTTask, idx: )", "markers": { "1": "add_child_at_index", "2": "BTTask", "3": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "add_child_at_index(task: BTTask, idx: <3/>)", "text": "add_child_at_index(task: BTTask, idx: )", "markers": { "1": "add_child_at_index", "2": "BTTask", "3": "int" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "clone() <2/>", "text": "clone() ", "markers": { "1": "clone", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "clone() <2/>", "text": "clone() ", "markers": { "1": "clone", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "td", "path": "", "html": "editor_get_behavior_tree()", "text": "editor_get_behavior_tree()", "markers": { "1": "editor_get_behavior_tree" } }, { "kind": "body", "tag": "p", "path": "", "html": "editor_get_behavior_tree()", "text": "editor_get_behavior_tree()", "markers": { "1": "editor_get_behavior_tree" } }, { "kind": "body", "tag": "td", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "td", "path": "", "html": "execute(delta: <2/>)", "text": "execute(delta: )", "markers": { "1": "execute", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "execute(delta: <2/>)", "text": "execute(delta: )", "markers": { "1": "execute", "2": "float" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_child(idx: <2/>) <3/>", "text": "get_child(idx: ) ", "markers": { "1": "get_child", "2": "int", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_child(idx: <2/>) <3/>", "text": "get_child(idx: ) ", "markers": { "1": "get_child", "2": "int", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_child_count() <2/>", "text": "get_child_count() ", "markers": { "1": "get_child_count", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_child_count() <2/>", "text": "get_child_count() ", "markers": { "1": "get_child_count", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_child_count_excluding_comments() <2/>", "text": "get_child_count_excluding_comments() ", "markers": { "1": "get_child_count_excluding_comments", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_child_count_excluding_comments() <2/>", "text": "get_child_count_excluding_comments() ", "markers": { "1": "get_child_count_excluding_comments", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_index() <2/>", "text": "get_index() ", "markers": { "1": "get_index", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_index() <2/>", "text": "get_index() ", "markers": { "1": "get_index", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_parent() <2/>", "text": "get_parent() ", "markers": { "1": "get_parent", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_parent() <2/>", "text": "get_parent() ", "markers": { "1": "get_parent", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_root() <2/>", "text": "get_root() ", "markers": { "1": "get_root", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_root() <2/>", "text": "get_root() ", "markers": { "1": "get_root", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_task_name()", "text": "get_task_name()", "markers": { "1": "get_task_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_task_name()", "text": "get_task_name()", "markers": { "1": "get_task_name" } }, { "kind": "body", "tag": "td", "path": "", "html": "has_child(task: BTTask) <3/>", "text": "has_child(task: BTTask) ", "markers": { "1": "has_child", "2": "BTTask", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "has_child(task: BTTask) <3/>", "text": "has_child(task: BTTask) ", "markers": { "1": "has_child", "2": "BTTask", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "initialize(agent: <2/>, blackboard: Blackboard, scene_root: <4/>)", "text": "initialize(agent: , blackboard: Blackboard, scene_root: )", "markers": { "1": "initialize", "2": "Node", "3": "Blackboard", "4": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "initialize(agent: <2/>, blackboard: Blackboard, scene_root: <4/>)", "text": "initialize(agent: , blackboard: Blackboard, scene_root: )", "markers": { "1": "initialize", "2": "Node", "3": "Blackboard", "4": "Node" } }, { "kind": "body", "tag": "td", "path": "", "html": "is_descendant_of(task: BTTask) <3/>", "text": "is_descendant_of(task: BTTask) ", "markers": { "1": "is_descendant_of", "2": "BTTask", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "is_descendant_of(task: BTTask) <3/>", "text": "is_descendant_of(task: BTTask) ", "markers": { "1": "is_descendant_of", "2": "BTTask", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "is_root() <2/>", "text": "is_root() ", "markers": { "1": "is_root", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "is_root() <2/>", "text": "is_root() ", "markers": { "1": "is_root", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "next_sibling() <2/>", "text": "next_sibling() ", "markers": { "1": "next_sibling", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "next_sibling() <2/>", "text": "next_sibling() ", "markers": { "1": "next_sibling", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "print_tree(initial_tabs: <2/> = 0)", "text": "print_tree(initial_tabs: = 0)", "markers": { "1": "print_tree", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "print_tree(initial_tabs: <2/> = 0)", "text": "print_tree(initial_tabs: = 0)", "markers": { "1": "print_tree", "2": "int" } }, { "kind": "body", "tag": "td", "path": "", "html": "remove_child(task: BTTask)", "text": "remove_child(task: BTTask)", "markers": { "1": "remove_child", "2": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "remove_child(task: BTTask)", "text": "remove_child(task: BTTask)", "markers": { "1": "remove_child", "2": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "remove_child_at_index(idx: <2/>)", "text": "remove_child_at_index(idx: )", "markers": { "1": "remove_child_at_index", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "remove_child_at_index(idx: <2/>)", "text": "remove_child_at_index(idx: )", "markers": { "1": "remove_child_at_index", "2": "int" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> agent 🔗", "text": " agent 🔗", "markers": { "1": "Node", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_agent(value: <2/>)", "text": " set_agent(value: )", "markers": { "1": "void", "2": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_agent()", "text": " get_agent()", "markers": { "1": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "The agent is the contextual object for the BehaviorTree instance. This is usually the parent of the BTPlayer node that utilizes the BehaviorTree resource.", "text": "The agent is the contextual object for the BehaviorTree instance. This is usually the parent of the BTPlayer node that utilizes the BehaviorTree resource.", "markers": { "1": "BehaviorTree", "2": "BTPlayer", "3": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard blackboard 🔗", "text": "Blackboard blackboard 🔗", "markers": { "1": "Blackboard", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard get_blackboard()", "text": "Blackboard get_blackboard()", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Provides access to the Blackboard. Blackboard is used to share data among tasks of the associated BehaviorTree.", "text": "Provides access to the Blackboard. Blackboard is used to share data among tasks of the associated BehaviorTree.", "markers": { "1": "Blackboard", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "See Blackboard for additional info.", "text": "See Blackboard for additional info.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> custom_name = <2/> 🔗", "text": " custom_name = 🔗", "markers": { "1": "String", "2": "\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_custom_name(value: <2/>)", "text": " set_custom_name(value: )", "markers": { "1": "void", "2": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_custom_name()", "text": " get_custom_name()", "markers": { "1": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "User-provided name for the task. If not empty, it is used by the editor to represent the task. See get_task_name.", "text": "User-provided name for the task. If not empty, it is used by the editor to represent the task. See get_task_name.", "markers": { "1": "get_task_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> elapsed_time 🔗", "text": " elapsed_time 🔗", "markers": { "1": "float", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_elapsed_time()", "text": " get_elapsed_time()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Elapsed time since the task was “entered”. See _enter.", "text": "Elapsed time since the task was “entered”. See _enter.", "markers": { "1": "_enter" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> when task is not <2/>.", "text": "Returns when task is not .", "markers": { "1": "0", "2": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> scene_root 🔗", "text": " scene_root 🔗", "markers": { "1": "Node", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_scene_root()", "text": " get_scene_root()", "markers": { "1": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "Root node of the scene the behavior tree is used in (e.g., the owner of the BTPlayer node). Can be uses to retrieve <2/> references.", "text": "Root node of the scene the behavior tree is used in (e.g., the owner of the BTPlayer node). Can be uses to retrieve references.", "markers": { "1": "BTPlayer", "2": "NodePath" } }, { "kind": "body", "tag": "p", "path": "", "html": "Example:", "text": "Example:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status status 🔗", "text": "Status status 🔗", "markers": { "1": "Status", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status get_status()", "text": "Status get_status()", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Last execution Status returned by _tick.", "text": "Last execution Status returned by _tick.", "markers": { "1": "Status", "2": "_tick" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _enter() <2/> 🔗", "text": " _enter() 🔗", "markers": { "1": "void", "2": "virtual", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called when task is “entered”, i.e. when task is executed while not having a <1/> status.", "text": "Called when task is “entered”, i.e. when task is executed while not having a status.", "markers": { "1": "RUNNING", "2": "status" } }, { "kind": "body", "tag": "p", "path": "", "html": "It is called before _tick in the execution order. This method is used when preparation is needed before main work begins, usually when it takes more than one tick to finish the task. See also execute.", "text": "It is called before _tick in the execution order. This method is used when preparation is needed before main work begins, usually when it takes more than one tick to finish the task. See also execute.", "markers": { "1": "_tick", "2": "execute" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _exit() <2/> 🔗", "text": " _exit() 🔗", "markers": { "1": "void", "2": "virtual", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called when task is “exited”, i.e. after _tick returns <2/> or <3/> status. See also execute.", "text": "Called when task is “exited”, i.e. after _tick returns or status. See also execute.", "markers": { "1": "_tick", "2": "SUCCESS", "3": "FAILURE", "4": "execute" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _generate_name() <2/> <3/> 🔗", "text": " _generate_name() 🔗", "markers": { "1": "String", "2": "virtual", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called to generate a display name for the task unless custom_name is set. See get_task_name.", "text": "Called to generate a display name for the task unless custom_name is set. See get_task_name.", "markers": { "1": "custom_name", "2": "get_task_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _get_configuration_warnings() <2/> <3/> 🔗", "text": " _get_configuration_warnings() 🔗", "markers": { "1": "PackedStringArray", "2": "virtual", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "The string returned by this method is shown as a warning message in the behavior tree editor. Any task script that overrides this method must include <1/> annotation at the top of the file.", "text": "The string returned by this method is shown as a warning message in the behavior tree editor. Any task script that overrides this method must include annotation at the top of the file.", "markers": { "1": "@tool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _setup() <2/> 🔗", "text": " _setup() 🔗", "markers": { "1": "void", "2": "virtual", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called to initialize a task during initialization step. It is called only once before the task’s first execution tick. This method allows you to set up any necessary state or configurations for the task before it begins executing.", "text": "Called to initialize a task during initialization step. It is called only once before the task’s first execution tick. This method allows you to set up any necessary state or configurations for the task before it begins executing.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status _tick(delta: <2/>) <3/> 🔗", "text": "Status _tick(delta: ) 🔗", "markers": { "1": "Status", "2": "float", "3": "virtual", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called when task is “ticked”, i.e. executed by BTPlayer or BTState during an update.", "text": "Called when task is “ticked”, i.e. executed by BTPlayer or BTState during an update.", "markers": { "1": "BTPlayer", "2": "BTState" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns execution status as defined in Status.", "text": "Returns execution status as defined in Status.", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note: Tasks perform their main function by implementing this method.", "text": "Note: Tasks perform their main function by implementing this method.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> abort() 🔗", "text": " abort() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Resets the task and its children recursively. If a task is in the <1/> state, it is exited and its status is reset to <2/>.", "text": "Resets the task and its children recursively. If a task is in the state, it is exited and its status is reset to .", "markers": { "1": "RUNNING", "2": "FRESH" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> add_child(task: BTTask) 🔗", "text": " add_child(task: BTTask) 🔗", "markers": { "1": "void", "2": "BTTask", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Adds a child task. The <1/> is placed at the end of the children list.", "text": "Adds a child task. The is placed at the end of the children list.", "markers": { "1": "task" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> add_child_at_index(task: BTTask, idx: <3/>) 🔗", "text": " add_child_at_index(task: BTTask, idx: ) 🔗", "markers": { "1": "void", "2": "BTTask", "3": "int", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Adds a child task. The <1/> is placed at <2/> position in the children list.", "text": "Adds a child task. The is placed at position in the children list.", "markers": { "1": "task", "2": "idx" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask clone() <2/> 🔗", "text": "BTTask clone() 🔗", "markers": { "1": "BTTask", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Duplicates the task and its children, copying the exported members. Sub-resources are shared for efficiency, except for BBParam subtypes, which are always copied. Used by the editor to instantiate BehaviorTree and copy-paste tasks.", "text": "Duplicates the task and its children, copying the exported members. Sub-resources are shared for efficiency, except for BBParam subtypes, which are always copied. Used by the editor to instantiate BehaviorTree and copy-paste tasks.", "markers": { "1": "BBParam", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree editor_get_behavior_tree() 🔗", "text": "BehaviorTree editor_get_behavior_tree() 🔗", "markers": { "1": "BehaviorTree", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the behavior tree that owns this task. This is only available in the editor.", "text": "Returns the behavior tree that owns this task. This is only available in the editor.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status execute(delta: <2/>) 🔗", "text": "Status execute(delta: ) 🔗", "markers": { "1": "Status", "2": "float", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Performs task’s execution. The execution follows a specific sequence:", "text": "Performs task’s execution. The execution follows a specific sequence:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "If task’s current status is not <2/>, the _enter method is called first.", "text": "If task’s current status is not , the _enter method is called first.", "markers": { "1": "status", "2": "RUNNING", "3": "_enter" } }, { "kind": "body", "tag": "p", "path": "", "html": "Next, the _tick method is called next to perform the task’s work.", "text": "Next, the _tick method is called next to perform the task’s work.", "markers": { "1": "_tick" } }, { "kind": "body", "tag": "p", "path": "", "html": "If the _tick method returns <2/> or <3/> status, the _exit method will be called next as part of the execution cleanup.", "text": "If the _tick method returns or status, the _exit method will be called next as part of the execution cleanup.", "markers": { "1": "_tick", "2": "SUCCESS", "3": "FAILURE", "4": "_exit" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask get_child(idx: <2/>) <3/> 🔗", "text": "BTTask get_child(idx: ) 🔗", "markers": { "1": "BTTask", "2": "int", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns a child task by specifying its index.", "text": "Returns a child task by specifying its index.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_child_count() <2/> 🔗", "text": " get_child_count() 🔗", "markers": { "1": "int", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the number of child tasks.", "text": "Returns the number of child tasks.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_child_count_excluding_comments() <2/> 🔗", "text": " get_child_count_excluding_comments() 🔗", "markers": { "1": "int", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the number of child tasks not counting BTComment tasks.", "text": "Returns the number of child tasks not counting BTComment tasks.", "markers": { "1": "BTComment" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_index() <2/> 🔗", "text": " get_index() 🔗", "markers": { "1": "int", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the task’s position in the behavior tree branch. Returns <1/> if the task doesn’t belong to a task tree, i.e. doesn’t have a parent.", "text": "Returns the task’s position in the behavior tree branch. Returns if the task doesn’t belong to a task tree, i.e. doesn’t have a parent.", "markers": { "1": "-1" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask get_parent() <2/> 🔗", "text": "BTTask get_parent() 🔗", "markers": { "1": "BTTask", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the task’s parent.", "text": "Returns the task’s parent.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask get_root() <2/> 🔗", "text": "BTTask get_root() 🔗", "markers": { "1": "BTTask", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the root task of the behavior tree.", "text": "Returns the root task of the behavior tree.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_task_name() 🔗", "text": " get_task_name() 🔗", "markers": { "1": "String", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "The string returned by this method is used to represent the task in the editor.", "text": "The string returned by this method is used to represent the task in the editor.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Method _generate_name is called to generate a display name for the task unless custom_name is set.", "text": "Method _generate_name is called to generate a display name for the task unless custom_name is set.", "markers": { "1": "_generate_name", "2": "custom_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> has_child(task: BTTask) <3/> 🔗", "text": " has_child(task: BTTask) 🔗", "markers": { "1": "bool", "2": "BTTask", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if <2/> is a child of this task.", "text": "Returns if is a child of this task.", "markers": { "1": "true", "2": "task" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> initialize(agent: <2/>, blackboard: Blackboard, scene_root: <4/>) 🔗", "text": " initialize(agent: , blackboard: Blackboard, scene_root: ) 🔗", "markers": { "1": "void", "2": "Node", "3": "Blackboard", "4": "Node", "5": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Initilizes the task. Assigns agent and blackboard, and calls _setup for the task and its children.", "text": "Initilizes the task. Assigns agent and blackboard, and calls _setup for the task and its children.", "markers": { "1": "agent", "2": "blackboard", "3": "_setup" } }, { "kind": "body", "tag": "p", "path": "", "html": "The method is called recursively for each child task. <1/> should be the root node of the scene the behavior tree is used in (e.g., the owner of the node that contains the behavior tree).", "text": "The method is called recursively for each child task. should be the root node of the scene the behavior tree is used in (e.g., the owner of the node that contains the behavior tree).", "markers": { "1": "scene_root" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_descendant_of(task: BTTask) <3/> 🔗", "text": " is_descendant_of(task: BTTask) 🔗", "markers": { "1": "bool", "2": "BTTask", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if this task is a descendant of <2/>. In other words, this task must be a child of <3/> or one of its children or grandchildren.", "text": "Returns if this task is a descendant of . In other words, this task must be a child of or one of its children or grandchildren.", "markers": { "1": "true", "2": "task", "3": "task" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_root() <2/> 🔗", "text": " is_root() 🔗", "markers": { "1": "bool", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if this task is the root task of its behavior tree. A behavior tree can have only one root task.", "text": "Returns if this task is the root task of its behavior tree. A behavior tree can have only one root task.", "markers": { "1": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask next_sibling() <2/> 🔗", "text": "BTTask next_sibling() 🔗", "markers": { "1": "BTTask", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the next task after this task in the parent’s children list.", "text": "Returns the next task after this task in the parent’s children list.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if this task has no parent or it is the last child in the parent’s children list.", "text": "Returns if this task has no parent or it is the last child in the parent’s children list.", "markers": { "1": "null" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> print_tree(initial_tabs: <2/> = 0) 🔗", "text": " print_tree(initial_tabs: = 0) 🔗", "markers": { "1": "void", "2": "int", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Prints the subtree that starts with this task to the console.", "text": "Prints the subtree that starts with this task to the console.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> remove_child(task: BTTask) 🔗", "text": " remove_child(task: BTTask) 🔗", "markers": { "1": "void", "2": "BTTask", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Removes <1/> from children.", "text": "Removes from children.", "markers": { "1": "task" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> remove_child_at_index(idx: <2/>) 🔗", "text": " remove_child_at_index(idx: ) 🔗", "markers": { "1": "void", "2": "int", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Removes a child task at a specified index from children.", "text": "Removes a child task at a specified index from children.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "BTPlayer", "text": "BTPlayer", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Player of BehaviorTree resources.", "text": "Player of BehaviorTree resources.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTPlayer node is used to instantiate and play BehaviorTree resources at runtime. During initialization, the behavior tree instance is given references to the agent, the blackboard, and the current scene root. The agent can be specified by the agent_node property (defaults to the BTPlayer’s parent node).", "text": "BTPlayer node is used to instantiate and play BehaviorTree resources at runtime. During initialization, the behavior tree instance is given references to the agent, the blackboard, and the current scene root. The agent can be specified by the agent_node property (defaults to the BTPlayer’s parent node).", "markers": { "1": "BehaviorTree", "2": "blackboard", "3": "agent_node" } }, { "kind": "body", "tag": "p", "path": "", "html": "For an introduction to behavior trees, see BehaviorTree.", "text": "For an introduction to behavior trees, see BehaviorTree.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "active", "text": "active", "markers": { "1": "active" } }, { "kind": "body", "tag": "p", "path": "", "html": "active", "text": "active", "markers": { "1": "active" } }, { "kind": "body", "tag": "td", "path": "", "html": "agent_node", "text": "agent_node", "markers": { "1": "agent_node" } }, { "kind": "body", "tag": "p", "path": "", "html": "agent_node", "text": "agent_node", "markers": { "1": "agent_node" } }, { "kind": "body", "tag": "td", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "td", "path": "", "html": "behavior_tree", "text": "behavior_tree", "markers": { "1": "behavior_tree" } }, { "kind": "body", "tag": "p", "path": "", "html": "behavior_tree", "text": "behavior_tree", "markers": { "1": "behavior_tree" } }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard", "text": "blackboard", "markers": { "1": "blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard", "text": "blackboard", "markers": { "1": "blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "td", "path": "", "html": "monitor_performance", "text": "monitor_performance", "markers": { "1": "monitor_performance" } }, { "kind": "body", "tag": "p", "path": "", "html": "monitor_performance", "text": "monitor_performance", "markers": { "1": "monitor_performance" } }, { "kind": "body", "tag": "td", "path": "", "html": "UpdateMode", "text": "UpdateMode", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode", "text": "UpdateMode", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "td", "path": "", "html": "update_mode", "text": "update_mode", "markers": { "1": "update_mode" } }, { "kind": "body", "tag": "p", "path": "", "html": "update_mode", "text": "update_mode", "markers": { "1": "update_mode" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": { "1": "BTInstance" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": { "1": "BTInstance" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_bt_instance()", "text": "get_bt_instance()", "markers": { "1": "get_bt_instance" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_bt_instance()", "text": "get_bt_instance()", "markers": { "1": "get_bt_instance" } }, { "kind": "body", "tag": "td", "path": "", "html": "restart()", "text": "restart()", "markers": { "1": "restart" } }, { "kind": "body", "tag": "p", "path": "", "html": "restart()", "text": "restart()", "markers": { "1": "restart" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_bt_instance(bt_instance: BTInstance)", "text": "set_bt_instance(bt_instance: BTInstance)", "markers": { "1": "set_bt_instance", "2": "BTInstance" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_bt_instance(bt_instance: BTInstance)", "text": "set_bt_instance(bt_instance: BTInstance)", "markers": { "1": "set_bt_instance", "2": "BTInstance" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_scene_root_hint(scene_root: <2/>)", "text": "set_scene_root_hint(scene_root: )", "markers": { "1": "set_scene_root_hint", "2": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_scene_root_hint(scene_root: <2/>)", "text": "set_scene_root_hint(scene_root: )", "markers": { "1": "set_scene_root_hint", "2": "Node" } }, { "kind": "body", "tag": "td", "path": "", "html": "update(delta: <2/>)", "text": "update(delta: )", "markers": { "1": "update", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "update(delta: <2/>)", "text": "update(delta: )", "markers": { "1": "update", "2": "float" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Signals", "text": "Signals", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "behavior_tree_finished(status: <1/>) 🔗", "text": "behavior_tree_finished(status: ) 🔗", "markers": { "1": "int", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Deprecated: Use updated signal instead.", "text": "Deprecated: Use updated signal instead.", "markers": { "1": "updated" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the behavior tree has finished executing and returned <1/> or <2/>.", "text": "Emitted when the behavior tree has finished executing and returned or .", "markers": { "1": "SUCCESS", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Argument <1/> holds the status returned by the behavior tree. See Status.", "text": "Argument holds the status returned by the behavior tree. See Status.", "markers": { "1": "status", "2": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "updated(status: <1/>) 🔗", "text": "updated(status: ) 🔗", "markers": { "1": "int", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when BTPlayer has finished the behavior tree update.", "text": "Emitted when BTPlayer has finished the behavior tree update.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Argument <1/> holds the status returned by the behavior tree. See Status.", "text": "Argument holds the status returned by the behavior tree. See Status.", "markers": { "1": "status", "2": "Status" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Enumerations", "text": "Enumerations", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum UpdateMode: 🔗", "text": "enum UpdateMode: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode IDLE = <2/>", "text": "UpdateMode IDLE = ", "markers": { "1": "UpdateMode", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "Execute behavior tree during the idle process.", "text": "Execute behavior tree during the idle process.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode PHYSICS = <2/>", "text": "UpdateMode PHYSICS = ", "markers": { "1": "UpdateMode", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "Execute behavior tree during the physics process.", "text": "Execute behavior tree during the physics process.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode MANUAL = <2/>", "text": "UpdateMode MANUAL = ", "markers": { "1": "UpdateMode", "2": "2" } }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior tree is executed manually by calling update.", "text": "Behavior tree is executed manually by calling update.", "markers": { "1": "update" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> active = <2/> 🔗", "text": " active = 🔗", "markers": { "1": "bool", "2": "true", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_active(value: <2/>)", "text": " set_active(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_active()", "text": " get_active()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, the behavior tree will be executed during update.", "text": "If , the behavior tree will be executed during update.", "markers": { "1": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> agent_node = <2/> 🔗", "text": " agent_node = 🔗", "markers": { "1": "NodePath", "2": "NodePath(\"..\")", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_agent_node(value: <2/>)", "text": " set_agent_node(value: )", "markers": { "1": "void", "2": "NodePath" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_agent_node()", "text": " get_agent_node()", "markers": { "1": "NodePath" } }, { "kind": "body", "tag": "p", "path": "", "html": "Path to the node that will be used as the agent. Setting it after instantiation will have no effect.", "text": "Path to the node that will be used as the agent. Setting it after instantiation will have no effect.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree behavior_tree 🔗", "text": "BehaviorTree behavior_tree 🔗", "markers": { "1": "BehaviorTree", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_behavior_tree(value: BehaviorTree)", "text": " set_behavior_tree(value: BehaviorTree)", "markers": { "1": "void", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree get_behavior_tree()", "text": "BehaviorTree get_behavior_tree()", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree resource to instantiate and execute at runtime.", "text": "BehaviorTree resource to instantiate and execute at runtime.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard blackboard 🔗", "text": "Blackboard blackboard 🔗", "markers": { "1": "Blackboard", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_blackboard(value: Blackboard)", "text": " set_blackboard(value: Blackboard)", "markers": { "1": "void", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard get_blackboard()", "text": "Blackboard get_blackboard()", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Holds data shared by the behavior tree tasks. See Blackboard.", "text": "Holds data shared by the behavior tree tasks. See Blackboard.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan blackboard_plan 🔗", "text": "BlackboardPlan blackboard_plan 🔗", "markers": { "1": "BlackboardPlan", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_blackboard_plan(value: BlackboardPlan)", "text": " set_blackboard_plan(value: BlackboardPlan)", "markers": { "1": "void", "2": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan get_blackboard_plan()", "text": "BlackboardPlan get_blackboard_plan()", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "Stores and manages variables that will be used in constructing new Blackboard instances.", "text": "Stores and manages variables that will be used in constructing new Blackboard instances.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> monitor_performance = <2/> 🔗", "text": " monitor_performance = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_monitor_performance(value: <2/>)", "text": " set_monitor_performance(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_monitor_performance()", "text": " get_monitor_performance()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, adds a performance monitor to “Debugger->Monitors” for each instance of this BTPlayer node.", "text": "If , adds a performance monitor to “Debugger->Monitors” for each instance of this BTPlayer node.", "markers": { "1": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode update_mode = <2/> 🔗", "text": "UpdateMode update_mode = 🔗", "markers": { "1": "UpdateMode", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_update_mode(value: UpdateMode)", "text": " set_update_mode(value: UpdateMode)", "markers": { "1": "void", "2": "UpdateMode" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode get_update_mode()", "text": "UpdateMode get_update_mode()", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Determines when the behavior tree is executed. See UpdateMode.", "text": "Determines when the behavior tree is executed. See UpdateMode.", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTInstance get_bt_instance() 🔗", "text": "BTInstance get_bt_instance() 🔗", "markers": { "1": "BTInstance", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the behavior tree instance.", "text": "Returns the behavior tree instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> restart() 🔗", "text": " restart() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Resets the behavior tree’s execution. Each running task will be aborted and the next tree execution will start anew. This method does not reset Blackboard.", "text": "Resets the behavior tree’s execution. Each running task will be aborted and the next tree execution will start anew. This method does not reset Blackboard.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_bt_instance(bt_instance: BTInstance) 🔗", "text": " set_bt_instance(bt_instance: BTInstance) 🔗", "markers": { "1": "void", "2": "BTInstance", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the BTInstance to play. This method is useful when you want to switch to a different behavior tree instance at runtime. See also BehaviorTree.instantiate.", "text": "Sets the BTInstance to play. This method is useful when you want to switch to a different behavior tree instance at runtime. See also BehaviorTree.instantiate.", "markers": { "1": "BTInstance", "2": "BehaviorTree.instantiate" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_scene_root_hint(scene_root: <2/>) 🔗", "text": " set_scene_root_hint(scene_root: ) 🔗", "markers": { "1": "void", "2": "Node", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the <1/> that will be used as the scene root for the newly instantiated behavior tree. Should be called before the BTPlayer is added to the scene tree (before <2/>). This is typically useful when creating BTPlayer nodes dynamically from code.", "text": "Sets the that will be used as the scene root for the newly instantiated behavior tree. Should be called before the BTPlayer is added to the scene tree (before ). This is typically useful when creating BTPlayer nodes dynamically from code.", "markers": { "1": "Node", "2": "NOTIFICATION_READY" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> update(delta: <2/>) 🔗", "text": " update(delta: ) 🔗", "markers": { "1": "void", "2": "float", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Executes the root task of the behavior tree instance if active is <2/>. Call this method when update_mode is set to MANUAL. When update_mode is not MANUAL, the update will be called automatically. See UpdateMode.", "text": "Executes the root task of the behavior tree instance if active is . Call this method when update_mode is set to MANUAL. When update_mode is not MANUAL, the update will be called automatically. See UpdateMode.", "markers": { "1": "active", "2": "true", "3": "update_mode", "4": "MANUAL", "5": "update_mode", "6": "MANUAL", "7": "update", "8": "UpdateMode" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "A key/value storage for sharing among LimboHSM states and BehaviorTree tasks.", "text": "A key/value storage for sharing among LimboHSM states and BehaviorTree tasks.", "markers": { "1": "LimboHSM", "2": "BehaviorTree" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard is where data is stored and shared between states in the LimboHSM system and tasks in a BehaviorTree. Each state and task in the BehaviorTree can access this Blackboard, allowing them to read and write data. This makes it easy to share information between different actions and behaviors.", "text": "Blackboard is where data is stored and shared between states in the LimboHSM system and tasks in a BehaviorTree. Each state and task in the BehaviorTree can access this Blackboard, allowing them to read and write data. This makes it easy to share information between different actions and behaviors.", "markers": { "1": "LimboHSM", "2": "BehaviorTree", "3": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard can also act as a parent scope for another Blackboard. If a specific variable is not found in the active scope, it looks in the parent Blackboard to find it. A parent Blackboard can itself have its own parent scope, forming what we call a “blackboard scope chain.” Importantly, there is no limit to how many Blackboards can be in this chain, and the Blackboard doesn’t modify values in the parent scopes.", "text": "Blackboard can also act as a parent scope for another Blackboard. If a specific variable is not found in the active scope, it looks in the parent Blackboard to find it. A parent Blackboard can itself have its own parent scope, forming what we call a “blackboard scope chain.” Importantly, there is no limit to how many Blackboards can be in this chain, and the Blackboard doesn’t modify values in the parent scopes.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "New scopes can be created using the BTNewScope and BTSubtree decorators. Additionally, a new scope is automatically created for any LimboState that has defined non-empty Blackboard data or for any root-level LimboHSM node.", "text": "New scopes can be created using the BTNewScope and BTSubtree decorators. Additionally, a new scope is automatically created for any LimboState that has defined non-empty Blackboard data or for any root-level LimboHSM node.", "markers": { "1": "BTNewScope", "2": "BTSubtree", "3": "LimboState", "4": "LimboHSM" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "bind_var_to_property(var_name: <2/>, object: <3/>, property: <4/>, create: <5/> = false)", "text": "bind_var_to_property(var_name: , object: , property: , create: = false)", "markers": { "1": "bind_var_to_property", "2": "StringName", "3": "Object", "4": "StringName", "5": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "bind_var_to_property(var_name: <2/>, object: <3/>, property: <4/>, create: <5/> = false)", "text": "bind_var_to_property(var_name: , object: , property: , create: = false)", "markers": { "1": "bind_var_to_property", "2": "StringName", "3": "Object", "4": "StringName", "5": "bool" } }, { "kind": "body", "tag": "td", "path": "", "html": "clear()", "text": "clear()", "markers": { "1": "clear" } }, { "kind": "body", "tag": "p", "path": "", "html": "clear()", "text": "clear()", "markers": { "1": "clear" } }, { "kind": "body", "tag": "td", "path": "", "html": "erase_var(var_name: <2/>)", "text": "erase_var(var_name: )", "markers": { "1": "erase_var", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "erase_var(var_name: <2/>)", "text": "erase_var(var_name: )", "markers": { "1": "erase_var", "2": "StringName" } }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_parent() <2/>", "text": "get_parent() ", "markers": { "1": "get_parent", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_parent() <2/>", "text": "get_parent() ", "markers": { "1": "get_parent", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_var(var_name: <2/>, default: <3/> = null, complain: <4/> = true) <5/>", "text": "get_var(var_name: , default: = null, complain: = true) ", "markers": { "1": "get_var", "2": "StringName", "3": "Variant", "4": "bool", "5": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_var(var_name: <2/>, default: <3/> = null, complain: <4/> = true) <5/>", "text": "get_var(var_name: , default: = null, complain: = true) ", "markers": { "1": "get_var", "2": "StringName", "3": "Variant", "4": "bool", "5": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_vars_as_dict() <2/>", "text": "get_vars_as_dict() ", "markers": { "1": "get_vars_as_dict", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_vars_as_dict() <2/>", "text": "get_vars_as_dict() ", "markers": { "1": "get_vars_as_dict", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "has_var(var_name: <2/>) <3/>", "text": "has_var(var_name: ) ", "markers": { "1": "has_var", "2": "StringName", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "has_var(var_name: <2/>) <3/>", "text": "has_var(var_name: ) ", "markers": { "1": "has_var", "2": "StringName", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "link_var(var_name: <2/>, target_blackboard: Blackboard, target_var: <4/>, create: <5/> = false)", "text": "link_var(var_name: , target_blackboard: Blackboard, target_var: , create: = false)", "markers": { "1": "link_var", "2": "StringName", "3": "Blackboard", "4": "StringName", "5": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "link_var(var_name: <2/>, target_blackboard: Blackboard, target_var: <4/>, create: <5/> = false)", "text": "link_var(var_name: , target_blackboard: Blackboard, target_var: , create: = false)", "markers": { "1": "link_var", "2": "StringName", "3": "Blackboard", "4": "StringName", "5": "bool" } }, { "kind": "body", "tag": "td", "path": "", "html": "Array[<1/>]", "text": "Array[]", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array[<1/>]", "text": "Array[]", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "td", "path": "", "html": "list_vars() <2/>", "text": "list_vars() ", "markers": { "1": "list_vars", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "list_vars() <2/>", "text": "list_vars() ", "markers": { "1": "list_vars", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "populate_from_dict(dictionary: <2/>)", "text": "populate_from_dict(dictionary: )", "markers": { "1": "populate_from_dict", "2": "Dictionary" } }, { "kind": "body", "tag": "p", "path": "", "html": "populate_from_dict(dictionary: <2/>)", "text": "populate_from_dict(dictionary: )", "markers": { "1": "populate_from_dict", "2": "Dictionary" } }, { "kind": "body", "tag": "td", "path": "", "html": "print_state() <2/>", "text": "print_state() ", "markers": { "1": "print_state", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "print_state() <2/>", "text": "print_state() ", "markers": { "1": "print_state", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_parent(blackboard: Blackboard)", "text": "set_parent(blackboard: Blackboard)", "markers": { "1": "set_parent", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_parent(blackboard: Blackboard)", "text": "set_parent(blackboard: Blackboard)", "markers": { "1": "set_parent", "2": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_var(var_name: <2/>, value: <3/>)", "text": "set_var(var_name: , value: )", "markers": { "1": "set_var", "2": "StringName", "3": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_var(var_name: <2/>, value: <3/>)", "text": "set_var(var_name: , value: )", "markers": { "1": "set_var", "2": "StringName", "3": "Variant" } }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "top() <2/>", "text": "top() ", "markers": { "1": "top", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "top() <2/>", "text": "top() ", "markers": { "1": "top", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "unbind_var(var_name: <2/>)", "text": "unbind_var(var_name: )", "markers": { "1": "unbind_var", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "unbind_var(var_name: <2/>)", "text": "unbind_var(var_name: )", "markers": { "1": "unbind_var", "2": "StringName" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> bind_var_to_property(var_name: <2/>, object: <3/>, property: <4/>, create: <5/> = false) 🔗", "text": " bind_var_to_property(var_name: , object: , property: , create: = false) 🔗", "markers": { "1": "void", "2": "StringName", "3": "Object", "4": "StringName", "5": "bool", "6": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Establish a binding between a variable and the object’s property specified by <1/> and <2/>. Changes to the variable update the property, and vice versa. If <3/> is <4/>, the variable will be created if it doesn’t exist.", "text": "Establish a binding between a variable and the object’s property specified by and . Changes to the variable update the property, and vice versa. If is , the variable will be created if it doesn’t exist.", "markers": { "1": "property", "2": "object", "3": "create", "4": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> clear() 🔗", "text": " clear() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Removes all variables from the Blackboard. Parent scopes are not affected.", "text": "Removes all variables from the Blackboard. Parent scopes are not affected.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> erase_var(var_name: <2/>) 🔗", "text": " erase_var(var_name: ) 🔗", "markers": { "1": "void", "2": "StringName", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Removes a variable by its name.", "text": "Removes a variable by its name.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard get_parent() <2/> 🔗", "text": "Blackboard get_parent() 🔗", "markers": { "1": "Blackboard", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns a Blackboard that serves as the parent scope for this instance.", "text": "Returns a Blackboard that serves as the parent scope for this instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_var(var_name: <2/>, default: <3/> = null, complain: <4/> = true) <5/> 🔗", "text": " get_var(var_name: , default: = null, complain: = true) 🔗", "markers": { "1": "Variant", "2": "StringName", "3": "Variant", "4": "bool", "5": "const", "6": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns variable value or <1/> if variable doesn’t exist. If <2/> is <3/>, an error will be printed if variable doesn’t exist. If the variable doesn’t exist in the current Blackboard scope, it will look in the parent scope Blackboard to find it.", "text": "Returns variable value or if variable doesn’t exist. If is , an error will be printed if variable doesn’t exist. If the variable doesn’t exist in the current Blackboard scope, it will look in the parent scope Blackboard to find it.", "markers": { "1": "default", "2": "complain", "3": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_vars_as_dict() <2/> 🔗", "text": " get_vars_as_dict() 🔗", "markers": { "1": "Dictionary", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns all variables in the Blackboard as a dictionary. Keys are the variable names, values are the variable values. Parent scopes are not included.", "text": "Returns all variables in the Blackboard as a dictionary. Keys are the variable names, values are the variable values. Parent scopes are not included.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> has_var(var_name: <2/>) <3/> 🔗", "text": " has_var(var_name: ) 🔗", "markers": { "1": "bool", "2": "StringName", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the Blackboard contains the <2/> variable, including the parent scopes.", "text": "Returns if the Blackboard contains the variable, including the parent scopes.", "markers": { "1": "true", "2": "var_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> link_var(var_name: <2/>, target_blackboard: Blackboard, target_var: <4/>, create: <5/> = false) 🔗", "text": " link_var(var_name: , target_blackboard: Blackboard, target_var: , create: = false) 🔗", "markers": { "1": "void", "2": "StringName", "3": "Blackboard", "4": "StringName", "5": "bool", "6": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Links a variable to another Blackboard variable. If a variable is linked to another variable, their state will always be identical, and any change to one will be reflected in the other. If <1/> is <2/>, the variable will be created if it doesn’t exist.", "text": "Links a variable to another Blackboard variable. If a variable is linked to another variable, their state will always be identical, and any change to one will be reflected in the other. If is , the variable will be created if it doesn’t exist.", "markers": { "1": "create", "2": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "You can use this method to link a variable in the current scope to a variable in another scope, or in another Blackboard instance. A variable can only be linked to one other variable. Calling this method again will overwrite the previous link. However, it is possible to link to the same variable from multiple different variables.", "text": "You can use this method to link a variable in the current scope to a variable in another scope, or in another Blackboard instance. A variable can only be linked to one other variable. Calling this method again will overwrite the previous link. However, it is possible to link to the same variable from multiple different variables.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Array[<1/>] list_vars() <2/> 🔗", "text": "Array[] list_vars() 🔗", "markers": { "1": "StringName", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns all variable names in the Blackboard. Parent scopes are not included.", "text": "Returns all variable names in the Blackboard. Parent scopes are not included.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> populate_from_dict(dictionary: <2/>) 🔗", "text": " populate_from_dict(dictionary: ) 🔗", "markers": { "1": "void", "2": "Dictionary", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Fills the Blackboard with multiple variables from a dictionary. The dictionary keys must be variable names and the dictionary values must be variable values. Keys must be StringName or String.", "text": "Fills the Blackboard with multiple variables from a dictionary. The dictionary keys must be variable names and the dictionary values must be variable values. Keys must be StringName or String.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> print_state() <2/> 🔗", "text": " print_state() 🔗", "markers": { "1": "void", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Prints the values of all variables in each scope.", "text": "Prints the values of all variables in each scope.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_parent(blackboard: Blackboard) 🔗", "text": " set_parent(blackboard: Blackboard) 🔗", "markers": { "1": "void", "2": "Blackboard", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Assigns the parent scope. If a value isn’t in the current Blackboard scope, it will look in the parent scope Blackboard to find it.", "text": "Assigns the parent scope. If a value isn’t in the current Blackboard scope, it will look in the parent scope Blackboard to find it.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_var(var_name: <2/>, value: <3/>) 🔗", "text": " set_var(var_name: , value: ) 🔗", "markers": { "1": "void", "2": "StringName", "3": "Variant", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Assigns a value to a variable in the current Blackboard scope. If the variable doesn’t exist, it will be created. If the variable already exists in the parent scope, the parent scope value will NOT be changed.", "text": "Assigns a value to a variable in the current Blackboard scope. If the variable doesn’t exist, it will be created. If the variable already exists in the parent scope, the parent scope value will NOT be changed.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard top() <2/> 🔗", "text": "Blackboard top() 🔗", "markers": { "1": "Blackboard", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the topmost Blackboard in the scope chain.", "text": "Returns the topmost Blackboard in the scope chain.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> unbind_var(var_name: <2/>) 🔗", "text": " unbind_var(var_name: ) 🔗", "markers": { "1": "void", "2": "StringName", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Remove binding from a variable.", "text": "Remove binding from a variable.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "BBParam", "text": "BBParam", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BBAabb, BBArray, BBBasis, BBBool, BBByteArray, BBColor, BBColorArray, BBDictionary, BBFloat, BBFloat32Array, BBFloat64Array, BBInt, BBInt32Array, BBInt64Array, BBNode, BBPlane, BBProjection, BBQuaternion, BBRect2, BBRect2i, BBString, BBStringArray, BBStringName, BBTransform2D, BBTransform3D, BBVariant, BBVector2, BBVector2Array, BBVector2i, BBVector3, BBVector3Array, BBVector3i, BBVector4, BBVector4i", "text": "Inherited By: BBAabb, BBArray, BBBasis, BBBool, BBByteArray, BBColor, BBColorArray, BBDictionary, BBFloat, BBFloat32Array, BBFloat64Array, BBInt, BBInt32Array, BBInt64Array, BBNode, BBPlane, BBProjection, BBQuaternion, BBRect2, BBRect2i, BBString, BBStringArray, BBStringName, BBTransform2D, BBTransform3D, BBVariant, BBVector2, BBVector2Array, BBVector2i, BBVector3, BBVector3Array, BBVector3i, BBVector4, BBVector4i", "markers": { "1": "BBAabb", "2": "BBArray", "3": "BBBasis", "4": "BBBool", "5": "BBByteArray", "6": "BBColor", "7": "BBColorArray", "8": "BBDictionary", "9": "BBFloat", "10": "BBFloat32Array", "11": "BBFloat64Array", "12": "BBInt", "13": "BBInt32Array", "14": "BBInt64Array", "15": "BBNode", "16": "BBPlane", "17": "BBProjection", "18": "BBQuaternion", "19": "BBRect2", "20": "BBRect2i", "21": "BBString", "22": "BBStringArray", "23": "BBStringName", "24": "BBTransform2D", "25": "BBTransform3D", "26": "BBVariant", "27": "BBVector2", "28": "BBVector2Array", "29": "BBVector2i", "30": "BBVector3", "31": "BBVector3Array", "32": "BBVector3i", "33": "BBVector4", "34": "BBVector4i" } }, { "kind": "body", "tag": "p", "path": "", "html": "A base class for LimboAI typed parameters.", "text": "A base class for LimboAI typed parameters.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "A base class for LimboAI typed parameters, with the ability to reference a Blackboard variable or hold a raw value of a specific Variant.Type.", "text": "A base class for LimboAI typed parameters, with the ability to reference a Blackboard variable or hold a raw value of a specific Variant.Type.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note: Don’t instantiate. Use specific subtypes instead.", "text": "Note: Don’t instantiate. Use specific subtypes instead.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "saved_value", "text": "saved_value", "markers": { "1": "saved_value" } }, { "kind": "body", "tag": "p", "path": "", "html": "saved_value", "text": "saved_value", "markers": { "1": "saved_value" } }, { "kind": "body", "tag": "td", "path": "", "html": "ValueSource", "text": "ValueSource", "markers": { "1": "ValueSource" } }, { "kind": "body", "tag": "p", "path": "", "html": "ValueSource", "text": "ValueSource", "markers": { "1": "ValueSource" } }, { "kind": "body", "tag": "td", "path": "", "html": "value_source", "text": "value_source", "markers": { "1": "value_source" } }, { "kind": "body", "tag": "p", "path": "", "html": "value_source", "text": "value_source", "markers": { "1": "value_source" } }, { "kind": "body", "tag": "td", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "p", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Variant.Type", "text": "Variant.Type", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Variant.Type", "text": "Variant.Type", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "get_type() <2/>", "text": "get_type() ", "markers": { "1": "get_type", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_type() <2/>", "text": "get_type() ", "markers": { "1": "get_type", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_value(scene_root: <2/>, blackboard: Blackboard, default: <4/> = null)", "text": "get_value(scene_root: , blackboard: Blackboard, default: = null)", "markers": { "1": "get_value", "2": "Node", "3": "Blackboard", "4": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_value(scene_root: <2/>, blackboard: Blackboard, default: <4/> = null)", "text": "get_value(scene_root: , blackboard: Blackboard, default: = null)", "markers": { "1": "get_value", "2": "Node", "3": "Blackboard", "4": "Variant" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Enumerations", "text": "Enumerations", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum ValueSource: 🔗", "text": "enum ValueSource: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "ValueSource SAVED_VALUE = <2/>", "text": "ValueSource SAVED_VALUE = ", "markers": { "1": "ValueSource", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "The value is stored directly within the BBParam resource.", "text": "The value is stored directly within the BBParam resource.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "ValueSource BLACKBOARD_VAR = <2/>", "text": "ValueSource BLACKBOARD_VAR = ", "markers": { "1": "ValueSource", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "The value is referenced by a variable name and retrieved from the Blackboard. The variable name is stored within the BBParam resource.", "text": "The value is referenced by a variable name and retrieved from the Blackboard. The variable name is stored within the BBParam resource.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> saved_value = <2/> 🔗", "text": " saved_value = 🔗", "markers": { "1": "Variant", "2": "null", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_saved_value(value: <2/>)", "text": " set_saved_value(value: )", "markers": { "1": "void", "2": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_saved_value()", "text": " get_saved_value()", "markers": { "1": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Stores the parameter value when value_source is set to SAVED_VALUE. The data type of the value is determined by get_type.", "text": "Stores the parameter value when value_source is set to SAVED_VALUE. The data type of the value is determined by get_type.", "markers": { "1": "value_source", "2": "SAVED_VALUE", "3": "get_type" } }, { "kind": "body", "tag": "p", "path": "", "html": "ValueSource value_source = <2/> 🔗", "text": "ValueSource value_source = 🔗", "markers": { "1": "ValueSource", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_value_source(value: ValueSource)", "text": " set_value_source(value: ValueSource)", "markers": { "1": "void", "2": "ValueSource" } }, { "kind": "body", "tag": "p", "path": "", "html": "ValueSource get_value_source()", "text": "ValueSource get_value_source()", "markers": { "1": "ValueSource" } }, { "kind": "body", "tag": "p", "path": "", "html": "Specifies the source of the value for BBParam. See ValueSource.", "text": "Specifies the source of the value for BBParam. See ValueSource.", "markers": { "1": "ValueSource" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> variable 🔗", "text": " variable 🔗", "markers": { "1": "StringName", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_variable(value: <2/>)", "text": " set_variable(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_variable()", "text": " get_variable()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Stores the name of a Blackboard variable when value_source is set to BLACKBOARD_VAR.", "text": "Stores the name of a Blackboard variable when value_source is set to BLACKBOARD_VAR.", "markers": { "1": "Blackboard", "2": "value_source", "3": "BLACKBOARD_VAR" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Variant.Type get_type() <1/> 🔗", "text": "Variant.Type get_type() 🔗", "markers": { "1": "const", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the expected data type of the parameter.", "text": "Returns the expected data type of the parameter.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_value(scene_root: <2/>, blackboard: Blackboard, default: <4/> = null) 🔗", "text": " get_value(scene_root: , blackboard: Blackboard, default: = null) 🔗", "markers": { "1": "Variant", "2": "Node", "3": "Blackboard", "4": "Variant", "5": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the value of the parameter.", "text": "Returns the value of the parameter.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "LimboState", "text": "LimboState", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTState, LimboHSM", "text": "Inherited By: BTState, LimboHSM", "markers": { "1": "BTState", "2": "LimboHSM" } }, { "kind": "body", "tag": "p", "path": "", "html": "A state node for Hierarchical State Machines (HSM).", "text": "A state node for Hierarchical State Machines (HSM).", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "A LimboAI state node for Hierarchical State Machines (HSM).", "text": "A LimboAI state node for Hierarchical State Machines (HSM).", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "You can create your state behavior by extending this class. To implement your state logic, you can override _enter, _exit, _setup, and _update. Alternatively, you can delegate state implementation to external methods using the <5/> methods.", "text": "You can create your state behavior by extending this class. To implement your state logic, you can override _enter, _exit, _setup, and _update. Alternatively, you can delegate state implementation to external methods using the methods.", "markers": { "1": "_enter", "2": "_exit", "3": "_setup", "4": "_update", "5": "call_on_*" } }, { "kind": "body", "tag": "p", "path": "", "html": "For additional details on state machines, refer to LimboHSM.", "text": "For additional details on state machines, refer to LimboHSM.", "markers": { "1": "LimboHSM" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "EVENT_FINISHED", "text": "EVENT_FINISHED", "markers": { "1": "EVENT_FINISHED" } }, { "kind": "body", "tag": "p", "path": "", "html": "EVENT_FINISHED", "text": "EVENT_FINISHED", "markers": { "1": "EVENT_FINISHED" } }, { "kind": "body", "tag": "td", "path": "", "html": "agent", "text": "agent", "markers": { "1": "agent" } }, { "kind": "body", "tag": "p", "path": "", "html": "agent", "text": "agent", "markers": { "1": "agent" } }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard", "text": "blackboard", "markers": { "1": "blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard", "text": "blackboard", "markers": { "1": "blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "_enter() <2/>", "text": "_enter() ", "markers": { "1": "_enter", "2": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_enter() <2/>", "text": "_enter() ", "markers": { "1": "_enter", "2": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "_exit() <2/>", "text": "_exit() ", "markers": { "1": "_exit", "2": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_exit() <2/>", "text": "_exit() ", "markers": { "1": "_exit", "2": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "_setup() <2/>", "text": "_setup() ", "markers": { "1": "_setup", "2": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_setup() <2/>", "text": "_setup() ", "markers": { "1": "_setup", "2": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "_update(delta: <2/>) <3/>", "text": "_update(delta: ) ", "markers": { "1": "_update", "2": "float", "3": "virtual" } }, { "kind": "body", "tag": "p", "path": "", "html": "_update(delta: <2/>) <3/>", "text": "_update(delta: ) ", "markers": { "1": "_update", "2": "float", "3": "virtual" } }, { "kind": "body", "tag": "td", "path": "", "html": "add_event_handler(event: <2/>, handler: <3/>)", "text": "add_event_handler(event: , handler: )", "markers": { "1": "add_event_handler", "2": "StringName", "3": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "add_event_handler(event: <2/>, handler: <3/>)", "text": "add_event_handler(event: , handler: )", "markers": { "1": "add_event_handler", "2": "StringName", "3": "Callable" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "call_on_enter(callable: <2/>)", "text": "call_on_enter(callable: )", "markers": { "1": "call_on_enter", "2": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "call_on_enter(callable: <2/>)", "text": "call_on_enter(callable: )", "markers": { "1": "call_on_enter", "2": "Callable" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "call_on_exit(callable: <2/>)", "text": "call_on_exit(callable: )", "markers": { "1": "call_on_exit", "2": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "call_on_exit(callable: <2/>)", "text": "call_on_exit(callable: )", "markers": { "1": "call_on_exit", "2": "Callable" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "call_on_update(callable: <2/>)", "text": "call_on_update(callable: )", "markers": { "1": "call_on_update", "2": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "call_on_update(callable: <2/>)", "text": "call_on_update(callable: )", "markers": { "1": "call_on_update", "2": "Callable" } }, { "kind": "body", "tag": "td", "path": "", "html": "clear_guard()", "text": "clear_guard()", "markers": { "1": "clear_guard" } }, { "kind": "body", "tag": "p", "path": "", "html": "clear_guard()", "text": "clear_guard()", "markers": { "1": "clear_guard" } }, { "kind": "body", "tag": "td", "path": "", "html": "dispatch(event: <2/>, cargo: <3/> = null)", "text": "dispatch(event: , cargo: = null)", "markers": { "1": "dispatch", "2": "StringName", "3": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "dispatch(event: <2/>, cargo: <3/> = null)", "text": "dispatch(event: , cargo: = null)", "markers": { "1": "dispatch", "2": "StringName", "3": "Variant" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_root() <2/>", "text": "get_root() ", "markers": { "1": "get_root", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_root() <2/>", "text": "get_root() ", "markers": { "1": "get_root", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "is_active() <2/>", "text": "is_active() ", "markers": { "1": "is_active", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "is_active() <2/>", "text": "is_active() ", "markers": { "1": "is_active", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "named(name: <2/>)", "text": "named(name: )", "markers": { "1": "named", "2": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "named(name: <2/>)", "text": "named(name: )", "markers": { "1": "named", "2": "String" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_guard(guard_callable: <2/>)", "text": "set_guard(guard_callable: )", "markers": { "1": "set_guard", "2": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_guard(guard_callable: <2/>)", "text": "set_guard(guard_callable: )", "markers": { "1": "set_guard", "2": "Callable" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Signals", "text": "Signals", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "entered() 🔗", "text": "entered() 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the state is entered.", "text": "Emitted when the state is entered.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "exited() 🔗", "text": "exited() 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the state is exited.", "text": "Emitted when the state is exited.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "setup() 🔗", "text": "setup() 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the state is initialized.", "text": "Emitted when the state is initialized.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "updated(delta: <1/>) 🔗", "text": "updated(delta: ) 🔗", "markers": { "1": "float", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the state is updated.", "text": "Emitted when the state is updated.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> EVENT_FINISHED 🔗", "text": " EVENT_FINISHED 🔗", "markers": { "1": "StringName", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> event_finished()", "text": " event_finished()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "A commonly used event that indicates that the state has finished its work.", "text": "A commonly used event that indicates that the state has finished its work.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> agent 🔗", "text": " agent 🔗", "markers": { "1": "Node", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_agent(value: <2/>)", "text": " set_agent(value: )", "markers": { "1": "void", "2": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_agent()", "text": " get_agent()", "markers": { "1": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "An agent associated with the state, assigned during initialization.", "text": "An agent associated with the state, assigned during initialization.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard blackboard 🔗", "text": "Blackboard blackboard 🔗", "markers": { "1": "Blackboard", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard get_blackboard()", "text": "Blackboard get_blackboard()", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "A key/value data store shared by states within the state machine to which this state belongs.", "text": "A key/value data store shared by states within the state machine to which this state belongs.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan blackboard_plan 🔗", "text": "BlackboardPlan blackboard_plan 🔗", "markers": { "1": "BlackboardPlan", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_blackboard_plan(value: BlackboardPlan)", "text": " set_blackboard_plan(value: BlackboardPlan)", "markers": { "1": "void", "2": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan get_blackboard_plan()", "text": "BlackboardPlan get_blackboard_plan()", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "Stores and manages variables that will be used in constructing new Blackboard instances.", "text": "Stores and manages variables that will be used in constructing new Blackboard instances.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _enter() <2/> 🔗", "text": " _enter() 🔗", "markers": { "1": "void", "2": "virtual", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called when the state is entered.", "text": "Called when the state is entered.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _exit() <2/> 🔗", "text": " _exit() 🔗", "markers": { "1": "void", "2": "virtual", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called when the state is exited. This happens on a transition to another state, and when the state machine is removed from the scene tree (e.g., when the node is freed with Node.queue_free or the scene changes). Due to implementation details, _exit will not be called on Object.free!", "text": "Called when the state is exited. This happens on a transition to another state, and when the state machine is removed from the scene tree (e.g., when the node is freed with Node.queue_free or the scene changes). Due to implementation details, _exit will not be called on Object.free!", "markers": { "1": "_exit" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _setup() <2/> 🔗", "text": " _setup() 🔗", "markers": { "1": "void", "2": "virtual", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called once during initialization. Use this method to initialize your state.", "text": "Called once during initialization. Use this method to initialize your state.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> _update(delta: <2/>) <3/> 🔗", "text": " _update(delta: ) 🔗", "markers": { "1": "void", "2": "float", "3": "virtual", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Called during the update. Implement your state’s behavior with this method.", "text": "Called during the update. Implement your state’s behavior with this method.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> add_event_handler(event: <2/>, handler: <3/>) 🔗", "text": " add_event_handler(event: , handler: ) 🔗", "markers": { "1": "void", "2": "StringName", "3": "Callable", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Registers a <1/> to be called when <2/> is dispatched. The handler function should have the following signature:", "text": "Registers a to be called when is dispatched. The handler function should have the following signature:", "markers": { "1": "handler", "2": "event" } }, { "kind": "body", "tag": "p", "path": "", "html": "If the handler returns <1/>, the event will be consumed. Cargo is an optional parameter that can be passed to the handler. See also dispatch.", "text": "If the handler returns , the event will be consumed. Cargo is an optional parameter that can be passed to the handler. See also dispatch.", "markers": { "1": "true", "2": "dispatch" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState call_on_enter(callable: <2/>) 🔗", "text": "LimboState call_on_enter(callable: ) 🔗", "markers": { "1": "LimboState", "2": "Callable", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "A chained method that connects the entered signal to a <2/>.", "text": "A chained method that connects the entered signal to a .", "markers": { "1": "entered", "2": "callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState call_on_exit(callable: <2/>) 🔗", "text": "LimboState call_on_exit(callable: ) 🔗", "markers": { "1": "LimboState", "2": "Callable", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "A chained method that connects the exited signal to a <2/>.", "text": "A chained method that connects the exited signal to a .", "markers": { "1": "exited", "2": "callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState call_on_update(callable: <2/>) 🔗", "text": "LimboState call_on_update(callable: ) 🔗", "markers": { "1": "LimboState", "2": "Callable", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "A chained method that connects the updated signal to a <2/>.", "text": "A chained method that connects the updated signal to a .", "markers": { "1": "updated", "2": "callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> clear_guard() 🔗", "text": " clear_guard() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Clears the guard function, removing the <1/> previously set by set_guard.", "text": "Clears the guard function, removing the previously set by set_guard.", "markers": { "1": "Callable", "2": "set_guard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> dispatch(event: <2/>, cargo: <3/> = null) 🔗", "text": " dispatch(event: , cargo: = null) 🔗", "markers": { "1": "bool", "2": "StringName", "3": "Variant", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Recursively dispatches a state machine event named <1/> with an optional argument <2/>. Returns <3/> if the event was consumed.", "text": "Recursively dispatches a state machine event named with an optional argument . Returns if the event was consumed.", "markers": { "1": "event", "2": "cargo", "3": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "Events propagate from the leaf state to the root state, and propagation stops as soon as any state consumes the event. States will consume the event if they have a related transition or event handler. For more information on event handlers, see add_event_handler.", "text": "Events propagate from the leaf state to the root state, and propagation stops as soon as any state consumes the event. States will consume the event if they have a related transition or event handler. For more information on event handlers, see add_event_handler.", "markers": { "1": "add_event_handler" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState get_root() <2/> 🔗", "text": "LimboState get_root() 🔗", "markers": { "1": "LimboState", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the root LimboState.", "text": "Returns the root LimboState.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_active() <2/> 🔗", "text": " is_active() 🔗", "markers": { "1": "bool", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if it is currently active, meaning it is the active substate of the parent LimboHSM.", "text": "Returns if it is currently active, meaning it is the active substate of the parent LimboHSM.", "markers": { "1": "true", "2": "LimboHSM" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState named(name: <2/>) 🔗", "text": "LimboState named(name: ) 🔗", "markers": { "1": "LimboState", "2": "String", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "A chained method for setting the name of this state.", "text": "A chained method for setting the name of this state.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_guard(guard_callable: <2/>) 🔗", "text": " set_guard(guard_callable: ) 🔗", "markers": { "1": "void", "2": "Callable", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the guard function, which is a function called each time a transition to this state is considered. If the function returns <1/>, the transition will be disallowed.", "text": "Sets the guard function, which is a function called each time a transition to this state is considered. If the function returns , the transition will be disallowed.", "markers": { "1": "false" } }, { "kind": "body", "tag": "h3", "path": "", "html": "LimboHSM", "text": "LimboHSM", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: LimboState", "text": "Inherits: LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "Event-based Hierarchical State Machine (HSM).", "text": "Event-based Hierarchical State Machine (HSM).", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Event-based Hierarchical State Machine (HSM) that manages LimboState instances and facilitates transitions between them. LimboHSM is a LimboState in itself and can also serve as a child of another LimboHSM node.", "text": "Event-based Hierarchical State Machine (HSM) that manages LimboState instances and facilitates transitions between them. LimboHSM is a LimboState in itself and can also serve as a child of another LimboHSM node.", "markers": { "1": "LimboState", "2": "LimboState" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "ANYSTATE", "text": "ANYSTATE", "markers": { "1": "ANYSTATE" } }, { "kind": "body", "tag": "p", "path": "", "html": "ANYSTATE", "text": "ANYSTATE", "markers": { "1": "ANYSTATE" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "initial_state", "text": "initial_state", "markers": { "1": "initial_state" } }, { "kind": "body", "tag": "p", "path": "", "html": "initial_state", "text": "initial_state", "markers": { "1": "initial_state" } }, { "kind": "body", "tag": "td", "path": "", "html": "UpdateMode", "text": "UpdateMode", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode", "text": "UpdateMode", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "td", "path": "", "html": "update_mode", "text": "update_mode", "markers": { "1": "update_mode" } }, { "kind": "body", "tag": "p", "path": "", "html": "update_mode", "text": "update_mode", "markers": { "1": "update_mode" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "add_transition(from_state: LimboState, to_state: LimboState, event: <4/>, guard: <5/> = Callable())", "text": "add_transition(from_state: LimboState, to_state: LimboState, event: , guard: = Callable())", "markers": { "1": "add_transition", "2": "LimboState", "3": "LimboState", "4": "StringName", "5": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "add_transition(from_state: LimboState, to_state: LimboState, event: <4/>, guard: <5/> = Callable())", "text": "add_transition(from_state: LimboState, to_state: LimboState, event: , guard: = Callable())", "markers": { "1": "add_transition", "2": "LimboState", "3": "LimboState", "4": "StringName", "5": "Callable" } }, { "kind": "body", "tag": "td", "path": "", "html": "change_active_state(state: LimboState)", "text": "change_active_state(state: LimboState)", "markers": { "1": "change_active_state", "2": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "change_active_state(state: LimboState)", "text": "change_active_state(state: LimboState)", "markers": { "1": "change_active_state", "2": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_active_state() <2/>", "text": "get_active_state() ", "markers": { "1": "get_active_state", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_active_state() <2/>", "text": "get_active_state() ", "markers": { "1": "get_active_state", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_leaf_state() <2/>", "text": "get_leaf_state() ", "markers": { "1": "get_leaf_state", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_leaf_state() <2/>", "text": "get_leaf_state() ", "markers": { "1": "get_leaf_state", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState", "text": "LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_previous_active_state() <2/>", "text": "get_previous_active_state() ", "markers": { "1": "get_previous_active_state", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_previous_active_state() <2/>", "text": "get_previous_active_state() ", "markers": { "1": "get_previous_active_state", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "has_transition(from_state: LimboState, event: <3/>) <4/>", "text": "has_transition(from_state: LimboState, event: ) ", "markers": { "1": "has_transition", "2": "LimboState", "3": "StringName", "4": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "has_transition(from_state: LimboState, event: <3/>) <4/>", "text": "has_transition(from_state: LimboState, event: ) ", "markers": { "1": "has_transition", "2": "LimboState", "3": "StringName", "4": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "initialize(agent: <2/>, parent_scope: Blackboard = null)", "text": "initialize(agent: , parent_scope: Blackboard = null)", "markers": { "1": "initialize", "2": "Node", "3": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "initialize(agent: <2/>, parent_scope: Blackboard = null)", "text": "initialize(agent: , parent_scope: Blackboard = null)", "markers": { "1": "initialize", "2": "Node", "3": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "remove_transition(from_state: LimboState, event: <3/>)", "text": "remove_transition(from_state: LimboState, event: )", "markers": { "1": "remove_transition", "2": "LimboState", "3": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "remove_transition(from_state: LimboState, event: <3/>)", "text": "remove_transition(from_state: LimboState, event: )", "markers": { "1": "remove_transition", "2": "LimboState", "3": "StringName" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_active(active: <2/>)", "text": "set_active(active: )", "markers": { "1": "set_active", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_active(active: <2/>)", "text": "set_active(active: )", "markers": { "1": "set_active", "2": "bool" } }, { "kind": "body", "tag": "td", "path": "", "html": "update(delta: <2/>)", "text": "update(delta: )", "markers": { "1": "update", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "update(delta: <2/>)", "text": "update(delta: )", "markers": { "1": "update", "2": "float" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Signals", "text": "Signals", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "active_state_changed(current: LimboState, previous: LimboState) 🔗", "text": "active_state_changed(current: LimboState, previous: LimboState) 🔗", "markers": { "1": "LimboState", "2": "LimboState", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the currently active substate is switched to a different substate.", "text": "Emitted when the currently active substate is switched to a different substate.", "markers": {} }, { "kind": "body", "tag": "h4", "path": "", "html": "Enumerations", "text": "Enumerations", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum UpdateMode: 🔗", "text": "enum UpdateMode: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode IDLE = <2/>", "text": "UpdateMode IDLE = ", "markers": { "1": "UpdateMode", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "Update the state machine during the idle process.", "text": "Update the state machine during the idle process.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode PHYSICS = <2/>", "text": "UpdateMode PHYSICS = ", "markers": { "1": "UpdateMode", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "Update the state machine during the physics process.", "text": "Update the state machine during the physics process.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode MANUAL = <2/>", "text": "UpdateMode MANUAL = ", "markers": { "1": "UpdateMode", "2": "2" } }, { "kind": "body", "tag": "p", "path": "", "html": "Manually update the state machine by calling update from a script.", "text": "Manually update the state machine by calling update from a script.", "markers": { "1": "update" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState ANYSTATE 🔗", "text": "LimboState ANYSTATE 🔗", "markers": { "1": "LimboState", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState anystate()", "text": "LimboState anystate()", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "Useful for defining a transition from any state.", "text": "Useful for defining a transition from any state.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState initial_state 🔗", "text": "LimboState initial_state 🔗", "markers": { "1": "LimboState", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_initial_state(value: LimboState)", "text": " set_initial_state(value: LimboState)", "markers": { "1": "void", "2": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState get_initial_state()", "text": "LimboState get_initial_state()", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "The substate that becomes active when the state machine is activated using the set_active method. If not explicitly set, the first child of the LimboHSM will be considered the initial state.", "text": "The substate that becomes active when the state machine is activated using the set_active method. If not explicitly set, the first child of the LimboHSM will be considered the initial state.", "markers": { "1": "set_active" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode update_mode = <2/> 🔗", "text": "UpdateMode update_mode = 🔗", "markers": { "1": "UpdateMode", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_update_mode(value: UpdateMode)", "text": " set_update_mode(value: UpdateMode)", "markers": { "1": "void", "2": "UpdateMode" } }, { "kind": "body", "tag": "p", "path": "", "html": "UpdateMode get_update_mode()", "text": "UpdateMode get_update_mode()", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Specifies when the state machine should be updated. See UpdateMode.", "text": "Specifies when the state machine should be updated. See UpdateMode.", "markers": { "1": "UpdateMode" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> add_transition(from_state: LimboState, to_state: LimboState, event: <4/>, guard: <5/> = Callable()) 🔗", "text": " add_transition(from_state: LimboState, to_state: LimboState, event: , guard: = Callable()) 🔗", "markers": { "1": "void", "2": "LimboState", "3": "LimboState", "4": "StringName", "5": "Callable", "6": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Establishes a transition from one state to another when <1/> is dispatched. Both <2/> and <3/> must be immediate children of this LimboHSM.", "text": "Establishes a transition from one state to another when is dispatched. Both and must be immediate children of this LimboHSM.", "markers": { "1": "event", "2": "from_state", "3": "to_state" } }, { "kind": "body", "tag": "p", "path": "", "html": "Optionally, a <1/> function can be specified, which must return a boolean value. If the guard function returns <2/>, the transition will not occur. The guard function is called immediately before the transition is considered. For a state-wide guard function, check out LimboState.set_guard.", "text": "Optionally, a function can be specified, which must return a boolean value. If the guard function returns , the transition will not occur. The guard function is called immediately before the transition is considered. For a state-wide guard function, check out LimboState.set_guard.", "markers": { "1": "guard", "2": "false", "3": "LimboState.set_guard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> change_active_state(state: LimboState) 🔗", "text": " change_active_state(state: LimboState) 🔗", "markers": { "1": "void", "2": "LimboState", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Changes the currently active substate to <1/>. If <2/> is already active, it will be exited and reentered.", "text": "Changes the currently active substate to . If is already active, it will be exited and reentered.", "markers": { "1": "state", "2": "state" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> must be a child of this LimboHSM.", "text": " must be a child of this LimboHSM.", "markers": { "1": "state" } }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState get_active_state() <2/> 🔗", "text": "LimboState get_active_state() 🔗", "markers": { "1": "LimboState", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the currently active substate.", "text": "Returns the currently active substate.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState get_leaf_state() <2/> 🔗", "text": "LimboState get_leaf_state() 🔗", "markers": { "1": "LimboState", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the currently active leaf state within the state machine.", "text": "Returns the currently active leaf state within the state machine.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "LimboState get_previous_active_state() <2/> 🔗", "text": "LimboState get_previous_active_state() 🔗", "markers": { "1": "LimboState", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the previously active substate.", "text": "Returns the previously active substate.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> has_transition(from_state: LimboState, event: <3/>) <4/> 🔗", "text": " has_transition(from_state: LimboState, event: ) 🔗", "markers": { "1": "bool", "2": "LimboState", "3": "StringName", "4": "const", "5": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if there is a transition from <2/> for a given <3/>.", "text": "Returns if there is a transition from for a given .", "markers": { "1": "true", "2": "from_state", "3": "event" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> initialize(agent: <2/>, parent_scope: Blackboard = null) 🔗", "text": " initialize(agent: , parent_scope: Blackboard = null) 🔗", "markers": { "1": "void", "2": "Node", "3": "Blackboard", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Initiates the state and calls LimboState._setup for both itself and all substates.", "text": "Initiates the state and calls LimboState._setup for both itself and all substates.", "markers": { "1": "LimboState._setup" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> remove_transition(from_state: LimboState, event: <3/>) 🔗", "text": " remove_transition(from_state: LimboState, event: ) 🔗", "markers": { "1": "void", "2": "LimboState", "3": "StringName", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Removes a transition from a state associated with specific <1/>.", "text": "Removes a transition from a state associated with specific .", "markers": { "1": "event" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_active(active: <2/>) 🔗", "text": " set_active(active: ) 🔗", "markers": { "1": "void", "2": "bool", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "When set to <1/>, switches the state to initial_state and activates state processing according to update_mode.", "text": "When set to , switches the state to initial_state and activates state processing according to update_mode.", "markers": { "1": "true", "2": "initial_state", "3": "update_mode" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> update(delta: <2/>) 🔗", "text": " update(delta: ) 🔗", "markers": { "1": "void", "2": "float", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Calls LimboState._update on itself and the active substate, with the call cascading down to the leaf state. This method is automatically triggered if update_mode is not set to MANUAL.", "text": "Calls LimboState._update on itself and the active substate, with the call cascading down to the leaf state. This method is automatically triggered if update_mode is not set to MANUAL.", "markers": { "1": "LimboState._update", "2": "update_mode", "3": "MANUAL" } }, { "kind": "body", "tag": "h3", "path": "", "html": "BTState", "text": "BTState", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: LimboState", "text": "Inherits: LimboState", "markers": { "1": "LimboState" } }, { "kind": "body", "tag": "p", "path": "", "html": "A state node for LimboHSM that hosts a BehaviorTree.", "text": "A state node for LimboHSM that hosts a BehaviorTree.", "markers": { "1": "LimboHSM", "2": "BehaviorTree" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTState is a LimboState node that manages a BehaviorTree to provide behavior logic for the state. It instantiates and runs the BehaviorTree resource, dispatching a state machine event upon <4/> or <5/>. Event names are customizable through success_event and failure_event. For further details on state machine events, see LimboState.dispatch.", "text": "BTState is a LimboState node that manages a BehaviorTree to provide behavior logic for the state. It instantiates and runs the BehaviorTree resource, dispatching a state machine event upon or . Event names are customizable through success_event and failure_event. For further details on state machine events, see LimboState.dispatch.", "markers": { "1": "LimboState", "2": "BehaviorTree", "3": "BehaviorTree", "4": "SUCCESS", "5": "FAILURE", "6": "success_event", "7": "failure_event", "8": "LimboState.dispatch" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "td", "path": "", "html": "behavior_tree", "text": "behavior_tree", "markers": { "1": "behavior_tree" } }, { "kind": "body", "tag": "p", "path": "", "html": "behavior_tree", "text": "behavior_tree", "markers": { "1": "behavior_tree" } }, { "kind": "body", "tag": "td", "path": "", "html": "failure_event", "text": "failure_event", "markers": { "1": "failure_event" } }, { "kind": "body", "tag": "p", "path": "", "html": "failure_event", "text": "failure_event", "markers": { "1": "failure_event" } }, { "kind": "body", "tag": "td", "path": "", "html": "monitor_performance", "text": "monitor_performance", "markers": { "1": "monitor_performance" } }, { "kind": "body", "tag": "p", "path": "", "html": "monitor_performance", "text": "monitor_performance", "markers": { "1": "monitor_performance" } }, { "kind": "body", "tag": "td", "path": "", "html": "success_event", "text": "success_event", "markers": { "1": "success_event" } }, { "kind": "body", "tag": "p", "path": "", "html": "success_event", "text": "success_event", "markers": { "1": "success_event" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": { "1": "BTInstance" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": { "1": "BTInstance" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_bt_instance() <2/>", "text": "get_bt_instance() ", "markers": { "1": "get_bt_instance", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_bt_instance() <2/>", "text": "get_bt_instance() ", "markers": { "1": "get_bt_instance", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_scene_root_hint(scene_root: <2/>)", "text": "set_scene_root_hint(scene_root: )", "markers": { "1": "set_scene_root_hint", "2": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_scene_root_hint(scene_root: <2/>)", "text": "set_scene_root_hint(scene_root: )", "markers": { "1": "set_scene_root_hint", "2": "Node" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree behavior_tree 🔗", "text": "BehaviorTree behavior_tree 🔗", "markers": { "1": "BehaviorTree", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_behavior_tree(value: BehaviorTree)", "text": " set_behavior_tree(value: BehaviorTree)", "markers": { "1": "void", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree get_behavior_tree()", "text": "BehaviorTree get_behavior_tree()", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "A BehaviorTree resource that defines state behavior.", "text": "A BehaviorTree resource that defines state behavior.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> failure_event = <2/> 🔗", "text": " failure_event = 🔗", "markers": { "1": "StringName", "2": "&\"failure\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_failure_event(value: <2/>)", "text": " set_failure_event(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_failure_event()", "text": " get_failure_event()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "HSM event that will be dispatched when the behavior tree results in <1/>. See LimboState.dispatch.", "text": "HSM event that will be dispatched when the behavior tree results in . See LimboState.dispatch.", "markers": { "1": "FAILURE", "2": "LimboState.dispatch" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> monitor_performance = <2/> 🔗", "text": " monitor_performance = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_monitor_performance(value: <2/>)", "text": " set_monitor_performance(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_monitor_performance()", "text": " get_monitor_performance()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, adds a performance monitor to “Debugger->Monitors” for each instance of this BTState node.", "text": "If , adds a performance monitor to “Debugger->Monitors” for each instance of this BTState node.", "markers": { "1": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> success_event = <2/> 🔗", "text": " success_event = 🔗", "markers": { "1": "StringName", "2": "&\"success\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_success_event(value: <2/>)", "text": " set_success_event(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_success_event()", "text": " get_success_event()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "HSM event that will be dispatched when the behavior tree results in <1/>. See LimboState.dispatch.", "text": "HSM event that will be dispatched when the behavior tree results in . See LimboState.dispatch.", "markers": { "1": "SUCCESS", "2": "LimboState.dispatch" } }, { "kind": "body", "tag": "h4", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTInstance get_bt_instance() <2/> 🔗", "text": "BTInstance get_bt_instance() 🔗", "markers": { "1": "BTInstance", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the behavior tree instance.", "text": "Returns the behavior tree instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_scene_root_hint(scene_root: <2/>) 🔗", "text": " set_scene_root_hint(scene_root: ) 🔗", "markers": { "1": "void", "2": "Node", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the <1/> that will be used as the scene root for the newly instantiated behavior tree. Should be called before the state machine is initialized. This is typically useful when creating BTState nodes dynamically from code.", "text": "Sets the that will be used as the scene root for the newly instantiated behavior tree. Should be called before the state machine is initialized. This is typically useful when creating BTState nodes dynamically from code.", "markers": { "1": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "Full class reference is available in the side bar.", "text": "Full class reference is available in the side bar.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BBAabb", "text": "BBAabb", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "AABB-type parameter for BehaviorTree tasks. See BBParam.", "text": "AABB-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBArray", "text": "BBArray", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBBasis", "text": "BBBasis", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Basis-type parameter for BehaviorTree tasks. See BBParam.", "text": "Basis-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBBool", "text": "BBBool", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Bool-type parameter for BehaviorTree tasks. See BBParam.", "text": "Bool-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBByteArray", "text": "BBByteArray", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "ByteArray-type parameter for BehaviorTree tasks. See BBParam.", "text": "ByteArray-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBColor", "text": "BBColor", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Color-type parameter for BehaviorTree tasks. See BBParam.", "text": "Color-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBColorArray", "text": "BBColorArray", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "ColorArray-type parameter for BehaviorTree tasks. See BBParam.", "text": "ColorArray-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBDictionary", "text": "BBDictionary", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Dictionary-type parameter for BehaviorTree tasks. See BBParam.", "text": "Dictionary-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBFloat", "text": "BBFloat", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Float-type parameter for BehaviorTree tasks. See BBParam.", "text": "Float-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBFloat32Array", "text": "BBFloat32Array", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "PackedFloat32Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "PackedFloat32Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBFloat64Array", "text": "BBFloat64Array", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "PackedFloat64Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "PackedFloat64Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBInt", "text": "BBInt", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Integer-type parameter for BehaviorTree tasks. See BBParam.", "text": "Integer-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBInt32Array", "text": "BBInt32Array", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "PackedInt32Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "PackedInt32Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBInt64Array", "text": "BBInt64Array", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "PackedInt64Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "PackedInt64Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBNode", "text": "BBNode", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Node-type parameter for BehaviorTree tasks. See BBParam.", "text": "Node-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Node-type parameter intended for use with BehaviorTree tasks. See BBParam.", "text": "Node-type parameter intended for use with BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "If the source is a blackboard variable, it allows any type extended from <1/>.", "text": "If the source is a blackboard variable, it allows any type extended from .", "markers": { "1": "Object" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBPlane", "text": "BBPlane", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Plane-type parameter for BehaviorTree tasks. See BBParam.", "text": "Plane-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBProjection", "text": "BBProjection", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Projection-type parameter for BehaviorTree tasks. See BBParam.", "text": "Projection-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBQuaternion", "text": "BBQuaternion", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Quaternion-type parameter for BehaviorTree tasks. See BBParam.", "text": "Quaternion-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBRect2", "text": "BBRect2", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Rect2-type parameter for BehaviorTree tasks. See BBParam.", "text": "Rect2-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBRect2i", "text": "BBRect2i", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Rect2i-type parameter for BehaviorTree tasks. See BBParam.", "text": "Rect2i-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBString", "text": "BBString", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "String-type parameter for BehaviorTree tasks. See BBParam.", "text": "String-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBStringArray", "text": "BBStringArray", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "StringArray-type parameter for BehaviorTree tasks. See BBParam.", "text": "StringArray-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBStringName", "text": "BBStringName", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "StringName-type parameter for BehaviorTree tasks. See BBParam.", "text": "StringName-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBTransform2D", "text": "BBTransform2D", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Transform2D-type parameter for BehaviorTree tasks. See BBParam.", "text": "Transform2D-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBTransform3D", "text": "BBTransform3D", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Transform3D-type parameter for BehaviorTree tasks. See BBParam.", "text": "Transform3D-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Variant-type parameter for BehaviorTree tasks. See BBParam.", "text": "Variant-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Variant-type parameter intended for use with BehaviorTree tasks. See BBParam.", "text": "Variant-type parameter intended for use with BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "The data type is specified by type.", "text": "The data type is specified by type.", "markers": { "1": "type" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Variant.Type", "text": "Variant.Type", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Variant.Type", "text": "Variant.Type", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "type", "text": "type", "markers": { "1": "type" } }, { "kind": "body", "tag": "p", "path": "", "html": "type", "text": "type", "markers": { "1": "type" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Variant.Type type = <1/> 🔗", "text": "Variant.Type type = 🔗", "markers": { "1": "0", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_type(value: Variant.Type)", "text": " set_type(value: Variant.Type)", "markers": { "1": "void" } }, { "kind": "body", "tag": "p", "path": "", "html": "Variant.Type get_type()", "text": "Variant.Type get_type()", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Specified Variant.Type for the parameter value.", "text": "Specified Variant.Type for the parameter value.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector2", "text": "BBVector2", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector2-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector2-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector2Array", "text": "BBVector2Array", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector2Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector2Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector2i", "text": "BBVector2i", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector2i-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector2i-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector3", "text": "BBVector3", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector3-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector3-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector3Array", "text": "BBVector3Array", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector3Array-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector3Array-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector3i", "text": "BBVector3i", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector3i-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector3i-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector4", "text": "BBVector4", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector4-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector4-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BBVector4i", "text": "BBVector4i", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BBParam", "text": "Inherits: BBParam", "markers": { "1": "BBParam" } }, { "kind": "body", "tag": "p", "path": "", "html": "Vector4i-type parameter for BehaviorTree tasks. See BBParam.", "text": "Vector4i-type parameter for BehaviorTree tasks. See BBParam.", "markers": { "1": "BehaviorTree", "2": "BBParam" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Contains Behavior Tree data.", "text": "Contains Behavior Tree data.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees are hierarchical structures used to model and control the behavior of agents in a game (e.g., characters, enemies, entities). They are designed to make it easier to create complex and highly modular behaviors for your games.", "text": "Behavior Trees are hierarchical structures used to model and control the behavior of agents in a game (e.g., characters, enemies, entities). They are designed to make it easier to create complex and highly modular behaviors for your games.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees are composed of tasks that represent specific actions or decision-making rules. Tasks can be broadly categorized into two main types: control tasks and leaf tasks. Control tasks determine the execution flow within the tree. They include BTSequence, BTSelector, and BTInvert. Leaf tasks represent specific actions to perform, like moving or attacking, or conditions that need to be checked. The BTTask class provides the foundation for various building blocks of the Behavior Trees. BT tasks can share data with the help of Blackboard. See BTTask.blackboard and Blackboard.", "text": "Behavior Trees are composed of tasks that represent specific actions or decision-making rules. Tasks can be broadly categorized into two main types: control tasks and leaf tasks. Control tasks determine the execution flow within the tree. They include BTSequence, BTSelector, and BTInvert. Leaf tasks represent specific actions to perform, like moving or attacking, or conditions that need to be checked. The BTTask class provides the foundation for various building blocks of the Behavior Trees. BT tasks can share data with the help of Blackboard. See BTTask.blackboard and Blackboard.", "markers": { "1": "BTSequence", "2": "BTSelector", "3": "BTInvert", "4": "BTTask", "5": "Blackboard", "6": "BTTask.blackboard", "7": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note: To create your own actions, extend the BTAction class.", "text": "Note: To create your own actions, extend the BTAction class.", "markers": { "1": "BTAction" } }, { "kind": "body", "tag": "p", "path": "", "html": "The BehaviorTree is executed from the root task and follows the rules specified by the control tasks, all the way down to the leaf tasks, which represent the actual actions that the agent should perform or conditions that should be checked. Each task returns a status when it is executed. It can be <1/>, <2/>, or <3/>. These statuses determine how the tree progresses. They are defined in Status.", "text": "The BehaviorTree is executed from the root task and follows the rules specified by the control tasks, all the way down to the leaf tasks, which represent the actual actions that the agent should perform or conditions that should be checked. Each task returns a status when it is executed. It can be , , or . These statuses determine how the tree progresses. They are defined in Status.", "markers": { "1": "SUCCESS", "2": "RUNNING", "3": "FAILURE", "4": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior Trees handle conditional logic using condition tasks. These tasks check for specific conditions and return either <1/> or <2/> based on the state of the agent or its environment (e.g., “IsLowOnHealth”, “IsTargetInSight”). Conditions can be used together with BTSequence and BTSelector to craft your decision-making logic.", "text": "Behavior Trees handle conditional logic using condition tasks. These tasks check for specific conditions and return either or based on the state of the agent or its environment (e.g., “IsLowOnHealth”, “IsTargetInSight”). Conditions can be used together with BTSequence and BTSelector to craft your decision-making logic.", "markers": { "1": "SUCCESS", "2": "FAILURE", "3": "BTSequence", "4": "BTSelector" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note: To create your own conditions, extend the BTCondition class.", "text": "Note: To create your own conditions, extend the BTCondition class.", "markers": { "1": "BTCondition" } }, { "kind": "body", "tag": "p", "path": "", "html": "Check out the BTTask class, which provides the foundation for various building blocks of Behavior Trees.", "text": "Check out the BTTask class, which provides the foundation for various building blocks of Behavior Trees.", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "td", "path": "", "html": "description", "text": "description", "markers": { "1": "description" } }, { "kind": "body", "tag": "p", "path": "", "html": "description", "text": "description", "markers": { "1": "description" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "td", "path": "", "html": "clone() <2/>", "text": "clone() ", "markers": { "1": "clone", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "clone() <2/>", "text": "clone() ", "markers": { "1": "clone", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "copy_other(other: BehaviorTree)", "text": "copy_other(other: BehaviorTree)", "markers": { "1": "copy_other", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "copy_other(other: BehaviorTree)", "text": "copy_other(other: BehaviorTree)", "markers": { "1": "copy_other", "2": "BehaviorTree" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_root_task() <2/>", "text": "get_root_task() ", "markers": { "1": "get_root_task", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_root_task() <2/>", "text": "get_root_task() ", "markers": { "1": "get_root_task", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": { "1": "BTInstance" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": { "1": "BTInstance" } }, { "kind": "body", "tag": "td", "path": "", "html": "instantiate(agent: <2/>, blackboard: Blackboard, instance_owner: <4/>, custom_scene_root: <5/> = null) <6/>", "text": "instantiate(agent: , blackboard: Blackboard, instance_owner: , custom_scene_root: = null) ", "markers": { "1": "instantiate", "2": "Node", "3": "Blackboard", "4": "Node", "5": "Node", "6": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "instantiate(agent: <2/>, blackboard: Blackboard, instance_owner: <4/>, custom_scene_root: <5/> = null) <6/>", "text": "instantiate(agent: , blackboard: Blackboard, instance_owner: , custom_scene_root: = null) ", "markers": { "1": "instantiate", "2": "Node", "3": "Blackboard", "4": "Node", "5": "Node", "6": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_root_task(task: BTTask)", "text": "set_root_task(task: BTTask)", "markers": { "1": "set_root_task", "2": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_root_task(task: BTTask)", "text": "set_root_task(task: BTTask)", "markers": { "1": "set_root_task", "2": "BTTask" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Signals", "text": "Signals", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "plan_changed() 🔗", "text": "plan_changed() 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the BlackboardPlan changes.", "text": "Emitted when the BlackboardPlan changes.", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan blackboard_plan 🔗", "text": "BlackboardPlan blackboard_plan 🔗", "markers": { "1": "BlackboardPlan", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_blackboard_plan(value: BlackboardPlan)", "text": " set_blackboard_plan(value: BlackboardPlan)", "markers": { "1": "void", "2": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan get_blackboard_plan()", "text": "BlackboardPlan get_blackboard_plan()", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "Stores and manages variables that will be used in constructing new Blackboard instances.", "text": "Stores and manages variables that will be used in constructing new Blackboard instances.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> description = <2/> 🔗", "text": " description = 🔗", "markers": { "1": "String", "2": "\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_description(value: <2/>)", "text": " set_description(value: )", "markers": { "1": "void", "2": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_description()", "text": " get_description()", "markers": { "1": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "User-provided description of the BehaviorTree.", "text": "User-provided description of the BehaviorTree.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree clone() <2/> 🔗", "text": "BehaviorTree clone() 🔗", "markers": { "1": "BehaviorTree", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Makes a copy of the BehaviorTree resource.", "text": "Makes a copy of the BehaviorTree resource.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> copy_other(other: BehaviorTree) 🔗", "text": " copy_other(other: BehaviorTree) 🔗", "markers": { "1": "void", "2": "BehaviorTree", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Become a copy of another behavior tree.", "text": "Become a copy of another behavior tree.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask get_root_task() <2/> 🔗", "text": "BTTask get_root_task() 🔗", "markers": { "1": "BTTask", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the root task of the BehaviorTree resource.", "text": "Returns the root task of the BehaviorTree resource.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTInstance instantiate(agent: <2/>, blackboard: Blackboard, instance_owner: <4/>, custom_scene_root: <5/> = null) <6/> 🔗", "text": "BTInstance instantiate(agent: , blackboard: Blackboard, instance_owner: , custom_scene_root: = null) 🔗", "markers": { "1": "BTInstance", "2": "Node", "3": "Blackboard", "4": "Node", "5": "Node", "6": "const", "7": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Instantiates the behavior tree and returns BTInstance. <2/> should be the scene node that will own the behavior tree instance. This is typically a BTPlayer, BTState, or a custom player node that controls the behavior tree execution. Make sure to pass a Blackboard with values populated from blackboard_plan. See also BlackboardPlan.populate_blackboard & BlackboardPlan.create_blackboard.", "text": "Instantiates the behavior tree and returns BTInstance. should be the scene node that will own the behavior tree instance. This is typically a BTPlayer, BTState, or a custom player node that controls the behavior tree execution. Make sure to pass a Blackboard with values populated from blackboard_plan. See also BlackboardPlan.populate_blackboard & BlackboardPlan.create_blackboard.", "markers": { "1": "BTInstance", "2": "instance_owner", "3": "BTPlayer", "4": "BTState", "5": "Blackboard", "6": "blackboard_plan", "7": "BlackboardPlan.populate_blackboard", "8": "BlackboardPlan.create_blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/> is not <2/>, it will be used as the scene root for the newly instantiated behavior tree; otherwise, the scene root will be set to <3/>. Scene root is essential for BBNode instances to work properly.", "text": "If is not , it will be used as the scene root for the newly instantiated behavior tree; otherwise, the scene root will be set to . Scene root is essential for BBNode instances to work properly.", "markers": { "1": "custom_scene_root", "2": "null", "3": "instance_owner.owner", "4": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_root_task(task: BTTask) 🔗", "text": " set_root_task(task: BTTask) 🔗", "markers": { "1": "void", "2": "BTTask", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Assigns a new root task to the BehaviorTree resource.", "text": "Assigns a new root task to the BehaviorTree resource.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BehaviorTreeData", "text": "BehaviorTreeData", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Represents current state of a BehaviorTree instance.", "text": "Represents current state of a BehaviorTree instance.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "This class is used by the LimboAI debugger for the serialization and deserialization of BehaviorTree instance data.", "text": "This class is used by the LimboAI debugger for the serialization and deserialization of BehaviorTree instance data.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Additionally, it can be used with BehaviorTreeView to visualize the current state of a BehaviorTree instance. It is meant to be utilized in custom in-game tools.", "text": "Additionally, it can be used with BehaviorTreeView to visualize the current state of a BehaviorTree instance. It is meant to be utilized in custom in-game tools.", "markers": { "1": "BehaviorTreeView", "2": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BehaviorTreeData", "text": "BehaviorTreeData", "markers": { "1": "BehaviorTreeData" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTreeData", "text": "BehaviorTreeData", "markers": { "1": "BehaviorTreeData" } }, { "kind": "body", "tag": "td", "path": "", "html": "create_from_bt_instance(bt_instance: BTInstance) <3/>", "text": "create_from_bt_instance(bt_instance: BTInstance) ", "markers": { "1": "create_from_bt_instance", "2": "BTInstance", "3": "static" } }, { "kind": "body", "tag": "p", "path": "", "html": "create_from_bt_instance(bt_instance: BTInstance) <3/>", "text": "create_from_bt_instance(bt_instance: BTInstance) ", "markers": { "1": "create_from_bt_instance", "2": "BTInstance", "3": "static" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTreeData create_from_bt_instance(bt_instance: BTInstance) <3/> 🔗", "text": "BehaviorTreeData create_from_bt_instance(bt_instance: BTInstance) 🔗", "markers": { "1": "BehaviorTreeData", "2": "BTInstance", "3": "static", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns current state of the <1/> encoded as a BehaviorTreeData, suitable for use with BehaviorTreeView.", "text": "Returns current state of the encoded as a BehaviorTreeData, suitable for use with BehaviorTreeView.", "markers": { "1": "bt_instance", "2": "BehaviorTreeView" } }, { "kind": "body", "tag": "p", "path": "", "html": "Behavior tree instance can be acquired with BTPlayer.get_bt_instance.", "text": "Behavior tree instance can be acquired with BTPlayer.get_bt_instance.", "markers": { "1": "BTPlayer.get_bt_instance" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BehaviorTreeView", "text": "BehaviorTreeView", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Visualizes the current state of a BehaviorTree instance.", "text": "Visualizes the current state of a BehaviorTree instance.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Visualizes the current state of a BehaviorTree instance. See also BehaviorTreeData.", "text": "Visualizes the current state of a BehaviorTree instance. See also BehaviorTreeData.", "markers": { "1": "BehaviorTree", "2": "BehaviorTreeData" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "update_interval_msec", "text": "update_interval_msec", "markers": { "1": "update_interval_msec" } }, { "kind": "body", "tag": "p", "path": "", "html": "update_interval_msec", "text": "update_interval_msec", "markers": { "1": "update_interval_msec" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "clear()", "text": "clear()", "markers": { "1": "clear" } }, { "kind": "body", "tag": "p", "path": "", "html": "clear()", "text": "clear()", "markers": { "1": "clear" } }, { "kind": "body", "tag": "td", "path": "", "html": "update_tree(behavior_tree_data: BehaviorTreeData)", "text": "update_tree(behavior_tree_data: BehaviorTreeData)", "markers": { "1": "update_tree", "2": "BehaviorTreeData" } }, { "kind": "body", "tag": "p", "path": "", "html": "update_tree(behavior_tree_data: BehaviorTreeData)", "text": "update_tree(behavior_tree_data: BehaviorTreeData)", "markers": { "1": "update_tree", "2": "BehaviorTreeData" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Signals", "text": "Signals", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "task_selected(type_name: <1/>, script_path: <2/>) 🔗", "text": "task_selected(type_name: , script_path: ) 🔗", "markers": { "1": "String", "2": "String", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when a task item is selected in BehaviorTreeView.", "text": "Emitted when a task item is selected in BehaviorTreeView.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> update_interval_msec = <2/> 🔗", "text": " update_interval_msec = 🔗", "markers": { "1": "int", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_update_interval_msec(value: <2/>)", "text": " set_update_interval_msec(value: )", "markers": { "1": "void", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_update_interval_msec()", "text": " get_update_interval_msec()", "markers": { "1": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "Minimum delay between two updates (in milliseconds). Set to higher values for a lower CPU load.", "text": "Minimum delay between two updates (in milliseconds). Set to higher values for a lower CPU load.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> clear() 🔗", "text": " clear() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Clears the tree view.", "text": "Clears the tree view.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> update_tree(behavior_tree_data: BehaviorTreeData) 🔗", "text": " update_tree(behavior_tree_data: BehaviorTreeData) 🔗", "markers": { "1": "void", "2": "BehaviorTreeData", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Updates the representation of a BehaviorTree instance. See also BehaviorTreeData.", "text": "Updates the representation of a BehaviorTree instance. See also BehaviorTreeData.", "markers": { "1": "BehaviorTree", "2": "BehaviorTreeData" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Stores and manages variables that will be used in constructing new Blackboard instances.", "text": "Stores and manages variables that will be used in constructing new Blackboard instances.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "prefetch_nodepath_vars", "text": "prefetch_nodepath_vars", "markers": { "1": "prefetch_nodepath_vars" } }, { "kind": "body", "tag": "p", "path": "", "html": "prefetch_nodepath_vars", "text": "prefetch_nodepath_vars", "markers": { "1": "prefetch_nodepath_vars" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "create_blackboard(prefetch_root: <2/>, parent_scope: Blackboard = null, prefetch_root_for_base_plan: <4/> = null)", "text": "create_blackboard(prefetch_root: , parent_scope: Blackboard = null, prefetch_root_for_base_plan: = null)", "markers": { "1": "create_blackboard", "2": "Node", "3": "Blackboard", "4": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "create_blackboard(prefetch_root: <2/>, parent_scope: Blackboard = null, prefetch_root_for_base_plan: <4/> = null)", "text": "create_blackboard(prefetch_root: , parent_scope: Blackboard = null, prefetch_root_for_base_plan: = null)", "markers": { "1": "create_blackboard", "2": "Node", "3": "Blackboard", "4": "Node" } }, { "kind": "body", "tag": "td", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_base_plan() <2/>", "text": "get_base_plan() ", "markers": { "1": "get_base_plan", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_base_plan() <2/>", "text": "get_base_plan() ", "markers": { "1": "get_base_plan", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_parent_scope_plan_provider() <2/>", "text": "get_parent_scope_plan_provider() ", "markers": { "1": "get_parent_scope_plan_provider", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_parent_scope_plan_provider() <2/>", "text": "get_parent_scope_plan_provider() ", "markers": { "1": "get_parent_scope_plan_provider", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "is_derived() <2/>", "text": "is_derived() ", "markers": { "1": "is_derived", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "is_derived() <2/>", "text": "is_derived() ", "markers": { "1": "is_derived", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "populate_blackboard(blackboard: Blackboard, overwrite: <3/>, prefetch_root: <4/>, prefetch_root_for_base_plan: <5/> = null)", "text": "populate_blackboard(blackboard: Blackboard, overwrite: , prefetch_root: , prefetch_root_for_base_plan: = null)", "markers": { "1": "populate_blackboard", "2": "Blackboard", "3": "bool", "4": "Node", "5": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "populate_blackboard(blackboard: Blackboard, overwrite: <3/>, prefetch_root: <4/>, prefetch_root_for_base_plan: <5/> = null)", "text": "populate_blackboard(blackboard: Blackboard, overwrite: , prefetch_root: , prefetch_root_for_base_plan: = null)", "markers": { "1": "populate_blackboard", "2": "Blackboard", "3": "bool", "4": "Node", "5": "Node" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_base_plan(blackboard_plan: BlackboardPlan)", "text": "set_base_plan(blackboard_plan: BlackboardPlan)", "markers": { "1": "set_base_plan", "2": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_base_plan(blackboard_plan: BlackboardPlan)", "text": "set_base_plan(blackboard_plan: BlackboardPlan)", "markers": { "1": "set_base_plan", "2": "BlackboardPlan" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_parent_scope_plan_provider(callable: <2/>)", "text": "set_parent_scope_plan_provider(callable: )", "markers": { "1": "set_parent_scope_plan_provider", "2": "Callable" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_parent_scope_plan_provider(callable: <2/>)", "text": "set_parent_scope_plan_provider(callable: )", "markers": { "1": "set_parent_scope_plan_provider", "2": "Callable" } }, { "kind": "body", "tag": "td", "path": "", "html": "sync_with_base_plan()", "text": "sync_with_base_plan()", "markers": { "1": "sync_with_base_plan" } }, { "kind": "body", "tag": "p", "path": "", "html": "sync_with_base_plan()", "text": "sync_with_base_plan()", "markers": { "1": "sync_with_base_plan" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> prefetch_nodepath_vars = <2/> 🔗", "text": " prefetch_nodepath_vars = 🔗", "markers": { "1": "bool", "2": "true", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_prefetch_nodepath_vars(value: <2/>)", "text": " set_prefetch_nodepath_vars(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_prefetching_nodepath_vars()", "text": " is_prefetching_nodepath_vars()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "Enables or disables <1/> variable prefetching. If <2/>, <3/> values will be replaced with node instances when the Blackboard is created.", "text": "Enables or disables variable prefetching. If , values will be replaced with node instances when the Blackboard is created.", "markers": { "1": "NodePath", "2": "true", "3": "NodePath", "4": "Blackboard" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard create_blackboard(prefetch_root: <2/>, parent_scope: Blackboard = null, prefetch_root_for_base_plan: <4/> = null) 🔗", "text": "Blackboard create_blackboard(prefetch_root: , parent_scope: Blackboard = null, prefetch_root_for_base_plan: = null) 🔗", "markers": { "1": "Blackboard", "2": "Node", "3": "Blackboard", "4": "Node", "5": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Constructs a new instance of a Blackboard using this plan. If <2/> prefetching is enabled, <3/> will be used to retrieve node instances for <4/> variables and substitute their values.", "text": "Constructs a new instance of a Blackboard using this plan. If prefetching is enabled, will be used to retrieve node instances for variables and substitute their values.", "markers": { "1": "Blackboard", "2": "NodePath", "3": "prefetch_root", "4": "NodePath" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan get_base_plan() <2/> 🔗", "text": "BlackboardPlan get_base_plan() 🔗", "markers": { "1": "BlackboardPlan", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the base plan. See is_derived.", "text": "Returns the base plan. See is_derived.", "markers": { "1": "is_derived" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_parent_scope_plan_provider() <2/> 🔗", "text": " get_parent_scope_plan_provider() 🔗", "markers": { "1": "Callable", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the parent scope plan provider - a callable that returns a BlackboardPlan.", "text": "Returns the parent scope plan provider - a callable that returns a BlackboardPlan.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_derived() <2/> 🔗", "text": " is_derived() 🔗", "markers": { "1": "bool", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if this plan is derived from another, i.e., the base plan is not <2/>. A derived plan can only contain variables that are present in the base plan, and only variable values can be different.", "text": "Returns if this plan is derived from another, i.e., the base plan is not . A derived plan can only contain variables that are present in the base plan, and only variable values can be different.", "markers": { "1": "true", "2": "null" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> populate_blackboard(blackboard: Blackboard, overwrite: <3/>, prefetch_root: <4/>, prefetch_root_for_base_plan: <5/> = null) 🔗", "text": " populate_blackboard(blackboard: Blackboard, overwrite: , prefetch_root: , prefetch_root_for_base_plan: = null) 🔗", "markers": { "1": "void", "2": "Blackboard", "3": "bool", "4": "Node", "5": "Node", "6": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Populates <1/> with the variables from this plan. If <2/> is <3/>, existing variables with the same names will be overwritten. If <4/> prefetching is enabled, <5/> will be used to retrieve node instances for <6/> variables and substitute their values.", "text": "Populates with the variables from this plan. If is , existing variables with the same names will be overwritten. If prefetching is enabled, will be used to retrieve node instances for variables and substitute their values.", "markers": { "1": "blackboard", "2": "overwrite", "3": "true", "4": "NodePath", "5": "prefetch_root", "6": "NodePath" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_base_plan(blackboard_plan: BlackboardPlan) 🔗", "text": " set_base_plan(blackboard_plan: BlackboardPlan) 🔗", "markers": { "1": "void", "2": "BlackboardPlan", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the base plan. If assigned, this plan will be derived from the base plan.", "text": "Sets the base plan. If assigned, this plan will be derived from the base plan.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Use with caution, as it will remove variables not present in the base plan. Only use this for custom tooling.", "text": "Use with caution, as it will remove variables not present in the base plan. Only use this for custom tooling.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_parent_scope_plan_provider(callable: <2/>) 🔗", "text": " set_parent_scope_plan_provider(callable: ) 🔗", "markers": { "1": "void", "2": "Callable", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the parent scope plan provider - a callable that returns a BlackboardPlan. Used to provide hints in the inspector. When set, mapping feature becomes available.", "text": "Sets the parent scope plan provider - a callable that returns a BlackboardPlan. Used to provide hints in the inspector. When set, mapping feature becomes available.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> sync_with_base_plan() 🔗", "text": " sync_with_base_plan() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Synchronizes this plan with the base plan: removes variables not present in the base plan, and updates type information. Only use this for custom tooling.", "text": "Synchronizes this plan with the base plan: removes variables not present in the base plan, and updates type information. Only use this for custom tooling.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BT", "text": "BT", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTTask", "text": "Inherited By: BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "Base of BTTask.", "text": "Base of BTTask.", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Enumerations", "text": "Enumerations", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum Status: 🔗", "text": "enum Status: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status FRESH = <2/>", "text": "Status FRESH = ", "markers": { "1": "Status", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "Task wasn’t executed yet or it was aborted and reset.", "text": "Task wasn’t executed yet or it was aborted and reset.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status RUNNING = <2/>", "text": "Status RUNNING = ", "markers": { "1": "Status", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "Task is being performed and hasn’t finished yet.", "text": "Task is being performed and hasn’t finished yet.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status FAILURE = <2/>", "text": "Status FAILURE = ", "markers": { "1": "Status", "2": "2" } }, { "kind": "body", "tag": "p", "path": "", "html": "Task has finished with failure.", "text": "Task has finished with failure.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status SUCCESS = <2/>", "text": "Status SUCCESS = ", "markers": { "1": "Status", "2": "3" } }, { "kind": "body", "tag": "p", "path": "", "html": "Task has finished with success.", "text": "Task has finished with success.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTAction", "text": "BTAction", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTTask < BT", "text": "Inherits: BTTask BT", "markers": { "1": "BTTask", "2": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTAwaitAnimation, BTCallMethod, BTConsolePrint, BTEvaluateExpression, BTFail, BTPauseAnimation, BTPlayAnimation, BTRandomWait, BTSetAgentProperty, BTSetVar, BTStopAnimation, BTWait, BTWaitTicks", "text": "Inherited By: BTAwaitAnimation, BTCallMethod, BTConsolePrint, BTEvaluateExpression, BTFail, BTPauseAnimation, BTPlayAnimation, BTRandomWait, BTSetAgentProperty, BTSetVar, BTStopAnimation, BTWait, BTWaitTicks", "markers": { "1": "BTAwaitAnimation", "2": "BTCallMethod", "3": "BTConsolePrint", "4": "BTEvaluateExpression", "5": "BTFail", "6": "BTPauseAnimation", "7": "BTPlayAnimation", "8": "BTRandomWait", "9": "BTSetAgentProperty", "10": "BTSetVar", "11": "BTStopAnimation", "12": "BTWait", "13": "BTWaitTicks" } }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all BehaviorTree actions.", "text": "Base class for all BehaviorTree actions.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all actions within a BehaviorTree. You can create your own actions by extending the BTAction class.", "text": "Base class for all actions within a BehaviorTree. You can create your own actions by extending the BTAction class.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Represents a specific behavior or action in a BehaviorTree that an agent should execute. Actions are the lowest level of the BehaviorTree hierarchy and are responsible for performing the actual work required to achieve a goal. Actions do not have child tasks.", "text": "Represents a specific behavior or action in a BehaviorTree that an agent should execute. Actions are the lowest level of the BehaviorTree hierarchy and are responsible for performing the actual work required to achieve a goal. Actions do not have child tasks.", "markers": { "1": "BehaviorTree", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "A single action can perform a task within one or multiple ticks. If it takes more than one tick to complete the task, the action should return <1/> status. When the task is finished, the action returns either <2/> or <3/> to indicate the outcome.", "text": "A single action can perform a task within one or multiple ticks. If it takes more than one tick to complete the task, the action should return status. When the task is finished, the action returns either or to indicate the outcome.", "markers": { "1": "RUNNING", "2": "SUCCESS", "3": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTAlwaysFail", "text": "BTAlwaysFail", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that converts <1/> into <2/>.", "text": "BT decorator that converts into .", "markers": { "1": "SUCCESS", "2": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTAlwaysSucceed", "text": "BTAlwaysSucceed", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that converts <1/> into <2/>.", "text": "BT decorator that converts into .", "markers": { "1": "FAILURE", "2": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTAwaitAnimation", "text": "BTAwaitAnimation", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that waits for an animation to finish playing.", "text": "BT action that waits for an animation to finish playing.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTAwaitAnimation action waits for an animation on the specified <1/> node to finish playing and returns <2/>.", "text": "BTAwaitAnimation action waits for an animation on the specified node to finish playing and returns .", "markers": { "1": "AnimationPlayer", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the specified animation has finished playing or if the specified animation is not currently playing.", "text": "Returns if the specified animation has finished playing or if the specified animation is not currently playing.", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the specified animation doesn’t exist or if the action fails to get the <2/> node.", "text": "Returns if the specified animation doesn’t exist or if the action fails to get the node.", "markers": { "1": "FAILURE", "2": "AnimationPlayer" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "animation_name", "text": "animation_name", "markers": { "1": "animation_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_name", "text": "animation_name", "markers": { "1": "animation_name" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "td", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "td", "path": "", "html": "max_time", "text": "max_time", "markers": { "1": "max_time" } }, { "kind": "body", "tag": "p", "path": "", "html": "max_time", "text": "max_time", "markers": { "1": "max_time" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> animation_name = <2/> 🔗", "text": " animation_name = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_name(value: <2/>)", "text": " set_animation_name(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_animation_name()", "text": " get_animation_name()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Animation’s key within the <1/> node.", "text": "Animation’s key within the node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode animation_player 🔗", "text": "BBNode animation_player 🔗", "markers": { "1": "BBNode", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_player(value: BBNode)", "text": " set_animation_player(value: BBNode)", "markers": { "1": "void", "2": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode get_animation_player()", "text": "BBNode get_animation_player()", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the <1/> node.", "text": "Parameter that specifies the node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> max_time = <2/> 🔗", "text": " max_time = 🔗", "markers": { "1": "float", "2": "1.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_max_time(value: <2/>)", "text": " set_max_time(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_max_time()", "text": " get_max_time()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "The maximum duration to wait for the animation to complete (in seconds). If the animation doesn’t finish within this time, BTAwaitAnimation will stop waiting and return <1/>.", "text": "The maximum duration to wait for the animation to complete (in seconds). If the animation doesn’t finish within this time, BTAwaitAnimation will stop waiting and return .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTCallMethod", "text": "BTCallMethod", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that calls a method on a specified <1/> or <2/>.", "text": "BT action that calls a method on a specified or .", "markers": { "1": "Node", "2": "Object" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTCallMethod action calls a method on the specified <2/> or <3/> instance and returns <4/>.", "text": "BTCallMethod action calls a method on the specified or instance and returns .", "markers": { "1": "method", "2": "Node", "3": "Object", "4": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the action encounters an issue during the method execution.", "text": "Returns if the action encounters an issue during the method execution.", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Array[BBVariant]", "text": "Array[BBVariant]", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array[BBVariant]", "text": "Array[BBVariant]", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "td", "path": "", "html": "args", "text": "args", "markers": { "1": "args" } }, { "kind": "body", "tag": "p", "path": "", "html": "args", "text": "args", "markers": { "1": "args" } }, { "kind": "body", "tag": "td", "path": "", "html": "args_include_delta", "text": "args_include_delta", "markers": { "1": "args_include_delta" } }, { "kind": "body", "tag": "p", "path": "", "html": "args_include_delta", "text": "args_include_delta", "markers": { "1": "args_include_delta" } }, { "kind": "body", "tag": "td", "path": "", "html": "method", "text": "method", "markers": { "1": "method" } }, { "kind": "body", "tag": "p", "path": "", "html": "method", "text": "method", "markers": { "1": "method" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "td", "path": "", "html": "node", "text": "node", "markers": { "1": "node" } }, { "kind": "body", "tag": "p", "path": "", "html": "node", "text": "node", "markers": { "1": "node" } }, { "kind": "body", "tag": "td", "path": "", "html": "result_var", "text": "result_var", "markers": { "1": "result_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "result_var", "text": "result_var", "markers": { "1": "result_var" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Array[BBVariant] args = <2/> 🔗", "text": "Array[BBVariant] args = 🔗", "markers": { "1": "BBVariant", "2": "[]", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_args(value: Array[BBVariant])", "text": " set_args(value: Array[BBVariant])", "markers": { "1": "void", "2": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array[BBVariant] get_args()", "text": "Array[BBVariant] get_args()", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "The arguments to be passed when calling the method.", "text": "The arguments to be passed when calling the method.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> args_include_delta = <2/> 🔗", "text": " args_include_delta = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_include_delta(value: <2/>)", "text": " set_include_delta(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_delta_included()", "text": " is_delta_included()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "Include delta as a first parameter and shift the position of the rest of the arguments if any.", "text": "Include delta as a first parameter and shift the position of the rest of the arguments if any.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> method = <2/> 🔗", "text": " method = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_method(value: <2/>)", "text": " set_method(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_method()", "text": " get_method()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "The name of the method to be called.", "text": "The name of the method to be called.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode node 🔗", "text": "BBNode node 🔗", "markers": { "1": "BBNode", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_node_param(value: BBNode)", "text": " set_node_param(value: BBNode)", "markers": { "1": "void", "2": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode get_node_param()", "text": "BBNode get_node_param()", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Specifies the <1/> or <2/> instance containing the method to be called.", "text": "Specifies the or instance containing the method to be called.", "markers": { "1": "Node", "2": "Object" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> result_var = <2/> 🔗", "text": " result_var = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_result_var(value: <2/>)", "text": " set_result_var(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_result_var()", "text": " get_result_var()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "if non-empty, assign the result of the method call to the blackboard variable specified by this property.", "text": "if non-empty, assign the result of the method call to the blackboard variable specified by this property.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTCheckAgentProperty", "text": "BTCheckAgentProperty", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTCondition < BTTask < BT", "text": "Inherits: BTCondition BTTask BT", "markers": { "1": "BTCondition", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT condition that checks agent’s property value.", "text": "BT condition that checks agent’s property value.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTCheckAgentProperty examines the agent’s property value and compares it to value.", "text": "BTCheckAgentProperty examines the agent’s property value and compares it to value.", "markers": { "1": "value" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> or <2/> based on the check_type.", "text": "Returns or based on the check_type.", "markers": { "1": "SUCCESS", "2": "FAILURE", "3": "check_type" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "CheckType", "text": "CheckType", "markers": { "1": "CheckType" } }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType", "text": "CheckType", "markers": { "1": "CheckType" } }, { "kind": "body", "tag": "td", "path": "", "html": "check_type", "text": "check_type", "markers": { "1": "check_type" } }, { "kind": "body", "tag": "p", "path": "", "html": "check_type", "text": "check_type", "markers": { "1": "check_type" } }, { "kind": "body", "tag": "td", "path": "", "html": "property", "text": "property", "markers": { "1": "property" } }, { "kind": "body", "tag": "p", "path": "", "html": "property", "text": "property", "markers": { "1": "property" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "td", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "p", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType check_type = <2/> 🔗", "text": "CheckType check_type = 🔗", "markers": { "1": "CheckType", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_check_type(value: CheckType)", "text": " set_check_type(value: CheckType)", "markers": { "1": "void", "2": "CheckType" } }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType get_check_type()", "text": "CheckType get_check_type()", "markers": { "1": "CheckType" } }, { "kind": "body", "tag": "p", "path": "", "html": "The type of check to be performed.", "text": "The type of check to be performed.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> property = <2/> 🔗", "text": " property = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_property(value: <2/>)", "text": " set_property(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_property()", "text": " get_property()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the agent’s property to be compared.", "text": "Parameter that specifies the agent’s property to be compared.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant value 🔗", "text": "BBVariant value 🔗", "markers": { "1": "BBVariant", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_value(value: BBVariant)", "text": " set_value(value: BBVariant)", "markers": { "1": "void", "2": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant get_value()", "text": "BBVariant get_value()", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the value against which an agent’s property will be compared.", "text": "Parameter that specifies the value against which an agent’s property will be compared.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTCheckTrigger", "text": "BTCheckTrigger", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTCondition < BTTask < BT", "text": "Inherits: BTCondition BTTask BT", "markers": { "1": "BTCondition", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT condition that checks a trigger (a boolean variable).", "text": "BT condition that checks a trigger (a boolean variable).", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTCheckTrigger verifies whether the variable is set to <2/>. If it is, the task switches it to <3/> and returns <4/>. Otherwise, it returns <5/>.", "text": "BTCheckTrigger verifies whether the variable is set to . If it is, the task switches it to and returns . Otherwise, it returns .", "markers": { "1": "variable", "2": "true", "3": "false", "4": "SUCCESS", "5": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTCheckTrigger can function as a “gate” within a BTSequence: when the trigger variable is set to <2/>, it permits the execution of subsequent tasks and then changes the variable to <3/>.", "text": "BTCheckTrigger can function as a “gate” within a BTSequence: when the trigger variable is set to , it permits the execution of subsequent tasks and then changes the variable to .", "markers": { "1": "BTSequence", "2": "true", "3": "false" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "p", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> variable = <2/> 🔗", "text": " variable = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_variable(value: <2/>)", "text": " set_variable(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_variable()", "text": " get_variable()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "A boolean variable on the blackboard used as a trigger. See also BTTask.blackboard.", "text": "A boolean variable on the blackboard used as a trigger. See also BTTask.blackboard.", "markers": { "1": "BTTask.blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "If variable’s value is <1/>, BTCheckTrigger will switch it to <2/> and return <3/>.", "text": "If variable’s value is , BTCheckTrigger will switch it to and return .", "markers": { "1": "true", "2": "false", "3": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "If variable’s value is <1/>, BTCheckTrigger will return <2/>.", "text": "If variable’s value is , BTCheckTrigger will return .", "markers": { "1": "false", "2": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTCheckVar", "text": "BTCheckVar", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTCondition < BTTask < BT", "text": "Inherits: BTCondition BTTask BT", "markers": { "1": "BTCondition", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT condition that checks a variable on the blackboard.", "text": "BT condition that checks a variable on the blackboard.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTCheckVar evaluates the variable against value and returns <3/> or <4/> based on the check_type.", "text": "BTCheckVar evaluates the variable against value and returns or based on the check_type.", "markers": { "1": "variable", "2": "value", "3": "SUCCESS", "4": "FAILURE", "5": "check_type" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "CheckType", "text": "CheckType", "markers": { "1": "CheckType" } }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType", "text": "CheckType", "markers": { "1": "CheckType" } }, { "kind": "body", "tag": "td", "path": "", "html": "check_type", "text": "check_type", "markers": { "1": "check_type" } }, { "kind": "body", "tag": "p", "path": "", "html": "check_type", "text": "check_type", "markers": { "1": "check_type" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "td", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "p", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "td", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "p", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType check_type = <2/> 🔗", "text": "CheckType check_type = 🔗", "markers": { "1": "CheckType", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_check_type(value: CheckType)", "text": " set_check_type(value: CheckType)", "markers": { "1": "void", "2": "CheckType" } }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType get_check_type()", "text": "CheckType get_check_type()", "markers": { "1": "CheckType" } }, { "kind": "body", "tag": "p", "path": "", "html": "The type of check to be performed.", "text": "The type of check to be performed.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant value 🔗", "text": "BBVariant value 🔗", "markers": { "1": "BBVariant", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_value(value: BBVariant)", "text": " set_value(value: BBVariant)", "markers": { "1": "void", "2": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant get_value()", "text": "BBVariant get_value()", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "A parameter that specifies the value against which the variable will be compared.", "text": "A parameter that specifies the value against which the variable will be compared.", "markers": { "1": "variable" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> variable = <2/> 🔗", "text": " variable = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_variable(value: <2/>)", "text": " set_variable(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_variable()", "text": " get_variable()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "The name of the variable to check its value.", "text": "The name of the variable to check its value.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTComment", "text": "BTComment", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTTask < BT", "text": "Inherits: BTTask BT", "markers": { "1": "BTTask", "2": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTComment adds annotations or explanatory notes to a BehaviorTree.", "text": "BTComment adds annotations or explanatory notes to a BehaviorTree.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTComment is used to add annotations or explanatory notes to a BehaviorTree.", "text": "BTComment is used to add annotations or explanatory notes to a BehaviorTree.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Comments are not executed as part of the tree and are removed from runtime instances of the BehaviorTree.", "text": "Comments are not executed as part of the tree and are removed from runtime instances of the BehaviorTree.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTComposite", "text": "BTComposite", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTTask < BT", "text": "Inherits: BTTask BT", "markers": { "1": "BTTask", "2": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTDynamicSelector, BTDynamicSequence, BTParallel, BTProbabilitySelector, BTRandomSelector, BTRandomSequence, BTSelector, BTSequence", "text": "Inherited By: BTDynamicSelector, BTDynamicSequence, BTParallel, BTProbabilitySelector, BTRandomSelector, BTRandomSequence, BTSelector, BTSequence", "markers": { "1": "BTDynamicSelector", "2": "BTDynamicSequence", "3": "BTParallel", "4": "BTProbabilitySelector", "5": "BTRandomSelector", "6": "BTRandomSequence", "7": "BTSelector", "8": "BTSequence" } }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for BT composite tasks.", "text": "Base class for BT composite tasks.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all BehaviorTree composite tasks. You can create your own composite tasks by extending the BTComposite class.", "text": "Base class for all BehaviorTree composite tasks. You can create your own composite tasks by extending the BTComposite class.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Composite is a control task within a BehaviorTree that contains one or more child tasks. It defines the structure and flow of the BehaviorTree 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 BehaviorTree. Examples of BehaviorTree composites include BTSelector, BTSequence, and BTParallel.", "text": "Composite is a control task within a BehaviorTree that contains one or more child tasks. It defines the structure and flow of the BehaviorTree 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 BehaviorTree. Examples of BehaviorTree composites include BTSelector, BTSequence, and BTParallel.", "markers": { "1": "BehaviorTree", "2": "BehaviorTree", "3": "BehaviorTree", "4": "BehaviorTree", "5": "BTSelector", "6": "BTSequence", "7": "BTParallel" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTCondition", "text": "BTCondition", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTTask < BT", "text": "Inherits: BTTask BT", "markers": { "1": "BTTask", "2": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTCheckAgentProperty, BTCheckTrigger, BTCheckVar", "text": "Inherited By: BTCheckAgentProperty, BTCheckTrigger, BTCheckVar", "markers": { "1": "BTCheckAgentProperty", "2": "BTCheckTrigger", "3": "BTCheckVar" } }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for BT conditions.", "text": "Base class for BT conditions.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all BehaviorTree conditions. You can create your own conditions by extending the BTCondition class.", "text": "Base class for all BehaviorTree conditions. You can create your own conditions by extending the BTCondition class.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Condition is a task within a BehaviorTree 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 BehaviorTree 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 BehaviorTree difficult to read.", "text": "Condition is a task within a BehaviorTree 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 BehaviorTree 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 BehaviorTree difficult to read.", "markers": { "1": "BehaviorTree", "2": "BehaviorTree", "3": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Conditions typically don’t take multiple ticks to finish and return either <1/> or <2/> immediately.", "text": "Conditions typically don’t take multiple ticks to finish and return either or immediately.", "markers": { "1": "SUCCESS", "2": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTConsolePrint", "text": "BTConsolePrint", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action task that outputs text to the console.", "text": "BT action task that outputs text to the console.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTConsolePrint action outputs text to the console and returns <1/>. It can include placeholders for format arguments similar to GDScript’s % operator.", "text": "BTConsolePrint action outputs text to the console and returns . It can include placeholders for format arguments similar to GDScript’s % operator.", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "bb_format_parameters", "text": "bb_format_parameters", "markers": { "1": "bb_format_parameters" } }, { "kind": "body", "tag": "p", "path": "", "html": "bb_format_parameters", "text": "bb_format_parameters", "markers": { "1": "bb_format_parameters" } }, { "kind": "body", "tag": "td", "path": "", "html": "text", "text": "text", "markers": { "1": "text" } }, { "kind": "body", "tag": "p", "path": "", "html": "text", "text": "text", "markers": { "1": "text" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> bb_format_parameters = <2/> 🔗", "text": " bb_format_parameters = 🔗", "markers": { "1": "PackedStringArray", "2": "PackedStringArray()", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_bb_format_parameters(value: <2/>)", "text": " set_bb_format_parameters(value: )", "markers": { "1": "void", "2": "PackedStringArray" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_bb_format_parameters()", "text": " get_bb_format_parameters()", "markers": { "1": "PackedStringArray" } }, { "kind": "body", "tag": "p", "path": "", "html": "The values of format parameters are used as format arguments for the text that will be printed.", "text": "The values of format parameters are used as format arguments for the text that will be printed.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Note: The returned array is copied and any changes to it will not update the original property value. See <1/> for more details.", "text": "Note: The returned array is copied and any changes to it will not update the original property value. See for more details.", "markers": { "1": "PackedStringArray" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> text = <2/> 🔗", "text": " text = 🔗", "markers": { "1": "String", "2": "\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_text(value: <2/>)", "text": " set_text(value: )", "markers": { "1": "void", "2": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_text()", "text": " get_text()", "markers": { "1": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "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.", "text": "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.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTCooldown", "text": "BTCooldown", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that executes its child task only if duration time has passed since the previous execution.", "text": "BT decorator that executes its child task only if duration time has passed since the previous execution.", "markers": { "1": "duration" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTCooldown runs its child task only if duration time has passed since the last successful child task execution. It will only consider successful executions unless trigger_on_failure is set to <3/>.", "text": "BTCooldown runs its child task only if duration time has passed since the last successful child task execution. It will only consider successful executions unless trigger_on_failure is set to .", "markers": { "1": "duration", "2": "trigger_on_failure", "3": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/>, if the child task results in <2/>.", "text": "Returns , if the child task results in .", "markers": { "1": "RUNNING", "2": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/>, if the child task results in <2/>, and triggers the cooldown timer.", "text": "Returns , if the child task results in , and triggers the cooldown timer.", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/>, if the child task results in <2/> or if duration time didn’t pass since the previous execution.", "text": "Returns , if the child task results in or if duration time didn’t pass since the previous execution.", "markers": { "1": "FAILURE", "2": "FAILURE", "3": "duration" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "cooldown_state_var", "text": "cooldown_state_var", "markers": { "1": "cooldown_state_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "cooldown_state_var", "text": "cooldown_state_var", "markers": { "1": "cooldown_state_var" } }, { "kind": "body", "tag": "td", "path": "", "html": "duration", "text": "duration", "markers": { "1": "duration" } }, { "kind": "body", "tag": "p", "path": "", "html": "duration", "text": "duration", "markers": { "1": "duration" } }, { "kind": "body", "tag": "td", "path": "", "html": "process_pause", "text": "process_pause", "markers": { "1": "process_pause" } }, { "kind": "body", "tag": "p", "path": "", "html": "process_pause", "text": "process_pause", "markers": { "1": "process_pause" } }, { "kind": "body", "tag": "td", "path": "", "html": "start_cooled", "text": "start_cooled", "markers": { "1": "start_cooled" } }, { "kind": "body", "tag": "p", "path": "", "html": "start_cooled", "text": "start_cooled", "markers": { "1": "start_cooled" } }, { "kind": "body", "tag": "td", "path": "", "html": "trigger_on_failure", "text": "trigger_on_failure", "markers": { "1": "trigger_on_failure" } }, { "kind": "body", "tag": "p", "path": "", "html": "trigger_on_failure", "text": "trigger_on_failure", "markers": { "1": "trigger_on_failure" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> cooldown_state_var = <2/> 🔗", "text": " cooldown_state_var = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_cooldown_state_var(value: <2/>)", "text": " set_cooldown_state_var(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_cooldown_state_var()", "text": " get_cooldown_state_var()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "A boolean variable used to store the cooldown state in the Blackboard. If left empty, the variable will be automatically generated and assigned.", "text": "A boolean variable used to store the cooldown state in the Blackboard. If left empty, the variable will be automatically generated and assigned.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "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 BehaviorTree.", "text": "If the variable’s value is set to , 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 BehaviorTree.", "markers": { "1": "true", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> duration = <2/> 🔗", "text": " duration = 🔗", "markers": { "1": "float", "2": "10.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_duration(value: <2/>)", "text": " set_duration(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_duration()", "text": " get_duration()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Time to wait before permitting another child’s execution.", "text": "Time to wait before permitting another child’s execution.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> process_pause = <2/> 🔗", "text": " process_pause = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_process_pause(value: <2/>)", "text": " set_process_pause(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_process_pause()", "text": " get_process_pause()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, process cooldown when the <2/> is paused.", "text": "If , process cooldown when the is paused.", "markers": { "1": "true", "2": "SceneTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> start_cooled = <2/> 🔗", "text": " start_cooled = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_start_cooled(value: <2/>)", "text": " set_start_cooled(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_start_cooled()", "text": " get_start_cooled()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, initiate a cooldown as if the child had been executed before the first BT tick.", "text": "If , initiate a cooldown as if the child had been executed before the first BT tick.", "markers": { "1": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> trigger_on_failure = <2/> 🔗", "text": " trigger_on_failure = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_trigger_on_failure(value: <2/>)", "text": " set_trigger_on_failure(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_trigger_on_failure()", "text": " get_trigger_on_failure()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "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/>.", "text": "If , the cooldown will be activated if the child task also returns . Otherwise, the cooldown will only be triggered when the child task returns .", "markers": { "1": "true", "2": "FAILURE", "3": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTDecorator", "text": "BTDecorator", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTTask < BT", "text": "Inherits: BTTask BT", "markers": { "1": "BTTask", "2": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTAlwaysFail, BTAlwaysSucceed, BTCooldown, BTDelay, BTForEach, BTInvert, BTNewScope, BTProbability, BTRepeat, BTRepeatUntilFailure, BTRepeatUntilSuccess, BTRunLimit, BTTimeLimit", "text": "Inherited By: BTAlwaysFail, BTAlwaysSucceed, BTCooldown, BTDelay, BTForEach, BTInvert, BTNewScope, BTProbability, BTRepeat, BTRepeatUntilFailure, BTRepeatUntilSuccess, BTRunLimit, BTTimeLimit", "markers": { "1": "BTAlwaysFail", "2": "BTAlwaysSucceed", "3": "BTCooldown", "4": "BTDelay", "5": "BTForEach", "6": "BTInvert", "7": "BTNewScope", "8": "BTProbability", "9": "BTRepeat", "10": "BTRepeatUntilFailure", "11": "BTRepeatUntilSuccess", "12": "BTRunLimit", "13": "BTTimeLimit" } }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for BT decorators.", "text": "Base class for BT decorators.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Base class for all BehaviorTree decorators. You can create your own decorators by extending the BTDecorator class.", "text": "Base class for all BehaviorTree decorators. You can create your own decorators by extending the BTDecorator class.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "A decorator is a task within a BehaviorTree that alters the behavior of its child task. Decorators can have only one child task.", "text": "A decorator is a task within a BehaviorTree that alters the behavior of its child task. Decorators can have only one child task.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "Decorators can be used to add conditions, limits, or other constraints to the execution of a task. Examples of BehaviorTree decorators include BTInvert, BTRepeat, and BTCooldown. The use of BehaviorTree decorators can simplify the design and implementation of complex behaviors by adding additional logic to existing tasks.", "text": "Decorators can be used to add conditions, limits, or other constraints to the execution of a task. Examples of BehaviorTree decorators include BTInvert, BTRepeat, and BTCooldown. The use of BehaviorTree decorators can simplify the design and implementation of complex behaviors by adding additional logic to existing tasks.", "markers": { "1": "BehaviorTree", "2": "BTInvert", "3": "BTRepeat", "4": "BTCooldown", "5": "BehaviorTree" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTDelay", "text": "BTDelay", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that introduces a delay before executing its child task.", "text": "BT decorator that introduces a delay before executing its child task.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTDelay introduces a delay of seconds before executing its child task. Returns <2/> during the delay period.", "text": "BTDelay introduces a delay of seconds before executing its child task. Returns during the delay period.", "markers": { "1": "seconds", "2": "RUNNING" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "seconds", "text": "seconds", "markers": { "1": "seconds" } }, { "kind": "body", "tag": "p", "path": "", "html": "seconds", "text": "seconds", "markers": { "1": "seconds" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> seconds = <2/> 🔗", "text": " seconds = 🔗", "markers": { "1": "float", "2": "1.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_seconds(value: <2/>)", "text": " set_seconds(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_seconds()", "text": " get_seconds()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Delay duration in seconds.", "text": "Delay duration in seconds.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTDynamicSelector", "text": "BTDynamicSelector", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that executes tasks from scratch every tick until first <1/>.", "text": "BT composite that executes tasks from scratch every tick until first .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTDynamicSelector executes its child tasks sequentially, from first to last, until any child returns <1/>. Unlike BTSelector, 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.", "text": "BTDynamicSelector executes its child tasks sequentially, from first to last, until any child returns . Unlike BTSelector, 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.", "markers": { "1": "SUCCESS", "2": "BTSelector" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>. BTDynamicSelector will remember the last <3/> child, but, unlike BTSequence, 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.", "text": "Returns if a child task results in . BTDynamicSelector will remember the last child, but, unlike BTSequence, 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 , it will abort the remembered task.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "RUNNING", "4": "BTSequence", "5": "FAILURE", "6": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if all child tasks result in <2/>.", "text": "Returns if all child tasks result in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>.", "text": "Returns if a child task results in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTDynamicSequence", "text": "BTDynamicSequence", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that executes tasks from scratch every tick as long as they return <1/>.", "text": "BT composite that executes tasks from scratch every tick as long as they return .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTDynamicSequence executes its child tasks sequentially, from first to last, for as long as they return <1/>. Unlike BTSequence, 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/>.", "text": "BTDynamicSequence executes its child tasks sequentially, from first to last, for as long as they return . Unlike BTSequence, 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 action when any condition results in .", "markers": { "1": "SUCCESS", "2": "BTSequence", "3": "RUNNING", "4": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>. BTDynamicSequence will remember the last <3/> child, but, unlike BTSequence, 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.", "text": "Returns if a child task results in . BTDynamicSequence will remember the last child, but, unlike BTSequence, 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 , it will abort the remembered task.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "RUNNING", "4": "BTSequence", "5": "SUCCESS", "6": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>.", "text": "Returns if a child task results in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if all child tasks result in <2/>.", "text": "Returns if all child tasks result in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTEvaluateExpression", "text": "BTEvaluateExpression", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that evaluates an <1/> against a specified <2/> or <3/>.", "text": "BT action that evaluates an against a specified or .", "markers": { "1": "Expression", "2": "Node", "3": "Object" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTEvaluateExpression action evaluates an expression_string on the specified <2/> or <3/> instance and returns <4/> when the <5/> executes successfully.", "text": "BTEvaluateExpression action evaluates an expression_string on the specified or instance and returns when the executes successfully.", "markers": { "1": "expression_string", "2": "Node", "3": "Object", "4": "SUCCESS", "5": "Expression" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the action encounters an issue during the <2/> parsing or execution.", "text": "Returns if the action encounters an issue during the parsing or execution.", "markers": { "1": "FAILURE", "2": "Expression" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "expression_string", "text": "expression_string", "markers": { "1": "expression_string" } }, { "kind": "body", "tag": "p", "path": "", "html": "expression_string", "text": "expression_string", "markers": { "1": "expression_string" } }, { "kind": "body", "tag": "td", "path": "", "html": "input_include_delta", "text": "input_include_delta", "markers": { "1": "input_include_delta" } }, { "kind": "body", "tag": "p", "path": "", "html": "input_include_delta", "text": "input_include_delta", "markers": { "1": "input_include_delta" } }, { "kind": "body", "tag": "td", "path": "", "html": "input_names", "text": "input_names", "markers": { "1": "input_names" } }, { "kind": "body", "tag": "p", "path": "", "html": "input_names", "text": "input_names", "markers": { "1": "input_names" } }, { "kind": "body", "tag": "td", "path": "", "html": "Array[BBVariant]", "text": "Array[BBVariant]", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array[BBVariant]", "text": "Array[BBVariant]", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "td", "path": "", "html": "input_values", "text": "input_values", "markers": { "1": "input_values" } }, { "kind": "body", "tag": "p", "path": "", "html": "input_values", "text": "input_values", "markers": { "1": "input_values" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "td", "path": "", "html": "node", "text": "node", "markers": { "1": "node" } }, { "kind": "body", "tag": "p", "path": "", "html": "node", "text": "node", "markers": { "1": "node" } }, { "kind": "body", "tag": "td", "path": "", "html": "result_var", "text": "result_var", "markers": { "1": "result_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "result_var", "text": "result_var", "markers": { "1": "result_var" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Error", "text": "Error", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Error", "text": "Error", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "parse()", "text": "parse()", "markers": { "1": "parse" } }, { "kind": "body", "tag": "p", "path": "", "html": "parse()", "text": "parse()", "markers": { "1": "parse" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> expression_string = <2/> 🔗", "text": " expression_string = 🔗", "markers": { "1": "String", "2": "\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_expression_string(value: <2/>)", "text": " set_expression_string(value: )", "markers": { "1": "void", "2": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_expression_string()", "text": " get_expression_string()", "markers": { "1": "String" } }, { "kind": "body", "tag": "p", "path": "", "html": "The expression string to be parsed and executed.", "text": "The expression string to be parsed and executed.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Warning: Call parse after updating expression_string to update the internal <3/> as it won’t be updated automatically.", "text": "Warning: Call parse after updating expression_string to update the internal as it won’t be updated automatically.", "markers": { "1": "parse", "2": "expression_string", "3": "Expression" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> input_include_delta = <2/> 🔗", "text": " input_include_delta = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_input_include_delta(value: <2/>)", "text": " set_input_include_delta(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_input_delta_included()", "text": " is_input_delta_included()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If enabled, the input variable <1/> will be added to input_names and input_values.", "text": "If enabled, the input variable will be added to input_names and input_values.", "markers": { "1": "delta", "2": "input_names", "3": "input_values" } }, { "kind": "body", "tag": "p", "path": "", "html": "Warning: Call parse after toggling input_include_delta to update the internal <3/> as it won’t be updated automatically.", "text": "Warning: Call parse after toggling input_include_delta to update the internal as it won’t be updated automatically.", "markers": { "1": "parse", "2": "input_include_delta", "3": "Expression" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> input_names = <2/> 🔗", "text": " input_names = 🔗", "markers": { "1": "PackedStringArray", "2": "PackedStringArray()", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_input_names(value: <2/>)", "text": " set_input_names(value: )", "markers": { "1": "void", "2": "PackedStringArray" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_input_names()", "text": " get_input_names()", "markers": { "1": "PackedStringArray" } }, { "kind": "body", "tag": "p", "path": "", "html": "List of variable names within expression_string for which the user will provide values for through input_values.", "text": "List of variable names within expression_string for which the user will provide values for through input_values.", "markers": { "1": "expression_string", "2": "input_values" } }, { "kind": "body", "tag": "p", "path": "", "html": "Warning: Call parse after updating input_names to update the internal <3/> as it won’t be updated automatically.", "text": "Warning: Call parse after updating input_names to update the internal as it won’t be updated automatically.", "markers": { "1": "parse", "2": "input_names", "3": "Expression" } }, { "kind": "body", "tag": "p", "path": "", "html": "Note: The returned array is copied and any changes to it will not update the original property value. See <1/> for more details.", "text": "Note: The returned array is copied and any changes to it will not update the original property value. See for more details.", "markers": { "1": "PackedStringArray" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array[BBVariant] input_values = <2/> 🔗", "text": "Array[BBVariant] input_values = 🔗", "markers": { "1": "BBVariant", "2": "[]", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_input_values(value: Array[BBVariant])", "text": " set_input_values(value: Array[BBVariant])", "markers": { "1": "void", "2": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Array[BBVariant] get_input_values()", "text": "Array[BBVariant] get_input_values()", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "List of values for variables specified in input_names. The values are mapped to the variables by their array index.", "text": "List of values for variables specified in input_names. The values are mapped to the variables by their array index.", "markers": { "1": "input_names" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode node 🔗", "text": "BBNode node 🔗", "markers": { "1": "BBNode", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_node_param(value: BBNode)", "text": " set_node_param(value: BBNode)", "markers": { "1": "void", "2": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode get_node_param()", "text": "BBNode get_node_param()", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Specifies the <1/> or <2/> instance containing the method to be called.", "text": "Specifies the or instance containing the method to be called.", "markers": { "1": "Node", "2": "Object" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> result_var = <2/> 🔗", "text": " result_var = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_result_var(value: <2/>)", "text": " set_result_var(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_result_var()", "text": " get_result_var()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "if non-empty, assign the result of the method call to the blackboard variable specified by this property.", "text": "if non-empty, assign the result of the method call to the blackboard variable specified by this property.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Error parse() 🔗", "text": "Error parse() 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Calls Expression.parse considering input_include_delta and input_names and returns its error code.", "text": "Calls Expression.parse considering input_include_delta and input_names and returns its error code.", "markers": { "1": "input_include_delta", "2": "input_names" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTFail", "text": "BTFail", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that always returns <1/>.", "text": "BT action that always returns .", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTForEach", "text": "BTForEach", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that executes its child task for each element of an <1/>.", "text": "BT decorator that executes its child task for each element of an .", "markers": { "1": "Array" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTForEach executes its child task for each element of an <1/>. During each iteration, the next element is stored in the specified Blackboard variable.", "text": "BTForEach executes its child task for each element of an . During each iteration, the next element is stored in the specified Blackboard variable.", "markers": { "1": "Array", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/> or if the child task results in <3/> on a non-last iteration.", "text": "Returns if the child task results in or if the child task results in on a non-last iteration.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/>.", "text": "Returns if the child task results in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/> on the last iteration.", "text": "Returns if the child task results in on the last iteration.", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "array_var", "text": "array_var", "markers": { "1": "array_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "array_var", "text": "array_var", "markers": { "1": "array_var" } }, { "kind": "body", "tag": "td", "path": "", "html": "save_var", "text": "save_var", "markers": { "1": "save_var" } }, { "kind": "body", "tag": "p", "path": "", "html": "save_var", "text": "save_var", "markers": { "1": "save_var" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> array_var = <2/> 🔗", "text": " array_var = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_array_var(value: <2/>)", "text": " set_array_var(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_array_var()", "text": " get_array_var()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "A variable within the Blackboard that holds an <2/>, which is used for the iteration process.", "text": "A variable within the Blackboard that holds an , which is used for the iteration process.", "markers": { "1": "Blackboard", "2": "Array" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> save_var = <2/> 🔗", "text": " save_var = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_save_var(value: <2/>)", "text": " set_save_var(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_save_var()", "text": " get_save_var()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "A Blackboard variable used to store an element of the array referenced by array_var.", "text": "A Blackboard variable used to store an element of the array referenced by array_var.", "markers": { "1": "Blackboard", "2": "array_var" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Represents a runtime instance of a BehaviorTree resource.", "text": "Represents a runtime instance of a BehaviorTree resource.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Can be created using the BehaviorTree.instantiate method.", "text": "Can be created using the BehaviorTree.instantiate method.", "markers": { "1": "BehaviorTree.instantiate" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "monitor_performance", "text": "monitor_performance", "markers": { "1": "monitor_performance" } }, { "kind": "body", "tag": "p", "path": "", "html": "monitor_performance", "text": "monitor_performance", "markers": { "1": "monitor_performance" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "get_agent() <2/>", "text": "get_agent() ", "markers": { "1": "get_agent", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_agent() <2/>", "text": "get_agent() ", "markers": { "1": "get_agent", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_blackboard() <2/>", "text": "get_blackboard() ", "markers": { "1": "get_blackboard", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_blackboard() <2/>", "text": "get_blackboard() ", "markers": { "1": "get_blackboard", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_last_status() <2/>", "text": "get_last_status() ", "markers": { "1": "get_last_status", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_last_status() <2/>", "text": "get_last_status() ", "markers": { "1": "get_last_status", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_owner_node() <2/>", "text": "get_owner_node() ", "markers": { "1": "get_owner_node", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_owner_node() <2/>", "text": "get_owner_node() ", "markers": { "1": "get_owner_node", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask", "text": "BTTask", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_root_task() <2/>", "text": "get_root_task() ", "markers": { "1": "get_root_task", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_root_task() <2/>", "text": "get_root_task() ", "markers": { "1": "get_root_task", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_source_bt_path() <2/>", "text": "get_source_bt_path() ", "markers": { "1": "get_source_bt_path", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_source_bt_path() <2/>", "text": "get_source_bt_path() ", "markers": { "1": "get_source_bt_path", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "is_instance_valid() <2/>", "text": "is_instance_valid() ", "markers": { "1": "is_instance_valid", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "is_instance_valid() <2/>", "text": "is_instance_valid() ", "markers": { "1": "is_instance_valid", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "register_with_debugger()", "text": "register_with_debugger()", "markers": { "1": "register_with_debugger" } }, { "kind": "body", "tag": "p", "path": "", "html": "register_with_debugger()", "text": "register_with_debugger()", "markers": { "1": "register_with_debugger" } }, { "kind": "body", "tag": "td", "path": "", "html": "unregister_with_debugger()", "text": "unregister_with_debugger()", "markers": { "1": "unregister_with_debugger" } }, { "kind": "body", "tag": "p", "path": "", "html": "unregister_with_debugger()", "text": "unregister_with_debugger()", "markers": { "1": "unregister_with_debugger" } }, { "kind": "body", "tag": "td", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "p", "path": "", "html": "Status", "text": "Status", "markers": { "1": "Status" } }, { "kind": "body", "tag": "td", "path": "", "html": "update(delta: <2/>)", "text": "update(delta: )", "markers": { "1": "update", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "update(delta: <2/>)", "text": "update(delta: )", "markers": { "1": "update", "2": "float" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Signals", "text": "Signals", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "freed() 🔗", "text": "freed() 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the behavior tree instance is freed. Used by debugger to unregister.", "text": "Emitted when the behavior tree instance is freed. Used by debugger to unregister.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "updated(status: <1/>) 🔗", "text": "updated(status: ) 🔗", "markers": { "1": "int", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Emitted when the behavior tree instance has finished updating.", "text": "Emitted when the behavior tree instance has finished updating.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> monitor_performance = <2/> 🔗", "text": " monitor_performance = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_monitor_performance(value: <2/>)", "text": " set_monitor_performance(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_monitor_performance()", "text": " get_monitor_performance()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, adds a performance monitor for this instance to “Debugger->Monitors” in the editor.", "text": "If , adds a performance monitor for this instance to “Debugger->Monitors” in the editor.", "markers": { "1": "true" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_agent() <2/> 🔗", "text": " get_agent() 🔗", "markers": { "1": "Node", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the agent of the behavior tree instance.", "text": "Returns the agent of the behavior tree instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Blackboard get_blackboard() <2/> 🔗", "text": "Blackboard get_blackboard() 🔗", "markers": { "1": "Blackboard", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the blackboard of the behavior tree instance.", "text": "Returns the blackboard of the behavior tree instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status get_last_status() <2/> 🔗", "text": "Status get_last_status() 🔗", "markers": { "1": "Status", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the execution status of the last update.", "text": "Returns the execution status of the last update.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_owner_node() <2/> 🔗", "text": " get_owner_node() 🔗", "markers": { "1": "Node", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the scene <1/> that owns this behavior tree instance.", "text": "Returns the scene that owns this behavior tree instance.", "markers": { "1": "Node" } }, { "kind": "body", "tag": "p", "path": "", "html": "BTTask get_root_task() <2/> 🔗", "text": "BTTask get_root_task() 🔗", "markers": { "1": "BTTask", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the root task of the behavior tree instance.", "text": "Returns the root task of the behavior tree instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_source_bt_path() <2/> 🔗", "text": " get_source_bt_path() 🔗", "markers": { "1": "String", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the file path to the behavior tree resource that was used to create this instance.", "text": "Returns the file path to the behavior tree resource that was used to create this instance.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> is_instance_valid() <2/> 🔗", "text": " is_instance_valid() 🔗", "markers": { "1": "bool", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the behavior tree instance is properly initialized and can be used.", "text": "Returns if the behavior tree instance is properly initialized and can be used.", "markers": { "1": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> register_with_debugger() 🔗", "text": " register_with_debugger() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Registers the behavior tree instance with the debugger.", "text": "Registers the behavior tree instance with the debugger.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> unregister_with_debugger() 🔗", "text": " unregister_with_debugger() 🔗", "markers": { "1": "void", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Unregisters the behavior tree instance from the debugger. This is typically not necessary, as the debugger will automatically unregister the instance when it is freed.", "text": "Unregisters the behavior tree instance from the debugger. This is typically not necessary, as the debugger will automatically unregister the instance when it is freed.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Status update(delta: <2/>) 🔗", "text": "Status update(delta: ) 🔗", "markers": { "1": "Status", "2": "float", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Ticks the behavior tree instance and returns its status.", "text": "Ticks the behavior tree instance and returns its status.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTInvert", "text": "BTInvert", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that transforms <1/> into <2/> and <3/> into <4/>.", "text": "BT decorator that transforms into and into .", "markers": { "1": "FAILURE", "2": "SUCCESS", "3": "SUCCESS", "4": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTInvert transforms <1/> into <2/> and <3/> into <4/>.", "text": "BTInvert transforms into and into .", "markers": { "1": "FAILURE", "2": "SUCCESS", "3": "SUCCESS", "4": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTNewScope", "text": "BTNewScope", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inherited By: BTSubtree", "text": "Inherited By: BTSubtree", "markers": { "1": "BTSubtree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that creates a new Blackboard scope.", "text": "BT decorator that creates a new Blackboard scope.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTNewScope creates a new Blackboard scope during initialization and populates it with data. See Blackboard.", "text": "BTNewScope creates a new Blackboard scope during initialization and populates it with data. See Blackboard.", "markers": { "1": "Blackboard", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the status of the child task execution.", "text": "Returns the status of the child task execution.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "td", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "p", "path": "", "html": "blackboard_plan", "text": "blackboard_plan", "markers": { "1": "blackboard_plan" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan blackboard_plan 🔗", "text": "BlackboardPlan blackboard_plan 🔗", "markers": { "1": "BlackboardPlan", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_blackboard_plan(value: BlackboardPlan)", "text": " set_blackboard_plan(value: BlackboardPlan)", "markers": { "1": "void", "2": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "BlackboardPlan get_blackboard_plan()", "text": "BlackboardPlan get_blackboard_plan()", "markers": { "1": "BlackboardPlan" } }, { "kind": "body", "tag": "p", "path": "", "html": "Stores and manages variables that will be used in constructing new Blackboard instances.", "text": "Stores and manages variables that will be used in constructing new Blackboard instances.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTParallel", "text": "BTParallel", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that executes all of its child tasks simultaneously.", "text": "BT composite that executes all of its child tasks simultaneously.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTParallel executes all of its child tasks simultaneously. Note that BTParallel doesn’t involve multithreading. It processes each task sequentially, from first to last, in the same tick before returning a result. If one of the abort criterea is met, any tasks currently <1/> will be terminated, and the result will be either <2/> or <3/>. The num_failures_required determines when BTParallel fails and num_successes_required when it succeeds. When both are fullfilled, it gives priority to num_failures_required.", "text": "BTParallel executes all of its child tasks simultaneously. Note that BTParallel doesn’t involve multithreading. It processes each task sequentially, from first to last, in the same tick before returning a result. If one of the abort criterea is met, any tasks currently will be terminated, and the result will be either or . The num_failures_required determines when BTParallel fails and num_successes_required when it succeeds. When both are fullfilled, it gives priority to num_failures_required.", "markers": { "1": "RUNNING", "2": "FAILURE", "3": "SUCCESS", "4": "num_failures_required", "5": "num_successes_required", "6": "num_failures_required" } }, { "kind": "body", "tag": "p", "path": "", "html": "If set to repeat, all child tasks will be re-executed each tick, regardless of whether they previously resulted in <2/> or <3/>.", "text": "If set to repeat, all child tasks will be re-executed each tick, regardless of whether they previously resulted in or .", "markers": { "1": "repeat", "2": "SUCCESS", "3": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> when the required number of child tasks result in <2/>. When repeat is set to <4/>, if none of the criteria were met and all child tasks resulted in either <5/> or <6/>, BTParallel will return <7/>.", "text": "Returns when the required number of child tasks result in . When repeat is set to , if none of the criteria were met and all child tasks resulted in either or , BTParallel will return .", "markers": { "1": "FAILURE", "2": "FAILURE", "3": "repeat", "4": "false", "5": "SUCCESS", "6": "FAILURE", "7": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> when the required number of child tasks result in <2/>.", "text": "Returns when the required number of child tasks result in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if none of the criterea were fulfilled, and either repeat is set to <3/> or a child task resulted in <4/>.", "text": "Returns if none of the criterea were fulfilled, and either repeat is set to or a child task resulted in .", "markers": { "1": "RUNNING", "2": "repeat", "3": "true", "4": "RUNNING" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "num_failures_required", "text": "num_failures_required", "markers": { "1": "num_failures_required" } }, { "kind": "body", "tag": "p", "path": "", "html": "num_failures_required", "text": "num_failures_required", "markers": { "1": "num_failures_required" } }, { "kind": "body", "tag": "td", "path": "", "html": "num_successes_required", "text": "num_successes_required", "markers": { "1": "num_successes_required" } }, { "kind": "body", "tag": "p", "path": "", "html": "num_successes_required", "text": "num_successes_required", "markers": { "1": "num_successes_required" } }, { "kind": "body", "tag": "td", "path": "", "html": "repeat", "text": "repeat", "markers": { "1": "repeat" } }, { "kind": "body", "tag": "p", "path": "", "html": "repeat", "text": "repeat", "markers": { "1": "repeat" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> num_failures_required = <2/> 🔗", "text": " num_failures_required = 🔗", "markers": { "1": "int", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_num_failures_required(value: <2/>)", "text": " set_num_failures_required(value: )", "markers": { "1": "void", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_num_failures_required()", "text": " get_num_failures_required()", "markers": { "1": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "If the specified number of child tasks return <1/>, BTParallel will also return <2/>.", "text": "If the specified number of child tasks return , BTParallel will also return .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> num_successes_required = <2/> 🔗", "text": " num_successes_required = 🔗", "markers": { "1": "int", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_num_successes_required(value: <2/>)", "text": " set_num_successes_required(value: )", "markers": { "1": "void", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_num_successes_required()", "text": " get_num_successes_required()", "markers": { "1": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "If the specified number of child tasks return <1/>, BTParallel will also return <2/>.", "text": "If the specified number of child tasks return , BTParallel will also return .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> repeat = <2/> 🔗", "text": " repeat = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_repeat(value: <2/>)", "text": " set_repeat(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_repeat()", "text": " get_repeat()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "When <1/>, the child tasks will be executed again, regardless of whether they previously resulted in a <2/> or <3/>.", "text": "When , the child tasks will be executed again, regardless of whether they previously resulted in a or .", "markers": { "1": "true", "2": "SUCCESS", "3": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "When <1/>, if none of the criteria were met, and all child tasks resulted in a <2/> or <3/>, BTParallel will return <4/>.", "text": "When , if none of the criteria were met, and all child tasks resulted in a or , BTParallel will return .", "markers": { "1": "false", "2": "SUCCESS", "3": "FAILURE", "4": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTPauseAnimation", "text": "BTPauseAnimation", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that pauses the playback of an animation on the specified <1/> node.", "text": "BT action that pauses the playback of an animation on the specified node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTPauseAnimation action pauses the playback of an animation on the specified <1/> node and returns <2/>.", "text": "BTPauseAnimation action pauses the playback of an animation on the specified node and returns .", "markers": { "1": "AnimationPlayer", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the action fails to get the <2/> node.", "text": "Returns if the action fails to get the node.", "markers": { "1": "FAILURE", "2": "AnimationPlayer" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "td", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode animation_player 🔗", "text": "BBNode animation_player 🔗", "markers": { "1": "BBNode", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_player(value: BBNode)", "text": " set_animation_player(value: BBNode)", "markers": { "1": "void", "2": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode get_animation_player()", "text": "BBNode get_animation_player()", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the <1/> node.", "text": "Parameter that specifies the node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTPlayAnimation", "text": "BTPlayAnimation", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that plays an animation on the specified <1/> node.", "text": "BT action that plays an animation on the specified node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTPlayAnimation action plays an animation on the specified <1/> node. If the await_completion is greater than <3/>, the action will wait for the animation to complete, with the maximum waiting time equal to await_completion.", "text": "BTPlayAnimation action plays an animation on the specified node. If the await_completion is greater than , the action will wait for the animation to complete, with the maximum waiting time equal to await_completion.", "markers": { "1": "AnimationPlayer", "2": "await_completion", "3": "0", "4": "await_completion" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the animation finishes playing or if the elapsed time exceeds await_completion. When await_completion is set to <4/>, BTPlayAnimation doesn’t wait for the animation to finish and immediately returns <5/>.", "text": "Returns if the animation finishes playing or if the elapsed time exceeds await_completion. When await_completion is set to , BTPlayAnimation doesn’t wait for the animation to finish and immediately returns .", "markers": { "1": "SUCCESS", "2": "await_completion", "3": "await_completion", "4": "0", "5": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the animation is still playing and the elapsed time is less than await_completion.", "text": "Returns if the animation is still playing and the elapsed time is less than await_completion.", "markers": { "1": "RUNNING", "2": "await_completion" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the action fails to play the requested animation.", "text": "Returns if the action fails to play the requested animation.", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "animation_name", "text": "animation_name", "markers": { "1": "animation_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_name", "text": "animation_name", "markers": { "1": "animation_name" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "td", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "td", "path": "", "html": "await_completion", "text": "await_completion", "markers": { "1": "await_completion" } }, { "kind": "body", "tag": "p", "path": "", "html": "await_completion", "text": "await_completion", "markers": { "1": "await_completion" } }, { "kind": "body", "tag": "td", "path": "", "html": "blend", "text": "blend", "markers": { "1": "blend" } }, { "kind": "body", "tag": "p", "path": "", "html": "blend", "text": "blend", "markers": { "1": "blend" } }, { "kind": "body", "tag": "td", "path": "", "html": "from_end", "text": "from_end", "markers": { "1": "from_end" } }, { "kind": "body", "tag": "p", "path": "", "html": "from_end", "text": "from_end", "markers": { "1": "from_end" } }, { "kind": "body", "tag": "td", "path": "", "html": "speed", "text": "speed", "markers": { "1": "speed" } }, { "kind": "body", "tag": "p", "path": "", "html": "speed", "text": "speed", "markers": { "1": "speed" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> animation_name = <2/> 🔗", "text": " animation_name = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_name(value: <2/>)", "text": " set_animation_name(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_animation_name()", "text": " get_animation_name()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Animation’s key within the <1/> node. If empty, BTPlayAnimation will resume the last played animation if the <2/> was previously paused.", "text": "Animation’s key within the node. If empty, BTPlayAnimation will resume the last played animation if the was previously paused.", "markers": { "1": "AnimationPlayer", "2": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode animation_player 🔗", "text": "BBNode animation_player 🔗", "markers": { "1": "BBNode", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_player(value: BBNode)", "text": " set_animation_player(value: BBNode)", "markers": { "1": "void", "2": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode get_animation_player()", "text": "BBNode get_animation_player()", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the <1/> node.", "text": "Parameter that specifies the node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> await_completion = <2/> 🔗", "text": " await_completion = 🔗", "markers": { "1": "float", "2": "0.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_await_completion(value: <2/>)", "text": " set_await_completion(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_await_completion()", "text": " get_await_completion()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "The maximum duration to wait for the animation to complete (in seconds). If the animation doesn’t finish within this time, BTPlayAnimation will stop waiting and return <1/>.", "text": "The maximum duration to wait for the animation to complete (in seconds). If the animation doesn’t finish within this time, BTPlayAnimation will stop waiting and return .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> blend = <2/> 🔗", "text": " blend = 🔗", "markers": { "1": "float", "2": "-1.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_blend(value: <2/>)", "text": " set_blend(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_blend()", "text": " get_blend()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Custom blend time (in seconds). See AnimationPlayer.play.", "text": "Custom blend time (in seconds). See AnimationPlayer.play.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> from_end = <2/> 🔗", "text": " from_end = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_from_end(value: <2/>)", "text": " set_from_end(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_from_end()", "text": " get_from_end()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "Play animation from the end. Used in combination with negative speed to play animation in reverse. See AnimationPlayer.play.", "text": "Play animation from the end. Used in combination with negative speed to play animation in reverse. See AnimationPlayer.play.", "markers": { "1": "speed" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> speed = <2/> 🔗", "text": " speed = 🔗", "markers": { "1": "float", "2": "1.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_speed(value: <2/>)", "text": " set_speed(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_speed()", "text": " get_speed()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Custom playback speed scaling ratio. See AnimationPlayer.play.", "text": "Custom playback speed scaling ratio. See AnimationPlayer.play.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTProbability", "text": "BTProbability", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that executes its child task with a given probability.", "text": "BT decorator that executes its child task with a given probability.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTProbability executes its child task with a given probability defined by run_chance.", "text": "BTProbability executes its child task with a given probability defined by run_chance.", "markers": { "1": "run_chance" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the result of the child task if it was executed; otherwise, it returns <1/>.", "text": "Returns the result of the child task if it was executed; otherwise, it returns .", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "run_chance", "text": "run_chance", "markers": { "1": "run_chance" } }, { "kind": "body", "tag": "p", "path": "", "html": "run_chance", "text": "run_chance", "markers": { "1": "run_chance" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> run_chance = <2/> 🔗", "text": " run_chance = 🔗", "markers": { "1": "float", "2": "0.5", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_run_chance(value: <2/>)", "text": " set_run_chance(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_run_chance()", "text": " get_run_chance()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Probability that defines how likely the child task will be executed.", "text": "Probability that defines how likely the child task will be executed.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTProbabilitySelector", "text": "BTProbabilitySelector", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that chooses a child task to execute based on attached probabilities.", "text": "BT composite that chooses a child task to execute based on attached probabilities.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTProbabilitySelector chooses a child task to execute based on attached probabilities. It is typically used for decision-making purposes. Probability distribution is calculated based on weights assigned to each child task.", "text": "BTProbabilitySelector chooses a child task to execute based on attached probabilities. It is typically used for decision-making purposes. Probability distribution is calculated based on weights assigned to each child task.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> when a child task results in <2/>.", "text": "Returns when a child task results in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> when a child task results in <2/>.", "text": "Returns when a child task results in .", "markers": { "1": "RUNNING", "2": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "The behavior of BTProbabilitySelector when a child task results in <1/> depends on the abort_on_failure value:", "text": "The behavior of BTProbabilitySelector when a child task results in depends on the abort_on_failure value:", "markers": { "1": "FAILURE", "2": "abort_on_failure" } }, { "kind": "body", "tag": "p", "path": "", "html": "If abort_on_failure is <2/>, when a child task results in <3/>, BTProbabilitySelector will normalize the probability distribution over the remaining children and choose a new child task to be executed. If all child tasks fail, the composite will return <4/>.", "text": "If abort_on_failure is , when a child task results in , BTProbabilitySelector will normalize the probability distribution over the remaining children and choose a new child task to be executed. If all child tasks fail, the composite will return .", "markers": { "1": "abort_on_failure", "2": "false", "3": "FAILURE", "4": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "If abort_on_failure is <2/>, when a child task results in <3/>, BTProbabilitySelector will not choose another child task to be executed and will immediately return <4/>.", "text": "If abort_on_failure is , when a child task results in , BTProbabilitySelector will not choose another child task to be executed and will immediately return .", "markers": { "1": "abort_on_failure", "2": "true", "3": "FAILURE", "4": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "abort_on_failure", "text": "abort_on_failure", "markers": { "1": "abort_on_failure" } }, { "kind": "body", "tag": "p", "path": "", "html": "abort_on_failure", "text": "abort_on_failure", "markers": { "1": "abort_on_failure" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "get_probability(child_idx: <2/>) <3/>", "text": "get_probability(child_idx: ) ", "markers": { "1": "get_probability", "2": "int", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_probability(child_idx: <2/>) <3/>", "text": "get_probability(child_idx: ) ", "markers": { "1": "get_probability", "2": "int", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_total_weight() <2/>", "text": "get_total_weight() ", "markers": { "1": "get_total_weight", "2": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_total_weight() <2/>", "text": "get_total_weight() ", "markers": { "1": "get_total_weight", "2": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_weight(child_idx: <2/>) <3/>", "text": "get_weight(child_idx: ) ", "markers": { "1": "get_weight", "2": "int", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_weight(child_idx: <2/>) <3/>", "text": "get_weight(child_idx: ) ", "markers": { "1": "get_weight", "2": "int", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "has_probability(child_idx: <2/>) <3/>", "text": "has_probability(child_idx: ) ", "markers": { "1": "has_probability", "2": "int", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "has_probability(child_idx: <2/>) <3/>", "text": "has_probability(child_idx: ) ", "markers": { "1": "has_probability", "2": "int", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_probability(child_idx: <2/>, probability: <3/>)", "text": "set_probability(child_idx: , probability: )", "markers": { "1": "set_probability", "2": "int", "3": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_probability(child_idx: <2/>, probability: <3/>)", "text": "set_probability(child_idx: , probability: )", "markers": { "1": "set_probability", "2": "int", "3": "float" } }, { "kind": "body", "tag": "td", "path": "", "html": "set_weight(child_idx: <2/>, weight: <3/>)", "text": "set_weight(child_idx: , weight: )", "markers": { "1": "set_weight", "2": "int", "3": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "set_weight(child_idx: <2/>, weight: <3/>)", "text": "set_weight(child_idx: , weight: )", "markers": { "1": "set_weight", "2": "int", "3": "float" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> abort_on_failure = <2/> 🔗", "text": " abort_on_failure = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_abort_on_failure(value: <2/>)", "text": " set_abort_on_failure(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_abort_on_failure()", "text": " get_abort_on_failure()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, BTProbabilitySelector will not choose another child to execute and will return <2/> when a child task results in <3/>.", "text": "If , BTProbabilitySelector will not choose another child to execute and will return when a child task results in .", "markers": { "1": "true", "2": "FAILURE", "3": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_probability(child_idx: <2/>) <3/> 🔗", "text": " get_probability(child_idx: ) 🔗", "markers": { "1": "float", "2": "int", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the child task’s selection probability.", "text": "Returns the child task’s selection probability.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_total_weight() <2/> 🔗", "text": " get_total_weight() 🔗", "markers": { "1": "float", "2": "const", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the total weight of all child tasks.", "text": "Returns the total weight of all child tasks.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_weight(child_idx: <2/>) <3/> 🔗", "text": " get_weight(child_idx: ) 🔗", "markers": { "1": "float", "2": "int", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the child task’s weight within the weighted probability selection algorithm.", "text": "Returns the child task’s weight within the weighted probability selection algorithm.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> has_probability(child_idx: <2/>) <3/> 🔗", "text": " has_probability(child_idx: ) 🔗", "markers": { "1": "bool", "2": "int", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns whether the child task at index <1/> participates within the weighted probability selection algorithm and has a probability assigned to it. Returns <2/> for BTComment tasks.", "text": "Returns whether the child task at index participates within the weighted probability selection algorithm and has a probability assigned to it. Returns for BTComment tasks.", "markers": { "1": "child_idx", "2": "false", "3": "BTComment" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_probability(child_idx: <2/>, probability: <3/>) 🔗", "text": " set_probability(child_idx: , probability: ) 🔗", "markers": { "1": "void", "2": "int", "3": "float", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the child task’s weight calculated based on the desired probability.", "text": "Sets the child task’s weight calculated based on the desired probability.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_weight(child_idx: <2/>, weight: <3/>) 🔗", "text": " set_weight(child_idx: , weight: ) 🔗", "markers": { "1": "void", "2": "int", "3": "float", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Sets the child task’s weight for the weighted probability selection algorithm.", "text": "Sets the child task’s weight for the weighted probability selection algorithm.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRandomSelector", "text": "BTRandomSelector", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that executes tasks in random order until first <1/>.", "text": "BT composite that executes tasks in random order until first .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRandomSelector executes its child tasks in a random order until any child returns <1/>. If a child task results in <2/>, BTRandomSelector will immediately execute another child task until one of them returns <3/> or all of them result in <4/>.", "text": "BTRandomSelector executes its child tasks in a random order until any child returns . If a child task results in , BTRandomSelector will immediately execute another child task until one of them returns or all of them result in .", "markers": { "1": "SUCCESS", "2": "FAILURE", "3": "SUCCESS", "4": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>. BTRandomSelector will remember the execution order and the last child task that returned <3/>, ensuring it resumes from that point in the next tick.", "text": "Returns if a child task results in . BTRandomSelector will remember the execution order and the last child task that returned , ensuring it resumes from that point in the next tick.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if all child tasks result in <2/>.", "text": "Returns if all child tasks result in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>.", "text": "Returns if a child task results in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRandomSequence", "text": "BTRandomSequence", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that executes tasks in random order as long as they return <1/>.", "text": "BT composite that executes tasks in random order as long as they return .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRandomSequence executes its child tasks in a random order as long as they return <1/>. If a child task results in <2/>, BTRandomSequence will immediately execute the next child task until one of them returns <3/> or all of them result in <4/>.", "text": "BTRandomSequence executes its child tasks in a random order as long as they return . If a child task results in , BTRandomSequence will immediately execute the next child task until one of them returns or all of them result in .", "markers": { "1": "SUCCESS", "2": "SUCCESS", "3": "FAILURE", "4": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>. BTRandomSequence will remember the execution order and the last child task that returned <3/>, ensuring it resumes from that point in the next tick.", "text": "Returns if a child task results in . BTRandomSequence will remember the execution order and the last child task that returned , ensuring it resumes from that point in the next tick.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>.", "text": "Returns if a child task results in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if all child tasks result in <2/>.", "text": "Returns if all child tasks result in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRandomWait", "text": "BTRandomWait", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that waits for a randomized duration to elapse and then returns <1/>.", "text": "BT action that waits for a randomized duration to elapse and then returns .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRandomWait action waits for a randomized duration to elapse and then returns <1/>. The duration is randomized within the specified range, defined by min_duration and max_duration.", "text": "BTRandomWait action waits for a randomized duration to elapse and then returns . The duration is randomized within the specified range, defined by min_duration and max_duration.", "markers": { "1": "SUCCESS", "2": "min_duration", "3": "max_duration" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "max_duration", "text": "max_duration", "markers": { "1": "max_duration" } }, { "kind": "body", "tag": "p", "path": "", "html": "max_duration", "text": "max_duration", "markers": { "1": "max_duration" } }, { "kind": "body", "tag": "td", "path": "", "html": "min_duration", "text": "min_duration", "markers": { "1": "min_duration" } }, { "kind": "body", "tag": "p", "path": "", "html": "min_duration", "text": "min_duration", "markers": { "1": "min_duration" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> max_duration = <2/> 🔗", "text": " max_duration = 🔗", "markers": { "1": "float", "2": "2.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_max_duration(value: <2/>)", "text": " set_max_duration(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_max_duration()", "text": " get_max_duration()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Maximum duration for the wait.", "text": "Maximum duration for the wait.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> min_duration = <2/> 🔗", "text": " min_duration = 🔗", "markers": { "1": "float", "2": "1.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_min_duration(value: <2/>)", "text": " set_min_duration(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_min_duration()", "text": " get_min_duration()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Minimum duration for the wait.", "text": "Minimum duration for the wait.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRepeat", "text": "BTRepeat", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that repeats its child a specified number of times.", "text": "BT decorator that repeats its child a specified number of times.", "markers": { "1": "times" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRepeat iterates its child task a specified number of times, as defined by times. If forever is <3/>, the child’s execution will be repeated indefinitely.", "text": "BTRepeat iterates its child task a specified number of times, as defined by times. If forever is , the child’s execution will be repeated indefinitely.", "markers": { "1": "times", "2": "forever", "3": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/>. If forever is <4/>, BTRepeat will always return <5/>.", "text": "Returns if the child task results in . If forever is , BTRepeat will always return .", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "forever", "4": "true", "5": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the specified number of successful executions is reached. If abort_on_failure is <3/>, a <4/> status returned by the child is also considered a successful execution.", "text": "Returns if the specified number of successful executions is reached. If abort_on_failure is , a status returned by the child is also considered a successful execution.", "markers": { "1": "SUCCESS", "2": "abort_on_failure", "3": "false", "4": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/> when abort_on_failure is <4/>.", "text": "Returns if the child task results in when abort_on_failure is .", "markers": { "1": "FAILURE", "2": "FAILURE", "3": "abort_on_failure", "4": "true" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "abort_on_failure", "text": "abort_on_failure", "markers": { "1": "abort_on_failure" } }, { "kind": "body", "tag": "p", "path": "", "html": "abort_on_failure", "text": "abort_on_failure", "markers": { "1": "abort_on_failure" } }, { "kind": "body", "tag": "td", "path": "", "html": "forever", "text": "forever", "markers": { "1": "forever" } }, { "kind": "body", "tag": "p", "path": "", "html": "forever", "text": "forever", "markers": { "1": "forever" } }, { "kind": "body", "tag": "td", "path": "", "html": "times", "text": "times", "markers": { "1": "times" } }, { "kind": "body", "tag": "p", "path": "", "html": "times", "text": "times", "markers": { "1": "times" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> abort_on_failure = <2/> 🔗", "text": " abort_on_failure = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_abort_on_failure(value: <2/>)", "text": " set_abort_on_failure(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_abort_on_failure()", "text": " get_abort_on_failure()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, <2/> status returned by the child task is also considered as a successful execution.", "text": "If , status returned by the child task is also considered as a successful execution.", "markers": { "1": "false", "2": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> forever = <2/> 🔗", "text": " forever = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_forever(value: <2/>)", "text": " set_forever(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_forever()", "text": " get_forever()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, the child’s execution will be repeated indefinitely, always returning <2/>.", "text": "If , the child’s execution will be repeated indefinitely, always returning .", "markers": { "1": "true", "2": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> times = <2/> 🔗", "text": " times = 🔗", "markers": { "1": "int", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_times(value: <2/>)", "text": " set_times(value: )", "markers": { "1": "void", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_times()", "text": " get_times()", "markers": { "1": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "The number of times to repeat execution of the child task.", "text": "The number of times to repeat execution of the child task.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRepeatUntilFailure", "text": "BTRepeatUntilFailure", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that repeats its child task until <1/>.", "text": "BT decorator that repeats its child task until .", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRepeatUntilFailure repeats its child task until it results in <1/>.", "text": "BTRepeatUntilFailure repeats its child task until it results in .", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/> or <3/>.", "text": "Returns if the child task results in or .", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/>.", "text": "Returns if the child task results in .", "markers": { "1": "SUCCESS", "2": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRepeatUntilSuccess", "text": "BTRepeatUntilSuccess", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that repeats its child task until <1/>.", "text": "BT decorator that repeats its child task until .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRepeatUntilSuccess repeats its child task until it results in <1/>.", "text": "BTRepeatUntilSuccess repeats its child task until it results in .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/> or <3/>.", "text": "Returns if the child task results in or .", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "FAILURE" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the child task results in <2/>.", "text": "Returns if the child task results in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTRunLimit", "text": "BTRunLimit", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that restricts the execution of its child a limited number of times.", "text": "BT decorator that restricts the execution of its child a limited number of times.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTRunLimit restricts the execution of the child task to a maximum number of times, defined by run_limit.", "text": "BTRunLimit restricts the execution of the child task to a maximum number of times, defined by run_limit.", "markers": { "1": "run_limit" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the limit on executions is exceeded; otherwise, it returns the status of the child task.", "text": "Returns if the limit on executions is exceeded; otherwise, it returns the status of the child task.", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "CountPolicy", "text": "CountPolicy", "markers": { "1": "CountPolicy" } }, { "kind": "body", "tag": "p", "path": "", "html": "CountPolicy", "text": "CountPolicy", "markers": { "1": "CountPolicy" } }, { "kind": "body", "tag": "td", "path": "", "html": "count_policy", "text": "count_policy", "markers": { "1": "count_policy" } }, { "kind": "body", "tag": "p", "path": "", "html": "count_policy", "text": "count_policy", "markers": { "1": "count_policy" } }, { "kind": "body", "tag": "td", "path": "", "html": "run_limit", "text": "run_limit", "markers": { "1": "run_limit" } }, { "kind": "body", "tag": "p", "path": "", "html": "run_limit", "text": "run_limit", "markers": { "1": "run_limit" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Enumerations", "text": "Enumerations", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum CountPolicy: 🔗", "text": "enum CountPolicy: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "CountPolicy COUNT_SUCCESSFUL = <2/>", "text": "CountPolicy COUNT_SUCCESSFUL = ", "markers": { "1": "CountPolicy", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "Count only successful runs towards the limit.", "text": "Count only successful runs towards the limit.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CountPolicy COUNT_FAILED = <2/>", "text": "CountPolicy COUNT_FAILED = ", "markers": { "1": "CountPolicy", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "Count only failed runs towards the limit.", "text": "Count only failed runs towards the limit.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CountPolicy COUNT_ALL = <2/>", "text": "CountPolicy COUNT_ALL = ", "markers": { "1": "CountPolicy", "2": "2" } }, { "kind": "body", "tag": "p", "path": "", "html": "Count successful and failed runs towards the limit.", "text": "Count successful and failed runs towards the limit.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CountPolicy count_policy = <2/> 🔗", "text": "CountPolicy count_policy = 🔗", "markers": { "1": "CountPolicy", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_count_policy(value: CountPolicy)", "text": " set_count_policy(value: CountPolicy)", "markers": { "1": "void", "2": "CountPolicy" } }, { "kind": "body", "tag": "p", "path": "", "html": "CountPolicy get_count_policy()", "text": "CountPolicy get_count_policy()", "markers": { "1": "CountPolicy" } }, { "kind": "body", "tag": "p", "path": "", "html": "Which runs should be counted towards the limit: successful, failed, or all?", "text": "Which runs should be counted towards the limit: successful, failed, or all?", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> run_limit = <2/> 🔗", "text": " run_limit = 🔗", "markers": { "1": "int", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_run_limit(value: <2/>)", "text": " set_run_limit(value: )", "markers": { "1": "void", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_run_limit()", "text": " get_run_limit()", "markers": { "1": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "The maximum number of times the child is permitted to be executed.", "text": "The maximum number of times the child is permitted to be executed.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTSelector", "text": "BTSelector", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that sequentially executes tasks until first <1/>.", "text": "BT composite that sequentially executes tasks until first .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTSelector executes its child tasks sequentially, from first to last, until any child returns <1/>. If a child task results in <2/>, BTSelector will immediately execute the next child task until one of them returns <3/> or all of them result in <4/>. BTSelector and BTSequence are two of the most common building blocks of behavior trees. Essentially, while BTSequence is similar to a boolean AND operation, BTSelector is similar to a boolean OR operation. Selectors enable the behavior tree to respond to changes in the environment and trigger transitions between various fallback behaviors.", "text": "BTSelector executes its child tasks sequentially, from first to last, until any child returns . If a child task results in , BTSelector will immediately execute the next child task until one of them returns or all of them result in . BTSelector and BTSequence are two of the most common building blocks of behavior trees. Essentially, while BTSequence is similar to a boolean AND operation, BTSelector is similar to a boolean OR operation. Selectors enable the behavior tree to respond to changes in the environment and trigger transitions between various fallback behaviors.", "markers": { "1": "SUCCESS", "2": "FAILURE", "3": "SUCCESS", "4": "FAILURE", "5": "BTSequence", "6": "BTSequence" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>. BTSelector will remember the last child task that returned <3/>, ensuring it resumes from that point in the next execution tick.", "text": "Returns if a child task results in . BTSelector will remember the last child task that returned , ensuring it resumes from that point in the next execution tick.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>.", "text": "Returns if a child task results in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if all child tasks result in <2/>.", "text": "Returns if all child tasks result in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTSequence", "text": "BTSequence", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTComposite < BTTask < BT", "text": "Inherits: BTComposite BTTask BT", "markers": { "1": "BTComposite", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT composite that sequentially executes tasks as long as they return <1/>.", "text": "BT composite that sequentially executes tasks as long as they return .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTSequence executes its child tasks sequentially, from first to last, as long as they return <1/>. If a child task results in <2/>, BTSequence will immediately execute the next child task until one of them returns <3/> or all of them result in <4/>. BTSequence and BTSelector are two of the most common building blocks of behavior trees. Essentially, while BTSelector is similar to a boolean OR operation, BTSequence is similar to a boolean AND operation. Sequences enable the behavior tree to compose complex behaviors from a chain of simpler tasks.", "text": "BTSequence executes its child tasks sequentially, from first to last, as long as they return . If a child task results in , BTSequence will immediately execute the next child task until one of them returns or all of them result in . BTSequence and BTSelector are two of the most common building blocks of behavior trees. Essentially, while BTSelector is similar to a boolean OR operation, BTSequence is similar to a boolean AND operation. Sequences enable the behavior tree to compose complex behaviors from a chain of simpler tasks.", "markers": { "1": "SUCCESS", "2": "SUCCESS", "3": "FAILURE", "4": "SUCCESS", "5": "BTSelector", "6": "BTSelector" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if any child task results in <2/>. BTSequence will remember the last child task that returned <3/>, ensuring it resumes from that point in the next execution tick.", "text": "Returns if any child task results in . BTSequence will remember the last child task that returned , ensuring it resumes from that point in the next execution tick.", "markers": { "1": "RUNNING", "2": "RUNNING", "3": "RUNNING" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if all child tasks result in <2/>.", "text": "Returns if all child tasks result in .", "markers": { "1": "SUCCESS", "2": "SUCCESS" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if a child task results in <2/>.", "text": "Returns if a child task results in .", "markers": { "1": "FAILURE", "2": "FAILURE" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTSetAgentProperty", "text": "BTSetAgentProperty", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that assigns a value to the specified agent’s property.", "text": "BT action that assigns a value to the specified agent’s property.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTSetAgentProperty assigns the specified value to the agent’s property identified by the property and returns <3/>. Optionally, it can perform a specific operation before assignment.", "text": "BTSetAgentProperty assigns the specified value to the agent’s property identified by the property and returns . Optionally, it can perform a specific operation before assignment.", "markers": { "1": "value", "2": "property", "3": "SUCCESS", "4": "operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if it fails to set the property.", "text": "Returns if it fails to set the property.", "markers": { "1": "FAILURE" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Operation", "text": "Operation", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Operation", "text": "Operation", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "td", "path": "", "html": "operation", "text": "operation", "markers": { "1": "operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "operation", "text": "operation", "markers": { "1": "operation" } }, { "kind": "body", "tag": "td", "path": "", "html": "property", "text": "property", "markers": { "1": "property" } }, { "kind": "body", "tag": "p", "path": "", "html": "property", "text": "property", "markers": { "1": "property" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "td", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "p", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation operation = <2/> 🔗", "text": "Operation operation = 🔗", "markers": { "1": "Operation", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_operation(value: Operation)", "text": " set_operation(value: Operation)", "markers": { "1": "void", "2": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Operation get_operation()", "text": "Operation get_operation()", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Specifies the operation to be performed before assignment. Operation is executed as follows:", "text": "Specifies the operation to be performed before assignment. Operation is executed as follows:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> property = <2/> 🔗", "text": " property = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_property(value: <2/>)", "text": " set_property(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_property()", "text": " get_property()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the agent’s property name.", "text": "Parameter that specifies the agent’s property name.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant value 🔗", "text": "BBVariant value 🔗", "markers": { "1": "BBVariant", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_value(value: BBVariant)", "text": " set_value(value: BBVariant)", "markers": { "1": "void", "2": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant get_value()", "text": "BBVariant get_value()", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the value that will be assigned to agent’s property.", "text": "Parameter that specifies the value that will be assigned to agent’s property.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTSetVar", "text": "BTSetVar", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that assigns value to the variable and then returns <3/>.", "text": "BT action that assigns value to the variable and then returns .", "markers": { "1": "value", "2": "variable", "3": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTSetVar assigns value to the variable and then returns <3/>. Optionally, it can perform a specific operation before assignment.", "text": "BTSetVar assigns value to the variable and then returns . Optionally, it can perform a specific operation before assignment.", "markers": { "1": "value", "2": "variable", "3": "SUCCESS", "4": "operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if it fails to set the variable.", "text": "Returns if it fails to set the variable.", "markers": { "1": "FAILURE", "2": "variable" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "Operation", "text": "Operation", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Operation", "text": "Operation", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "td", "path": "", "html": "operation", "text": "operation", "markers": { "1": "operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "operation", "text": "operation", "markers": { "1": "operation" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "td", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "p", "path": "", "html": "value", "text": "value", "markers": { "1": "value" } }, { "kind": "body", "tag": "td", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "p", "path": "", "html": "variable", "text": "variable", "markers": { "1": "variable" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation operation = <2/> 🔗", "text": "Operation operation = 🔗", "markers": { "1": "Operation", "2": "0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_operation(value: Operation)", "text": " set_operation(value: Operation)", "markers": { "1": "void", "2": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Operation get_operation()", "text": "Operation get_operation()", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "Specifies the operation to be performed before assignment. Operation is executed as follows:", "text": "Specifies the operation to be performed before assignment. Operation is executed as follows:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant value 🔗", "text": "BBVariant value 🔗", "markers": { "1": "BBVariant", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_value(value: BBVariant)", "text": " set_value(value: BBVariant)", "markers": { "1": "void", "2": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBVariant get_value()", "text": "BBVariant get_value()", "markers": { "1": "BBVariant" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the value to be assigned to the variable.", "text": "Parameter that specifies the value to be assigned to the variable.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> variable = <2/> 🔗", "text": " variable = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_variable(value: <2/>)", "text": " set_variable(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_variable()", "text": " get_variable()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Name of the variable to which the value will be assigned.", "text": "Name of the variable to which the value will be assigned.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTStopAnimation", "text": "BTStopAnimation", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that stops the playback of an animation on the specified <1/> node.", "text": "BT action that stops the playback of an animation on the specified node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTStopAnimation action stops the playback of an animation on the specified <1/> node and returns <2/>. If animation_name is set, it will only stop the playback if the specified animation is currently playing.", "text": "BTStopAnimation action stops the playback of an animation on the specified node and returns . If animation_name is set, it will only stop the playback if the specified animation is currently playing.", "markers": { "1": "AnimationPlayer", "2": "SUCCESS", "3": "animation_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the action fails to get the <2/> node.", "text": "Returns if the action fails to get the node.", "markers": { "1": "FAILURE", "2": "AnimationPlayer" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "animation_name", "text": "animation_name", "markers": { "1": "animation_name" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_name", "text": "animation_name", "markers": { "1": "animation_name" } }, { "kind": "body", "tag": "td", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode", "text": "BBNode", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "td", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "p", "path": "", "html": "animation_player", "text": "animation_player", "markers": { "1": "animation_player" } }, { "kind": "body", "tag": "td", "path": "", "html": "keep_state", "text": "keep_state", "markers": { "1": "keep_state" } }, { "kind": "body", "tag": "p", "path": "", "html": "keep_state", "text": "keep_state", "markers": { "1": "keep_state" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> animation_name = <2/> 🔗", "text": " animation_name = 🔗", "markers": { "1": "StringName", "2": "&\"\"", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_name(value: <2/>)", "text": " set_animation_name(value: )", "markers": { "1": "void", "2": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_animation_name()", "text": " get_animation_name()", "markers": { "1": "StringName" } }, { "kind": "body", "tag": "p", "path": "", "html": "Animation’s key within the <1/> node. If not empty, BTStopAnimation will only stop the playback if the specified animation is currently playing.", "text": "Animation’s key within the node. If not empty, BTStopAnimation will only stop the playback if the specified animation is currently playing.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode animation_player 🔗", "text": "BBNode animation_player 🔗", "markers": { "1": "BBNode", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_animation_player(value: BBNode)", "text": " set_animation_player(value: BBNode)", "markers": { "1": "void", "2": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "BBNode get_animation_player()", "text": "BBNode get_animation_player()", "markers": { "1": "BBNode" } }, { "kind": "body", "tag": "p", "path": "", "html": "Parameter that specifies the <1/> node.", "text": "Parameter that specifies the node.", "markers": { "1": "AnimationPlayer" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> keep_state = <2/> 🔗", "text": " keep_state = 🔗", "markers": { "1": "bool", "2": "false", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_keep_state(value: <2/>)", "text": " set_keep_state(value: )", "markers": { "1": "void", "2": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_keep_state()", "text": " get_keep_state()", "markers": { "1": "bool" } }, { "kind": "body", "tag": "p", "path": "", "html": "If <1/>, the animation state is not updated visually.", "text": "If , the animation state is not updated visually.", "markers": { "1": "true" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTSubtree", "text": "BTSubtree", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTNewScope < BTDecorator < BTTask < BT", "text": "Inherits: BTNewScope BTDecorator BTTask BT", "markers": { "1": "BTNewScope", "2": "BTDecorator", "3": "BTTask", "4": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that instantiates and runs a subtree within the larger tree.", "text": "BT decorator that instantiates and runs a subtree within the larger tree.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTSubtree instantiates a BehaviorTree and includes its root task as a child during initialization, while also creating a new Blackboard scope.", "text": "BTSubtree instantiates a BehaviorTree and includes its root task as a child during initialization, while also creating a new Blackboard scope.", "markers": { "1": "BehaviorTree", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the status of the subtree’s execution.", "text": "Returns the status of the subtree’s execution.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Subtree blackboard variables can be mapped to the main tree blackboard plan variables. Check out mapping section in the inspector.", "text": "Subtree blackboard variables can be mapped to the main tree blackboard plan variables. Check out mapping section in the inspector.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Note: BTSubTree is designed as a simpler loader, and does not support updating subtree at runtime. A custom subtree decorator is better suited:", "text": "Note: BTSubTree is designed as a simpler loader, and does not support updating subtree at runtime. A custom subtree decorator is better suited:", "markers": { "1": "subtree" } }, { "kind": "body", "tag": "p", "path": "", "html": "This allows for the BehaviorTree to load a specific behavior tree from a variable in the blackboard, or from some other location, and use that new behavior tree at runtime.", "text": "This allows for the BehaviorTree to load a specific behavior tree from a variable in the blackboard, or from some other location, and use that new behavior tree at runtime.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "td", "path": "", "html": "subtree", "text": "subtree", "markers": { "1": "subtree" } }, { "kind": "body", "tag": "p", "path": "", "html": "subtree", "text": "subtree", "markers": { "1": "subtree" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree subtree 🔗", "text": "BehaviorTree subtree 🔗", "markers": { "1": "BehaviorTree", "2": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_subtree(value: BehaviorTree)", "text": " set_subtree(value: BehaviorTree)", "markers": { "1": "void", "2": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "BehaviorTree get_subtree()", "text": "BehaviorTree get_subtree()", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "p", "path": "", "html": "A BehaviorTree resource that will be instantiated as a subtree.", "text": "A BehaviorTree resource that will be instantiated as a subtree.", "markers": { "1": "BehaviorTree" } }, { "kind": "body", "tag": "h2", "path": "", "html": "BTTimeLimit", "text": "BTTimeLimit", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTDecorator < BTTask < BT", "text": "Inherits: BTDecorator BTTask BT", "markers": { "1": "BTDecorator", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT decorator that sets a time limit for its child’s execution.", "text": "BT decorator that sets a time limit for its child’s execution.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Description", "text": "Description", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "BTTimeLimit allocates a limited time for the child’s execution and aborts it, returning <1/> if the time_limit is exceeded.", "text": "BTTimeLimit allocates a limited time for the child’s execution and aborts it, returning if the time_limit is exceeded.", "markers": { "1": "FAILURE", "2": "time_limit" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns <1/> if the time_limit is exceeded; otherwise, it returns the status of the child task.", "text": "Returns if the time_limit is exceeded; otherwise, it returns the status of the child task.", "markers": { "1": "FAILURE", "2": "time_limit" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "time_limit", "text": "time_limit", "markers": { "1": "time_limit" } }, { "kind": "body", "tag": "p", "path": "", "html": "time_limit", "text": "time_limit", "markers": { "1": "time_limit" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> time_limit = <2/> 🔗", "text": " time_limit = 🔗", "markers": { "1": "float", "2": "5.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_time_limit(value: <2/>)", "text": " set_time_limit(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_time_limit()", "text": " get_time_limit()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "Time allocated for the child task’s execution.", "text": "Time allocated for the child task’s execution.", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTWait", "text": "BTWait", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that waits for a specified duration to elapse and then returns <2/>.", "text": "BT action that waits for a specified duration to elapse and then returns .", "markers": { "1": "duration", "2": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "duration", "text": "duration", "markers": { "1": "duration" } }, { "kind": "body", "tag": "p", "path": "", "html": "duration", "text": "duration", "markers": { "1": "duration" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> duration = <2/> 🔗", "text": " duration = 🔗", "markers": { "1": "float", "2": "1.0", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_duration(value: <2/>)", "text": " set_duration(value: )", "markers": { "1": "void", "2": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_duration()", "text": " get_duration()", "markers": { "1": "float" } }, { "kind": "body", "tag": "p", "path": "", "html": "There is currently no description for this property. Please help us by contributing one!", "text": "There is currently no description for this property. Please help us by contributing one!", "markers": {} }, { "kind": "body", "tag": "h2", "path": "", "html": "BTWaitTicks", "text": "BTWaitTicks", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits: BTAction < BTTask < BT", "text": "Inherits: BTAction BTTask BT", "markers": { "1": "BTAction", "2": "BTTask", "3": "BT" } }, { "kind": "body", "tag": "p", "path": "", "html": "BT action that waits for a specified number of ticks to elapse and then returns <1/>.", "text": "BT action that waits for a specified number of ticks to elapse and then returns .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Properties", "text": "Properties", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "num_ticks", "text": "num_ticks", "markers": { "1": "num_ticks" } }, { "kind": "body", "tag": "p", "path": "", "html": "num_ticks", "text": "num_ticks", "markers": { "1": "num_ticks" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Property Descriptions", "text": "Property Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> num_ticks = <2/> 🔗", "text": " num_ticks = 🔗", "markers": { "1": "int", "2": "1", "3": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> set_num_ticks(value: <2/>)", "text": " set_num_ticks(value: )", "markers": { "1": "void", "2": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_num_ticks()", "text": " get_num_ticks()", "markers": { "1": "int" } }, { "kind": "body", "tag": "p", "path": "", "html": "The number of ticks to wait before returning <1/>.", "text": "The number of ticks to wait before returning .", "markers": { "1": "SUCCESS" } }, { "kind": "body", "tag": "h2", "path": "", "html": "LimboUtility", "text": "LimboUtility", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Inherits:", "text": "Inherits:", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Helper functions for LimboAI.", "text": "Helper functions for LimboAI.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Methods", "text": "Methods", "markers": {} }, { "kind": "body", "tag": "td", "path": "", "html": "decorate_output_var(variable: <2/>) <3/>", "text": "decorate_output_var(variable: ) ", "markers": { "1": "decorate_output_var", "2": "String", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "decorate_output_var(variable: <2/>) <3/>", "text": "decorate_output_var(variable: ) ", "markers": { "1": "decorate_output_var", "2": "String", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "decorate_var(variable: <2/>) <3/>", "text": "decorate_var(variable: ) ", "markers": { "1": "decorate_var", "2": "String", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "decorate_var(variable: <2/>) <3/>", "text": "decorate_var(variable: ) ", "markers": { "1": "decorate_var", "2": "String", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_check_operator_string(check: CheckType) <3/>", "text": "get_check_operator_string(check: CheckType) ", "markers": { "1": "get_check_operator_string", "2": "CheckType", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_check_operator_string(check: CheckType) <3/>", "text": "get_check_operator_string(check: CheckType) ", "markers": { "1": "get_check_operator_string", "2": "CheckType", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_operation_string(operation: Operation) <3/>", "text": "get_operation_string(operation: Operation) ", "markers": { "1": "get_operation_string", "2": "Operation", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_operation_string(operation: Operation) <3/>", "text": "get_operation_string(operation: Operation) ", "markers": { "1": "get_operation_string", "2": "Operation", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_status_name(status: <2/>) <3/>", "text": "get_status_name(status: ) ", "markers": { "1": "get_status_name", "2": "int", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_status_name(status: <2/>) <3/>", "text": "get_status_name(status: ) ", "markers": { "1": "get_status_name", "2": "int", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "get_task_icon(class_or_script_path: <2/>) <3/>", "text": "get_task_icon(class_or_script_path: ) ", "markers": { "1": "get_task_icon", "2": "String", "3": "const" } }, { "kind": "body", "tag": "p", "path": "", "html": "get_task_icon(class_or_script_path: <2/>) <3/>", "text": "get_task_icon(class_or_script_path: ) ", "markers": { "1": "get_task_icon", "2": "String", "3": "const" } }, { "kind": "body", "tag": "td", "path": "", "html": "perform_check(check: CheckType, a: <3/>, b: <4/>)", "text": "perform_check(check: CheckType, a: , b: )", "markers": { "1": "perform_check", "2": "CheckType", "3": "Variant", "4": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "perform_check(check: CheckType, a: <3/>, b: <4/>)", "text": "perform_check(check: CheckType, a: , b: )", "markers": { "1": "perform_check", "2": "CheckType", "3": "Variant", "4": "Variant" } }, { "kind": "body", "tag": "td", "path": "", "html": "perform_operation(operation: Operation, a: <3/>, b: <4/>)", "text": "perform_operation(operation: Operation, a: , b: )", "markers": { "1": "perform_operation", "2": "Operation", "3": "Variant", "4": "Variant" } }, { "kind": "body", "tag": "p", "path": "", "html": "perform_operation(operation: Operation, a: <3/>, b: <4/>)", "text": "perform_operation(operation: Operation, a: , b: )", "markers": { "1": "perform_operation", "2": "Operation", "3": "Variant", "4": "Variant" } }, { "kind": "body", "tag": "h3", "path": "", "html": "Enumerations", "text": "Enumerations", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum CheckType: 🔗", "text": "enum CheckType: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType CHECK_EQUAL = <2/>", "text": "CheckType CHECK_EQUAL = ", "markers": { "1": "CheckType", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "Equality Check.", "text": "Equality Check.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType CHECK_LESS_THAN = <2/>", "text": "CheckType CHECK_LESS_THAN = ", "markers": { "1": "CheckType", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "Less Than Check.", "text": "Less Than Check.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType CHECK_LESS_THAN_OR_EQUAL = <2/>", "text": "CheckType CHECK_LESS_THAN_OR_EQUAL = ", "markers": { "1": "CheckType", "2": "2" } }, { "kind": "body", "tag": "p", "path": "", "html": "Less Than or Equal To Check.", "text": "Less Than or Equal To Check.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType CHECK_GREATER_THAN = <2/>", "text": "CheckType CHECK_GREATER_THAN = ", "markers": { "1": "CheckType", "2": "3" } }, { "kind": "body", "tag": "p", "path": "", "html": "Greater Than Check.", "text": "Greater Than Check.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType CHECK_GREATER_THAN_OR_EQUAL = <2/>", "text": "CheckType CHECK_GREATER_THAN_OR_EQUAL = ", "markers": { "1": "CheckType", "2": "4" } }, { "kind": "body", "tag": "p", "path": "", "html": "Greater Than or Equal To Check", "text": "Greater Than or Equal To Check", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "CheckType CHECK_NOT_EQUAL = <2/>", "text": "CheckType CHECK_NOT_EQUAL = ", "markers": { "1": "CheckType", "2": "5" } }, { "kind": "body", "tag": "p", "path": "", "html": "Inequality Check.", "text": "Inequality Check.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "enum Operation: 🔗", "text": "enum Operation: 🔗", "markers": { "1": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_NONE = <2/>", "text": "Operation OPERATION_NONE = ", "markers": { "1": "Operation", "2": "0" } }, { "kind": "body", "tag": "p", "path": "", "html": "No operation.", "text": "No operation.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_ADDITION = <2/>", "text": "Operation OPERATION_ADDITION = ", "markers": { "1": "Operation", "2": "1" } }, { "kind": "body", "tag": "p", "path": "", "html": "Arithmetic addition.", "text": "Arithmetic addition.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_SUBTRACTION = <2/>", "text": "Operation OPERATION_SUBTRACTION = ", "markers": { "1": "Operation", "2": "2" } }, { "kind": "body", "tag": "p", "path": "", "html": "Arithmetic subtraction.", "text": "Arithmetic subtraction.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_MULTIPLICATION = <2/>", "text": "Operation OPERATION_MULTIPLICATION = ", "markers": { "1": "Operation", "2": "3" } }, { "kind": "body", "tag": "p", "path": "", "html": "Arithmetic multiplication.", "text": "Arithmetic multiplication.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_DIVISION = <2/>", "text": "Operation OPERATION_DIVISION = ", "markers": { "1": "Operation", "2": "4" } }, { "kind": "body", "tag": "p", "path": "", "html": "Arithmetic division.", "text": "Arithmetic division.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_MODULO = <2/>", "text": "Operation OPERATION_MODULO = ", "markers": { "1": "Operation", "2": "5" } }, { "kind": "body", "tag": "p", "path": "", "html": "Produces the remainder of an integer division.", "text": "Produces the remainder of an integer division.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_POWER = <2/>", "text": "Operation OPERATION_POWER = ", "markers": { "1": "Operation", "2": "6" } }, { "kind": "body", "tag": "p", "path": "", "html": "Multiply <1/> by itself <2/> times.", "text": "Multiply by itself times.", "markers": { "1": "a", "2": "b" } }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_BIT_SHIFT_LEFT = <2/>", "text": "Operation OPERATION_BIT_SHIFT_LEFT = ", "markers": { "1": "Operation", "2": "7" } }, { "kind": "body", "tag": "p", "path": "", "html": "Bitwise left shift.", "text": "Bitwise left shift.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_BIT_SHIFT_RIGHT = <2/>", "text": "Operation OPERATION_BIT_SHIFT_RIGHT = ", "markers": { "1": "Operation", "2": "8" } }, { "kind": "body", "tag": "p", "path": "", "html": "Bitwise right shift.", "text": "Bitwise right shift.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_BIT_AND = <2/>", "text": "Operation OPERATION_BIT_AND = ", "markers": { "1": "Operation", "2": "9" } }, { "kind": "body", "tag": "p", "path": "", "html": "Bitwise AND.", "text": "Bitwise AND.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_BIT_OR = <2/>", "text": "Operation OPERATION_BIT_OR = ", "markers": { "1": "Operation", "2": "10" } }, { "kind": "body", "tag": "p", "path": "", "html": "Bitwise OR.", "text": "Bitwise OR.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "Operation OPERATION_BIT_XOR = <2/>", "text": "Operation OPERATION_BIT_XOR = ", "markers": { "1": "Operation", "2": "11" } }, { "kind": "body", "tag": "p", "path": "", "html": "Bitwise XOR.", "text": "Bitwise XOR.", "markers": {} }, { "kind": "body", "tag": "h3", "path": "", "html": "Method Descriptions", "text": "Method Descriptions", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> decorate_output_var(variable: <2/>) <3/> 🔗", "text": " decorate_output_var(variable: ) 🔗", "markers": { "1": "String", "2": "String", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Just like decorate_var, produces a string with a Blackboard variable name that is formatted for display, and also adds an additional symbol to indicate that the variable is used as an output.", "text": "Just like decorate_var, produces a string with a Blackboard variable name that is formatted for display, and also adds an additional symbol to indicate that the variable is used as an output.", "markers": { "1": "decorate_var", "2": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> decorate_var(variable: <2/>) <3/> 🔗", "text": " decorate_var(variable: ) 🔗", "markers": { "1": "String", "2": "String", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Produces a string with a Blackboard variable name that is formatted for display or console output.", "text": "Produces a string with a Blackboard variable name that is formatted for display or console output.", "markers": { "1": "Blackboard" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_check_operator_string(check: CheckType) <3/> 🔗", "text": " get_check_operator_string(check: CheckType) 🔗", "markers": { "1": "String", "2": "CheckType", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns an operator string for a CheckType enum value. For example, CHECK_EQUAL returns “==”.", "text": "Returns an operator string for a CheckType enum value. For example, CHECK_EQUAL returns “==”.", "markers": { "1": "CheckType", "2": "CHECK_EQUAL" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_operation_string(operation: Operation) <3/> 🔗", "text": " get_operation_string(operation: Operation) 🔗", "markers": { "1": "String", "2": "Operation", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns a string representation of an Operation enum value.", "text": "Returns a string representation of an Operation enum value.", "markers": { "1": "Operation" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_status_name(status: <2/>) <3/> 🔗", "text": " get_status_name(status: ) 🔗", "markers": { "1": "String", "2": "int", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns a name of a BTTask status code.", "text": "Returns a name of a BTTask status code.", "markers": { "1": "BTTask" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> get_task_icon(class_or_script_path: <2/>) <3/> 🔗", "text": " get_task_icon(class_or_script_path: ) 🔗", "markers": { "1": "Texture2D", "2": "String", "3": "const", "4": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Returns the icon texture associated with a task based on its class name or script resource path.", "text": "Returns the icon texture associated with a task based on its class name or script resource path.", "markers": {} }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> perform_check(check: CheckType, a: <3/>, b: <4/>) 🔗", "text": " perform_check(check: CheckType, a: , b: ) 🔗", "markers": { "1": "bool", "2": "CheckType", "3": "Variant", "4": "Variant", "5": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Performs a <1/> on two values, <2/> and <3/>, and returns <4/> if the check passes.", "text": "Performs a on two values, and , and returns if the check passes.", "markers": { "1": "check", "2": "a", "3": "b", "4": "true" } }, { "kind": "body", "tag": "p", "path": "", "html": "<1/> perform_operation(operation: Operation, a: <3/>, b: <4/>) 🔗", "text": " perform_operation(operation: Operation, a: , b: ) 🔗", "markers": { "1": "Variant", "2": "Operation", "3": "Variant", "4": "Variant", "5": "🔗" } }, { "kind": "body", "tag": "p", "path": "", "html": "Performs an <1/> on two values, <2/> and <3/>, and returns the result.", "text": "Performs an on two values, and , and returns the result.", "markers": { "1": "operation", "2": "a", "3": "b" } }, { "kind": "nav", "tag": "span", "path": "", "html": "Getting started", "text": "Getting started", "markers": {} }, { "kind": "nav", "tag": "span", "path": "", "html": "Behavior Trees", "text": "Behavior Trees", "markers": {} }, { "kind": "nav", "tag": "span", "path": "", "html": "Hierarchical State MachineS", "text": "Hierarchical State MachineS", "markers": {} }, { "kind": "nav", "tag": "span", "path": "", "html": "Class reference", "text": "Class reference", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Getting LimboAI", "text": "Getting LimboAI", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Using LimboAI with C#", "text": "Using LimboAI with C#", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Contributing", "text": "Contributing", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Introduction to Behavior Trees", "text": "Introduction to Behavior Trees", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Creating Behavior Trees", "text": "Creating Behavior Trees", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Creating custom tasks", "text": "Creating custom tasks", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Sharing data using Blackboard", "text": "Sharing data using Blackboard", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Accessing nodes in the scene tree", "text": "Accessing nodes in the scene tree", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Create State Machines", "text": "Create State Machines", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Important classes", "text": "Important classes", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBAabb", "text": "BBAabb", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBArray", "text": "BBArray", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBBasis", "text": "BBBasis", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBBool", "text": "BBBool", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBByteArray", "text": "BBByteArray", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBColor", "text": "BBColor", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBColorArray", "text": "BBColorArray", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBDictionary", "text": "BBDictionary", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBFloat", "text": "BBFloat", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBFloat32Array", "text": "BBFloat32Array", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBFloat64Array", "text": "BBFloat64Array", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBInt", "text": "BBInt", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBInt32Array", "text": "BBInt32Array", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBInt64Array", "text": "BBInt64Array", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBNode", "text": "BBNode", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBParam", "text": "BBParam", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBPlane", "text": "BBPlane", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBProjection", "text": "BBProjection", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBQuaternion", "text": "BBQuaternion", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBRect2", "text": "BBRect2", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBRect2i", "text": "BBRect2i", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBString", "text": "BBString", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBStringArray", "text": "BBStringArray", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBStringName", "text": "BBStringName", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBTransform2D", "text": "BBTransform2D", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBTransform3D", "text": "BBTransform3D", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVariant", "text": "BBVariant", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector2", "text": "BBVector2", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector2Array", "text": "BBVector2Array", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector2i", "text": "BBVector2i", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector3", "text": "BBVector3", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector3Array", "text": "BBVector3Array", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector3i", "text": "BBVector3i", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector4", "text": "BBVector4", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BBVector4i", "text": "BBVector4i", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BehaviorTree", "text": "BehaviorTree", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BehaviorTreeData", "text": "BehaviorTreeData", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BehaviorTreeView", "text": "BehaviorTreeView", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "Blackboard", "text": "Blackboard", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BlackboardPlan", "text": "BlackboardPlan", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BT", "text": "BT", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTAction", "text": "BTAction", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTAlwaysFail", "text": "BTAlwaysFail", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTAlwaysSucceed", "text": "BTAlwaysSucceed", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTAwaitAnimation", "text": "BTAwaitAnimation", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTCallMethod", "text": "BTCallMethod", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTCheckAgentProperty", "text": "BTCheckAgentProperty", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTCheckTrigger", "text": "BTCheckTrigger", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTCheckVar", "text": "BTCheckVar", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTComment", "text": "BTComment", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTComposite", "text": "BTComposite", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTCondition", "text": "BTCondition", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTConsolePrint", "text": "BTConsolePrint", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTCooldown", "text": "BTCooldown", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTDecorator", "text": "BTDecorator", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTDelay", "text": "BTDelay", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTDynamicSelector", "text": "BTDynamicSelector", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTDynamicSequence", "text": "BTDynamicSequence", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTEvaluateExpression", "text": "BTEvaluateExpression", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTFail", "text": "BTFail", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTForEach", "text": "BTForEach", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTInstance", "text": "BTInstance", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTInvert", "text": "BTInvert", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTNewScope", "text": "BTNewScope", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTParallel", "text": "BTParallel", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTPauseAnimation", "text": "BTPauseAnimation", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTPlayAnimation", "text": "BTPlayAnimation", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTPlayer", "text": "BTPlayer", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTProbability", "text": "BTProbability", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTProbabilitySelector", "text": "BTProbabilitySelector", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRandomSelector", "text": "BTRandomSelector", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRandomSequence", "text": "BTRandomSequence", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRandomWait", "text": "BTRandomWait", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRepeat", "text": "BTRepeat", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRepeatUntilFailure", "text": "BTRepeatUntilFailure", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRepeatUntilSuccess", "text": "BTRepeatUntilSuccess", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTRunLimit", "text": "BTRunLimit", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTSelector", "text": "BTSelector", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTSequence", "text": "BTSequence", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTSetAgentProperty", "text": "BTSetAgentProperty", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTSetVar", "text": "BTSetVar", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTState", "text": "BTState", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTStopAnimation", "text": "BTStopAnimation", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTSubtree", "text": "BTSubtree", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTTask", "text": "BTTask", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTTimeLimit", "text": "BTTimeLimit", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTWait", "text": "BTWait", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "BTWaitTicks", "text": "BTWaitTicks", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "LimboHSM", "text": "LimboHSM", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "LimboState", "text": "LimboState", "markers": {} }, { "kind": "nav", "tag": "a", "path": "", "html": "LimboUtility", "text": "LimboUtility", "markers": {} } ]