Your math is kind of wrong.

I think you just need add both vectors: 4000 times forward vector and current velocity.

So make 3d vector out of that x,y,z of “character movement”

Get forward vector of player pawn (or camera if its fps game, or anything that points to right direction), Normalize it (just to be totally sure its 1 length) multiply this vector by 4000.

Then add both vectors.

Line trace work wonders for debugging vectors. If above does not work do trace line for velocity and forward vectors.

In case you really want what you describbed:

To rotate vector you need to make rotation/ Best for you is “make rot from ZX (or XZ)”,

This will create rotator. Then you can rotate unit vector around axis (up or Z for you)

Or just use “rotate vector” and whole rotator.

I never played with characters yet, so i am not sure which axis is what for them.

Ps.

Also Cross product will always give you 3rd vector that is normal to 2 given vectors. This way if you have left and forward you can find up. and so on.

Also dot product gives cosinus between 2 vectors. So with acos and some fiddling with sign you could find angle in degrees.