
Godot Master
Implement frame-based and skeletal 2D animation in Godot without deprecated APIs, tween conflicts, or physics-tick stutter.
Overview
Godot Master is an agent skill for the Build phase that implements 2D frame and cutout animation patterns in Godot with explicit anti-patterns to avoid.
Install
npx skills add https://github.com/thedivergentai/gd-agentic-skills --skill godot-masterWhat is this skill?
- Patterns for AnimatedSprite2D, SpriteFrames, and cutout rigs with Bone2D hierarchies
- Hard NEVER rules: no AnimatedTexture, no competing Tweens on one property, physics-callback mode for CharacterBody2D
- Procedural squash/stretch and frame-perfect timing with advance(0) and set_frame_and_progress
- Correct signal use: animation_finished vs looping via animation_looped and frame_changed
- Animation state machine guidance for frame-based and skeletal 2D workflows
- Documented NEVER list covering AnimatedTexture, tween priority, physics-tick movement, and looping signal misuse
Adoption & trust: 907 installs on skills.sh; 228 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are building a 2D Godot game but animation choices (deprecated classes, tween fights, wrong physics callbacks, wrong loop signals) cause stutter, bugs, or future breakage.
Who is it for?
Indie devs adding character, VFX, or UI animation in Godot 2D who want checklist-level engine constraints in the agent loop.
Skip if: Teams only doing 3D-only pipelines, non-Godot engines, or projects that already have a locked animation architecture doc with no Godot-specific gaps.
When should I use this skill?
Implementing sprite frame animations, procedural animation, cutout bone hierarchies, or frame-perfect timing; keywords include AnimatedSprite2D, SpriteFrames, animation_finished, cutout animation, Bone2D.
What do I get? / Deliverables
Your agent applies AnimatedSprite2D, cutout, and procedural patterns with documented NEVER rules so animations stay smooth and signal-driven state stays correct.
- Godot 2D animation implementation aligned with skill NEVER rules
- Signal and state-machine wiring for loop vs one-shot clips
Recommended Skills
Journey fit
How it compares
Use instead of generic “animate in Godot” chat that omits physics-tick and looping-signal edge cases.
Common Questions / FAQ
Who is godot-master for?
Solo and indie builders using Godot for 2D games who want an agent to follow concrete AnimatedSprite2D, cutout, and procedural animation rules.
When should I use godot-master?
During Build when implementing sprite frames, cutout bones, squash/stretch, or animation state machines—and when debugging stutter on CharacterBody2D-driven motion.
Is godot-master safe to install?
Treat it like any third-party skill: review the Security Audits panel on this Prism page and your repo policy before enabling it in production agents.
SKILL.md
READMESKILL.md - Godot Master
# 2D Animation Expert-level guidance for frame-based and skeletal 2D animation in Godot. ## NEVER Do - **NEVER use AnimatedTexture** — This class is deprecated, highly inefficient in modern renderers, and may be removed in future Godot versions. Use AnimatedSprite2D or AnimationPlayer instead. - **NEVER allow Tweens to fight over the same property** — If multiple Tweens animate the same property, the last one created forcibly takes priority. Always assign your Tween to a variable and call `kill()` on the previous instance before creating a new one. - **NEVER process kinematic movement outside the physics tick** — If your AnimationPlayer moves a CharacterBody2D, ensure the AnimationPlayer's callback mode is set to Physics. Animating physics bodies during the Idle (render) frame breaks fixed timestep physics interpolation and causes stutter. - **NEVER use `animation_finished` for looping animations** — The signal only fires on non-looping animations. Use `animation_looped` instead for loop detection. - **NEVER call `play()` and expect instant state changes** — AnimatedSprite2D applies `play()` on the next process frame. Call `advance(0)` immediately after `play()` if you need synchronous property updates (e.g., when changing animation + flip_h simultaneously). - **NEVER set `frame` directly when preserving animation progress** — Setting `frame` resets `frame_progress` to 0.0. Use `set_frame_and_progress(frame, progress)` to maintain smooth transitions when swapping animations mid-frame. - **NEVER forget to cache `@onready var anim_sprite`** — The node lookup getter is surprisingly slow in hot paths like `_physics_process()`. Always use `@onready`. - **NEVER mix AnimationPlayer tracks with code-driven AnimatedSprite2D** — Choose one animation authority per sprite. Mixing causes flickering and state conflicts. - **NEVER use paper-thin skeletons for deformation** — 2D meshes require balanced vertex density. If your mesh deforms poorly, increase the vertex count near joints in the Mesh2D editor. --- ## Available Scripts > **MANDATORY**: Read the appropriate script before implementing the corresponding pattern. ### [animation_sync.gd](../scripts/2d_animation_animation_sync.gd) Method track triggers for frame-perfect logic (SFX/VFX hitboxes), signal-driven async gameplay orchestration, and AnimationTree blend space management. Use when syncing gameplay events to animation frames. ### [animation_state_sync.gd](../scripts/2d_animation_animation_state_sync.gd) Frame-perfect state-driven animation with transition queueing - essential for responsive character animation. ### [shader_hook.gd](../scripts/2d_animation_shader_hook.gd) Animating ShaderMaterial uniforms via AnimationPlayer property tracks. Covers hit flash, dissolve effects, and instance uniforms for batched sprites. Use for visual feedback tied to animation states. ### [procedural_squash_stretch.gd](../scripts/2d_animation_procedural_squash_stretch.gd) Dynamic physics-driven deformation. Provides `lerp` logic for smoothing out sudden impact squashes and directional stretches based on high-velocity movement. ### [skeleton_2d_rig_helper.gd](../scripts/2d_animation_skeleton_2d_rig_helper.gd) Programmatic rig management. Tuning FABRIK/CCDIK modification stacks and updating bone rest poses at runtime for procedural limb goal-reaching. ### [animation_tree_step.gd](../scripts/2d_animation_animation_tree_step.gd) Expert state machine control. Utilizes `Animati