StarCraft and Brood War: logon to chat
![]()
How StarCraft and Brood War up to version 1.16.1 connect, pass the version check, log on and join a channel.
| # | Client | Server | What happens | Confidence | |
|---|---|---|---|---|---|
| 1 | 0x01 |
→ | Protocol byte: BNCS follows. | ✅ Verified | |
| 2 | SID_AUTH_INFO |
→ | Names the game (STAR or SEXP), platform and version byte. |
✅ Verified | |
| 3 | ← | SID_PING |
Latency check. | ✅ Verified | |
| 4 | SID_PING |
→ | Echo of the server's value. | ⚠️ Single source | |
| 5 | ← | SID_AUTH_INFO |
Logon type 0x00 (X-SHA-1), server token, and the version check to run. |
✅ Verified | |
| 6 | ← | PKT_SERVERPING UDP |
UDP test to the client's port 6112. | ✅ Verified | |
| 7 | SID_AUTH_CHECK |
→ | EXE hash and one CD key. | ✅ Verified | |
| 8 | ← | SID_AUTH_CHECK |
0x000 when the version and key pass. |
✅ Verified | |
| Optional, in roughly this order: icons, terms of service and profile | |||||
| 9 | SID_GETICONDATA |
→ | ⚠️ Single source | ||
| 10 | SID_GETFILETIME |
→ | For icons_STAR.bni. |
⚠️ Single source | |
| 11 | SID_UDPPINGRESPONSE |
→ | Confirms the UDP test. | ⚠️ Single source | |
| 12 | ← | SID_GETICONDATA |
⚠️ Single source | ||
| 13 | SID_GETFILETIME |
→ | For tos_USA.txt, then bnserver.ini. |
⚠️ Single source | |
| 14 | SID_READUSERDATA |
→ | ⚠️ Single source | ||
| 15 | ← | SID_GETFILETIME |
One reply for each request. | ⚠️ Single source | |
| 16 | ← | SID_READUSERDATA |
⚠️ Single source | ||
| Only when the player creates a new account | |||||
| 17 | SID_CREATEACCOUNT2 |
→ | Password hashed once. | ✅ Verified | |
| 18 | ← | SID_CREATEACCOUNT2 |
0x00 created, or 0x04 if the name is taken. |
✅ Verified | |
| Logging on | |||||
| 19 | SID_LOGONRESPONSE2 |
→ | Salted password proof. | ✅ Verified | |
| 20 | ← | SID_LOGONRESPONSE2 |
0x00 logged on. |
✅ Verified | |
| Entering chat | |||||
| 21 | SID_ENTERCHAT |
→ | ✅ Verified | ||
| 22 | SID_GETCHANNELLIST |
→ | ⚠️ Single source | ||
| 23 | SID_JOINCHANNEL |
→ | Flags 0x01 (first join). |
✅ Verified | |
| 24 | ← | SID_ENTERCHAT |
The client's unique name and statstring. | ✅ Verified | |
| 25 | ← | SID_GETCHANNELLIST |
✅ Verified | ||
| 26 | ← | SID_CHATEVENT |
EID_CHANNEL, then EID_SHOWUSER for each user in the channel. |
✅ Verified | |
Remarks
Versions covered. This sequence is for StarCraft and Brood War up to 1.16.1. Version 1.18 and later connect differently.
When SID_PING is sent. Official Battle.net sends SID_PING once SID_AUTH_INFO arrives. Command Center sends it as soon as the connection opens, and real clients accept that too.
Brood War 1.16.1 may send SID_STOPADV before logon finishes. That's normal and shouldn't be treated as an error.
Sources and credits
- Command Center: bnetccd session handling and test client: tested with a real StarCraft 1.16.1 client
- BNETDocs, Battle.net Chat Server Protocol Overview: written by Kyro, and edited 11 times since.
This page is written in our own words. BNETDocs is credited for its research; none of its text is copied. See Credits.