Hello,
You can have a look at linear interpolation ("lerp" function).
Something like this could do the trick:
extends Node3D
@export var target : Node3D
func _process(delta):
var a = self.global_position
var b = self.target.global_position
var t = delta * 1.0
self.global_position = lerp(a, b, t)
Note that linear interpolation is used to create points between 2 points (A and B for example).
You start from A and use a parameter (t) that vary between 0 and 1.
So at t=0 you are at A, at t=1 you are on B, at t=0.5 you are between A and B.
In this code we use delta as t value. So you may need to snap the object to the target position when you are close enough, as you will never reach the B value in theory.
(Ex : At 60 fps, delta = 0.0166...)
Hope it helps !