Try also moving the player’s HumanoidRootPart aswell.
Another solution to this would be to add invisible walls around the platform, union it, then move that union.
This needs to be placed inside of the starter character and starter player scripts.
it also needs to be a local script for it to work. Why? Because you are controlling each individual players position from their client, not the server. The server has way too much latency in order for that to work.