-
Notifications
You must be signed in to change notification settings - Fork 346
Why you can't (or shouldn't) go faster than 240 FPS
If you're one of those people who are looking to get the highest framerate that you can, you may find that you can't go any higher than 240 FPS. This is Roblox capping the FPS at 240 FPS specifically, and you may also notice that Roblox's built-in framerate cap configurer has 240 FPS as the highest option. They do have a reason for doing this, and it's not completely arbitrary.
To govern the handling of constantly updating real-time operations, Roblox internally makes use of a task scheduler to handle how these operations (or jobs) run. Most importantly, it's responsible for handling the rate at which they run. This includes physics simulation, input handling, and network send/receive (i.e. replication). You can read more about that here on the Creator Hub docs.
The rate at which all task scheduler jobs (except for physics simulation) run at is tied to your rendering framerate. Up until early 2024, the task scheduler was designed to target a maximum tick rate of 60 Hz, therefore allowing a stable maximum rendering framerate of 60 FPS. Physics simulation runs at a constant rate of 240 Hz, independent of framerate.
Now, Roblox has made it possible to run at rendering framerates higher than 60 FPS. However, they chose to target 240 Hz as the new maximum scheduler tick rate, the same rate that physics simulation runs at. So, 240 FPS is the new upper limit.
A problem is that Roblox needs to ensure the task scheduler and its jobs can handle a certain maximum tick rate. Think carefully, and you'll realize that it took a long, long time for Roblox to add the ability to go faster than 60 FPS, even though they knew years ago that there was big demand for it, and that it would be necessary to help Roblox match up to other game engines. Safely increasing it is not easy as just changing some number cap somewhere.
For example, back when Roblox was locked to 60 FPS and did not allow going any higher than that by default, some people unlocking their FPS with Bloxstrap or rbxfpsunlocker faced issues relating to increased ping (e.g. #1149). This happens because, as mentioned before, all task scheduler jobs (except for physics) are tied to the framerate. That includes network send/receive operations. It couldn't handle going faster than 60 Hz under some circumstances, and resulted in ping skyrocketing for some users. Granted, it was rare, but it did happen.
With Roblox now ensuring support for scheduler tick rates up to 240 Hz, that shouldn't be a problem anymore. However, similar issues can occur again if you try to push your framerate faster than 240 FPS. You can, but things aren't guaranteed to work correctly beyond it.
As to why they chose 240 as the new limit, it was probably because they didn't think there was much point for the framerate to exceed the physics step rate. Can't say for certain though.
See something here on this page that is incorrect or you otherwise think should be changed? Please open an issue!