Skip to content
tweens.gd

GDScriptBeta

Helper catalog

The addon has a named helper for every property and value definition in the C# catalog. Each helper returns an ordinary reusable definition that already knows its target class, property, and value type, so a start checks them before any value is written.

Page What it covers
2D nodes CanvasItem, Node2D, sprites, cameras, particles, lights, lines, paths, and polygons
3D nodes Node3D, GeometryInstance3D, 3D sprites, cameras, particles, decals, fog, lights, and paths
UI controls Control layout and transforms, Range, labels, and progress bars
Material properties BaseMaterial3D colors, emission, roughness, and UVs
Animation and audio AnimationPlayer speed and the audio players’ pitch, volume, and range
Callback values float_value and the other helpers that write no property

Each page lists the property path a helper tweens, such as modulate or position:x; the same path works with Tweens.property(), without the helper’s class and type checks. Names ending in _x, _y, _z, or _alpha write one component and read the others at write time. Helper names follow the C# definition names in snake case. The pages are generated from the addon’s CATALOG.md.

# sprite: Sprite2D, camera: Camera2D, label: Label; all inside the tree.
var move := Tweens.position_2d([300, 120], 0.5, Out.CUBIC)
var movement := Tweens.play(sprite, move)
var fade := Tweens.play(sprite, Tweens.modulate_alpha(0.0, 0.2))
var zoom := Tweens.play(camera, Tweens.camera_2d_zoom([2, 2], 0.4))
Tweens.play(label, Tweens.label_visible_ratio(1.0, 1.5).with_from(0.0))
await Tweens.group([movement, fade]).end

Every helper takes (to = null, seconds = 0.0, easing = Tweens.Ease.LINEAR, delay = 0.0). If a definition has no from_value or to_value, it uses the property’s value when the tween starts for that endpoint. Vectors and colors can be arrays such as [400, 180]; see syntax sugar. The returned definition exposes the same fields as one made with Tweens.property(), including from_value, timing, easing, and callbacks; set them before calling play(), or vary a shared one with with_*() copies. See definitions for reuse and copies, and lifetime and ownership for how playback ends with its node.

Tweens.play_all(target, [first, second]) starts several helpers on one target and returns a group.

A helper that targets a base class works on every node derived from it: Node2D and Node3D carry the transforms, CanvasItem the 2D modulation, Control the layout, SpriteBase3D the 3D sprite appearance, GeometryInstance3D the transparency, and Range the value. BaseMaterial3D helpers target a material; start them with an owner, as described in materials.

Each group page lists the constraints specific to it. These apply everywhere:

  • Rotation, skew, and texture rotation use radians. Camera field of view, light and emission angles, and radial progress angles use degrees. Ratios use the native property range; positions, sizes, paths, and offsets use the Godot units of each property.
  • Integer properties, such as sprite frames and visible_characters, interpolate continuously and round to nearest with ties away from zero. GDScript saturates at signed 64-bit limits, where C# uses 32-bit limits. Native constraints still apply.
  • Colors and vectors keep easing overshoot. Engine setters can clamp values.
  • Setting a property doesn’t enable a rendering feature or create a resource. Renderer support and sorting limitations are Godot’s.
  • For shader uniforms, see shader uniforms.

tweens.gd is made with math & ferrets, copyright © 2026 its contributors.

Godot logo by Andrea Calabró, licensed under CC BY 4.0.

"Easy, the Ferret" illustrations drawn by foxy_maria.

tweens.gd is released under the MIT License.

Godot is licensed under the MIT License.
tweens.gd is not affiliated with or endorsed by the Godot Foundation.