Download the Liquipedia app here!Download the Liquipedia app to follow Brood War!Want personalized updates on Brood War esports? Download the Liquipedia app on iOS or Android to never miss your favorite tournaments and matches!
Liquipedia app match pages updated! Liquipedia app match pages are overhauled! Download on Android or iOS! Liquipedia app's match pages got completely revamped with game data, standings, VODs and more! Download the the latest version on iOS or Android and read our update blog here.

Storm Packets

From Liquipedia StarCraft Brood War Wiki

Storm packets are used for communication with other players in Blizzard games such as StarCraft. Packets of class 1 are used for events that do not need to be synchronized between other players such as chatting, therefore these types of packets are asynchronous. Packets of class 2 are used for game events such as moving a unit or pausing the game. These packets need to be sent once every game turn and are therefore synchronous.

Format[edit]

Datatype Name
unsigned short Checksum
unsigned short Length
unsigned short Seq1
unsigned short Seq2
unsigned char CLS
unsigned char Command
unsigned char PlayerID
unsigned char Resend
void Payload


Checksum[edit]

  • Calculated from all of the data in this packet starting at Length. See here for the function, and more details on this protocol.

Length[edit]

  • Includes everything you see here (EX: 12 + length of Payload).

Seq1[edit]

  • Number of packets sent.

Seq2[edit]

  • Number of packets received.

CLS[edit]

  • Can be 0, 1, or 2.
    • 0x00: Internal packets. Handled by network provider and sent to the game as high level events. Command is used by network provider.
    • 0x01: Asynchronous packets. Payload sent to StarCraft, Diablo, or WarCraft II game. Can be sent any time. Command is 0.
    • 0x02: Synchronous packets. Payload sent to StarCraft, Diablo, or WarCraft II game. Can be buffered but must be sent once per game turn. Command is 0.

Command[edit]

  • The packet ID of CLS 0 packets. 0 for other packets.

PlayerID[edit]

  • The player ID. If unknown (first few packets from client) set to 0xFF. Otherwise 0xFF means "everyone".

Resend[edit]

  • 0x00: Normal
    • Handle this normally.
  • 0x01: Verify
    • Used to verify Seq1 and Seq2.
  • 0x02: Resend
    • Resend request.
  • 0x03: Callback
    • Resend response.


References[edit]

BNETDocs: Redux PKT_STORM