Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Diablo II Realm Messages (MCP)
Message Id:0x05
Direction:Server to Client
Used By:Diablo II, Diablo II Lord of Destruction
Message Format:
(does not include protocol header)
  (UINT16) Request ID
 (UINT32) Index
  (UINT8) Number of players in game
 (UINT32) Status
(STRING) Game name
(STRING) Game description


Instead of receiving a single response that has a list of all the games, the client will receive this packet once for every game listed by the server. The list ends when the game name is an empty string.

Request ID is like a cookie. This value will be whatever you sent the server in MCP_GAMELIST.

Index is the game's index on the server.

Status is usually a set of flags about the game. If it is 0xFFFFFFFF, the server may be down.

Flag values (OR them together), if valid:

  • Difficulty:
    • 0x0000: Normal
    • 0x1000: Nightmare
    • 0x2000: Hell
  • Type:
    • 0x200000: Ladder
    • 0x100000: Expansion
    • 0x800: Hardcore
| Edited: Anonymous



(Dword) status is one of a few special values indicating various failure replies or a set of flags indicating the game type and difficulty. Documentation on the reply codes can be found here since MCP_GAMEINFO uses the same codes: < https://bnetdocs.org/packet/162/mcp-gameinfo >


A MCP_GAMELIST packet with a 0x00 Game name indicates the end of the list.