Problems creating a jump with body velocity

I’m currently trying to make a movement system similar to the Dark Souls Series. In the game the character jumps forward then rolls, I wanted to create the same thing with body velocity but it has a few issues such as moving in the wrong direction and moving them mid air.

The reference.

The animations are made locally and body movers are server sided.
This is the script on the server.

local combatEvent = game.ReplicatedStorage.RemoteEvents.CombatEvent

combatEvent.OnServerEvent:Connect(function(client, data)
	if data.Action == "jump" then
		local bv = Instance.new("BodyVelocity", data.Character:WaitForChild("HumanoidRootPart"))
		bv.Velocity = (data.Character:WaitForChild("HumanoidRootPart").CFrame.LookVector * 50) + Vector3.new(0,20,0)
		bv.MaxForce = Vector3.new(99999,99999,99999)
		bv.Name = "Velocity"
		game.Debris:AddItem(bv, 0.2)
		wait(0.6)
		local bv = Instance.new("BodyVelocity", data.Character:WaitForChild("HumanoidRootPart"))
		bv.Velocity = data.Character:WaitForChild("HumanoidRootPart").CFrame.LookVector * 40
		bv.MaxForce = Vector3.new(99999,99999,99999)
		bv.Name = "Velocity"
		game.Debris:AddItem(bv, 0.4)
	end
end)

Any help would be greatly appreciated