Problem with parachute

Hello devforum, I am trying to make a parahute, and I have a problem, when the player is falling it can’t move to the sides or forward/backward:

https://gyazo.com/a09e4dabcdca3483835342d32b46dfd1

Script:

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

local vel = script.BodyVelocity
local mesh

if character then
	wait(1)
	local torso = character.HumanoidRootPart
	mesh = workspace.Parachute:Clone()
	mesh.Parent = workspace
	mesh.CanCollide = false
	mesh.Massless = true
	mesh.Anchored = false
	mesh.CFrame = CFrame.new(torso.Position)
	parachute = mesh
	local weld = Instance.new("Weld")
	weld.Parent = mesh
	weld.Part0 = torso
	weld.Part1 = mesh
	weld.C0 = CFrame.new(0, 12.5, 0.8)
end

while wait(0.1) do
	if character:FindFirstChild("Humanoid") then
		print(tostring(character.Humanoid:GetState()))
		if character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall then
			if mesh then
				wait(0.2)
				vel.Parent = mesh
			end
		else
			vel.Parent = script
		end
	end
end