Player movement with zero gravity

Ok im trying to make a player float with the aim of getting him moving similar to asteroids 2d movement in 3d. The user input is forward key for thrust. Im trying not to use body movers.

I have so far achieved most of this with the players parts anchored first The movement does not continue in a linear direction after the player cam has rotated. It follows the camera look vector all the time.

Scenario:
If you hold press the thrust key the player moves forwards some speed then turn him around facing the way he came press hold the thrust key he should slow down gradually and then go the direction he is now facing. But he doesn’t.he follows the cam when you change direction.

robloxapp-20210214-1410064.wmv (2.4 MB)

The script is here zeroGtest - Roblox

this is what i have so far inside a renderstep loop

if forwardThrust then
	
	posInFront  =  char.PrimaryPart.CFrame.lookVector  

	xVel += posInFront.X
	yVel += posInFront.Y
	zVel += posInFront.Z

end


local x = xVel *  deltaTime * 0.1 ;
local y = yVel *  deltaTime * 0.1 ;
local z = zVel *  deltaTime * 0.1 ;

local f = CFrame.new(x,y,z)
 
char:SetPrimaryPartCFrame(char.PrimaryPart.CFrame *  f  ) 

--keep player facing forward
local x,y,z = cam.CFrame:ToEulerAnglesXYZ()	
local c =  CFrame.new(char.HumanoidRootPart.CFrame.p) * CFrame.Angles(x,y,z)	
 char:SetPrimaryPartCFrame(c)