This means that any change scheduled for replication can be delayed up depending on what was sent before it. Unfortunately I haven’t found that documented elsewhere.
You can check at what stage your data was received by connecting an event and profiling it on with os.profilebegin("label")
, busy waiting and then closing it with os.profileend()
.
local function busy()
local t = tick()
while tick() - t < 0.5 do end
end
game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent").OnClientEvent:Connect(function()
debug.profilebegin("RemoteEvent")
busy()
debug.profileend()
end)
You then can see something like this:
It usually happens after rendering (and after .Changed connected with something on TweenService) and before wait or RunService.Stepped
, physics.
If you’d like to keep the remotes responsive, keep the queue low, preferably under 50 KB/s
By pressing Ctrl+Shift+F3 on studio you can see the network data debug ui