`getPosASL`/`setPosASL` uses the land contact of the object, which changes according to orientation, so technically it's still a relative position, not absolute, which nullifies the point of using ASL format.
This will cause weird and unexpected movement. Let's say you want to move the object is a straight line:
```
start = getPosASL player vectorAdd [0,0,10];
end = start vectorAdd [0,1000,0];
spd = 5;
duration = 1000 / spd;
heli allowDamage false;
timer = 0;
onEachFrame {
if (isGamePaused) exitWith {};
if (timer > duration) exitWith {onEachFrame ""};
timer = timer + diag_deltaTime * accTime;
_dir = [0,1,0];
_up = [sin (500 * timer), 0, cos ( 500 * timer)];
heli setVelocityTransformation [start, end, [0,spd,0], [0,spd,0], _dir, _dir, _up, _up, timer / duration];
}
```
This is what you get:
{F2611152}
It's not a straight line....
Would it be possible to add an additional optional `bool` parameter to make it use `positionWorld` instead?
```
object setVelocityTransformation [fromPosASL, toPosASL, fromVelocity, toVelocity, fromVectorDir, toVectorDir, fromVectorUp, toVectorUp, interval, useWorld = false]
```
useWorld: Uses the `world` version of ASL format.