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/claude-plugins --plugin 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.
Constructs Godot scenes from patterns like platformer characters, top-down characters, UI screens, projectiles, pickups, and tilemaps, enforcing required companion nodes such as CollisionShape2D.
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.
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)