I redone this game multiple times. When I first published it 3 years ago, there were no lags despite many while loops. It was the game that give me the most premium payouts.
I started noticing problems a few months ago with lag and while loops going crazy not waiting enough time until the next action takes place resulting in parts spawning in each other. So I archived it. I came back to work on with changing the scripts to using functions so the while loop can yield. I also changed parts that move in the same direction at the same time into a single meshpart. For some complicated movements, I use animationcontroller with custom animations to play it. So I actually remade all stages all over again starting with a new empty baseplate. I tried running the animations and rotation cframes on the client, but it lags and the player can just walk over it to the next checkpoint with no difficulty. I tried turning on streamingenabled, but it’s not helping, it can also freeze the movements even when I use player:requeststreamaroundasync. I tried putting all parts that doesn’t require movement nor a script and put them in a model in replicated storage, then the client can clone it into workspace when they join, but it didn’t make a difference. For some stages, I enlarge the moving parts to reduce the number of moving platforms.
Currently, all movements are done on the server, no streamingenabled, physicssteppingmethod is adaptive. It kind of helped a little bit with the physicssteppingmethod on adaptive.
Here’s my device:
Let me know if the lag is bad on your end and if you have any ideas on what I can try to help reduce lag more. Thanks.