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.