Remote events sometime throttles in a much lower threshold in some servers and result in inconsistent remote event firing speed

Reproduction Steps

Remote events throttle threshold appears to be much lower in some server and result in slowing down weapon’s rate of fire (while using RunService events) in affected server - like 40% chance to encounter this issue in a new server for the game. The issue could be repro by re-joining below test place for multiple times and notice the weapon’s speed change.

Remote Event Issue - Roblox

Update

Appears to be related to issue about server locked at 15 steps per frame

Expected Behavior

Remote events maximum throttle threshold should be consistent to maintain everything running in the same speed in every servers.

Actual Behavior

Sometimes remote events throttle threshold appears to be much lower in a new server (like around 40% chance) and the affected remote event firing speed is very noticeable while using RunService events.

Issue Area: Engine
Issue Type: Other
Impact: High
Frequency: Often

3 Likes

I feel like the fact that you are reaching a throttle in the first place is alarming, you should look into other ways (like only sending the remote event to start / stop rapid fire on guns at a certain position, not every bullet) but that’s besides the point, I don’t think that a variable RemoteEvent throttle is a bad thing, it’s likely just the limitations of whatever Roblox is using for networking (although I’m unsure, so don’t quote me on that) in-which having a consistent throttle would require making the limit at the strictest-level on all servers, which would actually decrease your capabilities as a developer (you can do less). Also, you shouldn’t ever be relying on the throttle being consistent in the first-place, you should probably be coding your own throttle yourself if you wish for it to be consistent.

1 Like

This is just an artifact of Remotes being ran through an ordered reliability layer, meaning if one packet gets dropped one frame then the others have to wait till that one gets picked back up and sent again.

In theory this system would be fine if you were firing remotes every once or twice a second, but for data meant to be sent and received in rapid order (i.e. mouse position or input state) that’s really when the network starts getting clogged.

There’s not much that can be done here, unless Roblox were to support sending unreliable packets through their network. Remotes are such limited abstractions of networking sockets that we barely have any control over how our data is sent, just how much and when.

1 Like

Thanks for the reply! Actually I have tried with creating custom throttle as well and unfortunately the issue still persist even tho when there is a throttle without using “RunService” to spam FireServer. In that case, I’m thinking it could be related to specific low performance server that distributed to some games randomly.

Thank for the reply! Yess, that’s totally what I’m doing about sending mouse position to every weapon bullets. What strange is that, the issue isn’t happening in every servers but only in some “low performance” server with higher latency. Apparently there is no a fix from developer side :smiling_face_with_tear: the inconsistency in there servers made development a bit distressing for real :joy:

Yes, it is related to the mentioned thread on low server FPS. Reposting the explanation here. There was an experiment running to check servers performance on low FPS. That experiment was running longer than expected, but now it is over. We sincerely apologize for that inconvenience.

3 Likes