Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Diablo II Realm Messages (MCP)
Message Id:0x03
Direction:Client to Server
Used By:Diablo II, Diablo II Lord of Destruction
Message Format:
(does not include protocol header)
  (UINT16) Request ID *
 (UINT32) Difficulty
  (UINT8) Unknown (1)
  (UINT8) Level restriction difference **
  (UINT8) Maximum players
(STRING) Game name
(STRING) Game password
(STRING) Game description


This is sent to create a closed Battle.net game.


  • 0x0000: Normal
  • 0x1000: Nightmare
  • 0x2000: Hell

* Request ID value starts at 0x02 at first game creation, and increments by 0x02 each consecutive game creation.

** Level restriction difference value of 0xFF indicates that the game is not restricted by character difference.

Before sending the game name and password, Diablo II automatically changes their case. For example if the string "aBc DeF" is typed in Diablo II, then the string sent is "Abc Def". This does not apply to the game description.

| Edited: Anonymous



The comment about the request id being incremented by 0x02 is misstated. The request id is incremented by 0x01 for each MCP_CREATEGAME request and 0x01 for each MCP_JOINGAME request. For example, if the MCP_CREATEGAME request fails, the subsequent request id would be 0x03.