BodyVelocity [Problem]

local bv = Instance.new("BodyVelocity")
	bv.MaxForce = Vector3.new(900, 1800, 900)
	local cc_fire = ss.Models.Fireball:Clone()
	cc_fire.Parent= workspace
	cc_fire.CFrame = CFrame.new(hrp.Position + hrp.CFrame.LookVector*4)      
	bv.Parent = cc_fire
	bv.Velocity = hrp.CFrame.lookVector.unit*30
	wait(.1);
	spawn(function()
		while not touch do
			mouse = game.ReplicatedStorage.Events.Mouse:InvokeClient(plr)
			wait(1/60)
			bv.Velocity = mouse.p;
		end
	end)

So basically I am making a boulder that will change direction in mid-air, and stay the same speed. However when I try to slow down the MaxVelocity it makes it so I can’t turn, then it goes way to fast.

https://gyazo.com/18f9e7d3ac0d7ef91f26cbe5c8e71e13

This is what I am trying to achieve. Anything would be a major help!

Thanks,
TheSharingan321