:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/4.2/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/4.2/modules/limboai/doc_classes/Blackboard.xml. .. _class_Blackboard: Blackboard ========== **Inherits:** A key/value storage for sharing among :ref:`LimboHSM` states and :ref:`BehaviorTree` tasks. .. rst-class:: classref-introduction-group Description ----------- Blackboard is where data is stored and shared between states in the :ref:`LimboHSM` system and tasks in a :ref:`BehaviorTree`. Each state and task in the :ref:`BehaviorTree` can access this Blackboard, allowing them to read and write data. This makes it easy to share information between different actions and behaviors. 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. New scopes can be created using the :ref:`BTNewScope` and :ref:`BTSubtree` decorators. Additionally, a new scope is automatically created for any :ref:`LimboState` that has defined non-empty Blackboard data or for any root-level :ref:`LimboHSM` node. .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`erase_var` **(** Variant p_key **)** | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | Dictionary | :ref:`get_data` **(** **)** |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Blackboard` | :ref:`get_parent_scope` **(** **)** |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | Variant | :ref:`get_var` **(** Variant p_key, Variant p_default=null **)** |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | bool | :ref:`has_var` **(** Variant p_key **)** |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`prefetch_nodepath_vars` **(** Node p_node **)** | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_data` **(** Dictionary p_data **)** | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_parent_scope` **(** :ref:`Blackboard` p_blackboard **)** | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_var` **(** Variant p_key, Variant p_value **)** | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Blackboard` | :ref:`top` **(** **)** |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_Blackboard_method_erase_var: .. rst-class:: classref-method void **erase_var** **(** Variant p_key **)** Removes a variable by its name. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_get_data: .. rst-class:: classref-method Dictionary **get_data** **(** **)** |const| Returns Blackboard data as a ``Dictionary``. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_get_parent_scope: .. rst-class:: classref-method :ref:`Blackboard` **get_parent_scope** **(** **)** |const| Returns a Blackboard that serves as the parent scope for this instance. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_get_var: .. rst-class:: classref-method Variant **get_var** **(** Variant p_key, Variant p_default=null **)** |const| Returns variable value. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_has_var: .. rst-class:: classref-method bool **has_var** **(** Variant p_key **)** |const| Returns ``true`` if the Blackboard contains the ``p_key`` variable, including the parent scopes. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_prefetch_nodepath_vars: .. rst-class:: classref-method void **prefetch_nodepath_vars** **(** Node p_node **)** If ``true``, any ``NodePath`` variables in the **Blackboard** are replaced with ``Node`` references when the tree is instantiated. References are retrieved by calling :ref:`Node.get_node` on the agent instance. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_set_data: .. rst-class:: classref-method void **set_data** **(** Dictionary p_data **)** Overwrites Blackboard data, replacing any previously stored variables within current scope. Use with caution. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_set_parent_scope: .. rst-class:: classref-method void **set_parent_scope** **(** :ref:`Blackboard` p_blackboard **)** 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. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_set_var: .. rst-class:: classref-method void **set_var** **(** Variant p_key, Variant p_value **)** Assigns a value to a Blackboard variable. .. rst-class:: classref-item-separator ---- .. _class_Blackboard_method_top: .. rst-class:: classref-method :ref:`Blackboard` **top** **(** **)** |const| Returns the topmost **Blackboard** in the scope chain. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`