LimboAI - Behavior Trees and State Machines for Godot 4
LimboState::get_root
and dispatch
freeze the process in case of nested HSMs by @limbonaut in https://github.com/limbonaut/limboai/pull/93
Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0.1...v1.0.2
BlackboardPlan
fixes by @limbonaut in https://github.com/limbonaut/limboai/pull/85
Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0...v1.0.1
LimboAI version 1.0 is finally here after months of intensive coding and refining! 🧠🔧 Now with GDExtension support, a new powerful blackboard system, improved editor, awesome demo project, and much more! 🥳
blackboard_data
is replaced with new BlackboardPlan
system (see below).
BehaviorTree
resource and override those variables in the BTPlayer
node.
Blackboard
instances.
BehaviorTree
resource, using its BlackboardPlan
property.BTPlayer
also has its own BlackboardPlan
which extends the behavior tree BlackboardPlan
resource, i.e. variables from the BehaviorTree
resource are overridden in the BTPlayer
node.NodePath
prefetching is now enabled/disabled in the BlackboardPlan
editor.blackboard.bind_var()
method.
blackboard.link_var()
method at runtime.
StringName
property in a custom task that ends with "_var" and also for exported BBParam
properties.BTSubtree
decorator).Expression
against a node or object (thanks @Rubonnek).count_policy
property.
LimboHSM
, LimboState
, and BTState
code.LimboHSM
transitions to self when ANYSTATE
is used.LimboState::dispatch
to be called from inside the hierarchy.state_changed
signal.BTState
not honoring API virtual methods.BehaviorTreeView
.BehaviorTreeView
and BehaviorTreeData
to use with custom in-game tools.StringName
for blackboard variables and HSM events.ClassDB
bindings.LimboUtility
(for custom tasks).LimboUtility
(for custom tasks)._generate_name
.Blackboard::get_var
if variable is missing.BTProbability
showing incorrect percentage.TypedArray<BBVariant>
size (thanks @Rubonnek).BehaviorTreeView::update_tree
null data crash (thanks @Rubonnek).Full Changelog: https://github.com/limbonaut/limboai/compare/v0.5...v1.0
LimboAI 1.0 RC3 is out now 🚀 bringing us a step closer to the stable release with a number of small fixes and improvements.
BlackboardPlan
and add checkbox to the plan editor.Blackboard::link_var
.BTState
not honoring API virtual methods.BehaviorTreeView::update_tree
null data crash (thanks @Rubonnek).BlackboardPlan
factory methods.task_selected
signal for BehaviorTreeView.StringName
for blackboard variables and HSM events.ClassDB
bindings.state_changed
signal.LimboState::dispatch
to be called from inside the hierarchy.BehaviorTreeView::clear
to GDScript (thanks @Rubonnek).BlackboardPlan
methods for custom tooling.BehaviorTreeView
.BTEvaluateExpression
task : Evaluate an Expression
against a node or object (thanks @Rubonnek).TypedArray<BBVariant>
size (thanks @Rubonnek).Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0-rc1...v1.0-rc2
count_policy
property.
BehaviorTreeView
and BehaviorTreeData
to use with custom in-game tools.
BehaviorTreeView
received improvements.BTProbability
showing incorrect percentageLimboHSM
transitions to self when ANYSTATE
is used_generate_name
Blackboard
: get_var
now complains when variable is missingBlackboard
system:
blackboard_data
is replaced with new BlackboardPlan
system (see below).
BehaviorTree
resource and override those variables in the BTPlayer
node.
BlackboardPlan
resource: Stores and manages a collection of variables, and is used to construct new Blackboard
instances.
BehaviorTree
resource, using its BlackboardPlan
property.BTPlayer
also has its own BlackboardPlan
which extends the behavior tree BlackboardPlan
resource, i.e. variables from the BehaviorTree resource are overridden in the BTPlayer node.BlackboardPlan
Editor
blackboard.bind_var()
method.BBParam
-derived parameters.BBVariable
object holds the value of a blackboard variable and its metadata (not exposed to the API).LimboHSM
and LimboState
code.GDVIRTUAL*
macros.
@warning_ignore
for custom task methods is no longer needed!BBParam
types.LimboHSM
and LimboState
code.BBParam
editor: Handy custom property editor for blackboard parameters.
BBVariant
).BTCallMethod
improvements:
BTSubtree
decorator).LimboDebugger
crash when EngineDebugger
is not active. Thanks, @Rubonnek!Blackboard
and BTPlayer
.BTCheckVar
performs erroneous equality check.Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0-rc2...v1.0-rc3
BehaviorTreeView
.BTEvaluateExpression
task : Evaluate an Expression
against a node or object (thanks @Rubonnek).TypedArray<BBVariant>
size (thanks @Rubonnek).Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0-rc1...v1.0-rc2
count_policy
property.
BehaviorTreeView
and BehaviorTreeData
to use with custom in-game tools.
BehaviorTreeView
received improvements.BTProbability
showing incorrect percentageLimboHSM
transitions to self when ANYSTATE
is used_generate_name
Blackboard
: get_var
now complains when variable is missingBlackboard
system:
blackboard_data
is replaced with new BlackboardPlan
system (see below).
BehaviorTree
resource and override those variables in the BTPlayer
node.
BlackboardPlan
resource: Stores and manages a collection of variables, and is used to construct new Blackboard
instances.
BehaviorTree
resource, using its BlackboardPlan
property.BTPlayer
also has its own BlackboardPlan
which extends the behavior tree BlackboardPlan
resource, i.e. variables from the BehaviorTree resource are overridden in the BTPlayer node.BlackboardPlan
Editor
blackboard.bind_var()
method.BBParam
-derived parameters.BBVariable
object holds the value of a blackboard variable and its metadata (not exposed to the API).LimboHSM
and LimboState
code.GDVIRTUAL*
macros.
@warning_ignore
for custom task methods is no longer needed!BBParam
types.LimboHSM
and LimboState
code.BBParam
editor: Handy custom property editor for blackboard parameters.
BBVariant
).BTCallMethod
improvements:
BTSubtree
decorator).LimboDebugger
crash when EngineDebugger
is not active. Thanks, @Rubonnek!Blackboard
and BTPlayer
.BTCheckVar
performs erroneous equality check.count_policy
property.
BehaviorTreeView
and BehaviorTreeData
to use with custom in-game tools.
BehaviorTreeView
received improvements.BTProbability
showing incorrect percentageLimboHSM
transitions to self when ANYSTATE
is used_generate_name
Blackboard
: get_var
now complains when variable is missingBlackboard
system:
blackboard_data
is replaced with new BlackboardPlan
system (see below).
BehaviorTree
resource and override those variables in the BTPlayer
node.
BlackboardPlan
resource: Stores and manages a collection of variables, and is used to construct new Blackboard
instances.
BehaviorTree
resource, using its BlackboardPlan
property.BTPlayer
also has its own BlackboardPlan
which extends the behavior tree BlackboardPlan
resource, i.e. variables from the BehaviorTree resource are overridden in the BTPlayer node.BlackboardPlan
Editor
blackboard.bind_var()
method.BBParam
-derived parameters.BBVariable
object holds the value of a blackboard variable and its metadata (not exposed to the API).LimboHSM
and LimboState
code.GDVIRTUAL*
macros.
@warning_ignore
for custom task methods is no longer needed!BBParam
types.LimboHSM
and LimboState
code.BBParam
editor: Handy custom property editor for blackboard parameters.
BBVariant
).BTCallMethod
improvements:
BTSubtree
decorator).LimboDebugger
crash when EngineDebugger
is not active. Thanks, @Rubonnek!Blackboard
and BTPlayer
.BTCheckVar
performs erroneous equality check.Blackboard
system:
blackboard_data
is replaced with new BlackboardPlan
system (see below).
BehaviorTree
resource and override those variables in the BTPlayer
node.
BlackboardPlan
resource: Stores and manages a collection of variables, and is used to construct new Blackboard
instances.
BehaviorTree
resource, using it's BlackboardPlan
property.BTPlayer
also has its own BlackboardPlan
which extends the behavior tree BlackboardPlan
resource, i.e. variables from the BehaviorTree resource are overridden in the BTPlayer node.BlackboardPlan
Editor
blackboard.bind_var()
method.BBParam
-derived parameters.BBVariable
object holds the value of a blackboard variable and its metadata (not exposed to the API).LimboHSM
and LimboState
code.GDVIRTUAL*
macros.
@warning_ignore
for custom task methods is no longer needed!BBParam
types.LimboHSM
and LimboState
code.BBParam
editor: Handy custom property editor for blackboard parameters.
BBVariant
).BTCallMethod
improvements:
BTSubtree
decorator).LimboDebugger
crash when EngineDebugger
is not active. Thanks, @Rubonnek!Blackboard
and BTPlayer
.BTCheckVar
performs erroneous equality check.GDVIRTUAL*
macros.
@warning_ignore
for custom task methods is no longer needed!BBParam
types.LimboHSM
and LimboState
code.BBParam
editor: Handy custom property editor for blackboard parameters.
BBVariant
).BTCallMethod
improvements:
BTSubtree
decorator).LimboDebugger
crash when EngineDebugger
is not active. Thanks, @Rubonnek!Blackboard
and BTPlayer
.BTCheckVar
performs erroneous equality check.🎉 Good news, everyone! 🎉
GDExtension support is coming to LimboAI, and it will be going v1.0 in a few weeks. To celebrate that occasion, we decided to make a pre-release version. If you'd like to help with testing, grab a build below and feel free to open an issue if you encounter a bug. It's also coming to Asset Library soon! 🚀
BBParam
editor: Handy custom property editor for blackboard parameters.
BBVariant
).BTCallMethod
improvements:
BTSubtree
decorator).LimboDebugger
crash when EngineDebugger
is not active. Thanks, @Rubonnek!Blackboard
and BTPlayer
.BTCheckVar
performs erroneous equality check.Have a nice day!
🎉 Good news, everyone! 🎉
LimboAI v0.5 is released, bringing numerous quality of life improvements, new tasks and Godot 4.2 support!
BTProbabilitySelector
: New composite with a convenient probability editing popup.BTSetVar
, BTCheckVar
, BTCheckTrigger
.BTCheckAgentProperty
, BTSetAgentProperty
.BTPlayAnimation
, BTAwaitAnimation
, BTPauseAnimation
, BTStopAnimation
.BTCallMethod
: Call a method on a node or object.BTComment
task.forever
mode to the BTRepeat
task.master
branch.BBVariant
and Inspector.TaskStatus
enum instead of integers.abort
method in the BTTask
class to support custom BT player implementations.