The current protocol version is 0x01. The maximum packet length is 511 bytes. (BYTE) protocol version (BYTE) packetid (SHORT) packetlen (...) DATA Current packets: (send to server) id 0x00: keepalive (NO DATA) --- there is no response to this packet. You should send this once every 2-3 minutes. (send to client) id 0x00: keepalive (NO DATA) --- the server sends this to the client when the connection has been idle. No response is needed. (send to server) id 0x01: log on to botnet (STRING) bot id (STRING) hub password (send to client) id 0x01: log on status (DWORD) status (0 FAIL 1 OK) (send to server) id 0x02: update bot stats (STRING) unique username on battle.net (STRING) current channel on battle.net (DWORD) battle.net server ip (STRING) database id (which database to use) * also now includes database password. Use the following format: "name password". (DWORD) cycle status (0 NOTCYCLING 1 CYCLING) (send to client) id 0x02: update bot stats status (DWORD) status (0 FAIL 1 OK) -- (send to server) id 0x03: database modification (DWORD) command command 1: request user database command 2: add a database entry/modify a database entry (STRING) usermask (STRING) flags command 3: remove a database entry (STRING) usermask (send to client) id 0x03: database change (DWORD) command command 2: new access list user/modify existing access list user (STRING) usermask (STRING) flags command 3: remove a database entry (STRING) usermask -- (send to server) id 0x04: command to bots on same database (STRING) sending user (STRING) command (send to client) id 0x04: command over botnet (STRING) sender (STRING) command (send to server) id 0x05: cycle request (DWORD) count (STRING LIST) usernames of bots to cycle (send to client) id 0x05: cycle request notification (STRING) channel to cycle (send to server) id 0x06: request information about bots on botnet (send to client) id 0x06: botnet bot information (DWORD) bot id (STRING) bot name (STRING) bot channel (DWORD) bot server (send to server) id 0x07: command over botnet to all botnet bots (send 0x04 to client) (STRING) sending user (STRING) command (send to client) id 0x07: bot disconnecting from botnet (DWORD) bot id (send to server) id 0x08: command to specific botnet bot (send 0x04 to client) (DWORD) target bot id (STRING) sending user (STRING) command (send to server) id 0x09: change database password * Requires 'full' access (DWORD) password to change (0: readonly, 1: full, 2: restricted) (STRING) new password (send to client) id 0x0a: botnet server version (DWORD) version --- current version '1'. This will change when new features are added. Thus, you will know what features a particular botnet server supports right away. This is sent before logon confirmation. Version information: Version 1 supports all packets 0x00 through 0x0b. (send to server) id 0x0b: botnet chat (DWORD) command --- 0x00: message to bots on the same database, 0x01: message to all bots, 0x02: message to bot specified by id. (DWORD) action --- 0x00: talk, 0x01: emote (DWORD) id --- for command 0x02, id of bot to send to, otherwise ignored. (STRING) message --- chat message to send. (send to client) id 0x0b: botnet chat (DWORD) command --- 0x00: message to bots on the same database, 0x01: message to all bots, 0x02: message to bot specified by id. (DWORD) action --- 0x00: talk, 0x01: emote (DWORD) id --- id of source bot (for all commands) (STRING) message --- chat message sent.