Best way to do custom collisions between parts

I am trying to make a game where players control balls and try to hit eachother out of an arena, but I want to add more knock back and other collision aspects that defalt collisions cannot give.

I was wondering if the best way would be too loop through all the other players on each client and see if they are close enough for a collision, then check validity on the server. On the other hand, I worry this would not be as performant as using the Touched event, but that has been janky in the past. Finally, I am also concerned that the default collision will mess with the custom velocity changes I plan to add, and if there is a way to make sure players cannot collide with eachother physically.

Same problem. I don’t know if my game is optimized or not, but, you should use RunService:Heartbeat() and every frame check if the player is near the ball, and apply force.