{"id":15161384,"url":"https://github.com/atlergibby/btgrapheditor","last_synced_at":"2026-01-20T11:32:58.190Z","repository":{"id":248952867,"uuid":"830282487","full_name":"AtlerGibby/BTGraphEditor","owner":"AtlerGibby","description":"A Godot 4.2 addon for editing, debugging, and running behavior tree graphs.","archived":false,"fork":false,"pushed_at":"2024-07-20T01:14:41.000Z","size":2955,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T22:15:03.209Z","etag":null,"topics":["behavior-tree","gdextension","godot","godot-engine","godot-plugin","godot4","graph-editor-gui"],"latest_commit_sha":null,"homepage":"","language":"GDScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AtlerGibby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-18T01:23:40.000Z","updated_at":"2024-10-28T16:41:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"435c233d-0eb9-4ad9-826d-523abb592ba1","html_url":"https://github.com/AtlerGibby/BTGraphEditor","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"c2e5574d8434b9dcfa8ffb38d2a9700516408979"},"previous_names":["atlergibby/btgrapheditor"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtlerGibby%2FBTGraphEditor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtlerGibby%2FBTGraphEditor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtlerGibby%2FBTGraphEditor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtlerGibby%2FBTGraphEditor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AtlerGibby","download_url":"https://codeload.github.com/AtlerGibby/BTGraphEditor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737785,"owners_count":20987721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["behavior-tree","gdextension","godot","godot-engine","godot-plugin","godot4","graph-editor-gui"],"created_at":"2024-09-27T00:05:23.854Z","updated_at":"2026-01-20T11:32:58.185Z","avatar_url":"https://github.com/AtlerGibby.png","language":"GDScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CoverImage](screenshots/CoverImageBTGraphEditor.png)\n\n# \u003cimg src=\"BTGraphEditor\\addons\\btgrapheditor\\Icons\\BTIcon.png\" alt=\"icon\" width=\"24\"/\u003e BTGraphEditor\nA Godot 4.2 addon for editing, debugging, and running behavior tree graphs. GDExtension binaries for Windows, Linux, and MacOS(Unsigned).\n\n## Features\nThese are the main features of the addon.\n* Edit Behavior Trees using a graph editor. \n* Optional window for debugging BTGraphs in realtime.\n* Custom C++ node for speeding up the interpretation of BTGraphs.\n\n## Components\nThese are the components of the addon.\n\n* **BTInterpreter**: Interprets BTGraphs. \n    * **connect_to_signal(sig_name : String, to_this : Callable)**: Best way to connect an external callable to a signal in the signal Array.\n    * **edit_variable(var_name, value)**: Best way to set a variable in the variable Array.\n    * **set_random_seed(seed)**: Best way to set the \"random_seed\" variable.\n    * **skip_all_current_nodes()**: Skip all nodes that are waiting.\n    * **skip_current_node(which_branch : int)**: Skip the current node on a branch that is waiting.\n    * **stop_a_branch(which_branch : int)**: Stop the current branch.\n    * **stop_all_branches()**: Stop all branches / reset behavior tree.\n* **BTInterpreterCPP**: C++ component for interpreting BTGraphs. Must be a sibling of a **[BTInterpreter]**.\n* **BTSimulationGraph**: The window for viewing a simulation of the BTGraph of a **[BTInterpreter]** in runtime. **Display** \u003e **Window** \u003e **Sub windows** \u003e **Embed Sub windows** to show this in a separate window. \n    * **get_all_interpreters(var_name, value)**: Best way to set a variable in the variable Array.\n    * **add_one_interpreter(var_name, value)**: Best way to set a variable in the variable Array.\n\n```python\n# Example of using some of the functions\nfunc example():\n\tbt_interpreter = get_node(\"BTInterpreter\")\n\t(bt_interpreter as BTInterpreter).connect_to_signal(\"SignalTest\", self.callable_test)\n\t(bt_interpreter as BTInterpreter).edit_variable(\"BoolTest\", true)\n\t(bt_interpreter as BTInterpreter).set_random_seed((position.x + 1) * (position.y + 1))\n```\n\n## Graph Nodes\nThese are the nodes used in a graph.\n\n* **BoolNode**: Will do an AND, OR, XOR, or NOT operations on inputs.\n* **StatementNode**: Will do \u003c, \u003e, or = operations on inputs.\n* **VariableNode**: Input variables for the graph. Can be booleans, integers, or floats.\n* **IfNode**: Takes a boolean input and outputs based on that value.\n* **SequencerNode**: Chooses between multiple outputs based on the type of sequencer: Top-Down, Parallel, Random, and Totally Random.\n* **SignalNode**: Emits a signal.\n* **ActionNode**: Calls a function as a callable. Can wait on a true return, false return, or nothing.\n* **WaitNode**: Waits for an amount time or on a signal to be emitted.\n* **CommentNode**: A comment box in a BTGraph. (This Node can be buggy when moved / dragged behind other nodes)\n\n```python\n# Example of a function that can be called by an Action Node. Action Node waits for bt_wait[0] to be true.\nfunc BTAction_example (bt_wait : Array):\n\tif bt_wait:\n\t\tif position.distance_to(target.position) \u003c 1:\n\t\t\tvelocity = Vector3.ZERO\n            \t\tprint(\"Got To Target!\")\n\t\t\tbt_wait[0] = true\n\t\telse:\n            \t\tprint(\"Going To Target...\")\n\t\t\tbt_wait[0] = false\n```\n\n## Installation\nYou can download the whole demo project and open it with Godot or download the \"/btgrapheditor\" folder from the \"/addon\" folder and put it in your \"/addon\" folder in your project. Make sure to enable the addon in your Project Settings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatlergibby%2Fbtgrapheditor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatlergibby%2Fbtgrapheditor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatlergibby%2Fbtgrapheditor/lists"}