Sounds similar to an over the shoulder camera except for a ball instead of the character so check out this article with an example script for that.
Sounds like projectile motion which you can see from this tutorial but with a twist as the ball going up is caused by the ball spinning.
You can just simulate this by adding a force going upwards on the ball initially so you don’t have to worry too much about the spin aerodynamics physics .
Yeah user input services are the way to go for the power bar as @YellowBannana898 mentions. To record time you can measure time on input began using tick() or os.time() and measure it again on input ended to get the time difference, you can search online for this as it’s similar to making a cool down script.