Help With LinearVelocity

So, Whel i create a LinearVelocity i want to it too be heavy and fast, but what happens is its so fast and so light, what i mean that it goes up so high and Fast the it passes the walls that have collision with it, and also the highness keeps increasing with every one and delays so much movements

Here is my script

script.Parent:FindFirstChild("Right Leg").Touched:Connect(function(hit)
	if not hit:FindFirstChild("LinearVelocity") then
		if hit.Name == "BallPart" then
			if shooting == true then

				local lv = Instance.new("LinearVelocity")
				lv.Parent = hit
				lv.MaxForce = math.huge
				lv.Attachment0 = hit:FindFirstChild("Attachment")

				-- [[ Shoot ]]

				lv.VectorVelocity = (player.Character.HumanoidRootPart.CFrame.LookVector + Vector3.new(0, 0.12, 0)) * (power + 50)

				wait(0.2)

				-- [[ Curve And Down Force ]]

				delay(0.5, function()
					for i = 0, power / 50, 0.02 do
						lv.VectorVelocity = lv.VectorVelocity - Vector3.new(0, 3, 0)
						lv.VectorVelocity = lv.VectorVelocity + player.Character.HumanoidRootPart.CFrame.RightVector * 2
						task.wait(0.02)
					end
				end)
				
				wait(1)
				lv:Destroy()
				power = 20

			end
		end
	end
end)

btw i don’t know that much on coding physics stuff