tween = create_tween()
var target_pos = self.position + Vector2 (0,100)
self.position = target_pos
You can use tween for this. tweenproperty will make the movement and after it ends save the position with tweencallback. Tweencallback will call the callable after tweenproperty ends. You can put the endmovement function somewhere else and call it from tweencallback but I wanted to keep it short. And end_movement is a normal function so you can add more things it doesnt have to be 1 line.