Skip to content
tweens.gd

C#Beta

Reuse a Definition

A tween definition is a motion you can re-use on any compatible Node.

Animations are paused

Reduce Motion is on, or Animation Effects are off.
(e.g. in your accessibility settings)

Applies to this demo until you reload.
var hop = new Tweens.Position2DY
{
    By = -80,
    Duration = 0.25,
    Ease = Out.Quad,
    PingPong = true,
};

for (var i = 0; i < icons.Length; i++)
    icons[i].Tween(hop with { Delay = i * 0.2 });

Changes apply to the next wave. Icons in the air keep the settings they started with.

In a 2D scene, drag icon.svg into the viewport a few times, side by side. Attach this script to the scene’s root Node2D and run it.

HopWave.cs
using System.Linq;
using Godot;
using tweens.gd;
public partial class HopWave : Node2D
{
public override void _Ready()
{
var hop = new Tweens.Position2DY
{
By = -80,
Duration = 0.25,
Ease = Out.Quad,
PingPong = true,
};
var icons = GetChildren().OfType<Node2D>().ToArray();
for (var i = 0; i < icons.Length; i++)
icons[i].Tween(hop with { Delay = i * 0.2 });
}
}
  1. Define once. hop lifts a node 80 pixels and drops it back; negative y is up in Godot. By is relative, so each icon hops from wherever it stands.
  2. Find the nodes. Every Node2D child of this node.
  3. Start a copy on each. with copies hop and changes only Delay, so hop itself keeps no delay. Each start returns its own handle.

Each start snapshots its definition. Change hop later, and only the starts after that follow; tweens already playing keep their settings.

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.