Loop does not run fast enough to catch up to physics

Basically, players stand on a ball and move around, similar to that one Epic Minigames game. They move at a fast rate and uses velocity to move around.

However, what I am noticing when testing with multiple players is that my loops do not run fast enough. The balls end up rolling ahead of players, and the players’ movements are very janky.

The scripts I have teleports the players on top of the ball every frame. I have tried Heartbeat:Connect() and task.wait() loops but to no avail. Any suggestions?

EDIT: I somehow solved it lol