Curve ball using body velocity

Basically i want the ball to move forward and curve when kicked

when you kick the ball it moves forward and it curves but the direction it curves changes depending on where the player is looking so if i kick it one way then look the other way and kick the ball again it will curve the wrong way

correct way

wrong way

	local yy = Instance.new("BodyVelocity")
		yy.maxForce = Vector3.new(math.huge, math.huge, math.huge)
		if side == "Right" then
			yy.Velocity = (Root.CFrame.LookVector + Root.CFrame.RightVector)*(Data.Strength*Settings.Kick_Force) + Vector3.new(0,10,0)
		else
			yy.Velocity = (Root.CFrame.LookVector + -Root.CFrame.RightVector)*(Data.Strength*Settings.Kick_Force) + Vector3.new(0,10,0)
		end
		
		yy.Parent = Ball
		
		local vel2 = Vector3.new(0,0,18)
		if side == "Right" then
			vel = Vector3.new(0,0, -18)
		end

		task.spawn(function()
			while task.wait(0.05) do
				if not yy then
					break
				end

				yy.Velocity+=vel2
			end
		end)

		game.Debris:AddItem(yy,0.6)

im pretty sure it has something to do with me using vector3 and not cframe but im not sure how to make it curve based on the cframe

thats the post i tried to use but the ball still curves the wrong way

Depending on which way you want it to go, change it to -= or +=. That should change the direction it goes in

have you found a solution to this? i am stuck with a similar problem.

i just saw this so sorry for being late but i just decided to use CFrame Lerp

1 Like