Multiplayer ping-pong collisions

I’m kind of looking for ideas on how I should handle collisions in a ping-pong like game I’m working on. First of all the ball has no gravity and should just switch directions when it hits a wall or something without losing any speed (it’s like anti gravity ping pong in a tunnel) so if it hits the top wall it would just reverse it’s y speed basically and vice versa. My initial idea is to just use a body force and flip it’s forces from positive to negative when it hits walls and what not, but I cant even get that going as using a touched function on this ball just does nothing. Because the touched won’t work I don’t know how I should check for collisions. I also don’t know how to do things locally and server sided. I guess I would just have the player instantly update on their own client when they hit the ball and then tell the server to update it’s body force so the other player gets it sent back to them. Another issue I have is checking if the player hit it or if it got past their paddle. I guess I would just have to do it completely client sided and tell the server what happened, but that’s giving the clients a lot of trust. I’m just not sure what to do at this point since touched won’t call on the ball ever so I don’t know how I can check for it’s collisions in the first place.

you can try using raycasting
it can detect wher the ball would collide

How would I calculate where it’s going to be based on the body force? Also where would this even go? I assume in a render step but then wouldn’t I also need to take into account the players framerate (aka the time passed) to get where the ball is about to be?

You wouldn’t use BodyMovers, you would use a RunService based renderer and a basic calculation for position. You can find tons of tutorials on this forum about projectile motion.