-
Notifications
You must be signed in to change notification settings - Fork 10
Server Packets
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.
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.|
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 |