Interpolation Throttling Update

We’ve enabled an update for Interpolation Throttling, a feature which can improve client performance by reducing the number of network updates. Interpolation Throttling can be especially helpful for experiences that have large maps and lots of moving parts. Please read the initial announcement if you haven’t already!

Now, rather than reducing update frequencies of all remotely-owned mechanisms outside the player’s simulation radius, it will only throttle what is needed to keep interpolation functioning well, starting with the mechanisms farthest away. This should give the same performance benefits at a better visual fidelity.

If you haven’t enabled Interpolation Throttling in your experience yet (or previously opted-out), I encourage you to try it now by setting Workspace.InterpolationThrottling to Enabled!

NOTE: Starting next week, we will transition the Interpolation Throttling mode’s default setting to be enabled. So all experiences will have it turned on by default, but you will still be able to opt-out by setting it to disabled.

If you run into any issues, or for whatever reason cannot enable this in your experience, please tell us more below!

127 Likes

This topic was automatically opened after 9 minutes.

Will 30Hz always be the least it will go down to? I personally wouldn’t mind it being able to go even lower if overall performance is increased.

5 Likes

Yea, forgot to mention this.

If all remotely owned mechanisms are being interpolated at 30Hz and we are still over budget, the system will begin lowering them to 15Hz, again starting with the ones farthest from the player.

12 Likes

Does this include throttling of players outside of the local player’s simulation radius? If so that would be a big positive to larger player servers.

6 Likes

this is great to hear
i really hope roblox starts focusing on optimization, especially with future lighting

Will it switch back to 60hz if the game is not laggy or when the developer wants the physics to look smooth for other players?

Isn’t it possible to have the network updates be at 30hz and the clients projecting the physics data on the client side to make it look smooth at all times when your pc can handle it.

In my game the physics needs to update as fast as possible as big creations or fast spinning parts could totally screw other people over if it doesn’t update fast enough.



Is there something i can do or that could be done to make sure situations like these will be looking smooth with interpolation throttling set to true? (the videos were made with the default behaviour)

17 Likes

So does this mean we will have a bigger render distance (how far we can see away) with lower graphics?

Sounds great overall!

1 Like

Yes, this is exactly what’s happening. The client will interpolate network updates as fast as it can handle it.

While your videos do highlight some network and interpolation issues, they are not related to interpolation throttling and I don’t think interpolation would improve your case (nor would it worsen it).
Hopefully we can continue to improve complex interpolation cases like yours in the future.

Remember right now “Default” is “Disabled” right now. I do encourage you to opt-in to “Enabled” and see how it impacts your game.

3 Likes

If i enable it, will it be enabled in live servers or is it only in studio as of now?

Live servers.

/////////////////

2 Likes

Yes, it will throttle movement updates assuming the other humanoids are simulated on their respective clients. However, throttling their animations is a separate feature (Workspace.ClientAnimatorThrottling, more info coming soon)

1 Like

I’m having an issue with custom skybox disappearing when setting InterpolationThrottling to Enabled.

That has to do with rendering not with physics.

The Roblox physics and rendering are seperate (sort of).

There is a render FPS and a physics FPS.
The render FPS can really be anything but the physics FPS is always capped at 60.

However as i said “sort of”, the physics FPS still does affect and sometimes slow down the render FPS and vice versa because of the task scheduler.

But I still dont think it would change anything with rendering honestly.

Is there a way to set the position or subject where the update will work smoother instead of the player’s position? I have a golf game where the camera is scripted to follow the golf ball with some different angles depending on some conditions, and I wouldn’t like the ball to start throttling in the middle of the strike:

Player.ReplicationFocus might work for you. Lets you set the focus for streaming and interpolation without changing Player.Character.

Both streaming and interpolation should follow your ReplicationFocus override. Let us know if that works or doesn’t!

2 Likes

Is this now enabled? it’s 22 november

1 Like

Sorry no not yet.

Due to the upcoming Thanksgiving break, I’m going to hold off on this transition until next Monday. Remember you can still set InterpolationThrottling to Enabled to enable it on your game

1 Like

Is this now enabled? You promised monday. There’s some physics games I like to play but the lag of the physics just annoy’s me.

1 Like

We had some issues with the enabled transition today and will need to wait until next week to try again.

There’s plenty of reasons you may be experiencing lag in these games, and there’s no guarantee that interpolation throtting solve them (even if it does, the developer could just turn it back off). You should reach out to the developers of these games and have them try enabling Interpolation Throttling in their games.

1 Like