So I've been trying to make and ability like Tracer's Blink in Overwatch. I looked at Garbaj's tutorial about it but it was uselles (no collision) but I found a very good script in the comments.
var dir = Vector3.ZERO
var blink = 25
if Input.is_action_just_pressed("ability"):
dir *= blink
It works fluently, it has collision detection and looks good. The only problem is that if the speed of the player or the engine changes, so does the distance that the player will "jump". But I want the player to "jump" the same distance no matter the speed.