C>S 0x26 SID_READUSERDATA

Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Battle.net v1 TCP Messages (SID)
Message Id:0x26
Message Name:SID_READUSERDATA
Direction:Client to Server
Options: In Research
Used By:Starcraft Original, Starcraft Broodwar
Starcraft Shareware, Starcraft Japanese
Diablo Retail, Diablo Shareware
Diablo II, Diablo II Lord of Destruction
Warcraft II BNE, Warcraft III Reign of Chaos
Warcraft III The Frozen Throne
Message Format:
(does not include protocol header)
(UINT32) Number of Accounts
(UINT32) Number of Keys
(UINT32) Request ID
(STRING)[] Requested Accounts
(STRING)[] Requested Keys

Remarks

Requests an extended profile.

This message may only be sent after a successful version check from either S>C 0x51 SID_AUTH_CHECK or S>C 0x07 SID_REPORTVERSION. Official clients send this at the logon screen to query game statistics such as wins and losses for the account before logging on. (See screenshot of packet dump.)

Please note that if you provide more than one account, Battle.net will return your request as if you sent it with 0 accounts and 0 keys, indicating that no data is present other than the 3 UINT32. This means you cannot use this message for multiple users all at once; you must submit this message once for each user you wish to know about. This only applies to official Battle.net servers, it might not apply to PvPGN servers or equivalent software.

In addition, requesting 32 or more keys at one time makes Battle.net kick you (it does not ban you however).

If you send this message on a voided account or game key, Battle.net will disconnect and IP ban you for 5 minutes.

Profile Keys

Note: This list may not represent all of the available keys that can be queried. If you find more, please consider adding them here.

User Profiles

Note: Any key in the table below can contain an 0x09 (tab) character in its value.

Key Notes
profile\sex This field is defunct in STAR/SEXP/WAR3/W3XP.
profile\age This field is defunct.
profile\location
profile\description The maximum length for this field is 512 bytes, including the NULL terminator.
profile\homepage This field is defunct. Seen in StarCraft Beta.
profile\Star\clan This field is defunct. Seen in StarCraft Beta.
profile\Star\gametype This field is defunct. Seen in StarCraft Beta.

Account Info

Note: Battle.net returns blank values for anyone but yourself.

Key Notes
System\Account Created FILETIME value ('{high} {low}'), ex: '30842135 3648884085' == 2020-10-08 02:08:01
System\AuthLevel
System\Flags
System\Friends
System\Icon
System\IP
System\Last Logoff FILETIME value, see: 'System\Account Created'
System\Last Logon FILETIME value, see: 'System\Account Created'
System\League
System\MFT Bytes
System\MFT Last Write
System\MFT Time Logged
System\Port
System\Time Logged total number of seconds account was online
System\Username

Game General

Most game values are numeric.

Key Notes
record\SEXP\league

Normal Games

Key Notes
record\GAME\0\wins
record\GAME\0\losses
record\GAME\0\disconnects
record\GAME\0\last game FILETIME value, see: 'System\Account Created'
record\GAME\0\last game result ex: "WIN", "LOSS", "DRAW"

Ladder Games

Key Notes
record\GAME\1\wins
record\GAME\1\losses
record\GAME\1\disconnects
record\GAME\1\rating
record\GAME\1\high rating highest all-time rating
DynKey\GAME\1\rank
record\GAME\1\high rank highest all-time rank
record\GAME\1\last game FILETIME value, see: 'System\Account Created'
record\GAME\1\last game result ex: "WIN", "LOSS", "DRAW"
record\GAME\1\season
record\GAME\1\day
record\GAME\1\day games

IronMan Ladder Games

Note: These are for W2BN exclusively.

Key Notes
record\GAME\3\wins
record\GAME\3\losses
record\GAME\3\disconnects
record\GAME\3\last game FILETIME value, see: 'System\Account Created'
record\GAME\3\last game result ex: "WIN", "LOSS", "DRAW"
record\GAME\3\rating
record\GAME\3\high rating highest all-time rating
DynKey\GAME\3\rank
| Edited: Leaky

Comments

idiat

The System keys under "Account Info" can only be accessed if you are requesting your own information. Otherwise, Battle.net will send back a blank key value.

Sixen

More under "Account Info":
SystemUsername
SystemAuthLevel
SystemLeague
SystemIcon
SystemMFT Bytes
SystemMFT Last Write
SystemMFT Time Logged
SystemIP
SystemPort
SystemFriends
*SystemFlags

Caaaaarrrrlll

@idiat: Added the note.
@Sixen: Added the keys.

Caaaaarrrrlll

Just to further comment on this packet, I just used Starcraft Broodwar and saw that only 5 of the System keys actually return data when I use my name.

System\Account Created
System\Last Logoff
System\Last Logon
System\Time Logged
System\Username

If anyone knows of any other System keys that return something, please comment.

Ribose

Requesting 0x20 (32) or more keys at one time makes Battle.net kick you. No ban, just kick.

Caaaaarrrrlll

Added the note.

Caaaaarrrrlll

Updated document formatting to Markdown syntax.

Caaaaarrrrlll

Updated profile\description to include its maximum length.