Currently if you have any significant degree of packet loss on one direction of traffic roblox will start withholding unreliable events on the other direction of traffic making it less than ideal for the general use case of UDP-like communication.
This only happens in live games and doesn’t happen in local multiplayer studio tests. Suggesting there might be some sort of firewall or congestion control causing this behavior.
Prerequisites:
- The attached place file
- Clumsy
Reproduction steps:
- Open and upload the attached place
- Open clumsy and join the place with the roblox client
- Press ctrl + shift + f3 to get the IP of the server
- Input the following filtering conditions with the server IP replaced into clumsy
ip.DstAddr = Server_IP_Here and outbound
- Set up the lag to 200ms and packet loss to 80% chance on outbound (uncheck inbound) to simulate extremely poor network conditions
- Open F9 and observe the server->client connection withholds unreliable packets after a while despite no packet loss on the inbound connection
Expected conditions:
- Open the attached place
- Open clumsy and start a local multiplayer session
- Go into
%localappdata%/roblox/logs
and find the log file of the server to find the ports of the client and server - Setup the clumsy conditions with the following:
udp.DstPort == Server_Port_Here and udp.SrcPort == Client_Port_Here and outbound
Ensure to replace the ports with the applicable ports found in the logs - Set up the lag to 200ms and packet loss to 80% chance on outbound (uncheck inbound) to simulate extremely poor network conditions
- Observe everything works as expected with unreliable networking as events continue to flow
Video demonstration of the issue:
Video demonstration of expected behavior:
Demo File:
Unreliable Demo.rbxl (53.9 KB)
Expected behavior
If packet loss is only happening on one direction of networking unreliable packets should still be receivable on the other direction instead of being lost.