
godot-tweening
Expert blueprint for programmatic animation using Tween for smooth property transitions, UI effects, camera movements, and juice. Covers easing functions, parallel tweens, chaining, and lifecycle management. Use when implementing UI animations OR procedural movement. Keywords Tween, easing, interpolation, EASEINOUT, TRANSCUBIC, tweenproperty, tweencallback.
- Installs
- 484
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/thedivergentai/game-dev-agentic-skills --skill godot-tweening- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads godot-tweening automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Decision Tree — Tween vs AnimationPlayer
| Situation | Choose |
|---|---|
| One-off UI juice, hover, popup, score count, recoil | Tween (create_tween) |
| Authored multi-track clips, scrubbable timelines, blend trees | AnimationPlayer / AnimationTree |
| Camera continuous follow behind a moving target | Camera2D.position_smoothing / spring follow — not a new Tween every _process |
Menu motion while Engine.time_scale == 0 | Tween with set_ignore_time_scale(true) — MANDATORY time_scale_ignored_ui.gd |
| Retriggerable property (button spam, dodge cancel) | Kill-before-recreate — MANDATORY safe_tween_interruption.gd |
| Physics body / net correction motion | TWEEN_PROCESS_PHYSICS + reset_physics_interpolation |
Available Scripts
MANDATORY: Read the script for the case above before writing tween glue.
safe_tween_interruption.gd
MANDATORY for any retriggerable tween — kill active tweens before starting new ones.
time_scale_ignored_ui.gd
MANDATORY for pause-menu / time_scale == 0 UI motion.
nested_subtween_cutscene.gd
MANDATORY for composable cutscene timelines via tween_subtween.
parallel_popup_animation.gd
set_parallel(true) + chain() for multi-property UI transitions.
text_counter_method_tween.gd
tween_method for non-property values (score strings).
custom_curve_tween.gd
Curve resources for bespoke easing.
camera_shake_tween_logic.gd
Procedural screen shake with looping tweens (offset, not follow).
relative_recoil_tween.gd
as_relative() / from_current() for recoil nudges.
staggered_inventory_entry.gd
Sequential collection entry on one Tween.
looped_hover_vfx.gd
Infinite ping-pong ambient juice.
juice_manager.gd / tween_builder.gd
Central juice dispatch / builder helpers when many systems share feel presets.
NEVER Do in Tweening
- NEVER instantiate a Tween using
Tween.new()— Always usecreate_tween()orget_tree().create_tween()[3, 4]. - NEVER attempt to reuse a finished Tween — Single-use; recreate to replay [4].
- NEVER manually instantiate
PropertyTweenerorCallbackTweener— Only via parent Tween methods [5]. - NEVER create an infinite loop containing only 0-duration animations — Freezes the engine [10].
- NEVER use multiple Tweens to animate the same property simultaneously —
kill()the old reference first [11, 12]. - NEVER use linear interpolation for UI/Juice — Prefer
EASE_OUT + TRANS_QUADorEASE_IN_OUT + TRANS_CUBIC[22]. - NEVER create tweens in
_processwithout guards — Creating 60 tweens per second will crash the app. - NEVER skip
bind_node(self)for non-global tweens — Binding ensures death with the node [13]. - NEVER use 0-duration tweens for state changes — Set the property directly [20].
- NEVER forget to call
chain()when returning fromset_parallel(true)[15].
Lifecycle Golden Path
var _tween: Tween
func animate_to(pos: Vector2) -> void:
if _tween and _tween.is_valid():
_tween.kill()
_tween = create_tween().bind_node(self)
_tween.set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_QUAD)
_tween.tween_property(self, "position", pos, 0.35)
MANDATORY pattern source: safe_tween_interruption.gd.
Camera Follow (Correct)
Continuous follow is not a Tween job:
extends Camera2D
@export var target: Node2D
func _ready() -> void:
position_smoothing_enabled = true
position_smoothing_speed = 5.0
func _physics_process(_delta: float) -> void:
if target:
global_position = target.global_position
If you must tween a one-shot camera punch/return, keep one Tween reference and kill before recreate — never create_tween() inside unguarded _process.
Expert Patterns (keep)
Physics-Sync-Tweening
func apply_physics_tween(target: Node3D, start_pos: Vector3, goal: Vector3) -> void:
target.global_position = start_pos
target.reset_physics_interpolation()
var tween := create_tween().bind_node(target)
tween.set_process_mode(Tween.TWEEN_PROCESS_PHYSICS)
tween.tween_property(target, "global_position", goal, 0.5)
Juice-Config-Resource
Store duration/trans/ease in a Resource (see juice scripts) so feel is data-driven.
Tween-Event-Sequencing
Parallel block → chain() → interval/callback → exit. Prefer nested_subtween_cutscene.gd for nested modules.
Bezier-Path-Tween
Tween PathFollow2D.progress_ratio instead of hand-rolled Bezier math.
Deep recipes (on demand)
LLM-ignorance rule: if a general agent would not know it before reading, it lives here or in
scripts/— never delete, only move.
| Topic | Reference |
|---|---|
| Chains, kill, gotchas | tween-recipes-and-gotchas.md |
Reference
Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
Official Documentation
- Tween — create_tween, parallel/chain, loops, process mode, ignore_time_scale, and kill/lifecycle rules.
- PropertyTweener — tween_property details: as_relative, from_current, custom interpolators, and per-step ease/trans.
- MethodTweener — tween_method for non-property values (score counters, shader params, Curve-sampled motion).
- CallbackTweener — tween_callback for sequenced side effects without inventing fake 0-duration property steps.
- IntervalTweener — tween_interval delays inside a single Tween timeline.
- SubtweenTweener — tween_subtween for nested cutscene modules under one parent timeline.
- Interpolation — lerp/smoothstep foundations behind easing choices and custom interpolators.
- Beziers, curves and paths — Curve/PathFollow patterns used when property tweens alone cannot describe the path.
- Introduction to the animation features — when Tween juice is enough versus AnimationPlayer/AnimationTree authored tracks.
- Using SceneTree — SceneTree.create_tween and node lifetime when bind_node is not enough.
- Idle and Physics Processing — idle vs physics process modes for TWEEN_PROCESS_PHYSICS sync.
- Physics interpolation quick start guide — reset_physics_interpolation when tweening transforms on interpolated bodies.
Related Skills
Prerequisites
- godot-project-foundations — scene tree, Node ownership, and resource basics before create_tween/bind_node lifecycle patterns.
- godot-gdscript-mastery — typed callables, lambdas, and await/signal idioms used in tween_method and finished handlers.
Complements
- godot-2d-animation — sprite/skeleton motion that often coexists with Tween juice and needs shared kill/lifecycle discipline.
- godot-animation-player — authored clips for complex timelines; Tweens stay for runtime/procedural UI and one-off juice.
- godot-ui-containers — Control size/pivot/layout context for popup scale-fade and staggered inventory entry tweens.
- godot-signal-architecture — finished/callback wiring without dangling connections when Tweens are killed and recreated.
- godot-camera-systems — camera follow, shake offsets, and look targets driven by procedural Tweens.
- godot-resource-data-patterns — JuiceConfig-style Resources that store duration/trans/ease outside gameplay scripts.
- godot-particles — burst timing and one-shot VFX that should start from tween_callback steps, not parallel ad-hoc timers.
- godot-shaders-basics — shader params animated via tween_method / set when property paths are not enough.
Downstream / consumers
- godot-inventory-system — slot/item entry, drag feedback, and equip juice built on staggered and interruptible Tweens.
- godot-genre-card-game — hand arcs, draw/discard flights, and resolve polish that depend on Tween chaining.
- godot-ui-theming — theme-driven hover/focus motion that still needs safe Tween interruption under the same Control.
Master
- godot-master — library router and mirrored module entry for cross-skill discovery.
FAQ
What does the godot-tweening skill do?
Expert blueprint for programmatic animation using Tween for smooth property transitions, UI effects, camera movements, and juice. Covers easing functions, parallel tweens, chaining, and lifecycle management. Use when implementing UI animations OR procedural movement. Keywords Tween, easing, interpolation, EASEINOUT, TRANSCUBIC, tweenproperty, tweencallback.
How do I install godot-tweening?
Run npx skills add https://github.com/thedivergentai/game-dev-agentic-skills --skill godot-tweening in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/godot-tweening/ (personal) or .claude/skills/godot-tweening/ (project).
Which AI agents can use godot-tweening?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is godot-tweening safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains godot-tweening?
It is published by thedivergentai in thedivergentai/game-dev-agentic-skills. It has 484 recorded installs.
More from thedivergentai/game-dev-agentic-skills
godot-master
thedivergentai/game-dev-agentic-skills
Consolidated expert library for professional Godot 4.7+ game and application development. Orchestrates 92 Domain Skills through architectural workflows, anti-pattern catalogs, performance budgets, and Server API patterns. Use when: (1) starting a new Godot project, (2) designing game or app architecture, (3) building entity/component systems, (4) debugging performance or physics issues, (5) choosing between 2D/3D approaches, (6) implementing multiplayer, (7) optimizing draw calls or script time, (8) porting between platforms, (9) migrating from 4.6 to 4.7. Primary entry point for ALL Godot development tasks. Keywords: Godot 4.7, AreaLight3D, HDR, Asset Store, godot-master.
godot-shaders-basics
thedivergentai/game-dev-agentic-skills
Expert Godot shader patterns for batch-safe hitflash, alpha-scissor foliage/dissolve, screenspace postFX, depth reconstruction, triplanar, and instance uniforms — not first-shader tutorials. Trigger on draw-call batching breaks, discard vs depth-prepass, foliage shadows, post-process quads, or world-position FX. Keywords: instance uniform, ALPHASCISSOR, hintscreentexture, hintdepthtexture, global uniform, sampler2DArray, canvasitem, spatial, post-processing.
godot-2d-animation
thedivergentai/game-dev-agentic-skills
Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs. Use when implementing sprite frame animations, procedural animation (squash/stretch), cutout bone hierarchies, or frame-perfect timing systems. Trigger keywords: AnimatedSprite2D, SpriteFrames, animationfinished, animationlooped, framechanged, frameprogress, setframeandprogress, cutout animation, skeletal 2D, Bone2D, procedural animation, animation state machine, advance(0).
godot-ui-theming
thedivergentai/game-dev-agentic-skills
Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Covers StyleBoxFlat/Texture, theme inheritance, dynamic theme switching, and font variations. Use when implementing consistent UI styling OR supporting multiple themes. Keywords Theme, StyleBox, StyleBoxFlat, addthemeoverride, font, theme inheritance, dark mode.
godot-gdscript-mastery
thedivergentai/game-dev-agentic-skills
Expert GDScript landmine guidance: static typing opcodes, signal-up/call-down, %UniqueName/@onready lifecycle, Callable bind/unbind, await sequences, typed collections, and safe Dictionary iteration. Use for code review, refactoring hot paths, or project standards. Trigger keywords: statictyping, signalarchitecture, uniquenodes, @onready, classname, signalupcalldown, Callable.bind, typedcollections, awaitsequence.
godot-particles
thedivergentai/game-dev-agentic-skills
Expert blueprint for GPU particle systems (explosions, magic effects, weather, trails) using GPUParticles2D/3D, ParticleProcessMaterial, gradients, sub-emitters, and custom shaders. Use when creating VFX, environmental effects, or visual feedback. Keywords GPUParticles2D, ParticleProcessMaterial, emissionshape, colorramp, subemitter, oneshot.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.