# GDScript: Helper catalog

Source: https://tweens.gd/gdscript/nodes/

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.

## Find a helper

| Page | What it covers |
| --- | --- |
| [2D nodes](https://tweens.gd/gdscript/nodes/2d/) | `CanvasItem`, `Node2D`, sprites, cameras, particles, lights, lines, paths, and polygons |
| [3D nodes](https://tweens.gd/gdscript/nodes/3d/) | `Node3D`, `GeometryInstance3D`, 3D sprites, cameras, particles, decals, fog, lights, and paths |
| [UI controls](https://tweens.gd/gdscript/nodes/ui/) | `Control` layout and transforms, `Range`, labels, and progress bars |
| [Material properties](https://tweens.gd/gdscript/nodes/materials/) | `BaseMaterial3D` colors, emission, roughness, and UVs |
| [Animation and audio](https://tweens.gd/gdscript/nodes/audio/) | `AnimationPlayer` speed and the audio players’ pitch, volume, and range |
| [Callback values](https://tweens.gd/gdscript/nodes/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`.

## Usage

```gdscript
# 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](https://tweens.gd/gdscript/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](https://tweens.gd/gdscript/definitions/) for reuse and copies, and [lifetime and ownership](https://tweens.gd/gdscript/lifetime/) for how playback ends with its node.

`Tweens.play_all(target, [first, second])` starts several helpers on one target and returns a [group](https://tweens.gd/gdscript/sequences/).

Checked at start, not at parse time

GDScript has no generic types, so a helper can be passed any target. `play()` checks the target’s class and the captured value’s type when playback starts. A mismatch returns a handle already settled with `Tweens.Reason.FAILED` and logs the reason; see [handle errors](https://tweens.gd/gdscript/api/handles/#errors).

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](https://tweens.gd/gdscript/materials/).

## Units and engine constraints

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](https://tweens.gd/gdscript/materials/).
