The moment you enter a zone, the server sends spawn data for tens to hundreds of nearby entities all at once. If it goes over an unreliable channel, or the receive buffer overflows while the client is loading and can’t read the socket, part of it disappears and never comes back.
Why Spawn data arrives in a short burst right after entering → Effect A loading client reads the socket late and the OS receive buffer overflows, or a large UDP packet is fragmented and losing a single fragment loses the whole packet. On an unreliable channel, nothing is resent either → On screen A few NPCs are missing only on the slower-loading client. They show up after leaving view and coming back
Right after login or maintenance, While moving or changing zones
Owner
Primary owner Game team (Server development) · Also Game team (Client development)
Game team action items
Server: always send spawn and despawn messages over a reliable channel with guaranteed retransmission, send initial data in chunks. Client: receive on a thread separate from loading, increase the receive buffer size.
Ballpark numbers
The default UDP receive buffer on a PC varies by OS but is usually tens to hundreds of KB. If the entry data for a crowded town is bigger than that, even a brief pause in reading the socket during loading overflows it.
On the graph
Surge after opening · Data received right after entering, missed spawn messages
Where to look
Spawn messages the server sent right after entry compared with the number the client received, and which channel (reliable or unreliable) they went over. In a server-side packet capture, the volume sent to that player right after entry and fragmented packets (Wireshark filter ip.flags.mf == 1 || ip.frag_offset > 0)
Confirmed if
The client received fewer than were sent, the missing ones cluster in the burst right after entry, and they went over an unreliable channel or large packets were fragmented. Happens more often on the slower-loading client
Ruled out if
Sent and received counts match but entities are still invisible: dropped after receipt (spawn messages dropped during loading) or an AOI calculation problem. Missing at random times unrelated to entry: packet loss on the connection