How do I stop Velocity on my Aircraft?

I have made a script using Body Velocity to move my aircraft forwards and backward, Body Gyro to turn it and Body Position to make it move up and down. I am testing flight for a future game. Everything is working fine using the Vehicle seat except that when I attempt to turn, the aircraft drifts and slows down before it turns and makes turning very slow and difficult. Could anyone please tell me how I can make my aircraft change direction without drifting? (I already tried changing the power on the BV)

SCRIPT

   VehiclePrompt.Triggered:Connect(function(player)

	Events.Enter:FireClient(player,AircraftCamera)

	local Char = player.Character

	local HRP = Char.HumanoidRootPart

	local Humanoid = Char.Humanoid

	wait(1)

	Humanoid.JumpPower = 0

	VehicleSeat:Sit(Humanoid)

	BG.MaxTorque = BGDefault.Value

	BP.MaxForce = BPDefault.Value

	Occupied.Value = true

	Occupant.Value = player.Name

	while Occupied.Value == true do

		wait()

		if VehicleSeat.Throttle == 1 then
			if value1 < maxspeed then value1 = value1 + 1 end
			BV.velocity = VehicleSeat.CFrame.lookVector * value1
		end

		if VehicleSeat.Throttle == 0 then
			value1 = 0
			BV.velocity = VehicleSeat.CFrame.lookVector * value1
		end

		if VehicleSeat.Throttle == -1 then
			if VehicleSeat.Steer == -1 then
				BP.Position = VehicleSeat.CFrame * Vector3.new(0,10,0)
			end
		end

		if VehicleSeat.Throttle == -1 then
			if VehicleSeat.Steer == 0 then
				BP.Position = VehicleSeat.CFrame * Vector3.new(0,-10,0)
			end
		end

		if VehicleSeat.Steer == 1 then
			BG.CFrame = BG.CFrame * CFrame.fromEulerAnglesXYZ(0,-.018,0)
			BV.velocity = VehicleSeat.CFrame.lookVector * value1 * 2
		end

		if VehicleSeat.Steer == -1 then
			if VehicleSeat.Throttle == 0 or VehicleSeat.Throttle == 1 then
				BG.CFrame = BG.CFrame * CFrame.fromEulerAnglesXYZ(0,.018,0)
				BV.velocity = VehicleSeat.CFrame.lookVector * value1 * 2
			end
		end

	end

end)

Video of the Aircraft "Drifting"

1 Like