RunService delta times are occasionally 0 at 240 fps

When Roblox’s max framerate option is set to 240 fps, several RunService events will sporadically report their delta time as 0.

This behavior is unintuitive, as one would reasonably expect some time to have passed since the last frame, and very easily causes issues such as divide by zeroes by code that expects delta time to always be non-zero.

This only appears to occur at 240 fps, and also seems to affect the client significantly more than it does Roblox Studio.

I have confirmed that this issue is reproducible on hardware other than my own, but I figure the hardware must be capable of reaching 240 fps in Roblox to experience this issue.

Reproduction RBXL:
DeltaTime Reproduction.rbxl (53.3 KB)

Reproduction place, empty baseplate that prints to the Developer Console (F9):

Developer Console output:

Expected behavior

I expect all RunService events to report a non-zero delta time, as is logically expected, and as they normally would with the framerate set to something other than 240 fps.

6 Likes

I have recently encountered this behavior which forced me to cap the delta time to a very small number because I had division calculations with delta time. This seems to occur whenever the roblox physics FPS counter reaches any decimal above 60 for a frame (?). As I was encountering this behavior with Heartbeat function as well. I noticed it happening while the physics FPS was flickering to 60.1

there goes my flight script for high refresh rate players, ah yes is it fun to have your plane’s physics turned off for couple moments while landing? yes very fun.

Ok actually I want this fixed and I didn’t notice it myself, using a 60 hz monitor

Thanks for the report! I filed a ticket in our internal database and we’ll follow up when we have an update for you.