I built an elevator that uses CFrame to move up and down, but on laggy servers, the player may glitch through. Without using a seat, is there a way I can fix this?
You should use something like a constraint based system for smoother movement and replication, and probably use TranslateBy if you continue to use a CFrame loop. You might also want to have the client do all the CFrame work to stop replication issues, likely using FireAllClients with a remoteevent.