Skip to content
Boreeas edited this page Oct 10, 2014 · 4 revisions

Packet Research

Overview

ID Purpose Param Packet Structure Size Notes
0x03 ?Spawn minion Notes on structure
0x11 End Spawn 0x1
0x15 Set Ability level
0x17 Create Effect EntID Structure variable Has two structures, see notes
0x21 ?Death recap data
0x22 Gold Reward
0x2A Summoner data EntID 0x212
0x46 Player stats EntID 0x128/0x120
0x4C Player header 0    0xC3
0x54 Synch Version 0
0x5B ?Backport
0x5E Start deathtimer EntID Structure 0x12
0x61 Move command see below 0x152
0x62 Start Spawn 0 unk1: uint16? 0x2
0x63 Spawn jungle 0x152
0x65 Damage Done
0x68 Chat message variable
0x6B ?Cast summoner
0x6F Purchase item EntID  Structure 0x8
0x85 EntID Structure 0x0a Structure tentative, see notes
0x92 Game ID 0 Structure 0x88
0x9D Tower header EntID 0x4A
0xC1 Update gametimer  0 timer: float 0x4
0xC4 Char Stats 0 variable
0xE4 Gold gain

Type legend:

Structure:

  • name: type
  • name(?): type - Field may have different meaning
  • (name: type)? - Structure uncertain, field may not actually be contained in packet
Symbol Name Size in bytes
b byte 1
i/u8 (u)int8 1
i/u16 (u)int16 2
i/u32 (u)int32 4
f/float float 4
eid Entity ID 4
cstr String (null-terminated) variable
str String (length-prefixed) variable

Extended structure

0x17 - Create Effect

Offset Name Type Notes
0 effectId(?) u16
2 name cstr Sometimes, format differs, see notes

0x5E - Start Deathtimer

Offset Name Type Notes
0 unk1 i32 Usually 0
4 unk2 i32 Usually 7
8 duration float
12 unk3 u16 Usually 0x4c00

0x61 - Move command

  • Shows unit location when they start a new movement, and the location they are headed

  • Mostly useful for extracting position data but isn't updated constantly, i.e. when someone clicks to move across the map and waits the entire time to arrive (though you could calculate this given the movement speed)

  • blocktype: 0x61

// x and y coords are relative to the center of the map (i.e. the middle of the map is x=0, y=0)
ff ff ff ff // time as a float from game begin
01 // number of units associated with this packet (numUnits)
00 // magic zero?, or maybe will populate if the number of units > 0xff somehow
// repeated struct : numUnits
  02 // number of coordinates for unit (numCoords)
     // if 3 coords, 2 coords expected?
     // if odd number of coords (besides 3), first bitmask byte will be 0xff and will not start with lsb, but numCoords%8 lsb (so if 5 coordinates, will start with the 5th lsb), corner case, may be incorrect
  19 00 00 40 // entity id
  // repeated struct : (floor((numCoords - 2)/8))
    ff // bit mask for absolute or relative position
  ff ff // starting x coords, signed 2byte
  ff ff // starting y coords. signed 2byte
  // repeated struct : numCoords/2 (really repeats : numCoords times, but each coord alternates between x and y, so struct is twice as big, and there may be a spare coord at the end in odd cases)
    ff, ff ff // x coord, dependant on bitmap
    ff, ff ff // y coord, dependant on bitmap
              // if bitmask bit is 1, relative position (signed 1 byte)
              // if bitmask bit is 0, absolution position (signed 2 bytes)
              // bitmask starts with (first byte after entity id, lsb -> msb) -> (following bytes, lsb -> msb)
  // if numCoords is odd (besides 3), will have extra coord that doesn't belong to x or y, see not from previous struct
  ff, ff ff // unknown coord, dependant on bitmap

0x6f - Purchase Item

Offset Name Type Notes
0 entityId eid Tentative
4 itemId u32
8 slotId u8
9 countOnSlot u16
11 unk1 u8

0x85 - Unknown

Offset Name Type Notes
0 counter u8
1 unk1 float(?) Usually 0, sometimes values between 0 and ~200
5 unk2 float Always -1

0x92 - Game Id

Offset Name Type Notes
0 gameId u64
8 unk1 b[80]

Notes

0x03 - Minion Spawn

  • Sample captures (one line per capture):
de 00 00 40 40 36 b8 53   ff 00 00 00 00 0a 00 01
df 00 00 40 40 4c 36 eb   ff 00 00 00 00 0a 00 01
e0 00 00 40 40 71 71 b7   ff 00 00 00 00 0a 00 01
e1 00 00 40 40 e8 00 ba   ff 00 00 00 00 0a 00 01
e2 00 00 40 40 af c9 5e   ff 00 00 00 00 0a 00 01
  • Looks like [marker byte] [float] [float?] [float] [short] [byte]

0x17 - Create Effect

  • Sometimes, not a plaintext names is transmitted, instead it looks like some floats
  • Sample captures (one line per capture):
00 06 01 20 00 00 40 
01 06 01 20 00 00 40
02 06 01 20 00 00 40
03 06 01 20 00 00 40
  • Looks like [effect id] [marker byte] [some float]?

0x85 - Unknown - Probably Cooldown

  • Usually in the form 01 00 00 00 00 00 00 00 80 bf with the first byte incrementing
  • Seems to be [slot] [unk1] [float maxCooldown, 0 if = currentCooldown] [float currentCooldown, = -1 if 0]
Clone this wiki locally