From better-godot-mcp
Constructs Godot scenes from patterns like platformer characters, top-down characters, UI screens, projectiles, pickups, and tilemaps, enforcing required companion nodes such as CollisionShape2D.
npx claudepluginhub n24q02m/better-godot-mcpThis skill uses the workspace's default tool permissions.
Construct Godot scenes from proven patterns. Each pattern includes REQUIRED companion nodes that LLMs commonly forget.
Provides Godot 4 GDScript patterns for architecture, signals, scenes, state machines, and optimization. Useful for building games, game systems, and best practices.
Builds and optimizes Godot 4 games using GDScript, node/scene architecture, signals, resources, physics, animations, UI, tilemaps, shaders, multiplayer, and best practices from prototypes to production.
Brainstorms Godot 4.3+ features/systems: clarifies requirements, proposes architectures with trade-offs, designs scene trees/nodes/signals/data flow before implementation.
Share bugs, ideas, or general feedback.
Construct Godot scenes from proven patterns. Each pattern includes REQUIRED companion nodes that LLMs commonly forget.
CharacterBody2D "Player"
CollisionShape2D # REQUIRED -- CharacterBody2D without this = no collisions
Sprite2D # Visual representation
AnimationPlayer # Idle, run, jump, fall animations
Camera2D # Follow camera
position_smoothing_enabled = true
position_smoothing_speed = 5.0
Companion rule: CharacterBody2D MUST have a CollisionShape2D child. Without it, move_and_slide() works but detects zero collisions.
CharacterBody2D "Player"
CollisionShape2D # REQUIRED
Sprite2D
NavigationAgent2D # Pathfinding (if AI/NPC)
path_desired_distance = 4.0
target_desired_distance = 4.0
Control "MenuScreen"
MarginContainer # Prevents content touching edges
VBoxContainer # Vertical layout for menu items
Label "Title"
Button "StartButton"
Button "OptionsButton"
Button "QuitButton"
Companion rule: Always wrap UI content in MarginContainer first. Direct children of Control have no automatic margins.
Area2D "Bullet"
CollisionShape2D # REQUIRED -- Area2D signals need this to detect overlaps
Sprite2D
VisibleOnScreenNotifier2D # Auto-cleanup when off-screen (connect screen_exited -> queue_free)
Companion rule: Area2D without CollisionShape2D will never emit body_entered or area_entered signals.
Area2D "Coin"
CollisionShape2D # REQUIRED
Sprite2D
AudioStreamPlayer # Pickup sound effect
Node2D "Level"
TileMapLayer # Godot 4.3+ (NOT TileMap -- deprecated)
Camera2D
limit_left = 0
limit_top = 0
Note: TileMap node is deprecated in Godot 4.3+. Use TileMapLayer instead.
Identify pattern from user description. Map to the closest template above.
Create scene:
scenes(action="create", name="<name>", root_type="<RootType>")
Add nodes top-down (parent before children):
nodes(action="add", scene="<name>.tscn", parent=".", type="CollisionShape2D", name="CollisionShape2D")
nodes(action="add", scene="<name>.tscn", parent=".", type="Sprite2D", name="Sprite2D")
Configure properties:
nodes(action="set_property", scene="<name>.tscn", node_path="Camera2D",
property="position_smoothing_enabled", value="true")
Attach script (create from template in add-mechanic skill if needed):
scripts(action="create", path="res://scripts/<name>.gd", content="...")
Verify scene tree:
scenes(action="get", scene="<name>.tscn")
CollisionShape2D on physics bodies/areas (most frequent LLM error)TileMap instead of TileMapLayer in Godot 4.3+Camera2D smoothing (causes jarring camera movement)Control without layout containersRigidBody2D when CharacterBody2D is needed (characters need move_and_slide)