Quick answer: tween.set_parallel(true) before chaining tween_property calls. Or per-call tween.parallel().tween_property(...).

Want fade and move at the same time. Two tween_property calls run in series — fade ends, then move starts. Default is sequential.

The Fix

# Mode-based
var tw = create_tween().set_parallel(true)
tw.tween_property(node, "modulate:a", 0.0, 0.5)
tw.tween_property(node, "position", target_pos, 0.5)
# both run concurrently

# Per-call
var tw2 = create_tween()
tw2.tween_property(node, "modulate:a", 0.0, 0.5)
tw2.parallel().tween_property(node, "position", target_pos, 0.5)

Mode-based is cleaner for long parallel sequences. Per-call gives mixed control.

Verifying

Both properties animate together. Total time = max of both, not sum.

“set_parallel. Or parallel() per call. Concurrent.”

Related Issues

For tween finished, see finished signal. For AnimationTree travel, see travel.

Parallel mode. Both run.