Continuing with my unorthodox use of Arma commands and due to ever growing reluctance of Bohemia to implement some essential functionality, let me present you with setVelocityModelSpace scripted solution.

Just to sum up. There are 2 getter commands available, velocity, which gets you global velocity of an object, and velocityModelSpace, which gets you relative velocity of an object, and 1 setter, setVelocity, which sets global velocity of an object. Why someone implemented just a getter but not setter for relative velocity is a mystery to me, especially because the setter is already there, if you know what I mean.

So, rather than having to wait another 1 billion million years for the next Arma scripting evolution, I made a function instead:

KK_fnc_setVelocityModelSpace = { private "_o"; _o = _this select 0; _o setVelocity ( _o modelToWorld (_this select 1) vectorDiff ( _o modelToWorld [0,0,0] ) ); };
KK_fnc_setVelocityModelSpaceVisual = { private "_o"; _o = _this select 0; _o setVelocity ( _o modelToWorldVisual (_this select 1) vectorDiff ( _o modelToWorldVisual [0,0,0] ) ); };


[car, [-5,0,0]] call KK_fnc_setVelocityModelSpace; //push car to its left

Not much else to say.