How limbonaut/limboai works
LimboAI is a Godot C++ AI plugin. A game scene runs a BehaviorTree through BTPlayer: the player instantiates a runtime tree, which executes its task hierarchy using shared blackboard data. Separately, LimboHSM manages hierarchical states and event-driven transitions; BTState supports combining state machines with trees. The editor provides tree and blackboard authoring plus live debugging and visualization. The README documents additional task categories and capabilities beyond the sampled excerpts; their wiring is shown only where supported by those excerpts or explicit documentation.
Main entry points: bt_player.cpp BTPlayer · bt_task.cpp Task Hierarchy · bt_instance.cpp BTInstance · limbo_ai_editor_plugin.cpp Editor Plugin
Components 20
Behavior Trees
- BTPlayer
bt/bt_player.cpp - BehaviorTree
bt/behavior_tree.cpp - BTInstance
bt/bt_instance.cpp - Task Hierarchy
bt/tasks/bt_task.cpp - Task Families
bt/tasks/composites/bt_sequence.cpp - Scene Tasks
bt/tasks/scene/bt_play_animation.cpp
Blackboard Data
- Blackboard
blackboard/blackboard.cpp - Blackboard Plan
blackboard/blackboard_plan.cpp - BB Parameters
blackboard/bb_param/bb_param.cpp
State Machines
- LimboHSM
hsm/limbo_hsm.cpp - LimboState
hsm/limbo_state.cpp - BTState
hsm/limbo_state.h
Editor and Debugger
- Editor Plugin
editor/limbo_ai_editor_plugin.cpp - Task Tree Editor
editor/task_tree.cpp - Plan Editor
editor/blackboard_plan_editor.cpp - Visual Debugger
editor/debugger/limbo_debugger_plugin.cpp - BehaviorTreeView
editor/debugger/behavior_tree_view.cpp
Godot Runtime
- Game Scene
- Godot Engine
Other components
- Game Developer
Connections 24
- Game Developer → Editor Plugin: authors AI
- Editor Plugin → Task Tree Editor: opens editor
- Editor Plugin → Plan Editor: opens editor
- Task Tree Editor → BehaviorTree: edits resource
- Plan Editor → Blackboard Plan: edits variables
- Game Scene → BTPlayer: runs tree
- BTPlayer → BehaviorTree: instantiates
- BTPlayer → Blackboard Plan: populates blackboard
- BTPlayer → BTInstance: updates
- BehaviorTree → BTInstance: creates instance
- BTInstance → Task Hierarchy: executes root
- Task Hierarchy → Task Families: composes tasks
- Task Hierarchy → Blackboard: uses data
- Task Hierarchy → BB Parameters: resolves parameters
- Task Hierarchy → Scene Tasks: includes scene actions
- Scene Tasks → Game Scene: acts on agent
- Game Scene → LimboHSM: hosts state machine
- LimboHSM → LimboState: manages states
- LimboState → LimboHSM: dispatches events
- BTState → BTInstance: runs behavior tree
- BTInstance → Visual Debugger: registers runtime
- Visual Debugger → BehaviorTreeView: visualizes execution
- Editor Plugin → Godot Engine: integrates editor
- BTPlayer → Godot Engine: runs in scene