How to make my soccer shooting less choppy

Hello, I want to know how to make my soccer shooting less chopy. Right now the shooting looks like this:

I want the ball to go further and not just dip down. Here is my script…:

	re.Events.Network:FireServer()
					local force = Instance.new("BodyVelocity")
					force.MaxForce = Vector3.new(4e+006,4e+003,4e+006)
					force.P = 9
					force.Parent = hit
					

					local S = Instance.new("BodyAngularVelocity")
					S.AngularVelocity = Vector3.new(0, -1, 0)
					S.MaxTorque = Vector3.new(0, math.huge, 0)
					S.Parent = hit
					game.Debris:AddItem(S, 0.30)

	game.Debris:AddItem(force, 0.3)
						force.Velocity = (plr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 50	) + Vector3.new(0,30,0)

have you tried setting network ownerships. Also can upload the video directly in this conversation

also, if you want the ball not to dip down quit then add a bodyforce inside the ball and then mess around with the values

Maybe try this?

local function applySmoothForce(hit, direction, magnitude, duration)
	local force = Instance.new("BodyVelocity")
	force.MaxForce = Vector3.new(4e+006,4e+003,4e+006)
	force.P = 4 -- lower P value
	force.Velocity = direction.Unit * magnitude
	force.Parent = hit

	local S = Instance.new("BodyAngularVelocity")
	S.AngularVelocity = Vector3.new(0, -1, 0)
	S.MaxTorque = Vector3.new(0, math.huge, 0)
	S.Parent = hit
	game.Debris:AddItem(S, duration)

	-- gradually decrease force over time
	local dt = 0.1 -- decrement time interval
	while duration > 0 do
		force.Velocity = force.Velocity - direction.Unit * (magnitude * dt / duration)
		wait(dt)
		duration = duration - dt
	end
	-- remove the force
	force:Destroy()
end

-- example usage:
local direction = plr.Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector
applySmoothForce(hit, direction, 50, 0.3)

hi, what values do you reccomend

400 - 700 thats what i use (messenger cap)

On which axis do i put it on? (messenger cap)

on the y ( Messenger cap asddas)