Creator · jame581
Last updated · Sep 3, 2026
Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger
Creator · jame581
Last updated · Sep 3, 2026
Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger
Creator · jame581
Last updated · Sep 3, 2026
Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger
Creator · jame581
Last updated · Sep 3, 2026
Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger
Review then install
Install targets
Codex install prompt
Install the "beehave" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/beehave. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"jame581-beehave","task":"Install beehave","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add jame581/GodotPrompter --skill beehave
Maintenance
fresh
26d since push
Risk
Safe to try
Quality score needs review
GitHub quality
655
75/100 Quality · 82/100 Trust
Coverage tags
Review notes
Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Review then installGood shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Use as the primary candidate after human or sandbox review.
Stars
655 GitHub stars
Repo activity
655 stars, 31 forks
Maintenance
26d since push
License
MIT
Install
npx skills add jame581/GodotPrompter --skill beehave
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add jame581/GodotPrompter --skill beehaveDo not use when
Alternative
175.1K Stars
npx skills add anthropics/skills --skill frontend-design
Alternative
85.2K Stars
npx skills add Leonxlnx/taste-skill --skill design-taste-frontend
Alternative
1.8K Stars
npx skills add Alisa0808/vox-director --skill vox-director
Alternative
175.1K Stars
npx skills add anthropics/skills --skill canvas-design
Agent safety v2
Good audit and safety signals with no high-risk permission hints in public metadata.
Review the audit page, then allow agent install in a sandboxed workflow.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/jame581-beehave/install
Agent should check
Copy prompt
Task: Use beehave in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/jame581-beehave/install
Install command: npx skills add jame581/GodotPrompter --skill beehave
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/jame581-beehave/install
LLM text format
/api/skills/jame581-beehave/install?format=text
Find alternatives
/api/skills/search?q=beehave&limit=3
Agent prompt
Use beehave for this task. Review https://www.openagentskill.com/api/skills/jame581-beehave/install, then install with: npx skills add jame581/GodotPrompter --skill beehaveRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/jame581-beehave
LLM text
/api/registry/manifest/jame581-beehave?format=text
Install alias
/api/registry/install/jame581-beehave
Recommend
/api/registry/recommend?task=Use%20beehave%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Good shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
GitHub adoption
INFO655 GitHub stars
Stars/forks activity
INFO655 stars, 31 forks; issue activity unavailable in current metadata
Recent maintenance
PASS26d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Use as the primary candidate after human or sandbox review.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
--- name: beehave description: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger ---
# Beehave
> **Related skills:** **ai-navigation** for the movement leaves drive, **state-machine** for core-engine FSM, **limboai** for a heavier C++ BT+HSM alternative, **godot-brainstorming** for choosing an AI approach.
> **Addon:** Beehave · version `v2.9.2` · Godot 4.1+ · MIT · source: https://github.com/bitbrain/beehave · written in GDScript (no official C# API — this skill is GDScript-only by design).
---
## 1. When to use Beehave
| Approach | Best for | |---|---| | Core-engine FSM (`state-machine` skill) | Simple agents, < 5 states, no addon | | **Beehave** (GDScript addon) | Lightweight BT, GDScript-only projects, fast iteration | | **LimboAI** | BT **and** HSM together, visual editor, C++ performance, C# support (module build) |
Choose Beehave when your project is GDScript-only, you want a behavior tree without a custom engine build, and you value a simple node-in-scene-tree authoring workflow. Beehave trees live entirely in the scene tree — every composite, decorator, and leaf is a regular `Node` child. For a heavier C++/C# solution with HSM integration, use the `limboai` skill instead. For plain state machines without a BT, use the built-in `state-machine` skill.
**C# note:** Beehave has no official C# API (zero `.cs` files in `addons/beehave/`). From C# you can call the GDScript API via Godot cross-language interop (`GetNode<Node>(...).Call("tick", actor, blackboard)`), but Beehave provides no typed C# classes.
---
## 2. Install & enable
1. **Godot AssetLib** → search "Beehave" → Download → Reload project. Or copy the `addons/beehave/` folder from the [GitHub release](https://github.com/bitbrain/beehave/releases) into `res://addons/beehave/`. 2. Enable the plugin: **Project → Project Settings → Plugins** → tick **Beehave**. Two autoloads are registered: `BeehaveGlobalMetrics` and `BeehaveGlobalDebugger`. 3. Optional — copy `script_templates/` from the addon into the project root for leaf scaffolding templates.
---
## 3. Tree composition
A Beehave tree is built from three kinds of nodes, all placed as regular scene-tree children:
| Role | Node | Behavior | |---|---|---| | **Tree root** | `BeehaveTree` | Ticks the child every frame (or physics/manual); extends `Node` (not `BeehaveNode`) | | **Composites** | `SequenceComposite`, `SelectorComposite`, `SimpleParallelComposite`, … | Flow control — AND / OR / parallel logic | | **Decorators** | `InverterDecorator`, `CooldownDecorator`, `RepeaterDecorator`, … | Wrap one child to modify its result | | **Leaves** | `ActionLeaf`, `ConditionLeaf` subclasses | Your custom game logic |
### Composite quick reference
| Class | Logic | |---|---| | `SequenceComposite` | AND — all children must succeed; fails on first failure | | `SequenceReactiveComposite` | AND — re-evaluates from first child every tick while running | | `SelectorComposite` | OR — succeeds on first success; fails if all fail | | `SelectorReactiveComposite` | OR — re-evaluates from first child every tick while running | | `SimpleParallelComposite` | Runs two children simultaneously; result follows primary (child 0) | | `SequenceRandomComposite` | Shuffled AND — executes children in random order | | `SelectorRandomComposite` | Shuffled OR — tries children in random order |
### Decorator quick reference
| Class | Effect | |---|---| | `InverterDecorator` | Flips `SUCCESS` ↔ `FAILURE`; passes `RUNNING` through | | `AlwaysSucceedDecorator` | Forces `SUCCESS`; passes `RUNNING` through | | `AlwaysFailDecorator` | Forces `FAILURE`; passes `RUNNING` through | | `RepeaterDecorator` | Re-runs child until it succeeds `repetitions` times | | `LimiterDecorator` | Caps child to `max_count` running ticks, then `FAILURE` | | `CooldownDecorator` | Blocks re-execution for `wait_time` seconds after child finishes | | `TimeLimiterDecorator` | Gives child `wait_time` seconds; interrupts if still running | | `DelayDecorator` | Waits `wait_time` seconds before first executing child | | `UntilFailDecorator` | Loops child until it returns `FAILURE`, then returns `SUCCESS` |
### Minimal scene-tree example
```gdscript # Scene tree: # Enemy (CharacterBody2D) # BeehaveTree ← tick_rate = 1, process_thread = PHYSICS # SelectorComposite # SequenceComposite ← "attack if in range" # IsInRangeCondition # AttackAction # PatrolAction ← fallback
# BeehaveTree exports: # @export var enabled: bool = true # @export var tick_rate: int = 1 (1 = every frame; 3 = every 3 frames) # @export var process_thread: ProcessThread = PHYSICS # @export var blackboard: Blackboard (auto-created if not set) # @export_node_path var actor_node_path (defaults to parent node)
# Access the tree from code if you need manual control: @onready var bt: BeehaveTree = $BeehaveTree
func _ready() -> void: # Reduce tick cost: evaluate AI every 3 physics frames bt.tick_rate = 3 # Default process_thread is PHYSICS — switch to IDLE if actor uses _process bt.process_thread = BeehaveTree.ProcessThread.IDLE ```
> **tick_rate note:** `tick_rate = 1` evaluates every frame; `tick_rate = 3` every 3 frames. Increase for distant/background NPCs to save CPU. Default process thread is `PHYSICS` — if the actor script uses `_process` instead of `_physics_process`, set `process_thread = IDLE` to keep them in sync.
---
## 4. The leaf contract
Leaves hold your game logic. Subclass `ActionLeaf` for multi-tick work or `ConditionLeaf` for single-frame checks, then override `tick(actor, blackboard)`.
```gdscript # IsInRangeCondition.gd class_name IsInRangeCondition extends ConditionLeaf
@export var detection_range: float = 150.0
func tick(actor: Node, blackboard: Blackboard) -> int: # Beehave types `actor` as Node; cast to your concrete type for 2D members. var body := actor as Node2D var target: Node2D = blackboard.get_value("target") if body == null or not is_instance_valid(target): return FAILURE var in_range := body.global_position.distance_to(target.global_position) <= detection_range return SUCCESS if in_range else FAILURE ```
```gdscript # AttackAction.gd class_name AttackAction extends ActionLeaf
@export var attack_duration: float = 0.5
func tick(actor: Node, blackboard: Blackboard) -> int: var elapsed: float = blackboard.get_value("attack_elapsed", 0.0) elapsed += get_physics_process_delta_time()
if elapsed >= attack_duration: blackboard.erase_value("attack_elapsed") # `actor` is typed Node; guard game-specific methods (or cast to your actor type). if actor.has_method("play_attack_animation"): actor.call("play_attack_animation") return SUCCESS
blackboard.set_value("attack_elapsed", elapsed) return RUNNING
func after_run(actor: Node, blackboard: Blackboard) -> void: # Clean up any per-run state when the tree interrupts this action blackboard.erase_value("attack_elapsed") ```
**Return codes** (defined on `BeehaveNode`): - `SUCCESS` — action complete / condition met. - `FAILURE` — action failed / condition not met; parent composite decides what to do next. - `RUNNING` — action needs more frames; tree will call `tick()` again next frame (`ActionLeaf` only — `ConditionLeaf` should never return `RUNNING`).
**Optional overrides:** - `before_run(actor, blackboard)` — called once before the first tick of a run. - `after_run(actor, blackboard)` — called when the child finishes (`SUCCESS`/`FAILURE`) or is interrupted. - `interrupt(actor, blackboard)` — called when the tree interrupts a running node.
---
## 5. Blackboard
The `Blackboard` node is a shared key/value store passed to every `tick()` call. `BeehaveTree` auto-creates an internal one if you don't assign an external `Blackboard` node.
```gdscript # Share one Blackboard across multiple BeehaveTrees on the same actor. # Assign the same exported Blackboard node to each tree in the Inspector.
# Read / write from any leaf's tick(): func tick(actor: Node, blackboard: Blackboard) -> int: # Write blackboard.set_value("target", actor.get_nearest_enemy())
# Read with default var speed: float = blackboard.get_value("move_speed", 200.0)
# Conditional check if blackboard.has_value("stunned"): return FAILURE
# Erase (sets key to null; has_value returns false after erase) blackboard.erase_value("temp_flag")
return SUCCESS ```
> **Named namespaces:** every method accepts an optional `blackboard_name: String` parameter (default `"default"`). Use this to keep separate namespaces on one `Blackboard` node without name collisions (e.g., per-enemy state vs. shared world state).
> **Built-in expression leaves:** `BlackboardSetAction`, `BlackboardEraseAction`, `BlackboardHasCondition`, and `BlackboardCompareCondition` let you manipulate the Blackboard entirely via Inspector exports (no GDScript required). Expressions run via Godot's `Expression.execute([], blackboard)` — so you can call `get_value("key")` directly in the expression string.
---
## 6. Visual debugger
Beehave ships an `EditorDebuggerPlugin` that adds a **🐝 Beehave** tab to the bottom editor panel while your game is running:
1. Run the project from the Godot editor. 2. Open the **Debugger** panel → click the **🐝 Beehave** tab. 3. Select a tree from the list to activate live visualization — active nodes are highlighted each tick. 4. Optional: click the detach button to float the panel, or set **Project Settings → beehave/debugger/start_detached = true** to always start detached.
To track per-tree CPU cost in the **Performance** panel, set `custom_monitor = true` on the `BeehaveTree` node. This registers `beehave [microseconds]/process_time_<actor_name>-<id>` as a Performance monitor.
For a walkthrough of writing custom decorators and conditions, see [references/custom-nodes.md](references/custom-nodes.md).
---
## Implementation checklist
- [ ] `addons/beehave/` copied into project; plugin enabled in **Project Settings → Plugins** - [ ] `BeehaveTree` added as a child of the actor; `actor_node_path` set (or left blank to default to parent) - [ ] `process_thread` matches actor's loop: `PHYSICS` for `_physics_process`, `IDLE` for `_process` - [ ] `tick_rate` tuned — increase for background NPCs (e.g., `3`) to reduce per-frame cost - [ ] Every `tick()` override returns `SUCCESS`, `FAILURE`, or `RUNNING` — never `void`/`null` - [ ] `ConditionLeaf` subclasses never return `RUNNING` - [ ] Per-run state written to the `Blackboard`, not stored on the leaf node itself (leaf nodes are shared) - [ ] `after_run` or `interrupt` cleans up any Blackboard keys the action wrote - [ ] External `Blackboard` node exported and shared when multiple `BeehaveTree` nodes need the same data - [ ] Visual debugger checked at runtime to verify tick flow before shipping AI logic
Source provenance
Decision snapshot
655 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for beehave, ready for a manual X post.
beehave: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators,... 655 stars https://www.openagentskill.com/skills/jame581-beehave?ref=x
Listing + install path for beehave: https://www.openagentskill.com/skills/jame581-beehave?ref=x Install: npx skills add jame581/GodotPrompter --skill beehave
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to jame581 but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave/audit)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)jame581
@jame581
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Review then install
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
175.1K StarsTaste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
85.2K StarsVox Director
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
1.8K StarsCanvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
175.1K StarsReview then install
Install targets
Codex install prompt
Install the "beehave" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/beehave. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"jame581-beehave","task":"Install beehave","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add jame581/GodotPrompter --skill beehave
Maintenance
fresh
26d since push
Risk
Safe to try
Quality score needs review
GitHub quality
655
75/100 Quality · 82/100 Trust
Coverage tags
Review notes
Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Review then installGood shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Use as the primary candidate after human or sandbox review.
Stars
655 GitHub stars
Repo activity
655 stars, 31 forks
Maintenance
26d since push
License
MIT
Install
npx skills add jame581/GodotPrompter --skill beehave
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add jame581/GodotPrompter --skill beehaveDo not use when
Alternative
175.1K Stars
npx skills add anthropics/skills --skill frontend-design
Alternative
85.2K Stars
npx skills add Leonxlnx/taste-skill --skill design-taste-frontend
Alternative
1.8K Stars
npx skills add Alisa0808/vox-director --skill vox-director
Alternative
175.1K Stars
npx skills add anthropics/skills --skill canvas-design
Agent safety v2
Good audit and safety signals with no high-risk permission hints in public metadata.
Review the audit page, then allow agent install in a sandboxed workflow.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/jame581-beehave/install
Agent should check
Copy prompt
Task: Use beehave in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/jame581-beehave/install
Install command: npx skills add jame581/GodotPrompter --skill beehave
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/jame581-beehave/install
LLM text format
/api/skills/jame581-beehave/install?format=text
Find alternatives
/api/skills/search?q=beehave&limit=3
Agent prompt
Use beehave for this task. Review https://www.openagentskill.com/api/skills/jame581-beehave/install, then install with: npx skills add jame581/GodotPrompter --skill beehaveRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/jame581-beehave
LLM text
/api/registry/manifest/jame581-beehave?format=text
Install alias
/api/registry/install/jame581-beehave
Recommend
/api/registry/recommend?task=Use%20beehave%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Good shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
GitHub adoption
INFO655 GitHub stars
Stars/forks activity
INFO655 stars, 31 forks; issue activity unavailable in current metadata
Recent maintenance
PASS26d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Use as the primary candidate after human or sandbox review.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
--- name: beehave description: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger ---
# Beehave
> **Related skills:** **ai-navigation** for the movement leaves drive, **state-machine** for core-engine FSM, **limboai** for a heavier C++ BT+HSM alternative, **godot-brainstorming** for choosing an AI approach.
> **Addon:** Beehave · version `v2.9.2` · Godot 4.1+ · MIT · source: https://github.com/bitbrain/beehave · written in GDScript (no official C# API — this skill is GDScript-only by design).
---
## 1. When to use Beehave
| Approach | Best for | |---|---| | Core-engine FSM (`state-machine` skill) | Simple agents, < 5 states, no addon | | **Beehave** (GDScript addon) | Lightweight BT, GDScript-only projects, fast iteration | | **LimboAI** | BT **and** HSM together, visual editor, C++ performance, C# support (module build) |
Choose Beehave when your project is GDScript-only, you want a behavior tree without a custom engine build, and you value a simple node-in-scene-tree authoring workflow. Beehave trees live entirely in the scene tree — every composite, decorator, and leaf is a regular `Node` child. For a heavier C++/C# solution with HSM integration, use the `limboai` skill instead. For plain state machines without a BT, use the built-in `state-machine` skill.
**C# note:** Beehave has no official C# API (zero `.cs` files in `addons/beehave/`). From C# you can call the GDScript API via Godot cross-language interop (`GetNode<Node>(...).Call("tick", actor, blackboard)`), but Beehave provides no typed C# classes.
---
## 2. Install & enable
1. **Godot AssetLib** → search "Beehave" → Download → Reload project. Or copy the `addons/beehave/` folder from the [GitHub release](https://github.com/bitbrain/beehave/releases) into `res://addons/beehave/`. 2. Enable the plugin: **Project → Project Settings → Plugins** → tick **Beehave**. Two autoloads are registered: `BeehaveGlobalMetrics` and `BeehaveGlobalDebugger`. 3. Optional — copy `script_templates/` from the addon into the project root for leaf scaffolding templates.
---
## 3. Tree composition
A Beehave tree is built from three kinds of nodes, all placed as regular scene-tree children:
| Role | Node | Behavior | |---|---|---| | **Tree root** | `BeehaveTree` | Ticks the child every frame (or physics/manual); extends `Node` (not `BeehaveNode`) | | **Composites** | `SequenceComposite`, `SelectorComposite`, `SimpleParallelComposite`, … | Flow control — AND / OR / parallel logic | | **Decorators** | `InverterDecorator`, `CooldownDecorator`, `RepeaterDecorator`, … | Wrap one child to modify its result | | **Leaves** | `ActionLeaf`, `ConditionLeaf` subclasses | Your custom game logic |
### Composite quick reference
| Class | Logic | |---|---| | `SequenceComposite` | AND — all children must succeed; fails on first failure | | `SequenceReactiveComposite` | AND — re-evaluates from first child every tick while running | | `SelectorComposite` | OR — succeeds on first success; fails if all fail | | `SelectorReactiveComposite` | OR — re-evaluates from first child every tick while running | | `SimpleParallelComposite` | Runs two children simultaneously; result follows primary (child 0) | | `SequenceRandomComposite` | Shuffled AND — executes children in random order | | `SelectorRandomComposite` | Shuffled OR — tries children in random order |
### Decorator quick reference
| Class | Effect | |---|---| | `InverterDecorator` | Flips `SUCCESS` ↔ `FAILURE`; passes `RUNNING` through | | `AlwaysSucceedDecorator` | Forces `SUCCESS`; passes `RUNNING` through | | `AlwaysFailDecorator` | Forces `FAILURE`; passes `RUNNING` through | | `RepeaterDecorator` | Re-runs child until it succeeds `repetitions` times | | `LimiterDecorator` | Caps child to `max_count` running ticks, then `FAILURE` | | `CooldownDecorator` | Blocks re-execution for `wait_time` seconds after child finishes | | `TimeLimiterDecorator` | Gives child `wait_time` seconds; interrupts if still running | | `DelayDecorator` | Waits `wait_time` seconds before first executing child | | `UntilFailDecorator` | Loops child until it returns `FAILURE`, then returns `SUCCESS` |
### Minimal scene-tree example
```gdscript # Scene tree: # Enemy (CharacterBody2D) # BeehaveTree ← tick_rate = 1, process_thread = PHYSICS # SelectorComposite # SequenceComposite ← "attack if in range" # IsInRangeCondition # AttackAction # PatrolAction ← fallback
# BeehaveTree exports: # @export var enabled: bool = true # @export var tick_rate: int = 1 (1 = every frame; 3 = every 3 frames) # @export var process_thread: ProcessThread = PHYSICS # @export var blackboard: Blackboard (auto-created if not set) # @export_node_path var actor_node_path (defaults to parent node)
# Access the tree from code if you need manual control: @onready var bt: BeehaveTree = $BeehaveTree
func _ready() -> void: # Reduce tick cost: evaluate AI every 3 physics frames bt.tick_rate = 3 # Default process_thread is PHYSICS — switch to IDLE if actor uses _process bt.process_thread = BeehaveTree.ProcessThread.IDLE ```
> **tick_rate note:** `tick_rate = 1` evaluates every frame; `tick_rate = 3` every 3 frames. Increase for distant/background NPCs to save CPU. Default process thread is `PHYSICS` — if the actor script uses `_process` instead of `_physics_process`, set `process_thread = IDLE` to keep them in sync.
---
## 4. The leaf contract
Leaves hold your game logic. Subclass `ActionLeaf` for multi-tick work or `ConditionLeaf` for single-frame checks, then override `tick(actor, blackboard)`.
```gdscript # IsInRangeCondition.gd class_name IsInRangeCondition extends ConditionLeaf
@export var detection_range: float = 150.0
func tick(actor: Node, blackboard: Blackboard) -> int: # Beehave types `actor` as Node; cast to your concrete type for 2D members. var body := actor as Node2D var target: Node2D = blackboard.get_value("target") if body == null or not is_instance_valid(target): return FAILURE var in_range := body.global_position.distance_to(target.global_position) <= detection_range return SUCCESS if in_range else FAILURE ```
```gdscript # AttackAction.gd class_name AttackAction extends ActionLeaf
@export var attack_duration: float = 0.5
func tick(actor: Node, blackboard: Blackboard) -> int: var elapsed: float = blackboard.get_value("attack_elapsed", 0.0) elapsed += get_physics_process_delta_time()
if elapsed >= attack_duration: blackboard.erase_value("attack_elapsed") # `actor` is typed Node; guard game-specific methods (or cast to your actor type). if actor.has_method("play_attack_animation"): actor.call("play_attack_animation") return SUCCESS
blackboard.set_value("attack_elapsed", elapsed) return RUNNING
func after_run(actor: Node, blackboard: Blackboard) -> void: # Clean up any per-run state when the tree interrupts this action blackboard.erase_value("attack_elapsed") ```
**Return codes** (defined on `BeehaveNode`): - `SUCCESS` — action complete / condition met. - `FAILURE` — action failed / condition not met; parent composite decides what to do next. - `RUNNING` — action needs more frames; tree will call `tick()` again next frame (`ActionLeaf` only — `ConditionLeaf` should never return `RUNNING`).
**Optional overrides:** - `before_run(actor, blackboard)` — called once before the first tick of a run. - `after_run(actor, blackboard)` — called when the child finishes (`SUCCESS`/`FAILURE`) or is interrupted. - `interrupt(actor, blackboard)` — called when the tree interrupts a running node.
---
## 5. Blackboard
The `Blackboard` node is a shared key/value store passed to every `tick()` call. `BeehaveTree` auto-creates an internal one if you don't assign an external `Blackboard` node.
```gdscript # Share one Blackboard across multiple BeehaveTrees on the same actor. # Assign the same exported Blackboard node to each tree in the Inspector.
# Read / write from any leaf's tick(): func tick(actor: Node, blackboard: Blackboard) -> int: # Write blackboard.set_value("target", actor.get_nearest_enemy())
# Read with default var speed: float = blackboard.get_value("move_speed", 200.0)
# Conditional check if blackboard.has_value("stunned"): return FAILURE
# Erase (sets key to null; has_value returns false after erase) blackboard.erase_value("temp_flag")
return SUCCESS ```
> **Named namespaces:** every method accepts an optional `blackboard_name: String` parameter (default `"default"`). Use this to keep separate namespaces on one `Blackboard` node without name collisions (e.g., per-enemy state vs. shared world state).
> **Built-in expression leaves:** `BlackboardSetAction`, `BlackboardEraseAction`, `BlackboardHasCondition`, and `BlackboardCompareCondition` let you manipulate the Blackboard entirely via Inspector exports (no GDScript required). Expressions run via Godot's `Expression.execute([], blackboard)` — so you can call `get_value("key")` directly in the expression string.
---
## 6. Visual debugger
Beehave ships an `EditorDebuggerPlugin` that adds a **🐝 Beehave** tab to the bottom editor panel while your game is running:
1. Run the project from the Godot editor. 2. Open the **Debugger** panel → click the **🐝 Beehave** tab. 3. Select a tree from the list to activate live visualization — active nodes are highlighted each tick. 4. Optional: click the detach button to float the panel, or set **Project Settings → beehave/debugger/start_detached = true** to always start detached.
To track per-tree CPU cost in the **Performance** panel, set `custom_monitor = true` on the `BeehaveTree` node. This registers `beehave [microseconds]/process_time_<actor_name>-<id>` as a Performance monitor.
For a walkthrough of writing custom decorators and conditions, see [references/custom-nodes.md](references/custom-nodes.md).
---
## Implementation checklist
- [ ] `addons/beehave/` copied into project; plugin enabled in **Project Settings → Plugins** - [ ] `BeehaveTree` added as a child of the actor; `actor_node_path` set (or left blank to default to parent) - [ ] `process_thread` matches actor's loop: `PHYSICS` for `_physics_process`, `IDLE` for `_process` - [ ] `tick_rate` tuned — increase for background NPCs (e.g., `3`) to reduce per-frame cost - [ ] Every `tick()` override returns `SUCCESS`, `FAILURE`, or `RUNNING` — never `void`/`null` - [ ] `ConditionLeaf` subclasses never return `RUNNING` - [ ] Per-run state written to the `Blackboard`, not stored on the leaf node itself (leaf nodes are shared) - [ ] `after_run` or `interrupt` cleans up any Blackboard keys the action wrote - [ ] External `Blackboard` node exported and shared when multiple `BeehaveTree` nodes need the same data - [ ] Visual debugger checked at runtime to verify tick flow before shipping AI logic
Source provenance
Decision snapshot
655 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for beehave, ready for a manual X post.
beehave: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators,... 655 stars https://www.openagentskill.com/skills/jame581-beehave?ref=x
Listing + install path for beehave: https://www.openagentskill.com/skills/jame581-beehave?ref=x Install: npx skills add jame581/GodotPrompter --skill beehave
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to jame581 but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave/audit)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)jame581
@jame581
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Review then install
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
175.1K StarsTaste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
85.2K StarsVox Director
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
1.8K StarsCanvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
175.1K StarsReview then install
Install targets
Codex install prompt
Install the "beehave" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/beehave. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"jame581-beehave","task":"Install beehave","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add jame581/GodotPrompter --skill beehave
Maintenance
fresh
26d since push
Risk
Safe to try
Quality score needs review
GitHub quality
655
75/100 Quality · 82/100 Trust
Coverage tags
Review notes
Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Review then installGood shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Use as the primary candidate after human or sandbox review.
Stars
655 GitHub stars
Repo activity
655 stars, 31 forks
Maintenance
26d since push
License
MIT
Install
npx skills add jame581/GodotPrompter --skill beehave
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add jame581/GodotPrompter --skill beehaveDo not use when
Alternative
175.1K Stars
npx skills add anthropics/skills --skill frontend-design
Alternative
85.2K Stars
npx skills add Leonxlnx/taste-skill --skill design-taste-frontend
Alternative
1.8K Stars
npx skills add Alisa0808/vox-director --skill vox-director
Alternative
175.1K Stars
npx skills add anthropics/skills --skill canvas-design
Agent safety v2
Good audit and safety signals with no high-risk permission hints in public metadata.
Review the audit page, then allow agent install in a sandboxed workflow.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/jame581-beehave/install
Agent should check
Copy prompt
Task: Use beehave in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/jame581-beehave/install
Install command: npx skills add jame581/GodotPrompter --skill beehave
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/jame581-beehave/install
LLM text format
/api/skills/jame581-beehave/install?format=text
Find alternatives
/api/skills/search?q=beehave&limit=3
Agent prompt
Use beehave for this task. Review https://www.openagentskill.com/api/skills/jame581-beehave/install, then install with: npx skills add jame581/GodotPrompter --skill beehaveRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/jame581-beehave
LLM text
/api/registry/manifest/jame581-beehave?format=text
Install alias
/api/registry/install/jame581-beehave
Recommend
/api/registry/recommend?task=Use%20beehave%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Good shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
GitHub adoption
INFO655 GitHub stars
Stars/forks activity
INFO655 stars, 31 forks; issue activity unavailable in current metadata
Recent maintenance
PASS26d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Use as the primary candidate after human or sandbox review.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
--- name: beehave description: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger ---
# Beehave
> **Related skills:** **ai-navigation** for the movement leaves drive, **state-machine** for core-engine FSM, **limboai** for a heavier C++ BT+HSM alternative, **godot-brainstorming** for choosing an AI approach.
> **Addon:** Beehave · version `v2.9.2` · Godot 4.1+ · MIT · source: https://github.com/bitbrain/beehave · written in GDScript (no official C# API — this skill is GDScript-only by design).
---
## 1. When to use Beehave
| Approach | Best for | |---|---| | Core-engine FSM (`state-machine` skill) | Simple agents, < 5 states, no addon | | **Beehave** (GDScript addon) | Lightweight BT, GDScript-only projects, fast iteration | | **LimboAI** | BT **and** HSM together, visual editor, C++ performance, C# support (module build) |
Choose Beehave when your project is GDScript-only, you want a behavior tree without a custom engine build, and you value a simple node-in-scene-tree authoring workflow. Beehave trees live entirely in the scene tree — every composite, decorator, and leaf is a regular `Node` child. For a heavier C++/C# solution with HSM integration, use the `limboai` skill instead. For plain state machines without a BT, use the built-in `state-machine` skill.
**C# note:** Beehave has no official C# API (zero `.cs` files in `addons/beehave/`). From C# you can call the GDScript API via Godot cross-language interop (`GetNode<Node>(...).Call("tick", actor, blackboard)`), but Beehave provides no typed C# classes.
---
## 2. Install & enable
1. **Godot AssetLib** → search "Beehave" → Download → Reload project. Or copy the `addons/beehave/` folder from the [GitHub release](https://github.com/bitbrain/beehave/releases) into `res://addons/beehave/`. 2. Enable the plugin: **Project → Project Settings → Plugins** → tick **Beehave**. Two autoloads are registered: `BeehaveGlobalMetrics` and `BeehaveGlobalDebugger`. 3. Optional — copy `script_templates/` from the addon into the project root for leaf scaffolding templates.
---
## 3. Tree composition
A Beehave tree is built from three kinds of nodes, all placed as regular scene-tree children:
| Role | Node | Behavior | |---|---|---| | **Tree root** | `BeehaveTree` | Ticks the child every frame (or physics/manual); extends `Node` (not `BeehaveNode`) | | **Composites** | `SequenceComposite`, `SelectorComposite`, `SimpleParallelComposite`, … | Flow control — AND / OR / parallel logic | | **Decorators** | `InverterDecorator`, `CooldownDecorator`, `RepeaterDecorator`, … | Wrap one child to modify its result | | **Leaves** | `ActionLeaf`, `ConditionLeaf` subclasses | Your custom game logic |
### Composite quick reference
| Class | Logic | |---|---| | `SequenceComposite` | AND — all children must succeed; fails on first failure | | `SequenceReactiveComposite` | AND — re-evaluates from first child every tick while running | | `SelectorComposite` | OR — succeeds on first success; fails if all fail | | `SelectorReactiveComposite` | OR — re-evaluates from first child every tick while running | | `SimpleParallelComposite` | Runs two children simultaneously; result follows primary (child 0) | | `SequenceRandomComposite` | Shuffled AND — executes children in random order | | `SelectorRandomComposite` | Shuffled OR — tries children in random order |
### Decorator quick reference
| Class | Effect | |---|---| | `InverterDecorator` | Flips `SUCCESS` ↔ `FAILURE`; passes `RUNNING` through | | `AlwaysSucceedDecorator` | Forces `SUCCESS`; passes `RUNNING` through | | `AlwaysFailDecorator` | Forces `FAILURE`; passes `RUNNING` through | | `RepeaterDecorator` | Re-runs child until it succeeds `repetitions` times | | `LimiterDecorator` | Caps child to `max_count` running ticks, then `FAILURE` | | `CooldownDecorator` | Blocks re-execution for `wait_time` seconds after child finishes | | `TimeLimiterDecorator` | Gives child `wait_time` seconds; interrupts if still running | | `DelayDecorator` | Waits `wait_time` seconds before first executing child | | `UntilFailDecorator` | Loops child until it returns `FAILURE`, then returns `SUCCESS` |
### Minimal scene-tree example
```gdscript # Scene tree: # Enemy (CharacterBody2D) # BeehaveTree ← tick_rate = 1, process_thread = PHYSICS # SelectorComposite # SequenceComposite ← "attack if in range" # IsInRangeCondition # AttackAction # PatrolAction ← fallback
# BeehaveTree exports: # @export var enabled: bool = true # @export var tick_rate: int = 1 (1 = every frame; 3 = every 3 frames) # @export var process_thread: ProcessThread = PHYSICS # @export var blackboard: Blackboard (auto-created if not set) # @export_node_path var actor_node_path (defaults to parent node)
# Access the tree from code if you need manual control: @onready var bt: BeehaveTree = $BeehaveTree
func _ready() -> void: # Reduce tick cost: evaluate AI every 3 physics frames bt.tick_rate = 3 # Default process_thread is PHYSICS — switch to IDLE if actor uses _process bt.process_thread = BeehaveTree.ProcessThread.IDLE ```
> **tick_rate note:** `tick_rate = 1` evaluates every frame; `tick_rate = 3` every 3 frames. Increase for distant/background NPCs to save CPU. Default process thread is `PHYSICS` — if the actor script uses `_process` instead of `_physics_process`, set `process_thread = IDLE` to keep them in sync.
---
## 4. The leaf contract
Leaves hold your game logic. Subclass `ActionLeaf` for multi-tick work or `ConditionLeaf` for single-frame checks, then override `tick(actor, blackboard)`.
```gdscript # IsInRangeCondition.gd class_name IsInRangeCondition extends ConditionLeaf
@export var detection_range: float = 150.0
func tick(actor: Node, blackboard: Blackboard) -> int: # Beehave types `actor` as Node; cast to your concrete type for 2D members. var body := actor as Node2D var target: Node2D = blackboard.get_value("target") if body == null or not is_instance_valid(target): return FAILURE var in_range := body.global_position.distance_to(target.global_position) <= detection_range return SUCCESS if in_range else FAILURE ```
```gdscript # AttackAction.gd class_name AttackAction extends ActionLeaf
@export var attack_duration: float = 0.5
func tick(actor: Node, blackboard: Blackboard) -> int: var elapsed: float = blackboard.get_value("attack_elapsed", 0.0) elapsed += get_physics_process_delta_time()
if elapsed >= attack_duration: blackboard.erase_value("attack_elapsed") # `actor` is typed Node; guard game-specific methods (or cast to your actor type). if actor.has_method("play_attack_animation"): actor.call("play_attack_animation") return SUCCESS
blackboard.set_value("attack_elapsed", elapsed) return RUNNING
func after_run(actor: Node, blackboard: Blackboard) -> void: # Clean up any per-run state when the tree interrupts this action blackboard.erase_value("attack_elapsed") ```
**Return codes** (defined on `BeehaveNode`): - `SUCCESS` — action complete / condition met. - `FAILURE` — action failed / condition not met; parent composite decides what to do next. - `RUNNING` — action needs more frames; tree will call `tick()` again next frame (`ActionLeaf` only — `ConditionLeaf` should never return `RUNNING`).
**Optional overrides:** - `before_run(actor, blackboard)` — called once before the first tick of a run. - `after_run(actor, blackboard)` — called when the child finishes (`SUCCESS`/`FAILURE`) or is interrupted. - `interrupt(actor, blackboard)` — called when the tree interrupts a running node.
---
## 5. Blackboard
The `Blackboard` node is a shared key/value store passed to every `tick()` call. `BeehaveTree` auto-creates an internal one if you don't assign an external `Blackboard` node.
```gdscript # Share one Blackboard across multiple BeehaveTrees on the same actor. # Assign the same exported Blackboard node to each tree in the Inspector.
# Read / write from any leaf's tick(): func tick(actor: Node, blackboard: Blackboard) -> int: # Write blackboard.set_value("target", actor.get_nearest_enemy())
# Read with default var speed: float = blackboard.get_value("move_speed", 200.0)
# Conditional check if blackboard.has_value("stunned"): return FAILURE
# Erase (sets key to null; has_value returns false after erase) blackboard.erase_value("temp_flag")
return SUCCESS ```
> **Named namespaces:** every method accepts an optional `blackboard_name: String` parameter (default `"default"`). Use this to keep separate namespaces on one `Blackboard` node without name collisions (e.g., per-enemy state vs. shared world state).
> **Built-in expression leaves:** `BlackboardSetAction`, `BlackboardEraseAction`, `BlackboardHasCondition`, and `BlackboardCompareCondition` let you manipulate the Blackboard entirely via Inspector exports (no GDScript required). Expressions run via Godot's `Expression.execute([], blackboard)` — so you can call `get_value("key")` directly in the expression string.
---
## 6. Visual debugger
Beehave ships an `EditorDebuggerPlugin` that adds a **🐝 Beehave** tab to the bottom editor panel while your game is running:
1. Run the project from the Godot editor. 2. Open the **Debugger** panel → click the **🐝 Beehave** tab. 3. Select a tree from the list to activate live visualization — active nodes are highlighted each tick. 4. Optional: click the detach button to float the panel, or set **Project Settings → beehave/debugger/start_detached = true** to always start detached.
To track per-tree CPU cost in the **Performance** panel, set `custom_monitor = true` on the `BeehaveTree` node. This registers `beehave [microseconds]/process_time_<actor_name>-<id>` as a Performance monitor.
For a walkthrough of writing custom decorators and conditions, see [references/custom-nodes.md](references/custom-nodes.md).
---
## Implementation checklist
- [ ] `addons/beehave/` copied into project; plugin enabled in **Project Settings → Plugins** - [ ] `BeehaveTree` added as a child of the actor; `actor_node_path` set (or left blank to default to parent) - [ ] `process_thread` matches actor's loop: `PHYSICS` for `_physics_process`, `IDLE` for `_process` - [ ] `tick_rate` tuned — increase for background NPCs (e.g., `3`) to reduce per-frame cost - [ ] Every `tick()` override returns `SUCCESS`, `FAILURE`, or `RUNNING` — never `void`/`null` - [ ] `ConditionLeaf` subclasses never return `RUNNING` - [ ] Per-run state written to the `Blackboard`, not stored on the leaf node itself (leaf nodes are shared) - [ ] `after_run` or `interrupt` cleans up any Blackboard keys the action wrote - [ ] External `Blackboard` node exported and shared when multiple `BeehaveTree` nodes need the same data - [ ] Visual debugger checked at runtime to verify tick flow before shipping AI logic
Source provenance
Decision snapshot
655 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for beehave, ready for a manual X post.
beehave: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators,... 655 stars https://www.openagentskill.com/skills/jame581-beehave?ref=x
Listing + install path for beehave: https://www.openagentskill.com/skills/jame581-beehave?ref=x Install: npx skills add jame581/GodotPrompter --skill beehave
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to jame581 but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave/audit)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)jame581
@jame581
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Review then install
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
175.1K StarsTaste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
85.2K StarsVox Director
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
1.8K StarsCanvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
175.1K StarsReview then install
Install targets
Codex install prompt
Install the "beehave" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/beehave. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"jame581-beehave","task":"Install beehave","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add jame581/GodotPrompter --skill beehave
Maintenance
fresh
26d since push
Risk
Safe to try
Quality score needs review
GitHub quality
655
75/100 Quality · 82/100 Trust
Coverage tags
Review notes
Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Review then installGood shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Use as the primary candidate after human or sandbox review.
Stars
655 GitHub stars
Repo activity
655 stars, 31 forks
Maintenance
26d since push
License
MIT
Install
npx skills add jame581/GodotPrompter --skill beehave
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add jame581/GodotPrompter --skill beehaveDo not use when
Alternative
175.1K Stars
npx skills add anthropics/skills --skill frontend-design
Alternative
85.2K Stars
npx skills add Leonxlnx/taste-skill --skill design-taste-frontend
Alternative
1.8K Stars
npx skills add Alisa0808/vox-director --skill vox-director
Alternative
175.1K Stars
npx skills add anthropics/skills --skill canvas-design
Agent safety v2
Good audit and safety signals with no high-risk permission hints in public metadata.
Review the audit page, then allow agent install in a sandboxed workflow.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/jame581-beehave/install
Agent should check
Copy prompt
Task: Use beehave in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20beehave%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/jame581-beehave/install
Install command: npx skills add jame581/GodotPrompter --skill beehave
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/jame581-beehave/install
LLM text format
/api/skills/jame581-beehave/install?format=text
Find alternatives
/api/skills/search?q=beehave&limit=3
Agent prompt
Use beehave for this task. Review https://www.openagentskill.com/api/skills/jame581-beehave/install, then install with: npx skills add jame581/GodotPrompter --skill beehaveRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/jame581-beehave
LLM text
/api/registry/manifest/jame581-beehave?format=text
Install alias
/api/registry/install/jame581-beehave
Recommend
/api/registry/recommend?task=Use%20beehave%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Good shortlist signal, but the agent should review audit notes, install policy, and outcome evidence before running it.
GitHub adoption
INFO655 GitHub stars
Stars/forks activity
INFO655 stars, 31 forks; issue activity unavailable in current metadata
Recent maintenance
PASS26d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Use as the primary candidate after human or sandbox review.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
--- name: beehave description: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger ---
# Beehave
> **Related skills:** **ai-navigation** for the movement leaves drive, **state-machine** for core-engine FSM, **limboai** for a heavier C++ BT+HSM alternative, **godot-brainstorming** for choosing an AI approach.
> **Addon:** Beehave · version `v2.9.2` · Godot 4.1+ · MIT · source: https://github.com/bitbrain/beehave · written in GDScript (no official C# API — this skill is GDScript-only by design).
---
## 1. When to use Beehave
| Approach | Best for | |---|---| | Core-engine FSM (`state-machine` skill) | Simple agents, < 5 states, no addon | | **Beehave** (GDScript addon) | Lightweight BT, GDScript-only projects, fast iteration | | **LimboAI** | BT **and** HSM together, visual editor, C++ performance, C# support (module build) |
Choose Beehave when your project is GDScript-only, you want a behavior tree without a custom engine build, and you value a simple node-in-scene-tree authoring workflow. Beehave trees live entirely in the scene tree — every composite, decorator, and leaf is a regular `Node` child. For a heavier C++/C# solution with HSM integration, use the `limboai` skill instead. For plain state machines without a BT, use the built-in `state-machine` skill.
**C# note:** Beehave has no official C# API (zero `.cs` files in `addons/beehave/`). From C# you can call the GDScript API via Godot cross-language interop (`GetNode<Node>(...).Call("tick", actor, blackboard)`), but Beehave provides no typed C# classes.
---
## 2. Install & enable
1. **Godot AssetLib** → search "Beehave" → Download → Reload project. Or copy the `addons/beehave/` folder from the [GitHub release](https://github.com/bitbrain/beehave/releases) into `res://addons/beehave/`. 2. Enable the plugin: **Project → Project Settings → Plugins** → tick **Beehave**. Two autoloads are registered: `BeehaveGlobalMetrics` and `BeehaveGlobalDebugger`. 3. Optional — copy `script_templates/` from the addon into the project root for leaf scaffolding templates.
---
## 3. Tree composition
A Beehave tree is built from three kinds of nodes, all placed as regular scene-tree children:
| Role | Node | Behavior | |---|---|---| | **Tree root** | `BeehaveTree` | Ticks the child every frame (or physics/manual); extends `Node` (not `BeehaveNode`) | | **Composites** | `SequenceComposite`, `SelectorComposite`, `SimpleParallelComposite`, … | Flow control — AND / OR / parallel logic | | **Decorators** | `InverterDecorator`, `CooldownDecorator`, `RepeaterDecorator`, … | Wrap one child to modify its result | | **Leaves** | `ActionLeaf`, `ConditionLeaf` subclasses | Your custom game logic |
### Composite quick reference
| Class | Logic | |---|---| | `SequenceComposite` | AND — all children must succeed; fails on first failure | | `SequenceReactiveComposite` | AND — re-evaluates from first child every tick while running | | `SelectorComposite` | OR — succeeds on first success; fails if all fail | | `SelectorReactiveComposite` | OR — re-evaluates from first child every tick while running | | `SimpleParallelComposite` | Runs two children simultaneously; result follows primary (child 0) | | `SequenceRandomComposite` | Shuffled AND — executes children in random order | | `SelectorRandomComposite` | Shuffled OR — tries children in random order |
### Decorator quick reference
| Class | Effect | |---|---| | `InverterDecorator` | Flips `SUCCESS` ↔ `FAILURE`; passes `RUNNING` through | | `AlwaysSucceedDecorator` | Forces `SUCCESS`; passes `RUNNING` through | | `AlwaysFailDecorator` | Forces `FAILURE`; passes `RUNNING` through | | `RepeaterDecorator` | Re-runs child until it succeeds `repetitions` times | | `LimiterDecorator` | Caps child to `max_count` running ticks, then `FAILURE` | | `CooldownDecorator` | Blocks re-execution for `wait_time` seconds after child finishes | | `TimeLimiterDecorator` | Gives child `wait_time` seconds; interrupts if still running | | `DelayDecorator` | Waits `wait_time` seconds before first executing child | | `UntilFailDecorator` | Loops child until it returns `FAILURE`, then returns `SUCCESS` |
### Minimal scene-tree example
```gdscript # Scene tree: # Enemy (CharacterBody2D) # BeehaveTree ← tick_rate = 1, process_thread = PHYSICS # SelectorComposite # SequenceComposite ← "attack if in range" # IsInRangeCondition # AttackAction # PatrolAction ← fallback
# BeehaveTree exports: # @export var enabled: bool = true # @export var tick_rate: int = 1 (1 = every frame; 3 = every 3 frames) # @export var process_thread: ProcessThread = PHYSICS # @export var blackboard: Blackboard (auto-created if not set) # @export_node_path var actor_node_path (defaults to parent node)
# Access the tree from code if you need manual control: @onready var bt: BeehaveTree = $BeehaveTree
func _ready() -> void: # Reduce tick cost: evaluate AI every 3 physics frames bt.tick_rate = 3 # Default process_thread is PHYSICS — switch to IDLE if actor uses _process bt.process_thread = BeehaveTree.ProcessThread.IDLE ```
> **tick_rate note:** `tick_rate = 1` evaluates every frame; `tick_rate = 3` every 3 frames. Increase for distant/background NPCs to save CPU. Default process thread is `PHYSICS` — if the actor script uses `_process` instead of `_physics_process`, set `process_thread = IDLE` to keep them in sync.
---
## 4. The leaf contract
Leaves hold your game logic. Subclass `ActionLeaf` for multi-tick work or `ConditionLeaf` for single-frame checks, then override `tick(actor, blackboard)`.
```gdscript # IsInRangeCondition.gd class_name IsInRangeCondition extends ConditionLeaf
@export var detection_range: float = 150.0
func tick(actor: Node, blackboard: Blackboard) -> int: # Beehave types `actor` as Node; cast to your concrete type for 2D members. var body := actor as Node2D var target: Node2D = blackboard.get_value("target") if body == null or not is_instance_valid(target): return FAILURE var in_range := body.global_position.distance_to(target.global_position) <= detection_range return SUCCESS if in_range else FAILURE ```
```gdscript # AttackAction.gd class_name AttackAction extends ActionLeaf
@export var attack_duration: float = 0.5
func tick(actor: Node, blackboard: Blackboard) -> int: var elapsed: float = blackboard.get_value("attack_elapsed", 0.0) elapsed += get_physics_process_delta_time()
if elapsed >= attack_duration: blackboard.erase_value("attack_elapsed") # `actor` is typed Node; guard game-specific methods (or cast to your actor type). if actor.has_method("play_attack_animation"): actor.call("play_attack_animation") return SUCCESS
blackboard.set_value("attack_elapsed", elapsed) return RUNNING
func after_run(actor: Node, blackboard: Blackboard) -> void: # Clean up any per-run state when the tree interrupts this action blackboard.erase_value("attack_elapsed") ```
**Return codes** (defined on `BeehaveNode`): - `SUCCESS` — action complete / condition met. - `FAILURE` — action failed / condition not met; parent composite decides what to do next. - `RUNNING` — action needs more frames; tree will call `tick()` again next frame (`ActionLeaf` only — `ConditionLeaf` should never return `RUNNING`).
**Optional overrides:** - `before_run(actor, blackboard)` — called once before the first tick of a run. - `after_run(actor, blackboard)` — called when the child finishes (`SUCCESS`/`FAILURE`) or is interrupted. - `interrupt(actor, blackboard)` — called when the tree interrupts a running node.
---
## 5. Blackboard
The `Blackboard` node is a shared key/value store passed to every `tick()` call. `BeehaveTree` auto-creates an internal one if you don't assign an external `Blackboard` node.
```gdscript # Share one Blackboard across multiple BeehaveTrees on the same actor. # Assign the same exported Blackboard node to each tree in the Inspector.
# Read / write from any leaf's tick(): func tick(actor: Node, blackboard: Blackboard) -> int: # Write blackboard.set_value("target", actor.get_nearest_enemy())
# Read with default var speed: float = blackboard.get_value("move_speed", 200.0)
# Conditional check if blackboard.has_value("stunned"): return FAILURE
# Erase (sets key to null; has_value returns false after erase) blackboard.erase_value("temp_flag")
return SUCCESS ```
> **Named namespaces:** every method accepts an optional `blackboard_name: String` parameter (default `"default"`). Use this to keep separate namespaces on one `Blackboard` node without name collisions (e.g., per-enemy state vs. shared world state).
> **Built-in expression leaves:** `BlackboardSetAction`, `BlackboardEraseAction`, `BlackboardHasCondition`, and `BlackboardCompareCondition` let you manipulate the Blackboard entirely via Inspector exports (no GDScript required). Expressions run via Godot's `Expression.execute([], blackboard)` — so you can call `get_value("key")` directly in the expression string.
---
## 6. Visual debugger
Beehave ships an `EditorDebuggerPlugin` that adds a **🐝 Beehave** tab to the bottom editor panel while your game is running:
1. Run the project from the Godot editor. 2. Open the **Debugger** panel → click the **🐝 Beehave** tab. 3. Select a tree from the list to activate live visualization — active nodes are highlighted each tick. 4. Optional: click the detach button to float the panel, or set **Project Settings → beehave/debugger/start_detached = true** to always start detached.
To track per-tree CPU cost in the **Performance** panel, set `custom_monitor = true` on the `BeehaveTree` node. This registers `beehave [microseconds]/process_time_<actor_name>-<id>` as a Performance monitor.
For a walkthrough of writing custom decorators and conditions, see [references/custom-nodes.md](references/custom-nodes.md).
---
## Implementation checklist
- [ ] `addons/beehave/` copied into project; plugin enabled in **Project Settings → Plugins** - [ ] `BeehaveTree` added as a child of the actor; `actor_node_path` set (or left blank to default to parent) - [ ] `process_thread` matches actor's loop: `PHYSICS` for `_physics_process`, `IDLE` for `_process` - [ ] `tick_rate` tuned — increase for background NPCs (e.g., `3`) to reduce per-frame cost - [ ] Every `tick()` override returns `SUCCESS`, `FAILURE`, or `RUNNING` — never `void`/`null` - [ ] `ConditionLeaf` subclasses never return `RUNNING` - [ ] Per-run state written to the `Blackboard`, not stored on the leaf node itself (leaf nodes are shared) - [ ] `after_run` or `interrupt` cleans up any Blackboard keys the action wrote - [ ] External `Blackboard` node exported and shared when multiple `BeehaveTree` nodes need the same data - [ ] Visual debugger checked at runtime to verify tick flow before shipping AI logic
Source provenance
Decision snapshot
655 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for beehave, ready for a manual X post.
beehave: Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators,... 655 stars https://www.openagentskill.com/skills/jame581-beehave?ref=x
Listing + install path for beehave: https://www.openagentskill.com/skills/jame581-beehave?ref=x Install: npx skills add jame581/GodotPrompter --skill beehave
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to jame581 but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jame581-beehave/audit)
[](https://www.openagentskill.com/skills/jame581-beehave?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)jame581
@jame581
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Review then install
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
175.1K StarsTaste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
85.2K StarsVox Director
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
1.8K StarsCanvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
175.1K StarsPermission surface
network or browser access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
network or browser access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
network or browser access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
network or browser access
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness