Skip to content

The Server List

Giga edited this page May 14, 2022 · 2 revisions

When the client sends 1600D5000200280202000000E90000002B0000002D000000, the login server will respond with a list of all available game servers. This is transmitted as a Block Array with the enumerator 00E9. The structure of this block array is as follows:

Enumerator: 00E9

  • Followed by 2 bytes. (Possibly the length of the array?)
  • Then repeating blocks:
    • 2 Bytes -> Always either 0020 or 0026
    • 0385 -> 4 Bytes
    • 06EE -> 4 Bytes
    • 02C7 -> 4 Bytes (Server ID)
    • 0008 -> 8 Bytes
    • 02FF -> 4 Bytes
    • 02ED -> 4 Bytes
    • 02D8 -> 4 Bytes
    • 02EC -> 4 Bytes
    • 02D7 -> 4 Bytes
    • 02AF -> Sized
    • 0013 -> Sized
    • 00AA -> Sized
    • 01A6 -> Sized
    • 06F1 -> 4 Bytes
    • 0703 -> 1 Byte
    • 0343 -> 4 Bytes (Number of Players)
    • 0344 -> 4 Bytes
    • 0259 -> 4 Bytes
    • 03FD -> 4 Bytes
    • 02B3 -> 4 Bytes
    • 0448 -> 4 Bytes (Region ID)
    • 02D6 -> 4 Bytes
    • 06F5 -> 4 Bytes
    • 0299 -> 4 Bytes
    • 0298 -> 4 Bytes
    • 06BF -> 4 Bytes
    • 069C -> 1 Byte (Password Required)
    • 069B -> 1 Byte (Always 00 or 01)
    • 0300 -> Sized (Server Name)
    • 01A4 -> Sized (MOTD)
    • 02B2 -> 4 Bytes (Map ID)
    • Also included if the server has a game in progress:
      • 02B5 -> 4 Bytes
      • 0347 -> 4 Bytes
      • 02F4 -> 4 Bytes (Remaining Time in Seconds)
      • 0035 -> 4 Bytes (Blood Eagle Score)
      • 0197 -> 4 Bytes (Diamond Sword Score)
    • 0246 -> 8 Bytes (Server Address)
  • 069F -> 4 Bytes
  • 0347 -> 4 Bytes

Individual Servers

When an individual server is selected the client sends another command, 1800C6010200C702--------280202000000330000002D000000 to request some additional information about that server. A breakdown of this command follows:

Enumerator Description Type Length
-- 1800 Bytes 2
01C6 0200 EnumBlockArray 2
02C7 Server ID Bytes 4
0228 02000000 Bytes 4
-- 330000002D000000 Bytes 8

The server's response is transmitted as a Block Array with the enumerator ``. The structure of this block array is as follows:

Enumerator: 036E

  • 01C6 -> EnumBlockArray
    • 2 Bytes
    • 02C7 -> 4 Bytes (Server ID)
    • 0228 -> 4 Bytes
    • 00E9 -> ArrayOfEnumBlockArrays (Server List)
    • 4 Bytes
    • 0385 -> 4 Bytes
    • 06EE -> 4 Bytes
    • 02C7 -> 4 Bytes (Server ID (again))
    • 0008 -> 8 Bytes
    • 02FF -> 4 Bytes
    • 02ED -> 4 Bytes
    • 02D8 -> 4 Bytes
    • 02EC -> 4 Bytes
    • 02D7 -> 4 Bytes
    • 02AF -> Sized
    • 0013 -> Sized
    • 00AA -> Sized
    • 01A6 -> Sized
    • 06F1 -> 4 Bytes
    • 0703 -> 1 Byte
    • 0343 -> 4 Bytes (Number of Players)
    • 0344 -> 4 Bytes
    • 0259 -> 4 Bytes
    • 03FD -> 4 Bytes
    • 02B3 -> 4 Bytes
    • 0448 -> 4 Bytes (Region ID)
    • 02D6 -> 4 Bytes
    • 06F5 -> 4 Bytes
    • 0299 -> 4 Bytes
    • 0298 -> 4 Bytes
    • 06BF -> 4 Bytes
    • 069C -> Boolean (Password Required)
    • 069B -> 1 Byte
    • 0300 -> Sized (Map + Gamemode, Server or Region Name)
    • 01A4 -> Sized (MOTD)
    • 02B2 -> 4 Bytes (Map ID)
    • 02b5 -> 4 Bytes
    • 0347 -> 4 Bytes
    • 02F4 -> Integer (Remaining Time in Seconds)
    • 0035 -> EnumBlockArray
    • 4 Bytes
      • 0197 - EnumBlockArray
      • 4 Bytes
      • 0132 -> ArrayOfEnumBlockArrays
      • 2 Bytes
      • Then repeating blocks:
        • 2 Bytes
        • 0348 -> 4 Bytes (Player ID)
        • 034A -> Sized (Player Name)
        • 042A -> 4 Bytes
        • 0558 -> 4 Bytes
        • 0363 -> 4 Bytes
        • 0615 -> 4 Bytes
        • 0452 -> 4 Bytes (Team ID)
        • 0225 -> 4 Bytes
        • 0296 -> Integer (Player Rank)
        • 06EE -> 4 Bytes
        • 042E -> 4 Bytes
        • 042F -> 4 Bytes
        • 03F5 -> 4 Bytes
    • 0246 -> 8 Bytes (9002 Server IP Address)
    • 2E00000033000000
Clone this wiki locally