Skip to content

Server Packets

Eric Liu edited this page Sep 11, 2016 · 3 revisions

Synopsis

Certain packets sent by the server contain information about the game. These are sent as rarely as possible (only when needed, possibly to reduce packet size or to prevent us from reading it). This page contains information about certain chunks of these packets.

Leaderboard

This packet appears to be sent by the server to the client when a "violent" change in the leaderboard occurs (e.g. someone on the leaderboard is killed).

Basic structure of leadership packet is as follows (useful for capturing the leaderboard names as well as their approximate scores).

Note: You must scan the packet for a value of x that satisfies the given conditions, and y is the location of the last \0 when you are done parsing the names.

Offset Size(s) Value Type Explanation or Function
+0 1 byte uint8 Either 0 or 2
x 1 byte uint8 Value at this offset must be 11
x+8 1 byte uint8 Value at this offset must be 17
x+9...y varies string[10] Ten null-terminated strings in a row
y+7... 4 bytes each float32[10] Ten scores in a row

A sample leaderboard packet that also contains some special characters (e.g. emoji, accents, etc.) is here for your reference:

00000000  00 c9 aa 35 00 11 01 00  00 00 0b cf a9 fd c4 11  |...5............|
00000010  46 49 47 00 78 78 78 00  5b 6d 67 5d 6d 6f 6f 00  |FIG.xxx.[mg]moo.|
00000020  00 5b 4d 47 5d 4d 61 73  74 65 72 4f 56 00 56 69  |.[MG]MasterOV.Vi|
00000030  73 68 6f 00 5b 4b 4f 52  5d ec 9d b4 ed 98 84 eb  |sho.[KOR].......|
00000040  8f 84 00 5b 4d 47 5d 4f  7a 7a 79 57 69 6e 73 41  |...[MG]OzzyWinsA|
00000050  6c 6c 00 51 57 45 52 54  59 00 62 6f 6e 6b 72 69  |ll.QWERTY.bonkri|
00000060  70 70 65 72 37 37 38 00  03 5c e8 72 c5 0f 9c e6  |pper778..\.r....|
00000070  93 47 f0 2f da 46 08 4d  bd 46 dd c8 77 46 16 2d  |.G./.F.M.F..wF.-|
00000080  77 46 88 18 71 46 6c a8  58 46 46 bd 4b 46 97 51  |wF..qFl.XFF.KF.Q|
00000090  47 46 6a 4a 04 46 00 c7  02 c0 0c 00 00 01 fc 05  |GFjJ.F..........|
000000a0  01 c8 7e 01 db 79 00 c8  02 bc 15 00 00 01 b4 02  |..~..y..........|
000000b0  01 82 8b 01 01 e1 7e 00  bc 02 9d 1d 00 00 01 a1  |......~.........|
000000c0  08 01 f2 82 01 01 bd 72  00 bf 02 d3 24 00 00 01  |.......r....$...|
000000d0  c7 11 01 e0 8a 01 01 81  66 00 b4 02 eb 32 00 00  |........f....2..|
000000e0  01 b0 04 01 b2 a9 01 01  9d 6c 00 ba 02 bc 3a 00  |.........l....:.|
000000f0  00 01 d0 07 01 e8 8e 01  01 e7 74 00 cb 02 ad 3e  |..........t....>|
00000100  00 00 01 c2 04 01 c0 85  01 01 f3 85 01 00 b9 02  |................|
00000110  c1 42 00 00 39 d0 04 25  46 00 c1 02 cc 45 00 00  |.B..9..%F....E..|
00000120  01 a6 12 01 b4 a7 01 01  d1 87 01 00 c5 02 a5 59  |...............Y|
00000130  00 00 01 87 03 01 de a4  01 01 87 7b 0a 2f f1 8e  |...........{./..|
00000140  42 00 c0 02 f8 73 00 00  01 00 01 72 01 00 00 bd  |B....s.....r....|
00000150  02 96 66 00 00 01 8a 13  01 a4 97 01 01 af 86 01  |..f.............|
00000160  00 c2 02 9e 69 00 00 01  b8 01 01 bc 88 01 01 e1  |....i...........|
00000170  78 00 c9 02 e3 6c 00 00  01 8f 04 01 b0 8d 01 01  |x....l..........|
00000180  a3 81 01 00 c3 02 bb 76  00 00 01 c7 0a 01 90 a5  |.......v........|
00000190  01 01 c7 88 01 00 c3 02  df 7f 00 00 01 d5 01 01  |................|
000001a0  c4 88 01 01 99 7a 00                              |.....z.|

Death

A special packet chunk can be found when the player dies, containing the name of the player (or shape) that killed them.

Offset Size(s) Value Type Explanation or Function
+0 1 byte uint8 Either 0 or 2
x 1 byte uint8 Value at this offset must be 6
x+1 varies string Name of entity that killed player
Clone this wiki locally