Message Id:0x50
Message Name:SID_AUTH_INFO
Direction:Client to Server
Used By:Starcraft Original, Starcraft Broodwar
Diablo II, Diablo II Lord of Destruction
Warcraft III Reign of Chaos, Warcraft III The Frozen Throne

(UINT32) Protocol ID
(UINT32) Platform code
(UINT32) Product code
(UINT32) Version byte
(UINT32) Language code
(UINT32) Local IP
(UINT32) Time zone bias
(UINT32) MPQ locale ID
(UINT32) User language ID
(STRING) Country abbreviation
(STRING) Country


Sends information about the client's product and locale to

Field descriptions:

  • Protocol ID:'s current Protocol ID is 0x00. This field has only been seen with a value of 0x00.
  • Platform code: Identifies the client's platform value.
  • Product code: Identifies the client's product value.
  • Version byte: Identifies the client's version number.
  • Language code: Identifies the client's language value. If set to 0x00 the server will likely use its default, or English (enUS). This value is used to determine the client's home channel (eg: Diablo II En-1).
  • Local IP: This is the local network IP of the client, in network byte (big-endian) order, for NAT compatibility. Can safely be set to, or 0x00.
  • Timezone bias: The difference between UTC and local time, in minutes.
    • Retrieve using TIME_ZONE_INFORMATION structure returned from GetTimeZoneInformation()
    • Depending on whether the return value is TIME_ZONE_ID_STANDARD or TIME_ZONE_ID_DAYLINE, add TZI.Bias + TZI.StandardBias or TZI.Bias + TZI.DaylightBias to get the bias in minutes, where TZI is the returned TIME_ZONE_INFORMATION structure.
    • Alternatively, you may use GetSystemTime(), GetLocalTime(), and SystemTimeToFileTime(): convert both system and local time to FILETIMEs, subtract local time from system time, and divide by 600,000,000 to get the bias in minutes.
  • MPQ locale ID: This field is part of Blizzard's multi-lingual MPQ system and is used to specify which version of an MPQ should be used when the MPQ is available in multiple languages. Can safely be set to 0x00, but you may also use something like GetUserDefaultLCID().
  • User language ID: Can be retrieved with GetUserDefaultLangID(). Can safely be set to 0x00.
  • Abbreviated country name and country name: Can be retrived with GetLocaleInfo() with LCType set to LOCALE_SABBREVCTRYNAME (three-letter code) and LOCALE_SENGLISHCOUNTRYNAME (English country name) respectively.
    • If you're unable to retrieve these values you can use USA and United States.
| Edited:

no one has commented yet.