From godot-ai-builder
Bootstrap a Godot 4 project from scratch or verify an existing project structure. Use when: starting a new game, initializing folder structure, configuring project.godot, or verifying a project is set up correctly.
npx claudepluginhub hubdev-ai/godot-ai-builderThis skill uses the workspace's default tool permissions.
```
Scaffolds new Godot 4.x projects with recommended split or co-located directory structures, project settings, autoloads, .gitignore, and .gitattributes.
Assists Godot Engine game development with scene creation, node management, GDScript scripting, project structure. Uses MCP tools to edit scenes, add nodes, run projects, debug.
Develop, test, build, and deploy Godot 4.x games. Includes GdUnit4 for GDScript unit tests and PlayGodot for game automation and E2E testing. Supports web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
Share bugs, ideas, or general feedback.
scripts/
autoload/
scenes/
assets/
sprites/
audio/
; Engine configuration file (Godot 4.3+)
config_version=5
[application]
config/name="Game Name"
run/main_scene="res://scenes/main.tscn"
config/features=PackedStringArray("4.3")
[display]
window/size/viewport_width=1024
window/size/viewport_height=600
window/stretch/mode="canvas_items"
[input]
move_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97)]
}
move_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100)]
}
move_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119)]
}
move_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115)]
}
shoot={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(0,0),"global_position":Vector2(0,0),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false)]
}
jump={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32)]
}
pause={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0)]
}
[rendering]
textures/canvas_textures/default_texture_filter=0
Write scenes/main.tscn:
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://scripts/main.gd" id="1"]
[node name="Main" type="Node2D"]
script = ExtResource("1")
Write scripts/main.gd:
extends Node2D
func _ready():
print("Game started!")
After creating files:
godot_reload_filesystem — tell editor to scangodot_run_scene — verify it launchesgodot_get_errors — check for issuesgodot_get_project_stateIf directories don't exist, create them. If project.godot is missing key settings, add them. If no main scene: create one and set it.
rendering/textures/canvas_textures/default_texture_filter=0rendering/textures/canvas_textures/default_texture_filter=1Always create these standard actions (already in project.godot template above):
move_left (A), move_right (D), move_up (W), move_down (S)shoot (Left Mouse Button)jump (Space)pause (Escape)For genre-specific actions, add them to the [input] section following the same format.