Ok, so, I'm trying to make a basic plane script and everytime you click a part, the plane brakes to a halt and kinda just floats around, but if I click the air, it flies properly. This is the localscript in the plane tool.

local tool = script.Parent

tool.Equipped:Connect(function(mouse)
	local plr = game.Players.LocalPlayer
	local char = plr.Character
	
	workspace.Gravity = 0
	mouse.Button1Down:Connect(function()
		if not char then return end
		mouse.TargetFilter = char.Humanoid.SeatPart.Parent.Body
		tool.ChangeVelocity:FireServer(mouse.Hit.p)
	end)
	tool.Unequipped:Connect(function()
		tool.DestroyVelocity:FireServer()
		workspace.Gravity = 196.2
	end)
end)

And this is the serverscript

local tool = script.Parent

tool.ChangeVelocity.OnServerEvent:Connect(function(plr, mouseP)
	if plr.Character then
		local torso = plr.Character.Torso
		if torso:FindFirstChild("BodyPosition") then
			torso.BodyPosition.Position = mouseP
			torso.BodyGyro.CFrame = CFrame.new(torso.Position, mouseP)
		else
			local bodyPosition = Instance.new("BodyPosition")
			local bodyGyro = Instance.new("BodyGyro")
			bodyGyro.CFrame = CFrame.new(torso.Position, mouseP)
			bodyPosition.MaxForce = Vector3.new(350,350,350)
			bodyPosition.P = 40
			bodyPosition.Position = mouseP
			bodyPosition.Parent = torso
			bodyGyro.Parent = torso
		end
	end
end)