Server 2 | B.net Index
When Blizzard released StarCraft: Remastered and Warcraft III: Reforged , they migrated all legacy titles to a modern, centralized matchmaking infrastructure. The old UDP-based Index Servers were decommissioned around 2018–2020. Attempts to connect a patched Diablo II 1.13 client to useast.battle.net will fail—because the Index Server 2 no longer exists at those addresses.
| Offset | Type | Value | Description | |--------|-----------|-----------------------|--------------------------------| | 0 | BYTE | 0xFF | Protocol identifier | | 1 | BYTE | 0x50 | SID_GETGAMELIST (command 0x50) | | 2 | WORD (LE) | Packet length (often 8) | Header size + data | | 4 | DWORD (LE)| Session token (from auth) | Prevents unauthenticated queries | | 8 | WORD (LE) | Game flags (e.g., 0x01 = ladder) | Filtration mask | | 10 | BYTE | Number of players filter (0 = any) | Optional constraint | | 11 | BYTE | Reserved (0x00) | | B.net Index Server 2
Today, its bones form the foundation of every private server and nostalgia-driven revival. For network programmers, it’s a blueprint. For gamers, it’s a memory. And for history, it’s proof that sometimes the simplest servers leave the longest legacy. | Offset | Type | Value | Description
The is the secondary iteration of this discovery service. Its primary job was simple but vital: maintain a real-time list of active game lobbies (for titles like Diablo II , Warcraft III , and StarCraft ) and direct connecting clients to the correct IP addresses of the game hosts. And for history, it’s proof that sometimes the
However, the protocol lives on. Open-source projects like (Player vs. Player Gaming Network) have re-implemented the entire B.net Index Server 2 specification. Community-run private servers for Diablo II , Warcraft III (pre-Reforged), and StarCraft use PVPGN’s bncsutil and BNetDb to emulate the Index Server behavior completely. Technical Deep Dive: The Index Server 2 Protocol Header For developers and modders, the raw packet structure is worth documenting. A typical SID_GETGAMELIST request to B.net Index Server 2 is 12 bytes: