Quick answer: Godot 4 Tween outliving its target node? Tweens hold strong references to properties; freed-but-not-killed tweens leak - use bind_node or kill on free.

Spawn a particle, tween its position, free it during the tween. Tween continues; references the freed node; leak.

Bind to node

tween.bind_node(target)

Tween auto-kills when bound node is freed. The cleanest fix.

Or kill on tree exit

Connect tree_exiting; call tween.kill(). Manual; works.

Use create_tween on the node

node.create_tween() binds automatically. Prefer this over get_tree().create_tween() for node-targeted tweens.

“Tweens are independent objects. Their target nodes aren't.”

If you find an orphan tween, the root cause is usually bind_node missing. Audit; fix systematically.

Related reading