I have begun developing a basketball game and have naturally found myself trying to think of ways to restrict the basketball's physics to produce realistic results (unlike the madness that ensues when a part is squished and fires a thousand studs away). My current idea includes updating the CFrame of the ball frequently to keep it along clean, trigonometric paths in the air and creating some pre-determined angles at which the ball can fly when motion is interrupted. Currently, I'm struggling to figure out a way around the inconsistencies caused by remote events and manipulation of network ownership to create a game that has as little delay as possible when the ball is transferred from a player's possession to the rest of the court. Any ideas and suggestions are encouraged.
For further clarification, my question is not primarily about modeling projectile motion. The main issue I have is the lag caused by remote events/switching network ownership, and I'm curious to know what other options there are for altering a brick's velocity upon some event fired by a player.

3 comments
You need to do more research as well as provide code before posting here. There is a great tutorial on projectile motion right on this website (uses physics though): https://scriptinghelpers.org/guides/modeling-a-projectiles-motion
Well, what code do you want me to show? I'm looking for new ideas, not fixing a script. I've already concluded that the methods I'm currently aware of are insufficient, which is why I'm here.
I mean you could be using the network ownership and/or physics wrong, who knows. You could predetermine the path the ball takes and send the information to each client to replicate it. There will always be a delay, you can either stick with it or make it smooth for one person.