I have a system that gets the players mouse direction, multiplies it by the needed power which is a number and the ball:GetMass(), this is used as an applyimpulse, however its just not realistic enough, when you kick the ball it should have some air time and then fall, however this ball just stays up for a second or too, i tried camera.CFrame.LookVector as well, im thinking of turning on the aerodynamics feature but idk if it would help.
gameplay
https://streamable.com/dikfvo