Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

About this book

A wire protocol specification for League of Legends game servers: what a server sends for a client to connect, load a match and play, and what the client does with it. The chapters are meant to be enough to build a conforming server. Each builds on the ones before it, so read them in order.

A chapter holds for every client build covered, except a passage set apart and headed with ranges, which holds for those alone. What a chapter says of a message holds wherever that message has a layout: a build with no layout for a message has no such message, and nothing said of it applies there. Field layouts are not restated in prose: they live in schema/, machine readable, and each system’s chapter ends with its messages and every layout each has. Where a field’s meaning is undetermined, its note says so.

The rules of the game are out of scope: how much a spell deals, what an item costs, how fast a champion levels. A server decides those; the specification says how it tells a client the results.

Check your work against conformance/ as you go; its vectors are this specification’s measure of a conforming server.

If the specification does not answer something you need, do not guess: report it as a defect, as CONTRIBUTING.md explains.

This book covers client builds from 1.0.0.130 up to, not including, 3.01.0.1, in 23 ranges. Every build in a range is held to the same facts.

PatchFromUp toPatch notesBuilds checked
1.0.0.1301.0.0.1301.0.0.131V1.0.0.1301
1.0.0.1311.0.0.1311.0.0.132V1.0.0.1311
1.0.0.1321.0.0.1321.0.0.133V1.0.0.1321
1.0.0.1331.0.0.1331.0.0.134V1.0.0.1331
1.0.0.1341.0.0.1341.0.0.135V1.0.0.1341
1.0.0.1351.0.0.1351.0.0.136V1.0.0.1351
1.0.0.136–1.0.0.1371.0.0.1361.0.0.138V1.0.0.1361
1.0.0.1381.0.0.1381.0.0.139V1.0.0.1381
1.0.0.1391.0.0.1391.0.0.140V1.0.0.1391
1.0.0.1401.0.0.1401.0.0.141V1.0.0.1401
1.0.0.1411.0.0.1411.0.0.142V1.0.0.1411
1.0.0.1421.0.0.1421.0.0.143V1.0.0.1421
1.0.0.1431.0.0.1431.0.0.144V1.0.0.1431
1.0.0.1441.0.0.1441.0.0.145V1.0.0.1441
1.0.0.1451.0.0.1451.0.0.146V1.0.0.1451
1.0.0.1461.0.0.1461.0.0.147V1.0.0.1461
1.0.0.1471.0.0.1471.0.0.148V1.0.0.1471
1.0.0.1481.0.0.1481.0.0.149V1.0.0.1481
1.0.0.1491.0.0.1491.0.0.150V1.0.0.1491
1.0.0.1501.0.0.1501.0.0.151V1.0.0.1501
1.0.0.1511.0.0.1511.0.0.152V1.0.0.1511
1.0.0.152–1.0.0.1531.0.0.1521.0.0.154V1.0.0.1521
1.0.0.154–3.1.0.01.0.0.1543.01.0.1V1.0.0.1541

What the chapters say of a message says nothing of a patch that has no layout for it. A message the chapters name with a link is one this book has; one named without a link is one no build of this book has. The index of messages finds any message, and the appendix on patches gives each patch’s checks, every message it carries, and how it differs from the one before it.

Transport

A server and a client exchange messages over UDP, carried by ENet 1.2.5 with the header each range’s definitions give.

Layering

Four layers carry a message to a socket.

  1. UDP moves datagrams.
  2. ENet turns datagrams into ordered, acknowledged deliveries on numbered channels.
  3. A cipher covers each channel payload.
  4. A message occupies the deciphered payload, opening with the header its family carries, as Messages defines.

This chapter covers layers 1 to 3.

Stock ENet

This document does not restate ENet. Connection setup, acknowledgement, sequence numbers, retransmission, throttling, and fragmentation behave as ENet 1.2.5 defines them.

Stock ENet 1.2.5 serves a client once its transmission unit is clamped (see below). The header and the commands are the release’s own.

The packet header

Each range has its own header, below with the constants it is read under. A server MUST use the layout of the version it serves, because a client establishes no connection under any other layout.

Packet headers and constants

In every range of this book

ENet 1.2.5 beneath; little-endian fields. Blowfish in ECB mode over 8-byte blocks, each read big-endian, under a 16-byte key given in base64. Neither end pads.

FieldTypePresent whenWhat it is
sessionIdbytes, 4The four bytes the client put in its connect command, carried unchanged on every packet. A client drops a packet carrying any other four.
peer2-byte bits
peer.peerIdbit 0 to 1432767 marks an unassigned peer, which is what a connecting client sends. A server gives the client peer 0.
peer.sentTimeFlagbit 15Set when the header carries a sent time.
sentTimeu16, big-endianpeer.sentTimeFlag setMilliseconds since the connection opened.
ConstantValueStock ENetWhat it is
maximumPeerId3276732767Follows from the peer id occupying fifteen bits.
maximumTransmissionUnit9964096A client asks for 1400 in its connect command, and takes no datagram larger than 996 bytes.
minimumDatagram88A client discards any datagram shorter than this many bytes.

A header built from the schema is necessary to reach a client, and not sufficient on its own. Where a field’s content is free rather than fixed, its note in the schema says so.

conformance/vectors/transport holds a header with a sent time and one without.

A client discards any datagram shorter than the minimumDatagram constant of its range. A server MUST NOT send a shorter datagram.

The connect command

A server’s verify connect MUST state the channel count, and the throttle interval, acceleration and deceleration, the connect command carried: a client abandons a connection whose verify connect states anything else.

A client asks for 7 channels.

Maximum transmission unit

A client asks for a transmission unit of 1400 bytes, and discards any datagram whose UDP payload, packet header included, exceeds the maximumTransmissionUnit constant of its range. A server MUST NOT send a larger datagram.

That constant is below what a client asks for. A server MUST accept a connection at a transmission unit no greater than the constant, by clamping the value the client asks for. Capping its own sending without clamping the negotiated value is not sufficient, because ENet derives fragment sizes from the negotiated value and still emits datagrams above the limit.

The cipher

Whether a payload is enciphered follows from the state of the connection rather than from the channel it travels on. A connection begins with no cipher state, and the request that establishes it travels in the clear apart from one field it carries enciphered as proof. Everything after that is enciphered, on every channel and in both directions, the answer to that request included.

schema/protocol.json records which cipher, in which mode, and the shape of a block. A server MUST use that cipher; a client accepts no other. A standard implementation of Blowfish interoperates with a client.

What a server sends carries no padding. Trailing bytes that do not fill a block travel unchanged, so a payload shorter than one block travels in the clear.

What a client sends carries no padding either.

conformance/vectors/cipher covers a whole block, a payload with a tail too short to fill one, and a payload shorter than a block.

The key

Both ends hold the key before a connection opens. Nothing on the wire negotiates it, and no exchange derives it. A client receives it as a launch argument.

An argument longer than sixteen characters holds the key in base64, and the key is the first sixteen bytes it decodes to. An argument of sixteen characters or fewer is the key as it stands.

Registration associates the key with a connection. Register travels in the clear apart from one field enciphered under the key, and a server MUST refuse a connection whose deciphered field is not what it expects, since that field is all that shows the client holds the key. schema/messages records the exchange, as Register and Registered.

Channels

In 1.0.0.130–1.0.0.151

ChannelNameFamily
0registrationregistration
1requestsgame
2clockgame
3eventsgame
4transientgame
5chatchat
6rostersession

In 1.0.0.152–3.1.0.0

ChannelNameFamily
0registrationregistration
1requestsgame
2clockgame
3eventsgame
4transientgame
5chatsession
6rostersession

Messages

A message occupies one deciphered channel payload. The payload opens with the header the message’s family carries, and the body begins where that header ends.

schema/messages holds one file per message identity, and each file records one or more revisions. A revision carries the value identifying the message, the channel it travels on, its direction, how the transport delivers it, and the fields of its body.

Families

Every channel carries one family of messages, and schema/channels.json says which. A family fixes two things: the numbering its command values are drawn from, and the header that precedes every body on it. schema/families.json records both. Two channels of one family share a numbering, so a value identifies at most one message across both, and the same value on channels of different families is two unrelated messages.

A family whose header carries no command field has one message each way on each channel it rides, read from the payload’s first byte; its revisions number that message 0.

The family, not the channel, selects the header.

A revision names the channel it travels on, and names any others in alsoOn. Those channels carry the same family, so the command value means the same message on each, and the body is byte for byte the one the revision records. What changes between them is delivery: each entry states how the transport carries the message there. A server MAY send such a message on any channel the revision names, and what it gets is the delivery stated for that channel. A client reads it the same way on every one of them, so a server MUST NOT vary the body with the channel it chooses.

The command

A revision records the value that identifies it, and the family’s header says where that value sits on the wire. That value is not a field of the message: it belongs to the header, along with anything else the family carries before a body begins.

A family can keep some values of the leading byte for framing rather than for messages, and schema/families.json lists which. Where a family names an escape, that value means the real identifier is wider than a byte and travels elsewhere in the header, which is how a family numbers more messages than a byte holds. A revision records the identifier either way, and never the escape.

Directions

A revision states whether it travels clientToServer, serverToClient, or bidirectional. Direction is part of what identifies a message, so one value serves two messages travelling opposite ways within a family. A bidirectional revision claims that value both ways.

A container of several messages

Where the game family keeps 255 for framing, that value introduces a container rather than a message: a run of several messages gathered into one payload, which a reading end unwraps and reads one by one as though each had arrived on its own. A container carries no header, so nothing in schema/messages describes one, and a reading end MUST NOT read the value that introduces it as a command.

A container is the byte 255, then a count of entries in one byte, then the entries one after another. The first entry is a length in one byte, the command in one byte, the object identifier in four bytes, and then a body whose size is the length less five. Every later entry opens with a byte of flags and size:

  • bit 0 clear: a command byte follows, and this entry carries it; bit 0 set: this entry carries the command the entry before it carried;
  • bit 1 clear: a four byte object identifier follows; bit 1 set: one signed byte follows, and this entry’s object identifier is the one before it plus that byte;
  • bits 2 to 7: the size of the body; where they read 63, the size is the next byte instead.

The body follows. Each entry, given the command and object identifier it carries as its header, is a message read as though it had arrived on its own. Where the family’s escape is 254, an entry whose command is 254 carries the wider identifier in the first two bytes of its body, so that, with the command and object identifier before it, it reads as the extended form of the header does.

Where the game family keeps 255, a server MAY send a container on the events channel. A client sends none.

A client unwraps a container on any channel.

Reading a body

A body begins where its family’s header ends. Fields occupy it in the order the revision lists them, each beginning where the one before it ended. A revision never restates a field its family’s header already carries, and never takes a name from it. Nothing is aligned and nothing is padded between fields. A field’s size is fixed by its type, given as a literal, carried by an earlier field, or one of the two words below.

Where a size or a count names an earlier field, it names one that has already been read and one holding an unsigned integer. It names either a whole field or one run of bits inside a field, and a run is written as the field name, a full stop, and the run name. remaining and terminated are reserved words rather than names, so no field carries either.

A field of a body names only fields of that body. A family’s header is read first, but it belongs to every message of the family rather than to this one, so nothing in a body is sized or governed by it.

What counts as an earlier field depends on what encloses the field doing the naming. An item of an array reaches the fields of the body around it. The fields of a struct reach only each other, because a struct is used wherever it occurs, so it cannot depend on what surrounds any one use.

remaining means every byte from where the field begins to the end of what encloses it: the message body, or the byte length of the struct or array the field sits inside. A field measured that way is the last one its enclosure defines, because nothing inside that enclosure can follow it.

An enclosure that states a byte length is itself an ordinary field, and fields follow it as usual. An enclosure that states none ends where the body ends, so it is the last field too, and so is any struct whose own last field is one of these.

A body ends where its last field ends, with one exception: a client accepts a Registered carrying bytes past its record, and takes no meaning from them. A sender MUST write the fields a revision lists and nothing after them.

Byte order

A revision of schema/protocol.json states the byte order that covers a version range, and every multi byte field in that range is read that way. A field that differs states its own order, which overrides the range.

The types

Integers. u8 through u64 and i8 through i64, in two’s complement. f32 and f64 are IEEE 754 binary floating point.

Bytes. A run of bytes with no interpretation. Its size is fixed, named by an earlier field, or remaining.

Strings. A run of bytes and an encoding, either utf8 or ascii. A size is a literal or the name of an earlier field. A string given one occupies that many bytes whatever its content, and the zero bytes at its end are padding rather than content, so they are dropped. A zero anywhere else belongs to the text and stays. A string sized terminated ends at the first zero byte, that byte belongs to the field, and it is the only one dropped. A string sized remaining carries every byte to the end of its enclosure, zeros included. A size counts bytes rather than characters.

Arrays. A run of one repeated shape. An array states either a count of items or a size in bytes, and never both. A count is a literal, the name of an earlier field, or remaining, which repeats to the end of the enclosure. A size in bytes repeats until those bytes are consumed, which is how a run whose length travels as a byte count is recorded.

Structs. A named group of fields, defined in schema/types and used wherever it occurs. A struct has revisions as a message does, and a message revision that holds one lies wholly within one of the struct’s revisions, which gives the layout it holds there. A struct occupies exactly the bytes its own fields occupy. Where its length travels on the wire instead, the field states a size in bytes, as a literal or as the name of an earlier field. A sending end MUST write a struct’s fields to fill that size exactly.

Bits. A field of one or more bytes divided into named runs, whose widths total exactly the bits those bytes hold. No run is wider than 32 bits. The bytes form one little endian word whatever the range’s byte order, or a big endian one where the field says so. Runs are listed from the least significant bit upward, and each reads as an unsigned integer of its own width.

Bit arrays. A run of the same group of bit runs, repeated a stated number of times. The groups follow one another from the low bits of the first byte upward, crossing byte boundaries without padding, and the field occupies as many whole bytes as the groups need. The bits above the last group are clear. A count is written as an array’s is.

Records. A group of fields named together and read one after another, with nothing between them and nothing around them. A record occupies exactly what its fields occupy. Unlike a struct it is written where it is used rather than defined in schema/types, and its fields reach the fields around it, so a record is a way of naming part of a message rather than a shape reused elsewhere.

What a field names

A size, a count, or a rule about whether a field is present names an earlier field. Five forms are written:

  • a name on its own, which is a field of the same enclosure;
  • a name, a full stop, and a run inside it, where that field is bits;
  • a name, square brackets, and a name inside them, which is the item of an earlier array standing at the same position as the item doing the naming, so that two arrays run together;
  • either of the first two inside {"field": …, "minus": N}, which is that field’s value less the literal N, and N is never larger than the value;
  • either of the first two inside {"field": …, "bitsSet": true}, which is how many bits of that field’s value are one.

Nothing else is computed.

Presence

A field states a presence rule when it occupies bytes only under a condition, and a field whose condition does not hold occupies no bytes at all. The rule names an earlier field or bit run holding an integer, and states a value it carries, or a set of values, any one of which satisfies it. Without one, any value other than zero satisfies the rule. A field its own rule left out holds no value, so a rule naming that field does not hold either.

A rule can instead name remaining, which no field is called. A field under that rule is present where the payload has bytes left at that point and absent where it has ended, so a message whose sender stops early reads as one whose later fields are absent. A sender that stops early MUST stop where a field under such a rule begins.

A rule can mark one of its sides unseen; that side’s layout is the one the field states.

A field that travels enciphered

A payload is enciphered as a whole once a connection has a cipher state, and a message says nothing about that. Before a cipher state exists, a payload can carry one field enciphered under the key both ends hold, and the field says so.

Such a field occupies whole cipher blocks, because a field filling part of one would travel half in the clear. Its recorded value is what the bytes mean once deciphered, so a reader deciphers the field alone and leaves the payload around it untouched.

Enumerated values

Where an integer field, or a run of bits inside one, takes a fixed set of values, the field lists what they mean, keyed by the value on the wire. Each entry names the value, in the same form a field name takes, and no two entries of one field share a name. A key fits the width and sign of what it names. A value with no entry has no meaning this specification states.

Revisions

A revision covers a range of client versions, from one version inclusive to another exclusive. Every revision states where it stops. Ranges of one message never overlap. A version no revision of a message covers has no such message: a client there neither sends nor takes it, and what a chapter says of it does not apply.

A revision covers no version that schema/protocol.json, schema/channels.json and schema/families.json do not all describe, because a range none of them reaches has no header, no byte order, and no channel to travel on.

Names and notes

A field name begins with a lower case letter and carries letters and digits after it. A message identity and a struct identity begin with a capital. A file is named for the identity it defines, and a message’s vectors sit in one directory named for that identity, with each capital starting a new part, lower case and joined by hyphens.

A field name is unique among the fields beside it, and an item of an array never takes the name of a field enclosing it.

Anything in schema/ carries a note wherever a fact needs words: a revision, a field, a run of bits, a value. A note states what the wire carries and what each end does. It carries no requirement keyword and says nothing changed.

How a message is delivered

A revision states whether the transport carries it reliably, unreliably, or unsequenced, which is what the message needs of the transport: a message another supersedes can be lost, and one that carries an account of what happened cannot. A server MUST send a message with the delivery its revision states.

Quick chat

Vectors

Every revision carries at least one conformance vector. A message vector opens with its family’s header and is read to the end. conformance/ says how a vector is written and how to run one.

Family headers

A field present when remaining is set is present exactly where the payload has bytes left at that point.

In 1.0.0.130–1.0.0.151

The game family:

FieldTypeWhat it is
commandu8255 introduces a container of several messages rather than a message of its own, which Messages describes.
netIdu32A network object the message concerns. Which object, and whether it is the origin or the subject, is settled by each message rather than here, and some messages carry a value naming none.

The session family:

FieldTypeWhat it is
commandu8

The registration family:

FieldTypeWhat it is
commandu8

The chat family:

No header.

In 1.0.0.152–3.1.0.0

The game family:

FieldTypeWhat it is
commandu8255 introduces a container of several messages rather than a message of its own, which Messages describes.
netIdu32A network object the message concerns. Which object, and whether it is the origin or the subject, is settled by each message rather than here, and some messages carry a value naming none.

The session family:

FieldTypeWhat it is
commandu8

The registration family:

FieldTypeWhat it is
commandu8

Objects and identifiers

How the things a match is about are named on the wire, and when an object enters and leaves a client’s world.

The identifiers

IdentifierWidthFormedNo one
Player id64 bits, signedthe player’s account; a client is given its own when started-1, every bit set
Client id32 bits, unsignedchosen by the server for each player at registration, counting from 04294967295
Seata place in a side listthe order of a side’s player ids in Rosteran empty place
Net id32 bits, unsignedchosen by the server for what it creates; worked out from a name for what a map holds0
Node8 bits, unsignedthe owning client’s client id plus 1, or 0 for an object no client owns0
Region id32 bits, unsignedchosen by the server for each region, and carried by RegionAddedsee below
Name hash32 bits, unsignedworked out from the name of a spell, an effect, a particle or a bone0

A field’s own definition gives its exact type. Where a field carries one of these, it carries it whole, at the width above.

In 1.0.0.140

No region id stands for no region.

A server MUST give each player a client id from 0 to 252.

A client takes a client id only from 0 to 252, and leaves on any other.

How they relate

A player is known by a player id. A server answers a client’s Register with Registered, and the one carrying the client’s own player id gives the client its own client id.

A client acts on that Registered alone and ignores every other, so it pairs no other player’s player id with a client id.

Roster lists each side’s player ids in order, and a player’s seat is their place in that list. A client finds a seat’s client id through its player id. SeatName, SeatChampion and the VersionSync seats name a player by player id; SeatLoadProgress names both.

A champion carries the client id of the player it belongs to. The CreateChampion carrying a client’s own client id makes that champion the client’s own.

A bot’s champion carries 4294967295.

Net ids

A net id names one object in a client’s world: a unit, a missile, a particle, a marker, a prop. The header of every game message carries one, and fields naming a unit, an owner or a target carry one too.

  • A server MUST NOT give an object net id 0, which names nothing.
  • A server SHOULD NOT give an object a net id whose top byte is 0xFF, which the identifiers of what a map holds use, nor one whose top byte is any client’s client id plus 1, which a client uses for objects of its own making.
  • A server MUST NOT give a new object a net id it has given another object in the same match, except in a soft reconnect (see below).

A create message carries a node beside the object’s net id.

In 1.0.0.140–3.1.0.0

Nothing a player sees depends on it.

Net ids of what a map holds

Some objects are on the field before any message puts them there, and no message ever does: the buildings a side defends, the shops beside them, and the spawn points a side’s minions come from. A receiving end knows them from the map it loaded, and every message naming one names it by an identifier worked out from that object’s name in the map.

The identifier is the CRC-32 of the name, with the top byte set:

identifier = crc32(name) | 0xFF000000

The name is taken byte for byte with its case kept, so OrderShop01 and orderShop01 are two names and give two identifiers. The CRC-32 is the common one: the polynomial 0x04C11DB7 read reflected, starting from 0xFFFFFFFF and finishing with every bit inverted, so the nine bytes 123456789 give 0xCBF43926.

Among the identifiers with that top byte are these:

NameIdentifier
Barracks_T1_C10xFF4A20F1
Barracks_T1_L10xFFD23C3E
Barracks_T1_R10xFF9303E1
Barracks_T2_C10xFFFF8F1F
Barracks_T2_L10xFF6793D0
Barracks_T2_R10xFF26AC0F
__P_Order_Spawn_Barracks__C010xFFB77171
__P_Order_Spawn_Barracks__L010xFFEB364C
__P_Order_Spawn_Barracks__R010xFF53B836
__P_Chaos_Spawn_Barracks__C010xFFBA00E8
__P_Chaos_Spawn_Barracks__L010xFFE647D5
__P_Chaos_Spawn_Barracks__R010xFF5EC9AF
____P_Chaos_Spawn_Barracks__C010xFF707D61
ChaosShop010xFF3A98D9
chaosShop010xFFA6170E
HQ_T10xFFF97DB5
HQ_T20xFFF02C0F
OrderShop010xFF8C490C
orderShop010xFF10C6DB

Every object a map places carries the identifier its name gives, turrets, navigation points and props among them.

A name holding _Destroyed or _FB gives no identifier.

In 1.0.0.140

MapHolds
1, 2, 6the six Barracks names, HQ_T1, HQ_T2, orderShop01, chaosShop01, spawn points named __P_…
3Barracks_T1_C1, Barracks_T2_C1, HQ_T1, HQ_T2, OrderShop01, ChaosShop01, ____P_Chaos_Spawn_Barracks__C01
4Barracks_T1_L1, Barracks_T1_R1, Barracks_T2_L1, Barracks_T2_R1, HQ_T1, HQ_T2, OrderShop01, ChaosShop01, spawn points named __P_…
8orderShop01, chaosShop01

The Barracks names above belong to inhibitors, whatever the name says. The minions a side sends out come from spawn points of their own, which are among the objects a map holds.

A client puts a minion on the field for a SpawnFromBarracks naming a spawn point, and creates nothing for one naming an inhibitor such as Barracks_T1_C1.

A server MUST name each object a map holds by the identifier its name gives.

CreateTurret gives a net id to a turret the map already holds, matched by name. Given to a turret that already has one, it gives it a second, and both name it.

What a client holds

A client holds an object from the message that creates it until the message, or the end of its life, that removes it. Creating messages are listed in Units. What a map holds, a client holds from the moment it loads the map.

Leaving a client’s sight removes nothing: LeaveSight and LeaveTeamSight hide an object, and it is held as before.

A client removes a region once its lifetime reaches 0, so a region given a lifetime of 0 does not last.

RegionRemoved for a region a client does not hold does nothing.

A soft reconnect

SoftReconnect rebuilds a client’s world without a new connection, in two halves. The first marks every unit and every object kept until a checkpoint, inhibitors aside. A create message for a marked net id replaces the marked object rather than keeping the id on it. The second removes every object still marked. In between, a server sends again each object the client is to keep. Each stage either marks or removes.

In 1.0.0.143–3.1.0.0

The stage of SoftReconnect that marks is 0.

In 1.0.0.143–3.1.0.0

A client reads only the two lowest bits of the stage: a stage with both clear marks, and any other removes.

In 1.0.0.150

ParticlesCreated does not replace a marked object holding its net id: that object stays until the removing stage.

Messages about objects a client does not hold

A message whose header names a net id the client does not hold, or whose body names one it needs, does nothing, and the client answers nothing for it. Creating messages are the exception, and so are these:

  • CreateFollower does nothing where the unit it follows is not held.
  • A Replication batch skips the units a client does not hold, and goes unanswered (see Ordering).
  • SoundPlayed naming an owner the client does not hold plays the sound with no place.

In 1.0.0.130–1.0.0.140

A WaypointGroup or WaypointGroupAtSpeed path for a unit not held is never applied, and a client does not read past its points: it reads the next path from inside the one it skipped, so every later path of that message comes out wrong. The WaypointAck is sent as usual and lists that path. A server MUST send the creating message first, and MUST NOT carry a path for a unit a client does not hold in a message with other paths.

SpawnPet takes the net id in its header for the new pet, but does nothing where the owner its body names is not held.

Nothing else is held back for later: a message that arrives before the message creating what it names is lost. Ordering says what that requires of a server.

A message naming its sender

A server MUST set any field naming the sender from the connection the message arrived on, and MUST NOT copy the value the message carried; otherwise one player can send messages every other client attributes to another.

Name hashes

Some things a message names are known to a client by name: a spell, an effect a unit carries, a particle, and a place on a unit that particles hang from. A message names one of these by a number worked out from its name.

The number is the ELF hash of the name with its capital letters lowered:

number = 0
for each byte b of the name, with A to Z made a to z:
    number = (number << 4) + b
    high = number & 0xF0000000
    if high != 0:
        number = number ^ (high >> 24)
    number = number & ~high

Every step is worked in 32 bits. Only A to Z change, so SummonerFlash and summonerflash give one number. A particle’s name includes its extension, so the number comes from global_ss_flash.troy and not from global_ss_flash. The nine bytes 123456789 give 0x0678AEE9.

A byte from 128 to 255 enters the hash as its value less 256, worked in 32 bits, rather than as itself.

NameNumber
SummonerFlash0x06496EA8
RegenerationPotion0x0E75DC7E
EzrealMysticShotMissile0x05FE9CE5
global_ss_flash.troy0x0058E369
L_HAND0x0725E844

A server MUST name each such thing by the number its name gives.

Ordering and acknowledgement

What arrives in what order, which numbers say that one statement supersedes another, and what a client answers with. A server whose messages arrive out of the order these rules expect has them ignored or lost.

Across channels

The transport delivers a channel’s reliable messages in the order they were sent, and drops an unreliable message that arrives after a later one on the same channel (see Transport). Nothing orders one channel against another.

A client acts on game messages in the order they arrive, whichever channel they arrive on, and holds none back for later but the paths Objects and identifiers names. A message that arrives before the message creating what it names is lost. So:

  • A server MUST send the message creating an object before any message naming it.
  • A server MUST NOT rely on a message on one channel arriving before a message sent later on another. Where one depends on the other, a server sends both on one reliable channel, or sends the second once the transport has acknowledged the first.

The messages creating a unit travel reliably on the events channel, while Replication and WaypointGroup travel unreliably on the transient channel, so either can overtake the message creating the unit it names. A Replication batch skips a unit the client does not hold, and goes unanswered (see below), so a server sends a newly created unit’s values again until a batch naming it is answered.

A server can instead send Replication reliably on the events channel.

In 1.0.0.130–1.0.0.140

A client that meets a unit it does not hold in a WaypointGroup or WaypointGroupAtSpeed leaves that unit’s path unread, reads every later movement in the group from the wrong place, and answers the group all the same. A server MUST NOT name a unit in a group until the transport has acknowledged the message creating it.

Numbers that supersede

Several messages carry a syncId: a number that lets a client tell a newer statement from an older one, or a server tell which statement an answer is for. Each family keeps its own numbers, and compares them in its own way.

FamilyCarried byCountedA client takes a statement
ReplicationReplicationper unit and per group of values, from 0whose number is greater than the last taken for that unit and group, with no wrapping: 0 is never taken
ViewCamera, from a clientper client, counting up as the view moves(a client’s own report)

WaypointGroup, WaypointGroupAtSpeed, Path, PathWithSpeed, EnterSight, and UnitStopped and SpellCastAnswer where they carry one, share one count per unit, from -1. A client takes a statement whose number is equal to the unit’s or ahead of it; a number 230 or more behind counts as ahead, so the count can wrap. A group of movements carries one syncId for every unit in it. A server MUST give each statement about a unit a number equal to or ahead of the last it gave that unit.

A statement a client does not take changes nothing; what follows it still applies.

For replication, a server MUST give each batch carrying a unit a number greater than the last batch carrying that unit, and MUST NOT give one 0. A server SHOULD give every batch a number of its own, so that a TransientAck names one batch.

A client sends a view report again until a server answers with its number, twice the round trip time plus 1/30 of a second apart. A server MUST answer each view report with CameraAck, carrying its number.

What a client answers

A server sendsA client answers
QueryStatusAnswernothing; it asks again with QueryStatus until told the server is ready
WaypointGroup, WaypointGroupAtSpeedWaypointAck for each group, taken or not, naming the units in it that carried a token (see Movement)
ReplicationTransientAck, where every unit the batch names is held
ClockSyncClockReply (see Time)

A client also answers each Path and PathWithSpeed, taken or not, with a WaypointAck carrying its syncId.

That answer lists no units but leaves its count of units unset, so a server MUST NOT rely on the count.

A client sends these answers when it plays a match, not while it plays back a stream.

Space

How positions, distances and directions are carried, whichever system carries them, and what a map gives that nothing on the wire carries.

Units and axes

Positions and distances are in world units. The ground is the plane of x and z, and y is height. A field that carries a position on the ground carries x and z; one that carries a point in the world carries x, y and z. Where a message leaves height out, a receiving end takes it from the ground beneath.

A position travels as a 32-bit float on each axis unless its definition says otherwise. Where the paths of Movement and MovementAtSpeed are compact, they carry their points as integers measured from the map’s origin, and Movement says how those points are worked out.

Directions

A direction is carried as a vector, not as an angle:

  • A unit’s facing in the movement state EnterSight carries is a pair along the ground, x and z.
  • UnitStopped, MissileState, a particle’s facing and a view’s direction in Camera carry x, y and z.
  • FaceDirection carries x, y and z, and turns the unit to face along them.

FaceDirection turns the unit along x and z alone, and leaves it as it is where both are 0.

In 1.0.0.140–3.1.0.0

FaceDirection turns the unit at once where bit 0 of its flags is clear, and toward that direction at its own pace where it is set.

A champion carries no facing of its own when created.

A champion faces as its map’s table of spawn positions says (see CreateChampion).

CreateNeutral carries a point to face rather than a direction: the monster faces from where it stands toward that point, or along +z where the two are the same.

A prop of scenery carries angles instead: MapProp gives its turn as pitch, yaw and roll, in degrees, where yaw 0 faces +z and yaw 90 faces +x. For an active prop, the same three fields are a direction vector.

Maps

VersionSync names the map to load by number. A client takes a map’s buildings (see Objects and identifiers), spawn positions and path origin (see Movement) from its own data (see The client’s data), and can load only a map it has data for.

In 1.0.0.140

A client has data for maps 1 to 4, 6 and 8:

mapOrigin of its paths
16991, 7223
26991, 7223
37479, 7147
46710, 6696
66991, 7223
86947, 6609

Time

Which clocks a match runs on, and which of them each time on the wire is measured against.

How a time is carried

A time is in seconds, as a 32-bit float, unless its definition says otherwise. A field is either a moment, read against a clock, or a duration, which starts when the message arrives. Every definition says which.

Exceptions:

  • Paused carries the time left in a hold as a whole number of seconds.
  • A stream’s chunk and key frame intervals (StreamMetadata) are in milliseconds.

The match clock

The match runs on a server’s clock, which counts seconds from 0 as play begins. ClockSync states where it stands, and a client sets its own clock to that, plus its allowance for how late the statement arrived. A client answers with ClockReply, from which a server measures the round trip. A server can report the round trip it measured with ClockConvergence.

A client takes the round trip ClockConvergence reports into its allowance for lateness.

Each ClockConvergence sets a client’s allowance to 0.8 times what it was plus 0.1 times the round trip it reports.

The allowance starts at 0, and nothing but ClockConvergence changes it: a client that has had none takes ClockSync as it stands. A server SHOULD send ClockConvergence, or each ClockSync sets a client’s clock behind by the time it took to arrive.

A server sends ClockSync with 0 as play begins (see Joining a match), and again whenever it means a client’s clock to catch up with its own.

A client’s match clock does not run until the first ClockSync arrives, which sets it. After that it runs on the client’s own timer, and a later ClockSync only corrects it, however long a server leaves between them.

GameSpeed sets the pace of the match clock, and a hold sets the pace to 0 until play resumes. A server that runs a match at other than normal speed MUST send GameSpeed with that speed, or a client’s match clock runs apart from its own.

In 1.0.0.130–1.0.0.140

A client runs no clock but the match clock, and takes whatever speed GameSpeed gives.

A GameSpeed that arrives during a hold takes effect as play resumes.

A client shows the match’s time counted from the moment on the match clock at which the match began.

MatchStarted gives that moment. Until it arrives, a client takes the match clock’s reading as its game loop runs, and a MatchStarted arriving later replaces it. While the match clock is before that moment, a client shows a negative time.

Moments on the match clock include:

  • when a monster arrives (CreateNeutral’s spawnAt, where it carries one);
  • when a prop’s animation starts (MapPropChanged, where it carries one);
  • when an assisting unit last dealt damage (ClientEvent);
  • when a champion’s passive comes off cooldown, where a client is told it (see Replication).

A server MUST state each of these on the clock it sends in ClockSync.

A stream’s clock

A watching client plays a stream against a clock of the stream’s own, which the stream’s records set (see Watching a match).

Sides and slots

Values many systems share: which side something is on, and how a unit’s spell, item and effect slots are numbered.

Sides

A side is 100 or 200, for the two sides that play, or 300 for what belongs to neither, such as a monster of no side. Where a field takes 0, it names no side; its note says what that means. A few fields carry a side in another form, and their notes say which.

Roster lists the players of each side, and a player’s place in that list is their seat (see Objects and identifiers).

Spell slots

A champion has two books of spells. Its own book holds these slots:

SlotHolds
0 to 3the champion’s spells; 3 is its ultimate
4 onthe spell of the item in the inventory slot four below, for each such slot
after thosespells a server places for the match’s own purposes

Its summoner book holds the two summoner spells, in slots 0 and 1.

A message that names a spell slot either carries a flag, set for the summoner book and clear for the champion’s own, or names the champion’s own book only. A cast’s description (SpellCast) carries no flag: the spell’s own data says whether it is a summoner spell.

In 1.0.0.140

A cast’s slot also takes 64 to 69, for a basic attack: 64 is the champion’s basic attack, 65 to 67 its other basic attacks, 68 its critical attack and 69 a miss.

A server MUST NOT name a champion book slot beyond the book’s last slot.

In 1.0.0.140

A champion’s own book ends at slot 51. A client ignores an Autocast naming a slot above 51. A server MUST NOT name a champion book slot above 51.

Inventory slots

A champion’s inventory holds the six items a player sees and uses in slots 0 to 5, and further slots after them up to its last.

An item is cast from the spell slot four above its inventory slot, and moving an item moves its spell with it. A server MUST NOT name an inventory slot beyond the inventory’s last slot.

A client asks to swap only slots 0 to 5 (SwapItems).

A champion’s inventory ends at slot 37. A client ignores a RemoveItemAnswer, InventorySlot, ItemAdded, ItemUsed or ItemCharges naming a slot above 37. A server MUST NOT name an inventory slot above 37.

Effect slots

Adding an effect to a slot replaces whatever held it, and removing one empties the slot whatever its name.

Each unit has 64 slots for the effects it carries, 0 to 63. A slot outside that range does nothing.

The client’s data

What a server needs that no message carries, and takes from the files a client installs: the buildings and spawn points of a map, the ground units walk on, and the figures of champions, items and spells. A server SHOULD take its figures from these files: a client draws a match from them, and figures from elsewhere disagree with what it shows.

What a server reads

  • The buildings of a map: the names a client knows its turrets, inhibitors and nexuses by, from which Objects and identifiers works out the identifier of each.
  • The spawn points: where each side’s champions begin.
  • The ground: the grid a map’s units walk on, which a server needs to find paths.
  • The figures: each champion’s base statistics, each item’s price and what it is built from, and each spell’s cooldowns, costs and ranges, which a server states through replication and SpellCast.

Movement takes the origin of a path from the ground.

In 1.0.0.140

The client has maps 1, 2, 3, 4, 6 and 8.

A client installs its files under one root, with the paths below; an install that packs them into archives keeps the same paths inside.

Buildings. LEVELS/Map1/Scene/room.dsc lists a map’s scene objects, one line each: a file name and a quality number. Each object’s own file sits beside it and gives its name. A client creates no object from a name holding _Destroyed or _FB. On map 1 the names run Turret_T<side>_<lane>_<number> for a lane turret, Barracks_T<side>_<lane>1 for an inhibitor and HQ_T<side> for a nexus, side 1 for Order and 2 for Chaos and lanes L, C and R, with a shrine turret for each side; the numbers differ between the sides, and a server MUST take the names from the files.

A word a name holds anywhere says what the object is, not only its opening, the first match winning: a minion spawner’s Spawn_Barracks is tested before Barracks, which makes an inhibitor, and HQ_ makes a nexus and Turret a turret.

Each object’s file is .sco as text or .SCB as binary, and gives its name on its Name= line.

In 1.0.0.140–3.1.0.0

CreateTurret names a building by its name with _A after it.

In 1.0.0.140

A client fails on a CreateTurret naming no building, and a server MUST NOT send one.

Objects and spawn points. A champion begins at its side’s spawn point, __Spawn_T1 for Order and __Spawn_T2 for Chaos.

The spawn points, the navigation points and the marker of the level’s size are scene objects, listed in room.dsc like the buildings.

A champion begins at its side’s spawn point moved by an offset from DATA/Characters/HeroSpawnOffsets.inibin, read from the section Order<n> or Chaos<n> under the keys Pos<i> and Facing<i>, where i is one more than CreateChampion’s spawn index. A spawn index of 6 or more begins the champion on the spawn point itself.

In 1.0.0.140–3.1.0.0

In the section’s name, n is how many players and bots the side has. A champion begun on the spawn point itself faces along +X.

The ground. A client walks units on LEVELS/Map1/AIPath.aimesh_ngrid, a binary grid. Its layout is unspecified.

The grid’s name is the map’s own, AIPath.aimesh with _ngrid after it: no setting of the mode chooses it.

The figures. Each is an inibin file: a champion’s base statistics in DATA/Characters/<Champion>/<Champion>.inibin; an item, its price among its figures, in DATA/Items/<id>.inibin; and summoner, item and shared spells in DATA/Spells/<Spell>.inibin.

Map 1 adds LEVELS/Map1/Items.inibin to the items, and figures for a whole mode are in DATA/Globals/, such as CLASSIC_Stats.inibin and HealthGain.inibin.

In 1.0.0.140

A champion’s spells and attacks are in DATA/Spells/<Spell>.inibin with all other spells.

Joining a match

What passes between a client and a server from connection until play begins, in order.

Starting a client

A client learns where to connect from its command line. It takes three arguments it needs nothing in, which can be empty, and then a fourth holding four words separated by single spaces: the server’s IPv4 address, its UDP port, the key (see Transport), and the player id the client registers as. The client connects to that address and port, registers as that player, and enciphers its proof under that key.

Any whitespace separates the words of the fourth argument. A client whose command line holds no double quote takes the command line it saved on an earlier run instead, and one holding .rep anywhere plays a replay rather than connecting.

Registering

A client’s first payload is Register, on the registration channel. The note on Registered says what a server answers with: one answer for every seat.

A client knows the answer meant for it by the player id it registered as, not by the client id, and takes the client id that answer carries as its own. Every other answer tells it which client id stands for which player.

A client waits 30 seconds for the answer naming its own player id. Then it offers its player to wait another 30 seconds or to give up, and leaves on giving up.

In 1.0.0.130–1.0.0.140

Every answer for its own player id, the first included, has a client send ReconnectedInMatch, saying whether play has yet begun.

Asking whether a server is ready

A client then sends QueryStatus over and over. A server MUST answer each one with QueryStatusAnswer, at least until it has answered that it is ready. While the answers say the server is not ready, a client stays on a black screen and keeps asking. A server that needs time before a match can begin answers that it is not ready until it is.

A client stops asking once an answer says the server is ready, and a query it sends after that answer needs none.

Stating a build

Once an answer says the server is ready, a client sends ClientVersion once. A server answers with VersionSync, and a client loads only where its agreement says the builds agree.

VersionSync names the map to load and everyone at the match.

Taking a seat

Straight after VersionSync, a client sends JoinSide on the roster channel. A server answers with one Roster, then a SeatName and a SeatChampion for each seat a player holds.

Loading

A client reports how far loading has got with LoadingProgress, repeatedly through loading. A server answers each report with SeatLoadProgress on the transient channel, carrying the report’s figures under the seat that reported. A client goes on reporting after its progress reaches 100, until play begins.

A client waits on no other seat. SpawnStart, SpawnEnd and StartGame are what move a client on, and StartGame alone ends its loading. A server that means its players to begin together sends StartGame to none of them until every client has sent ClientReady.

In 1.0.0.130–1.0.0.140

A server MUST put the seat’s player id in SeatLoadProgress: the loading screen shows a seat’s card from the VersionSync seat with that id.

In 1.0.0.140

A client writes its own client id where its player id goes in LoadingProgress, in the low four bytes with zeros above.

The loading screen

What a client draws while it loads comes from what it has been sent by then (see the spawn run below for what it takes before CharacterSelected).

A player’s card is built from several messages. Its place on the screen is that seat’s place in the Roster, and its name is that player’s SeatName. The registration answers (Registered) pair each player with a client id, and the latest SeatLoadProgress for that client gives the card its progress and, on the client’s own card only, its ping. The first SeatLoadProgress after the player’s SeatChampion sets the card up: its portrait and the champion’s name, from that SeatChampion’s champion and skin, then everything else from the VersionSync seat whose player id the SeatLoadProgress names. A card with no SeatChampion yet shows a black portrait, and one with no registration or no SeatLoadProgress yet says it is not connected. A later SeatChampion does not change a card already set up.

In 1.0.0.140

A card draws a seat’s icon only where it is 0 or more. A seat is a bot’s where its flags is not zero, whatever its bits, and the card of a bot takes its name from the client’s own name for that bot, not from the seat’s botName. No bit of flags chooses older portrait art.

The spawn run

Once a character is settled, a client sends CharacterSelected, once.

A server answers with SpawnStart, states everything on the field as play opens, and closes the run with SpawnEnd. A run carries:

In 1.0.0.138–3.1.0.0

A turret’s CreateTurret can come on its own or inside the EnterSight that brings the turret into view.

A client takes these in any order within the run.

A run MUST carry at least SpawnStart, the CreateChampion carrying the client’s own client id, and SpawnEnd. Given only those, a client still enters play, showing its champion’s portrait, health, resource and spells. It draws the champion on the map only once an EnterSight places it there, with its name and health bar over it.

A client answers each Replication batch with a TransientAck naming that batch’s syncId. It sends one answer for each batch, in the order the batches came, including a batch that repeats the syncId of the batch before it.

A client answers a batch as soon as it arrives, within the run or not, and never answers one naming a unit it does not hold.

Starting play

A client sends ClientReady after SpawnEnd and after its answers to the run’s batches, while it is still reporting its loading. A server MUST answer with StartGame, and later sends MatchStarted, with other messages free to come between them; MatchStarted carries 0 (see Time).

A client sends ClientReady as soon as SpawnEnd arrives, and StartGame alone moves it into play.

In 1.0.0.130–1.0.0.140

A client whose connection drops before play begins ends rather than connecting again.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

Register

What a client sends first. It arrives before the connection has a cipher state, so the payload travels in the clear apart from the proof.

Definition.

In 1.0.0.130–1.0.0.141

Command 0 on registration, sent by the client, reliable.

FieldTypeWhat it is
leadingbytes, 3Arbitrary; it carries no meaning.
clientIdu32A client writes zero here.
playerIdi64Who the sender claims to be. The proof is what settles the claim.
proofi64The player id enciphered with the 16-byte key; a plain copy where the client has no key.
Vectors (1)

one-on-1-0-0-141

In 1.0.0.142–3.1.0.0

Command 0 on registration, sent by the client, reliable.

FieldTypeWhat it is
leadingbytes, 3Arbitrary; it carries no meaning.
clientIdu32A client writes zero here.
playerIdi64Who the sender claims to be. The proof is what settles the claim.
versionu32The build the client runs, with each part written out and run together, so 4.17.0.233 arrives as 41700233 and 4.17.0.267 as 41700267. A client always carries it, and the answer a server carries back repeats the same number.
proofi64The player id enciphered with the 16-byte key; a plain copy where the client has no key.
trailingbytes, 4Arbitrary; it carries no meaning.

Registered

What a server answers a registration with, naming a player in the match and the seat they occupy. It shares its command value with the request it answers, which travels the other way, and it is one fixed size.

Definition.

In 1.0.0.130–1.0.0.141

Command 0 on registration, sent by the server, reliable.

FieldTypeWhat it is
leadingbytes, 3Unused; a server writes zero.
clientIdu32The client id playerId holds. Where playerId is the client’s own, the client takes this client id as its own and goes on. A watching client takes the champion of the player holding this client id as its own, so a server answers one with a client id no player in the streamed match holds (see Watching a match).
playerIdi64The player the answer is for; a client takes it only where this is its own player id, and reads nothing after it.
Vectors (1)

one-on-1-0-0-141

In 1.0.0.142–3.1.0.0

Command 0 on registration, sent by the server, reliable.

Straight after a request a server sends one answer for every seat, and every one of them carries that request’s build and proof back.

FieldTypeWhat it is
leadingbytes, 3Unused; a server writes zero.
clientIdu32The client id playerId holds. Where playerId is the client’s own, the client takes this client id as its own and goes on. A watching client takes the champion of the player holding this client id as its own, so a server answers one with a client id no player in the streamed match holds (see Watching a match).
playerIdi64Who occupies that seat.
versionu32The build the client said it runs. Where the answer follows a request, a server writes the number that request carried, and otherwise the build itself. A client ignores it.
proofbytes, 8The eight bytes a request fills with its proof. Where the answer follows a request, a server writes what that request carried, and otherwise zero. A client ignores them.
trailingbytes, 4Unused; a server writes zero.

QueryStatus

What a client sends to ask a server for its state. It carries nothing of its own. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14323
1.0.0.144–3.1.0.020

No body.

Vectors (1)

one-on-1-0-0-143

QueryStatusAnswer

What a server returns when asked whether it is ready. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131141
1.0.0.132–1.0.0.137142
1.0.0.138144
1.0.0.139–1.0.0.143143
1.0.0.144–1.0.0.149137
1.0.0.150–3.1.0.0134
FieldTypeWhat it is
readyu8Whether the server is ready. While answers say it is not, a client keeps asking and goes no further, which Joining a match sets out. Values: 0 no, 1 yes.
Vectors (6)

yes-on-1-0-0-131, yes-on-1-0-0-136, yes-on-1-0-0-138, yes-on-1-0-0-143, yes-on-1-0-0-149, yes-on-1-0-0-154

ClientVersion

What a client sends to state which build it is. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131197
1.0.0.132–1.0.0.134198
1.0.0.135200
1.0.0.136–1.0.0.137198
1.0.0.138200
FieldTypeWhat it is
clockf32The client’s own clock as it sends this, in seconds.
clientIdu32The client id of the client reporting.
texttext, 256 bytesThe build, as text. The text ends at a zero byte.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 199 on requests, sent by the client, reliable.

A client does not send it while watching a match.

FieldTypeWhat it is
clockf32The client’s own clock as it sends this, in seconds.
clientIdu32The client id of the client reporting.
texttext, 256 bytesThe build as text: a fixed word, the build number, then the build type in square brackets. The text ends at a zero byte.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–1.0.0.144

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143201
1.0.0.144189
FieldTypeWhat it is
clockf32The client’s own clock as it sends this, in seconds.
clientIdu32The client id of the client reporting.
texttext, 256 bytesThe build, as text. The text ends at a zero byte.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-144

In 1.0.0.145–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.145–1.0.0.149189
1.0.0.150–3.1.0.0186
FieldTypeWhat it is
clientIdu32The client id of the client reporting.
texttext, 256 bytesThe build, as text. The text ends at a zero byte.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

VersionSync

What a server sends once a client has said which build it runs, saying whether the two agree. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.139

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.13087
1.0.0.13187
1.0.0.132–1.0.0.13788
1.0.0.138–1.0.0.13990

It also says which map to load, who is at the match, and everything else settled before play.

FieldTypeWhat it is
agreementu8Nonzero where the build the client runs matches, which a client needs to load; zero has it show both versions and end.
mapi32Which map to load. Space keys the path origins by the same maps.
seats12 × SeatEvery place at the match, held or empty.
buildtext, 256 bytesWhich build the server serves. Written out in full and padded with zero bytes to the width above.
modetext, 128 bytesWhich way the match is played, written and padded as above.
teamNametext, 25 bytesWhat one side is called where it plays as a standing team, written and padded as above.
teamTagtext, 7 bytesThe short form of that name, written and padded as above.
otherTeamNametext, 25 bytesWhat the other side is called, under the same terms.
otherTeamTagtext, 7 bytesThe short form of that one.
metricsHosttext, 1024 bytesWhere a client reports figures about the match, written and padded as above.
metricsPathtext, 1024 bytesWhat it asks for there, written and padded as above.
metricsPortu16Which port it reaches that at.
reporting1-byte bits
reporting.reportsToFilebit 0Set to have a client also write its reports to a file of its own.
reporting.unusedbit 1 to 7Unused; a server writes zero.
Vectors (4)

one-on-1-0-0-130, one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-139

In 1.0.0.140–1.0.0.143

Command 90 on events, sent by the server, reliable.

It also says which map to load, who is at the match, and everything else settled before play.

FieldTypeWhat it is
agreementu81 has a client load. 0 has it show both versions and end; any value from 2 to 255 also has it end, without showing them.
mapi32Which map to load. Space keys the path origins by the same maps.
seats12 × SeatEvery place at the match, held or empty.
buildtext, 256 bytesWhich build the server serves. Written out in full and padded with zero bytes to the width above.
modetext, 128 bytesWhich way the match is played, written and padded as above.
teamNametext, 25 bytesWhat one side is called where it plays as a standing team, written and padded as above.
teamTagtext, 7 bytesThe short form of that name, written and padded as above.
otherTeamNametext, 25 bytesWhat the other side is called, under the same terms.
otherTeamTagtext, 7 bytesThe short form of that one.
metricsHosttext, 1024 bytesWhere a client reports figures about the match, written and padded as above.
metricsPathtext, 1024 bytesWhat it asks for there, written and padded as above.
metricsPortu16Which port it reaches that at.
reporting1-byte bits
reporting.reportsToFilebit 0Set to have a client also write its reports to a file of its own.
reporting.matchedbit 1Set to hide all chat: a client refuses to send a line to all players and shows a notice instead, a different one where it is watching the match.
reporting.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144

Command 84 on events, sent by the server, reliable.

It also says which map to load, who is at the match, and everything else settled before play.

FieldTypeWhat it is
agreementu8Nonzero where the build the client runs matches, which a client needs to load; zero has it show both versions and end.
mapi32Which map to load. Space keys the path origins by the same maps.
seats12 × SeatEvery place at the match, held or empty.
buildtext, 256 bytesWhich build the server serves. Written out in full and padded with zero bytes to the width above.
modetext, 128 bytesWhich way the match is played, written and padded as above.
teamNametext, 25 bytesWhat one side is called where it plays as a standing team, written and padded as above.
teamTagtext, 7 bytesThe short form of that name, written and padded as above.
otherTeamNametext, 25 bytesWhat the other side is called, under the same terms.
otherTeamTagtext, 7 bytesThe short form of that one.
metricsHosttext, 1024 bytesWhere a client reports figures about the match, written and padded as above.
metricsPathtext, 1024 bytesWhat it asks for there, written and padded as above.
metricsPortu16Which port it reaches that at.
reporting1-byte bits
reporting.reportsToFilebit 0Set to have a client also write its reports to a file of its own.
reporting.matchedbit 1Set where the match was put together rather than made by hand.
reporting.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-144

In 1.0.0.145–1.0.0.146

Command 84 on events, sent by the server, reliable.

It also says which map to load, who is at the match, and everything else settled before play.

FieldTypeWhat it is
agreementu8Nonzero where the build the client runs matches, which a client needs to load; zero has it show both versions and end.
mapi32Which map to load. Space keys the path origins by the same maps.
seats12 × SeatEvery place at the match, held or empty.
buildtext, 256 bytesWhich build the server serves. Written out in full and padded with zero bytes to the width above.
modetext, 128 bytesWhich way the match is played, written and padded as above.
teamNametext, 25 bytesWhat one side is called where it plays as a standing team, written and padded as above.
teamTagtext, 7 bytesThe short form of that name, written and padded as above.
otherTeamNametext, 25 bytesWhat the other side is called, under the same terms.
otherTeamTagtext, 7 bytesThe short form of that one.
metricsHosttext, 1024 bytesWhere a client reports figures about the match, written and padded as above.
metricsPathtext, 1024 bytesWhat it asks for there, written and padded as above.
metricsPortu16Which port it reaches that at.
reporting1-byte bits
reporting.reportsToFilebit 0Set to have a client also write its reports to a file of its own.
reporting.matchedbit 1Set where the match was put together rather than made by hand.
reporting.unusedbit 2 to 7Unused; a server writes zero.
tipi8Which note the client shows before play, as it stands. A client watching a recorded match takes both bytes below as zero.
tipColouri8Kept by the client, which reads nothing more from it.
tipDurationi8Kept by the client, which reads nothing more from it.
loadingTipsu8Nonzero shows the note on the loading screen.
playingTipsu8Nonzero shows it during play, from time to time.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–1.0.0.149

Command 84 on events, sent by the server, reliable.

It also says which map to load, who is at the match, and everything else settled before play.

FieldTypeWhat it is
agreement1-byte bits
agreement.buildMatchesbit 0Set where the client’s build is one the server serves.
agreement.reportsToFilebit 1Set to have a client also write its reports to a file of its own.
agreement.matchedbit 2Set where the match was put together rather than made by hand.
agreement.unusedbit 3 to 7Unused; a server writes zero.
mapi32Which map to load. Space keys the path origins by the same maps.
seats12 × SeatEvery place at the match, held or empty.
buildtext, 256 bytesWhich build the server serves. Written out in full and padded with zero bytes to the width above.
modetext, 128 bytesWhich way the match is played, written and padded as above.
teamNametext, 25 bytesWhat one side is called where it plays as a standing team, written and padded as above.
teamTagtext, 7 bytesThe short form of that name, written and padded as above.
otherTeamNametext, 25 bytesWhat the other side is called, under the same terms.
otherTeamTagtext, 7 bytesThe short form of that one.
metricsHosttext, 1024 bytesWhere a client reports figures about the match, written and padded as above.
metricsPathtext, 1024 bytesWhat it asks for there, written and padded as above.
metricsPortu16Which port it reaches that at.
tipi8Which note the client shows before play, as it stands. A client watching a recorded match takes both bytes below as zero.
tipColouri8Kept by the client, which reads nothing more from it.
tipDurationi8Kept by the client, which reads nothing more from it.
loadingTipsu8Nonzero shows the note on the loading screen.
playingTipsu8Nonzero shows it during play, from time to time.
Vectors (2)

one-on-1-0-0-147, one-on-1-0-0-149

In 1.0.0.150–3.1.0.0

Command 81 on events, sent by the server, reliable.

It also says which map to load, who is at the match, and everything else settled before play.

FieldTypeWhat it is
agreement1-byte bits
agreement.buildMatchesbit 0Set where the client’s build is one the server serves.
agreement.reportsToFilebit 1Set to have a client also write its reports to a file of its own.
agreement.matchedbit 2Set where the match was put together rather than made by hand.
agreement.unusedbit 3 to 7Unused; a server writes zero.
mapi32Which map to load. Space keys the path origins by the same maps.
seats12 × SeatEvery place at the match, held or empty.
buildtext, 256 bytesWhich build the server serves. Written out in full and padded with zero bytes to the width above.
modetext, 128 bytesWhich way the match is played, written and padded as above.
teamNametext, 25 bytesWhat one side is called where it plays as a standing team, written and padded as above.
teamTagtext, 7 bytesThe short form of that name, written and padded as above.
otherTeamNametext, 25 bytesWhat the other side is called, under the same terms.
otherTeamTagtext, 7 bytesThe short form of that one.
metricsHosttext, 1024 bytesWhere a client reports figures about the match, written and padded as above.
metricsPathtext, 1024 bytesWhat it asks for there, written and padded as above.
metricsPortu16Which port it reaches that at.
tipi8Which note the client shows before play.
tipColouri8Which colouring it shows it in.
tipDurationi8Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note.
tipFlags1-byte bitsHow the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them.
tipFlags.enabledbit 0Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing.
tipFlags.replaybit 1Of no effect; a client clears it, with enabled, while playing a replay.
tipFlags.loadingScreenbit 2Set to show the note on the loading screen.
tipFlags.inGamebit 3Set to show the note during play, in a box on the screen.
tipFlags.cyclebit 4Set to have the box during play show every note in turn.
tipFlags.unusedbit 5 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-150, one-on-1-0-0-154

JoinSide

What a client sends to ask for a seat on one of the two sides while the match is being put together.

Definition.

In 1.0.0.130–1.0.0.146

Command 100 on roster, sent by the client, reliable.

FieldTypeWhat it is
paddingbytes, 3Never written by a client.
clientIdu32The client id of the client asking.
sideu32The side it asks for.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 100 on roster, sent by the client, reliable.

FieldTypeWhat it is
clientIdu32The client id of the client asking.
sideu32The side it asks for.

Roster

What a server sends to lay out both sides and who is on them, while the match is being put together.

Definition.

In 1.0.0.130–1.0.0.146

Command 103 on roster, sent by the server, reliable.

FieldTypeWhat it is
paddingbytes, 3Unused; a client reads nothing here.
sideRoomu32How many seats the first side has room for, and so how many leading places of side a client copies. A server sends at most 24: a client refuses a count above 48 and keeps the one before, and for 25 to 48 copies on past the side’s places into the fields after them.
otherSideRoomu32How many the other has room for, under the same terms.
gapbytes, 4Unused; a client reads nothing here.
side24 × i64The players on one side, twenty four places. A client copies as many leading places as sideRoom gives; the rest hold zero. A place cannot be read on its own, because zero is an identifier a match gives out as well as what an unused place holds. It has a player identifier’s width.
otherSide24 × i64The players on the other, under the same reading, as many as otherSideRoom gives.
sideTakenu32How many of the leading places on the first side carry a player. A client keeps it, and it limits nothing.
otherSideTakenu32How many on the other, under the same terms.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 103 on roster, sent by the server, reliable.

FieldTypeWhat it is
sideRoomu32How many seats the first side has room for.
otherSideRoomu32How many the other has room for.
side24 × i64The players on one side, twenty four places. The count below says how many of the leading places carry a player; the rest hold zero. A place cannot be read on its own, because zero is an identifier a match gives out as well as what an unused place holds. It has a player identifier’s width.
otherSide24 × i64The players on the other, under the same reading and its own count.
sideTakenu32How many of the leading places on the first side carry a player.
otherSideTakenu32How many on the other.

SeatName

What a server sends to say what a seat is called, while the match is being put together.

Definition.

In 1.0.0.130–1.0.0.146

Command 102 on roster, sent by the server, reliable.

FieldTypeWhat it is
paddingbytes, 7Unused; a client reads nothing here.
playeri64The player this is about. It has a player identifier’s width.
skini32Which look the seat’s champion wears. A client reads nothing here.
nameLengthu32How many bytes the name below occupies, counting the byte that ends it. A client reads nothing here: it reads the name up to its zero byte.
nametext, sized by nameLength minus 1What the seat is called. It is not padded.
terminatorbytes, 1A zero byte closing the text, which the length above counts.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 102 on roster, sent by the server, reliable.

FieldTypeWhat it is
playeri64The player this is about. It has a player identifier’s width.
skini32Which look the seat’s champion wears.
nameLengthu32How many bytes the name below occupies, counting the byte that ends it.
nametext, sized by nameLength minus 1What the seat is called. It is not padded.
terminatorbytes, 1A zero byte closing the text, which the length above counts.

SeatChampion

What a server sends to say which champion a seat is playing, while the match is being put together.

Definition.

In 1.0.0.130–1.0.0.146

Command 101 on roster, sent by the server, reliable.

FieldTypeWhat it is
paddingbytes, 7Unused; a client reads nothing here.
playeri64The player this is about. It has a player identifier’s width.
skini32Which look the champion wears.
assetLengthu32How many bytes the name below occupies, counting the byte that ends it.
assettext, sized by assetLength minus 1The name the client loads the champion’s art and sound under. It is not padded.
terminatorbytes, 1A zero byte closing the text, which the length above counts.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 101 on roster, sent by the server, reliable.

FieldTypeWhat it is
playeri64The player this is about. It has a player identifier’s width.
skini32Which look the champion wears.
assetLengthu32How many bytes the name below occupies, counting the byte that ends it.
assettext, sized by assetLength minus 1The name the client loads the champion’s art and sound under. It is not padded.
terminatorbytes, 1A zero byte closing the text, which the length above counts.

LoadingProgress

What a client sends while a match loads, saying how far it has got. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.143

Command 25 on requests, sent by the client, unreliable.

FieldTypeWhat it is
clientIdu32The client id of the client reporting.
playerIdi64Who is reporting. A client sends zero.
percentf32How far loading has got, from zero to one hundred.
etaf32How long the client expects still to take, in seconds.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30Round trip time the client measures, in milliseconds.
status.unusedbit 31Never written by a client.
done1-byte bits
done.loadedbit 0Set in every report whose progress stands at one hundred, and in no other.
done.unusedbit 1 to 7Never written by a client.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 22 on requests, sent by the client, unreliable.

FieldTypeWhat it is
clientIdu32The client id of the client reporting.
playerIdi64Who is reporting. A client sends every bit set, which names nobody.
percentf32How far loading has got, from zero to one hundred.
etaf32How long the client expects still to take, in seconds.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30Round trip time the client measures, in milliseconds.
status.unusedbit 31Never written by a client.
done1-byte bits
done.loadedbit 0Set in every report whose progress stands at one hundred, and in no other.
done.unusedbit 1 to 7Never written by a client.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 22 on requests, sent by the client, unreliable.

FieldTypeWhat it is
clientIdu32The client id of the client reporting.
playerIdi64Who is reporting. A client sends every bit set, which names nobody.
percentf32How far loading has got, from zero to one hundred.
etaf32How long the client expects still to take, in seconds.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30Round trip time the client measures, in milliseconds.
status.loadedbit 31Set in every report whose progress stands at one hundred, and in no other.

SeatLoadProgress

What a server sends to tell everyone how far one seat has got through loading, and how it is holding up. A later report supersedes an earlier one, so losing one costs nothing. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.133

Carried on transient, sent by the server, unreliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131157
1.0.0.132–1.0.0.133158
FieldTypeWhat it is
clientIdu32The client id this is about.
playeri64Who occupies it.
progressf32How far through loading it is, from zero to one hundred.
secondsLeftf32How much longer it is expected to take, in seconds.
status4-byte bitsCopied with the rest; no reader of it is known.
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30Round trip time the client measures, in milliseconds.
status.loadedbit 31Set in every report whose progress stands at one hundred, and in no other.
done1-byte bits
done.loadedbit 0Set where the seat has loaded; a client then shows no time left.
done.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-133

In 1.0.0.134–3.1.0.0

Carried on transient, sent by the server, unreliable, under these commands:

BuildsCommand
1.0.0.134158
1.0.0.135160
1.0.0.136–1.0.0.137158
1.0.0.138160
1.0.0.139–1.0.0.143159
1.0.0.144–1.0.0.149149
1.0.0.150–3.1.0.0146
FieldTypeWhat it is
clientIdu32The client id this is about.
playeri64Who occupies it.
progressf32How far through loading it is, from zero to one hundred.
secondsLeftf32How much longer it is expected to take, in seconds.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30Round trip time the client measures, in milliseconds.
status.loadedbit 31Set in every report whose progress stands at one hundred, and in no other.
Vectors (7)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SpawnStart

What a server sends to open the run of units a client is about to be told about. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131101
1.0.0.132–1.0.0.137102
1.0.0.138–1.0.0.143104
1.0.0.144–1.0.0.14998
1.0.0.150–3.1.0.095
FieldTypeWhat it is
botsOnOneSideu8How many bots play on side 100. A client adds it to that side’s head count, which picks the set of spawn positions and facings it places champions by (CreateChampion’s spawnIndex).
botsOnTheOtheru8The other. It shares the reading above.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SpawnEnd

What a server sends to close the run of units it opened with. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14318
1.0.0.144–3.1.0.017

No body.

Vectors (1)

one-on-1-0-0-143

StartGame

What a server sends to begin play. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 95 on events, sent by the server, reliable.

A client ignores it once the match has ended or while it is leaving, and acts on it again where it is repeated.

FieldTypeWhat it is
rules1-byte bits
rules.pausingbit 0Where set, a client announces that pausing is allowed, except while playing a replay. It keeps nothing of it.
rules.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.137

Command 96 on events, sent by the server, reliable.

A client past spawning ignores it.

FieldTypeWhat it is
rules1-byte bits
rules.pausingbit 0Set where holding the match is allowed.
rules.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 98 on events, sent by the server, reliable.

A client skips the start only once the match has ended or it is leaving: after GameEnded, Shutdown or an exit. Before, during and after spawning, it starts again.

FieldTypeWhat it is
rules1-byte bits
rules.pausingbit 0Set to have a client that is not watching the match show a notice in its chat that pausing is allowed. A client keeps nothing of it, and it limits no pausing.
rules.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.145

Command 92 on events, sent by the server, reliable.

A client past spawning ignores it.

FieldTypeWhat it is
rules1-byte bits
rules.pausingbit 0Set where holding the match is allowed.
rules.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-145

In 1.0.0.146

Command 92 on events, sent by the server, reliable.

A client past spawning ignores it.

FieldTypeWhat it is
rules1-byte bits
rules.pausingbit 0Set where holding the match is allowed.
rules.noticebit 1Set to post a notice in chat as play begins.
rules.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.14992
1.0.0.150–3.1.0.089

A client past spawning ignores it.

FieldTypeWhat it is
rules1-byte bits
rules.pausingbit 0Set where holding the match is allowed.
rules.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ClientReady

What a client sends once it has loaded and is ready to play. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.132

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13185
1.0.0.13286

No body.

Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-132

In 1.0.0.133–1.0.0.137

Command 86 on requests, sent by the client, reliable.

FieldTypeWhat it is
maskedStatusu32It varies from client to client; a server ignores it.
masku32A random value the client picks to mask the one above.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 88 on requests, sent by the client, reliable.

It comes unprompted, before any start of play reaches the client.

FieldTypeWhat it is
maskedStatusu32A status, masked. Taken by exclusive or with mask and with the client’s own champion id, it gives 262917615 where the client’s check of itself found a fault, and any other value otherwise. While watching a match, a client leaves this and mask unset, so they carry no meaning.
masku32A random value the client picks to mask the one above.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144

Command 82 on requests, sent by the client, reliable.

FieldTypeWhat it is
maskedStatusu32It varies from client to client; a server ignores it.
masku32A random value the client picks to mask the one above.
Vectors (1)

one-on-1-0-0-144

In 1.0.0.145–1.0.0.149

Command 82 on requests, sent by the client, reliable.

The tip fields carry VersionSync’s tip bytes, each one outside its valid range negated (0 as -128), and tips cleared where any is. Playing a replay, a client sends all four as zero.

FieldTypeWhat it is
maskedStatusu32It varies from client to client; a server ignores it.
masku32A random value the client picks to mask the one above.
tipChosenu8Which tip the client is set to show.
tipColouru8How it is coloured.
tipDurationu8How long it stays, as an entry among the display times in the client’s own settings rather than a length of time.
loadingTipsu8As VersionSync gave it.
playingTipsu8As VersionSync gave it.
Vectors (1)

one-on-1-0-0-149

In 1.0.0.150–3.1.0.0

Command 79 on requests, sent by the client, reliable.

The tip fields carry VersionSync’s tip bytes, each one outside its valid range negated (0 as -128), and tips cleared where any is. Playing a replay, a client sends all four as zero.

FieldTypeWhat it is
maskedStatusu32It varies from client to client; a server ignores it.
masku32A random value the client picks to mask the one above.
tipChosenu8Which tip the client is set to show.
tipColouru8How it is coloured.
tipDurationu8How long it stays, as an entry among the display times in the client’s own settings rather than a length of time.
settings1-byte bits
settings.tipsbit 0Set while tips are wanted at all.
settings.reportingbit 1Set while the client reports on itself.
settings.loadingTipsbit 2Set while tips are wanted while loading.
settings.playingTipsbit 3Set while tips are wanted during play.
settings.debugbit 4Set while the client runs in a debugging state.
settings.unusedbit 5 to 7A client returns them as the server sent them.
Vectors (1)

one-on-1-0-0-154

CharacterSelected

What a client sends once a character is settled on. It carries nothing of its own. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131198
1.0.0.132–1.0.0.134199
1.0.0.135201
1.0.0.136–1.0.0.137199
1.0.0.138201
1.0.0.139–1.0.0.140200
1.0.0.141–1.0.0.143202
1.0.0.144–1.0.0.149190
1.0.0.150–3.1.0.0187

No body.

Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

MatchIdentity

What a server sends to tell a client which match this is and what its player is called. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.149

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131152
1.0.0.132–1.0.0.134153
1.0.0.135155
1.0.0.136–1.0.0.137153
1.0.0.138155
1.0.0.139–1.0.0.143154
1.0.0.144–1.0.0.149146
FieldTypeWhat it is
gamei64The match’s identifier.
nametext, 128 bytesThe player’s name, padded with zero bytes.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149

In 1.0.0.150–3.1.0.0

Command 143 on events, sent by the server, reliable.

FieldTypeWhat it is
gamei64The match’s identifier.
platformtext, 32 bytesWhich platform the match belongs to, written and padded as above.
nametext, 128 bytesThe player’s name, padded with zero bytes.
Vectors (1)

one-on-1-0-0-154

MatchStarted

What a server sends to set when the match began. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131202
1.0.0.132–1.0.0.134203
1.0.0.135205
1.0.0.136–1.0.0.137203
1.0.0.138205
1.0.0.139–1.0.0.140204
1.0.0.141–1.0.0.143206
1.0.0.144–1.0.0.149194
1.0.0.150–3.1.0.0191
FieldTypeWhat it is
startedAtf32When the match began, as a moment on the match clock, in seconds.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ModulePacket

What a client sends to carry data from a module of its own, often a message of its own that the module has taken over. A server need do nothing with it. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 237 on requests, sent by the client, reliable.

FieldTypeWhat it is
kindu16999 where the client passed the data through its own transform, 2 where it did not. A client sends both under command 237; a second sender sends 999 under 236. Nothing is sent under 238.
lengthu16How many bytes of the data below carry anything, at most 1024.
databytes, 1024The data, in its first length bytes; a client leaves the rest unwritten.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.134

Command 238 on requests, sent by the client, reliable.

FieldTypeWhat it is
kindu16999 where the client passed the data through its own transform, 2 where it did not. A client sends kind 999 under command 237 and kind 2 under 238.
lengthu16How many bytes of the data below carry anything, at most 1024.
databytes, 1024The data, in its first length bytes; a client leaves the rest unwritten.
Vectors (1)

one-on-1-0-0-134

In 1.0.0.135–1.0.0.139

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.135235
1.0.0.136–1.0.0.137233
1.0.0.138235
1.0.0.139234
FieldTypeWhat it is
kindu16999 where the client passed the data through its own transform, 2 where it did not.
lengthu16How many bytes of the data below carry anything, at most 1024.
databytes, 1024The data, in its first length bytes; a client leaves the rest unwritten.
Vectors (4)

one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-139

In 1.0.0.140

Command 234 on requests, sent by the client, reliable.

FieldTypeWhat it is
kindu8What the data is for.
extrau8The first byte of the module’s data from one sender, the command itself from the others; nothing a server needs.
lengthu16How many bytes of data follow; at most 1024.
databytes, sized by lengthData for a module of the client’s own, which the message only carries.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143236
1.0.0.144–1.0.0.149223
1.0.0.150–3.1.0.0220
FieldTypeWhat it is
kindu8What the data is for.
lengthu16How many bytes of data follow; at most 1024.
databytes, sized by lengthData for a module of the client’s own, which the message only carries.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ResyncEnded

What a server sends to end the resynchronising a client began on its own Reconnected, after which it takes spawns again as they come.

Definition.

In 1.0.0.130–1.0.0.142

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13173
1.0.0.132–1.0.0.13774
1.0.0.138–1.0.0.14275

No body.

Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-142

StatsRequest

What a client sends about itself. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.137

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13189
1.0.0.132–1.0.0.13790

No body.

Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 92 on requests, sent by the client, reliable.

It carries nothing of its own. A client sends it from its score panel.

No body.

Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14986
1.0.0.150–3.1.0.083

No body.

Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

Units

How a server puts objects on the field and takes them away: champions, minions, neutral monsters, turrets, pets, markers and props. What a unit then does is in Movement, Combat and Spells, and what it is worth in Replication.

Every object is named by a net id, and Objects and identifiers says what removes each kind of object.

Creating

Each kind of object has its own message:

In 1.0.0.138–3.1.0.0

Several of these arrive on their own or inside the EnterSight that brings the unit into view (see Vision): a client takes either.

CharacterPreload has a client load a character’s art ahead of need.

Changing and removing

TeamChanged moves a unit to another side, and ChampionRemoved takes a champion out of the world. A unit’s death is in Combat.

Bots

A server can tell a client what a bot is thinking (BotDebug), weighing (BotTargets) or doing (BotState). None of them changes what a player sees.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

CreateChampion

What a server sends to put a champion on the field. The header carries zero or names the object this is about; a client accepts either.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13179
1.0.0.132–1.0.0.13780

The champion takes the id in champion, not the header’s; a client first removes any object holding that id. For the client’s own seat, name also becomes its own player’s name. A client drops the message while its map’s navigation data is unloaded, as early in a reconnection.

FieldTypeWhat it is
championu32The name the champion answers to, so later messages can name it.
clientIdu32The client id of the player the champion belongs to, or 4294967295 where it belongs to none, as a bot’s does. A client takes the champion carrying its own client id as its own.
nodeu8Which network node the object belongs to, in a field of its own.
skillLevelu8It has no effect.
sideu8Nonzero for side 100, zero for side 200.
botu8Nonzero where a bot plays the seat; its shown name is then the client’s own bot name for asset, and name has no effect.
ranku8It has no effect.
spawnIndexu8Where the champion first stands and faces. From 0 to 5, its side’s base position plus the offset the map sets for the side’s head count (players and bots) and this index plus one, facing as the map sets for them. A client works out the head count itself, counting SpawnStart’s bots in it. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.
skini32Which look it wears.
nametext, 128 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 40 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.142

Command 82 on events, sent by the server, reliable.

The champion takes the id in champion, not the header’s; a client first removes any object holding that id. For the client’s own seat, name also becomes its own player’s name. A client drops the message while its map’s navigation data is unloaded, as early in a reconnection. It arrives on its own and also inside EnterSight.

FieldTypeWhat it is
championu32The name the champion answers to, so later messages can name it.
clientIdu32The client id of the player the champion belongs to, or 4294967295 where it belongs to none, as a bot’s does. A client takes the champion carrying its own client id as its own.
nodeu8Which network node the object belongs to, in a field of its own.
skillLevelu8It has no effect.
sideu8Nonzero for side 100, zero for side 200.
botu8Nonzero where a bot plays the seat; its shown name is then the client’s own bot name for asset, and name has no effect.
ranku8It has no effect.
spawnIndexu8Where the champion first stands and faces. From 0 to 5, its side’s base position plus the offset the map sets for the side’s head count (players and bots) and this index plus one, facing as the map sets for them. A client works out the head count itself, counting SpawnStart’s bots in it. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.
skini32Which look it wears.
nametext, 128 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 40 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (1)

one-on-1-0-0-142

In 1.0.0.143–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.14382
1.0.0.144–1.0.0.14676

The champion takes the id in champion, not the header’s; a client first removes any object holding that id. For the client’s own seat, name also becomes its own player’s name. A client drops the message while its map’s navigation data is unloaded, as early in a reconnection. It arrives on its own and also inside EnterSight.

FieldTypeWhat it is
championu32The name the champion answers to, so later messages can name it.
clientIdu32The client id of the player the champion belongs to, or 4294967295 where it belongs to none, as a bot’s does. A client takes the champion carrying its own client id as its own.
nodeu8Which network node the object belongs to, in a field of its own.
skillLevelu8It has no effect.
sideu8Nonzero for side 100, zero for side 200.
botu8Nonzero where a bot plays the seat; its shown name is then the client’s own bot name for asset, and name has no effect.
ranku8It has no effect.
spawnIndexu8Where the champion first stands and faces. From 0 to 5, its side’s base position plus the offset the map sets for the side’s head count (players and bots) and this index plus one, facing as the map sets for them. A client works out the head count itself, counting SpawnStart’s bots in it. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.
skini32Which look it wears.
nametext, 128 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 40 bytesThe name the client loads its art and sound under, written and padded as above.
stayDownf32How long it stays down, in seconds, where it is already down.
downForf32How long it has already been down, in seconds.
how4-byte bits
how.downbit 0 to 20 alive; 1 dead but acting on (the state a champion that keeps acting after death is in), where stayDown and downFor have no effect; 2 down, having been down for downFor with stayDown left. A client takes 3 to 7 as 0.
how.unusedbit 3 to 31Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.14976
1.0.0.150–3.1.0.073

The champion takes the id in champion, not the header’s; a client first removes any object holding that id. For the client’s own seat, name also becomes its own player’s name. A client drops the message while its map’s navigation data is unloaded, as early in a reconnection. It arrives on its own and also inside EnterSight.

FieldTypeWhat it is
championu32The name the champion answers to, so later messages can name it.
clientIdu32The client id of the player the champion belongs to, or 4294967295 where it belongs to none, as a bot’s does. A client takes the champion carrying its own client id as its own.
nodeu8Which network node the object belongs to, in a field of its own.
skillLevelu8It has no effect.
sideu8Nonzero for side 100, zero for side 200.
botu8Nonzero where a bot plays the seat; its shown name is then the client’s own bot name for asset, and name has no effect.
ranku8It has no effect.
spawnIndexu8Where the champion first stands and faces. From 0 to 5, its side’s base position plus the offset the map sets for the side’s head count (players and bots) and this index plus one, facing as the map sets for them. A client works out the head count itself, counting SpawnStart’s bots in it. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.
skini32Which look it wears.
nametext, 128 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 40 bytesThe name the client loads its art and sound under, written and padded as above.
stayDownf32How long it stays down, in seconds, where it is already down.
downForf32How long it has already been down, in seconds.
how1-byte bits
how.downbit 0 to 20 alive; 1 dead but acting on (the state a champion that keeps acting after death is in), where stayDown and downFor have no effect; 2 down, having been down for downFor with stayDown left. A client takes 3 to 7 as 0.
how.unusedbit 3 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SpawnBot

What a server sends to create a champion played by a bot. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 216 on events, sent by the server, reliable.

A client deletes no object first: where one already holds the id, both answer to it.

FieldTypeWhat it is
unitu32The id the bot’s champion takes.
nodeu8The network node it belongs to.
xf32Where it appears, in world units.
yf32Its height, in world units.
zf32Where it appears, in world units.
ranku8The bot’s rank.
sides4-byte bitsIts side.
sides.sidebit 0 to 8Its side: 100, 200 or 300.
sides.unusedbit 9 to 31Unused; a server writes zero.
skini32Which skin.
nametext, 64 bytesThe name shown for it. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesThe champion’s character name, which is also its unique name.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134217
1.0.0.135219
1.0.0.136–1.0.0.137217
1.0.0.138219

A client first deletes any object it holds under the same id.

FieldTypeWhat it is
unitu32The id the bot’s champion takes.
nodeu8The network node it belongs to.
xf32Where it appears, in world units.
yf32Its height, in world units.
zf32Where it appears, in world units.
ranku8The bot’s rank.
sides4-byte bitsIts side.
sides.sidebit 0 to 8Its side: 100, 200 or 300.
sides.unusedbit 9 to 31Unused; a server writes zero.
skini32Which skin.
nametext, 64 bytesThe name shown for it. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesThe champion’s character name, which is also its unique name.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 218 on events, sent by the server, reliable.

A client deletes no object first: where one already holds the id, both answer to it.

FieldTypeWhat it is
unitu32The id the bot’s champion takes.
nodeu8The network node it belongs to.
xf32Where it appears, in world units.
yf32Its height, in world units.
zf32Where it appears, in world units.
ranku8The bot’s rank.
sides4-byte bitsIts side.
sides.sidebit 0 to 8Its side: 100, 200 or 300.
sides.unusedbit 9 to 31Unused; a server writes zero.
skini32Which skin.
nametext, 64 bytesThe name shown for it. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesThe champion’s character name, which is also its unique name.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143220
1.0.0.144–1.0.0.146207

A client first deletes any object it holds under the same id.

FieldTypeWhat it is
unitu32The id the bot’s champion takes.
nodeu8The network node it belongs to.
xf32Where it appears, in world units.
yf32Its height, in world units.
zf32Where it appears, in world units.
ranku8The bot’s rank.
sides4-byte bitsIts side.
sides.sidebit 0 to 8Its side: 100, 200 or 300.
sides.unusedbit 9 to 31Unused; a server writes zero.
skini32Which skin.
nametext, 64 bytesThe name shown for it. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesThe champion’s character name, which is also its unique name.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149207
1.0.0.150–3.1.0.0204

A client first deletes any object it holds under the same id.

FieldTypeWhat it is
unitu32The id the bot’s champion takes.
nodeu8The network node it belongs to.
xf32Where it appears, in world units.
yf32Its height, in world units.
zf32Where it appears, in world units.
ranku8The bot’s rank.
sides2-byte bitsIts side.
sides.sidebit 0 to 8Its side: 100, 200 or 300.
sides.unusedbit 9 to 15Unused; a server writes zero.
skini32Which skin.
nametext, 64 bytesThe name shown for it. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesThe champion’s character name, which is also its unique name.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SpawnFromBarracks

What a server sends to put a unit on the field from the place its side sends them out of.

Definition.

In 1.0.0.130–1.0.0.142

Command 3 on events, sent by the server, reliable.

It arrives on its own and also inside EnterSight. The header names the barracks sending the unit out: only a barracks acts on the message, and unit names the new unit.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the unit belongs to, in a field of its own rather than as part of the name that follows.
waveu8Which run of units it belongs to.
kindu8What sort of unit it is.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
Vectors (1)

one-on-1-0-0-142

In 1.0.0.143–3.1.0.0

Command 3 on events, sent by the server, reliable.

It arrives on its own and also inside EnterSight. The header names the unit this is about.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the unit belongs to, in a field of its own rather than as part of the name that follows.
barracksu32The place it came out of, by the identifier its name gives as Objects and identifiers works it out. On map 1 that is a spawn point such as __P_Order_Spawn_Barracks__C01, not the inhibitor named Barracks_T1_C1: named by the inhibitor, a client creates nothing.
waveu8Which run of units it belongs to.
kindu8What sort of unit it is.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.

SpawnUnit

What a server sends to put a minion-like unit on the field, such as a ward.

Definition.

In 1.0.0.130–1.0.0.139

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131128
1.0.0.132–1.0.0.137129
1.0.0.138–1.0.0.139131

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
team4-byte bits
team.teambit 0 to 8Which side, as a team number.
team.unusedbit 9 to 31Unused; a server writes zero.
flags1-byte bits
flags.ignoreCollisionbit 0Set where it does not block the way.
flags.wardbit 1Set where it is a ward.
flags.botbit 2Set where it is driven by the client’s own decisions.
flags.targetablebit 3Set where the unit can be aimed at.
flags.unusedbit 4 to 7Unused; a server writes zero.
targetableToTeamu32Read, then overwritten; a client keeps nothing of it.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-139

In 1.0.0.140

Command 131 on events, sent by the server, reliable.

A client deletes no object first: where one already holds the new unit’s id, both answer to it. It does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names no object a client reads: a server names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
team4-byte bits
team.teambit 0 to 8Which side, as a team number.
team.unusedbit 9 to 31Unused; a server writes zero.
flags1-byte bits
flags.ignoreCollisionbit 0Set where it does not block the way. It takes effect only where bot is clear.
flags.wardbit 1Set where it is a ward.
flags.laneMinionbit 2Unused here; a client reads nothing in this bit.
flags.botbit 3Set where it is driven by the client’s own decisions.
flags.targetablebit 4Set where the unit can be aimed at.
flags.unusedbit 5 to 7Unused; a server writes zero.
targetableToTeamu32Read, then overwritten; a client keeps nothing of it.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–1.0.0.142

Command 131 on events, sent by the server, reliable.

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
team4-byte bits
team.teambit 0 to 8Which side, as a team number.
team.unusedbit 9 to 31Unused; a server writes zero.
flags1-byte bits
flags.ignoreCollisionbit 0Set where it does not block the way.
flags.wardbit 1Set where it is a ward.
flags.laneMinionbit 2Set where it is a lane minion.
flags.botbit 3Set where it is driven by the client’s own decisions.
flags.targetablebit 4Set where the unit can be aimed at.
flags.unusedbit 5 to 7Unused; a server writes zero.
targetableToTeamu32Read, then overwritten; a client keeps nothing of it.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (1)

one-on-1-0-0-142

In 1.0.0.143–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.143131
1.0.0.144–1.0.0.146125

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
team4-byte bits
team.teambit 0 to 8Which side, as a team number.
team.unusedbit 9 to 31Unused; a server writes zero.
flags1-byte bits
flags.ignoreCollisionbit 0Set where it does not block the way.
flags.wardbit 1Set where it is a ward.
flags.laneMinionbit 2Set where it is a lane minion.
flags.botbit 3Set where it is driven by the client’s own decisions.
flags.unusedbit 4 to 7Unused; a server writes zero.
targetableToTeamu32Which sides can aim at it, as a set of bits.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149125
1.0.0.150–3.1.0.0122

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
flags2-byte bitsWhat sort of unit it is.
flags.teambit 0 to 8Which side, as a team number.
flags.ignoreCollisionbit 9Set where it does not block the way.
flags.wardbit 10Set where it is a ward.
flags.laneMinionbit 11Set where it is a lane minion.
flags.botbit 12Set where it is driven by the client’s own decisions.
flags.unusedbit 13 to 15Unused; a server writes zero.
targetableToTeamu32Which sides can aim at it, as a set of bits.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

CreateNeutral

What a server sends to put a unit that belongs to no side on the field. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131102
1.0.0.132–1.0.0.137103

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. A client drops the message while its map’s navigation data is unloaded.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
campIcontext, 64 bytesThe name of the icon the minimap shows at the camp, written in full and padded with zero bytes to the width above; empty shows none. A client uses it only where it creates the camp.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first, and to no camp otherwise.
Vectors (2)

inactive-on-1-0-0-131, inactive-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 105 on events, sent by the server, reliable.

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. A client drops the message while its map’s navigation data is unloaded. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
campIcontext, 64 bytesThe name of the icon the minimap shows at the camp, written in full and padded with zero bytes to the width above; empty shows none. A client uses it only where it creates the camp.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. Where the client does not know the camp, it creates it at the unit’s own position (atX, atY, atZ), with campIcon, effectSide and revealEvent, and adds the unit to it. Where it knows the camp, a nonzero effectSide changes the camp’s side.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
Vectors (1)

inactive-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14999
1.0.0.150–3.1.0.096

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. A client drops the message while its map’s navigation data is unloaded. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
campIcontext, 64 bytesThe name of the icon the minimap shows at the camp, written in full and padded with zero bytes to the width above; empty shows none. A client uses it only where it creates the camp.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first, and to no camp otherwise.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
Vectors (2)

inactive-on-1-0-0-149, inactive-on-1-0-0-154

SpawnPet

What a server sends to put a pet on the field.

Definition.

In 1.0.0.130–1.0.0.137

Command 60 on events, sent by the server, reliable.

The header names the owner, and a client handles the message only where it holds that unit. It kills the owner’s earlier pet if that lives, then makes the pet under pet and node, replacing its script with script, gives it the owner’s seat, and takes it as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it. duration has no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
petu32The name the new pet answers to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one. A client uses it only where the owner is on its own side.
durationf32How long it lasts, in seconds. A client reads nothing of it.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner is on its own side.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.unusedbit 2 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
minimapIconu8Set where it shows on the minimap. Any nonzero value sets it.

In 1.0.0.138–1.0.0.142

Command 60 on events, sent by the server, reliable.

A client spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat; and registers it under the header’s id and node. It deletes no object first; where one already holds the header’s id, both answer to it. duration has no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The unit it belongs to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one. A client uses it only where the owner belongs to its own network node, so only for its own units and never while watching a match.
durationf32How long it lasts, in seconds. A client reads nothing of it.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node, as for spellLevel.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set to tie the pet to the unit clone names. A client ties it to clone whatever this bit says, so the bit adds nothing.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.unusedbit 2 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
minimapIconu8Set where it shows on the minimap. Any nonzero value sets it.
Vectors (1)

one-on-1-0-0-138

In 1.0.0.143

Command 60 on events, sent by the server, reliable.

A client deletes any object holding the header’s id; spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat; and registers it under the header’s id and node. duration has no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The unit it belongs to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one. A client uses it only where the owner is on its own side.
durationf32How long it lasts, in seconds. A client reads nothing of it.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner is on its own side.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.unusedbit 2 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
minimapIconu8Set where it shows on the minimap. Any nonzero value sets it.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 57 on events, sent by the server, reliable.

A client deletes any object holding the header’s id; spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat, its gold going to the owner; and registers it under the header’s id and node. spellLevel, duration and effect have no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The unit it belongs to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one.
durationf32How long it lasts, in seconds.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.unusedbit 2 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
minimapIconu8Set where it shows on the minimap. Any nonzero value sets it.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.14957
1.0.0.150–3.1.0.054

A client deletes any object holding the header’s id; spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat, its gold going to the owner; and registers it under the header’s id and node. spellLevel, duration and effect have no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The unit it belongs to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one.
durationf32How long it lasts, in seconds.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.minimapIconbit 2Set where it shows on the minimap.
flags.unusedbit 3 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
Vectors (1)

one-on-1-0-0-149

CreateTurret

What a server sends to put a turret on the field. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131165
1.0.0.132–1.0.0.134166
1.0.0.135168
1.0.0.136–1.0.0.137166

A client matches name exactly against the map’s turrets. With no match it only removes any object holding the id; a matched turret missing or dead is rebuilt before it takes the id.

FieldTypeWhat it is
turretu32The name the turret answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
nametext, 64 bytesWhat this turret is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
state1-byte bits
state.targetablebit 0Set where the turret can be aimed at.
state.unusedbit 1 to 7Unused; a server writes zero.
targetableToTeamu32Read, then overwritten; a client keeps nothing of it.
Vectors (4)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136

In 1.0.0.138

Command 168 on events, sent by the server, reliable.

A client matches name exactly against the map’s turrets. With no match it only removes any object holding the id; a matched turret missing or dead is rebuilt before it takes the id. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
turretu32The name the turret answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
nametext, 64 bytesWhat this turret is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
state1-byte bits
state.targetablebit 0Set where the turret can be aimed at.
state.unusedbit 1 to 7Unused; a server writes zero.
targetableToTeamu32Read, then overwritten; a client keeps nothing of it.
Vectors (1)

one-on-1-0-0-138

In 1.0.0.139–1.0.0.142

Command 167 on events, sent by the server, reliable.

A client matches name exactly against the map’s turrets; a matched turret missing or dead is rebuilt before it takes the id. A server names one of the map’s turrets: with no match, or on a map with none, a client fails. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
turretu32The name the turret answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
nametext, 64 bytesWhat this turret is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
state1-byte bits
state.targetablebit 0Set where the turret can be aimed at.
state.unusedbit 1 to 7Unused; a server writes zero.
targetableToTeamu32Read, then overwritten; a client keeps nothing of it.
Vectors (1)

one-on-1-0-0-142

In 1.0.0.143–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.143167
1.0.0.144–1.0.0.149157
1.0.0.150–3.1.0.0154

A client matches name exactly against the map’s turrets. With no match it only removes any object holding the id; a matched turret missing or dead is rebuilt before it takes the id. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
turretu32The name the turret answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
nametext, 64 bytesWhat this turret is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

CreateFollower

What a server sends to put an object on the field that follows a unit. The header names the unit followed.

Definition.

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149241
1.0.0.150–3.1.0.0238
FieldTypeWhat it is
followeru32The name the new object answers to.
nodeu8Which network node it belongs to.
skini32Which look it wears.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

FollowerMaster

What a server sends to change which unit a following object follows. The header names the follower.

Definition.

In 1.0.0.145–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.145–1.0.0.149242
1.0.0.150–3.1.0.0239
FieldTypeWhat it is
masteru32The unit it now follows; one no unit answers to leaves it following none.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

MapProp

What a server sends to place a prop on the map: a thing that stands there and is looked at rather than one that acts. The header carries zero or names the object this is about, and a client accepts either.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131217
1.0.0.132–1.0.0.134218
1.0.0.135220
1.0.0.136–1.0.0.137218
1.0.0.138220

A client takes the prop’s id from prop, not from the header. A scenery prop is turned by pitch, then yaw, then roll, each about the fixed world axes; none is negated or wrapped. An active prop only turns about the up axis, to face the ground direction its x and z give, and faces +z where both are zero.

FieldTypeWhat it is
propu32The name the prop answers to, so later messages can name it.
nodeu8Which network node the object belongs to. It is a field of its own, not the leading byte of the name beside it.
atXf32Where the prop stands, along one ground axis, in world units.
atYf32Where the prop stands, in height, in world units.
atZf32Where the prop stands, along the other ground axis, in world units.
rotationXf32For scenery, the pitch in degrees: a turn about the x axis, positive turning +y toward +z. For an active prop, x of the direction it faces.
rotationYf32For scenery, the yaw in degrees: a turn about the up axis, positive turning +z toward +x, so yaw 0 faces +z and 90 faces +x. For an active prop, y of its facing, which does not turn it.
rotationZf32For scenery, the roll in degrees: a turn about the z axis, positive turning +x toward +y. For an active prop, z of the direction it faces.
offsetXf32What is added to where it stands, along one ground axis, in world units.
offsetYf32What is added to where it stands, in height, in world units.
offsetZf32What is added to where it stands, along the other ground axis, in world units.
side4-byte bitsThe side the prop belongs to. A server sends 300, the neutral side.
side.sidebit 0 to 8The prop’s side.
side.unusedbit 9 to 31Unused; a server writes zero.
skillLevelu8Unused; a server writes zero.
ranku8How far it is advanced.
kindu8What sort of prop it is; a client makes nothing for any other value. A client first deletes any object holding the prop’s id, whatever the kind. Values: 0 active, 1 scenery.
nametext, 64 bytesWhat this prop is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (5)

active-on-1-0-0-131, active-on-1-0-0-134, active-on-1-0-0-135, active-on-1-0-0-136, active-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 219 on events, sent by the server, reliable.

A client takes the prop’s id from prop, not from the header. A scenery prop is turned by pitch, then yaw, then roll, each about the fixed world axes; none is negated or wrapped. An active prop only turns about the up axis, to face the ground direction its x and z give, and faces +z where both are zero.

FieldTypeWhat it is
propu32The name the prop answers to, so later messages can name it.
nodeu8Which network node the object belongs to. It is a field of its own, not the leading byte of the name beside it.
atXf32Where the prop stands, along one ground axis, in world units.
atYf32Where the prop stands, in height, in world units.
atZf32Where the prop stands, along the other ground axis, in world units.
rotationXf32For scenery, the pitch in degrees: a turn about the x axis, positive turning +y toward +z. For an active prop, x of the direction it faces.
rotationYf32For scenery, the yaw in degrees: a turn about the up axis, positive turning +z toward +x, so yaw 0 faces +z and 90 faces +x. For an active prop, y of its facing, which does not turn it.
rotationZf32For scenery, the roll in degrees: a turn about the z axis, positive turning +x toward +y. For an active prop, z of the direction it faces.
offsetXf32What is added to where it stands, along one ground axis, in world units.
offsetYf32What is added to where it stands, in height, in world units.
offsetZf32What is added to where it stands, along the other ground axis, in world units.
side4-byte bitsThe side the prop belongs to. A server sends 300, the neutral side.
side.sidebit 0 to 8The prop’s side.
side.unusedbit 9 to 31Unused; a server writes zero.
skillLevelu8Unused; a server writes zero.
ranku8How far it is advanced.
kindu8What sort of prop it is; a client makes nothing for any other value. It deletes no object first: where one already holds the prop’s id, both stay. Values: 0 active, 1 scenery.
nametext, 64 bytesWhat this prop is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (1)

active-on-1-0-0-140

In 1.0.0.141–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143221
1.0.0.144–1.0.0.146208

A client takes the prop’s id from prop, not from the header. A scenery prop is turned by pitch, then yaw, then roll, each about the fixed world axes; none is negated or wrapped. An active prop only turns about the up axis, to face the ground direction its x and z give, and faces +z where both are zero.

FieldTypeWhat it is
propu32The name the prop answers to, so later messages can name it.
nodeu8Which network node the object belongs to. It is a field of its own, not the leading byte of the name beside it.
atXf32Where the prop stands, along one ground axis, in world units.
atYf32Where the prop stands, in height, in world units.
atZf32Where the prop stands, along the other ground axis, in world units.
rotationXf32For scenery, the pitch in degrees: a turn about the x axis, positive turning +y toward +z. For an active prop, x of the direction it faces.
rotationYf32For scenery, the yaw in degrees: a turn about the up axis, positive turning +z toward +x, so yaw 0 faces +z and 90 faces +x. For an active prop, y of its facing, which does not turn it.
rotationZf32For scenery, the roll in degrees: a turn about the z axis, positive turning +x toward +y. For an active prop, z of the direction it faces.
offsetXf32What is added to where it stands, along one ground axis, in world units.
offsetYf32What is added to where it stands, in height, in world units.
offsetZf32What is added to where it stands, along the other ground axis, in world units.
side4-byte bitsThe side the prop belongs to. A server sends 300, the neutral side.
side.sidebit 0 to 8The prop’s side.
side.unusedbit 9 to 31Unused; a server writes zero.
skillLevelu8Unused; a server writes zero.
ranku8How far it is advanced.
kindu8What sort of prop it is; a client makes nothing for any other value. A client first deletes any object holding the prop’s id, whatever the kind. Values: 0 active, 1 scenery.
nametext, 64 bytesWhat this prop is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (2)

active-on-1-0-0-143, active-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149208
1.0.0.150–3.1.0.0205

A client takes the prop’s id from prop, not from the header. A scenery prop is turned by pitch, then yaw, then roll, each about the fixed world axes; none is negated or wrapped. An active prop only turns about the up axis, to face the ground direction its x and z give, and faces +z where both are zero.

FieldTypeWhat it is
propu32The name the prop answers to, so later messages can name it.
nodeu8Which network node the object belongs to. It is a field of its own, not the leading byte of the name beside it.
atXf32Where the prop stands, along one ground axis, in world units.
atYf32Where the prop stands, in height, in world units.
atZf32Where the prop stands, along the other ground axis, in world units.
rotationXf32For scenery, the pitch in degrees: a turn about the x axis, positive turning +y toward +z. For an active prop, x of the direction it faces.
rotationYf32For scenery, the yaw in degrees: a turn about the up axis, positive turning +z toward +x, so yaw 0 faces +z and 90 faces +x. For an active prop, y of its facing, which does not turn it.
rotationZf32For scenery, the roll in degrees: a turn about the z axis, positive turning +x toward +y. For an active prop, z of the direction it faces.
offsetXf32What is added to where it stands, along one ground axis, in world units.
offsetYf32What is added to where it stands, in height, in world units.
offsetZf32What is added to where it stands, along the other ground axis, in world units.
side2-byte bitsThe side the prop belongs to. A server sends 300, the neutral side.
side.sidebit 0 to 8The prop’s side.
side.unusedbit 9 to 15Unused; a server writes zero.
skillLevelu8Unused; a server writes zero.
ranku8How far it is advanced.
kindu8What sort of prop it is; a client makes nothing for any other value. A client first deletes any object holding the prop’s id, whatever the kind. Values: 0 active, 1 scenery.
nametext, 64 bytesWhat this prop is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (2)

active-on-1-0-0-149, active-on-1-0-0-154

MapPropChanged

What a server sends to change something about a prop already on the map. The kind of change is named inside it, and the fields around the kind keep one layout whatever it is. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131218
1.0.0.132–1.0.0.134219
1.0.0.135221
1.0.0.136–1.0.0.137219
1.0.0.138221
FieldTypeWhat it is
nametext, 64 bytesA name: an animation’s, a particle’s or a look’s, by the change below. The name ends at its first zero byte; the bytes after it carry no meaning.
firstf32For animate, when the animation starts, in seconds of match time.
secondf32For animate, how long the animation runs, in seconds.
propu32The object changed.
valueu32A value the change uses: for animate, the animation’s flags; for linkEffect, the particle effect value; for look, the look’s number.
changeu8What changes. A client does nothing for any other value, nor where prop names no prop it holds. Values: 0 animate, 1 linkEffect, 2 look.
optionu8For animate, nonzero to remove the prop after the animation; for linkEffect, zero.
effectu8For linkEffect, which of the prop’s effect values to drive.
pointu8For linkEffect, which capture point drives it.
Vectors (5)

animate-on-1-0-0-131, animate-on-1-0-0-134, animate-on-1-0-0-135, animate-on-1-0-0-136, animate-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 220 on events, sent by the server, reliable.

FieldTypeWhat it is
nametext, 64 bytesA name: an animation’s or a particle’s, by the change below. The name ends at its first zero byte; the bytes after it carry no meaning.
firstf32For animate, when the animation starts, in seconds of match time.
secondf32For animate, how long the animation runs, in seconds.
propu32The object changed.
valueu32A value the change uses: for animate, the animation’s flags; for linkEffect, the particle effect value.
changeu8What changes. A client acts only on 0 and 1, and does nothing for any other value, nor where prop names no prop it holds. Values: 0 animate, 1 linkEffect, 2 look.
optionu8For linkEffect, zero: a client refuses the change otherwise. It has no effect for animate.
effectu8For linkEffect, which of the prop’s effect values to drive.
pointu8For linkEffect, which capture point drives it.
Vectors (1)

animate-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143222
1.0.0.144–1.0.0.149209
1.0.0.150–3.1.0.0206
FieldTypeWhat it is
nametext, 64 bytesA name: an animation’s, a particle’s or a look’s, by the change below. The name ends at its first zero byte; the bytes after it carry no meaning.
firstf32For animate, when the animation starts, in seconds of match time.
secondf32For animate, how long the animation runs, in seconds.
propu32The object changed.
valueu32A value the change uses: for animate, the animation’s flags; for linkEffect, the particle effect value; for look, the look’s number.
changeu8What changes. A client does nothing for any other value, nor where prop names no prop it holds. Values: 0 animate, 1 linkEffect, 2 look.
optionu8For animate, nonzero to remove the prop after the animation; for linkEffect, zero.
effectu8For linkEffect, which of the prop’s effect values to drive.
pointu8For linkEffect, which capture point drives it.
Vectors (3)

animate-on-1-0-0-143, animate-on-1-0-0-149, animate-on-1-0-0-154

TeamChanged

What a server sends to move a unit to another side. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131224
1.0.0.132–1.0.0.134225
1.0.0.135227
1.0.0.136–1.0.0.137225
1.0.0.138227
1.0.0.139–1.0.0.140226
1.0.0.141–1.0.0.143228
1.0.0.144–1.0.0.149215
1.0.0.150–3.1.0.0212
FieldTypeWhat it is
unitu32The unit.
sideu32Its new side.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

BotDebug

What a server sends describing what a bot is thinking. It changes nothing a client shows. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14321
1.0.0.144–3.1.0.019
FieldTypeWhat it is
nametext, 64 bytesThe bot’s name.
strategytext, 64 bytesIts strategy.
behaviourtext, 64 bytesIts behaviour.
tasktext, 64 bytesIts task.
state1text, 64 bytesA line of its state.
state2text, 64 bytesA line of its state.
state3text, 64 bytesA line of its state.
Vectors (1)

one-on-1-0-0-143

BotTargets

What a server sends naming the units a bot is weighing. It changes nothing a client shows. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131108
1.0.0.132–1.0.0.137109
1.0.0.138–1.0.0.143111
1.0.0.144–1.0.0.149105
1.0.0.150–3.1.0.0102
FieldTypeWhat it is
targets5 × u32Five units.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

BotState

What a server sends naming a bot’s state. It changes nothing a client shows. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131179
1.0.0.132–1.0.0.134180
1.0.0.135182
1.0.0.136–1.0.0.137180
1.0.0.138182
1.0.0.139–1.0.0.143181
1.0.0.144–1.0.0.149170
1.0.0.150–3.1.0.0167
FieldTypeWhat it is
statei32The state.
Vectors (8)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

TargetableChanged

What a server sends to change whether a unit can be aimed at, and by which sides. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.142

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131243
1.0.0.132–1.0.0.134244
1.0.0.135241
1.0.0.136–1.0.0.137239
1.0.0.138241
1.0.0.139–1.0.0.140240
1.0.0.141–1.0.0.142242
FieldTypeWhat it is
targetableu8Nonzero where the unit can be aimed at.
targetableToTeamu32Which sides can aim at it, as a set of bits, kept as it stands.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-142

Vision

What a client can see, and how a server tells it. A client draws what a server says it sees and nothing else: the fog of war a client draws is only a picture, and what lies inside it is whatever the server has brought into view.

Bringing a unit into view

A server brings a unit into what a client’s side can see with EnterSight.

EnterSight also states the unit’s items.

In 1.0.0.138–3.1.0.0

EnterSight can also carry whole messages of the game family, such as the CreateTurret or CreateNeutral that makes the unit, each taking effect as though it had arrived on its own.

In 1.0.0.140

EnterSight states everything a client needs to draw the unit at once: its looks, its shields, where it stands or which path it walks, and, in what follows, its health and resource. A body MAY end early where its layout marks the remaining parts as present only while bytes remain.

A client does not draw a champion that no EnterSight has placed: given only its CreateChampion, a client shows the champion’s portrait and spells and nothing on the field. One EnterSight after the CreateChampion draws it, with its name and health bar over it.

EnterLocalSight brings a unit into what one client alone can see. EnterTeamSight brings an object into the view of a whole side.

EnterLocalSight states the unit’s health.

In 1.0.0.140

EnterLocalSight states the unit’s resource beside its health.

Losing sight

LeaveSight and LeaveTeamSight take a unit out of the matching view, and leave it held (see Objects and identifiers). Particles come into and leave a side’s view with ParticleEnterTeamSight and ParticleLeaveTeamSight.

Regions

A region is a patch of ground with sight of its own, which can reveal hidden units within it. A server places one with RegionAdded or fastens one to a unit with RegionAttached, moves it with RegionMoved and takes it away with RegionRemoved; Objects and identifiers says how regions are named and when one ends. A region granting sight has a client clear its map’s cover over it.

A client makes only circular regions.

Drawing the fog

FogSet and FogToggled change how a client draws its fog of war.

A client draws its fog of war, or the map with no darkening, as FogSet and FogToggled say. Neither changes what the client can see.

Who is told what

A client acts on a message about whichever unit it names, its own champion or another, so what a client knows is whatever a server sends it. A server decides, message by message, which clients to tell.

UnitDiedOnMap, InventorySnapshotOnMap, FloatingTextOnMap and SpellSlotChangedForOwner do not exist, so a server sends both audiences of UnitDied, InventorySnapshot, FloatingText and SpellSlotChanged under the one command each.

Messages about a champion’s own state, its gold, its inventory, its spells’ levels, cooldowns and charges, and whether it can shop, are applied to the champion they name on any client that receives them, but a client shows some of them only for its own champion:

  • ShopEnabled changes the shop only for the client’s own champion.

GoldGained naming the client’s own champion, with an amount above 0 and a source the client holds, shows the gold over the source.

ItemAdded and InventorySlot announce a purchase only for the client’s own champion; an ally’s purchase is called out where the message asks for it.

A server SHOULD send SpellCooldown, SpellCharges and GoldGained about a champion only to the client whose champion it is.

A client also acts on what it is told about a unit it holds but cannot see:

  • a particle on a hidden unit is created but not drawn until the unit comes into view, unless the particle is bound to a target the client can see;
  • floating text over a hidden unit is dropped;
  • an animation plays on a hidden unit, which comes into view part way through it.

A server SHOULD NOT send a client what its side cannot see, beyond what keeps its world consistent.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

EnterSight

What a server sends when a unit comes into what a side can see. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131194
1.0.0.132–1.0.0.134195
1.0.0.135197
1.0.0.136–1.0.0.137195

It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
itemCountu8How many items the unit holds. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop, a building or a missile it reads nothing after the carried messages.
itemscount in itemCount × HeldItemThe items themselves.
viewrecordremaining setEverything else a client needs to draw the unit. A server sends it for a champion, a minion or another unit with a mind, which a client reads past the end of the message without it, and ends the message after the items for any other unit.
view.hasShieldsu8Whether the three figures below follow. A zero leaves them out. Values: 0 no, 1 yes.
view.magicShieldf32hasShields setHow much of the unit’s shielding turns aside one sort of damage.
view.physicalShieldf32hasShields setHow much turns aside the other.
view.shieldf32hasShields setHow much turns aside either.
view.movementStaterecordremaining setWhere the unit is and what it is doing on the ground. A client reads it for a champion or a minion, and a server sends it for those; for another unit with a mind the message ends before it.
view.movementState.movementKindu8What the unit is doing on the ground, and so which shape follows. A champion stated as standing, with the place and facing below, is drawn there with its name and health bar over it. One stated as moving is drawn at the first point of its path and walks the rest. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The name this statement of movement answers to.
view.movementState.movementMovementmovementKind = 2Where the unit is going. Movement says how a path is read.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Where the unit stands, along one ground axis, in world units.
view.movementState.atZf32movementKind = 3Where it stands, along the other, in world units.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (20)

a-fifth-on-1-0-0-131, a-fourth-on-1-0-0-131, a-third-on-1-0-0-131, another-on-1-0-0-131, one-on-1-0-0-131, a-fifth-on-1-0-0-134, a-fourth-on-1-0-0-134, a-third-on-1-0-0-134, another-on-1-0-0-134, one-on-1-0-0-134, a-fifth-on-1-0-0-135, a-fourth-on-1-0-0-135, a-third-on-1-0-0-135, another-on-1-0-0-135, one-on-1-0-0-135, a-fifth-on-1-0-0-136, a-fourth-on-1-0-0-136, a-third-on-1-0-0-136, another-on-1-0-0-136, one-on-1-0-0-136

In 1.0.0.138

Command 197 on events, sent by the server, reliable.

It states everything a client needs to draw the unit at once, and carries whole messages of the same family for anything a layout of its own cannot say.

FieldTypePresent whenWhat it is
carried2-byte bits
carried.sizebit 0 to 10How many bytes the messages below occupy in total.
carried.unusedbit 11 to 15Unused; a server writes zero.
messagessized by carried.size × CarriedMessageWhole messages of the same family, each behind its own length, that a client acts on as though they had arrived on their own.
itemCountu8How many items the unit holds. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop, a building or a missile it reads nothing after the carried messages.
itemscount in itemCount × HeldItemThe items themselves.
viewrecordremaining setEverything else a client needs to draw the unit. A server sends it for a champion, a minion or another unit with a mind, which a client reads past the end of the message without it, and ends the message after the items for any other unit.
view.hasShieldsu8Whether the three figures below follow. A zero leaves them out. Values: 0 no, 1 yes.
view.magicShieldf32hasShields setHow much of the unit’s shielding turns aside one sort of damage.
view.physicalShieldf32hasShields setHow much turns aside the other.
view.shieldf32hasShields setHow much turns aside either.
view.appearanceCountu32How many layers of look follow.
view.appearancecount in appearanceCount × AppearanceWhat the unit looks like, laid on in order.
view.targetableu8Whether the unit can be aimed at, kept as it stands; TargetableChanged sets the same.
view.targetableToTeamu32Which sides can aim at it, as a set of bits.
view.movementStaterecordremaining setWhere the unit is and what it is doing on the ground. A client reads it for a champion or a minion, and a server sends it for those; for another unit with a mind the message ends before it.
view.movementState.movementKindu8What the unit is doing on the ground, and so which shape follows. A champion stated as standing, with the place and facing below, is drawn there with its name and health bar over it. One stated as moving is drawn at the first point of its path and walks the rest. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The name this statement of movement answers to.
view.movementState.movementMovementmovementKind = 2Where the unit is going. Movement says how a path is read.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Where the unit stands, along one ground axis, in world units.
view.movementState.atZf32movementKind = 3Where it stands, along the other, in world units.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (5)

a-fifth-on-1-0-0-138, a-fourth-on-1-0-0-138, a-third-on-1-0-0-138, another-on-1-0-0-138, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 196 on events, sent by the server, reliable.

It states everything a client needs to draw the unit at once, and carries whole messages of the same family for anything a layout of its own cannot say.

FieldTypePresent whenWhat it is
carried2-byte bits
carried.sizebit 0 to 10How many bytes the messages below occupy in total.
carried.unusedbit 11 to 15Unused; a server writes zero.
messagessized by carried.size × CarriedMessageWhole messages of the same family, each behind its own length, that a client acts on as though they had arrived on their own.
itemCountu8How many items the unit holds. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop, a building or a missile it reads nothing after the carried messages.
itemscount in itemCount × HeldItemThe items themselves.
viewrecordremaining setEverything else a client needs to draw the unit. A server sends it for a champion, a minion or another unit with a mind, which a client reads past the end of the message without it, and ends the message after the items for any other unit.
view.hasShieldsu8Whether the three figures below follow. A zero leaves them out. Values: 0 no, 1 yes.
view.magicShieldf32hasShields setHow much of the unit’s shielding turns aside one sort of damage.
view.physicalShieldf32hasShields setHow much turns aside the other.
view.shieldf32hasShields setHow much turns aside either.
view.appearanceCountu32How many layers of look follow.
view.appearancecount in appearanceCount × AppearanceWhat the unit looks like, laid on in order.
view.targetableu8Whether the unit can be aimed at, kept as it stands; TargetableChanged sets the same.
view.targetableToTeamu32Which sides can aim at it, as a set of bits.
view.movementStaterecordremaining setWhere the unit is and what it is doing on the ground. A client reads it, after targetableToTeam, for every unit with a mind: a champion, a minion or another; a server sends it for those.
view.movementState.movementKindu8What the unit is doing on the ground, and so which shape follows. A champion stated as standing, with the place and facing below, is drawn there with its name and health bar over it. One stated as moving is drawn at the first point of its path and walks the rest. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The name this statement of movement answers to.
view.movementState.movementMovementmovementKind = 2Where the unit is going. Movement says how a path is read.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Where the unit stands, along one ground axis, in world units.
view.movementState.atZf32movementKind = 3Where it stands, along the other, in world units.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (5)

a-fifth-on-1-0-0-140, a-fourth-on-1-0-0-140, a-third-on-1-0-0-140, another-on-1-0-0-140, one-on-1-0-0-140

In 1.0.0.141–1.0.0.142

Command 198 on events, sent by the server, reliable.

It states everything a client needs to draw the unit at once, and carries whole messages of the same family for anything a layout of its own cannot say.

FieldTypePresent whenWhat it is
carried2-byte bits
carried.sizebit 0 to 10How many bytes the messages below occupy in total.
carried.unusedbit 11 to 15Unused; a server writes zero.
messagessized by carried.size × CarriedMessageWhole messages of the same family, each behind its own length, that a client acts on as though they had arrived on their own.
itemCountu8How many items the unit holds. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop, a building or a missile it reads nothing after the carried messages.
itemscount in itemCount × HeldItemThe items themselves.
viewrecordremaining setEverything else a client needs to draw the unit. A server sends it for a champion, a minion or another unit with a mind, which a client reads past the end of the message without it, and ends the message after the items for any other unit.
view.hasShieldsu8Whether the three figures below follow. A zero leaves them out. Values: 0 no, 1 yes.
view.magicShieldf32hasShields setHow much of the unit’s shielding turns aside one sort of damage.
view.physicalShieldf32hasShields setHow much turns aside the other.
view.shieldf32hasShields setHow much turns aside either.
view.appearanceCountu32How many layers of look follow.
view.appearancecount in appearanceCount × AppearanceWhat the unit looks like, laid on in order.
view.targetableu8Whether the unit can be aimed at, kept as it stands; TargetableChanged sets the same.
view.targetableToTeamu32Which sides can aim at it, as a set of bits.
view.movementStaterecordremaining setWhere the unit is and what it is doing on the ground. A client reads it for a champion or a minion, and a server sends it for those; for another unit with a mind the message ends before it.
view.movementState.movementKindu8What the unit is doing on the ground, and so which shape follows. A champion stated as standing, with the place and facing below, is drawn there with its name and health bar over it. One stated as moving is drawn at the first point of its path and walks the rest. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The name this statement of movement answers to.
view.movementState.movementMovementmovementKind = 2Where the unit is going. Movement says how a path is read.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Where the unit stands, along one ground axis, in world units.
view.movementState.atZf32movementKind = 3Where it stands, along the other, in world units.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (5)

a-fifth-on-1-0-0-141, a-fourth-on-1-0-0-141, a-third-on-1-0-0-141, another-on-1-0-0-141, one-on-1-0-0-141

In 1.0.0.143–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.143198
1.0.0.144–1.0.0.149186
1.0.0.150–3.1.0.0183

It states everything a client needs to draw the unit at once, and carries whole messages of the same family for anything a layout of its own cannot say.

FieldTypePresent whenWhat it is
carried2-byte bits
carried.sizebit 0 to 10How many bytes the messages below occupy in total.
carried.unusedbit 11 to 15Unused; a server writes zero.
messagessized by carried.size × CarriedMessageWhole messages of the same family, each behind its own length, that a client acts on as though they had arrived on their own.
itemCountu8How many items the unit holds. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop, a building or a missile it reads nothing after the carried messages.
itemscount in itemCount × HeldItemThe items themselves.
viewrecordremaining setEverything else a client needs to draw the unit. A server sends it for a champion, a minion or another unit with a mind, which a client reads past the end of the message without it, and ends the message after the items for any other unit.
view.hasShieldsu8Whether the three figures below follow. A zero leaves them out. Values: 0 no, 1 yes.
view.magicShieldf32hasShields setHow much of the unit’s shielding turns aside one sort of damage.
view.physicalShieldf32hasShields setHow much turns aside the other.
view.shieldf32hasShields setHow much turns aside either.
view.appearanceCountu32How many layers of look follow.
view.appearancecount in appearanceCount × AppearanceWhat the unit looks like, laid on in order.
view.movementStaterecordremaining setWhere the unit is and what it is doing on the ground. A client reads it for a champion or a minion, and a server sends it for those; for another unit with a mind the message ends before it.
view.movementState.movementKindu8What the unit is doing on the ground, and so which shape follows. A champion stated as standing, with the place and facing below, is drawn there with its name and health bar over it. One stated as moving is drawn at the first point of its path and walks the rest. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The name this statement of movement answers to.
view.movementState.movementMovementmovementKind = 2Where the unit is going. Movement says how a path is read.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Where the unit stands, along one ground axis, in world units.
view.movementState.atZf32movementKind = 3Where it stands, along the other, in world units.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (15)

a-fifth-on-1-0-0-143, a-fourth-on-1-0-0-143, a-third-on-1-0-0-143, another-on-1-0-0-143, one-on-1-0-0-143, a-fifth-on-1-0-0-149, a-fourth-on-1-0-0-149, a-third-on-1-0-0-149, another-on-1-0-0-149, one-on-1-0-0-149, a-fifth-on-1-0-0-154, a-fourth-on-1-0-0-154, a-third-on-1-0-0-154, another-on-1-0-0-154, one-on-1-0-0-154

EnterLocalSight

What a server sends when a unit comes into what one client can see. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131181
1.0.0.132–1.0.0.134182
1.0.0.135184
1.0.0.136–1.0.0.137182
FieldTypePresent whenWhat it is
vitalsrecordremaining setThe unit’s health. Where a client already holds the unit, it reads these from body offset 2 whatever the carried size, so a server carries messages here only where they create the unit, and sends the vitals right after them.
vitals.maxHealthf32What the unit’s health tops out at.
vitals.healthf32What its health stands at.
Vectors (8)

another-on-1-0-0-131, one-on-1-0-0-131, another-on-1-0-0-134, one-on-1-0-0-134, another-on-1-0-0-135, one-on-1-0-0-135, another-on-1-0-0-136, one-on-1-0-0-136

In 1.0.0.138–1.0.0.141

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138184
1.0.0.139–1.0.0.140183
1.0.0.141185
FieldTypePresent whenWhat it is
carried2-byte bits
carried.sizebit 0 to 10How many bytes the messages below occupy in total.
carried.unusedbit 11 to 15Unused; a server writes zero.
messagessized by carried.size × CarriedMessageWhole messages of the same family, each behind its own length, that a client acts on as though they had arrived on their own.
vitalsrecordremaining setThe unit’s health. Where a client already holds the unit, it reads these from body offset 2 whatever the carried size, so a server carries messages here only where they create the unit, and sends the vitals right after them.
vitals.maxHealthf32What the unit’s health tops out at.
vitals.healthf32What its health stands at.
Vectors (6)

another-on-1-0-0-138, one-on-1-0-0-138, another-on-1-0-0-140, one-on-1-0-0-140, another-on-1-0-0-141, one-on-1-0-0-141

In 1.0.0.142–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.142–1.0.0.143185
1.0.0.144–1.0.0.149174
1.0.0.150–3.1.0.0171
FieldTypePresent whenWhat it is
carried2-byte bits
carried.sizebit 0 to 10How many bytes the messages below occupy in total.
carried.unusedbit 11 to 15Unused; a server writes zero.
messagessized by carried.size × CarriedMessageWhole messages of the same family, each behind its own length, that a client acts on as though they had arrived on their own.
vitalsrecordremaining setThe unit’s health. A client reads it for a champion, a minion, a turret, a map prop or another unit with a mind, past the end of the message where it is missing, so a server sends it for those; for a building or a missile it ends after the carried messages.
vitals.maxHealthf32What the unit’s health tops out at.
vitals.healthf32What its health stands at.
Vectors (6)

another-on-1-0-0-143, one-on-1-0-0-143, another-on-1-0-0-149, one-on-1-0-0-149, another-on-1-0-0-154, one-on-1-0-0-154

EnterTeamSight

What a server sends when a unit comes into the view of a whole side. The header names the object this is about.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131238
1.0.0.132–1.0.0.134239
1.0.0.135236
1.0.0.136–1.0.0.137234
1.0.0.138236
1.0.0.139–1.0.0.140235
1.0.0.141–1.0.0.143237
1.0.0.144–1.0.0.149224
1.0.0.150–3.1.0.0221
FieldTypeWhat it is
sideu8Which side the unit came into or out of the view of.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

LeaveSight

What a server sends when a unit passes out of what a side can see. The header names the unit this is about.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13184
1.0.0.132–1.0.0.13785
1.0.0.138–1.0.0.14387
1.0.0.144–1.0.0.14981
1.0.0.150–3.1.0.078

No body.

Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

LeaveTeamSight

What a server sends when a unit passes out of the view of a whole side. The header names the object this is about.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131239
1.0.0.132–1.0.0.134240
1.0.0.135237
1.0.0.136–1.0.0.137235
1.0.0.138237
1.0.0.139–1.0.0.140236
1.0.0.141–1.0.0.143238
1.0.0.144–1.0.0.149225
1.0.0.150–3.1.0.0222
FieldTypeWhat it is
sideu8Which side the unit came into or out of the view of.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ParticleEnterTeamSight

What a server sends as a particle comes into what one side can see. The header carries zero.

Definition.

In 1.0.0.139–1.0.0.140

Command 237 on events, sent by the server, reliable.

A client ignores it: it reads nothing and changes nothing.

FieldTypeWhat it is
particleu32The particle.
teamu8Which side, by an index.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143239
1.0.0.144–1.0.0.149226
1.0.0.150–3.1.0.0223
FieldTypeWhat it is
particleu32The particle.
teamu8Which side, by an index.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ParticleLeaveTeamSight

What a server sends as a particle passes out of what one side can see. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131241
1.0.0.132–1.0.0.134242
1.0.0.135239
1.0.0.136–1.0.0.137237
1.0.0.138239
FieldTypeWhat it is
particleu32The particle.
teamu8Which side, by an index.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 238 on events, sent by the server, reliable.

A client ignores a particle it does not hold. A server names only a particle: where particle names another object the client holds, a client fails.

FieldTypeWhat it is
particleu32The particle.
teamu8Which side, by an index.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143240
1.0.0.144–1.0.0.149227
1.0.0.150–3.1.0.0224
FieldTypeWhat it is
particleu32The particle.
teamu8Which side, by an index.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

LeaveLocalSight

What a server sends when a unit passes out of what one client can see. Sent for the receiving client’s own champion, it changes nothing the client shows. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 58 on events, sent by the server, reliable.

It changes nothing a client shows for any unit, and a client ignores it while watching a match.

No body.

Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14955
1.0.0.150–3.1.0.052

No body.

Vectors (1)

one-on-1-0-0-149

RegionAdded

What a server sends to place a region on the ground. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131123
1.0.0.132–1.0.0.137124
1.0.0.138126

A region grants sight, blocks the way, or grows cover.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes a default radius.
atXf32Where it stands, along one ground axis, in world units.
atYf32Its height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.secondbit 1A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.
does.unusedbit 2 to 31Unused; a server writes zero.
extrau32Kept with the region as it stands; what it does is not recorded. A server writes zero.
otherExtrau32Kept the same way; a server writes zero.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 126 on events, sent by the server, reliable.

A region grants sight, blocks the way, or grows cover. A region matching one the client holds in clientId (after taking 4294967294 as 4294967295), sightRadius, the first three bits of does, extra, otherExtra and position only resets that one’s lifetime to the new one; its id is not compared, and nothing new is added.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes a default radius.
atXf32Where it stands, along one ground axis, in world units.
atYf32Its height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 0 has the client pick one of its own.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.secondbit 1A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.
does.unusedbit 2 to 31Unused; a server writes zero. A client clears it itself before storing the region.
extrau32Kept with the region as it stands, and compared in matching a region already held; what else it does is not recorded. A server writes zero.
otherExtrau32Kept and compared the same way; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.149

Command 120 on events, sent by the server, reliable.

A region grants sight, blocks the way, or grows cover.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes a default radius.
atXf32Where it stands, along one ground axis, in world units.
atYf32Its height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.secondbit 1A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.
does.unusedbit 2 to 31Unused; a server writes zero.
extrau32Kept with the region as it stands; what it does is not recorded. A server writes zero.
otherExtrau32Kept the same way; a server writes zero.
Vectors (1)

one-on-1-0-0-149

In 1.0.0.150–3.1.0.0

Command 117 on events, sent by the server, reliable.

A region grants sight, blocks the way, or grows cover.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes a default radius.
atXf32Where it stands, along one ground axis, in world units.
atYf32Its height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.unusedbit 1 to 31Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-154

RegionAttached

What a server sends to place a region that follows a unit, showing the map around it until it runs out or the unit is gone.

Definition.

In 1.0.0.130–1.0.0.138

Command 38 on events, sent by the server, reliable.

A region matching one the client holds in view, sightRadius, the first three bits of does, marker, sightFrom and unit only gives that one the new lifetime.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes the unit’s own sight radius, or a default where it has none.
unitu32The unit the region follows. A client takes the region even where it does not hold the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.secondbit 1A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.
does.unusedbit 2 to 31Unused; a server writes zero.
extrau32Kept with the region as it stands; what it does is not recorded. A server writes zero.
otherExtrau32Kept the same way; a server writes zero.
Vectors (1)

one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 38 on events, sent by the server, reliable.

A region matching one the client holds in kind, sightRadius, the first three bits of does (as the client sets them itself), extra, otherExtra and unit only has its lifetime replaced by the new one; marker and clientId are not compared, and nothing new is added.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes the unit’s own sight radius, or a default where it has none.
unitu32The unit the region follows. Where the client does not hold the unit, it drops the whole message and makes no region.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less; one that starts at zero or less goes at the client’s next update.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.secondbit 1A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.
does.unusedbit 2 to 31Unused; a server writes zero.
extrau32Kept with the region, and compared in matching a region already held, so a region differing only here is added as a new one. A server writes zero.
otherExtrau32Kept and compared the same way; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.149

Command 35 on events, sent by the server, reliable.

A region matching one the client holds in view, sightRadius, the first three bits of does, marker, sightFrom and unit only gives that one the new lifetime.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes the unit’s own sight radius, or a default where it has none.
unitu32The unit the region follows. A client takes the region even where it does not hold the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.secondbit 1A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.
does.unusedbit 2 to 31Unused; a server writes zero.
extrau32Kept with the region as it stands; what it does is not recorded. A server writes zero.
otherExtrau32Kept the same way; a server writes zero.
Vectors (1)

one-on-1-0-0-149

In 1.0.0.150–3.1.0.0

Command 35 on events, sent by the server, reliable.

A region matching one the client holds in view, sightRadius, the first three bits of does, marker, sightFrom and unit only gives that one the new lifetime.

FieldTypeWhat it is
kindu32What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.
clientIdu32The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.
sightRadiusf32How far the region shows the map around it, in world units. Zero takes the unit’s own sight radius, or a default where it has none.
unitu32The unit the region follows. A client takes the region even where it does not hold the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.
markeru32The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.
does4-byte bitsWhat the region does.
does.flagbit 0What this changes on a client is not recorded.
does.unusedbit 1 to 31Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-154

RegionRemoved

What a server sends to take away a region RegionAdded or RegionAttached placed. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14356
1.0.0.144–1.0.0.14953
1.0.0.150–3.1.0.050
FieldTypeWhat it is
regionu32The region to take away, by the name RegionAdded gave it.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-149

FogSet

What a server sends to turn the drawing of the fog of war on or off. It changes only what is drawn. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131180
1.0.0.132–1.0.0.134181
1.0.0.135183
1.0.0.136–1.0.0.137181
1.0.0.138183
1.0.0.139–1.0.0.143182
1.0.0.144–1.0.0.146171
FieldTypeWhat it is
shownu8Nonzero turns the fog of war on; zero turns it off.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149171
1.0.0.150–3.1.0.0168
FieldTypeWhat it is
state1-byte bitsWhether the fog is drawn.
state.drawnbit 0Set to draw the fog, clear to draw the map with no darkening.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

FogToggled

What a server sends to turn the drawing of the fog of war off where it is on, or on where it is off. It changes only what is drawn: what can be seen is still what a server sends. It carries nothing of its own. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131130
1.0.0.132–1.0.0.137131
1.0.0.138–1.0.0.143133
1.0.0.144–1.0.0.149127
1.0.0.150–3.1.0.0124

No body.

Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Movement

A unit is moved by a path: a run of points on the ground plane, the first of which is where the unit is and the last where it is going.

Coordinates

A path names one axis of the ground plane and then the other. The height of a point is not carried, and a receiving end takes it from the ground beneath.

Movement and MovementAtSpeed are compact: a path is a run of integer points, each stated against the one before it, while positions elsewhere are world floats covering a far larger range (see Space). The two are related by an origin and a step:

encoded = truncate_toward_zero((world - origin) / 2)
world   = origin + 2 * encoded

A path resolves a position to two world units, rounded toward the origin.

Other shapes

MovementAtSpeed carries the same points as Movement with the terms of the travel stated before them, and WaypointGroupAtSpeed is what carries it. Other messages carry their points as world floats, and their definitions say so. The message carrying a movement says which shape it holds.

In 1.0.0.130–1.0.0.140

A unit coming into sight while standing carries its place and facing in EnterSight instead.

Resolving a path

A path is read into points by taking the first as it stands and then, for each point after it, taking each coordinate either as it stands or by adding the step to the coordinate of the point before. The point before means as that point resolved, not what the wire carried for it, which matters wherever a coordinate stated afresh is followed by one stated as a step.

conformance/vectors/algorithm records the resolution of the paths the movement vectors carry. They give decoded fields and the points they resolve to.

What a group can carry

A sending end MUST NOT send a movement with no points; a receiving end refuses it.

A client reads nothing after a refused movement in its group, and still answers the group.

In 1.0.0.130–1.0.0.140

A client does not read the points of a movement whose unit it does not hold, and so misreads every later movement in the group. A server MUST name in a group only units the client holds.

The origin

The origin is the midpoint of the bounds a map’s navigation data covers, truncated to a whole number on each axis. Nothing on the wire carries it. Both ends hold it before a match begins, and an end holding a different one misplaces every position it reads.

A server MUST take the origin from the map it is hosting. A server MUST NOT derive the origin from anything a client sent.

Space gives the origin of each map, keyed by the map number a server sends in VersionSync. A server hosting a map the table leaves out takes its origin from that map’s navigation data.

Relocating rather than walking

A client answers each group with one WaypointAck, listing every unit in it that carried a token, with an empty list where none did. A server MAY ignore it.

A movement whose flag says so carries a token beside the unit (see Movement). A receiving end remembers one token for each unit, beginning at zero.

A token unlike the remembered one puts the unit where the path begins rather than walking it there, but only where the unit is far enough away to warrant it: either ground axis differing by more than fifty world units, taken on its own. Fifty exactly does not, and height is not weighed.

A token the receiving end already holds changes nothing, and neither does an unfamiliar one arriving while the unit is near enough. In both the path is followed and the remembered token kept, so a token is taken up only once it has moved something.

A client leaves the flag clear in what it sends, so a token travels only from a server.

What a client asks for and what a server answers

An order from a client is a request: what a unit does is whatever the server sends back.

A client does not move its own champion on a right click by itself: the champion moves only along a path a server sends.

A server moves the champion by answering the MoveOrder with a WaypointGroup, and the client returns that group’s syncId in a WaypointAck (see Ordering).

A client sends the path it would take, with its destination beside it in world floats. A WaypointGroup carrying that path back unchanged moves the champion along it.

In 1.0.0.140

A server MUST send the WaypointGroup that answers a MoveOrder on the transient channel.

Marking the ground

NavigationFlags marks the ground within circles.

In 1.0.0.140

A server MUST NOT send NavigationFlags: a client fails on the first one a match brings.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

WaypointGroupAtSpeed

What a server sends to move units along paths of its own choosing, stating how each one travels rather than leaving it to the receiving end. It is what carries a unit thrown, dragged, or carried along by something other than its own walking. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131103
1.0.0.132–1.0.0.137104
1.0.0.138–1.0.0.140106
1.0.0.141–1.0.0.143106
1.0.0.144–1.0.0.149100
1.0.0.150–3.1.0.097
FieldTypeWhat it is
syncIdu32Names this statement of movement.
movementCountu16How many units follow. A client reads it as signed, so a count above 32767 carries none.
movementscount in movementCount × MovementAtSpeedWhat each unit is told to do.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-136, a-stepped-path-on-1-0-0-140, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

WaypointAck

What a client sends once it has taken in a group of movements, naming which group. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on requests, sent by the client, unsequenced, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131122
1.0.0.132–1.0.0.137123
1.0.0.138–1.0.0.143125
1.0.0.144–1.0.0.149119
1.0.0.150–3.1.0.0116

It lists the units the group asked it to relocate.

FieldTypeWhat it is
syncIdu32Which group is being acknowledged, as the group named itself.
relocationCountu8How many relocations follow. Answering WaypointGroup a client counts them; answering a path for one unit it sends only syncId and this byte, unwritten, on the transient channel, and no relocations, so a server reads nothing in it there.
relocationscount in relocationCount × record
relocations[].unitu32The unit the token belonged to.
relocations[].tokenu8The token that arrived with it.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

MoveOrder

What a client sends to tell a server what it wants a unit to do. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.137

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131117
1.0.0.132–1.0.0.137118

The path it carries is what the client would take; where the unit actually goes is whatever the server answers with.

FieldTypePresent whenWhat it is
kindu8What is being asked for. Values: 2 moveToPosition, 3 attack, 10 stop.
targetXf32Where the order points, along one ground axis. Carried in world units rather than in the units a path uses.
targetYf32The height of the place ordered.
targetZf32Where the order points, along the other.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
movementrecord
movement.header4-byte bits
movement.header.hasTeleportTokenbit 0Set where a token sits beside the unit. A client sends it clear, so a token travels only from a server.
movement.header.unusedbit 1 to 15Unused; a client reads nothing here.
movement.header.pointCountbit 16 to 22How many points the path holds. A client sends none for an order that takes no path, and then only the unit follows it.
movement.header.unusedHighbit 23 to 31Unused; a client reads nothing here.
movement.pathrecordEverything the movement carries beyond its first byte.
movement.path.unitu32The unit the path belongs to.
movement.path.teleportTokenu8header.hasTeleportToken setTells one relocation from another. Movement says what a receiving end does with it.
movement.path.flagsbits, count in header.pointCount minus 1One pair for each point after the first, in the order the points follow. Pairs run on from the low bits of the first byte, and the run reaches to the byte holding the last pair. The bits past it are clear.
movement.path.flags.xIsStepbit 0Set where this point states its first coordinate as a step.
movement.path.flags.zIsStepbit 1Set where this point states its second coordinate as a step.
movement.path.firstXi16header.pointCount setThe first point, along one ground axis, in the units Movement gives.
movement.path.firstZi16header.pointCount setThe first point, along the other.
movement.path.stepscount in header.pointCount minus 1 × record
movement.path.steps[].xStepi8flags[step].xIsStep setAdded to the first coordinate of the point before, as that point resolved.
movement.path.steps[].xWholei16flags[step].xIsStep = 0The first coordinate, stated without reference to the point before.
movement.path.steps[].zStepi8flags[step].zIsStep setAdded to the second coordinate of the point before, as that point resolved.
movement.path.steps[].zWholei16flags[step].zIsStep = 0The second coordinate, stated without reference to the point before.
Vectors (5)

move-to-position-on-1-0-0-131, a-path-of-3-points-on-1-0-0-132, hold-on-1-0-0-132, one-on-1-0-0-132, move-to-position-on-1-0-0-136

In 1.0.0.138–1.0.0.140

Command 120 on requests, sent by the client, reliable.

The path it carries is what the client would take; where the unit actually goes is whatever the server answers with.

FieldTypePresent whenWhat it is
kindu8What is being asked for. Values: 2 moveToPosition, 3 attack, 10 stop.
targetXf32Where the order points, along one ground axis. Carried in world units rather than in the units a path uses.
targetZf32Where the order points, along the other.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
movementrecord
movement.header4-byte bits
movement.header.hasTeleportTokenbit 0Set where a token sits beside the unit. A client sends it clear, so a token travels only from a server.
movement.header.unusedbit 1 to 15A client sends whatever it held in these bits; they carry no meaning, and a server ignores them.
movement.header.pointCountbit 16 to 22How many points the path holds. A client sends none for an order that takes no path, and then only the unit follows it.
movement.header.unusedHighbit 23 to 31A client sends whatever it held in these bits; they carry no meaning, and a server ignores them.
movement.pathrecordEverything the movement carries beyond its first four bytes.
movement.path.unitu32The unit the path belongs to.
movement.path.teleportTokenu8header.hasTeleportToken setTells one relocation from another. Movement says what a receiving end does with it.
movement.path.flagsbits, count in header.pointCount minus 1One pair for each point after the first, in the order the points follow. Pairs run on from the low bits of the first byte, and the run reaches to the byte holding the last pair. The bits past it are clear.
movement.path.flags.xIsStepbit 0Set where this point states its first coordinate as a step.
movement.path.flags.zIsStepbit 1Set where this point states its second coordinate as a step.
movement.path.firstXi16header.pointCount setThe first point, along one ground axis, in the units Movement gives.
movement.path.firstZi16header.pointCount setThe first point, along the other.
movement.path.stepscount in header.pointCount minus 1 × record
movement.path.steps[].xStepi8flags[step].xIsStep setAdded to the first coordinate of the point before, as that point resolved.
movement.path.steps[].xWholei16flags[step].xIsStep = 0The first coordinate, stated without reference to the point before.
movement.path.steps[].zStepi8flags[step].zIsStep setAdded to the second coordinate of the point before, as that point resolved.
movement.path.steps[].zWholei16flags[step].zIsStep = 0The second coordinate, stated without reference to the point before.
Vectors (4)

a-path-of-3-points-on-1-0-0-138, hold-on-1-0-0-138, one-on-1-0-0-138, move-to-position-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143120
1.0.0.144–1.0.0.149114
1.0.0.150–3.1.0.0111

The path it carries is what the client would take; where the unit actually goes is whatever the server answers with.

FieldTypeWhat it is
kindu8What is being asked for. Values: 2 moveToPosition, 3 attack, 10 stop.
targetXf32Where the order points, along one ground axis. Carried in world units rather than in the units a path uses.
targetZf32Where the order points, along the other.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
movementMovement
Vectors (3)

move-to-position-on-1-0-0-143, move-to-position-on-1-0-0-149, move-to-position-on-1-0-0-154

WaypointGroup

What a server sends to move units. It carries a number a client returns to say it has taken the group in. The header carries zero or names the object this is about, and a client accepts either.

Definition.

In every range of this book

Carried on transient, sent by the server, unreliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131100
1.0.0.132–1.0.0.137101
1.0.0.138–1.0.0.140103
1.0.0.141–1.0.0.143103
1.0.0.144–1.0.0.14997
1.0.0.150–3.1.0.094
FieldTypeWhat it is
syncIdu32Names this group. A client returns it to say the group arrived.
movementCountu16How many units the group moves. A client reads it as signed, so a count above 32767 carries none.
movementscount in movementCount × Movement
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-136, a-stepped-path-on-1-0-0-140, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

NavigationFlags

What a server sends to mark the ground within circles, in place of the circles it marked before: each circle’s flags apply to the ground within it. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13171
1.0.0.132–1.0.0.14372
1.0.0.144–1.0.0.14967
1.0.0.150–3.1.0.064

A client fails on the first of these in a match: it stops, marking no circle and sending no answer.

FieldTypeWhat it is
countu16The count of circles that follow.
syncIdi32A number naming this marking.
circlescount in count × recordThe circles.
circles[].xf32The circle’s centre, along one ground axis, in world units.
circles[].zf32The circle’s centre, along the other ground axis, in world units.
circles[].radiusf32Its radius, in world units. A circle of radius 1000 or more marks nothing.
circles[].flagsu32The flags to add to each cell. Only the low 16 bits take effect.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-143, one-on-1-0-0-149

FaceDirection

What a server sends to turn a unit to face a direction. The header names the unit acting.

Definition.

In 1.0.0.130–1.0.0.135

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13183
1.0.0.132–1.0.0.13584
FieldTypeWhat it is
towardXf32The direction faced, along one ground axis.
towardYf32The direction faced, in height.
towardZf32The direction faced, along the other ground axis.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-135

In 1.0.0.136–1.0.0.137

Command 84 on events, sent by the server, reliable.

FieldTypeWhat it is
towardXf32The direction faced, along one ground axis.
towardYf32The direction faced, in height.
towardZf32The direction faced, along the other ground axis.
how1-byte bits
how.turnOverTimebit 0Set to turn over turnTime, at least 0.0001 seconds; clear to face the direction at once, with turnTime having no effect and the usual turn rate restored.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 86 on events, sent by the server, reliable.

FieldTypeWhat it is
towardXf32The direction faced, along one ground axis.
towardYf32The direction faced, in height.
towardZf32The direction faced, along the other ground axis.
how1-byte bits
how.turnOverTimebit 0Set to turn the unit toward the direction at its ordinary turning rate; clear to face the direction at once.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14980
1.0.0.150–3.1.0.077
FieldTypeWhat it is
towardXf32The direction faced, along one ground axis.
towardYf32The direction faced, in height.
towardZf32The direction faced, along the other ground axis.
how1-byte bits
how.turnOverTimebit 0Set to turn over turnTime, at least 0.0001 seconds; clear to face the direction at once, with turnTime having no effect and the usual turn rate restored.
how.unusedbit 1 to 7Unused; a server writes zero.
turnTimef32How long the turn takes, in seconds.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

FacePosition

What a client sends when a script it runs turns a unit to face a point. A server need do nothing with it. The header names the unit turned.

Definition.

In 1.0.0.130–1.0.0.135

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13183
1.0.0.132–1.0.0.13584
FieldTypeWhat it is
directionXf32Which way the unit now faces, as a direction of length one, along one ground axis.
directionYf32Which way the unit now faces, as a direction of length one, in height.
directionZf32Which way the unit now faces, as a direction of length one, along the other ground axis.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-135

In 1.0.0.136–1.0.0.137

Command 84 on requests, sent by the client, reliable.

FieldTypeWhat it is
directionXf32Which way the unit now faces, as a direction of length one, along one ground axis.
directionYf32Which way the unit now faces, as a direction of length one, in height.
directionZf32Which way the unit now faces, as a direction of length one, along the other ground axis.
unusedu8A client writes zero.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 86 on requests, sent by the client, reliable.

FieldTypeWhat it is
directionXf32Which way the unit now faces, as a direction of length one, along one ground axis.
directionYf32Which way the unit now faces, as a direction of length one, in height.
directionZf32Which way the unit now faces, as a direction of length one, along the other ground axis.
unusedu81 where the script turns the unit toward the point rather than snapping it there, and 0 otherwise.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14980
1.0.0.150–3.1.0.077
FieldTypeWhat it is
directionXf32Which way the unit now faces, as a direction of length one, along one ground axis.
directionYf32Which way the unit now faces, as a direction of length one, in height.
directionZf32Which way the unit now faces, as a direction of length one, along the other ground axis.
unusedu8A client writes zero.
unknownf32A client never writes these bytes, so they carry whatever it held there; a server ignores them.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

MovementBounds

What a server sends to set a circle that a client keeps its view or its champion’s orders within. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.146

Command 6 on events, sent by the server, reliable.

A client pulls an order to a point outside onto the circle’s edge before sending it, and drops an order at an object outside.

FieldTypeWhat it is
xf32The circle’s centre, in world units.
yf32The centre’s height, in world units.
zf32The circle’s centre, in world units.
radiusf32The circle’s radius, in world units. Zero lifts the bounds; a negative radius counts as zero.
camerau8Set to keep the camera within the circle too. Clear leaves the camera as it was, bound or not. Any nonzero value sets it.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 6 on events, sent by the server, reliable.

A client pulls an order to a point outside onto the circle’s edge before sending it, and drops an order at an object outside.

FieldTypeWhat it is
xf32The circle’s centre, in world units.
yf32The centre’s height, in world units.
zf32The circle’s centre, in world units.
radiusf32The circle’s radius, in world units. Zero lifts the bounds; a negative radius counts as zero.
flags1-byte bitsWhat else the circle holds.
flags.camerabit 0Set to keep the camera within the circle too. Clear leaves the camera as it was, bound or not.
flags.unusedbit 1 to 7Unused; a server writes zero.

Path

What a server sends to set a unit walking along a path, facing the way it walks. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131193
1.0.0.132–1.0.0.134194
1.0.0.135196
1.0.0.136–1.0.0.137194
1.0.0.138196
1.0.0.139–1.0.0.140195
1.0.0.141–1.0.0.143197
1.0.0.144–1.0.0.149185
1.0.0.150–3.1.0.0182

A client answers every one at once, unsequenced on the transient channel, with ten bytes: WaypointAck’s command, a net id of zero, this sync id, and one byte that is arbitrary and carries no meaning. It applies it only where the sync id is not older than the last the unit took (as UnitStopped).

FieldTypeWhat it is
syncIdi32The unit’s movement count.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

PathWithSpeed

What a server sends to set a unit moving along a path at a speed of its own, perhaps in an arc. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.151

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131136
1.0.0.132–1.0.0.137137
1.0.0.138139
1.0.0.139–1.0.0.143138
1.0.0.144–1.0.0.149132
1.0.0.150–1.0.0.151129

A client answers every one at once, as it answers Path, whatever its sync id. It applies it only where the sync id is not older than the last the unit took (as UnitStopped). A unit can follow another unit.

FieldTypeWhat it is
syncIdi32The unit’s movement count.
speedf32The speed to move at, in world units a second.
gravityf32The arc’s gravity, for a leap, in units of 150 world units a second squared. Zero or less moves the unit flat.
arcXf32Where the arc begins, in world units.
arcZf32Where the arc begins, in world units.
facingi8Which way the unit faces as it moves. Values: 0 along, 1 keep.
followu32A unit to follow, or zero for none.
followDistancef32How near to keep to it, in world units. It takes effect only where follow is not zero.
backOfff32How far to fall back from it, in world units. It takes effect only where follow is not zero.
travelTimef32How long the move takes, in seconds. It takes effect only where follow is not zero.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (6)

along-on-1-0-0-131, along-on-1-0-0-136, along-on-1-0-0-138, along-on-1-0-0-143, along-on-1-0-0-149, along-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 129 on events, sent by the server, reliable.

A client answers every one at once, as it answers Path, whatever its sync id. It applies it only where the sync id is not older than the last the unit took (as UnitStopped). A unit can follow another unit.

FieldTypeWhat it is
syncIdi32The unit’s movement count.
speedf32The speed to move at, in world units a second.
gravityf32The arc’s gravity, for a leap, in units of 150 world units a second squared. Zero or less moves the unit flat.
arcXf32Where the arc begins, in world units.
arcZf32Where the arc begins, in world units.
facingu8Which way the unit faces as it moves. Values: 0 along, 1 keep.
followu32A unit to follow, or zero for none.
followDistancef32How near to keep to it, in world units. It takes effect only where follow is not zero.
backOfff32How far to fall back from it, in world units. It takes effect only where follow is not zero.
travelTimef32How long the move takes, in seconds. It takes effect only where follow is not zero.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (1)

along-on-1-0-0-154

UnitStopped

What a server sends to stop a unit where it stands. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14351
1.0.0.144–3.1.0.048

A client applies it only where its sync id is not older than the last the unit took, counting a wrap: this message, PathWithSpeed and Path share one count per unit, starting at -1.

FieldTypeWhat it is
xf32Where the unit stands, in world units; a client keeps this height rather than the ground’s.
yf32Its height, in world units.
zf32Where it stands, in world units.
facingXf32The way it faces.
facingYf32The way it faces.
facingZf32The way it faces.
syncIdi32The unit’s movement count.
Vectors (1)

one-on-1-0-0-143

Replication

With Replication a server states what has changed about the units a client can see: for each unit, the groups of values it carries and which values of each follow. What the values are follows from the unit.

In 1.0.0.130–1.0.0.140

The groups follow in the order 0 to 4, and nothing gives a group’s length: each value is four bytes, so a group takes four bytes for its set of values and four for each bit that set has set.

Each value is a 32-bit float or a 32-bit unsigned integer, as its row in the tables below says, and travels as it stands.

A client passes over a set bit its table has no row for, and a group its table has none of, by their four bytes each, without taking anything from them. It passes over the values of a unit whose kind has no table the same way, and still answers the batch.

What settles a reading

A run is a sequence of values with nothing between them, in the order the set bits name them, lowest first.

The bit that names a value means different things for different units. Champions, turrets, minions and units belonging to no side, and buildings each answer to a table of their own, so the same bit in the same group is one value on one unit and another on the next. A sending end MUST write the table the unit it names answers to.

Props answer to a table of their own as well.

Which table a unit answers to follows from the message that put it on the field (see Units). A building, which no message creates, answers to the building table.

The building table is the same on every map.

Which batches a client takes

A client answers a batch with TransientAck where it holds every unit the batch names, whether or not it took the values. Ordering says which batches a client takes, and what that requires of a server.

Reading the tables

Each row gives the group and bits that name a value and what the value is.

In 1.0.0.130–1.0.0.140

Each row also gives the type a value is written in.

In 1.0.0.140

A champion

GroupBitsValueType
00Gold in handfloat
01 to 2Which slots can be cast from: the champion’s own, then the second setu32
03 to 6What the spell in slots 0 to 3 costsfloat
07 to 14What the spell in slots 42 to 49 costsfloat
015 to 16What the spell in slots 0 and 1 of the second set costsfloat
10What the champion is doing, as a set of bitsu32
11 to 3Whether it is proof against spells, proof against all harm, and proof against strikesu32
14Damage it deals by strikingfloat
15Damage its spells deal before modifiersfloat
16How often it turns a blow asidefloat
17How often it strikes criticallyfloat
18Armourfloat
19Spell resistancefloat
110 to 11How fast health and resource returnfloat
112How far it strikes fromfloat
113 to 15Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
116 to 17Flat and percent reduction of the spell damage it takesfloat
118A multiplier on how fast it strikesfloat
119A flat addition to how far it castsfloat
120A modifier on its cooldownsfloat
121 to 22How much armour it cuts through, flat then as a percentfloat
123 to 24How much spell resistance it cuts through, flat then as a percentfloat
125Life stealfloat
126Spell vampfloat
30 to 1Health and resource as they standfloat
32 to 3Health and resource at their greatestfloat
34Experiencefloat
35 to 6A flat and a percent addition to how far it seesfloat
37How fast it movesfloat
38A value whose meaning is not recordedfloat
39Levelu32
310Kills taken from no sideu32

Bit n of either set of slots that can be cast from stands for slot n. What the second set and slots 42 to 49 hold is not recorded, and a server writes zero in their costs. Which bit of what a champion is doing means what is not recorded either.

A turret

GroupBitsValueType
10 to 1Health as it stands, then at its greatestfloat
12What the turret is doing, as a set of bitsu32
13 to 5Whether it is proof against spells, proof against all harm, and proof against strikesu32
16Damage it deals by strikingfloat
17 to 8Armour and spell resistancefloat
19A multiplier on how fast it strikesfloat
110 to 12Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
113How fast health returnsfloat
30 to 1A flat and a percent addition to how far it seesfloat
32How fast it movesfloat
33A value whose meaning is not recordedfloat

A minion, and a unit belonging to no side

GroupBitsValueType
10 to 1Health and resource as they standfloat
12 to 3Health and resource at their greatestfloat
14What the unit is doing, as a set of bitsu32
15 to 7Whether it is proof against spells, proof against all harm, and proof against strikesu32
18Damage it deals by strikingfloat
19 to 10Armour and spell resistancefloat
111A multiplier on how fast it strikesfloat
112 to 14Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
115 to 16How fast health and resource returnfloat
117 to 18Flat and percent reduction of the spell damage it takesfloat
30 to 1A flat and a percent addition to how far it seesfloat
32How fast it movesfloat
33A value whose meaning is not recordedfloat

A building

Inhibitors, nexuses and the buildings minions come from share one table. It has no value for health at its greatest.

GroupBitsValueType
10Health as it standsfloat
11Whether it is proof against all harmu32

A prop

GroupBitsValueType
10Health as it standsfloat
11Health as it stands, againfloat
12Whether it is proof against all harmu32
30 to 1A flat and a percent addition to how far it seesfloat
32How fast it movesfloat
33A value whose meaning is not recordedfloat

Values stated outside a batch

Besides its batches, a server states some values with messages of their own.

In 1.0.0.140

A server grants experience with ExperienceGained, and MUST name a champion in it: a client fails on one naming any other unit. GoldGained shows the gold gained over the unit and grants none: a champion’s gold in hand follows group 0 bit 0 of its batches alone.

A server can send the gold a unit earns to another with GoldRedirect. A level gained is LevelUp, which on its own is enough for a client to show the new level on its champion’s portrait. A server sets a champion’s tallies for the scoreboard with ChampionStats. A server can also add to a unit’s shield (ShieldAdded), change how its health bar or resource bar is shown (HealthBar, ResourceDisplay), change the sort of resource it has (ResourceKindChanged), set the highest level a champion reaches (LevelCap), and count minions killed, scores and deeds (MinionKillCount, ScoreAdded, StatisticIncremented).

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

Replication

What a server sends to say what has changed about units a client can see. It is the most frequent thing a server sends. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on transient, sent by the server, unreliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131204
1.0.0.132–1.0.0.134205
1.0.0.135207
1.0.0.136–1.0.0.137205
1.0.0.138207
1.0.0.139–1.0.0.140206
1.0.0.141–1.0.0.142208
1.0.0.143208
1.0.0.144–1.0.0.149196
1.0.0.150–3.1.0.0193
FieldTypeWhat it is
syncIdu32Names this batch of changes. Replication says which batches a client takes values from.
unitCountu8How many units follow.
unitscount in unitCount × Replication
Vectors (10)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-142, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

TransientAck

What a client sends to say a batch of changes arrived, naming which batch. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on requests, sent by the client, unsequenced, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131176
1.0.0.132–1.0.0.134177
1.0.0.135179
1.0.0.136–1.0.0.137177
1.0.0.138179

It is sent for a batch whose values the client dropped as well as for one it took.

FieldTypeWhat it is
syncIdu32Which batch is being acknowledged, as the batch named itself.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 178 on requests, sent by the client, unsequenced.

A client sends it for a batch it took and for one whose values it dropped, but sends none for a batch where any entry names a unit it does not hold.

FieldTypeWhat it is
syncIdu32Which batch is being acknowledged, as the batch named itself.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, unsequenced, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149168
1.0.0.150–3.1.0.0165

It is sent for a batch whose values the client dropped as well as for one it took.

FieldTypeWhat it is
syncIdu32Which batch is being acknowledged, as the batch named itself.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

GoldGained

What a server sends to show a unit gaining gold. The header names the unit whose death earned the gold, as source does.

Definition.

In 1.0.0.130–1.0.0.143

Command 37 on events, sent by the server, reliable.

A client only floats the amount as text: the gold the unit holds does not change. Where unit is the client’s own champion, amount is above 0.5 and source names a unit the client holds other than its own player, the text floats over source; otherwise it floats over unit, as a gain where amount is above zero and a loss where it is below.

FieldTypeWhat it is
unitu32The unit granted it.
sourceu32What it came from, or zero where nothing did.
amountf32How much.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 34 on events, sent by the server, reliable.

It grants the unit gold.

FieldTypeWhat it is
unitu32The unit granted it.
sourceu32What it came from, or zero where nothing did.
amountf32How much.

ExperienceGained

What a server sends to say a unit gained experience. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.143

Command 17 on events, sent by the server, reliable.

A client floats the amount over the champion, except while watching a match. Where the unit is the client’s own champion below its highest level, it also shows the amount on its experience display.

FieldTypeWhat it is
unitu32The unit granted it. A server names a champion: a client fails for any other unit.
amountf32How much.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 16 on events, sent by the server, reliable.

Where the unit is the client’s own champion below its highest level, a client also shows the amount on its experience display.

FieldTypeWhat it is
unitu32The unit granted it.
amountf32How much.

GoldRedirect

What a server sends to send the gold a unit earns to another. The header names the unit.

Definition.

In every range of this book

Command 7 on events, sent by the server, reliable.

FieldTypeWhat it is
targetu32The unit that receives the gold.

LevelUp

What a server sends when a unit gains a level. The header names the unit this is about. On its own, with no replication behind it, it is enough for a client to show the new level on the champion’s portrait and offer the unspent points.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13169
1.0.0.132–1.0.0.14370
1.0.0.144–1.0.0.14965
1.0.0.150–3.1.0.062

A client applies it only to a champion, and ignores it for any other unit.

FieldTypeWhat it is
levelu8The level now reached.
pointsToSpendu8How many spell points are left unspent.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-143, one-on-1-0-0-149

ChampionStats

What a server sends to set a champion’s tallies for the scoreboard. The header names the champion.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13175
1.0.0.132–1.0.0.13776
FieldTypeWhat it is
sizeu32The whole length of what follows the header, these four bytes included, as a whole 32-bit count. A mismatch has no effect, and does not limit what a client takes.
valuesbytes, sized by size minus 4One value per tally of the match’s mode, the tallies in ascending byte order of their names. An int takes 4 bytes, a float 4, a bool 1, a 64-bit int 8, and text a 16-bit length below 255 then that many bytes. Bytes left over have no effect. A nonzero count of champion kills marks first blood taken.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 77 on events, sent by the server, reliable.

FieldTypeWhat it is
sizeu32The whole length of what follows the header, these four bytes included, as a whole 32-bit count. A mismatch has no effect, and does not limit what a client takes.
valuesbytes, sized by size minus 4One value per tally of the match’s mode, the tallies in ascending byte order of their names. An int takes 4 bytes, a float 4, a bool 1, a 64-bit int 8, and text a 16-bit length below 255 then that many bytes. Bytes left over have no effect. A count of champion kills above zero marks first blood taken.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14971
1.0.0.150–3.1.0.068
FieldTypeWhat it is
sizeu32The whole length of what follows the header, these four bytes included, as a whole 32-bit count. A mismatch has no effect, and does not limit what a client takes.
valuesbytes, sized by size minus 4One value per tally of the match’s mode, the tallies in ascending byte order of their names. An int takes 4 bytes, a float 4, a bool 1, a 64-bit int 8, and text a 16-bit length below 255 then that many bytes. Bytes left over have no effect. A nonzero count of champion kills marks first blood taken.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ShieldAdded

What a server sends to add to a unit’s shield. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131105
1.0.0.132–1.0.0.137106
1.0.0.138–1.0.0.143108
1.0.0.144–1.0.0.149102
1.0.0.150–3.1.0.099

Both physical and magical set adds amount to the shield that takes either kind of damage; one of them, to that kind’s shield; neither, to nothing. A negative amount lowers it, and any shield left below 0.001 becomes zero. noFade clear does not restart a fade already stopped.

FieldTypeWhat it is
flags1-byte bitsWhich shield.
flags.physicalbit 0Set where the shield turns aside physical damage.
flags.magicalbit 1Set where it turns aside magical damage. Both set means either.
flags.noFadebit 2Set where the shield does not fade.
flags.unusedbit 3 to 7Unused; a server writes zero.
amountf32How much is added.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

HealthBar

What a server sends about a unit’s health bar. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.143

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131215
1.0.0.132–1.0.0.134216
1.0.0.135218
1.0.0.136–1.0.0.137216
1.0.0.138218
1.0.0.139–1.0.0.140217
1.0.0.141–1.0.0.143219
FieldTypeWhat it is
showu8Set to show the bar, clear to hide it. Zero hides it, any other value shows it.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149206
1.0.0.150–3.1.0.0203
FieldTypePresent whenWhat it is
flags1-byte bitsWhat changes.
flags.showbit 0Set to show the bar, clear to hide it.
flags.changeTypebit 1Set where the bar’s type changes; the type and side below apply only then.
flags.unusedbit 2 to 7Unused; a server writes zero.
barTypeu8flags.changeType setWhich sort of bar, applying only where changeType is set and side is the client’s player’s side or zero: 1 a unit’s, 2 a champion’s; any other value only makes sure the unit has a bar.
sidei32flags.changeType setThe side that sees the change, or 0 for every side.
Vectors (4)

another-on-1-0-0-149, one-on-1-0-0-149, another-on-1-0-0-154, one-on-1-0-0-154

ScoreAdded

What a server sends to add to a player’s score. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131226
1.0.0.132–1.0.0.134227
1.0.0.135229
1.0.0.136–1.0.0.137227
1.0.0.138229
1.0.0.139–1.0.0.140228
1.0.0.141–1.0.0.143230
1.0.0.144–1.0.0.149217
1.0.0.150–3.1.0.0214

A client ignores the message where player names no champion it holds.

FieldTypeWhat it is
championu32The champion whose score it is.
categoryu8Which part of the score. Values: 0 offense, 1 defense, 2 combat, 3 objective.
eventu8What earned it.
flags1-byte bitsHow it is shown.
flags.calloutbit 0Set where the client announces it.
flags.unusedbit 1 to 7Unused; a server writes zero.
pointsf32How much is added.
Vectors (9)

offense-on-1-0-0-131, offense-on-1-0-0-134, offense-on-1-0-0-135, offense-on-1-0-0-136, offense-on-1-0-0-138, offense-on-1-0-0-140, offense-on-1-0-0-143, offense-on-1-0-0-149, offense-on-1-0-0-154

StatisticIncremented

What a server sends to add one to a champion’s count of a deed, as counted for the end of a match. Nothing shows at once. A client ignores it where the id names no champion. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131227
1.0.0.132–1.0.0.134228
1.0.0.135230
1.0.0.136–1.0.0.137228
1.0.0.138230
1.0.0.139–1.0.0.140229
1.0.0.141–1.0.0.143231
1.0.0.144–1.0.0.149218
1.0.0.150–3.1.0.0215
FieldTypeWhat it is
championu32The champion.
statisticu8Which count. A value past those named has no defined effect. Values: 0 pointCaptured, 1 pointNeutralised, 2 killWhileAttackingPoint, 3 teamObjective, 4 defendedPointNeutralised, 5 killWhileDefendingPoint, 6 timeDefendingPoint, 7 lastStand, 8 captureAssist, 9 neutraliseAssist.
Vectors (9)

team-objective-on-1-0-0-131, team-objective-on-1-0-0-134, team-objective-on-1-0-0-135, team-objective-on-1-0-0-136, team-objective-on-1-0-0-138, team-objective-on-1-0-0-140, team-objective-on-1-0-0-143, team-objective-on-1-0-0-149, team-objective-on-1-0-0-154

GoldEarned

What a server sends about gold a champion earned. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 242 on events, sent by the server, reliable.

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134243
1.0.0.135240
1.0.0.136–1.0.0.137238
1.0.0.138240

A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold. 0.95 is what a champion earns for each step it stands still.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 239 on events, sent by the server, reliable.

A client adds the amount to the champion’s tally of gold earned; the gold the champion holds does not change. It applies the message whether or not it is watching a match.

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143241
1.0.0.144–1.0.0.149228
1.0.0.150–3.1.0.0225

A server sends it to clients watching a match. It credits the champion with the gold.

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold. 0.95 is what a champion earns for each step it stands still.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ResourceColours

What a server sends to give a unit’s resource bar colours of its own, or to take them back. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131153
1.0.0.132–1.0.0.134154
1.0.0.135156
1.0.0.136–1.0.0.137154
1.0.0.138156
1.0.0.139–1.0.0.143155
1.0.0.144–1.0.0.149147
1.0.0.150–3.1.0.0144
FieldTypeWhat it is
unusedu32Unused; its bytes carry no meaning. The header names the unit.
onu8Nonzero gives the bar the two colours below; zero takes them back, and a client reads neither.
fillu32The colour the bar fills with up to the unit’s current amount, with its alpha in the top byte, which the bar’s own fading scales.
lostu32The colour of what the unit has just lost, drawn from its current amount up to a mark that falls back toward it over time; alpha as above.
Vectors (8)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

StatTick

What a server sends to advance every unit’s stats by a span of time. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14342
1.0.0.144–3.1.0.039

A client takes it and changes nothing it shows.

FieldTypeWhat it is
secondsf32The span, in seconds.
Vectors (1)

one-on-1-0-0-143

The match

How a match runs once play has begun, apart from the field: its clock, holds, its end, and players leaving and coming back.

The clock

A server states how long the match has run with ClockSync, and a client answers on the clock channel with ClockReply. Time says how the match clock is kept, and which clock each time on the wire is measured against.

GameSpeed sets how fast the match runs. StatTick hands every unit a span of seconds.

A client shows the speed GameSpeed sets over its champion. A client changes nothing it shows for StatTick.

In 1.0.0.130–1.0.0.140

StatTick asks every unit’s stats to advance by that span.

Sent during a hold, GameSpeed takes effect as the match resumes.

Holding and resuming

A client asks to hold the match with Pause, and to resume it with Resume. A server MUST attribute each to the connection it arrived on (see Objects and identifiers).

A client names no one in Pause or Resume.

A server holds the match with Paused.

Paused carries how long the hold can last, in seconds.

A client begins a hold only where the time Paused carries is above zero and the match is not already held.

In 1.0.0.140–3.1.0.0

A client shows a tournament’s hold, crediting the seat that asked, where the message says it is one.

A server ends the hold with Resumed.

Resumed ends the hold either at once or after a countdown the client shows, during which the match stays held.

In 1.0.0.140–3.1.0.0

A client announces in chat who resumed the match.

In 1.0.0.140

Input stays locked during the countdown.

The end

A server ends the match with GameEnded, saying which side won, and takes the interface down with HudDisabled. A client shows the win or loss for its player’s side and sends ClientFinished.

In 1.0.0.130–1.0.0.140

A client sends ClientFinished every time GameEnded arrives in play, while playing a replay too.

A client that receives GameEnded while still loading leaves at once.

VictoryDance sets units moving as winners or losers do. It ends nothing.

In 1.0.0.140–3.1.0.0

A client moves no neutral unit for VictoryDance.

Leaving and coming back

A client leaving as one abandoning the match sends Exit: as its player quits or closes the window, as a reconnection fails, or on a server’s Shutdown, which has it leave at once. A client also leaves at once on BotKick with the action that means leave.

A client also leaves as one abandoning as its player declines to reconnect or cancels a reconnection under way, and as its player dismisses the notice that it was dropped for being away.

In 1.0.0.140–3.1.0.0

The action of BotKick that means leave is 4.

A server tells the others that a player’s client dropped with PlayerDisconnected.

A client shows a notice in chat for PlayerDisconnected.

SoftReconnect rebuilds a client’s world without a new connection, as Objects and identifiers describes.

A client started again for a match in progress knows nothing of it, and joins as at the start: a server takes it through Joining a match from registering to StartGame, with a spawn run that states the field as it stands, and a ClockSync.

A client the server drops with the reason that means its player was away shows that, and does not connect again.

In 1.0.0.130–1.0.0.140

A client sends ReconnectedInMatch on every connection it makes, the first included, with a byte that is 0 where the match is in play and 1 otherwise.

Reconnected announces that a player came back. A client shows it in chat for any other player, ally or enemy.

In 1.0.0.140–3.1.0.0

A client dropped during play connects again at once by itself, for any reason but the one that means its player was away, and shows its player that it is reconnecting while it does. Where its settings turn this off, it asks its player for the reason 0 whether to connect again, and for any other shows that the reconnection failed.

A client sends ReconnectedInMatch as the connection is made, without waiting for the registration answer.

Staying connected

A client’s view report, Camera, goes out as its view moves at least 200 units, at most every tenth of a second, and never while its view is locked.

Where its last Camera goes unacknowledged, a client sends it again without its view moving, once more than twice the round trip has passed.

In 1.0.0.140–3.1.0.0

Once loading is done, a client gives up on a connection where a reliable message it sent goes unacknowledged for 15 seconds.

In 1.0.0.140–3.1.0.0

Before loading is done, a client waits 60 seconds for an acknowledgement rather than 15.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

ClockSync

What a server sends to set a client’s idea of how long the match has run. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 201 on events, sent by the server, reliable.

A client sets its clock to elapsed plus the round trip it keeps from ClockConvergence, and answers at once with ClockReply. It drops the message where it has no game clock yet.

FieldTypeWhat it is
elapsedf32How long the match has run, in seconds.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134202
1.0.0.135204
1.0.0.136–1.0.0.137202
1.0.0.138204
1.0.0.139–1.0.0.140203
1.0.0.141–1.0.0.143205
1.0.0.144–1.0.0.149193
1.0.0.150–3.1.0.0190
FieldTypeWhat it is
elapsedf32How long the match has run, in seconds.
Vectors (8)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ClockReply

What a client sends back when a server states the match clock, carrying both readings so the server can tell how far apart they are. The header names no object: it carries zero.

Definition.

In every range of this book

Command 8 on clock, sent by the client, reliable.

FieldTypeWhat it is
valueu32The client id the sender holds, as it sends in clientId in Camera and CameraLock.
serverSaidf32What the server last said the clock stood at, in seconds.
clientSaidf32What the client’s own clock reads, in seconds, just after it set itself from that statement: elapsed plus its smoothed estimate of the delay.
checkbytes, 32Thirty-two bytes every client of this build sends alike; a server ignores them.

GameSpeed

What a server sends to set how fast the game’s clock runs. A client shows the new speed over its champion. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.143

Command 19 on events, sent by the server, reliable.

Sent while paused, it takes effect on resuming.

FieldTypeWhat it is
speedf32How fast, 1 being normal. Zero stops the clock as a pause does, and a client then holds any later GameSpeed until the game resumes.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 18 on events, sent by the server, reliable.

Sent while paused, it takes effect on resuming.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client keeps it between 0 and 10.

Resumed

What a server sends to take the match off hold. The header names a champion: that of the player who resumed the match.

Definition.

In every range of this book

Command 10 on events, sent by the server, reliable.

The header has no effect. Resuming after the countdown, it keeps input locked and the pause panel open until a countdown of its own ends; resuming at once, it unlocks input and closes the panel.

FieldTypeWhat it is
clientIdu32The client id of the player who resumed the match, announced in chat in their side’s colour where their champion is known; 4294967295 announces no one.
how1-byte bits
how.afterCountdownbit 0Set where the match starts again after a countdown rather than at once.
how.unusedbit 1 to 7Unused; a server writes zero.

Pause

What a client sends to hold a match. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 169 on requests, sent by the client, reliable.

A client sends the same values in every Pause, as each field states.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
timeLefti32A client leaves it unwritten; its bytes carry no meaning.
how1-byte bits
how.tournamentbit 0A client sends it clear.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134170
1.0.0.135172
1.0.0.136–1.0.0.137170
1.0.0.138172

A client sends the same values in every Pause, as each field states.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
timeLefti32A client leaves it unwritten; its bytes carry no meaning.
how1-byte bits
how.tournamentbit 0A client sends it clear.
how.unusedbit 1 to 7Unused; a client writes zero.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 171 on requests, sent by the client, reliable.

A client sends the same values in every Pause, as each field states.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
timeLefti32A client leaves it unwritten; its bytes carry no meaning.
how1-byte bits
how.tournamentbit 0A client sends it clear.
how.unusedbit 1 to 7A client writes only tournament: these bits carry whatever it held there, and a server ignores them.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149161
1.0.0.150–3.1.0.0158

A client sends the same values in every Pause, as each field states.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
timeLefti32A client leaves it unwritten; its bytes carry no meaning.
how1-byte bits
how.tournamentbit 0A client sends it clear.
how.unusedbit 1 to 7Unused; a client writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

Resume

What a client sends to start a paused match again. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 10 on requests, sent by the client, reliable.

A client clears delayed and leaves the other bits of how unwritten.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
how1-byte bits
how.delayedbit 0A client sends it clear.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning.

In 1.0.0.132–3.1.0.0

Command 10 on requests, sent by the client, reliable.

A client writes only delayed in how; the rest of the byte carries whatever it held there.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
how1-byte bits
how.delayedbit 0A client sends it clear.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning, and a server ignores them.

Paused

What a server sends to put the match on hold. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131169
1.0.0.132–1.0.0.134170
1.0.0.135172
1.0.0.136–1.0.0.137170
1.0.0.138172
1.0.0.139–1.0.0.143171
1.0.0.144–1.0.0.149161
1.0.0.150–3.1.0.0158
FieldTypeWhat it is
clientIdu32The client id of the client that asked for the hold; it applies only to a tournament’s hold.
timeLefti32The hold time left, in seconds, for any hold. A hold begins only where it is above zero and the match is not already held.
how1-byte bits
how.tournamentbit 0Set for a tournament’s hold: as the hold begins, a client shows its tournament display, crediting seat. A hold still needs timeLeft above zero.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (8)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

GameEnded

What a server sends to end the match and say which side won. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131206
1.0.0.132–1.0.0.134207
1.0.0.135209
1.0.0.136–1.0.0.137207
1.0.0.138209

Arriving while the match still loads, it counts as a win or loss for the player’s side and the client leaves at once. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.

FieldTypeWhat it is
result1-byte bits
result.side100Wonbit 0Set where side 100 won, clear where side 200 did.
result.unusedbit 1 to 7Unused; a server writes zero.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 208 on events, sent by the server, reliable.

Arriving while the match still loads, it counts as a win or loss for the player’s side and the client leaves at once; where the client has no champion of its own yet, it shows a notice and leaves with no win or loss. Otherwise the client ends the match on its screen and sends ClientFinished, while watching a match too.

FieldTypeWhat it is
result1-byte bits
result.side100Wonbit 0Set where side 100 won, clear where side 200 did.
result.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143210
1.0.0.144–1.0.0.149198
1.0.0.150–3.1.0.0195

Arriving while the match still loads, it counts as a win or loss for the player’s side and the client leaves at once. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.

FieldTypeWhat it is
result1-byte bits
result.side100Wonbit 0Set where side 100 won, clear where side 200 did.
result.unusedbit 1 to 7Unused; a server writes zero.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ClientFinished

What a client sends when it has finished with the match.

Definition.

In 1.0.0.130–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131145
1.0.0.132–1.0.0.137146
1.0.0.138148

It is sent once, at the end.

No body.

Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 147 on requests, sent by the client, reliable.

A client sends it each time GameEnded arrives after the match has started. The header carries the client’s own champion’s net id.

No body.

Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149141
1.0.0.150–3.1.0.0138

It is sent once, at the end.

No body.

Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

VictoryDance

What a server sends to set units moving as winners or losers do. It ends nothing and changes nothing else on screen. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131205
1.0.0.132–1.0.0.134206
1.0.0.135208
1.0.0.136–1.0.0.137206
1.0.0.138208
FieldTypeWhat it is
orderWonu8Nonzero where side 100 won, zero where side 200 won.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 207 on events, sent by the server, reliable.

A client moves every unit that belongs to a side, on both sides: those of the winning side as winners, those of the other as losers. A winning champion dances, a losing one stands idle, and other units play a win or loss animation where they have one.

FieldTypeWhat it is
orderWonu8Nonzero where side 100 won, zero where side 200 won.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143209
1.0.0.144–1.0.0.149197
1.0.0.150–3.1.0.0194

It sets every unit on a side moving as winners or losers do: a winning champion dances, a losing one stands idle, and other units play a win or loss animation where they have one.

FieldTypeWhat it is
orderWonu8Nonzero where side 100 won, zero where side 200 won.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Exit

What a client sends as it leaves. It carries nothing of its own.

Definition.

In 1.0.0.130–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131148
1.0.0.132–1.0.0.137149
1.0.0.138151

A client sends it as it leaves as one abandoning the match: as its player confirms quitting or closes the window, as a reconnection fails, or on Shutdown or BotKick.

No body.

Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 150 on requests, sent by the client, reliable.

A client sends it as it leaves as one abandoning the match: as its player confirms quitting or closes the window, as a reconnection fails, or on Shutdown or a BotKick whose first byte is 4. The header carries the client’s own champion’s net id.

No body.

Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149143
1.0.0.150–3.1.0.0140

A client sends it as it leaves as one abandoning the match: as its player confirms quitting or closes the window, as a reconnection fails, or on Shutdown or BotKick. The header names no object: it carries zero.

No body.

Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

Shutdown

What a server sends to have a client leave the match at once, as one abandoning it, sending Exit as it goes. It carries nothing of its own. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131244
1.0.0.132–1.0.0.134245
1.0.0.135242
1.0.0.136–1.0.0.137240
1.0.0.138242
1.0.0.139–1.0.0.140241
1.0.0.141–1.0.0.142243
1.0.0.143242
1.0.0.144–1.0.0.149229
1.0.0.150–3.1.0.0226

No body.

Vectors (10)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-142, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

BotKick

What a server sends to have a client it takes for a program rather than a player leave the match. The header carries zero.

Definition.

In 1.0.0.135–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.135234
1.0.0.136–1.0.0.137232
1.0.0.138234
1.0.0.139–1.0.0.140233
1.0.0.141–1.0.0.143235
1.0.0.144–1.0.0.149222
1.0.0.150–3.1.0.0219
FieldTypeWhat it is
actionu8What to do. A client acts on 4 only. Values: 4 leave.
Vectors (7)

leave-on-1-0-0-135, leave-on-1-0-0-136, leave-on-1-0-0-138, leave-on-1-0-0-140, leave-on-1-0-0-143, leave-on-1-0-0-149, leave-on-1-0-0-154

PlayerDisconnected

What a server sends as a player’s client drops out. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.133

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131160
1.0.0.132–1.0.0.133161

A client shows a chat notice naming the player in their side’s colour, and nothing where player names no champion it knows, names its own champion, or the match is not under way.

FieldTypeWhat it is
championu32The player’s champion.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-133

In 1.0.0.134–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.134161
1.0.0.135163
1.0.0.136–1.0.0.137161
1.0.0.138163
1.0.0.139–1.0.0.143162
1.0.0.144–1.0.0.149152
1.0.0.150–3.1.0.0149

A client shows a chat notice naming the player in their side’s colour, and nothing where player names no champion it knows, names its own champion, or the match is not under way.

FieldTypeWhat it is
championu32The player’s champion.
flags1-byte bitsWho is told.
flags.toEnemiesbit 0Set to show the notice only to the other side; clear to show it only to the player’s own side. A client with no champion of its own shows it only where this is clear.
flags.unusedbit 1 to 7Unused; a server writes zero.
Vectors (7)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SoftReconnect

What a server sends, in pairs, to rebuild a client’s world without a new connection: the first marks what the client holds, the second deletes whatever is still marked. The header carries zero.

Definition.

In 1.0.0.143–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.143252
1.0.0.144–1.0.0.149239
1.0.0.150–3.1.0.0236
FieldTypeWhat it is
stage1-byte bitsWhich half of the pair.
stage.stagebit 0 to 10 to mark every unit, and every object kept until a checkpoint other than an inhibitor, also clearing floating text, any screen tint and the state of neutral camps; any other value to delete whatever is still marked.
stage.unusedbit 2 to 7Unused; a server writes zero.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ReconnectedInMatch

What a client sends right after the server answers its registration. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.142

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131164
1.0.0.132–1.0.0.134165
1.0.0.135167
1.0.0.136–1.0.0.137165
1.0.0.138167
1.0.0.139–1.0.0.142166

A client sends it once it has connected again to a match it was playing. A client dropped while playing reconnects by itself; one dropped while loading leaves instead.

FieldTypeWhat it is
loadingu8Zero once the client has taken StartGame, 1 before it.
Vectors (6)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-142

In 1.0.0.143–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.143166
1.0.0.144–1.0.0.149156
1.0.0.150–3.1.0.0153

A client sends it once it has connected again to a match it was playing. A client dropped while playing reconnects by itself; one dropped while loading leaves instead. It carries nothing of its own.

No body.

Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Reconnected

What a server sends to say a client has reconnected. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14316
1.0.0.144–3.1.0.015
FieldTypeWhat it is
clientu32The client, by the seat it occupies.
Vectors (1)

one-on-1-0-0-143

ClockConvergence

What a server sends about how its clock and a client’s are being brought together. The header carries zero.

Definition.

In every range of this book

Carried on clock, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131121
1.0.0.132–1.0.0.137122
1.0.0.138–1.0.0.143124
1.0.0.144–1.0.0.149118
1.0.0.150–3.1.0.0115
FieldTypeWhat it is
clientTimef32The client’s clock, in seconds, as the client reported it.
roundTripf32The round trip time the server measures, in seconds.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Combat

Attacks, damage, death and coming back. Spells are in Spells.

Attacking

A server says a unit is swinging at another with Attack, or with AttackFrom, which also says where the swinging unit stands. StopAttack breaks an attack off. AttackSpeedBounds puts a ceiling or a floor on how fast a unit attacks.

After StopAttack, a client clears the unit’s attack whatever the message’s flags ask besides.

A client moves the attacker to the place AttackFrom gives only where it stands more than 400 units from it.

A client asks its champion to attack with a MoveOrder naming the unit (see Movement). What the player then sees is what a server sends: the champion walking into range along a WaypointGroup, a swing for each Attack, and what each Damage shows.

How long a swing takes comes from the champion’s data and its attack speed.

A client ignores an Attack whose target it does not hold.

Damage shows a figure for the results that carry one, normal and critical; zero is the result that shows the unit as invulnerable, not a plain hit.

Of the other results of Damage, 1 shows nothing, 2 a dodge and 5 a miss; 3 is critical, and 4 and any above 5 are normal.

A client never walks its champion into range by itself: a server sends the WaypointGroup that takes it there.

A swing starts later by the timing byte of its Attack less 128, in hundredths of a second.

In 1.0.0.140–3.1.0.0

The health bar moves as replication states the health.

TargetUnit draws a unit’s targeting beam at what it is attacking.

TargetHeldChampion marks a unit as attacking the client’s own champion: a client sets the mark only where the message names that champion, and clears it for any other. A client takes it apart from TargetUnit.

Any unit takes TargetUnit, whatever it is attacking.

HoverTarget and HoverIndicator set and show the unit a unit’s hover indicator points at, and AttackIndicators shows or hides a unit’s attack indicators.

A champion’s clicks can be made to attack the ground with GroundAttackMode.

Damage

A server reports damage with Damage.

In 1.0.0.130–1.0.0.140

A client shows nothing for Damage unless it holds the unit hurt; it need not hold the unit dealing it.

Death

A unit’s death is UnitDied, a champion’s ChampionDied, a building’s BuildingDied, and an inhibitor’s InhibitorDied. ForceDeath puts a unit into its death.

A client ignores UnitDied or ChampionDied naming a unit already dead, and puts a unit down only where a killer is named.

A killer a client does not hold still puts the unit down.

A death that credits no killer still stops the unit’s cast and attack.

Either UnitDied or ChampionDied can leave the unit standing as a husk rather than dead, without its death animation or death screen.

How long a champion stays down is DeathTimer. Whether a client draws the world without colour while its champion is down is GreyscaleWhenDead. What led to a death is DeathHistory, which a client lays out for its player. An inhibitor’s state, and how long it lasts, is InhibitorState.

In 1.0.0.140

A client draws the world without colour for GreyscaleWhenDead only under one of its display settings, and otherwise ignores it.

Coming back

Revived puts a champion back on the field.

A server can instead bring a dead champion back at a place of its choosing with Respawned, which keeps the champion’s level, gold and spell ranks and restores its health.

Using a unit

A client sends UseObject as its player right-clicks a unit that can be used.

In 1.0.0.140–3.1.0.0

A client also sends UseObject for a unit its champion is attacking, as that unit changes side.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

Attack

What a server sends to say a unit is swinging at another. The header names the unit acting.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14313
1.0.0.144–3.1.0.012
FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it.
timingu8A shift in time: the value less 128, in hundredths of a second, from -1.28 to 1.27; 128 shifts nothing. It moves when the swing lets go and ends, and when the unit may next attack.
missileu32The name the missile this swing throws will answer to.
slotu8Which of the unit’s attacks this is.
Vectors (1)

one-on-1-0-0-143

AttackFrom

What a server sends to say a unit is swinging at another, carrying where the swinging unit stands as well as what it swings at. The header names the unit acting.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14329
1.0.0.144–3.1.0.026
FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it.
timingu8A shift in time: the value less 128, in hundredths of a second, from -1.28 to 1.27; 128 shifts nothing. It moves when the swing lets go and ends, and when the unit may next attack.
missileu32The name the missile this swing throws will answer to. Zero for a swing that throws none.
slotu8Which of the unit’s attacks this is.
fromXf32Where the swinging unit stands, along one ground axis, in world units.
fromZf32Where it stands, along the other, in world units.
Vectors (1)

one-on-1-0-0-143

StopAttack

What a server sends to break off an attack a unit is making. The header names the unit acting.

Definition.

In 1.0.0.130–1.0.0.143

Command 57 on events, sent by the server, reliable.

Whatever the flags, a client then clears the unit’s attack.

FieldTypeWhat it is
how1-byte bits
how.keepAnimatingbit 0Set to let the attack’s animation play on after the stop.
how.forceCastbit 1Set to make the attack land first where it has not already.
how.forceStopbit 2Set to stop the attack outright; keepAnimating, forceCast and destroyMissile still apply, so an attack not yet landed lands first where forceCast is set. Clear, a client may keep the attack going, by the unit’s state and the attack’s own data.
how.summonerSpellbit 3Set where the slot stopped is a summoner spell’s.
how.destroyMissilebit 4Set to destroy the attack’s missile, where it has one.
how.unusedbit 5 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14954
1.0.0.150–3.1.0.051

Whatever the flags, a client then clears the unit’s attack.

FieldTypeWhat it is
how1-byte bits
how.keepAnimatingbit 0Set to let the attack’s animation play on after the stop.
how.forceCastbit 1Set to make the attack land first where it has not already.
how.forceStopbit 2Set to stop the attack outright; a client does so anyway where it cannot see the unit, and keepAnimating and forceCast then have no effect.
how.summonerSpellbit 3Set where the slot stopped is a summoner spell’s.
how.destroyMissilebit 4Set to destroy the attack’s missile, where it has one.
how.unusedbit 5 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-149

Damage

What a server sends to say one unit hurt another. The header names the unit hurt, as target does.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131104
1.0.0.132–1.0.0.137105

A client shows the figure and nothing more: the health it shows for the unit is what replication carries, and this message leaves it as it was.

FieldTypeWhat it is
how1-byte bits
how.resultbit 0 to 6How the damage landed, and so what a client shows over the unit hurt. 4 shows the amount, 3 shows it as a critical strike, and 2 shows the word for a dodge in place of an amount.
how.unusedbit 7Unused; a server writes zero.
targetu32The unit hurt.
sourceu32The unit dealing it. A client shows nothing, notices included, unless it holds both target and source; the figure drifts from source toward target, and a champion source has the amount added to its damage dealt.
amountf32How much.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 107 on events, sent by the server, reliable.

The health a client shows for the unit is what replication carries, and this message leaves it as it was. Where target is the client’s own champion and a critical or plain amount is above zero, a client also flashes the screen.

FieldTypeWhat it is
how1-byte bits
how.resultbit 0 to 6How the damage landed, and so what a client shows over the unit hurt: 4 and 6 to 127 show the amount, 3 shows it as a critical strike, 2 shows the word for a dodge, 5 the word for a miss, 0 the word for invulnerable, and 1 nothing.
how.unusedbit 7Unused; a server writes zero.
targetu32The unit hurt.
sourceu32The unit dealing it. A client needs to hold only target: the figure drifts from source toward target, and a champion source has the amount added to its damage dealt, which is skipped where the client does not hold source.
amountf32How much.
damageKind1-byte bits
damageKind.kindbit 0 to 3What sort of damage it is, which sets how a client colours the figure: 0 red, 1 purple and 2 white. A client reads the low 4 bits only, so 16 shows as 0 and 17 as 1; low bits from 3 to 15 show as 0 does.
damageKind.unusedbit 4 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 101 on events, sent by the server, reliable.

A client shows the figure and nothing more: the health it shows for the unit is what replication carries, and this message leaves it as it was.

FieldTypeWhat it is
how1-byte bits
how.resultbit 0 to 6How the damage landed, and so what a client shows over the unit hurt. 4 shows the amount, 3 shows it as a critical strike, and 2 shows the word for a dodge in place of an amount.
how.unusedbit 7Unused; a server writes zero.
targetu32The unit hurt.
sourceu32The unit dealing it. A client shows nothing, notices included, unless it holds both target and source; the figure drifts from source toward target, and a champion source has the amount added to its damage dealt.
amountf32How much.
damageKind1-byte bits
damageKind.kindbit 0 to 3What sort of damage it is, which sets how a client colours the figure: 0 red, 1 purple and 2 white. Values from 3 up show as 0 does.
damageKind.unusedbit 4 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149101
1.0.0.150–3.1.0.098

A client shows the figure and nothing more: the health it shows for the unit is what replication carries, and this message leaves it as it was.

FieldTypeWhat it is
how1-byte bits
how.resultbit 0 to 2How the damage landed, and so what a client shows over the unit hurt. 4 shows the amount, 3 shows it as a critical strike, and 2 shows the word for a dodge in place of an amount.
how.unused1bit 3Unused; a server writes zero.
how.kindbit 4 to 5What sort of damage it is, which sets how a client colours the figure: 0 red, 1 purple and 2 white.
how.unusedbit 6 to 7Unused; a server writes zero.
targetu32The unit hurt.
sourceu32The unit dealing it. A client shows nothing, notices included, unless it holds both target and source; the figure drifts from source toward target, and a champion source has the amount added to its damage dealt.
amountf32How much.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

TargetUnit

What a server sends to say what a unit is attacking, whatever the unit attacked is. A client takes down whatever it was drawing for that unit’s last target and draws for the new one where the target and the unit’s own settings allow. The header names the unit acting.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131109
1.0.0.132–1.0.0.137110
1.0.0.138–1.0.0.143112
1.0.0.144–1.0.0.149106
1.0.0.150–3.1.0.0103
FieldTypeWhat it is
targetu32The unit being attacked, or zero where it is attacking nothing.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

TargetHeldChampion

What a server sends to mark that a unit is attacking a champion, or to take the mark away. The header names the unit. TargetUnit draws the targeting beam and never touches this mark.

Definition.

In 1.0.0.130–1.0.0.131

Command 200 on events, sent by the server, reliable.

A client marks the unit only where target is its own champion, drawing an indicator on the unit’s health bar unless the unit’s data turns it off; any other target clears the mark.

FieldTypeWhat it is
targetu32The champion being attacked.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134201
1.0.0.135203
1.0.0.136–1.0.0.137201
1.0.0.138203

A client marks the unit where target is nonzero, names a champion the client holds and the unit is on the other side, drawing an indicator on the unit’s health bar unless the unit’s data turns it off; any other target clears the mark.

FieldTypeWhat it is
targetu32The champion being attacked.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 202 on events, sent by the server, reliable.

A client marks the unit only where target is its own champion, drawing an indicator on the unit’s health bar unless the unit’s data turns it off; it does not check the unit’s side. Any other target, another champion included, clears the mark.

FieldTypeWhat it is
targetu32The champion being attacked.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143204
1.0.0.144–1.0.0.149192
1.0.0.150–3.1.0.0189

A client marks the unit where target is nonzero, names a champion the client holds and the unit is on the other side, drawing an indicator on the unit’s health bar unless the unit’s data turns it off; any other target clears the mark.

FieldTypeWhat it is
targetu32The champion being attacked.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

HoverTarget

What a server sends to set the unit a unit’s hover indicator points at. The header names the unit.

Definition.

In 1.0.0.154–3.1.0.0

Command 242 on events, sent by the server, reliable.

FieldTypeWhat it is
targetu32The unit pointed at.
Vectors (1)

one-on-1-0-0-154

HoverIndicator

What a server sends to turn a unit’s hover indicator on or off. The header names the unit.

Definition.

In 1.0.0.154–3.1.0.0

Command 243 on events, sent by the server, reliable.

FieldTypeWhat it is
enabledu80 turns it off; any other value on.
Vectors (1)

one-on-1-0-0-154

UnitDied

What a server sends to say a unit died, to everyone who can see it. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131166
1.0.0.132–1.0.0.134167
1.0.0.135169
1.0.0.136–1.0.0.137167

Where killer names a unit it knows, a client announces the kill for that unit, then the one kind picks. Where the unit is not already dead, it cancels the unit’s cast and attack, and only where killer is nonzero puts the unit down, by stayDown and standing.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu8Unused; a server writes zero.
damageSourceu8Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
standingu8Set to leave the unit standing as a husk rather than dead: no time of death, and for a champion no death animation and no death screen. A turret kept after death behaves so whatever this says. Any nonzero value sets it.
Vectors (4)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136

In 1.0.0.138–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138169
1.0.0.139–1.0.0.143168
1.0.0.144–1.0.0.146158

Where killer names a unit it knows, a client announces the kill for that unit, then the one kind picks. Where the unit is not already dead, it cancels the unit’s cast and attack, and only where killer is nonzero puts the unit down, by stayDown and standing.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu8Unused; a server writes zero.
damageSourceu8Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
standingu8Set to leave the unit standing as a husk rather than dead: no time of death, and for a champion no death animation and no death screen. A turret kept after death behaves so whatever this says. Any nonzero value sets it.
kindu8Which kill a client announces for killer: zero a neutral monster’s, nonzero a minion’s.
Vectors (3)

one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–1.0.0.153

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149158
1.0.0.150–1.0.0.153155

Where killer names a unit it knows, a client announces the kill for that unit, then the one kind picks. Where the unit is not already dead, it cancels the unit’s cast and attack, and only where killer is nonzero puts the unit down, by stayDown and standing.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu8Unused; a server writes zero.
damageSourceu8Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
how1-byte bits
how.standingbit 0Set to leave the unit standing as a husk rather than dead: no time of death, and for a champion no death animation and no death screen. A turret kept after death behaves so whatever this says.
how.unusedbit 1 to 7Unused; a server writes zero.
kindu8Which kill a client announces for killer: zero a neutral monster’s, nonzero a minion’s.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-152

In 1.0.0.154–3.1.0.0

Command 155 on events, sent by the server, reliable.

Where killer names a unit it knows, a client announces the kill for that unit, then the one kind picks. Where the unit is not already dead, it cancels the unit’s cast and attack, and only where killer is nonzero puts the unit down, by stayDown and standing.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu32Unused; a server writes zero.
damageSourceu32Unused; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
how1-byte bits
how.standingbit 0Set to leave the unit standing as a husk rather than dead: no time of death, and for a champion no death animation and no death screen. A turret kept after death behaves so whatever this says.
how.unusedbit 1 to 7Unused; a server writes zero.
kindu8Which kill a client announces for killer: zero a neutral monster’s, nonzero a minion’s.
Vectors (1)

one-on-1-0-0-154

ChampionDied

What a server sends to say a champion died. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13197
1.0.0.132–1.0.0.13798

A client ignores it where killer is zero or the champion is already dead.

FieldTypeWhat it is
killeru32The unit credited with the death. Where it names the champion that died, a client still plays the death.
damageTypeu8Unused; a server writes zero. Values: 0 physical, 1 magic, 2 true.
damageSourceu8Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero. Values: 0 raw, 1 internalRaw, 2 periodic, 3 proc, 4 reactive, 5 onDeath, 6 spell, 7 attack, 8 default, 9 areaSpell, 10 persistentSpell, 11 pet.
stayDownf32How long the champion stays down, in seconds. A client counts its respawn timer down from it.
how1-byte bits
how.zombiebit 0Set to leave the champion standing in a zombie state rather than dead: no death animation and no death screen.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

physical-on-1-0-0-131, physical-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 100 on events, sent by the server, reliable.

A client ignores it where killer is zero or the champion is already dead.

FieldTypeWhat it is
killeru32The unit credited with the death. Where it names the champion that died, a client still plays the death.
damageTypeu8Unused; a client reads nothing here. Values: 0 physical, 1 magic, 2 true.
damageSourceu8Unused; a client reads nothing here. Values: 0 raw, 1 internalRaw, 2 periodic, 3 proc, 4 reactive, 5 onDeath, 6 spell, 7 attack, 8 default, 9 areaSpell, 10 persistentSpell, 11 pet.
stayDownf32How long the champion stays down, in seconds. A client counts its respawn timer down from it.
how1-byte bits
how.zombiebit 0Set to leave the champion standing in a zombie state rather than dead: no death animation and no death screen. A client tests the whole byte, so any nonzero byte gives a zombie.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

physical-on-1-0-0-143

In 1.0.0.144–1.0.0.149

Command 94 on events, sent by the server, reliable.

A client ignores it where killer is zero or the champion is already dead.

FieldTypeWhat it is
killeru32The unit credited with the death. Where it names the champion that died, a client still plays the death.
damageTypeu8Unused; a server writes zero. Values: 0 physical, 1 magic, 2 true.
damageSourceu8Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero. Values: 0 raw, 1 internalRaw, 2 periodic, 3 proc, 4 reactive, 5 onDeath, 6 spell, 7 attack, 8 default, 9 areaSpell, 10 persistentSpell, 11 pet.
stayDownf32How long the champion stays down, in seconds. A client counts its respawn timer down from it.
how1-byte bits
how.zombiebit 0Set to leave the champion standing in a zombie state rather than dead: no death animation and no death screen.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

physical-on-1-0-0-149

In 1.0.0.150–1.0.0.153

Command 91 on events, sent by the server, reliable.

A client ignores it where killer is zero or the champion is already dead.

FieldTypeWhat it is
killeru32The unit credited with the death. Where it names the champion that died, a client still plays the death.
damageTypeu8Unused; a server writes zero. Values: 0 physical, 1 magic, 2 true.
damageSourceu8Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero. Values: 0 raw, 1 internalRaw, 2 periodic, 3 proc, 4 reactive, 5 onDeath, 6 spell, 7 attack, 8 default, 9 areaSpell, 10 persistentSpell, 11 pet.
stayDownf32How long the champion stays down, in seconds. A client counts its respawn timer down from it.
how1-byte bits
how.zombiebit 0Set to leave the champion standing in a zombie state rather than dead: no death animation and no death screen.
how.unusedbit 1 to 7Unused; a server writes zero.
kindu8Unused; a client reads it for nothing in this message.
Vectors (1)

physical-on-1-0-0-152

In 1.0.0.154–3.1.0.0

Command 91 on events, sent by the server, reliable.

A client ignores it where killer is zero or the champion is already dead.

FieldTypeWhat it is
killeru32The unit credited with the death. Where it names the champion that died, a client still plays the death.
damageTypeu32The kind of the killing blow. A client shows nothing for it. Values: 0 physical, 1 magic, 2 true.
damageSourceu32Where the killing blow came from. A client shows nothing for it. Values: 0 raw, 1 internalRaw, 2 periodic, 3 proc, 4 reactive, 5 onDeath, 6 spell, 7 attack, 8 default, 9 areaSpell, 10 persistentSpell, 11 pet.
stayDownf32How long the champion stays down, in seconds. A client counts its respawn timer down from it.
how1-byte bits
how.zombiebit 0Set to leave the champion standing in a zombie state rather than dead: no death animation and no death screen.
how.unusedbit 1 to 7Unused; a server writes zero.
kindu8It has no effect in this message.
Vectors (1)

physical-on-1-0-0-154

BuildingDied

What a server sends when a building is destroyed. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.131

Command 142 on events, sent by the server, reliable.

FieldTypeWhat it is
attackeru32The unit that destroyed it. A client reads nothing here.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.137

Command 143 on events, sent by the server, reliable.

FieldTypeWhat it is
attackeru32The unit that destroyed it.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138

Command 145 on events, sent by the server, reliable.

FieldTypeWhat it is
attackeru32The unit that destroyed it.
lastChampionu32Unused; a client reads nothing here.
Vectors (1)

one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 144 on events, sent by the server, reliable.

A client reads nothing after the header. It plays the destruction once for each building and ignores any repeat.

FieldTypeWhat it is
attackeru32The unit that destroyed it. A client reads nothing here.
lastChampionu32Unused; a client reads nothing here.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.153

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149138
1.0.0.150–1.0.0.153135
FieldTypeWhat it is
attackeru32The unit that destroyed it.
lastChampionu32Unused; a client reads nothing here.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-152

In 1.0.0.154–3.1.0.0

Command 135 on events, sent by the server, reliable.

FieldTypeWhat it is
attackeru32The unit that destroyed it.
lastChampionu32For an inhibitor, the unit credited with destroying it; zero credits the attacker. A client reads it for nothing else.
Vectors (1)

one-on-1-0-0-154

ForceDeath

What a server sends to put a unit into its death. The header names the unit.

Definition.

In 1.0.0.130

Command 30 on events, sent by the server, reliable.

No body.

Vectors (1)

one-on-1-0-0-130

In 1.0.0.131–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.131–1.0.0.14330
1.0.0.144–3.1.0.027
FieldTypeWhat it is
durationf32How long it stays down, in seconds.
Vectors (1)

one-on-1-0-0-143

GreyscaleWhenDead

What a server sends to say whether a client draws the world without colour while its champion is down. The header names a champion: that of the player it is sent to.

Definition.

In 1.0.0.130–1.0.0.131

Command 178 on events, sent by the server, reliable.

FieldTypeWhat it is
state1-byte bits
state.enabledbit 0Set where a client draws the world without colour while its champion is down; clear, it does not use that look. A client reads it only on its own champion.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134179
1.0.0.135181
1.0.0.136–1.0.0.137179
1.0.0.138181
FieldTypeWhat it is
state1-byte bits
state.enabledbit 0Set where the world is drawn without colour. Clear, it does not stop a client drawing the world without colour while its champion is down.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 180 on events, sent by the server, reliable.

FieldTypeWhat it is
state1-byte bits
state.enabledbit 0Set where the world is drawn without colour while the champion is down; clear, it is drawn in colour. It starts set as the champion is created.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149169
1.0.0.150–3.1.0.0166
FieldTypeWhat it is
state1-byte bits
state.enabledbit 0Set where the world is drawn without colour. Clear, it does not stop a client drawing the world without colour while its champion is down.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

DeathHistory

What a server sends to say what led to a death, so the client can lay it out. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.132

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 109, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageExtrau8event = 3Read with the stage and shown nowhere; a server writes zero.
entries[].stagePaddingbytes, 3event = 3Unused; a server writes zero.
entries[].damagerecordevent = 13 or 14How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 21How much gold, as shown.
entries[].valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 24The critical strike’s damage, as shown.
entries[].spreeu32event = 42How many kills in a row, as shown.
entries[].earnedrecordevent = 22Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 39 or 40How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 41The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 61What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 0The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
Vectors (2)

another-on-1-0-0-132, one-on-1-0-0-132

In 1.0.0.133

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 110, and so which fields follow. Values: 0 died, 2 championDied, 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 3 or 4A client reads it and shows nothing for it; a server writes zero.
entries[].stageExtrau8event = 3 or 4Read with the stage and shown nowhere; a server writes zero.
entries[].stagePaddingbytes, 3event = 3 or 4Unused; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 0The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
Vectors (2)

another-on-1-0-0-133, one-on-1-0-0-133

In 1.0.0.134

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 109, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 3A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 13 or 14How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 21How much gold, as shown.
entries[].valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 24The critical strike’s damage, as shown.
entries[].spreeu32event = 42How many kills in a row, as shown.
entries[].earnedrecordevent = 22Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 39 or 40How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 41The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 61What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 0The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
Vectors (1)

one-on-1-0-0-134

In 1.0.0.135–1.0.0.137

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 110, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 itemCallout, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 3A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 13 or 14How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 21How much gold, as shown.
entries[].valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 24The critical strike’s damage, as shown.
entries[].spreeu32event = 42How many kills in a row, as shown.
entries[].earnedrecordevent = 22Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 39 or 40How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 41The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 61What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 0The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].calloutrecordevent = 76The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.139

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 115, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 113 particleLimit.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-139

In 1.0.0.140

Command 36 on events, sent by the server, reliable.

A client ignores the whole message where killer is zero. Where it does not hold killer, it still takes span, sourceType and the entries, and leaves only the killer’s side unrecorded. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 116, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 116, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-141

In 1.0.0.142

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 120, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 117 or 118 or 119 or 120Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-142

In 1.0.0.143

Command 36 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.
entryCountu32How many entries follow.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 120, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 117 or 118 or 119 or 120Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 33 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.
entryCountu32How many entries follow.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 119, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32Unused; a client reads nothing here.
entries[].damage.parent4-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15 to 31Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.spellLevelu32The level of the spell it came from.
entries[].heal.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32Unused; a client reads nothing here.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.spellLevelu32The level of the spell it came from.
entries[].effect.parentSourceu32What sort of source the parent script is, as sourceKind.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32Unused; a client reads nothing here.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 116 or 117 or 118 or 119Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147

Command 33 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.
entryCountu32How many entries follow.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 119, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].damage.parent2-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].heal.parent2-byte bitsWhere the spell or effect came from.
entries[].heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].heal.parent.unusedbit 15Unused; a server writes zero.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].effect.parent2-byte bitsWhere the spell or effect came from.
entries[].effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].effect.parent.unusedbit 15Unused; a server writes zero.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 116 or 117 or 118 or 119Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-147

In 1.0.0.148

Command 33 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.
entryCountu32How many entries follow.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 121, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].damage.parent2-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].heal.parent2-byte bitsWhere the spell or effect came from.
entries[].heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].heal.parent.unusedbit 15Unused; a server writes zero.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].effect.parent2-byte bitsWhere the spell or effect came from.
entries[].effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].effect.parent.unusedbit 15Unused; a server writes zero.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-148

In 1.0.0.149–1.0.0.151

Command 33 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.
entryCountu32How many entries follow.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].damage.parent2-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76 or 122 or 123What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].heal.parent2-byte bitsWhere the spell or effect came from.
entries[].heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].heal.parent.unusedbit 15Unused; a server writes zero.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].effect.parent2-byte bitsWhere the spell or effect came from.
entries[].effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].effect.parent.unusedbit 15Unused; a server writes zero.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.
Vectors (1)

one-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 33 on events, sent by the server, reliable.

A client ignores the whole message unless it holds killer. Each entry’s size after event and source follows from event alone. An entry whose target the client does not hold is left out.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death.
spanf32The time the entries below cover, in seconds.
sourceTypeu8What sort of source the killer was.
blobLengthu32How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.
entryCountu32How many entries follow.
entriescount in entryCount × recordWhat happened to the unit before it died, packed one after another.
entries[].timef32When it happened, in match seconds.
entries[].countu16How many times.
entries[].eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 itemChanged, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
entries[].damagerecordevent = 14 or 15How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical damage.
entries[].damage.truef32True damage.
entries[].damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].damage.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].damage.parent2-byte bitsWhere the spell or effect came from.
entries[].damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].damage.parent.unusedbit 15Unused; a server writes zero.
entries[].spentu32event = 22How much gold, as shown.
entries[].valueu32event = 24 or 76 or 78 or 122 or 123What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 25The critical strike’s damage, as shown.
entries[].spreeu32event = 43How many kills in a row, as shown.
entries[].earnedrecordevent = 23Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 40 or 41How much health, and from what.
entries[].heal.amountf32How much health, as shown.
entries[].heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].heal.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].heal.parent2-byte bitsWhere the spell or effect came from.
entries[].heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].heal.parent.unusedbit 15Unused; a server writes zero.
entries[].effectrecordevent = 42The effect, and where it came from.
entries[].effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
entries[].effect.scriptu32The spell or effect, by the number its name gives, shown by name.
entries[].effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
entries[].effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
entries[].effect.parent2-byte bitsWhere the spell or effect came from.
entries[].effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
entries[].effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
entries[].effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
entries[].effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
entries[].effect.parent.unusedbit 15Unused; a server writes zero.
entries[].assistrecordevent = 62What one unit did toward a death.
entries[].assist.lastHitf32When it last dealt damage, in match seconds.
entries[].assist.physicalf32Physical damage it dealt.
entries[].assist.magicalf32Magical damage it dealt.
entries[].assist.truef32True damage it dealt.
entries[].assist.sharef32What it carries is not recorded for this range; a server writes zero.
entries[].assist.goldf32What it carries is not recorded for this range; a server writes zero.
entries[].assist.creditedu32What it carries is not recorded for this range; a server writes zero.
entries[].killrecordevent = 1The reward, and who shared it.
entries[].kill.goldf32The gold the kill gave.
entries[].kill.assistCountu32How many of the twelve places below name a unit.
entries[].kill.assists12 × u32The units that helped, then zeros.
entries[].monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
entries[].monster.skinHashu32The number the name of the killer’s look gives.
entries[].monster.skini32Which look the killer wears.
entries[].calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
entries[].callout.itemu32The item, shown by name and number.
entries[].callout.quantityu32How many, shown as two digits.
entries[].callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
entries[].callout.sideu32The side of the player who pointed it out.

InhibitorState

What a server sends to change the state of an inhibitor, and say how long the new state lasts. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 45 on events, sent by the server, reliable.

A client ignores the whole message, duration included, unless alive differs from the inhibitor’s current state.

FieldTypeWhat it is
state2-byte bits
state.durationbit 0 to 14How long the state lasts, in whole seconds; zero where alive is set.
state.unusedbit 15Unused; a server writes zero.
life1-byte bits
life.alivebit 0Set while the inhibitor stands, with duration zero; clear while a state lasts the duration given.
life.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 42 on events, sent by the server, reliable.

FieldTypeWhat it is
state2-byte bits
state.durationbit 0 to 14How long the state lasts, in seconds; zero where alive is set.
state.unusedbit 15Unused; a server writes zero.
life1-byte bits
life.alivebit 0Set while the inhibitor stands, with duration zero; clear while a state lasts the duration given.
life.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Command 42 on events, sent by the server, reliable.

FieldTypeWhat it is
state2-byte bits
state.durationbit 0 to 14How long the state lasts, in seconds; zero where alive is set.
state.alivebit 15Set while the inhibitor stands, with duration zero; clear while a state lasts the duration given.

Revived

What a server sends to put a champion back on the field. The header names the unit this is about.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14349
1.0.0.144–3.1.0.046
FieldTypeWhat it is
atXf32Where it returns, along one ground axis, in world units.
atYf32Where it returns, in height, in world units. A client places it there as given.
atZf32Where it returns, along the other ground axis, in world units.
resourcef32What its spendable resource stands at on return.
Vectors (1)

one-on-1-0-0-143

Respawned

What a server sends to bring a dead champion back at a place. The header names the champion. A client keeps the champion’s level, experience, gold, maxima and spell ranks, and plays the coming back.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13177
1.0.0.132–1.0.0.13778
1.0.0.138–1.0.0.14380
1.0.0.144–1.0.0.14974
1.0.0.150–3.1.0.071

The champion comes back with full health, and for its own champion a client moves the camera onto it where the player asked for that. A client sets the champion on the nearest open ground.

FieldTypeWhat it is
xf32Where it comes back, along one ground axis, in world units.
yf32Where it comes back, in height, in world units. A client places it there as given.
zf32Where it comes back, along the other ground axis, in world units.
resourcef32Its resource, such as mana, once back.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

UseObject

What a client sends to use a unit: as its player right-clicks a unit its character data makes usable by them and off its use cooldown. The header names the sender’s champion.

Definition.

In every range of this book

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14363
1.0.0.144–1.0.0.14960
1.0.0.150–3.1.0.057

A client also sends it as a unit its champion is attacking changes side (TeamChanged), whether usable or not.

FieldTypeWhat it is
targetu32The unit to use.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-149

Spells

Casting, levelling spells, cooldowns, and the missiles casts send out.

Casting

A client asks to cast from one of its champion’s slots with CastSpell, at a point or at a unit. A server answers with SpellCastAnswer, which says the unit is casting and carries the whole casting: the spell, its level, its target, its timings and the missile it will send. A client shows the cast from that answer; CastSpell alone shows nothing. A server then sets how long until the slot is ready with SpellCooldown, and, for a spell with uses, how many are left with SpellCharges. A client reports a cooldown it sets by itself with CooldownSet.

Which slots a client lets its player cast from at all is a value of the champion’s that replication carries.

A client casts nothing for a casting record whose length disagrees with its count of targets.

The casting record names the spell by the hash of its name, and a client casts nothing for a spell it has not loaded.

A spell held down before it is let go charges where the cast answer leaves its flags clear. While it charges, a client sends SpellCharge with the cursor’s position, and once more as the charge ends.

A server ends a spell’s aiming on a client with CancelTargeting, shows and takes away a spell’s targeter on a client’s own champion with SpellTargeterShown and SpellTargeterHidden, and sets which spells a unit casts by itself with Autocast.

Levelling

A client asks to put a point into a spell with UpgradeSpell. A server answers with SpellUpgraded, and a client shows the new level; SpellLevel sets a level outright. The spell points a champion has to spend are what LevelUp carries. A server can set how far each spell can be raised, and at which champion levels, with SpellRankLimits.

A client spends the point as it sends UpgradeSpell. LevelUp states the champion’s level and its points.

What a slot holds

SpellInSlot puts a spell in a slot. SpellSlotChanged changes one thing about a spell already there: how it is aimed, its name, its ranges, its icon, or the units it is cast from. SpellTargetingChanged, SpellNameChanged, SpellRangeChanged, SpellIconChanged and SpellOffsetTargetChanged each change one of these alone, and SpellSlotChangedForOwner changes a slot as SpellSlotChanged does, for the owner’s client alone. SpellToggled turns a spell on or off, SpellNumbers fills in the numbers a client shows beside a unit’s spells, and SpellCostChanged changes what a spell costs. A server can also draw rings around its player’s cursor with CursorRings.

A marker has no slots. A server MUST NOT send SpellInSlot naming a marker: a client fails on it, whatever the slot.

Missiles

A missile is named by its own id. MissileState says where one is and what it is doing, with the casting that sent it; MissileLaunched says the missile a swing or a cast prepared has left the unit. A server changes what a missile flies at with MissileRetarget and how fast with MissileSpeed, says what it struck with MissileHits, and is rid of it with DestroyMissile. A missile that bounces from unit to unit does so with BounceMissile, and a server can name in advance the units a chain missile will strike with ChainTargets. MissileCourse sets where a missile starts and how fast it flies, and restarts its flight. A client reports where a missile that flies straight is, and where it is going, with MissileReport, which a server MAY ignore.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

CastSpell

What a client sends to cast something from a slot, at a point or at a unit. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131162
1.0.0.132–1.0.0.134163
1.0.0.135165
1.0.0.136–1.0.0.137163
1.0.0.138165
FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell: the same as x and z for a point or a unit; for a line dragged out, its far end, cut to the spell’s length; for a cone, its far point.
endYf32The height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 164 on requests, sent by the client, reliable.

FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from: whichever slot is being aimed, 0 to 51, the champion’s fourth spell included.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell: the same as x and z for a point or a unit; for a line dragged out, its far end, cut to the spell’s length; for a cone, its far point.
endYf32The height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 154 on requests, sent by the client, reliable.

FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell: the same as x and z for a point or a unit; for a line dragged out, its far end, cut to the spell’s length; for a cone, its far point.
endYf32The height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147

Command 154 on requests, sent by the client, reliable.

FieldTypeWhat it is
how1-byte bits
how.slotbit 0 to 5Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells.
how.summonerSpellbit 6Set where the slot is a summoner spell’s.
how.clickedbit 7Set where the cast began with a click on the spell’s button rather than its key.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell: the same as x and z for a point or a unit; for a line dragged out, its far end, cut to the spell’s length; for a cone, its far point.
endYf32The height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (1)

one-on-1-0-0-147

In 1.0.0.148–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.148–1.0.0.149154
1.0.0.150–3.1.0.0151
FieldTypeWhat it is
how1-byte bits
how.slotbit 0 to 5Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells.
how.summonerSpellbit 6Set where the slot is a summoner spell’s.
how.clickedbit 7Set where the cast began with a click on the spell’s button rather than its key.
xf32A point on the ground the cast is described by, along one axis, in world units.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell: the same as x and z for a point or a unit; for a line dragged out, its far end, cut to the spell’s length; for a cone, its far point.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SpellCastAnswer

What a server sends to say a unit is casting a spell. The header names the unit casting, as the casting inside does.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131189
1.0.0.132–1.0.0.134190
1.0.0.135192
1.0.0.136–1.0.0.137190
FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.
Vectors (4)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136

In 1.0.0.138–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138192
1.0.0.139–1.0.0.140191
1.0.0.141–1.0.0.143193
1.0.0.144–1.0.0.146181
FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
endChargeu8Set where the cast ends a charge: a client drops the message unless the caster is charging that same spell. Clear lets a client charge a spell that charges, sending SpellCharge as it does. Any nonzero value sets it.
castSpellCastThe casting.
Vectors (4)

one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149181
1.0.0.150–3.1.0.0178
FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
how1-byte bits
how.endChargebit 0Set where the cast ends a charge: a client drops the message unless the caster is charging that same spell. Clear lets a client charge a spell that charges, sending SpellCharge as it does.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SpellCooldown

What a server sends to set how long until one of a unit’s spells is ready. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131138
1.0.0.132–1.0.0.137139
1.0.0.138141
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
timeLeftf32How long is left, in seconds.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.141

Command 140 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
timeLeftf32How long is left, in seconds.
Vectors (1)

one-on-1-0-0-141

In 1.0.0.142–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.142–1.0.0.143140
1.0.0.144–1.0.0.146134
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
timeLeftf32How long is left, in seconds.
then1-byte bits
then.speakWhenReadybit 0Set where the champion says something once the wait is over; a client does so for its own champion’s fourth slot.
then.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149134
1.0.0.150–3.1.0.0131
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot.
which.summonerSpellbit 6Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
which.speakWhenReadybit 7Set where the champion says something once the wait is over; a client does so for its own champion’s fourth slot.
timeLeftf32How long is left, in seconds.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

CooldownSet

What a client sends where a script of its own sets a spell slot’s cooldown. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.141

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131138
1.0.0.132–1.0.0.137139
1.0.0.138141
1.0.0.139–1.0.0.141140
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
cooldownf32The cooldown set, in seconds.
Vectors (4)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-141

In 1.0.0.142–1.0.0.146

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.142–1.0.0.143140
1.0.0.144–1.0.0.146134
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
cooldownf32The cooldown set, in seconds.
then1-byte bits
then.unsetbit 0Always clear.
then.unusedbit 1 to 7Never written by a client.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-146

SpellCharge

What a client sends while its player charges a spell, and as the charge ends. A spell charges where its cast answer (SpellCastAnswer) leaves the end-of-charge flag clear. A client sends updates at the spell’s own interval, at least 0.1 seconds, where the spell has one; it ends the charge as the key is pressed again, or released where casting on release, or as the window loses focus. The header names the sender’s champion.

Definition.

In 1.0.0.135–1.0.0.137

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.135244
1.0.0.136–1.0.0.137242
FieldTypeWhat it is
flags1-byte bitsWhich spell, and whether the charge ends.
flags.summonerSpellbit 0Set where the slot is a summoner spell’s.
flags.slotbit 1 to 7The spell’s slot.
xf32Where the cursor points on the ground, in world units.
yf32Its height, in world units.
zf32Where the cursor points on the ground, in world units.
Vectors (2)

one-on-1-0-0-135, one-on-1-0-0-136

In 1.0.0.138–1.0.0.146

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.138243
1.0.0.139–1.0.0.140242
1.0.0.141–1.0.0.142244
1.0.0.143243
1.0.0.144–1.0.0.146230
FieldTypeWhat it is
flags1-byte bitsWhich spell, and whether the charge ends.
flags.summonerSpellbit 0Set where the slot is a summoner spell’s.
flags.slotbit 1 to 7The spell’s slot.
endu8Set as the charge ends, clear for an update. A whole byte.
xf32Where the cursor points on the ground, in world units.
yf32Its height, in world units.
zf32Where the cursor points on the ground, in world units.
Vectors (5)

one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-142, one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149230
1.0.0.150–3.1.0.0227
FieldTypeWhat it is
flags1-byte bitsWhich spell, and whether the charge ends.
flags.slotbit 0 to 5The spell’s slot.
flags.summonerSpellbit 6Set where the slot is a summoner spell’s.
flags.endbit 7Set as the charge ends, clear for an update.
xf32Where the cursor points on the ground, in world units.
yf32Its height, in world units.
zf32Where the cursor points on the ground, in world units.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

CancelTargeting

What a server sends to end a spell’s targeting on a client. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131139
1.0.0.132–1.0.0.137140
1.0.0.138142

A client cancels the aiming only where that slot is being aimed, and otherwise does nothing. A server sends it to clients watching a match.

FieldTypeWhat it is
which1-byte bitsWhich spell.
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot is a summoner slot.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 141 on events, sent by the server, reliable.

A client cancels the aiming only where that slot is being aimed, and otherwise does nothing. It acts on the message for any champion it holds, watching a match or not.

FieldTypeWhat it is
which1-byte bitsWhich spell.
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot is a summoner slot.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 135 on events, sent by the server, reliable.

A client cancels the aiming only where that slot is being aimed, and otherwise does nothing. A server sends it to clients watching a match.

FieldTypeWhat it is
which1-byte bitsWhich spell.
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot is a summoner slot.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149135
1.0.0.150–3.1.0.0132

A client cancels the aiming only where that slot is being aimed, and otherwise does nothing. A server sends it to clients watching a match.

FieldTypeWhat it is
which1-byte bitsWhich spell.
which.slotbit 0 to 5Which slot.
which.summonerSpellbit 6Set where the slot is a summoner slot.
which.unusedbit 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

Autocast

What a server sends to set which spells a unit casts by itself. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.139

Command 34 on events, sent by the server, reliable.

FieldTypeWhat it is
sloti8The slot cast by itself, from 0 to 51; -1 leaves none.
Vectors (1)

one-on-1-0-0-139

In 1.0.0.140–1.0.0.143

Command 34 on events, sent by the server, reliable.

FieldTypeWhat it is
sloti8The slot cast by itself, from 0 to 51. A client ignores the whole message, setting neither slot, where either is outside that range.
criticalSloti8The slot cast by itself on a critical strike, from 0 to 51.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 31 on events, sent by the server, reliable.

FieldTypeWhat it is
sloti8The slot cast by itself, from 0 to 62; any other value leaves it unset.
criticalSloti8The slot cast by itself on a critical strike, under the same terms.

UpgradeSpell

What a client sends to put a point into a spell. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.143

Command 62 on requests, sent by the client, reliable.

FieldTypeWhat it is
slotu8Which slot is being raised.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14959
1.0.0.150–3.1.0.056
FieldTypeWhat it is
slotu8Which slot is being raised.
how1-byte bits
how.evolvebit 0Set where the player spends an evolution point on the slot rather than levelling it.
how.unusedbit 1 to 7Always clear.
Vectors (1)

one-on-1-0-0-149

SpellUpgraded

What a server sends to confirm a unit’s spell went up a level. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 24 on clock, sent by the server, reliable.

A client takes it the same on every channel: it sets the slot’s level to level, at most 6, and keeps pointsLeft.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at.
pointsLeftu8How many spell points are left unspent.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 21 on clock, sent by the server, reliable.

Arriving on the events channel instead, it raises the spell as well, and a client shows the new level either way.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at.
pointsLeftu8How many spell points are left unspent.

SpellLevel

What a server sends to set the level of one of a unit’s spells. The header names the unit this is about.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13194
1.0.0.132–1.0.0.13795
1.0.0.138–1.0.0.14397
1.0.0.144–1.0.0.14991
1.0.0.150–3.1.0.088
FieldTypeWhat it is
slotu32Which slot. A client raises that slot’s level by one, to at most 6.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SpellInSlot

What a server sends to put a spell in one of a unit’s slots. A server names in the header the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131115
1.0.0.132–1.0.0.137116
FieldTypeWhat it is
unitu32The unit whose slot this is.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
slotu8Which slot.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 118 on events, sent by the server, reliable.

A client reads nothing of the header: it acts on unit, and ignores the message where it holds no such unit.

FieldTypeWhat it is
unitu32The unit whose slot this is.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
slotu8Which slot.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149112
1.0.0.150–3.1.0.0109
FieldTypeWhat it is
unitu32The unit whose slot this is.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
slotu8Which slot.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SpellSlotChanged

What a server sends to change one thing about a spell already in a unit’s slot. The kind settles what follows it. The header names the unit this is about.

Definition.

In 1.0.0.150–1.0.0.151

Command 23 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 6Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
which.unusedbit 7Unused; a server writes zero.
kindu8What changes. A client does nothing for any other value. Values: 0 targeting, 1 name, 2 range, 3 icon, 4 offsetTargets.
nametext, ended by a zero bytekind = 1The name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.
targetingu8kind = 0How the spell is aimed.
rangef32kind = 2How far the spell is cast, in world units.
iconu8kind = 3Which icon the spell shows.
offsetFromu32kind = 4The unit the slot’s targeting indicator works from instead of the caster, while the client holds it; one it does not hold resets this to none.
Vectors (6)

icon-on-1-0-0-150, name-on-1-0-0-150, offset-targets-on-1-0-0-150, one-on-1-0-0-150, range-on-1-0-0-150, targeting-on-1-0-0-150

In 1.0.0.152–3.1.0.0

Command 23 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 6Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
which.unusedbit 7Unused; a server writes zero.
kindu8What changes. A client does nothing for any other value. Values: 0 targeting, 1 name, 2 range, 3 icon, 4 offsetTargets.
nametext, ended by a zero bytekind = 1The name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.
targetingu8kind = 0How the spell is aimed.
rangef32kind = 2How far the spell is cast, in world units.
iconu8kind = 3Which icon the spell shows.
targetCountu8kind = 4How many units follow.
targetscount in targetCount × u32kind = 4The units the spell is cast from.

SpellTargetingChanged

What a server sends to change how a spell already in a unit’s slot is aimed. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 26 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
targetingu8How the spell is aimed.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 23 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
targetingu8How the spell is aimed.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–1.0.0.149

Command 23 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 6Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
which.unusedbit 7Unused; a server writes zero.
targetingu8How the spell is aimed.
Vectors (1)

one-on-1-0-0-149

SpellNameChanged

What a server sends to put another spell into a slot of a unit’s that already holds one. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 53 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 50 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–1.0.0.149

Command 50 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 6Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
which.unusedbit 7Unused; a server writes zero.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.
Vectors (1)

one-on-1-0-0-149

SpellRangeChanged

What a server sends to change how far the spell in one of a unit’s slots is cast. The header names the unit.

Definition.

In 1.0.0.135–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.135243
1.0.0.136–1.0.0.137241
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.unusedbit 7Unused; a server writes zero.
rangef32How far the spell is cast from now on, in world units.
Vectors (2)

one-on-1-0-0-135, one-on-1-0-0-136

SpellIconChanged

What a server sends to change which icon a spell already in a unit’s slot shows. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 54 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
iconu8Which icon the spell shows.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 51 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
iconu8Which icon the spell shows.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–1.0.0.149

Command 51 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 6Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
which.unusedbit 7Unused; a server writes zero.
iconu8Which icon the spell shows.
Vectors (1)

one-on-1-0-0-149

SpellOffsetTargetChanged

What a server sends to change the unit a spell already in a unit’s slot is cast from. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 55 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
targetu32The unit the slot’s targeting indicator works from instead of the caster, while the client holds it; one it does not hold resets this to none.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 52 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
targetu32The unit the slot’s targeting indicator works from instead of the caster, while the client holds it; one it does not hold resets this to none.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–1.0.0.149

Command 52 on events, sent by the server, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 5Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 6Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it.
which.unusedbit 7Unused; a server writes zero.
targetu32The unit the slot’s targeting indicator works from instead of the caster, while the client holds it; one it does not hold resets this to none.
Vectors (1)

one-on-1-0-0-149

SpellNumbers

What a server sends to fill in the numbers a client shows beside a unit’s spells. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131131
1.0.0.132–1.0.0.137132
FieldTypeWhat it is
entryCountu16How many sets of numbers follow.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values3 × f32The numbers themselves, one place each.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 134 on events, sent by the server, reliable.

FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client ignores the whole message where that many entries of 17 bytes run past its end.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot: 0 to 59 a spell from a separate table of the unit’s other spells; 60 to 119 the unit’s own slot, less 60; 120 and up a summoner slot, less 120. A client skips the entry where the unit has no summoner slots.
entries[].values3 × f32The numbers themselves, one place each.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.153

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149128
1.0.0.150–1.0.0.153125
FieldTypeWhat it is
entryCountu16How many sets of numbers follow.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values3 × f32The numbers themselves, one place each.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-152

In 1.0.0.154–3.1.0.0

Command 125 on events, sent by the server, reliable.

FieldTypeWhat it is
entryCountu16How many sets of numbers follow.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values5 × f32The numbers themselves, one place each.
Vectors (1)

one-on-1-0-0-154

MissileState

What a server sends to say where a missile is and what it is doing.

Definition.

In 1.0.0.130–1.0.0.137

Command 65 on events, sent by the server, reliable.

Where the end lies on walkable ground, a client takes the ground’s height there for endY. Where age is not zero, it moves the missile’s trail on by age seconds. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
startXf32Where the missile began, along one ground axis, in world units.
startYf32Where the missile began, in height, in world units.
startZf32Where the missile began, along the other ground axis, in world units.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
speedf32How fast the missile travels, in world units a second.
lifeSpentf32How much of its life is gone, as a part of one.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 65 on events, sent by the server, reliable.

Where the end lies on walkable ground, a client takes the ground’s height there for endY. Where age is not zero, it moves the missile’s trail on by age seconds. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
startXf32Where the missile began, along one ground axis, in world units.
startYf32Where the missile began, in height, in world units.
startZf32Where the missile began, along the other ground axis, in world units.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
agef32How long the missile has existed, in seconds.
speedf32How fast the missile travels, in world units a second.
lifeSpentf32How much of its life is gone, as a part of one.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero. A client tests the whole byte for bounced, so a set bit here counts as bounced.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14961
1.0.0.150–3.1.0.058

Where the end lies on walkable ground, a client takes the ground’s height there for endY. Where age is not zero, it moves the missile’s trail on by age seconds. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
startXf32Where the missile began, along one ground axis, in world units.
startYf32Where the missile began, in height, in world units.
startZf32Where the missile began, along the other ground axis, in world units.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
agef32How long the missile has existed, in seconds.
speedf32How fast the missile travels, in world units a second.
lifeSpentf32How much of its life is gone, as a part of one.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-149

MissileLaunched

What a server sends as the missile a swing or a cast prepared leaves the unit. The header names the unit swinging or casting.

Definition.

In 1.0.0.154–3.1.0.0

Command 107 on events, sent by the server, reliable.

FieldTypeWhat it is
missileu32The missile, by the name the swing or cast that prepared it gave it.
Vectors (1)

one-on-1-0-0-154

MissileRetarget

What a server sends to change what a missile flies at. The header names the missile.

Definition.

In 1.0.0.140–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.140246
1.0.0.141–1.0.0.142252
1.0.0.143251
1.0.0.144–1.0.0.149238
1.0.0.150–3.1.0.0235
FieldTypeWhat it is
targetu32The unit it now flies at, or a name no unit answers to for none.
xf32Where it now flies to, along one ground axis, in world units.
yf32In height, in world units.
zf32Along the other ground axis, in world units.
Vectors (5)

one-on-1-0-0-140, one-on-1-0-0-142, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

MissileHits

What a server sends to say which units a missile struck. The header names the missile.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14340
1.0.0.144–3.1.0.037
FieldTypeWhat it is
countu16How many units follow. A client reads it as signed, so a count above 32767 carries none.
targetscount in count × u32The units struck, in order.
Vectors (1)

one-on-1-0-0-143

DestroyMissile

What a server sends to be rid of a missile a client is drawing. The header names the missile.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13193
1.0.0.132–1.0.0.13794
1.0.0.138–1.0.0.14396
1.0.0.144–1.0.0.14990
1.0.0.150–3.1.0.087

No body.

Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ChainTargets

What a server sends to name the units a chain missile will strike in turn. The header names the missile.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131111
1.0.0.132–1.0.0.137112

Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32.
casteru32The unit casting the missile.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 114 on events, sent by the server, reliable.

A client drops the message unless the match is running, it holds caster, and caster has a cast in progress. It keeps the list for the caster’s next chain missile, even where it already holds the missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32.
casteru32The unit casting the missile.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149108
1.0.0.150–3.1.0.0105

Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32.
casteru32The unit casting the missile.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

MissileCourse

What a server sends to set where a missile starts from and how fast it travels, which restarts its flight. The header names the missile.

Definition.

In 1.0.0.132–1.0.0.134

Command 66 on events, sent by the server, reliable.

FieldTypeWhat it is
driveru8How the missile is driven; only 1, homing, exists.
kindu32Must be 1, or the block is ignored.
targetu32The unit homed on.
heightf32Added to the target’s height.
targetXf32The point homed on, which the client refreshes from the target while it exists.
targetYf32Its height.
targetZf32Its other ground axis.
motionAf32A value of the homing motion; what it does is not recorded.
motionBf32Another.
motionCf32Another.
motionDf32Another.
lastu32Kept with the homing; what it does is not recorded.
Vectors (1)

one-on-1-0-0-134

In 1.0.0.135

Command 66 on events, sent by the server, reliable.

FieldTypeWhat it is
driveru8How the missile is driven; only 1, homing, exists, and for any other value nothing after the velocity is read.
fromXf32Where the missile starts, in world units, along one ground axis.
fromYf32Where the missile starts, in world units, in height.
fromZf32Where the missile starts, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
kindu32Must be 1, or the block below is ignored.
targetu32The unit homed on.
heightf32Added to the target’s height.
targetXf32The point homed on, which the client refreshes from the target while it exists.
targetYf32Its height.
targetZf32Its other ground axis.
motionAf32A value of the homing motion; what it does is not recorded.
motionBf32Another.
motionCf32Another.
motionDf32Another.
lastu32Kept with the homing; what it does is not recorded.
Vectors (1)

one-on-1-0-0-135

In 1.0.0.136–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.136–1.0.0.14366
1.0.0.144–1.0.0.14962
1.0.0.150–3.1.0.059
FieldTypeWhat it is
unusedu8Unused; a server writes zero.
fromXf32Where the missile starts, in world units, along one ground axis.
fromYf32Where the missile starts, in world units, in height.
fromZf32Where the missile starts, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-149

MissileReport

What a client sends to report where a missile that flies straight is and where it is going. A server need do nothing with it. The header names the missile.

Definition.

In 1.0.0.130–1.0.0.137

Command 65 on requests, sent by the client, reliable.

FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32casterAt from the last MissileState the client took for this missile, returned as it came.
unknownAYf32casterAt from the last MissileState the client took for this missile, returned as it came.
unknownAZf32casterAt from the last MissileState the client took for this missile, returned as it came.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
unknownBXf32A client leaves it unwritten; its bytes carry no meaning.
unknownBYf32A client leaves it unwritten; its bytes carry no meaning.
unknownBZf32A client leaves it unwritten; its bytes carry no meaning.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
agef32How long since it was launched, in seconds.
unsetbytes, 4A client writes nothing in particular here.
flagu8The whole how byte of the last MissileState the client took for this missile, returned as it came.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 65 on requests, sent by the client, reliable.

FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32What this holds is not recorded.
unknownAYf32What this holds is not recorded.
unknownAZf32What this holds is not recorded.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
unknownBXf32A client leaves it unwritten; its bytes carry no meaning.
unknownBYf32A client leaves it unwritten; its bytes carry no meaning.
unknownBZf32A client leaves it unwritten; its bytes carry no meaning.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
agef32How long since it was launched, in seconds.
speedf32How fast it travels, in world units a second.
unsetbytes, 4A client writes nothing in particular here.
flagu8Zero or one; what it means is not recorded.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14961
1.0.0.150–3.1.0.058
FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32What this holds is not recorded.
unknownAYf32What this holds is not recorded.
unknownAZf32What this holds is not recorded.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
unknownBXf32What this holds is not recorded.
unknownBYf32What this holds is not recorded.
unknownBZf32What this holds is not recorded.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
agef32How long since it was launched, in seconds.
speedf32How fast it travels, in world units a second.
unsetbytes, 4A client writes nothing in particular here.
flagu8Zero or one; what it means is not recorded.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (1)

one-on-1-0-0-149

Effects and looks

The lasting effects units carry, the particles a client draws, and how units look and move on screen. None of this changes what a unit can do; that is replication’s to say.

Lasting effects

A lasting effect sits in one of a unit’s effect slots and shows on its icon row. A server puts one on with EffectAdded, replaces the one in a slot with EffectReplaced, restates how many are stacked with EffectCount, and takes it off with EffectRemoved. The unit carrying an effect can differ from the unit that cast it. A server can do each of these for several units at once (EffectAddedGroup, EffectReplacedGroup, EffectCountGroup, EffectRemovedGroup), and set the number an effect shows on its icon with EffectCounter.

Particles

ParticlesCreated starts a client drawing particles, and KillParticle stops one. A server can also pause or resume a named group of emitters with EmitterPause, and drive a value of a unit’s lasting particles from something that changes, such as a capture point or the unit’s resource, with ParticleSource.

ParticlesCreated starts sets of particles, each named by its own id.

Looks and animation

A server lays a new look over a unit’s own with AppearancePushed; looks stack, the newest showing, and AppearancePopped and AppearanceCleared take them away. AnimationOverrides has a unit play one set of movements wherever it would have played another.

A server can also:

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

EffectAdded

What a server sends to put a lasting effect on a unit. The header names the unit carrying the effect, which can differ from the caster named inside.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131191
1.0.0.132–1.0.0.134192
1.0.0.135194
1.0.0.136–1.0.0.137192
1.0.0.138194
FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
hiddenu8Whether the client keeps it off the unit’s display. Values: 0 shown, 1 hidden.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.
Vectors (5)

shown-on-1-0-0-131, shown-on-1-0-0-134, shown-on-1-0-0-135, shown-on-1-0-0-136, shown-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 193 on events, sent by the server, reliable.

FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in, 0 to 63. A client ignores the message for any higher slot.
kindu8What sort of effect it is.
countu8How many of it are stacked there. 0 clears the slot rather than adding the effect.
hiddenu8Whether the client keeps it off the unit’s display: 1 hides it, and any other value shows it. Values: 0 shown, 1 hidden.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out. A client ignores the message where it is 0 or names an effect it does not know.
runningForf32How long it has already run, in seconds.
lastsf32How long it has left to run, in seconds from when the message arrives: the whole run is runningFor plus lasts.
casteru32The unit that put it there.
Vectors (1)

shown-on-1-0-0-140

In 1.0.0.141–1.0.0.148

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143195
1.0.0.144–1.0.0.148183
FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
hiddenu8Whether the client keeps it off the unit’s display. Values: 0 shown, 1 hidden.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.
Vectors (2)

shown-on-1-0-0-143, shown-on-1-0-0-148

In 1.0.0.149–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.149183
1.0.0.150–3.1.0.0180
FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
hiddenu8Whether the client keeps it off the unit’s display. Values: 0 shown, 1 hidden.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
packageu32Which set of art and sound the client draws it with.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.
Vectors (2)

shown-on-1-0-0-149, shown-on-1-0-0-154

EffectReplaced

What a server sends about a lasting effect in a slot that already holds one. The header names the unit carrying the effect, which can differ from the caster named inside.

Definition.

In 1.0.0.130–1.0.0.143

Command 50 on events, sent by the server, reliable.

It carries no effect number: a client re-times the effect already in the slot and takes caster as its caster again. Where the slot is empty, nothing happens.

FieldTypeWhat it is
slotu8Which of the unit’s effect slots.
runningForf32How long the effect has already run, in seconds.
lastsf32How long it has left to run, in seconds from when the message arrives. A client counts the effect as starting at arrival: runningFor moves neither its start nor its end.
casteru32The unit that put it there.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 47 on events, sent by the server, reliable.

It puts a lasting effect in the slot, keeping the slot rather than taking the old one off first.

FieldTypeWhat it is
slotu8Which of the unit’s effect slots.
runningForf32How long the effect has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.

EffectCount

What a server sends to restate how many of a lasting effect are stacked on a unit. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.143

Command 31 on events, sent by the server, reliable.

Where the slot is empty, the whole message does nothing.

FieldTypeWhat it is
slotu8Which slot.
countu8How many are stacked there now. 0 takes the effect off.
timeLeftf32How long it has left to run, in seconds from when the message arrives.
runningForf32How long it has already run, in seconds: a client counts its start that long before the message arrived.
casteru32The unit that put it there.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 28 on events, sent by the server, reliable.

FieldTypeWhat it is
slotu8Which slot.
countu8How many are stacked there now.
timeLeftf32How long it has left to run, in seconds. With runningFor it adds up to the whole run the effect was added with.
runningForf32How long it has already run, in seconds.
casteru32The unit that put it there.

EffectRemoved

What a server sends to take a lasting effect off a unit. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131127
1.0.0.132–1.0.0.137128
FieldTypeWhat it is
slotu8Which slot it sat in.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138–1.0.0.143130
1.0.0.144–1.0.0.149124
1.0.0.150–3.1.0.0121
FieldTypeWhat it is
slotu8Which slot it sat in.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
timeLeftf32How long the effect had left to run when it was taken off, in seconds.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

EffectAddedGroup

What a server sends to put one effect on several units at once. The header names no object it acts on: the units are listed below.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131107
1.0.0.132–1.0.0.137108
FieldTypeWhat it is
kindu8What sort of effect it is.
effectu32Which effect, by the number its name gives.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there.
entries[].hiddenu8Whether the client keeps it off the unit’s display.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 110 on events, sent by the server, reliable.

FieldTypeWhat it is
kindu8What sort of effect it is.
effectu32Which effect, by the number its name gives.
runningForf32How long it has already run, in seconds.
lastsf32How long it has left to run, in seconds from when the message arrives: the whole run is runningFor plus lasts.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there. 0 takes the effect out of the slot.
entries[].hiddenu8Whether the client keeps it off the unit’s display: 1 hides it, and any other value shows it.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.148

Command 104 on events, sent by the server, reliable.

FieldTypeWhat it is
kindu8What sort of effect it is.
effectu32Which effect, by the number its name gives.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there.
entries[].hiddenu8Whether the client keeps it off the unit’s display.
Vectors (1)

one-on-1-0-0-148

In 1.0.0.149–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.149104
1.0.0.150–3.1.0.0101
FieldTypeWhat it is
kindu8What sort of effect it is.
effectu32Which effect, by the number its name gives.
packageu32Which set of art and sound the client draws it with.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there.
entries[].hiddenu8Whether the client keeps it off the unit’s display.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

EffectReplacedGroup

What a server sends about the effect in one slot of several units at once. The header names no object it acts on: the units are listed below.

Definition.

In 1.0.0.130–1.0.0.143

Command 33 on events, sent by the server, reliable.

A client takes each entry as it takes an EffectReplaced for that unit, with the two times above: there is no effect number, so it re-times the effect already in the slot, and does nothing where the slot is empty.

FieldTypeWhat it is
runningForf32How long the effect has already run, in seconds.
lastsf32How long it has left to run, in seconds from when the message arrives. runningFor moves neither its start nor its end.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 30 on events, sent by the server, reliable.

It replaces one effect with another on each unit.

FieldTypeWhat it is
runningForf32How long the effect has already run, in seconds.
lastsf32How long it runs in total, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots.

EffectCountGroup

What a server sends to restate how many of an effect are stacked on several units at once. The header names no object it acts on: the units are listed below.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131199
1.0.0.132–1.0.0.134200
1.0.0.135202
1.0.0.136–1.0.0.137200
1.0.0.138202
FieldTypeWhat it is
lastsf32How long the effect runs in total, in seconds.
runningForf32How long it has already run, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there now.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 201 on events, sent by the server, reliable.

FieldTypeWhat it is
lastsf32How long the effect has left to run, in seconds from when the message arrives, as EffectCount’s timeLeft.
runningForf32How long it has already run, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there now. 0 takes the effect off.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143203
1.0.0.144–1.0.0.149191
1.0.0.150–3.1.0.0188
FieldTypeWhat it is
lastsf32How long the effect runs in total, in seconds.
runningForf32How long it has already run, in seconds.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].casteru32The unit that put it there.
entries[].slotu8Which of the unit’s effect slots it sits in.
entries[].stacksu8How many are stacked there now.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

EffectRemovedGroup

What a server sends to take one effect off several units at once. The header names no object it acts on: the units are listed below.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131155
1.0.0.132–1.0.0.134156
1.0.0.135158
1.0.0.136–1.0.0.137156
FieldTypeWhat it is
effectu32Which effect, by the number its name gives.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].slotu8Which slot it sat in.
Vectors (4)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136

In 1.0.0.138–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138158
1.0.0.139–1.0.0.143157
1.0.0.144–1.0.0.149148
1.0.0.150–3.1.0.0145
FieldTypeWhat it is
effectu32Which effect, by the number its name gives.
countu8How many units follow.
entriescount in count × recordThe units, one place each.
entries[].unitu32The unit carrying the effect.
entries[].slotu8Which slot it sat in.
entries[].timeLeftf32How long it had left to run, in seconds.
Vectors (4)

one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ParticlesCreated

What a server sends to start drawing sets of particles. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131140
1.0.0.132–1.0.0.137141
1.0.0.138143
1.0.0.139–1.0.0.143142
1.0.0.144–1.0.0.145136
1.0.0.146–1.0.0.149136
1.0.0.150–3.1.0.0133
FieldTypeWhat it is
groupCountu8How many sets follow.
groupscount in groupCount × ParticleGroupThe sets themselves.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-145, one-on-1-0-0-149, one-on-1-0-0-154

KillParticle

What a server sends to stop a particle a client is drawing.

Definition.

In 1.0.0.130–1.0.0.143

Command 61 on events, sent by the server, reliable.

FieldTypeWhat it is
particleu32The particle to stop.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14958
1.0.0.150–3.1.0.055

The header names the particle.

FieldTypeWhat it is
particleu32The particle to stop.
Vectors (1)

one-on-1-0-0-149

ParticleSource

What a server sends to drive a value of the lasting particle effects on a unit from something that changes. A client ignores it where the id names no unit it knows. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.149

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131219
1.0.0.132–1.0.0.134220
1.0.0.135222
1.0.0.136–1.0.0.137220
1.0.0.138222
1.0.0.139–1.0.0.140221
1.0.0.141–1.0.0.143223
1.0.0.144–1.0.0.149210
FieldTypeWhat it is
unitu32The unit: a champion, minion, turret or other unit.
slotu8Which of the effects’ inputs to drive.
pointu8Which point, for source 0. It has no effect unless source is 0.
sourceu8What drives it. Any other value drives it from nothing. Any other value clears the binding. Values: 0 capturePoint, 1 resource.
Vectors (8)

resource-on-1-0-0-131, resource-on-1-0-0-134, resource-on-1-0-0-135, resource-on-1-0-0-136, resource-on-1-0-0-138, resource-on-1-0-0-140, resource-on-1-0-0-143, resource-on-1-0-0-149

In 1.0.0.150–3.1.0.0

Command 207 on events, sent by the server, reliable.

FieldTypeWhat it is
unitu32The unit: a champion, minion, turret or other unit.
slotu8Which of the effects’ inputs to drive.
pointu8Which point, for source 0. It has no effect unless source is 0.
sourceu8What drives it. Any other value drives it from nothing. Values: 0 capturePoint, 1 resource, 2 resourceSmoothed.
Vectors (1)

resource-on-1-0-0-154

AppearancePushed

What a server sends to lay a new look over a unit’s own. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.134

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131159
1.0.0.132–1.0.0.134160

A client stops a basic attack the unit is making first. Looks stack: the newest shows, and AppearancePopped takes away the one its entry names. An animated building instead looks for a look of the same name whose skin equals entry, adds the look under skin where it finds none, and how has no effect on it.

FieldTypeWhat it is
entryu32Names this look, so that AppearancePopped can name it.
overrideSpellsu8Set where the unit’s spells change with it. Any nonzero value sets it.
assettext, ended by a zero byteThe name the client loads it under, ended by a zero byte. The name and its zero byte take at most 64 bytes.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-134

In 1.0.0.135–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.135162
1.0.0.136–1.0.0.137160
1.0.0.138162

A client stops a basic attack the unit is making first. Looks stack: the newest shows, and AppearancePopped takes away the one its entry names. An animated building instead looks for a look of the same name whose skin equals entry, adds the look under skin where it finds none, and how has no effect on it.

FieldTypeWhat it is
entryu32Names this look, so that AppearancePopped can name it.
overrideSpellsu8Set where the unit’s spells change with it. Any nonzero value sets it.
modelOnlyu8Set where only the model changes. Any nonzero value sets it.
assettext, ended by a zero byteThe name the client loads it under, ended by a zero byte. The name and its zero byte take at most 64 bytes.
Vectors (3)

one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 161 on events, sent by the server, reliable.

A client stops a basic attack the unit is making first. Looks stack: the newest shows, and AppearancePopped takes away the one its entry names. A building ignores it.

FieldTypeWhat it is
entryu32Names this look, so that AppearancePopped can name it.
overrideSpellsu8Set where the unit’s spells change with it. Any nonzero value sets it.
modelOnlyu8Set where only the model changes. Any nonzero value sets it.
assettext, ended by a zero byteThe name the client loads it under, ended by a zero byte.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 151 on events, sent by the server, reliable.

A client stops a basic attack the unit is making first. Looks stack: the newest shows, and AppearancePopped takes away the one its entry names. An animated building instead looks for a look of the same name whose skin equals entry, adds the look under skin where it finds none, and how has no effect on it.

FieldTypeWhat it is
entryu32Names this look, so that AppearancePopped can name it.
overrideSpellsu8Set where the unit’s spells change with it. Any nonzero value sets it.
modelOnlyu8Set where only the model changes. Any nonzero value sets it.
assettext, ended by a zero byteThe name the client loads it under, ended by a zero byte. The name and its zero byte take at most 64 bytes.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149151
1.0.0.150–3.1.0.0148

A client stops a basic attack the unit is making first. Looks stack: the newest shows, and AppearancePopped takes away the one its entry names. An animated building instead looks for a look of the same name whose skin equals entry, adds the look under skin where it finds none, and how has no effect on it.

FieldTypeWhat it is
entryu32Names this look, so that AppearancePopped can name it.
how1-byte bitsWhat the look changes.
how.overrideSpellsbit 0Set where the unit’s spells change with it.
how.modelOnlybit 1Set where only the model changes.
how.unusedbit 2 to 7Unused; a server writes zero.
assettext, ended by a zero byteThe name the client loads it under, ended by a zero byte. The name and its zero byte take at most 64 bytes.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

AppearancePopped

What a server sends to take a look AppearancePushed laid over a unit away. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131106
1.0.0.132–1.0.0.137107
1.0.0.138–1.0.0.143109
1.0.0.144–1.0.0.149103
1.0.0.150–3.1.0.0100
FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

AppearanceCleared

What a server sends to take every look laid over a unit away. The header names the unit.

Definition.

In 1.0.0.135–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.135212
1.0.0.136–1.0.0.137210
1.0.0.138212
1.0.0.139–1.0.0.140211
1.0.0.141–1.0.0.143213
1.0.0.144–1.0.0.149200
1.0.0.150–3.1.0.0197

No body.

Vectors (7)

one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

AnimationOverrides

What a server sends to make a unit play one set of movements wherever it would have played another. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131110
1.0.0.132–1.0.0.137111
FieldTypeWhat it is
pairCountu8How many pairs follow.
pairscount in pairCount × AnimationOverrideEach pair naming what is replaced and what replaces it.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 113 on events, sent by the server, reliable.

A length of zero, or above 2147483647, gives an empty name and occupies no bytes after it. A server sends lengths from 0 to 2147483647. A later pair naming the same from replaces an earlier one.

FieldTypeWhat it is
pairCountu8How many pairs follow.
pairscount in pairCount × AnimationOverrideEach pair naming what is replaced and what replaces it.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149107
1.0.0.150–3.1.0.0104
FieldTypeWhat it is
pairCountu8How many pairs follow.
pairscount in pairCount × AnimationOverrideEach pair naming what is replaced and what replaces it.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

PlayAnimation

What a server sends to make a unit play an animation. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.151

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131184
1.0.0.132–1.0.0.134185
1.0.0.135187
1.0.0.136–1.0.0.137185
1.0.0.138187
1.0.0.139–1.0.0.140186
1.0.0.141–1.0.0.143188
1.0.0.144–1.0.0.149176
1.0.0.150–1.0.0.151173

A unit playing a locked animation ignores the message. A client stops any emote playing first, and plays at normal speed.

FieldTypeWhat it is
flags4-byte bitsHow the animation plays.
flags.loopbit 0Set to loop it.
flags.holdLastFramebit 1Set to hold its last frame once it ends.
flags.queuebit 2Set to play it once the animation playing ends, rather than now.
flags.queueLastbit 3Set to play it after every animation already waiting.
flags.replaceablebit 4Set to let the next animation queued after it start at once.
flags.lockedbit 5Set where the unit ignores this message while the animation plays.
flags.noRestartbit 6Where the same animation already plays on the unit, a client keeps it and starts nothing new.
flags.noFadeInbit 7The switch is instant, with no blend; only where the animation starts at once rather than queued.
flags.jumpToEndbit 8The animation is held at its end: without loop or holdLastFrame it ends at once, and with holdLastFrame it shows its last frame.
flags.unusedbit 9 to 31Unused; a server writes zero.
scaleTimef32Where above zero, how many seconds the animation is stretched or squeezed to last.
animationtext, ended by a zero byteThe animation’s name, ended by a zero byte, the two taking at most 64 bytes. Nothing plays for a name the unit does not have.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 173 on events, sent by the server, reliable.

A unit playing a locked animation ignores the message. A client stops any emote playing first, and plays at normal speed.

FieldTypeWhat it is
flags4-byte bitsHow the animation plays.
flags.loopbit 0Set to loop it.
flags.holdLastFramebit 1Set to hold its last frame once it ends.
flags.queuebit 2Set to play it once the animation playing ends, rather than now.
flags.queueLastbit 3Set to play it after every animation already waiting.
flags.replaceablebit 4Set to let the next animation queued after it start at once.
flags.lockedbit 5Set where the unit ignores this message while the animation plays.
flags.noBlendbit 6Set to switch to it at once rather than blend in.
flags.lockedFromIdlebit 7Set where idle animations cannot fade it out.
flags.reservedbit 8What it does is not recorded for this range; a server writes zero.
flags.unusedbit 9 to 31Unused; a server writes zero.
scaleTimef32Where above zero, how many seconds the animation is stretched or squeezed to last.
startProgressf32Where above zero, how far into the animation it starts, as a fraction from 0 to 1.
animationtext, ended by a zero byteThe animation’s name, ended by a zero byte, the two taking at most 64 bytes. Nothing plays for a name the unit does not have.
Vectors (1)

one-on-1-0-0-154

StopAnimation

What a server sends to stop an animation a unit is playing. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.137

Command 43 on events, sent by the server, reliable.

FieldTypeWhat it is
flags1-byte bitsHow it stops.
flags.fadebit 0Set where the animation fades out.
flags.ignoreLockbit 1Set where a lock on the animation is ignored.
flags.stopAllbit 2Set where every animation stops.
flags.unusedbit 3 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138–1.0.0.14343
1.0.0.144–3.1.0.040
FieldTypeWhat it is
flags1-byte bitsHow it stops.
flags.fadebit 0Set where the animation fades out.
flags.ignoreLockbit 1Set where a lock on the animation is ignored.
flags.stopAllbit 2Set where every animation stops when the name below is empty.
flags.unusedbit 3 to 7Unused; a server writes zero.
animationtext, ended by a zero byteThe animation’s name, ended by a zero byte, or empty.
Vectors (1)

one-on-1-0-0-143

PauseAnimation

What a server sends to pause or resume a unit’s animation. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131116
1.0.0.132–1.0.0.137117
1.0.0.138–1.0.0.143119
1.0.0.144–1.0.0.146113
FieldTypeWhat it is
pausedu8Set to pause, clear to resume. Any nonzero value sets it.
Vectors (4)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149113
1.0.0.150–3.1.0.0110
FieldTypeWhat it is
state1-byte bitsWhether to pause.
state.pausedbit 0Set to pause, clear to resume.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

FadeTo

What a server sends to fade a unit towards an opacity over time. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.140

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131186
1.0.0.132–1.0.0.134187
1.0.0.135189
1.0.0.136–1.0.0.137187
1.0.0.138189
1.0.0.139–1.0.0.140188
FieldTypeWhat it is
fadei16Names this fade, so that FadeRemoved can name it.
targetf32The opacity it fades to, from 0 for unseen to 1 for solid.
timef32How long the fade takes, in seconds.
Vectors (6)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143190
1.0.0.144–1.0.0.149178
1.0.0.150–3.1.0.0175
FieldTypeWhat it is
fadei16Names this fade, so that FadeRemoved can name it.
timef32How long the fade takes, in seconds.
targetf32The opacity it fades to, from 0 for unseen to 1 for solid.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

FadeRemoved

What a server sends to undo a fade on a unit. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14352
1.0.0.144–3.1.0.049
FieldTypeWhat it is
fadei16The fade, by the name FadeTo gave it.
Vectors (1)

one-on-1-0-0-143

FadeMinions

What a server sends to fade one side’s minions. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131212
1.0.0.132–1.0.0.134213
1.0.0.135215
1.0.0.136–1.0.0.137213
1.0.0.138215
1.0.0.139–1.0.0.140214
1.0.0.141–1.0.0.143216
1.0.0.144–1.0.0.149203
1.0.0.150–3.1.0.0200
FieldTypeWhat it is
sideu8Which side, or zero for both.
amountf32The opacity they fade to, from 0 for unseen to 1 for solid.
timef32How long the fade takes, in seconds.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

NexusIdle

What a server sends to put each nexus into its idle particles. The header carries zero.

Definition.

In every range of this book

Command 4 on events, sent by the server, reliable.

No body.

NexusSkin

What a server sends to change how one side’s nexus looks. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131119
1.0.0.132–1.0.0.137120
1.0.0.138–1.0.0.143122
1.0.0.144–1.0.0.149116
1.0.0.150–3.1.0.0113
FieldTypeWhat it is
sideu8Which side.
skinu32Which look.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

ScreenTint

What a server sends to tint a side’s screens, or to take a tint away. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131228
1.0.0.132–1.0.0.134229
1.0.0.135231
1.0.0.136–1.0.0.137229
1.0.0.138231
FieldTypePresent whenWhat it is
fadeInu81 brings a tint in, and the colour and weight below follow; 0 takes it away, and they do not.
timef32How long the change takes, in seconds.
sidei32Which side sees it.
colouru32fadeIn setThe tint, as blue, green, red and opacity bytes.
weightf32fadeIn setHow strongly it applies at most.
Vectors (10)

another-on-1-0-0-131, one-on-1-0-0-131, another-on-1-0-0-134, one-on-1-0-0-134, another-on-1-0-0-135, one-on-1-0-0-135, another-on-1-0-0-136, one-on-1-0-0-136, another-on-1-0-0-138, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 230 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
fadeInu81 brings a tint in, and the colour and weight below follow; 0 takes it away, and they do not.
timef32How long the change takes, in seconds.
sidei32Which side sees it: 0 every client, and any other value only a client whose own player is on that side. A client with no player of its own takes only 0 and 100.
colouru32fadeIn setThe tint, as blue, green, red and opacity bytes.
weightf32fadeIn setHow strongly it applies at most.
Vectors (2)

another-on-1-0-0-140, one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143232
1.0.0.144–1.0.0.149219
1.0.0.150–3.1.0.0216
FieldTypePresent whenWhat it is
fadeInu81 brings a tint in, and the colour and weight below follow; 0 takes it away, and they do not.
timef32How long the change takes, in seconds.
sidei32Which side sees it.
colouru32fadeIn setThe tint, as blue, green, red and opacity bytes.
weightf32fadeIn setHow strongly it applies at most.
Vectors (6)

another-on-1-0-0-143, one-on-1-0-0-143, another-on-1-0-0-149, one-on-1-0-0-149, another-on-1-0-0-154, one-on-1-0-0-154

VoiceOverride

What a server sends to change or reset the voice a unit speaks with. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131158
1.0.0.132–1.0.0.134159
1.0.0.135161
1.0.0.136–1.0.0.137159
1.0.0.138161
1.0.0.139–1.0.0.143160
1.0.0.144–1.0.0.146150
FieldTypePresent whenWhat it is
flags1-byte bitsWhether to reset. A client compares the whole byte with 1, so a server writes the other bits zero.
flags.resetbit 0Set where the unit returns to its own voice; no name follows.
flags.unusedbit 1 to 7Unused; a server writes zero.
voicetext, ended by a zero byteflags.reset = 0The voice’s name, ended by a zero byte.
Vectors (14)

another-on-1-0-0-131, one-on-1-0-0-131, another-on-1-0-0-134, one-on-1-0-0-134, another-on-1-0-0-135, one-on-1-0-0-135, another-on-1-0-0-136, one-on-1-0-0-136, another-on-1-0-0-138, one-on-1-0-0-138, another-on-1-0-0-143, one-on-1-0-0-143, another-on-1-0-0-146, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149150
1.0.0.150–3.1.0.0147
FieldTypePresent whenWhat it is
flags1-byte bitsWhether to reset.
flags.resetbit 0Set where the unit returns to its own voice; no name follows.
flags.unusedbit 1 to 7Unused; a server writes zero.
voicetext, ended by a zero byteflags.reset = 0The voice’s name, ended by a zero byte.
Vectors (4)

another-on-1-0-0-149, one-on-1-0-0-149, another-on-1-0-0-154, one-on-1-0-0-154

The shop

What fills the shop, what a client asks for, and what a server answers.

What fills it

A client’s catalogue of items is its own: no message sends or changes it. A client sets its shop up for its own champion, and what a match sells is settled by the client’s own data. A client filters nothing out of the shop by the champion’s level.

In 1.0.0.130–1.0.0.140

Loadout does nothing to the shop: a client fills its shop from its own data, and takes the items it suggests from its champion’s own data.

In 1.0.0.130–1.0.0.140

The data of the map VersionSync names lists the items that cannot be bought, and can list the only items the shop holds. No mode or variant has a list of its own, and nothing a server sends changes what can be bought.

In 1.0.0.140

Suggested items are kept per champion and chosen by the mode VersionSync names, whatever the map.

Buying and selling

A client asks to buy with BuyItem, to sell or throw away an item with RemoveItem, and to swap two slots of its inventory with SwapItems. Closing the shop sends nothing.

In 1.0.0.130–1.0.0.140

Opening the shop sends TutorialShopOpened, in any match, except while the shop is locked.

In 1.0.0.130–1.0.0.140

Opening the shop while the match is paused sends nothing.

A client asks to buy only where the item is one the match sells and priced within the champion’s gold.

A client asks for an item not built from others only where a slot is free or holds the same item below its stack limit.

A client asks only while the shop is not locked, with the champion dead or near a shop of its side.

A client never asks for an item a player holds only one of and holds already.

A client never places an item itself. It shows a purchase only when a server answers with ItemAdded, a sale or loss with RemoveItemAnswer, and a swap with SwapItemsAnswer. A server can also set a slot (InventorySlot), set the whole inventory (InventorySnapshot), change an item’s charges (ItemCharges), or report an item used (ItemUsed).

ItemAdded places the item and removes nothing: a server sends a RemoveItemAnswer for each part an item built from others takes up. Gold falls only as replication states the champion’s gold, and a purchase a server never answers places nothing and spends nothing.

A purchase a server never answers still plays the sound of buying.

Undo

Where VersionSync’s features set shopUndo, the shop has an undo button, which is enabled while ShopUndoCount gives the champion undos to spend. Pressing it sends ShopUndo, whatever the count.

Closing and locking

CloseShop closes the shop where it is open. A message that locks the shop alone, InputLock or InputLockToggled, closes it and turns off its key.

A message that locks other input along with the shop stops the shop opening, but leaves an open shop open and its key on.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

Loadout

What a server sends to lay out everything a champion brought to the match: the runes set before it began, its summoner slots and the choices made alongside them. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.148

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14344
1.0.0.144–1.0.0.14841

A client’s shop is set up by the Loadout of its own champion: until that arrives the shop opens empty, with no items, no suggested items and no builds, and is drawn at a size that does not fit the screen. A server sends one for every champion at spawning, between SpawnStart and SpawnEnd.

FieldTypeWhat it is
runes30 × u32The runes set before the match, thirty places in runs of nine, nine, nine and three. A place holds zero where nothing was set.
summoners2 × u32The spells in the champion’s summoner slots, by the numbers their names give.
choices80 × ChoiceThe choices made alongside them, one place each, and how far each was taken. A place stands empty where nothing was chosen.
levelu8The player’s account level.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-148

In 1.0.0.149–3.1.0.0

Command 41 on events, sent by the server, reliable.

A client’s shop is set up by the Loadout of its own champion: until that arrives the shop opens empty, with no items, no suggested items and no builds, and is drawn at a size that does not fit the screen. A server sends one for every champion at spawning, between SpawnStart and SpawnEnd. It also says what the champion’s wards look like.

FieldTypeWhat it is
runes30 × u32The runes set before the match, thirty places in runs of nine, nine, nine and three. A place holds zero where nothing was set.
summoners2 × u32The spells in the champion’s summoner slots, by the numbers their names give.
choices80 × ChoiceThe choices made alongside them, one place each, and how far each was taken. A place stands empty where nothing was chosen.
levelu8The player’s account level.
wardSkinu8What the champion’s wards look like.

BuyItem

What a client sends to buy an item from the shop. The header names the sender’s champion.

Definition.

In every range of this book

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131135
1.0.0.132–1.0.0.137136
1.0.0.138138
1.0.0.139–1.0.0.143137
1.0.0.144–1.0.0.149131
1.0.0.150–3.1.0.0128
FieldTypeWhat it is
itemu32Which item, by the number the client knows it as.
Vectors (6)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

RemoveItem

What a client sends to be rid of an item. The header names the sender’s champion.

Definition.

In every range of this book

Command 9 on requests, sent by the client, reliable.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.sellbit 7Set to sell the item, clear to throw it away. A client always sends it set.

SwapItems

What a client sends to move an item from one slot to another. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.143

Command 35 on requests, sent by the client, reliable.

FieldTypeWhat it is
fromu8
tou8
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 32 on requests, sent by the client, reliable.

FieldTypeWhat it is
fromu8The slot the item leaves, which a 4.17 client sends only from 0 to 9.
tou8The slot it goes to, never the one from names; a 4.17 client sends only 0 to 9.

TutorialShopOpened

What a client sends as its player opens the shop. It carries nothing of its own. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 96 on requests, sent by the client, reliable.

A client sends it each time the shop opens, in any mode and on any map, except while a script lock keeps the shop shut or the match is paused.

No body.

Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.137

Command 97 on requests, sent by the client, reliable.

A client sends it only in the tutorial: where the version answer names the mode TUTORIAL and the map’s own data marks it as a tutorial map, as map 12’s does; elsewhere it never sends this.

No body.

Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 99 on requests, sent by the client, reliable.

A client sends it every time its player opens the shop, in any mode and on any map, except while a lock of its own on the shop holds or the game is paused.

No body.

Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14993
1.0.0.150–3.1.0.090

A client sends it only in the tutorial: where the version answer names the mode TUTORIAL and the map’s own data marks it as a tutorial map, as map 12’s does; elsewhere it never sends this.

No body.

Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ShopEnabled

What a server sends to say whether a champion can use the shop. The header names the champion.

Definition.

In 1.0.0.141–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143253
1.0.0.144–1.0.0.146240
FieldTypeWhat it is
enabledu8Set where the shop can be used. Any nonzero value sets it.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149240
1.0.0.150–3.1.0.0237
FieldTypeWhat it is
flags1-byte bitsWhether it can be used.
flags.enabledbit 0Set where the shop can be used.
flags.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ItemAdded

What a server sends to set what sits in one of a unit’s item slots. The header names the unit this is about.

Definition.

In 1.0.0.130–1.0.0.134

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131114
1.0.0.132–1.0.0.134115

A server sends it to units nobody is buying for.

FieldTypeWhat it is
slotu8The slot it went to. A client rejects the message from 38 up.
itemu32Which item, by the number the client knows it as.
inSlotu8How many of the item the slot holds; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
activateu8Nonzero readies the item’s own spell, in the slot four past the item’s, and has the client answer with RemoveItem for it.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-134

In 1.0.0.135–1.0.0.137

Command 115 on events, sent by the server, reliable.

A server sends it to units nobody is buying for.

FieldTypeWhat it is
itemu32Which item, by the number the client knows it as.
slotu8The slot it went to. A client rejects the message from 38 up.
inSlotu8How many of the item the slot holds; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
activateu8Nonzero readies the item’s own spell, in the slot four past the item’s, and has the client answer with RemoveItem for it.
how1-byte bits
how.announcebit 0Set to announce the purchase: a client shows it where the unit is on its side (or it plays a replay), the item’s own data allows it, the player’s setting asks for it, and the same item was not bought in the last 5 seconds, a repeat within them restarting the wait.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 117 on events, sent by the server, reliable.

FieldTypeWhat it is
itemu32Which item, by the number the client knows it as.
slotu8The slot it went to. A client rejects the message from 38 up.
inSlotu8How many of the item the slot holds; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
how1-byte bits
how.announcebit 0Set to announce the purchase: a client shows it where the unit is on its side (or it plays a replay), the item’s own data allows it, the player’s setting asks for it, and the same item was not bought within the client’s wait, 5 seconds unless a setting of its own changes it, a repeat within it restarting the wait.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 111 on events, sent by the server, reliable.

A server sends it to units nobody is buying for.

FieldTypeWhat it is
itemu32Which item, by the number the client knows it as.
slotu8The slot it went to. A client rejects the message from 38 up.
inSlotu8How many of the item the slot holds; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
how1-byte bits
how.announcebit 0Set to announce the purchase: a client shows it where the unit is on its side (or it plays a replay), the item’s own data allows it, the player’s setting asks for it, and the same item was not bought in the last 5 seconds, a repeat within them restarting the wait.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149111
1.0.0.150–3.1.0.0108

A server sends it to units nobody is buying for.

FieldTypeWhat it is
itemu32Which item, by the number the client knows it as.
slotu8The slot it went to. A client rejects the message from 38 up.
inSlotu8How many of the item the slot holds; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
how1-byte bits
how.unusedbit 0 to 5Unused; a server writes zero.
how.announcebit 6Set to announce the purchase: a client shows it where the unit is on its side (or it plays a replay), the item’s own data allows it, the player’s setting asks for it, and the same item was not bought in the last 5 seconds, a repeat within them restarting the wait.
how.unused7bit 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

RemoveItemAnswer

What a server sends to confirm an item left a slot. The header names the unit this is about.

Definition.

In every range of this book

Command 11 on events, sent by the server, reliable.

FieldTypeWhat it is
slotu8Which slot, 0 to 37. For a higher one a client does nothing at all; for 0 to 37 it updates the slot and tells its screens the inventory changed, whatever left is.
leftu8How many are left in the slot; zero empties it, item and charges cleared. Either way a client cancels any spell or action its player had picked.

SwapItemsAnswer

What a server sends to confirm an item moved between slots. The header names the unit this is about.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13168
1.0.0.132–1.0.0.14369
1.0.0.144–1.0.0.14964
1.0.0.150–3.1.0.061
FieldTypeWhat it is
fromu8The slot the item left.
tou8The slot it went to.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-143, one-on-1-0-0-149

InventorySlot

What a server sends to set one slot of a unit’s inventory. The header names the unit. A client empties the slot, then fills it where count is above zero, and refreshes the shop where the unit is its own champion.

Definition.

In 1.0.0.130–1.0.0.134

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13186
1.0.0.132–1.0.0.13487
FieldTypeWhat it is
slotu8Which slot, 0 to 39. A client ignores the message from 40 up.
itemu32The item. It has no effect where count is zero.
countu8How many. Zero leaves the slot empty.
chargesu8Its charges.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-134

In 1.0.0.135–1.0.0.137

Command 87 on events, sent by the server, reliable.

FieldTypeWhat it is
itemu32The item. It has no effect where count is zero.
slotu8Which slot, 0 to 39. A client ignores the message from 40 up.
countu8How many. Zero leaves the slot empty.
chargesu8Its charges.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 89 on events, sent by the server, reliable.

FieldTypeWhat it is
itemu32The item. It has no effect where count is zero.
slotu8Which slot, 0 to 37. A client ignores the message from 38 up.
countu8How many. Zero leaves the slot empty.
chargesu8Its charges.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14983
1.0.0.150–3.1.0.080
FieldTypeWhat it is
itemu32The item. It has no effect where count is zero.
slotu8Which slot, 0 to 39. A client ignores the message from 40 up.
countu8How many. Zero leaves the slot empty.
chargesu8Its charges.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ItemUsed

What a server sends after an item in a unit’s inventory is used. The header names the unit.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131167
1.0.0.132–1.0.0.134168
1.0.0.135170
1.0.0.136–1.0.0.137168
1.0.0.138170
1.0.0.139–1.0.0.143169
1.0.0.144–1.0.0.149159
1.0.0.150–3.1.0.0156
FieldTypeWhat it is
slotu8Which slot.
leftu8How many are left in it; zero empties the slot.
chargesu8How many charges it holds.
Vectors (8)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

CloseShop

What a server sends to close a client’s shop. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14315
1.0.0.144–3.1.0.014

No body.

Vectors (1)

one-on-1-0-0-143

Objectives

The parts of a map players compete for besides each other: neutral camps, points a side can capture and a score, and the events a match tells its clients about.

Camps

A camp is a group of units that belong to no side. A server places a camp on the map and says how it is drawn with CampMarker, opens it with CampOpened as its monsters come, and marks it empty with CampCleared. The monsters themselves are units (see Units). A server tells clients watching a match when a camp is next due with CampTimer.

A client places a camp where the first of its monsters is created (CreateNeutral).

CampCleared sets no time for the camp to fill again: a client keeps the state it gives for the camp.

Capture points and score

On a map won on score, a server binds each capture point to a unit with CapturePointChanged, and TeamScore sets each side’s score.

A client acts on TeamScore once its game screen is up, whatever the mode.

Other map objectives

A server can name the unit holding the Ascension with AscendedUnit, and send RespawnPoint about points a champion returns to life at.

Events

WorldEvent says something happened that the whole match is told about: the match’s welcome and its first notices, minions coming out, an inhibitor or a great monster falling, a player leaving. ClientEvent tells one client something happened that concerns a unit. Each names a sort, from one table of events, and the sort settles the rest of the message and what a client shows.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

CampOpened

What a server sends to open a camp of units that belong to no side. The header names no object: it carries zero.

Definition.

In 1.0.0.138–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138246
1.0.0.139–1.0.0.140245
1.0.0.141–1.0.0.142247
1.0.0.143246
1.0.0.144–1.0.0.149233
1.0.0.150–3.1.0.0230
FieldTypeWhat it is
atXf32Where the camp sits, along one ground axis, in world units.
atYf32Where it sits, in height, in world units.
atZf32Where it sits, along the other ground axis, in world units.
campIcontext, 64 bytesThe name of the icon the minimap shows at the camp, written in full and padded with zero bytes to the width above; empty shows none. A client uses it only where it creates the camp.
campu8Which camp.
Vectors (6)

one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-142, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

CampCleared

What a server sends as a camp of units that belong to no side is emptied. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.135

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131203
1.0.0.132–1.0.0.134204
1.0.0.135206

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
unitu32A unit whose side picks the marker: side 100 for one of side 100, side 200 otherwise.
campu32Which camp. A client ignores a camp it does not know, but for the timer.
activeu8The camp’s state for that side, kept as it stands; nonzero where it is active.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135

In 1.0.0.136–1.0.0.137

Command 204 on events, sent by the server, reliable.

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
campu32Which camp. A client ignores a camp it does not know, but for the timer.
does1-byte bits
does.activebit 0Set where the camp is active, clear where it is cleared.
does.sideOrderbit 1Set to clear side 100’s marker of the camp, clear to clear side 200’s.
does.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138

Command 206 on events, sent by the server, reliable.

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
killeru32Unused; a client reads nothing here.
campu32Which camp. A client ignores a camp it does not know, but for the timer.
does1-byte bits
does.speakbit 0Set to have the client play the line for a camp revealed or a buff taken, to the client’s own side.
does.sideOrderbit 1Set to clear side 100’s marker of the camp, clear to clear side 200’s.
does.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 205 on events, sent by the server, reliable.

A client marks the camp empty for the one side sideOrder picks, even one that had just filled.

FieldTypeWhat it is
killeru32Unused; a client reads nothing here.
campu32Which camp. A client does nothing for a camp it does not know.
does1-byte bits
does.speakbit 0Set to have the client play the line for a camp revealed or a buff taken, to the client’s own side.
does.sideOrderbit 1Set to clear side 100’s marker of the camp, clear to clear side 200’s.
does.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141

Command 207 on events, sent by the server, reliable.

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
killeru32Unused; a client reads nothing here.
campu32Which camp. A client ignores a camp it does not know, but for the timer.
does1-byte bits
does.speakbit 0Set to have the client play the line for a camp revealed or a buff taken, to the client’s own side.
does.sideOrderbit 1Set to clear side 100’s marker of the camp, clear to clear side 200’s.
does.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-141

In 1.0.0.142

Command 207 on events, sent by the server, reliable.

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
killeru32The champion credited with emptying the camp, or zero for none. Where the camp has no buff side and no line of its own, a client has that champion speak a line for it, whatever speak says.
campu32Which camp. A client ignores a camp it does not know, but for the timer.
does1-byte bits
does.speakbit 0Set to have the client play the line for a camp revealed or a buff taken, to the client’s own side.
does.sideOrderbit 1Set to clear side 100’s marker of the camp, clear to clear side 200’s.
does.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-142

In 1.0.0.143–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.143207
1.0.0.144–1.0.0.149195
1.0.0.150–3.1.0.0192

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
killeru32The champion credited with emptying the camp, or zero for none. Where the camp has no buff side and no line of its own, a client has that champion speak a line for it, whatever speak says.
campu32Which camp. A client ignores a camp it does not know, but for the timer.
does1-byte bits
does.speakbit 0Set to have the client play the line for a camp revealed or a buff taken, to the client’s own side.
does.unusedbit 1 to 7Unused; a server writes zero.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

CapturePointChanged

What a server sends when something changes about a point one side can take from the other. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131220
1.0.0.132–1.0.0.134221
1.0.0.135223
1.0.0.136–1.0.0.137221
1.0.0.138223
1.0.0.139–1.0.0.140222
1.0.0.141–1.0.0.143224
1.0.0.144–1.0.0.149211
1.0.0.150–3.1.0.0208

A client takes this only once the match has started; one that arrives earlier is dropped. The points exist only through this message: a map brings none, and a client makes point 0 to point n when it first meets n, whatever the change. Once a client knows one point, and only where the version answer named the mode ODIN, it shows the panel of each side’s score and points held, and marks each point on the minimap. Everything shown of a point comes from the unit bound to it: its side holds the point (100 or 200; any other side leaves it neutral), its position places it, and its current resource over its maximum, where its resource kind matches the one bound, is how far the point is taken. A server hands a point over by changing that unit’s side (TeamChanged) and moves it toward capture by changing that unit’s resource.

FieldTypeWhat it is
pointu8Which point, 0 to 254; a match of five points uses 0 to 4.
unitu32The unit to bind to the point: any unit that can be attacked and that the client already holds when this arrives; otherwise the point stays unbound, neutral and empty.
resourceKindu8The kind of resource whose fill shows how far the point is taken. Where it is not the bound unit’s own kind, the point shows as not taken at all. Values: 0 mana, 1 energy, 2 souls, 3 shield, 4 other.
sidei32The side attacking the point. It has no effect on a binding.
changeu8What to do. A client acts on 0 only; it ignores any other value, after making the points up to this one. Values: 0 bind, 1 ignored.
Vectors (9)

mana-on-1-0-0-131, mana-on-1-0-0-134, mana-on-1-0-0-135, mana-on-1-0-0-136, mana-on-1-0-0-138, mana-on-1-0-0-140, mana-on-1-0-0-143, mana-on-1-0-0-149, mana-on-1-0-0-154

TeamScore

What a server sends to set a side’s score, where a match is won on score. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 221 on events, sent by the server, reliable.

A client takes this whenever its match interface exists, which it builds while loading, before StartGame. It draws nothing from this message alone: the score shows on the panel that a client shows only where the version answer named the mode ODIN and a point is known (CapturePointChanged). The panel counts five points, and a score of 500 at most. A score that arrives before the panel shows is shown when it does. Reaching a score ends nothing in a client: a match ends through the messages that end any match.

FieldTypeWhat it is
sidei32Which side, 100 or 200. A client ignores any other.
scorei32The score it now stands at: the whole of it, not a change.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134222
1.0.0.135224
1.0.0.136–1.0.0.137222
1.0.0.138224

A client takes this only once the match has started. It draws nothing from this message alone: the score shows on the panel that a client shows only where the version answer named the mode ODIN and a point is known (CapturePointChanged). The panel counts five points, and a score of 500 at most. A score that arrives before the panel shows is shown when it does. Reaching a score ends nothing in a client: a match ends through the messages that end any match.

FieldTypeWhat it is
sidei32Which side, 100 or 200. A client ignores any other.
scorei32The score it now stands at: the whole of it, not a change.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 223 on events, sent by the server, reliable.

A client takes this once its interface for the match exists, which it builds while loading, after accepting VersionSync; it drops a score arriving before then. It draws nothing from this message alone: the score shows on the panel that a client shows only where the version answer named the mode ODIN and a point is known (CapturePointChanged). The panel counts five points, and a score of 500 at most. A score that arrives before the panel shows is shown when it does. Reaching a score ends nothing in a client: a match ends through the messages that end any match.

FieldTypeWhat it is
sidei32Which side, 100 or 200. A client ignores any other.
scorei32The score it now stands at: the whole of it, not a change.
Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143225
1.0.0.144–1.0.0.149212
1.0.0.150–3.1.0.0209

A client takes this only once the match has started. It draws nothing from this message alone: the score shows on the panel that a client shows only where the version answer named the mode ODIN and a point is known (CapturePointChanged). The panel counts five points, and a score of 500 at most. A score that arrives before the panel shows is shown when it does. Reaching a score ends nothing in a client: a match ends through the messages that end any match.

FieldTypeWhat it is
sidei32Which side, 100 or 200. A client ignores any other.
scorei32The score it now stands at: the whole of it, not a change.
Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

RespawnPoint

What a server sends about the points a champion can choose to return to life at. A client acts on it only where its screen has a panel of such points. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131222
1.0.0.132–1.0.0.134223
1.0.0.135225
1.0.0.136–1.0.0.137223
1.0.0.138225
1.0.0.139–1.0.0.140224
1.0.0.141–1.0.0.143226
1.0.0.144–1.0.0.149213
1.0.0.150–3.1.0.0210
FieldTypeWhat it is
actionu8What happened. A client ignores any other value. Values: 0 owned, 1 chosen.
pointu8Which point.
sidei32The side holding it, 100 or 200. It takes effect only where action is owned.
clientIdu32The client id of the player who chose it. It takes effect only where action is chosen.
xf32Where the point stands, in world units. It takes effect only where action is owned.
yf32Its height, in world units. It takes effect only where action is owned.
zf32Where the point stands, in world units. It takes effect only where action is owned.
Vectors (9)

owned-on-1-0-0-131, owned-on-1-0-0-134, owned-on-1-0-0-135, owned-on-1-0-0-136, owned-on-1-0-0-138, owned-on-1-0-0-140, owned-on-1-0-0-143, owned-on-1-0-0-149, owned-on-1-0-0-154

WorldEvent

What a server sends to say something happened that the whole match is told about. What sort of thing is named first, and the sort settles what follows. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.132

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13174
1.0.0.13275
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 109, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageExtrau8event = 3Read with the stage and shown nowhere; a server writes zero.
stagePaddingbytes, 3event = 3Unused; a server writes zero.
damagerecordevent = 13 or 14How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 21How much gold, as shown.
valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
criticalf32event = 24The critical strike’s damage, as shown.
spreeu32event = 42How many kills in a row, as shown.
earnedrecordevent = 22Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 39 or 40How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 41The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 61What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
Vectors (30)

another-on-1-0-0-131, buff-on-1-0-0-131, consumable-bought-on-1-0-0-131, critical-strike-on-1-0-0-131, damage-dealt-on-1-0-0-131, damage-taken-on-1-0-0-131, death-assist-on-1-0-0-131, died-on-1-0-0-131, gold-earned-on-1-0-0-131, gold-spent-on-1-0-0-131, heal-cast-on-1-0-0-131, heal-on-1-0-0-131, item-bought-on-1-0-0-131, killing-spree-on-1-0-0-131, one-on-1-0-0-131, another-on-1-0-0-132, buff-on-1-0-0-132, consumable-bought-on-1-0-0-132, critical-strike-on-1-0-0-132, damage-dealt-on-1-0-0-132, damage-taken-on-1-0-0-132, death-assist-on-1-0-0-132, died-on-1-0-0-132, gold-earned-on-1-0-0-132, gold-spent-on-1-0-0-132, heal-cast-on-1-0-0-132, heal-on-1-0-0-132, item-bought-on-1-0-0-132, killing-spree-on-1-0-0-132, one-on-1-0-0-132

In 1.0.0.133

Command 75 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 110, and so which fields follow. Values: 0 died, 2 championDied, 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 3 or 4A client reads it and shows nothing for it; a server writes zero.
stageExtrau8event = 3 or 4Read with the stage and shown nowhere; a server writes zero.
stagePaddingbytes, 3event = 3 or 4Unused; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
Vectors (16)

another-on-1-0-0-133, buff-on-1-0-0-133, champion-kill-handler-on-1-0-0-133, consumable-bought-on-1-0-0-133, critical-strike-on-1-0-0-133, damage-dealt-on-1-0-0-133, damage-taken-on-1-0-0-133, death-assist-on-1-0-0-133, died-on-1-0-0-133, gold-earned-on-1-0-0-133, gold-spent-on-1-0-0-133, heal-cast-on-1-0-0-133, heal-on-1-0-0-133, item-bought-on-1-0-0-133, killing-spree-on-1-0-0-133, one-on-1-0-0-133

In 1.0.0.134

Command 75 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 109, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 3A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 13 or 14How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 21How much gold, as shown.
valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
criticalf32event = 24The critical strike’s damage, as shown.
spreeu32event = 42How many kills in a row, as shown.
earnedrecordevent = 22Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 39 or 40How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 41The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 61What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
Vectors (15)

another-on-1-0-0-134, buff-on-1-0-0-134, consumable-bought-on-1-0-0-134, critical-strike-on-1-0-0-134, damage-dealt-on-1-0-0-134, damage-taken-on-1-0-0-134, death-assist-on-1-0-0-134, died-on-1-0-0-134, gold-earned-on-1-0-0-134, gold-spent-on-1-0-0-134, heal-cast-on-1-0-0-134, heal-on-1-0-0-134, item-bought-on-1-0-0-134, killing-spree-on-1-0-0-134, one-on-1-0-0-134

In 1.0.0.135–1.0.0.137

Command 75 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 110, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 itemCallout, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 3A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 13 or 14How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 21How much gold, as shown.
valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
criticalf32event = 24The critical strike’s damage, as shown.
spreeu32event = 42How many kills in a row, as shown.
earnedrecordevent = 22Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 39 or 40How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 41The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 61What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
calloutrecordevent = 76The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
Vectors (16)

another-on-1-0-0-136, buff-on-1-0-0-136, consumable-bought-on-1-0-0-136, critical-strike-on-1-0-0-136, damage-dealt-on-1-0-0-136, damage-taken-on-1-0-0-136, death-assist-on-1-0-0-136, died-on-1-0-0-136, gold-earned-on-1-0-0-136, gold-spent-on-1-0-0-136, heal-cast-on-1-0-0-136, heal-on-1-0-0-136, item-bought-on-1-0-0-136, item-callout-on-1-0-0-136, killing-spree-on-1-0-0-136, one-on-1-0-0-136

In 1.0.0.138–1.0.0.139

Command 76 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 115, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 113 particleLimit.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (16)

buff-on-1-0-0-139, consumable-bought-on-1-0-0-139, critical-strike-on-1-0-0-139, damage-dealt-on-1-0-0-139, damage-taken-on-1-0-0-139, death-assist-on-1-0-0-139, died-on-1-0-0-139, gold-earned-on-1-0-0-139, gold-spent-on-1-0-0-139, heal-cast-on-1-0-0-139, heal-on-1-0-0-139, item-bought-on-1-0-0-139, item-callout-on-1-0-0-139, killing-spree-on-1-0-0-139, one-on-1-0-0-139, removed-on-1-0-0-139

In 1.0.0.140–1.0.0.141

Command 76 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 116, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (16)

buff-on-1-0-0-141, consumable-bought-on-1-0-0-141, critical-strike-on-1-0-0-141, damage-dealt-on-1-0-0-141, damage-taken-on-1-0-0-141, death-assist-on-1-0-0-141, died-on-1-0-0-141, gold-earned-on-1-0-0-141, gold-spent-on-1-0-0-141, heal-cast-on-1-0-0-141, heal-on-1-0-0-141, item-bought-on-1-0-0-141, item-callout-on-1-0-0-141, killing-spree-on-1-0-0-141, one-on-1-0-0-141, removed-on-1-0-0-141

In 1.0.0.142–1.0.0.143

Command 76 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 120, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched.
sourceu32The unit the thing is credited to, or zero where none is. For a monster’s death, 117 to 120, a client reads the side of the unit named here before it looks whether it holds it, and fails where it does not: a server names a unit the client holds.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 117 or 118 or 119 or 120Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (20)

baron-killed-on-1-0-0-143, baron-killed-watched-on-1-0-0-143, buff-on-1-0-0-143, consumable-bought-on-1-0-0-143, critical-strike-on-1-0-0-143, damage-dealt-on-1-0-0-143, damage-taken-on-1-0-0-143, death-assist-on-1-0-0-143, died-on-1-0-0-143, dragon-killed-on-1-0-0-143, dragon-killed-watched-on-1-0-0-143, gold-earned-on-1-0-0-143, gold-spent-on-1-0-0-143, heal-cast-on-1-0-0-143, heal-on-1-0-0-143, item-bought-on-1-0-0-143, item-callout-on-1-0-0-143, killing-spree-on-1-0-0-143, one-on-1-0-0-143, removed-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 70 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 119, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched.
sourceu32The unit the thing is credited to, or zero where none is. For a monster’s death, 116 to 119, a client reads the side of the unit named here before it looks whether it holds it, and fails where it does not: a server names a unit the client holds.
subjectu32The unit the thing happened to, or zero where none is named.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (20)

baron-killed-on-1-0-0-146, baron-killed-watched-on-1-0-0-146, buff-on-1-0-0-146, consumable-bought-on-1-0-0-146, critical-strike-on-1-0-0-146, damage-dealt-on-1-0-0-146, damage-taken-on-1-0-0-146, death-assist-on-1-0-0-146, died-on-1-0-0-146, dragon-killed-on-1-0-0-146, dragon-killed-watched-on-1-0-0-146, gold-earned-on-1-0-0-146, gold-spent-on-1-0-0-146, heal-cast-on-1-0-0-146, heal-on-1-0-0-146, item-bought-on-1-0-0-146, item-callout-on-1-0-0-146, killing-spree-on-1-0-0-146, one-on-1-0-0-146, removed-on-1-0-0-146

In 1.0.0.147

Command 70 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 119, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched.
sourceu32The unit the thing is credited to, or zero where none is. For a monster’s death, 116 to 119, a client reads the side of the unit named here before it looks whether it holds it, and fails where it does not: a server names a unit the client holds.
subjectu32The unit the thing happened to, or zero where none is named.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (20)

baron-killed-on-1-0-0-147, baron-killed-watched-on-1-0-0-147, buff-on-1-0-0-147, consumable-bought-on-1-0-0-147, critical-strike-on-1-0-0-147, damage-dealt-on-1-0-0-147, damage-taken-on-1-0-0-147, death-assist-on-1-0-0-147, died-on-1-0-0-147, dragon-killed-on-1-0-0-147, dragon-killed-watched-on-1-0-0-147, gold-earned-on-1-0-0-147, gold-spent-on-1-0-0-147, heal-cast-on-1-0-0-147, heal-on-1-0-0-147, item-bought-on-1-0-0-147, item-callout-on-1-0-0-147, killing-spree-on-1-0-0-147, one-on-1-0-0-147, removed-on-1-0-0-147

In 1.0.0.148

Command 70 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 121, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched.
sourceu32The unit the thing is credited to, or zero where none is. For a monster’s death, 116 to 121, a client reads the side of the unit named here before it looks whether it holds it, and fails where it does not: a server names a unit the client holds.
subjectu32The unit the thing happened to, or zero where none is named.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (22)

baron-killed-on-1-0-0-148, baron-killed-watched-on-1-0-0-148, buff-on-1-0-0-148, consumable-bought-on-1-0-0-148, critical-strike-on-1-0-0-148, damage-dealt-on-1-0-0-148, damage-taken-on-1-0-0-148, death-assist-on-1-0-0-148, died-on-1-0-0-148, dragon-killed-on-1-0-0-148, dragon-killed-watched-on-1-0-0-148, gold-earned-on-1-0-0-148, gold-spent-on-1-0-0-148, heal-cast-on-1-0-0-148, heal-on-1-0-0-148, item-bought-on-1-0-0-148, item-callout-on-1-0-0-148, killing-spree-on-1-0-0-148, one-on-1-0-0-148, removed-on-1-0-0-148, spider-killed-on-1-0-0-148, spider-killed-watched-on-1-0-0-148

In 1.0.0.149

Command 70 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
sourceu32The unit the thing is credited to, or zero where none is. For a monster’s death, 116 to 121, a client reads the side of the unit named here before it looks whether it holds it, and fails where it does not: a server names a unit the client holds.
subjectu32The unit the thing happened to, or zero where none is named.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76 or 122 or 123What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (24)

altar-captured-on-1-0-0-149, altar-captured-watched-on-1-0-0-149, baron-killed-on-1-0-0-149, baron-killed-watched-on-1-0-0-149, buff-on-1-0-0-149, consumable-bought-on-1-0-0-149, critical-strike-on-1-0-0-149, damage-dealt-on-1-0-0-149, damage-taken-on-1-0-0-149, death-assist-on-1-0-0-149, died-on-1-0-0-149, dragon-killed-on-1-0-0-149, dragon-killed-watched-on-1-0-0-149, gold-earned-on-1-0-0-149, gold-spent-on-1-0-0-149, heal-cast-on-1-0-0-149, heal-on-1-0-0-149, item-bought-on-1-0-0-149, item-callout-on-1-0-0-149, killing-spree-on-1-0-0-149, one-on-1-0-0-149, removed-on-1-0-0-149, spider-killed-on-1-0-0-149, spider-killed-watched-on-1-0-0-149

In 1.0.0.150–1.0.0.151

Command 67 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76 or 122 or 123What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (24)

altar-captured-on-1-0-0-151, altar-captured-watched-on-1-0-0-151, baron-killed-on-1-0-0-151, baron-killed-watched-on-1-0-0-151, buff-on-1-0-0-151, consumable-bought-on-1-0-0-151, critical-strike-on-1-0-0-151, damage-dealt-on-1-0-0-151, damage-taken-on-1-0-0-151, death-assist-on-1-0-0-151, died-on-1-0-0-151, dragon-killed-on-1-0-0-151, dragon-killed-watched-on-1-0-0-151, gold-earned-on-1-0-0-151, gold-spent-on-1-0-0-151, heal-cast-on-1-0-0-151, heal-on-1-0-0-151, item-bought-on-1-0-0-151, item-callout-on-1-0-0-151, killing-spree-on-1-0-0-151, one-on-1-0-0-151, removed-on-1-0-0-151, spider-killed-on-1-0-0-151, spider-killed-watched-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 67 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 itemChanged, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76 or 78 or 122 or 123What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (25)

altar-captured-on-1-0-0-154, altar-captured-watched-on-1-0-0-154, baron-killed-on-1-0-0-154, baron-killed-watched-on-1-0-0-154, buff-on-1-0-0-154, consumable-bought-on-1-0-0-154, critical-strike-on-1-0-0-154, damage-dealt-on-1-0-0-154, damage-taken-on-1-0-0-154, death-assist-on-1-0-0-154, died-on-1-0-0-154, dragon-killed-on-1-0-0-154, dragon-killed-watched-on-1-0-0-154, gold-earned-on-1-0-0-154, gold-spent-on-1-0-0-154, heal-cast-on-1-0-0-154, heal-on-1-0-0-154, item-bought-on-1-0-0-154, item-callout-on-1-0-0-154, item-changed-on-1-0-0-154, killing-spree-on-1-0-0-154, one-on-1-0-0-154, removed-on-1-0-0-154, spider-killed-on-1-0-0-154, spider-killed-watched-on-1-0-0-154

ClientEvent

What a server sends to tell a client something happened. The sort is named first and settles what follows; unlike WorldEvent it carries no source apart from what the sort itself carries. The header names the unit the event is about.

Definition.

In 1.0.0.130–1.0.0.132

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131171
1.0.0.132172
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 109, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 surrenderVoteStarted, 77 surrenderVoteCast, 78 surrenderAlreadyVoted, 79 surrenderCountdown, 80 surrenderFailed, 81 surrenderTooEarly, 82 surrenderAgreed, 83 surrenderVoteSpam, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 90 startNoticeFour, 91 startNoticeFive, 92 alert, 93 scoreboardOpened, 96 pointANeutralized, 97 pointBNeutralized, 98 pointCNeutralized, 99 pointDNeutralized, 100 pointENeutralized, 101 pointACaptured, 102 pointBCaptured, 103 pointCCaptured, 104 pointDCaptured, 105 pointECaptured.
subjectu32The unit the event is about.
stageExtrau8event = 3Read with the stage and shown nowhere; a server writes zero.
stagePaddingbytes, 3event = 3Unused; a server writes zero.
damagerecordevent = 13 or 14How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 21How much gold, as shown.
valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
criticalf32event = 24The critical strike’s damage, as shown.
spreeu32event = 42How many kills in a row, as shown.
earnedrecordevent = 22Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 39 or 40How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 41The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 61What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
Vectors (30)

another-on-1-0-0-131, buff-on-1-0-0-131, consumable-bought-on-1-0-0-131, critical-strike-on-1-0-0-131, damage-dealt-on-1-0-0-131, damage-taken-on-1-0-0-131, death-assist-on-1-0-0-131, died-on-1-0-0-131, gold-earned-on-1-0-0-131, gold-spent-on-1-0-0-131, heal-cast-on-1-0-0-131, heal-on-1-0-0-131, item-bought-on-1-0-0-131, killing-spree-on-1-0-0-131, one-on-1-0-0-131, another-on-1-0-0-132, buff-on-1-0-0-132, consumable-bought-on-1-0-0-132, critical-strike-on-1-0-0-132, damage-dealt-on-1-0-0-132, damage-taken-on-1-0-0-132, death-assist-on-1-0-0-132, died-on-1-0-0-132, gold-earned-on-1-0-0-132, gold-spent-on-1-0-0-132, heal-cast-on-1-0-0-132, heal-on-1-0-0-132, item-bought-on-1-0-0-132, killing-spree-on-1-0-0-132, one-on-1-0-0-132

In 1.0.0.133

Command 172 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 110, and so which fields follow. Values: 0 died, 2 championDied, 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 surrenderVoteStarted, 78 surrenderVoteCast, 79 surrenderAlreadyVoted, 80 surrenderCountdown, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured.
subjectu32The unit the event is about.
stageu32event = 3 or 4A client reads it and shows nothing for it; a server writes zero.
stageExtrau8event = 3 or 4Read with the stage and shown nowhere; a server writes zero.
stagePaddingbytes, 3event = 3 or 4Unused; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
Vectors (16)

another-on-1-0-0-133, buff-on-1-0-0-133, champion-kill-handler-on-1-0-0-133, consumable-bought-on-1-0-0-133, critical-strike-on-1-0-0-133, damage-dealt-on-1-0-0-133, damage-taken-on-1-0-0-133, death-assist-on-1-0-0-133, died-on-1-0-0-133, gold-earned-on-1-0-0-133, gold-spent-on-1-0-0-133, heal-cast-on-1-0-0-133, heal-on-1-0-0-133, item-bought-on-1-0-0-133, killing-spree-on-1-0-0-133, one-on-1-0-0-133

In 1.0.0.134

Command 172 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 109, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 surrenderVoteStarted, 77 surrenderVoteCast, 78 surrenderAlreadyVoted, 79 surrenderCountdown, 80 surrenderFailed, 81 surrenderTooEarly, 82 surrenderAgreed, 83 surrenderVoteSpam, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 90 startNoticeFour, 91 startNoticeFive, 92 alert, 93 scoreboardOpened, 96 pointANeutralized, 97 pointBNeutralized, 98 pointCNeutralized, 99 pointDNeutralized, 100 pointENeutralized, 101 pointACaptured, 102 pointBCaptured, 103 pointCCaptured, 104 pointDCaptured, 105 pointECaptured.
subjectu32The unit the event is about.
stageu32event = 3A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 13 or 14How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 21How much gold, as shown.
valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
criticalf32event = 24The critical strike’s damage, as shown.
spreeu32event = 42How many kills in a row, as shown.
earnedrecordevent = 22Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 39 or 40How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 41The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 61What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
Vectors (15)

another-on-1-0-0-134, buff-on-1-0-0-134, consumable-bought-on-1-0-0-134, critical-strike-on-1-0-0-134, damage-dealt-on-1-0-0-134, damage-taken-on-1-0-0-134, death-assist-on-1-0-0-134, died-on-1-0-0-134, gold-earned-on-1-0-0-134, gold-spent-on-1-0-0-134, heal-cast-on-1-0-0-134, heal-on-1-0-0-134, item-bought-on-1-0-0-134, killing-spree-on-1-0-0-134, one-on-1-0-0-134

In 1.0.0.135–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.135174
1.0.0.136–1.0.0.137172
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 110, and so which fields follow. Values: 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 itemCallout, 77 surrenderVoteStarted, 78 surrenderVoteCast, 79 surrenderAlreadyVoted, 80 surrenderCountdown, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured.
subjectu32The unit the event is about.
stageu32event = 3A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 13 or 14How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 21How much gold, as shown.
valueu32event = 23 or 75What it carries is not recorded for this range; a client does not show it.
criticalf32event = 24The critical strike’s damage, as shown.
spreeu32event = 42How many kills in a row, as shown.
earnedrecordevent = 22Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 39 or 40How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 41The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 61What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 0The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
calloutrecordevent = 76The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
Vectors (32)

another-on-1-0-0-135, buff-on-1-0-0-135, consumable-bought-on-1-0-0-135, critical-strike-on-1-0-0-135, damage-dealt-on-1-0-0-135, damage-taken-on-1-0-0-135, death-assist-on-1-0-0-135, died-on-1-0-0-135, gold-earned-on-1-0-0-135, gold-spent-on-1-0-0-135, heal-cast-on-1-0-0-135, heal-on-1-0-0-135, item-bought-on-1-0-0-135, item-callout-on-1-0-0-135, killing-spree-on-1-0-0-135, one-on-1-0-0-135, another-on-1-0-0-136, buff-on-1-0-0-136, consumable-bought-on-1-0-0-136, critical-strike-on-1-0-0-136, damage-dealt-on-1-0-0-136, damage-taken-on-1-0-0-136, death-assist-on-1-0-0-136, died-on-1-0-0-136, gold-earned-on-1-0-0-136, gold-spent-on-1-0-0-136, heal-cast-on-1-0-0-136, heal-on-1-0-0-136, item-bought-on-1-0-0-136, item-callout-on-1-0-0-136, killing-spree-on-1-0-0-136, one-on-1-0-0-136

In 1.0.0.138–1.0.0.139

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138174
1.0.0.139173
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 115, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderCountdown, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 113 particleLimit.
subjectu32The unit the event is about.
otheru32A second unit the event names, which a client takes with every event, before its own fields.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (32)

buff-on-1-0-0-138, consumable-bought-on-1-0-0-138, critical-strike-on-1-0-0-138, damage-dealt-on-1-0-0-138, damage-taken-on-1-0-0-138, death-assist-on-1-0-0-138, died-on-1-0-0-138, gold-earned-on-1-0-0-138, gold-spent-on-1-0-0-138, heal-cast-on-1-0-0-138, heal-on-1-0-0-138, item-bought-on-1-0-0-138, item-callout-on-1-0-0-138, killing-spree-on-1-0-0-138, one-on-1-0-0-138, removed-on-1-0-0-138, buff-on-1-0-0-139, consumable-bought-on-1-0-0-139, critical-strike-on-1-0-0-139, damage-dealt-on-1-0-0-139, damage-taken-on-1-0-0-139, death-assist-on-1-0-0-139, died-on-1-0-0-139, gold-earned-on-1-0-0-139, gold-spent-on-1-0-0-139, heal-cast-on-1-0-0-139, heal-on-1-0-0-139, item-bought-on-1-0-0-139, item-callout-on-1-0-0-139, killing-spree-on-1-0-0-139, one-on-1-0-0-139, removed-on-1-0-0-139

In 1.0.0.140–1.0.0.141

Command 173 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 116, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderCountdown, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 116 particleLimit.
subjectu32The unit the event is about.
otheru32A second unit the event names, which a client takes with every event, before its own fields.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (16)

buff-on-1-0-0-141, consumable-bought-on-1-0-0-141, critical-strike-on-1-0-0-141, damage-dealt-on-1-0-0-141, damage-taken-on-1-0-0-141, death-assist-on-1-0-0-141, died-on-1-0-0-141, gold-earned-on-1-0-0-141, gold-spent-on-1-0-0-141, heal-cast-on-1-0-0-141, heal-on-1-0-0-141, item-bought-on-1-0-0-141, item-callout-on-1-0-0-141, killing-spree-on-1-0-0-141, one-on-1-0-0-141, removed-on-1-0-0-141

In 1.0.0.142

Command 173 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 120, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderCountdown, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched.
subjectu32The unit the event is about.
otheru32A second unit the event names, which a client takes with every event, before its own fields.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 117 or 118 or 119 or 120Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (20)

baron-killed-on-1-0-0-142, baron-killed-watched-on-1-0-0-142, buff-on-1-0-0-142, consumable-bought-on-1-0-0-142, critical-strike-on-1-0-0-142, damage-dealt-on-1-0-0-142, damage-taken-on-1-0-0-142, death-assist-on-1-0-0-142, died-on-1-0-0-142, dragon-killed-on-1-0-0-142, dragon-killed-watched-on-1-0-0-142, gold-earned-on-1-0-0-142, gold-spent-on-1-0-0-142, heal-cast-on-1-0-0-142, heal-on-1-0-0-142, item-bought-on-1-0-0-142, item-callout-on-1-0-0-142, killing-spree-on-1-0-0-142, one-on-1-0-0-142, removed-on-1-0-0-142

In 1.0.0.143

Command 173 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 120, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderCountdown, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched.
subjectu32The unit the event is about.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 117 or 118 or 119 or 120Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (20)

baron-killed-on-1-0-0-143, baron-killed-watched-on-1-0-0-143, buff-on-1-0-0-143, consumable-bought-on-1-0-0-143, critical-strike-on-1-0-0-143, damage-dealt-on-1-0-0-143, damage-taken-on-1-0-0-143, death-assist-on-1-0-0-143, died-on-1-0-0-143, dragon-killed-on-1-0-0-143, dragon-killed-watched-on-1-0-0-143, gold-earned-on-1-0-0-143, gold-spent-on-1-0-0-143, heal-cast-on-1-0-0-143, heal-on-1-0-0-143, item-bought-on-1-0-0-143, item-callout-on-1-0-0-143, killing-spree-on-1-0-0-143, one-on-1-0-0-143, removed-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 163 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 119, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched.
subjectu32The unit the event is about.
stageu32event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32Unused; a client reads nothing here.
damage.parent4-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15 to 31Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.spellLevelu32The level of the spell it came from.
heal.parentSourceu32What sort of source the parent script is, as sourceKind.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.unusedu32Unused; a client reads nothing here.
heal.unusedToou32Unused; a client reads nothing here.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu32What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.spellLevelu32The level of the spell it came from.
effect.parentSourceu32What sort of source the parent script is, as sourceKind.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.unusedu32Unused; a client reads nothing here.
effect.unusedToou32Unused; a client reads nothing here.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
Vectors (20)

baron-killed-on-1-0-0-146, baron-killed-watched-on-1-0-0-146, buff-on-1-0-0-146, consumable-bought-on-1-0-0-146, critical-strike-on-1-0-0-146, damage-dealt-on-1-0-0-146, damage-taken-on-1-0-0-146, death-assist-on-1-0-0-146, died-on-1-0-0-146, dragon-killed-on-1-0-0-146, dragon-killed-watched-on-1-0-0-146, gold-earned-on-1-0-0-146, gold-spent-on-1-0-0-146, heal-cast-on-1-0-0-146, heal-on-1-0-0-146, item-bought-on-1-0-0-146, item-callout-on-1-0-0-146, killing-spree-on-1-0-0-146, one-on-1-0-0-146, removed-on-1-0-0-146

In 1.0.0.147

Command 163 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 119, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched.
subjectu32The unit the event is about.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
votesrecordevent = 78 or 79 or 81 or 83 or 84The count a client shows in the vote’s notice.
votes.inFavouru32How many voted for.
votes.againstu32How many voted against.
votes.sideu16The side voting.
alertrecordevent = 93Two numbers the alert’s text shows.
alert.firstu32The first.
alert.secondu32The second.
numberu32event = 88 or 89 or 90 or 91 or 92 or 97 or 98 or 99 or 100 or 101 or 102 or 103 or 104 or 105 or 106A number the notice’s text shows: for 89 to 93 the map’s.
Vectors (41)

alert-on-1-0-0-147, baron-killed-on-1-0-0-147, baron-killed-watched-on-1-0-0-147, buff-on-1-0-0-147, consumable-bought-on-1-0-0-147, critical-strike-on-1-0-0-147, damage-dealt-on-1-0-0-147, damage-taken-on-1-0-0-147, death-assist-on-1-0-0-147, died-on-1-0-0-147, dragon-killed-on-1-0-0-147, dragon-killed-watched-on-1-0-0-147, gold-earned-on-1-0-0-147, gold-spent-on-1-0-0-147, heal-cast-on-1-0-0-147, heal-on-1-0-0-147, item-bought-on-1-0-0-147, item-callout-on-1-0-0-147, killing-spree-on-1-0-0-147, one-on-1-0-0-147, point-acaptured-on-1-0-0-147, point-aneutralized-on-1-0-0-147, point-bcaptured-on-1-0-0-147, point-bneutralized-on-1-0-0-147, point-ccaptured-on-1-0-0-147, point-cneutralized-on-1-0-0-147, point-dcaptured-on-1-0-0-147, point-dneutralized-on-1-0-0-147, point-ecaptured-on-1-0-0-147, point-eneutralized-on-1-0-0-147, removed-on-1-0-0-147, start-notice-five-on-1-0-0-147, start-notice-four-on-1-0-0-147, start-notice-three-on-1-0-0-147, start-notice-two-on-1-0-0-147, surrender-agreed-on-1-0-0-147, surrender-failed-on-1-0-0-147, surrender-vote-cast-on-1-0-0-147, surrender-vote-spam-on-1-0-0-147, surrender-vote-started-on-1-0-0-147, welcome-on-1-0-0-147

In 1.0.0.148

Command 163 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 121, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched.
subjectu32The unit the event is about.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
votesrecordevent = 78 or 79 or 81 or 83 or 84The count a client shows in the vote’s notice.
votes.inFavouru32How many voted for.
votes.againstu32How many voted against.
votes.sideu16The side voting.
alertrecordevent = 93Two numbers the alert’s text shows.
alert.firstu32The first.
alert.secondu32The second.
numberu32event = 88 or 89 or 90 or 91 or 92 or 97 or 98 or 99 or 100 or 101 or 102 or 103 or 104 or 105 or 106A number the notice’s text shows: for 89 to 93 the map’s.
Vectors (43)

alert-on-1-0-0-148, baron-killed-on-1-0-0-148, baron-killed-watched-on-1-0-0-148, buff-on-1-0-0-148, consumable-bought-on-1-0-0-148, critical-strike-on-1-0-0-148, damage-dealt-on-1-0-0-148, damage-taken-on-1-0-0-148, death-assist-on-1-0-0-148, died-on-1-0-0-148, dragon-killed-on-1-0-0-148, dragon-killed-watched-on-1-0-0-148, gold-earned-on-1-0-0-148, gold-spent-on-1-0-0-148, heal-cast-on-1-0-0-148, heal-on-1-0-0-148, item-bought-on-1-0-0-148, item-callout-on-1-0-0-148, killing-spree-on-1-0-0-148, one-on-1-0-0-148, point-acaptured-on-1-0-0-148, point-aneutralized-on-1-0-0-148, point-bcaptured-on-1-0-0-148, point-bneutralized-on-1-0-0-148, point-ccaptured-on-1-0-0-148, point-cneutralized-on-1-0-0-148, point-dcaptured-on-1-0-0-148, point-dneutralized-on-1-0-0-148, point-ecaptured-on-1-0-0-148, point-eneutralized-on-1-0-0-148, removed-on-1-0-0-148, spider-killed-on-1-0-0-148, spider-killed-watched-on-1-0-0-148, start-notice-five-on-1-0-0-148, start-notice-four-on-1-0-0-148, start-notice-three-on-1-0-0-148, start-notice-two-on-1-0-0-148, surrender-agreed-on-1-0-0-148, surrender-failed-on-1-0-0-148, surrender-vote-cast-on-1-0-0-148, surrender-vote-spam-on-1-0-0-148, surrender-vote-started-on-1-0-0-148, welcome-on-1-0-0-148

In 1.0.0.149–1.0.0.151

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.149163
1.0.0.150–1.0.0.151160
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
subjectu32The unit the event is about.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76 or 122 or 123What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
votesrecordevent = 78 or 79 or 81 or 83 or 84The count a client shows in the vote’s notice.
votes.inFavouru32How many voted for.
votes.againstu32How many voted against.
votes.sideu16The side voting.
alertrecordevent = 93Two numbers the alert’s text shows.
alert.firstu32The first.
alert.secondu32The second.
numberu32event = 88 or 89 or 90 or 91 or 92 or 97 or 98 or 99 or 100 or 101 or 102 or 103 or 104 or 105 or 106A number the notice’s text shows: for 89 to 93 the map’s.
Vectors (90)

alert-on-1-0-0-149, altar-captured-on-1-0-0-149, altar-captured-watched-on-1-0-0-149, baron-killed-on-1-0-0-149, baron-killed-watched-on-1-0-0-149, buff-on-1-0-0-149, consumable-bought-on-1-0-0-149, critical-strike-on-1-0-0-149, damage-dealt-on-1-0-0-149, damage-taken-on-1-0-0-149, death-assist-on-1-0-0-149, died-on-1-0-0-149, dragon-killed-on-1-0-0-149, dragon-killed-watched-on-1-0-0-149, gold-earned-on-1-0-0-149, gold-spent-on-1-0-0-149, heal-cast-on-1-0-0-149, heal-on-1-0-0-149, item-bought-on-1-0-0-149, item-callout-on-1-0-0-149, killing-spree-on-1-0-0-149, one-on-1-0-0-149, point-acaptured-on-1-0-0-149, point-aneutralized-on-1-0-0-149, point-bcaptured-on-1-0-0-149, point-bneutralized-on-1-0-0-149, point-ccaptured-on-1-0-0-149, point-cneutralized-on-1-0-0-149, point-dcaptured-on-1-0-0-149, point-dneutralized-on-1-0-0-149, point-ecaptured-on-1-0-0-149, point-eneutralized-on-1-0-0-149, removed-on-1-0-0-149, spider-killed-on-1-0-0-149, spider-killed-watched-on-1-0-0-149, start-notice-five-on-1-0-0-149, start-notice-four-on-1-0-0-149, start-notice-three-on-1-0-0-149, start-notice-two-on-1-0-0-149, surrender-agreed-on-1-0-0-149, surrender-failed-on-1-0-0-149, surrender-vote-cast-on-1-0-0-149, surrender-vote-spam-on-1-0-0-149, surrender-vote-started-on-1-0-0-149, welcome-on-1-0-0-149, alert-on-1-0-0-151, altar-captured-on-1-0-0-151, altar-captured-watched-on-1-0-0-151, baron-killed-on-1-0-0-151, baron-killed-watched-on-1-0-0-151, buff-on-1-0-0-151, consumable-bought-on-1-0-0-151, critical-strike-on-1-0-0-151, damage-dealt-on-1-0-0-151, damage-taken-on-1-0-0-151, death-assist-on-1-0-0-151, died-on-1-0-0-151, dragon-killed-on-1-0-0-151, dragon-killed-watched-on-1-0-0-151, gold-earned-on-1-0-0-151, gold-spent-on-1-0-0-151, heal-cast-on-1-0-0-151, heal-on-1-0-0-151, item-bought-on-1-0-0-151, item-callout-on-1-0-0-151, killing-spree-on-1-0-0-151, one-on-1-0-0-151, point-acaptured-on-1-0-0-151, point-aneutralized-on-1-0-0-151, point-bcaptured-on-1-0-0-151, point-bneutralized-on-1-0-0-151, point-ccaptured-on-1-0-0-151, point-cneutralized-on-1-0-0-151, point-dcaptured-on-1-0-0-151, point-dneutralized-on-1-0-0-151, point-ecaptured-on-1-0-0-151, point-eneutralized-on-1-0-0-151, removed-on-1-0-0-151, spider-killed-on-1-0-0-151, spider-killed-watched-on-1-0-0-151, start-notice-five-on-1-0-0-151, start-notice-four-on-1-0-0-151, start-notice-three-on-1-0-0-151, start-notice-two-on-1-0-0-151, surrender-agreed-on-1-0-0-151, surrender-failed-on-1-0-0-151, surrender-vote-cast-on-1-0-0-151, surrender-vote-spam-on-1-0-0-151, surrender-vote-started-on-1-0-0-151, welcome-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 160 on events, sent by the server, reliable.

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 123, and so which fields follow. Values: 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 itemChanged, 79 surrenderVoteStarted, 80 surrenderVoteCast, 81 surrenderAlreadyVoted, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched, 120 spiderKilled, 121 spiderKilledWatched, 122 altarCaptured, 123 altarCapturedWatched.
subjectu32The unit the event is about.
stageu8event = 4A client reads it and shows nothing for it; a server writes zero.
damagerecordevent = 14 or 15How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical damage.
damage.truef32True damage.
damage.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
damage.scriptu32The spell or effect, by the number its name gives, shown by name.
damage.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
damage.parentCasteru32What it carries is not recorded for this range; a server writes zero.
damage.parent2-byte bitsWhere the spell or effect came from.
damage.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
damage.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
damage.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
damage.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
damage.parent.unusedbit 15Unused; a server writes zero.
spentu32event = 22How much gold, as shown.
valueu32event = 24 or 76 or 78 or 122 or 123What it carries is not recorded for this range; a client does not show it.
criticalf32event = 25The critical strike’s damage, as shown.
spreeu32event = 43How many kills in a row, as shown.
earnedrecordevent = 23Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 40 or 41How much health, and from what.
heal.amountf32How much health, as shown.
heal.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
heal.scriptu32The spell or effect, by the number its name gives, shown by name.
heal.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
heal.parentCasteru32What it carries is not recorded for this range; a server writes zero.
heal.parent2-byte bitsWhere the spell or effect came from.
heal.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
heal.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
heal.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
heal.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
heal.parent.unusedbit 15Unused; a server writes zero.
effectrecordevent = 42The effect, and where it came from.
effect.sourceKindu8What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack.
effect.scriptu32The spell or effect, by the number its name gives, shown by name.
effect.parentScriptu32The spell or effect it came from, by the number its name gives, shown by name.
effect.parentCasteru32What it carries is not recorded for this range; a server writes zero.
effect.parent2-byte bitsWhere the spell or effect came from.
effect.parent.sourcebit 0 to 3What sort of source the parent spell or effect is, numbered as sourceKind is.
effect.parent.sidebit 4 to 7What it means is not recorded for this range; a server writes zero.
effect.parent.categorybit 8 to 11A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too.
effect.parent.spellLevelbit 12 to 14The rank of the spell, as shown.
effect.parent.unusedbit 15Unused; a server writes zero.
assistrecordevent = 62What one unit did toward a death.
assist.lastHitf32When it last dealt damage, in match seconds.
assist.physicalf32Physical damage it dealt.
assist.magicalf32Magical damage it dealt.
assist.truef32True damage it dealt.
assist.sharef32What it carries is not recorded for this range; a server writes zero.
assist.goldf32What it carries is not recorded for this range; a server writes zero.
assist.creditedu32What it carries is not recorded for this range; a server writes zero.
killrecordevent = 1The reward, and who shared it.
kill.goldf32The gold the kill gave.
kill.assistCountu32How many of the twelve places below name a unit.
kill.assists12 × u32The units that helped, then zeros.
monsterrecordevent = 116 or 117 or 118 or 119 or 120 or 121Who took the monster.
monster.skinHashu32The number the name of the killer’s look gives.
monster.skini32Which look the killer wears.
calloutrecordevent = 77The item a player pointed out, shown as the second name followed by the first in brackets.
callout.itemu32The item, shown by name and number.
callout.quantityu32How many, shown as two digits.
callout.firstbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.secondbytes, 28As a client lays a short text out: four bytes it ignores, up to fifteen characters ended by a zero byte in the next sixteen, the length as a u32, then 15 as a u32.
callout.sideu32The side of the player who pointed it out.
votesrecordevent = 79 or 80 or 82 or 84 or 85The count a client shows in the vote’s notice.
votes.inFavouru32How many voted for.
votes.againstu32How many voted against.
votes.sideu16The side voting.
alertrecordevent = 94Two numbers the alert’s text shows.
alert.firstu32The first.
alert.secondu32The second.
numberu32event = 89 or 90 or 91 or 92 or 93 or 98 or 99 or 100 or 101 or 102 or 103 or 104 or 105 or 106 or 107A number the notice’s text shows: for 89 to 93 the map’s.
Vectors (46)

alert-on-1-0-0-152, altar-captured-on-1-0-0-152, altar-captured-watched-on-1-0-0-152, baron-killed-on-1-0-0-152, baron-killed-watched-on-1-0-0-152, buff-on-1-0-0-152, consumable-bought-on-1-0-0-152, critical-strike-on-1-0-0-152, damage-dealt-on-1-0-0-152, damage-taken-on-1-0-0-152, death-assist-on-1-0-0-152, died-on-1-0-0-152, dragon-killed-on-1-0-0-152, dragon-killed-watched-on-1-0-0-152, gold-earned-on-1-0-0-152, gold-spent-on-1-0-0-152, heal-cast-on-1-0-0-152, heal-on-1-0-0-152, item-bought-on-1-0-0-152, item-callout-on-1-0-0-152, item-changed-on-1-0-0-152, killing-spree-on-1-0-0-152, one-on-1-0-0-152, point-acaptured-on-1-0-0-152, point-aneutralized-on-1-0-0-152, point-bcaptured-on-1-0-0-152, point-bneutralized-on-1-0-0-152, point-ccaptured-on-1-0-0-152, point-cneutralized-on-1-0-0-152, point-dcaptured-on-1-0-0-152, point-dneutralized-on-1-0-0-152, point-ecaptured-on-1-0-0-152, point-eneutralized-on-1-0-0-152, removed-on-1-0-0-152, spider-killed-on-1-0-0-152, spider-killed-watched-on-1-0-0-152, start-notice-five-on-1-0-0-152, start-notice-four-on-1-0-0-152, start-notice-three-on-1-0-0-152, start-notice-two-on-1-0-0-152, surrender-agreed-on-1-0-0-152, surrender-failed-on-1-0-0-152, surrender-vote-cast-on-1-0-0-152, surrender-vote-spam-on-1-0-0-152, surrender-vote-started-on-1-0-0-152, welcome-on-1-0-0-152

Communication

Chat, pings, emotes, and the sound and music a server can drive.

Chat

Players chat with Chat, which carries a line to everyone or to a side. A server puts a line of its own in a client’s chat with SystemMessage. A server can limit how many more lines a player can send with ChatAllowance.

Pings and emotes

A client marks a point on the map with MapPing, and a server shows the ping to everyone meant to see it with PingPlaced. A client asks to play an emote with PlayEmote, and a server shows it with EmotePlayed. A server can also tell clients of a voice command a champion gave (VoiceCommand) and of an emote a champion played for the moment (ContextEmote).

In 1.0.0.140

A client plays the voice line VoiceCommand names, unless its player has muted the champion’s player.

Sound and music

A server can play a sound once (SoundPlayed) or a voice event (VoiceEvent), which a client can report done with VoiceEventDone. A server can also set a champion’s skin music (ThemeMusic), drive the music (MusicCue), mute or unmute a kind of sound (VolumeMuted) and fade sound effects out (FadeSounds).

In 1.0.0.130–1.0.0.140

Where a VoiceEvent asks for an answer, a client sends VoiceEventDone once it has played the event.

In 1.0.0.130–1.0.0.140

A client answers a VoiceEvent it cannot play at once.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

Chat

Text one player sends the others during a match. Messages players exchange outside a match do not travel on this connection at all.

Definition.

In 1.0.0.130–1.0.0.139

Command 0 on chat, sent by either side, reliable.

A line of chat. A client sends one as its player says something, and shows one a server sends in its chat box.

FieldTypeWhat it is
speakeru32The client id the line is from. A client sends its own. From a server, a client shows the line with the name of the player holding that client id, coloured for whether that player is on its own side, and with no name for a client id nobody holds; 4294967295 shows the whole line with no name and no tag. A client does not show a line from a player its own player has ignored or muted.
audienceu321 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise. Values: 0 everyone, 1 team.
textLengthu32The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does.
texttext, sized by textLengthThe line; a client sends at most 511 bytes of it, and reads it up to the zero byte that ends it.
terminatorbytes, 1A zero byte closing the text.

In 1.0.0.140–1.0.0.150

Command 0 on chat, sent by either side, reliable.

A line of chat. A client sends one as its player says something, and shows one a server sends in its chat box.

FieldTypeWhat it is
speakeru32The client id the line is from. A client sends its own. From a server, a client shows the line with the name and champion of the player holding that client id, coloured for their side, and with no name for a client id nobody holds; 4294967295 shows the line as said to everyone with no name, less its first three bytes.
audienceu321 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone, except that where VersionSync hides all chat and the player has not turned it back on, a client does not show the line unless speaker is 4294967295. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise. Values: 0 everyone, 1 team.
textLengthu32The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does.
texttext, sized by textLengthThe line; a client sends at most 511 bytes of it, and reads it up to the zero byte that ends it.
terminatorbytes, 1A zero byte closing the text.
Vectors (1)

everyone-on-1-0-0-150

In 1.0.0.151

Command 0 on chat, sent by either side, reliable.

A line of chat. A client sends one as its player says something, and shows one a server sends in its chat box.

FieldTypeWhat it is
speakeru32The client id the line is from. A client sends its own. From a server, a client shows the line with the name and champion of the player holding that client id, coloured for their side, and with no name for a client id nobody holds; 4294967295 shows the line as said to everyone with no name, less its first three bytes.
audienceu321 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise. Values: 0 everyone, 1 team.
textLengthu32The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does.
texttext, sized by textLengthThe line; a client sends at most 127 bytes of it, and reads it up to the zero byte that ends it.
terminatorbytes, 1A zero byte closing the text.
Vectors (1)

everyone-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 104 on chat, sent by either side, reliable.

FieldTypeWhat it is
clientIdu32The client id of the sender.
netIdu32The entity a receiving end attributes the text to where the seat does not name one. Where the seat names a speaker, that is what a receiving end uses instead.
localizedu8Whether the text is a phrase to show as it stands, or a key naming one the receiving end looks up and fills in from the parameters. Both ends send it clear.
audiencei32Who the message reaches. Values: 0 everyone, 1 team.
textLengthu32The length of the text, counted in bytes and excluding the byte that ends it. A client shows the text to its first zero byte.
texttext, sized by textLengthThe line, at most 127 characters.
terminatorbytes, 1A zero byte closing the text.

SystemMessage

What a server sends to put a line of its own in a client’s chat. The header names no object: it carries zero.

Definition.

In 1.0.0.154–3.1.0.0

Command 244 on events, sent by the server, reliable.

FieldTypeWhat it is
sourceu32The unit the line is credited to, or zero where none is.
texttext, 512 bytesThe line itself. Written out in full and padded with zero bytes to the width above.
Vectors (1)

one-on-1-0-0-154

MapPing

What a client sends to mark a point on the map for the others. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.137

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13190
1.0.0.132–1.0.0.13791
FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (2)

here-on-1-0-0-131, here-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 93 on requests, sent by the client, reliable.

While watching a match, a client places the mark only on its own screen and sends nothing.

FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. It writes only the low 4 bits: the high 4 carry no meaning, and a server ignores them. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (1)

here-on-1-0-0-143

In 1.0.0.144–1.0.0.147

Command 87 on requests, sent by the client, reliable.

FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (1)

here-on-1-0-0-147

In 1.0.0.148–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.148–1.0.0.14987
1.0.0.150–3.1.0.084
FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (2)

here-on-1-0-0-149, here-on-1-0-0-154

PingPlaced

What a server sends to show a ping on the map to everyone meant to see it.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13170
1.0.0.132–1.0.0.13771

A client drops the whole message where category is past its own list of categories. The header names the champion that placed the ping, as source does.

FieldTypeWhat it is
atXf32Where the ping sits, along one ground axis, in world units.
atYf32The height of the place, as a client shows it.
atZf32Where it sits, along the other, in world units.
targetu32The unit pinged, or zero where a place was pinged instead.
sourceu32The unit that placed it.
how1-byte bits
how.categorybit 0 to 3Which sort of ping.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.throttledbit 6Set where the player is pinging too often: a client places no ping, plays nothing and announces nothing, and only writes a notice in its own chat.
how.unusedbit 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.147

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138–1.0.0.14371
1.0.0.144–1.0.0.14766

A client drops the whole message where category is past its own list of categories. The header names the champion that placed the ping, as source does.

FieldTypeWhat it is
atXf32Where the ping sits, along one ground axis, in world units.
atYf32The height of the place, as a client shows it.
atZf32Where it sits, along the other, in world units.
targetu32The unit pinged, or zero where a place was pinged instead.
sourceu32The unit that placed it.
how1-byte bits
how.categorybit 0 to 3Which sort of ping.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.throttledbit 6Set where the player is pinging too often: a client places no ping, plays nothing and announces nothing, and only writes a notice in its own chat.
how.speakbit 7Set where the unit says something about it.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-147

In 1.0.0.148–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.148–1.0.0.14966
1.0.0.150–3.1.0.063

A client drops the whole message where category is past its own list of categories. The header names the champion that placed the ping, as source does.

FieldTypeWhat it is
atXf32Where the ping sits, along one ground axis, in world units.
atZf32Where it sits, along the other, in world units.
targetu32The unit pinged, or zero where a place was pinged instead.
sourceu32The unit that placed it.
how1-byte bits
how.categorybit 0 to 3Which sort of ping.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.throttledbit 6Set where the player is pinging too often: a client places no ping, plays nothing and announces nothing, and only writes a notice in its own chat.
how.speakbit 7Set where the unit says something about it.
Vectors (1)

one-on-1-0-0-149

PlayEmote

What a client sends to play an emote. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.134

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13176
1.0.0.132–1.0.0.13477
FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; one past the list plays nothing.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-134

In 1.0.0.135–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.135–1.0.0.13777
1.0.0.138–1.0.0.14378
1.0.0.144–1.0.0.14972
1.0.0.150–3.1.0.069
FieldTypeWhat it is
emoteu8Which emote, by the number the client knows it as. Its four emote keys send 3, 1, 0 and 2, the numbers EmotePlayed plays.
Vectors (4)

one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

EmotePlayed

What a server sends to say a unit played an emote. The header names the champion playing the emote.

Definition.

In 1.0.0.130–1.0.0.131

Command 72 on events, sent by the server, reliable.

FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; a value at or past the end of the list plays nothing.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.134

Command 73 on events, sent by the server, reliable.

FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; one past the list plays nothing.
Vectors (1)

one-on-1-0-0-134

In 1.0.0.135–1.0.0.143

Command 73 on events, sent by the server, reliable.

A client ignores the message while the champion is dead.

FieldTypeWhat it is
emoteu8Which emote, by the number the client knows it as. A client plays an animation on the champion for each of 0, 1, 2 and 3, a different one each, and none for any higher value.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14968
1.0.0.150–3.1.0.065
FieldTypeWhat it is
emoteu8Which emote, by the number the client knows it as. A client plays an animation on the champion for 0, 1 and 2, a different one each, and none for 3.
Vectors (1)

one-on-1-0-0-149

VoiceCommand

What a server sends about a voice command a champion gave. The header names the champion.

Definition.

In 1.0.0.138–1.0.0.143

Command 74 on events, sent by the server, reliable.

A client plays the champion’s voice line that call names, about target, passing on highlight and ping. It does nothing where it has no champion of its own or the player behind the champion is muted.

FieldTypeWhat it is
padding1u16Padding before call. Unused; a server writes zero.
padding2u8Padding before call. Unused; a server writes zero.
callu32Which call.
targetu32The unit the call is about.
flags1-byte bitsHow it is shown.
flags.highlightbit 0Set where the player’s icon is highlighted.
flags.pingbit 1Set where it marks a ping.
flags.unusedbit 2 to 7Unused; a server writes zero.
padding3u16Padding after flags. Unused; a server writes zero.
padding4u8Padding after flags. Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14969
1.0.0.150–3.1.0.066

A client accepts it on a champion only, and it has no effect.

FieldTypeWhat it is
padding1u16Padding before call. Unused; a server writes zero.
padding2u8Padding before call. Unused; a server writes zero.
callu32Which call.
targetu32The unit the call is about.
flags1-byte bitsHow it is shown.
flags.highlightbit 0Set where the player’s icon is highlighted.
flags.pingbit 1Set where it marks a ping.
flags.unusedbit 2 to 7Unused; a server writes zero.
padding3u16Padding after flags. Unused; a server writes zero.
padding4u8Padding after flags. Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ContextEmote

What a server sends about an emote a champion played for the moment. It changes nothing a client shows. The header names the champion.

Definition.

In 1.0.0.154–3.1.0.0

Command 240 on events, sent by the server, reliable.

FieldTypeWhat it is
emoteu8Which emote.
parameteru32A hashed parameter.
flagsu8Flags with no meaning given.
Vectors (1)

one-on-1-0-0-154

VoiceEvent

What a server sends to play a voice event. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131125
1.0.0.132–1.0.0.137126
FieldTypeWhat it is
foldertext, 64 bytesThe event’s folder. It has no effect where kind is 1.
eventtext, 64 bytesThe event’s name; for kind 1, the conversation’s.
callbacku8For kind 0, nonzero asks the client to send VoiceEventDone once the event has played. A client sends it at once where it cannot play the event, whatever this holds.
handleu32For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.138–1.0.0.143128
1.0.0.144–1.0.0.149122
1.0.0.150–3.1.0.0119
FieldTypeWhat it is
foldertext, 64 bytesThe event’s folder. It has no effect where kind is 1.
eventtext, 64 bytesThe event’s name; for kind 1, the conversation’s.
callbacku8For kind 0, nonzero asks the client to send VoiceEventDone once the event has played. A client sends it at once where it cannot play the event, whatever this holds.
kindu8What sort of event. A client does nothing for any other value. Values: 0 general, 1 champion.
handleu32For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion.
Vectors (3)

general-on-1-0-0-143, general-on-1-0-0-149, general-on-1-0-0-154

VoiceEventDone

What a client sends once a voice event (VoiceEvent) that asked for it has played. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.137

Command 5 on requests, sent by the client, reliable.

A client sends it at once where it could not play the event.

FieldTypeWhat it is
handleu32The number the VoiceEvent carried.

In 1.0.0.138–3.1.0.0

Command 5 on requests, sent by the client, reliable.

It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.

FieldTypeWhat it is
handleu32The number the VoiceEvent carried.

MusicCue

What a server sends to drive the music a client plays.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131229
1.0.0.132–1.0.0.134230
1.0.0.135232
1.0.0.136–1.0.0.137230
1.0.0.138232
FieldTypeWhat it is
cueu8What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end.
eventu32Which cue or event.
Vectors (5)

begin-on-1-0-0-131, begin-on-1-0-0-134, begin-on-1-0-0-135, begin-on-1-0-0-136, begin-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 231 on events, sent by the server, reliable.

The header names a champion: a client acts on the message for any champion it holds, not only its own.

FieldTypeWhat it is
cueu8What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end.
eventu32Which cue or event.
Vectors (1)

begin-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143233
1.0.0.144–1.0.0.149220
1.0.0.150–3.1.0.0217

The header names the champion of the player it is sent to.

FieldTypeWhat it is
cueu8What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end.
eventu32Which cue or event.
Vectors (3)

begin-on-1-0-0-143, begin-on-1-0-0-149, begin-on-1-0-0-154

VolumeMuted

What a server sends to mute or unmute one kind of sound. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14341
1.0.0.144–3.1.0.038
FieldTypeWhat it is
categoryu8Which kind. A client ignores the message from 7 up. Values: 0 all, 1 music, 2 effects, 3 announcer, 4 unitResponses, 5 environment, 6 mainEffects.
state1-byte bitsWhether it is muted.
state.mutedbit 0Set to mute, clear to unmute.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

music-on-1-0-0-143

FadeSounds

What a server sends to fade a client’s sound effects out. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13198
1.0.0.132–1.0.0.13799
1.0.0.138–1.0.0.143101
1.0.0.144–1.0.0.14995
1.0.0.150–3.1.0.092
FieldTypeWhat it is
timef32How long the sounds take to fade; the unit is not recorded.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

UnitSpoke

What a client sends when a unit says something on its screen. A server need do nothing with it. The header names the unit speaking.

Definition.

In 1.0.0.130–1.0.0.137

Command 27 on requests, sent by the client, reliable.

FieldTypeWhat it is
unitu32A value the client takes from the unit that speaks; what it names is not recorded.
unknownf32A client writes 1073741824.
unknownToou32A client writes zero.
kindu80 for a unit’s speech; a client writes 1 where it sends the text of a script error it caught, under the first unit it holds that can carry it.
unusedu8A client writes zero.
texttext, ended by a zero byteWhat the unit says, ended by a zero byte; the two take at most 1024 bytes.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 27 on requests, sent by the client, reliable.

FieldTypeWhat it is
unitu32A value the client takes from the unit that speaks; what it names is not recorded.
unknownf32A client writes 1073741824.
unknownToou32A client writes zero.
kindu8A client writes 1 where the line reports an error in a script, and 0 otherwise.
unusedu8A client writes zero.
unusedToou32Where a level script makes a unit speak, a client writes the third value that script gave; otherwise zero.
texttext, ended by a zero byteWhat the unit says, ended by a zero byte; the two take at most 1024 bytes.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 24 on requests, sent by the client, reliable.

FieldTypeWhat it is
unitu32A value the client takes from the unit that speaks; what it names is not recorded.
unknownf32A client writes 1073741824.
unknownToou32A client writes zero.
kindu8A client writes zero.
unusedu8A client writes zero.
unusedToou32A client writes zero.
texttext, ended by a zero byteWhat the unit says, ended by a zero byte; the two take at most 1024 bytes.

Votes

Surrender votes, and a vote on evening out a match.

Surrender

A server tells a side a surrender vote has been called with SurrenderVoteCalled. A client answers with SurrenderVote, and a server tells the side where the vote stands with SurrenderStatus. SurrenderAllowed says whether a champion’s player can call a vote, turning the choice in the client’s menu on or off.

SurrenderVoteCalled shows the caller’s vote to that side and, where it says the vote opens, opens the vote’s panel for that side.

A client ignores SurrenderVoteCalled that arrives before its own champion is on the field.

Evening out a match

A server can hold a vote on giving the side behind gold, experience and turrets. BalanceVote opens the vote’s panel for the voting side and adds one voter with each message; a client answers with BalanceVoteAnswer from the panel or as its player types /equalize, once per vote. BalanceResult says how the vote ended, or why it could not be held.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

SurrenderVoteCalled

What a server sends to open a surrender vote, or to report one already open. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131210
1.0.0.132–1.0.0.134211
1.0.0.135213
1.0.0.136–1.0.0.137211
1.0.0.138213
1.0.0.139–1.0.0.140212
1.0.0.141–1.0.0.143214
1.0.0.144–1.0.0.149201
1.0.0.150–3.1.0.0198

A client ignores it unless its menu and its own champion both exist.

FieldTypeWhat it is
how1-byte bits
how.countAsYesbit 0Applies only where side is the client’s own: set shows caller voting yes, clear voting no, opening the menu or not.
how.openTheMenubit 1Set where the vote opens: a client of side opens the vote’s panel from seats and closesIn, which have no other effect; every client is told a vote began, with caller, inFavour, against and side.
how.unusedbit 2 to 7Unused; a server writes zero.
calleru32The unit that called the vote.
inFavouru8How many have voted for.
againstu8How many have voted against.
seatsu8How many seats can vote.
sideu32Which side is voting.
closesInf32How long the vote stays open, in seconds.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SurrenderVote

What a client sends to vote on surrendering. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 172 on requests, sent by the client, reliable.

It answers a call to surrender.

FieldTypeWhat it is
how1-byte bits
how.inFavourbit 0Set where the answer is yes, clear where it is no.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134173
1.0.0.135175
1.0.0.136–1.0.0.137173
1.0.0.138175

It answers a call to surrender.

FieldTypeWhat it is
how1-byte bits
how.inFavourbit 0Set where the answer is yes. A client sends it clear.
how.unusedbit 1 to 7Always clear.
Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 174 on requests, sent by the client, reliable.

A client sends it to start a vote as well as to answer one: the surrender chat command sends it in favour whether or not a vote is open, and the vote panel’s buttons and the chat command that votes no answer one.

FieldTypeWhat it is
how1-byte bits
how.inFavourbit 0Set where the answer is yes, as from the panel’s yes button or the surrender command; clear for a no.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning, and a server ignores them.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149164
1.0.0.150–3.1.0.0161

It answers a call to surrender.

FieldTypeWhat it is
how1-byte bits
how.inFavourbit 0Set where the answer is yes. A client sends it clear.
how.unusedbit 1 to 7Always clear.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SurrenderStatus

What a server sends to tell a side where its surrender vote stands. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131173
1.0.0.132–1.0.0.134174
1.0.0.135176
1.0.0.136–1.0.0.137174
1.0.0.138176
1.0.0.139–1.0.0.143175
1.0.0.144–1.0.0.146165
FieldTypeWhat it is
reasonu32Why the vote stands where it does.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149165
1.0.0.150–3.1.0.0162
FieldTypeWhat it is
reasonu8Why the vote stands where it does.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

The interface

What a client shows its player besides the field: the view and camera, input locks, the minimap and text over the screen. Tips, quests, highlights and the tutorial are in Tutorial and guidance.

The view

A client reports where its view sits and which way it faces with Camera, which a server answers (see Ordering). A client tells a server what it has selected with SelectObject, and as it locks its view to its champion or releases it with CameraLock.

A server carries a client’s view from one place to another with MoveCamera. A server can also lock or free a client’s camera with CameraLockSet, which the client answers with CameraLock except while it holds its camera itself, and set a point a player’s view keeps to with CameraBehaviour.

A client sends no Camera while its camera is locked: a server that needs a client’s view reports frees its camera with CameraLockSet.

In 1.0.0.130–1.0.0.140

A client keeps a CameraLockSet that arrives while it holds its camera itself, and applies and answers it once the hold ends.

Input

A server locks or unlocks kinds of input, such as movement, spells or the shop, with InputLock or InputLockToggled.

A client keeps every lock a message sets or clears, and later input obeys them, but it acts on a lock at once only where the message’s mask is exactly one of 1, 4, 8, 16, 32 or 128.

The minimap and text on screen

MinimapIcon changes what a client draws for a unit on its map. A server can float text over a unit (FloatingText, UnitText), warn a player who seems to be away (AfkWarning), and take the interface down (HudDisabled).

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

Camera

What a client sends to say where its view sits and which way it faces. Each report is sent once where a server answers it, and again and again where a server does not. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on requests, sent by the client, unreliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14348
1.0.0.144–3.1.0.045
FieldTypeWhat it is
positionXf32
positionYf32
positionZf32
directionXf32
directionYf32
directionZf32
clientIdu32The client id of the client the view belongs to.
syncIdu8Names this report, counting up as the view moves. A client sends the report again until a server returns the name.
Vectors (1)

one-on-1-0-0-143

SelectObject

What a client sends as the object it has selected changes. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131183
1.0.0.132–1.0.0.134184
1.0.0.135186
1.0.0.136–1.0.0.137184
1.0.0.138186
1.0.0.139–1.0.0.140185
1.0.0.141–1.0.0.143187
1.0.0.144–1.0.0.149175
1.0.0.150–3.1.0.0172
FieldTypeWhat it is
clientIdu32The client id of the client selecting: the one its Registered gave it. Zero is a client id like any other rather than an absence.
selectedu32The network object now selected, or zero where none is.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

CameraLock

What a client sends as it locks its view to a unit or releases it. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131134
1.0.0.132–1.0.0.137135
1.0.0.138137

A client sends it whenever its lock changes: by the player, or as the game forces a lock or lifts one. It sends none while playing a replay.

FieldTypeWhat it is
state1-byte bits
state.lockedbit 0Set while the view follows a unit.
state.unusedbit 1 to 7Unused; a client writes zero.
clientIdu32The client id of the client locking. Zero is a client id like any other rather than an absence.
Vectors (3)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 136 on requests, sent by the client, reliable.

A client sends it every time its lock is set, even to the same value: by the player, by CameraLockSet, or as the game forces a lock or lifts one.

FieldTypeWhat it is
state1-byte bits
state.lockedbit 0Set while the view follows a unit.
state.unusedbit 1 to 7A client sends back the whole byte it holds: after CameraLockSet, the byte it received, unchanged.
clientIdu32The client id of the client locking. Zero is a client id like any other rather than an absence.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149130
1.0.0.150–3.1.0.0127

A client sends it whenever its lock changes: by the player, or as the game forces a lock or lifts one. It sends none while playing a replay.

FieldTypeWhat it is
state1-byte bits
state.lockedbit 0Set while the view follows a unit.
state.unusedbit 1 to 7Unused; a client writes zero.
clientIdu32The client id of the client locking. Zero is a client id like any other rather than an absence.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

MoveCamera

What a server sends to carry a client’s view from one place to another. The header names the champion of the player it is sent to.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14339
1.0.0.144–3.1.0.036

Where the header names a champion, only the client whose own champion it is moves its view; others take the message and do nothing. Where the header carries zero, a client moves its view to to over travelTime, how and from having no effect.

FieldTypeWhat it is
how1-byte bits
how.fromWhereItIsbit 0Set to start from where the camera stands, fromX, fromY and fromZ having no effect; clear to start from them.
how.unused1bit 1Unused; a server writes zero.
how.unusedbit 2 to 7Unused; a server writes zero.
fromXf32Where the view starts, along one ground axis, in world units.
fromYf32Where the view starts, in height, in world units.
fromZf32Where the view starts, along the other ground axis, in world units.
toXf32Where the view ends, along one ground axis, in world units.
toYf32Where the view ends, in height, in world units.
toZf32Where the view ends, along the other ground axis, in world units.
travelTimef32How long the view takes to get there, in seconds. The view moves at an even speed over the distance along the ground.
Vectors (1)

one-on-1-0-0-143

CameraLockSet

What a server sends to lock the camera to the champion or free it. A client answers with CameraLock. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.137

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131124
1.0.0.132–1.0.0.137125

A client ignores the message while something of its own holds the camera.

FieldTypeWhat it is
lockedu8Set to lock the camera, clear to free it. Any nonzero value sets it.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 127 on events, sent by the server, reliable.

A client answers at once with CameraLock, returning the byte as it arrived. While the game holds the camera itself, it keeps the byte, and applies it and sends CameraLock only as that hold ends.

FieldTypeWhat it is
lockedu8Set to lock the camera, clear to free it. Any nonzero value sets it.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–1.0.0.146

Command 121 on events, sent by the server, reliable.

A client ignores the message while something of its own holds the camera. It sends no CameraLock while playing a replay.

FieldTypeWhat it is
lockedu8Set to lock the camera, clear to free it. Any nonzero value sets it.
Vectors (1)

one-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149121
1.0.0.150–3.1.0.0118

A client ignores the message while something of its own holds the camera. It sends no CameraLock while playing a replay.

FieldTypeWhat it is
state1-byte bitsWhether the camera is locked.
state.lockedbit 0Set to lock the camera, clear to free it.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

CameraBehaviour

What a server sends to set a point a champion’s player’s view keeps to. The header names the champion.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131118
1.0.0.132–1.0.0.137119
1.0.0.138–1.0.0.143121
1.0.0.144–1.0.0.149115
1.0.0.150–3.1.0.0112
FieldTypeWhat it is
xf32Along one ground axis, in world units.
yf32In height, in world units.
zf32Along the other ground axis, in world units.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

InputLock

What a server sends to lock or unlock a kind of input on a client. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.146

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131137
1.0.0.132–1.0.0.137138
1.0.0.138140
1.0.0.139–1.0.0.143139
1.0.0.144–1.0.0.146133

A client ignores it while playing a replay.

FieldTypeWhat it is
categoryu32Which input, as a set of bits. Values: 1 cameraLocking, 2 movement, 4 abilities, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement.
lockedu8Set to lock, clear to unlock. Any nonzero value sets it.
Vectors (5)

camera-locking-on-1-0-0-131, camera-locking-on-1-0-0-136, camera-locking-on-1-0-0-138, camera-locking-on-1-0-0-143, camera-locking-on-1-0-0-146

In 1.0.0.147–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.147–1.0.0.149133
1.0.0.150–3.1.0.0130

A client ignores it while playing a replay.

FieldTypeWhat it is
categoryu32Which input, as a set of bits. Values: 1 cameraLocking, 2 movement, 4 abilities, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement.
state1-byte bitsWhether to lock.
state.lockedbit 0Set to lock, clear to unlock.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

camera-locking-on-1-0-0-149, camera-locking-on-1-0-0-154

InputLockToggled

What a server sends to turn kinds of input off where they are on, or on where they are off. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 163 on events, sent by the server, reliable.

A client acts on the change at once only where locks is 1, 4, 8, 16, 32 or 128; any other value still changes what is locked, and takes effect as the player next tries.

FieldTypeWhat it is
locksu32Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement.
Vectors (1)

shop-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134164
1.0.0.135166
1.0.0.136–1.0.0.137164
1.0.0.138166

A client acts on the change at once only where exactly one lock is set; any other value still changes what is locked, and takes effect as the player next tries.

FieldTypeWhat it is
locksu32Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement.
Vectors (4)

shop-on-1-0-0-134, shop-on-1-0-0-135, shop-on-1-0-0-136, shop-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 165 on events, sent by the server, reliable.

A client acts on the change at once only where the value is exactly one of 1, 4, 8, 16, 32 and 128; any other value, 2 and 64 among them, still changes what is locked, and takes effect as the player next tries.

FieldTypeWhat it is
locksu32Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement.
Vectors (1)

shop-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149155
1.0.0.150–3.1.0.0152

A client acts on the change at once only where exactly one lock is set; any other value still changes what is locked, and takes effect as the player next tries.

FieldTypeWhat it is
locksu32Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement.
Vectors (2)

shop-on-1-0-0-149, shop-on-1-0-0-154

MinimapIcon

What a server sends to change what a client draws for a unit on its map. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.153

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131225
1.0.0.132–1.0.0.134226
1.0.0.135228
1.0.0.136–1.0.0.137226
1.0.0.138228
1.0.0.139–1.0.0.140227
1.0.0.141–1.0.0.143229
1.0.0.144–1.0.0.149216
1.0.0.150–1.0.0.153213

A client does nothing unless unit is a unit it holds that can be attacked.

FieldTypeWhat it is
unitu32The unit this is about.
icontext, 64 bytesThe name the client loads the unit’s minimap mark under, which it changes only where the name differs from the one it shows. Written out in full and padded with zero bytes to the width above.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-152

In 1.0.0.154–3.1.0.0

Command 213 on events, sent by the server, reliable.

A client does nothing unless unit is a unit it holds that can be attacked.

FieldTypeWhat it is
unitu32The unit this is about.
changeIconu81 to replace the unit’s minimap icon with icon; 0 leaves it, and icon has no effect.
icontext, 64 bytesThe name the client loads the mark under. Written out in full and padded with zero bytes to the width above.
changeBorderu81 to replace the unit’s ring with border, and what it does with borderScript; 0 leaves both, and neither has any effect.
bordertext, 64 bytesThe name the client loads the ring around the mark under, written and padded as above.
Vectors (1)

one-on-1-0-0-154

FloatingText

What a server sends to show text floating over a unit. The header names the unit.

Definition.

In 1.0.0.130–1.0.0.137

Command 27 on events, sent by the server, reliable.

FieldTypeWhat it is
unusedu32Unused; a server writes zero.
delayf32Unused; a server writes 2.
sloti32Where the text goes. 0 floats it over the unit while the unit is in the client’s own view, the text looked up as a key into the client’s own text. 1 to 50 writes it, in colour, to that line of a debugging display, only where the unit is the one the player has selected. A client does nothing for any other value.
erroru8Nonzero has a client ignore the whole message.
colouru8The text’s colour on the debugging display; it has no effect for slot 0.
texttext, ended by a zero byteThe text, ended by a zero byte; the two take at most 1024 bytes.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 27 on events, sent by the server, reliable.

FieldTypeWhat it is
unusedu32Unused; a server writes zero.
delayf32Unused; a server writes 2.
sloti32Where the text goes. 0 floats it over the unit while the unit is in the client’s own view. 1 to 50 writes it, in colour, to that line of a debugging display, only where the unit is the one the player has selected. A client does nothing for any other value.
erroru8Nonzero has a client put the text on its list of on-screen messages for 10 seconds; slot, colour and style then have no effect.
colouru8The text’s colour on the debugging display; it has no effect for slot 0.
styleu32Which style of floating text.
texttext, ended by a zero byteThe text, ended by a zero byte; the two take at most 1024 bytes.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 24 on events, sent by the server, reliable.

FieldTypeWhat it is
unusedu32Unused; a server writes zero.
delayf32Unused; a server writes 2.
sloti32Where the text goes. 0 floats it over the unit while the unit is in the client’s own view, the text looked up as a key into the client’s own text. 1 to 50 writes it, in colour, to that line of a debugging display, only where the unit is the one the player has selected. A client does nothing for any other value.
erroru8Nonzero has a client ignore the whole message.
colouru8The text’s colour on the debugging display; it has no effect for slot 0.
styleu32Which style of floating text.
texttext, ended by a zero byteThe text, ended by a zero byte; the two take at most 1024 bytes.

UnitText

What a server sends to float a line of the client’s own text over a unit, as combat text floats. A client shows it only where the unit is in its sight, and not while playing a replay. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.143

Command 28 on events, sent by the server, reliable.

A client ignores it whenever it is watching a match.

FieldTypeWhat it is
unitu32The unit to float it over: one that can be damaged.
styleu8How the line looks, from 0 to 24. A client shows debug lines to nobody. Values: 0 invulnerable, 1 special, 2 heal, 3 manaHeal, 4 manaDamage, 5 dodge, 6 physicalCritical, 7 experience, 8 gold, 9 level, 10 disable, 11 questReceived, 12 questComplete, 13 score, 14 physicalDamage, 15 magicDamage, 16 trueDamage, 17 enemyPhysicalDamage, 18 enemyMagicDamage, 19 enemyTrueDamage, 20 enemyPhysicalCritical, 21 countdown, 22 damage, 23 critical, 24 debug.
numberi32A number put into the text where it asks for one.
texttext, 128 bytesA key into the client’s own text. The text ends at its first zero byte, which falls within the field.
Vectors (1)

disable-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Command 25 on events, sent by the server, reliable.

FieldTypeWhat it is
unitu32The unit to float it over: one that can be damaged.
styleu8How the line looks, from 0 to 24. A client shows debug lines to nobody. Values: 0 invulnerable, 1 special, 2 heal, 3 manaHeal, 4 manaDamage, 5 dodge, 6 physicalCritical, 7 experience, 8 gold, 9 level, 10 disable, 11 questReceived, 12 questComplete, 13 score, 14 physicalDamage, 15 magicDamage, 16 trueDamage, 17 enemyPhysicalDamage, 18 enemyMagicDamage, 19 enemyTrueDamage, 20 enemyPhysicalCritical, 21 countdown, 22 damage, 23 critical, 24 debug.
numberi32A number put into the text where it asks for one.
texttext, 128 bytesA key into the client’s own text. The text ends at its first zero byte, which falls within the field.

AfkWarning

What a server sends to warn the player that they seem to be away, in a popup with one button that only closes it. It carries nothing of its own. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131192
1.0.0.132–1.0.0.134193
1.0.0.135195
1.0.0.136–1.0.0.137193
1.0.0.138195
1.0.0.139–1.0.0.140194
1.0.0.141–1.0.0.143196
1.0.0.144–1.0.0.149184
1.0.0.150–3.1.0.0181

No body.

Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

HudDisabled

What a server sends to take down a client’s interface as the match ends. The header names no object: it carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131196
1.0.0.132–1.0.0.134197
1.0.0.135199
1.0.0.136–1.0.0.137197
1.0.0.138199
1.0.0.139–1.0.0.140198
1.0.0.141–1.0.0.143200
1.0.0.144–1.0.0.149188
1.0.0.150–3.1.0.0185

No body.

Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Announcement

What a server sends to show one of a client’s own fixed announcements for five seconds.

Definition.

In 1.0.0.130–1.0.0.131

Command 133 on events, sent by the server, reliable.

FieldTypeWhat it is
announcementu32Which of the client’s 28 announcements, 0 to 27. The text of each is the client’s own and is not recorded here. 4294967295 shows a fixed text of the client’s own that is none of them; any other value has no defined effect.
unitu32A unit whose name the announcement carries, or zero for an announcement that names none. A client shows nothing where it does not know the unit.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.137134
1.0.0.138136
FieldTypeWhat it is
announcementu32Which of the client’s 28 announcements, 0 to 27. The text of each is the client’s own and is not recorded here; a client fails on any other value.
unitu32A unit whose name the announcement carries, or zero for an announcement that names none. A client shows nothing where it does not know the unit.
Vectors (2)

one-on-1-0-0-136, one-on-1-0-0-138

CameraAck

What a server returns for a view report, naming the report it answers. A server names in the header the champion of the player it is sent to.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14346
1.0.0.144–3.1.0.043
FieldTypeWhat it is
syncIdu8The name the report carried. A client sends the report again until this comes back.
Vectors (1)

one-on-1-0-0-143

Tutorial and guidance

What a server shows a player to lead them: tips, quests, objectives and text at the side of the screen, highlights, and the tutorial.

A server tells a champion something has come about with Situation.

Highlights

A server lights up parts of the screen and units with HudHighlighted, HudHighlightToggled, UiHighlight, UnitHighlighted and UnitHighlightRemoved, and makes part of the minimap or of the shop blink with MinimapHighlighted and ShopHighlighted.

Tips, quests and objectives

A server puts a tip in front of a player with TipShown, addressed to that player’s champion, and a client reports a click on it, or the tip being closed, with TipEvent. A server can add, complete and remove quests in the quest tracker with QuestUpdated, and a client reports the pointer passing over a quest, and a click on it, with QuestEvent. A server can also show, change and hide an objective panel (ObjectiveShown, ObjectiveReplaced, ObjectiveHidden) and a box of text at the side of the screen (SideTextShown, SideTextRefreshed, SideTextHidden).

The tutorial

In the tutorial, a server can put lines of the client’s own text in its chat (TutorialChatLine) and open the tutorial’s popup (TutorialPopup), which the client answers with TutorialPopupClosed.

A client takes TutorialChatLine in any match.

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

HudHighlighted

What a server sends to light up part of the screen, as a tutorial does. Only HudHighlightToggled turns it off. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.143

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13167
1.0.0.132–1.0.0.14368
FieldTypeWhat it is
elementu8What to light up on the main controls. A client ignores any value above 8. Values: 0 spell, 1 spellUpgrade, 2 summonerSpell, 3 recall, 4 shop, 5 gold, 6 experience, 7 health, 8 mana.
numberu8Which slot, for a spell or a summoner spell; it has no effect otherwise. A client accepts any value, and a slot beyond those named has no defined effect.
Vectors (2)

spell-on-1-0-0-131, spell-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.14963
1.0.0.150–3.1.0.060
FieldTypeWhat it is
partu8Which part of the screen. A client ignores any other value. Values: 0 hud, 1 shop, 2 minimap.
elementu8What to light up on the main controls. A client ignores any value above 8. Values: 0 spell, 1 spellUpgrade, 2 summonerSpell, 3 recall, 4 shop, 5 gold, 6 experience, 7 health, 8 mana.
numberu8Which slot, for a spell or a summoner spell; it has no effect otherwise. A client accepts any value, and a slot beyond those named has no defined effect.
secondu8For the shop’s element 3, which item within the category; a client reads nothing here otherwise.
Vectors (1)

hud-on-1-0-0-149

HudHighlightToggled

What a server sends to light up part of the screen, or to put it out. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13182
1.0.0.132–1.0.0.13783
1.0.0.138–1.0.0.14385
1.0.0.144–1.0.0.14979
1.0.0.150–3.1.0.076
FieldTypeWhat it is
partu8Which part of the screen. A client ignores any other value. Values: 1 hud, 2 shop, 3 minimap.
elementu8What to light up, as in HudHighlighted. A value beyond those named does nothing.
numberu8Which slot, as in HudHighlighted.
secondu8For the shop’s element 3, which item within the category; a client reads nothing here otherwise.
state1-byte bitsWhether it is lit.
state.onbit 0Set to light it up, clear to put it out.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (5)

hud-on-1-0-0-131, hud-on-1-0-0-136, hud-on-1-0-0-143, hud-on-1-0-0-149, hud-on-1-0-0-154

UiHighlight

What a server sends to place an animated highlight over one element of the screen, or to take one away. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131211
1.0.0.132–1.0.0.134212
1.0.0.135214
1.0.0.136–1.0.0.137212
1.0.0.138214
1.0.0.139–1.0.0.140213
1.0.0.141–1.0.0.143215
1.0.0.144–1.0.0.149202
1.0.0.150–3.1.0.0199
FieldTypeWhat it is
actionu8What to do. A client takes 2 to 14 and does nothing, and ignores the message from 15 up. Values: 0 show, 1 remove.
elementu8Which element. Showing a value above 14 has no defined effect. Values: 0 minimap, 1 quests, 2 tips, 3 characterInfo, 4 effects, 5 ultimate, 6 recall, 7 shop, 8 spellPoint1, 9 gold, 10 assists, 11 passive, 12 spellPoint2, 13 spellPoint3, 14 spellPoint4.
Vectors (9)

show-on-1-0-0-131, show-on-1-0-0-134, show-on-1-0-0-135, show-on-1-0-0-136, show-on-1-0-0-138, show-on-1-0-0-140, show-on-1-0-0-143, show-on-1-0-0-149, show-on-1-0-0-154

UnitHighlighted

What a server sends to outline a unit with a pulsing light, as a tutorial does, until UnitHighlightRemoved. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13192
1.0.0.132–1.0.0.13793
1.0.0.138–1.0.0.14395
1.0.0.144–1.0.0.14989
1.0.0.150–3.1.0.086
FieldTypeWhat it is
unitu32The unit: one that can be damaged.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

UnitHighlightRemoved

What a server sends to take away the light UnitHighlighted put on a unit. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131188
1.0.0.132–1.0.0.134189
1.0.0.135191
1.0.0.136–1.0.0.137189
1.0.0.138191
1.0.0.139–1.0.0.140190
1.0.0.141–1.0.0.143192
1.0.0.144–1.0.0.149180
1.0.0.150–3.1.0.0177
FieldTypeWhat it is
unitu32The unit. Where it has no light, nothing happens.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

MinimapHighlighted

What a server sends to make part of the minimap blink, as a tutorial does.

Definition.

In 1.0.0.130–1.0.0.143

Command 20 on events, sent by the server, reliable.

FieldTypeWhat it is
elementu8The minimap; a client acts on element 0 only, its camera button, and only once it knows its own champion. Any other value is ignored.
Vectors (1)

one-on-1-0-0-143

ShopHighlighted

What a server sends to make a shop element blink once, as a tutorial does. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.143

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131182
1.0.0.132–1.0.0.134183
1.0.0.135185
1.0.0.136–1.0.0.137183
1.0.0.138185
1.0.0.139–1.0.0.140184
1.0.0.141–1.0.0.143186
FieldTypeWhat it is
elementu8A shop element blinks once, where the shop window is open. Element 0 is the buy button, 1 the sell button, 2 the shop item number names, 3 the item second names within the category number names, and 4 the recommended item number names. A client ignores any value above 4.
numberu8Which of the element’s entries.
secondu8For the shop’s element 3, which item within the category; a client reads nothing here otherwise.
Vectors (7)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143

TipShown

What a server sends to put a note in front of a seat. The header names the champion of the player it is sent to.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.13188
1.0.0.132–1.0.0.13789
1.0.0.138–1.0.0.14391
1.0.0.144–1.0.0.14985
1.0.0.150–3.1.0.082
FieldTypeWhat it is
bodytext, 128 bytesWhat the note says. Written out in full and padded with zero bytes to the width above.
headingtext, 128 bytesWhat the note is headed with, written and padded as above.
imagetext, 128 bytesThe name the client loads a picture for the note under, written and padded as above.
whatu8What the client does with the note.
tipu32The name this note answers to, so a later message can name it.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

TipEvent

What a client sends about a tip it has shown or dismissed.

Definition.

In 1.0.0.130–1.0.0.131

Command 112 on requests, sent by the client, reliable.

Where what is 0, the header names the champion the TipShown named; where it is 1, the sender’s champion.

FieldTypeWhat it is
whatu8What happened to the tip. Values: 0 clicked, 1 closed.
tipu32Which tip, as TipShown named it.
Vectors (1)

clicked-on-1-0-0-131

In 1.0.0.132–1.0.0.137

Command 113 on requests, sent by the client, reliable.

The header names the sender’s champion.

FieldTypeWhat it is
whatu8What happened to the tip. Values: 0 clicked, 1 closed.
tipu32Which tip, as TipShown named it.
Vectors (1)

clicked-on-1-0-0-136

In 1.0.0.138–1.0.0.143

Command 115 on requests, sent by the client, reliable.

For what 1, the header names the sender’s champion. For what 0, it names the champion TipShown’s header named, and a client sends it only while it still knows that champion.

FieldTypeWhat it is
whatu8What happened to the tip. Values: 0 clicked, 1 closed.
tipu32Which tip, as TipShown named it.
Vectors (1)

clicked-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149109
1.0.0.150–3.1.0.0106

The header names the sender’s champion.

FieldTypeWhat it is
whatu8What happened to the tip. Values: 0 clicked, 1 closed.
tipu32Which tip, as TipShown named it.
Vectors (2)

clicked-on-1-0-0-149, clicked-on-1-0-0-154

QuestUpdated

What a server sends to add a quest to the quest tracker, complete it or remove it. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131144
1.0.0.132–1.0.0.137145
1.0.0.138147
1.0.0.139–1.0.0.143146
1.0.0.144–1.0.0.149140
1.0.0.150–3.1.0.0137
FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text for the quest. It applies to activate only.
icontext, 128 bytesThe quest’s icon. It applies to activate only.
tooltiptext, 128 bytesA key into the client’s own text for its tooltip. It applies to activate only.
kindu8Which tracker it goes in. A tracker that is full holds a new quest back until it has room. Values: 0 primary, 1 secondary.
actionu8What to do. A client ignores any other value. Values: 0 activate, 1 complete, 2 remove.
flags1-byte bitsWhat a flag means depends on action.
flags.firstbit 0For activate, set to have the client report the pointer passing over the quest (QuestEvent); for complete, set where the quest succeeded.
flags.unusedbit 1 to 7Unused; a server writes zero.
questi32The quest’s number, which QuestEvent returns.
Vectors (6)

primary-on-1-0-0-131, primary-on-1-0-0-136, primary-on-1-0-0-138, primary-on-1-0-0-143, primary-on-1-0-0-149, primary-on-1-0-0-154

QuestEvent

What a client sends as its player points at a quest in the tracker (QuestUpdated), stops pointing at it, or clicks it. The header names the sender’s champion.

Definition.

In every range of this book

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131214
1.0.0.132–1.0.0.134215
1.0.0.135217
1.0.0.136–1.0.0.137215
1.0.0.138217
1.0.0.139–1.0.0.140216
1.0.0.141–1.0.0.143218
1.0.0.144–1.0.0.149205
1.0.0.150–3.1.0.0202
FieldTypeWhat it is
eventu8What the player did. Pointing and leaving are sent only for a quest activated with its first flag set; a click at most once in three seconds. Values: 0 enter, 1 leave, 2 click.
questi32The quest’s number, as QuestUpdated gave it.
Vectors (9)

enter-on-1-0-0-131, enter-on-1-0-0-134, enter-on-1-0-0-135, enter-on-1-0-0-136, enter-on-1-0-0-138, enter-on-1-0-0-140, enter-on-1-0-0-143, enter-on-1-0-0-149, enter-on-1-0-0-154

ObjectiveShown

What a server sends to show the objective panel with a text. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14359
1.0.0.144–1.0.0.14956
1.0.0.150–3.1.0.053
FieldTypeWhat it is
texttext, 128 bytesThe objective. The text ends at its first zero byte, which falls within the field.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-149

ObjectiveReplaced

What a server sends to replace the text of the objective panel, showing the panel if it is hidden. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.14314
1.0.0.144–3.1.0.013
FieldTypeWhat it is
texttext, 128 bytesThe objective. The text ends at its first zero byte, which falls within the field.
Vectors (1)

one-on-1-0-0-143

ObjectiveHidden

What a server sends to hide the objective panel. It carries nothing of its own. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131170
1.0.0.132–1.0.0.134171
1.0.0.135173
1.0.0.136–1.0.0.137171
1.0.0.138173
1.0.0.139–1.0.0.143172
1.0.0.144–1.0.0.149162
1.0.0.150–3.1.0.0159

No body.

Vectors (8)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SideTextShown

What a server sends to show a box of text at the right edge of the screen. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.138

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131168
1.0.0.132–1.0.0.134169
1.0.0.135171
1.0.0.136–1.0.0.137169
1.0.0.138171

A client also sizes the panel to the text and shows it. The box sits halfway down the screen.

FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text, which it looks up and shows. The text ends at its first zero byte, which falls within the field.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.143

Command 170 on events, sent by the server, reliable.

A client also sizes the panel to the text and shows it. The box sits against the right edge, in the lower part of the screen.

FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text, which it looks up and shows. The text ends at its first zero byte, which falls within the field.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.144–1.0.0.149160
1.0.0.150–3.1.0.0157

A client also sizes the panel to the text and shows it. The box sits halfway down the screen.

FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text, which it looks up and shows. The text ends at its first zero byte, which falls within the field.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

SideTextRefreshed

What a server sends to change the text in the box SideTextShown opened, in place. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131185
1.0.0.132–1.0.0.134186
1.0.0.135188
1.0.0.136–1.0.0.137186
1.0.0.138188
1.0.0.139–1.0.0.140187
1.0.0.141–1.0.0.143189
1.0.0.144–1.0.0.149177
1.0.0.150–3.1.0.0174
FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text, which it looks up and shows. The text ends at its first zero byte, which falls within the field.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

SideTextHidden

What a server sends to close the box of text SideTextShown opened. It carries nothing of its own. The header names no object: a server writes zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131175
1.0.0.132–1.0.0.134176
1.0.0.135178
1.0.0.136–1.0.0.137176
1.0.0.138178
1.0.0.139–1.0.0.143177
1.0.0.144–1.0.0.149167
1.0.0.150–3.1.0.0164

No body.

Vectors (8)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

TutorialChatLine

What a server sends to put a line of the client’s own text in its chat, as a line from the game. The header carries zero.

Definition.

In every range of this book

Command 2 on events, sent by the server, reliable.

FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text, which it looks up and shows. The text ends at its first zero byte, which falls within the field.

TutorialPopup

What a server sends to open the tutorial’s popup: a caption, this text and a single button, which a client answers with TutorialPopupClosed. A client has one such popup; a second message replaces its text. The header carries zero.

Definition.

In every range of this book

Carried on events, sent by the server, reliable, under these commands:

BuildsCommand
1.0.0.130–1.0.0.131187
1.0.0.132–1.0.0.134188
1.0.0.135190
1.0.0.136–1.0.0.137188
1.0.0.138190
1.0.0.139–1.0.0.140189
1.0.0.141–1.0.0.143191
1.0.0.144–1.0.0.149179
1.0.0.150–3.1.0.0176
FieldTypeWhat it is
texttext, 128 bytesA key into the client’s own text for the popup’s body. The text ends at its first zero byte, which falls within the field.
Vectors (9)

one-on-1-0-0-131, one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138, one-on-1-0-0-140, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

TutorialPopupClosed

What a client sends as its player presses the button of the tutorial’s popup (TutorialPopup). It carries nothing of its own. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.131

Command 213 on requests, sent by the client, reliable.

No body.

Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.132–1.0.0.134214
1.0.0.135216
1.0.0.136–1.0.0.137214
1.0.0.138216

A client also sends it as its player closes a tip in the tutorial.

No body.

Vectors (4)

one-on-1-0-0-134, one-on-1-0-0-135, one-on-1-0-0-136, one-on-1-0-0-138

In 1.0.0.139–1.0.0.140

Command 215 on requests, sent by the client, reliable.

No body.

Vectors (1)

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.143217
1.0.0.144–1.0.0.149204
1.0.0.150–3.1.0.0201

A client also sends it as its player closes a tip in the tutorial.

No body.

Vectors (3)

one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Watching a match

How a client is started to watch a match rather than play in it, and how the match reaches it.

A watching client takes the match over HTTP from a spectator service, not over a game connection.

What marks a watching client

Nothing on the wire does. A client watches because it was started to watch: it is given the word spectator where a player’s client is given its server’s address. Its key can be given as more than 16 characters of base64: the first 24 bytes it encodes, deciphered as Blowfish ECB under the match number written out, give the key as their first 16 bytes.

The word is followed by the spectator service’s address, with no port of its own, the key, a match number and a platform name; there is no player number. A key is deciphered under the low 32 bits of the match number, written out as a signed decimal.

The word replay starts a watching client as spectator does.

The order of the stream

  1. A client answered on registration sends StreamRequest.

  2. A server sends StreamMetadata, within 30 seconds: until it arrives the client waits.

  3. A server sends StreamChunkRange, with the match’s end left at zero while it runs.

  4. A server sends the chunks, each cut into StreamChunk fragments sent in order and not mixed with another chunk’s. It either sends every chunk from chunk 1 upward, or joins the client late:

    • the chunks of setting up, from 1 to the last of them (the chunk of kind 3), and no chunk after it;
    • then the key frame nearest the present, the first key frame sent on the connection;
    • then the chunks from the one that key frame leads to.

    Either way it skips none after that. A client takes a key frame only where it is the first one sent and arrives before the chunk after the last chunk of setting up; otherwise it keeps it but plays on from that chunk. A server SHOULD join a client late once a match is more than a few minutes in: a client sent every chunk from 1 fails partway through a long catch-up.

  5. As the match ends, a server sends StreamChunkRange again naming its last chunk, then that chunk. Once it has arrived the client takes no more of the stream.

The stream’s chunks run for StreamMetadata’s chunkTimeInterval each and its key frames for its keyFrameTimeInterval, both in milliseconds.

A watching client asks the spectator service for the match under /observer-mode/rest/consumer/, each request naming the platform and the match number: getGameMetaData for the match’s metadata, getLastChunkInfo for how far the match has come, and getGameDataChunk and getKeyFrame for a chunk or a key frame by number. It gives up on the metadata after a time, fetches the chunks of setting up, then catches up to the last chunk on offer and waits there for the next. Key frames arrive compressed. The metadata gives gameKey.gameId, gameEnded and chunkTimeInterval; the last chunk’s information gives chunkId, nextChunkId, availableSince, nextAvailableChunk, endStartupChunkId and endGameChunkId.

In 1.0.0.130–1.0.0.140

A client asks getLastKeyFrameInfo for the last key frame.

In 1.0.0.140–3.1.0.0

A watching client first asks the service for its version, and ends by asking it to stop. The metadata also gives keyFrameTimeInterval, a whole multiple of chunkTimeInterval, and clientAddedLag; the last chunk’s information also gives keyFrameId.

In 1.0.0.140

A client fetches the first key frame’s information after the chunks of setting up. The last chunk’s information also gives duration and startGameChunkId.

What a chunk holds

A chunk is the messages a server sent the players of the match, one record after another.

A client plays records as the stream’s clock reaches their time, records of time zero at once, and the first record with a time above zero sets its clock. It skips a record of command 0 on the events channel.

The chunks of setting up carry what a player’s client is sent from its version answer on: VersionSync first. A client holds the stream back while it loads after VersionSync, and again while it builds the world after SpawnStart, and goes on by itself afterwards.

A key frame is laid out as a chunk is, and holds the whole world as it stands at that point. A client joined late goes on after it from the chunk the key frame names, or, where it names none, from the chunk its number implies (see StreamChunk).

Messages

Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).

StreamRequest

What a client watching a match streamed over its connection (see Watching a match) sends each time the server answers its registration, asking for the stream from a point. The header carries zero.

Definition.

In 1.0.0.141–3.1.0.0

Carried on requests, sent by the client, reliable, under these commands:

BuildsCommand
1.0.0.141–1.0.0.142248
1.0.0.143247
1.0.0.144–1.0.0.149234
1.0.0.150–3.1.0.0231
FieldTypeWhat it is
wantsMetadatau8One: the client wants StreamMetadata.
jumpToLatestu8One where the client has no key frame yet and nothing past the end of the startup chunks: a client that can be joined late (see Watching a match).
fromChunku32The first chunk wanted: one past the highest the client holds, 1 at first.
fromKeyFrameu32The first key frame wanted: one past the latest the client holds, 1 at first.
Vectors (4)

one-on-1-0-0-142, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

Structs

The groups of fields messages hold, each with the layout it has across the book’s patches.

AnimationOverride

One set of movements standing in for another.

Definition.

In every range of this book

FieldTypeWhat it is
fromLengthu32How many bytes the name below occupies, where it is from 1 to 2147483647.
fromtext, sized by fromLengthThe name of what is replaced. It is not padded and carries nothing closing it.
toLengthu32How many bytes the name below occupies, where it is from 1 to 2147483647.
totext, sized by toLengthThe name of what replaces it, written as above.

Appearance

One layer of what a unit looks like. Layers are stated in the order a client lays them on.

Definition.

In every range of this book

FieldTypeWhat it is
assetSizeu32How many bytes the name below occupies.
assettext, sized by assetSizeThe name the client loads this layer’s art under. It is not padded, and it carries no terminator.
how1-byte bits
how.overrideSpellsbit 0Set where this layer replaces the unit’s spells as well as its art.
how.modelOnlybit 1Set where it replaces the shape alone.
how.unusedbit 2 to 7Unused; a server writes zero.
layeru32The name this layer answers to, so a later message can take it off.

CarriedMessage

One whole message carried inside another, behind the count of its bytes.

Definition.

In every range of this book

FieldTypeWhat it is
sizeu16How many bytes the message occupies.
bodybytes, sized by sizeThe message itself, taking effect as though it had arrived on its own on the channel that carried the message holding it.

Choice

One choice made before the match, and how far it was taken.

Definition.

In every range of this book

FieldTypeWhat it is
choiceu32Which choice, by the number the client knows it as. Zero where the place stands empty.
ranku8How far it was taken.

HeldItem

One item a unit holds, as it is stated when the unit first comes into sight.

Definition.

In every range of this book

FieldTypeWhat it is
slotu8Which slot it sits in.
inSlotu8How many of it are in that slot.
chargesu8How many uses it carries.
itemu32Which item, by the number the client knows it as.

Movement

What one unit is told to do, in the compact shape: a path of points on the ground plane, each after the first stated against the one before it. Other shapes of movement exist, and which one a payload holds is settled by the message carrying it rather than by anything inside the movement.

Definition.

In 1.0.0.130–1.0.0.140

FieldTypePresent whenWhat it is
header4-byte bits
header.hasTeleportTokenbit 0Set where a token sits beside the unit. A client sends it clear, so a token travels only from a server.
header.unusedbit 1 to 15Unused; a client reads nothing here.
header.pointCountbit 16 to 22How many points the path holds; a sending end writes at least one. A client takes a movement claiming none as the end of the whole group: it reads no movement after it.
header.unusedHighbit 23 to 31Unused; a client reads nothing here.
pathrecordEverything the movement carries beyond its first four bytes.
path.unitu32The unit the path belongs to. A server names only a unit the client holds and can move: for any other, a client reads the unit and the token alone and misreads everything after them.
path.teleportTokenu8header.hasTeleportToken setTells one relocation from another. Movement says what a receiving end does with it.
path.flagsbits, count in header.pointCount minus 1One pair for each point after the first, in the order the points follow. Pairs run on from the low bits of the first byte, and the run reaches to the byte holding the last pair. The bits past it are clear.
path.flags.xIsStepbit 0Set where this point states its first coordinate as a step.
path.flags.zIsStepbit 1Set where this point states its second coordinate as a step.
path.firstXi16The first point, along one ground axis, in the units Movement gives.
path.firstZi16The first point, along the other.
path.stepscount in header.pointCount minus 1 × record
path.steps[].xStepi8flags[step].xIsStep setAdded to the first coordinate of the point before, as that point resolved.
path.steps[].xWholei16flags[step].xIsStep = 0The first coordinate, stated without reference to the point before.
path.steps[].zStepi8flags[step].zIsStep setAdded to the second coordinate of the point before, as that point resolved.
path.steps[].zWholei16flags[step].zIsStep = 0The second coordinate, stated without reference to the point before.

In 1.0.0.141–3.1.0.0

FieldTypePresent whenWhat it is
header1-byte bits
header.hasTeleportTokenbit 0Set where a token sits beside the unit. A client sends it clear, so a token travels only from a server.
header.pointCountbit 1 to 7How many points the path holds; a sending end writes at least one. A receiving end refuses a movement claiming none and takes nothing further from it.
pathrecordEverything the movement carries beyond its first byte.
path.unitu32The unit the path belongs to.
path.teleportTokenu8header.hasTeleportToken setTells one relocation from another. Movement says what a receiving end does with it.
path.flagsbits, count in header.pointCount minus 1One pair for each point after the first, in the order the points follow. Pairs run on from the low bits of the first byte, and the run reaches to the byte holding the last pair. The bits past it are clear.
path.flags.xIsStepbit 0Set where this point states its first coordinate as a step.
path.flags.zIsStepbit 1Set where this point states its second coordinate as a step.
path.firstXi16The first point, along one ground axis, in the units Movement gives.
path.firstZi16The first point, along the other.
path.stepscount in header.pointCount minus 1 × record
path.steps[].xStepi8flags[step].xIsStep setAdded to the first coordinate of the point before, as that point resolved.
path.steps[].xWholei16flags[step].xIsStep = 0The first coordinate, stated without reference to the point before.
path.steps[].zStepi8flags[step].zIsStep setAdded to the second coordinate of the point before, as that point resolved.
path.steps[].zWholei16flags[step].zIsStep = 0The second coordinate, stated without reference to the point before.

MovementAtSpeed

What one unit is told to do where a server states how it travels: the same path of points as the compact shape, with the terms of its travel stated before them.

Definition.

In 1.0.0.130–1.0.0.140

FieldTypePresent whenWhat it is
header4-byte bits
header.hasTeleportTokenbit 0Set where a token sits beside the unit. A client sends it clear, so a token travels only from a server.
header.unusedbit 1 to 15Unused; a client reads nothing here.
header.pointCountbit 16 to 22How many points the path holds; a sending end writes at least one. A client takes a movement claiming none as the end of the whole group: it reads no movement after it.
header.unusedHighbit 23 to 31Unused; a client reads nothing here.
pathrecordEverything the movement carries beyond its first four bytes.
path.unitu32The unit the path belongs to. A server names only a unit the client holds and can move: for any other, a client reads the unit, the token and the terms alone and misreads everything after them.
path.teleportTokenu8header.hasTeleportToken setTells one relocation from another, as in the compact shape (see Movement).
path.termsSpeedParamsHow the unit is made to travel.
path.flagsbits, count in header.pointCount minus 1One pair for each point after the first, in the order the points follow. Pairs run on from the low bits of the first byte, and the run reaches to the byte holding the last pair. The bits past it are clear.
path.flags.xIsStepbit 0Set where this point states its first coordinate as a step.
path.flags.zIsStepbit 1Set where this point states its second coordinate as a step.
path.firstXi16The first point, along one ground axis, in the units Movement gives.
path.firstZi16The first point, along the other.
path.stepscount in header.pointCount minus 1 × record
path.steps[].xStepi8flags[step].xIsStep setAdded to the first coordinate of the point before, as that point resolved.
path.steps[].xWholei16flags[step].xIsStep = 0The first coordinate, stated without reference to the point before.
path.steps[].zStepi8flags[step].zIsStep setAdded to the second coordinate of the point before, as that point resolved.
path.steps[].zWholei16flags[step].zIsStep = 0The second coordinate, stated without reference to the point before.

In 1.0.0.141–3.1.0.0

FieldTypePresent whenWhat it is
header1-byte bits
header.hasTeleportTokenbit 0Set where a token sits beside the unit. A client sends it clear, so a token travels only from a server.
header.pointCountbit 1 to 7How many points the path holds; a sending end writes at least one. A receiving end refuses a movement claiming none and takes nothing further from it.
pathrecordEverything the movement carries beyond its first byte.
path.unitu32The unit the path belongs to.
path.teleportTokenu8header.hasTeleportToken setTells one relocation from another, as in the compact shape (see Movement).
path.termsSpeedParamsHow the unit is made to travel.
path.flagsbits, count in header.pointCount minus 1One pair for each point after the first, in the order the points follow. Pairs run on from the low bits of the first byte, and the run reaches to the byte holding the last pair. The bits past it are clear.
path.flags.xIsStepbit 0Set where this point states its first coordinate as a step.
path.flags.zIsStepbit 1Set where this point states its second coordinate as a step.
path.firstXi16The first point, along one ground axis, in the units Movement gives.
path.firstZi16The first point, along the other.
path.stepscount in header.pointCount minus 1 × record
path.steps[].xStepi8flags[step].xIsStep setAdded to the first coordinate of the point before, as that point resolved.
path.steps[].xWholei16flags[step].xIsStep = 0The first coordinate, stated without reference to the point before.
path.steps[].zStepi8flags[step].zIsStep setAdded to the second coordinate of the point before, as that point resolved.
path.steps[].zWholei16flags[step].zIsStep = 0The second coordinate, stated without reference to the point before.

Particle

One drawn particle: where it sits, what it hangs off, and how far into its run it is.

Definition.

In 1.0.0.130–1.0.0.143

FieldTypeWhat it is
targetu32The unit the particle is aimed at, or zero.
particleu32The name this particle answers to, so later messages can name it.
boundTou32The unit the particle hangs off, or zero. Where it names a unit the client does not hold, the particle waits until it does, unless the group’s flags say otherwise.
atXi16Where the particle sits, along one ground axis. Carried in the units a path uses rather than in world units.
atYf32Where it sits, in height, in world units.
atZi16Where it sits, along the other ground axis. It shares the reading of the first.
towardXi16Where the particle is aimed, along one ground axis, in the form of the first pair above.
towardYf32Where it is aimed, in height, in world units.
towardZi16Where it is aimed, along the other ground axis.
ownerXi16Where the unit that made it stood, along one ground axis, in the form of the first pair above.
ownerYf32Where that unit stood, in height, in world units.
ownerZi16Where that unit stood, along the other ground axis.
facingXf32Which way the particle faces, along one ground axis.
facingYf32Which way it faces, in height.
facingZf32Which way it faces, along the other ground axis.
runningForf32How far into its run the particle already is, in seconds.

In 1.0.0.144–3.1.0.0

FieldTypeWhat it is
targetu32The unit the particle is aimed at, or zero.
particleu32The name this particle answers to, so later messages can name it.
boundTou32The unit the particle hangs off, or zero. Where it names a unit the client does not hold, the particle waits until it does, unless the group’s flags say otherwise.
settingsFromu32A unit the particle takes its variants from, which is how a skin picks its own version. Where it is zero, unknown or boundTo, boundTo’s are used.
atXi16Where the particle sits, along one ground axis. Carried in the units a path uses rather than in world units.
atYf32Where it sits, in height, in world units.
atZi16Where it sits, along the other ground axis. It shares the reading of the first.
towardXi16Where the particle is aimed, along one ground axis, in the form of the first pair above.
towardYf32Where it is aimed, in height, in world units.
towardZi16Where it is aimed, along the other ground axis.
ownerXi16Where the unit that made it stood, along one ground axis, in the form of the first pair above.
ownerYf32Where that unit stood, in height, in world units.
ownerZi16Where that unit stood, along the other ground axis.
facingXf32Which way the particle faces, along one ground axis.
facingYf32Which way it faces, in height.
facingZf32Which way it faces, along the other ground axis.
runningForf32How far into its run the particle already is, in seconds.

ParticleGroup

A set of drawn particles that share the art, the sound, and the place on a unit they hang from.

Definition.

In 1.0.0.130–1.0.0.145

FieldTypeWhat it is
particleu32Which particle, by the number its name gives, as Objects and identifiers works it out.
flagsu16How each particle of the group behaves, one bit each: 1 kept alive, not ending by itself; 4 scaled to the bound unit’s bounding box and its effect scale (to 1 where the bound object cannot be attacked); 8 placed at the positions given rather than hung on bone and targetBone; 32 simulated while off screen. A client makes the particles whether or not it knows a nonzero boundTo or the target. 2, 16, 64, 128, 256 and bits 9 to 15 have no effect.
targetBoneu32Where on the unit aimed at they hang, by the number the name of that place gives, as Objects and identifiers works it out.
boneu32Where on the unit that made them they hang, by the same reading.
particleCountu8How many particles follow.
particlescount in particleCount × ParticleThe particles themselves.

In 1.0.0.146–3.1.0.0

FieldTypeWhat it is
packageu32Which set of art and sound the client draws them with.
particleu32Which particle, by the number its name gives, as Objects and identifiers works it out.
flagsu16How each particle of the group behaves, one bit each, on a 4.17 client: 1 kept alive, not ending by itself; 2 of no effect; 4 scaled to the bound unit’s bounding box and its effect scale (to 1 where the bound object cannot be attacked); 8 placed at the positions given rather than hung on bone and targetBone, made even where a nonzero boundTo is unknown and with an unknown target; 16 not turned to follow its direction; 32 simulated while off screen; 64 laid flat on the ground’s slope, facing as forward (+Z where facing is zero); 128 facing its target; 256 driven by the bound unit’s resource bar. Bits 9 to 15 have no effect.
targetBoneu32Where on the unit aimed at they hang, by the number the name of that place gives, as Objects and identifiers works it out.
boneu32Where on the unit that made them they hang, by the same reading.
particleCountu8How many particles follow.
particlescount in particleCount × ParticleThe particles themselves.

Replication

What has changed about one unit. A flag byte says which groups of values follow, and each group that follows says which of its values it holds and carries them as a run of bytes. The groups follow in a fixed order that is not the order of the flags: the last flag’s values come before the one before it, and the rest run in flag order. Replication says what settles the reading of a run, and records what a champion’s groups carry.

Definition.

In 1.0.0.130–1.0.0.142

FieldTypePresent whenWhat it is
present1-byte bits
present.group0bit 0Set where this group’s values follow.
present.group1bit 1Set where this group’s values follow.
present.group2bit 2Set where this group’s values follow.
present.group3bit 3Set where this group’s values follow.
present.group4bit 4Set where this group’s values follow. They come after every other group’s, whatever the flags.
present.unusedbit 5 to 7A client takes only groups 0 to 4.
unitu32The unit whose values these are.
group0recordpresent.group0 setThe values of group 0, where the flag says they follow.
group0.whichu32Says which of the group’s values follow, one bit each, lowest first.
group0.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group1recordpresent.group1 setThe values of group 1, where the flag says they follow.
group1.whichu32Says which of the group’s values follow, one bit each, lowest first.
group1.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group2recordpresent.group2 setThe values of group 2, where the flag says they follow.
group2.whichu32Says which of the group’s values follow, one bit each, lowest first.
group2.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group3recordpresent.group3 setThe values of group 3, where the flag says they follow.
group3.whichu32Says which of the group’s values follow, one bit each, lowest first.
group3.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group4recordpresent.group4 setThe values of group 4, where the flag says they follow.
group4.whichu32Says which of the group’s values follow, one bit each, lowest first.
group4.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.

In 1.0.0.143–3.1.0.0

FieldTypePresent whenWhat it is
present1-byte bits
present.group0bit 0Set where this group’s values follow.
present.group1bit 1Set where this group’s values follow.
present.group2bit 2Set where this group’s values follow.
present.group3bit 3Set where this group’s values follow.
present.group4bit 4Set where this group’s values follow. They come after every other group’s, whatever the flags. A server sends it clear.
present.group5bit 5Set where this group’s values follow. They come before group 4’s.
present.unusedbit 6 to 7Unused; a server writes zero. A presence byte with no group set is valid.
unitu32The unit whose values these are.
group0recordpresent.group0 setThe values of group 0, where the flag says they follow.
group0.whichu32Says which of the group’s values follow, one bit each, lowest first.
group0.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group1recordpresent.group1 setThe values of group 1, where the flag says they follow.
group1.whichu32Says which of the group’s values follow, one bit each, lowest first.
group1.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group2recordpresent.group2 setThe values of group 2, where the flag says they follow.
group2.whichu32Says which of the group’s values follow, one bit each, lowest first.
group2.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group3recordpresent.group3 setThe values of group 3, where the flag says they follow.
group3.whichu32Says which of the group’s values follow, one bit each, lowest first.
group3.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group5recordpresent.group5 setThe values of group 5, where the flag says they follow.
group5.whichu32Says which of the group’s values follow, one bit each, lowest first.
group5.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.
group4recordpresent.group4 setThe values of group 4, where the flag says they follow. A server sends its flag clear.
group4.whichu32Says which of the group’s values follow, one bit each, lowest first.
group4.valuescount in the bits set in which × bytesThe values themselves, four bytes each, in the order the bits above name them.

Seat

One place at the match: who holds it, what they brought, and what the client shows for them.

Definition.

In 1.0.0.130

FieldTypeWhat it is
playeri64Which player holds the place, or a negative number where it stands empty. It has a player identifier’s width.
levelu16The level the seat holder has reached across matches.
summoneru32The spell in one of the seat’s summoner slots, as the name hash of the spell; drawn as its icon on the loading screen. It has no effect on a bot’s seat.
otherSummoneru32The spell in the other.
flagsu8How the seat is treated. Two bits take effect: bit 0, set where a bot holds the seat, which the loading screen then shows from the bot fields below as already loaded; and bit 1, set to show the seat’s champion on the loading screen in its skin’s vintage art. The others have no effect.
sideu32The side the seat is on, or zero where it stands empty.
botNamebytes, 28What the seat is called where nobody holds it, written and padded as above. A 28-byte text the client takes as it stands in its own memory: bytes 4 to 19 hold the text, the u32 at 20 its length and the u32 at 24 a capacity that must be 15 or less, so the text holds at most 15 bytes; bytes 0 to 3 are not read.
botAssetbytes, 28The name the client loads art for it under where nobody holds it, written and padded as above. A 28-byte text the client takes as it stands in its own memory: bytes 4 to 19 hold the text, the u32 at 20 its length and the u32 at 24 a capacity that must be 15 or less, so the text holds at most 15 bytes; bytes 0 to 3 are not read.
botDifficultyi32How well it plays where nobody holds it: 0 beginner, 1 intermediate, 2 advanced, 3 top, 4 tutorial, 5 intro.
iconi32Which profile icon the client shows on the seat’s loading-screen card; a negative number, or one with no art, shows icon 0’s.

In 1.0.0.131–1.0.0.147

FieldTypeWhat it is
playeri64Which player holds the place, or a negative number where it stands empty. It has a player identifier’s width.
levelu16The level the seat holder has reached across matches.
summoneru32The spell in one of the seat’s summoner slots, as the name hash of the spell; drawn as its icon on the loading screen. It has no effect on a bot’s seat.
otherSummoneru32The spell in the other.
flagsu8How the seat is treated. A client tests the whole byte: any nonzero value makes it a bot’s seat, which the loading screen then shows from the bot fields below as already loaded. No bit is read on its own.
sideu32The side the seat is on, or zero where it stands empty.
botNametext, 64 bytesWhat the seat is called where nobody holds it, written and padded as above. A client reads nothing here.
botAssettext, 64 bytesThe name the client loads art for it under where nobody holds it, written and padded as above. A bot seat’s loading card shows its name from this, looked up in the client’s own text.
botDifficultyi32How well it plays where nobody holds it: 0 beginner, 1 intermediate, 2 advanced, 3 top, 4 tutorial, 5 intro.
iconi32Which profile icon the client shows on the seat’s loading-screen card; a negative number, or one with no art, shows icon 0’s.

In 1.0.0.148–1.0.0.150

FieldTypeWhat it is
playeri64Which player holds the place, or a negative number where it stands empty. It has a player identifier’s width.
levelu16The level the seat holder has reached across matches.
summoneru32The spell in one of the seat’s summoner slots, as the name hash of the spell; drawn as its icon on the loading screen. It has no effect on a bot’s seat.
otherSummoneru32The spell in the other.
flagsu8How the seat is treated. Two bits take effect: bit 0, set where a bot holds the seat, which the loading screen then shows from the bot fields below as already loaded; and bit 1, set to show the seat’s champion on the loading screen in its skin’s vintage art. The others have no effect.
sideu32The side the seat is on, or zero where it stands empty.
botNametext, 64 bytesWhat the seat is called where nobody holds it, written and padded as above.
botAssettext, 64 bytesThe name the client loads art for it under where nobody holds it, written and padded as above.
botSkini32Which look it wears where nobody holds it.
botDifficultyi32How well it plays where nobody holds it: 0 beginner, 1 intermediate, 2 advanced, 3 top, 4 tutorial, 5 intro.
iconi32Which profile icon the client shows on the seat’s loading-screen card; a negative number, or one with no art, shows icon 0’s.
allyBadgeu8
enemyBadgeu8The badge it shows where the ally badge is not shown and this is nonzero.

In 1.0.0.151–3.1.0.0

FieldTypeWhat it is
playeri64Which player holds the place, or a negative number where it stands empty. It has a player identifier’s width.
levelu16The level the seat holder has reached across matches. A 4.17 client does not draw it on the loading screen.
summoneru32The spell in one of the seat’s summoner slots, as the name hash of the spell; drawn as its icon on the loading screen. It has no effect on a bot’s seat.
otherSummoneru32The spell in the other.
flagsu8How the seat is treated. Two bits take effect on a 4.17 client: bit 0, set where a bot holds the seat, which the loading screen then shows from the bot fields below as already loaded; and bit 1, set to show the seat’s champion on the loading screen in its skin’s vintage art. The others have no effect.
sideu32The side the seat is on, or zero where it stands empty.
botNametext, 64 bytesWhat the seat is called where nobody holds it, written and padded as above. A 4.17 client shows its own name for a bot of the champion instead.
botAssettext, 64 bytesThe name the client loads art for it under where nobody holds it, written and padded as above.
standingtext, 16 bytesWhat the seat’s standing across matches is called, written and padded as above. A 4.17 client frames the seat’s loading-screen card with its own image of that name, where it has one; UNRANKED and BRONZE draw nothing.
botSkini32Which look it wears where nobody holds it.
botDifficultyi32How well it plays where nobody holds it: 0 beginner, 1 intermediate, 2 advanced, 3 top, 4 tutorial, 5 intro. A 4.17 client draws it nowhere and picks the bot’s summoner spells by it.
iconi32Which profile icon the client shows on the seat’s loading-screen card; a negative number, or one with no art, shows icon 0’s.
allyBadgeu8The badge a 4.17 client shows on the seat’s card to the seat’s own side (and to a client on neither side), where it is one of the badges the client’s own data names.
enemyBadgeu8The badge it shows where the ally badge is not shown and this is nonzero.

SpeedParams

How a unit is made to travel, in place of what a receiving end would otherwise choose for it.

Definition.

In every range of this book

FieldTypeWhat it is
speedf32How fast the unit travels along the path, in world units a second, standing in for its own pace.
gravityf32How sharply the unit arcs through the air along the way. Zero where it keeps to the ground.
fromXf32Where the unit starts, along one ground axis, in world units. It holds the same place the path’s first point states, and is carried whether the unit arcs or not.
fromZf32Where it starts, along the other.
keepFacingu80 to face the way the unit travels, 1 to keep its facing. Values: 0 faceTheWayItGoes, 1 holdItsFacing.
followsu32The unit this one is made to follow, or zero where it follows none.
followDistancef32How far from that unit it is made to stay, in world units.
followBackDistancef32How far behind that unit it is made to stay, in world units.
followTimef32Seconds to reach the followed unit, from when a client applies the message; it applies only where follows is nonzero. Above zero, a client sets the speed each update to the ground distance left to the followed unit (moved back by followBackDistance) over the time left, at least 0.0001 seconds, overriding speed, and keeps the last speed once the time is up; an arcing unit takes it as its first flight time. Zero or below does nothing.

SpellCast

One casting of a spell: which spell, who cast it, at what, and the timings a client plays it out with.

Definition.

In every range of this book

FieldTypeWhat it is
sizeu16How many bytes the casting takes, this field included. Where it differs from the bytes the casting takes, a client gives the cast no spell.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
castu32The name this casting answers to, so later messages can name it.
levelu8The rank the spell stands at, counting from 1: a spell at its first rank carries 1.
attackSpeedf32What the caster’s attack rhythm is scaled by while this runs.
casteru32The unit casting.
chainOwneru32The unit the casting is credited to, where a chain of casts leads back to another.
targetXf32Where the casting is aimed, along one ground axis, in world units.
targetYf32Where the casting is aimed, in height, in world units.
targetZf32Where the casting is aimed, along the other ground axis, in world units.
targetEndXf32Where the casting stops being aimed, for a spell that sweeps, along one ground axis, in world units.
targetEndYf32Where the casting stops being aimed, for a spell that sweeps, in height, in world units.
targetEndZf32Where the casting stops being aimed, for a spell that sweeps, along the other ground axis, in world units.
hitCountu8How many units the casting names as hit.
hitscount in hitCount × SpellHit
castTimef32How long the casting takes before it takes effect, in seconds.
extraCastTimef32What is added to that, in seconds.
totalTimef32How long the whole casting runs, in seconds.
cooldownf32How long until the spell can be cast again, in seconds.
startedAtf32When the casting began, in seconds.
how1-byte bits
how.basicAttackbit 0Set where the casting is the caster’s own swing rather than a spell.
how.secondBasicAttackbit 1Set where the swing is the second of a pair.
how.forcedbit 2Set where the casting was not asked for by whoever holds the caster.
how.overrideCastPositionbit 3Set where the aim above replaces the one the caster would have used.
how.clickedbit 4Set where a click on the spell’s own button started the casting. A client does nothing with it.
how.unusedbit 5 to 7Unused; a server writes zero.
slotu8Which of the caster’s slots the spell sits in.
costf32What the casting spends from the caster’s resource.
launchXf32Where what the casting throws leaves from, along one ground axis, in world units.
launchYf32Where what the casting throws leaves from, in height, in world units.
launchZf32Where what the casting throws leaves from, along the other ground axis, in world units.

SpellHit

One unit a casting names as hit, and how it was hit.

Definition.

In every range of this book

FieldTypeWhat it is
unitu32The unit hit.
atXf32Where the hit is, along one ground axis, in world units. A client gives it to the missile it makes for this hit.
atYf32Where the hit is, in height, in world units. A client gives it to the missile it makes for this hit.
atZf32Where the hit is, along the other ground axis, in world units. A client gives it to the missile it makes for this hit.
resultu8How the hit landed.
Vectors (1)

one-on-4-16

Patches

What is particular to each patch this book covers: the builds it shipped, the live checks that ran on them, every message it carries, what the specification leaves unrecorded there, and how it differs from the patch before it. Where builds of two patches are held to the same facts, they share a section.

No build of this book has these, though the chapters name them, so what the chapters say of them says nothing of this book: AnimationAdvanced, AscendedUnit, AttackIndicators, AttackSpeedBounds, BalanceResult, BalanceVote, BalanceVoteAnswer, BalanceVoteRefused, BounceMissile, CampMarker, CampTimer, CapturePointValue, ChampionRemoved, CharacterPreload, ChatAllowance, CursorRings, DeathTimer, EffectCounter, EmitterPause, FloatingTextOnMap, GameOptions, GroundAttackMode, InhibitorDied, InputLockChanged, InputLocksFlipped, InventorySnapshot, InventorySnapshotOnMap, ItemCharges, ItemSubstitution, LevelCap, MarkerMoved, MinionKillCount, MissileSpeed, PlaceTurret, RegionMoved, ResourceDisplay, ResourceKindChanged, ShopUndo, ShopUndoCount, Situation, SoundPlayed, SpawnMarker, SpawnTurret, SpellCharges, SpellCostChanged, SpellRankLimits, SpellSlotChangedForOwner, SpellTargeterHidden, SpellTargeterShown, SpellToggled, StreamChunk, StreamChunkRange, StreamMetadata, SubstitutionCleared, SurrenderAllowed, SurrenderFailed, ThemeMusic, UnitDiedOnMap, ZoomReport.

1.0.0.130

Client builds from 1.0.0.130 up to, not including, 1.0.0.131. Patch notes: V1.0.0.130.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1301004488476a2026-10-25

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AppearanceCleared, BotKick, CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileCourse, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellCharge, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (215)
MessageCommand
AfkWarning192
AnimationOverrides110
Announcement133
AppearancePopped106
AppearancePushed159
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState179
BotTargets108
BuildingDied142
BuyItem135
Camera48
CameraAck46
CameraBehaviour118
CameraLock134
CameraLockSet124
CampCleared203
CancelTargeting139
CapturePointChanged220
CastSpell162
ChainTargets111
ChampionDied97
ChampionStats75
CharacterSelected198
Chat0
ClientEvent171
ClientFinished145
ClientReady85
ClientVersion197
ClockConvergence121
ClockReply8
ClockSync201
CloseShop15
CooldownSet138
CreateChampion79
CreateNeutral102
CreateTurret165
Damage104
DeathHistory36
DestroyMissile93
EffectAdded191
EffectAddedGroup107
EffectCount31
EffectCountGroup199
EffectRemoved127
EffectRemovedGroup155
EffectReplaced50
EffectReplacedGroup33
EmotePlayed72
EnterLocalSight181
EnterSight194
EnterTeamSight238
Exit148
ExperienceGained17
FaceDirection83
FacePosition83
FadeMinions212
FadeRemoved52
FadeSounds98
FadeTo186
FloatingText27
FogSet180
FogToggled130
ForceDeath30
GameEnded206
GameSpeed19
GoldEarned242
GoldGained37
GoldRedirect7
GreyscaleWhenDead178
HealthBar215
HudDisabled196
HudHighlighted67
HudHighlightToggled82
InhibitorState45
InputLock137
InputLockToggled163
InventorySlot86
ItemAdded114
ItemUsed167
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight84
LeaveTeamSight239
LevelUp69
LoadingProgress25
Loadout44
MapPing90
MapProp217
MapPropChanged218
MatchIdentity152
MatchStarted202
MinimapHighlighted20
MinimapIcon225
MissileHits40
MissileReport65
MissileState65
ModulePacket237
MoveCamera39
MovementBounds6
MoveOrder117
MusicCue229
NavigationFlags71
NexusIdle4
NexusSkin119
ObjectiveHidden170
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight241
ParticlesCreated140
ParticleSource219
Path193
PathWithSpeed136
Pause169
PauseAnimation116
Paused169
PingPlaced70
PlayAnimation184
PlayEmote76
PlayerDisconnected160
QueryStatus23
QueryStatusAnswer141
QuestEvent214
QuestUpdated144
Reconnected16
ReconnectedInMatch164
RegionAdded123
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication204
ResourceColours153
Respawned77
RespawnPoint222
Resume10
Resumed10
ResyncEnded73
Revived49
Roster103
ScoreAdded226
ScreenTint228
SeatChampion101
SeatLoadProgress157
SeatName102
SelectObject183
ShieldAdded105
ShopHighlighted182
Shutdown244
SideTextHidden175
SideTextRefreshed185
SideTextShown168
SpawnBot216
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart101
SpawnUnit128
SpellCastAnswer189
SpellCooldown138
SpellIconChanged54
SpellInSlot115
SpellLevel94
SpellNameChanged53
SpellNumbers131
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame95
StatisticIncremented227
StatsRequest89
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus173
SurrenderVote172
SurrenderVoteCalled210
SwapItems35
SwapItemsAnswer68
TargetableChanged243
TargetHeldChampion200
TargetUnit109
TeamChanged224
TeamScore221
TipEvent112
TipShown88
TransientAck176
TutorialChatLine2
TutorialPopup187
TutorialPopupClosed213
TutorialShopOpened96
UiHighlight211
UnitDied166
UnitHighlighted92
UnitHighlightRemoved188
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync87
VictoryDance205
VoiceEvent125
VoiceEventDone5
VoiceOverride158
VolumeMuted41
WaypointAck122
WaypointGroup100
WaypointGroupAtSpeed103
WorldEvent74

1.0.0.131

Client builds from 1.0.0.131 up to, not including, 1.0.0.132. Patch notes: V1.0.0.131.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1311004488476a2026-10-25

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AppearanceCleared, BotKick, CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileCourse, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellCharge, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (215)
MessageCommand
AfkWarning192
AnimationOverrides110
Announcement133
AppearancePopped106
AppearancePushed159
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState179
BotTargets108
BuildingDied142
BuyItem135
Camera48
CameraAck46
CameraBehaviour118
CameraLock134
CameraLockSet124
CampCleared203
CancelTargeting139
CapturePointChanged220
CastSpell162
ChainTargets111
ChampionDied97
ChampionStats75
CharacterSelected198
Chat0
ClientEvent171
ClientFinished145
ClientReady85
ClientVersion197
ClockConvergence121
ClockReply8
ClockSync201
CloseShop15
CooldownSet138
CreateChampion79
CreateNeutral102
CreateTurret165
Damage104
DeathHistory36
DestroyMissile93
EffectAdded191
EffectAddedGroup107
EffectCount31
EffectCountGroup199
EffectRemoved127
EffectRemovedGroup155
EffectReplaced50
EffectReplacedGroup33
EmotePlayed72
EnterLocalSight181
EnterSight194
EnterTeamSight238
Exit148
ExperienceGained17
FaceDirection83
FacePosition83
FadeMinions212
FadeRemoved52
FadeSounds98
FadeTo186
FloatingText27
FogSet180
FogToggled130
ForceDeath30
GameEnded206
GameSpeed19
GoldEarned242
GoldGained37
GoldRedirect7
GreyscaleWhenDead178
HealthBar215
HudDisabled196
HudHighlighted67
HudHighlightToggled82
InhibitorState45
InputLock137
InputLockToggled163
InventorySlot86
ItemAdded114
ItemUsed167
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight84
LeaveTeamSight239
LevelUp69
LoadingProgress25
Loadout44
MapPing90
MapProp217
MapPropChanged218
MatchIdentity152
MatchStarted202
MinimapHighlighted20
MinimapIcon225
MissileHits40
MissileReport65
MissileState65
ModulePacket237
MoveCamera39
MovementBounds6
MoveOrder117
MusicCue229
NavigationFlags71
NexusIdle4
NexusSkin119
ObjectiveHidden170
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight241
ParticlesCreated140
ParticleSource219
Path193
PathWithSpeed136
Pause169
PauseAnimation116
Paused169
PingPlaced70
PlayAnimation184
PlayEmote76
PlayerDisconnected160
QueryStatus23
QueryStatusAnswer141
QuestEvent214
QuestUpdated144
Reconnected16
ReconnectedInMatch164
RegionAdded123
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication204
ResourceColours153
Respawned77
RespawnPoint222
Resume10
Resumed10
ResyncEnded73
Revived49
Roster103
ScoreAdded226
ScreenTint228
SeatChampion101
SeatLoadProgress157
SeatName102
SelectObject183
ShieldAdded105
ShopHighlighted182
Shutdown244
SideTextHidden175
SideTextRefreshed185
SideTextShown168
SpawnBot216
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart101
SpawnUnit128
SpellCastAnswer189
SpellCooldown138
SpellIconChanged54
SpellInSlot115
SpellLevel94
SpellNameChanged53
SpellNumbers131
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame95
StatisticIncremented227
StatsRequest89
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus173
SurrenderVote172
SurrenderVoteCalled210
SwapItems35
SwapItemsAnswer68
TargetableChanged243
TargetHeldChampion200
TargetUnit109
TeamChanged224
TeamScore221
TipEvent112
TipShown88
TransientAck176
TutorialChatLine2
TutorialPopup187
TutorialPopupClosed213
TutorialShopOpened96
UiHighlight211
UnitDied166
UnitHighlighted92
UnitHighlightRemoved188
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync87
VictoryDance205
VoiceEvent125
VoiceEventDone5
VoiceOverride158
VolumeMuted41
WaypointAck122
WaypointGroup100
WaypointGroupAtSpeed103
WorldEvent74

Against 1.0.0.130

Where a build from 1.0.0.131 up to, not including, 1.0.0.132 differs from one from 1.0.0.130 up to, not including, 1.0.0.131. Anything not named here is the same in both.

Laid out differently

  • ForceDeath
    • duration is in 1.0.0.131 (f32) at the start, and not in 1.0.0.130.

Structs

  • Seat
    • botName is bytes, 28 in 1.0.0.130 and text, 64 bytes in 1.0.0.131.
    • botAsset is bytes, 28 in 1.0.0.130 and text, 64 bytes in 1.0.0.131.

1.0.0.132

Client builds from 1.0.0.132 up to, not including, 1.0.0.133. Patch notes: V1.0.0.132.

Build checkedPassedFailedSkippedCommitDate
1.0.0.132100455f9cfa2026-10-25

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AppearanceCleared, BotKick, CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellCharge, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (216)
MessageCommand
AfkWarning193
AnimationOverrides111
Announcement134
AppearancePopped107
AppearancePushed160
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState180
BotTargets109
BuildingDied143
BuyItem136
Camera48
CameraAck46
CameraBehaviour119
CameraLock135
CameraLockSet125
CampCleared204
CancelTargeting140
CapturePointChanged221
CastSpell163
ChainTargets112
ChampionDied98
ChampionStats76
CharacterSelected199
Chat0
ClientEvent172
ClientFinished146
ClientReady86
ClientVersion198
ClockConvergence122
ClockReply8
ClockSync202
CloseShop15
CooldownSet139
CreateChampion80
CreateNeutral103
CreateTurret166
Damage105
DeathHistory36
DestroyMissile94
EffectAdded192
EffectAddedGroup108
EffectCount31
EffectCountGroup200
EffectRemoved128
EffectRemovedGroup156
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight182
EnterSight195
EnterTeamSight239
Exit149
ExperienceGained17
FaceDirection84
FacePosition84
FadeMinions213
FadeRemoved52
FadeSounds99
FadeTo187
FloatingText27
FogSet181
FogToggled131
ForceDeath30
GameEnded207
GameSpeed19
GoldEarned243
GoldGained37
GoldRedirect7
GreyscaleWhenDead179
HealthBar216
HudDisabled197
HudHighlighted68
HudHighlightToggled83
InhibitorState45
InputLock138
InputLockToggled164
InventorySlot87
ItemAdded115
ItemUsed168
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight85
LeaveTeamSight240
LevelUp70
LoadingProgress25
Loadout44
MapPing91
MapProp218
MapPropChanged219
MatchIdentity153
MatchStarted203
MinimapHighlighted20
MinimapIcon226
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket238
MoveCamera39
MovementBounds6
MoveOrder118
MusicCue230
NavigationFlags72
NexusIdle4
NexusSkin120
ObjectiveHidden171
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight242
ParticlesCreated141
ParticleSource220
Path194
PathWithSpeed137
Pause170
PauseAnimation117
Paused170
PingPlaced71
PlayAnimation185
PlayEmote77
PlayerDisconnected161
QueryStatus23
QueryStatusAnswer142
QuestEvent215
QuestUpdated145
Reconnected16
ReconnectedInMatch165
RegionAdded124
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication205
ResourceColours154
Respawned78
RespawnPoint223
Resume10
Resumed10
ResyncEnded74
Revived49
Roster103
ScoreAdded227
ScreenTint229
SeatChampion101
SeatLoadProgress158
SeatName102
SelectObject184
ShieldAdded106
ShopHighlighted183
Shutdown245
SideTextHidden176
SideTextRefreshed186
SideTextShown169
SpawnBot217
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart102
SpawnUnit129
SpellCastAnswer190
SpellCooldown139
SpellIconChanged54
SpellInSlot116
SpellLevel95
SpellNameChanged53
SpellNumbers132
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame96
StatisticIncremented228
StatsRequest90
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus174
SurrenderVote173
SurrenderVoteCalled211
SwapItems35
SwapItemsAnswer69
TargetableChanged244
TargetHeldChampion201
TargetUnit110
TeamChanged225
TeamScore222
TipEvent113
TipShown89
TransientAck177
TutorialChatLine2
TutorialPopup188
TutorialPopupClosed214
TutorialShopOpened97
UiHighlight212
UnitDied167
UnitHighlighted93
UnitHighlightRemoved189
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync88
VictoryDance206
VoiceEvent126
VoiceEventDone5
VoiceOverride159
VolumeMuted41
WaypointAck123
WaypointGroup101
WaypointGroupAtSpeed104
WorldEvent75

Against 1.0.0.131

Where a build from 1.0.0.132 up to, not including, 1.0.0.133 differs from one from 1.0.0.131 up to, not including, 1.0.0.132. Anything not named here is the same in both.

In 1.0.0.132, not in 1.0.0.131

MessageSent byCommandWhat it does
MissileCourseserver66 on eventsSet where a missile starts from and how fast it travels, which restarts its flight

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1311.0.0.132Messages
clock121122ClockConvergence
events67–24468–245HudHighlighted, SwapItemsAnswer, LevelUp, PingPlaced, NavigationFlags, EmotePlayed, ResyncEnded, WorldEvent, ChampionStats, Respawned, CreateChampion, HudHighlightToggled, FaceDirection, LeaveSight, InventorySlot, VersionSync, TipShown, UnitHighlighted, DestroyMissile, SpellLevel, StartGame, ChampionDied, FadeSounds, SpawnStart, CreateNeutral, WaypointGroupAtSpeed, Damage, ShieldAdded, AppearancePopped, EffectAddedGroup, BotTargets, TargetUnit, AnimationOverrides, ChainTargets, ItemAdded, SpellInSlot, PauseAnimation, CameraBehaviour, NexusSkin, RegionAdded, CameraLockSet, VoiceEvent, EffectRemoved, SpawnUnit, FogToggled, SpellNumbers, PathWithSpeed, InputLock, SpellCooldown, CancelTargeting, ParticlesCreated, QueryStatusAnswer, BuildingDied, QuestUpdated, MatchIdentity, ResourceColours, EffectRemovedGroup, VoiceOverride, AppearancePushed, PlayerDisconnected, InputLockToggled, CreateTurret, UnitDied, ItemUsed, SideTextShown, Paused, ObjectiveHidden, ClientEvent, SurrenderStatus, SideTextHidden, GreyscaleWhenDead, BotState, FogSet, EnterLocalSight, ShopHighlighted, PlayAnimation, SideTextRefreshed, FadeTo, TutorialPopup, UnitHighlightRemoved, SpellCastAnswer, EffectAdded, AfkWarning, Path, EnterSight, HudDisabled, EffectCountGroup, TargetHeldChampion, ClockSync, MatchStarted, CampCleared, VictoryDance, GameEnded, SurrenderVoteCalled, UiHighlight, FadeMinions, HealthBar, SpawnBot, MapProp, MapPropChanged, ParticleSource, CapturePointChanged, TeamScore, RespawnPoint, TeamChanged, MinimapIcon, ScoreAdded, StatisticIncremented, ScreenTint, MusicCue, EnterTeamSight, LeaveTeamSight, ParticleLeaveTeamSight, GoldEarned, TargetableChanged, Shutdown
requests76–23777–238PlayEmote, FacePosition, ClientReady, StatsRequest, MapPing, TutorialShopOpened, TipEvent, MoveOrder, WaypointAck, CameraLock, BuyItem, CooldownSet, ClientFinished, Exit, CastSpell, ReconnectedInMatch, Pause, SurrenderVote, TransientAck, SelectObject, ClientVersion, CharacterSelected, TutorialPopupClosed, QuestEvent, ModulePacket
transient100–204101–205WaypointGroup, SeatLoadProgress, Replication

Laid out differently

  • Announcement
    • Its command is 133 in 1.0.0.131 and 134 in 1.0.0.132.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.132:

  • Resume, its layout: “A client writes only delayed in how; the rest of the byte carries whatever it held there.”, where 1.0.0.131 has “A client clears delayed and leaves the other bits of how unwritten.”
  • Resume, how.unused: “A client leaves these bits unwritten; they carry no meaning, and a server ignores them.”, where 1.0.0.131 has “A client leaves these bits unwritten; they carry no meaning.”

1.0.0.133

Client builds from 1.0.0.133 up to, not including, 1.0.0.134. Patch notes: V1.0.0.133.

Build checkedPassedFailedSkippedCommitDate
1.0.0.13310042f0b9d62026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AppearanceCleared, BotKick, CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellCharge, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (216)
MessageCommand
AfkWarning193
AnimationOverrides111
Announcement134
AppearancePopped107
AppearancePushed160
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState180
BotTargets109
BuildingDied143
BuyItem136
Camera48
CameraAck46
CameraBehaviour119
CameraLock135
CameraLockSet125
CampCleared204
CancelTargeting140
CapturePointChanged221
CastSpell163
ChainTargets112
ChampionDied98
ChampionStats76
CharacterSelected199
Chat0
ClientEvent172
ClientFinished146
ClientReady86
ClientVersion198
ClockConvergence122
ClockReply8
ClockSync202
CloseShop15
CooldownSet139
CreateChampion80
CreateNeutral103
CreateTurret166
Damage105
DeathHistory36
DestroyMissile94
EffectAdded192
EffectAddedGroup108
EffectCount31
EffectCountGroup200
EffectRemoved128
EffectRemovedGroup156
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight182
EnterSight195
EnterTeamSight239
Exit149
ExperienceGained17
FaceDirection84
FacePosition84
FadeMinions213
FadeRemoved52
FadeSounds99
FadeTo187
FloatingText27
FogSet181
FogToggled131
ForceDeath30
GameEnded207
GameSpeed19
GoldEarned243
GoldGained37
GoldRedirect7
GreyscaleWhenDead179
HealthBar216
HudDisabled197
HudHighlighted68
HudHighlightToggled83
InhibitorState45
InputLock138
InputLockToggled164
InventorySlot87
ItemAdded115
ItemUsed168
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight85
LeaveTeamSight240
LevelUp70
LoadingProgress25
Loadout44
MapPing91
MapProp218
MapPropChanged219
MatchIdentity153
MatchStarted203
MinimapHighlighted20
MinimapIcon226
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket238
MoveCamera39
MovementBounds6
MoveOrder118
MusicCue230
NavigationFlags72
NexusIdle4
NexusSkin120
ObjectiveHidden171
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight242
ParticlesCreated141
ParticleSource220
Path194
PathWithSpeed137
Pause170
PauseAnimation117
Paused170
PingPlaced71
PlayAnimation185
PlayEmote77
PlayerDisconnected161
QueryStatus23
QueryStatusAnswer142
QuestEvent215
QuestUpdated145
Reconnected16
ReconnectedInMatch165
RegionAdded124
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication205
ResourceColours154
Respawned78
RespawnPoint223
Resume10
Resumed10
ResyncEnded74
Revived49
Roster103
ScoreAdded227
ScreenTint229
SeatChampion101
SeatLoadProgress158
SeatName102
SelectObject184
ShieldAdded106
ShopHighlighted183
Shutdown245
SideTextHidden176
SideTextRefreshed186
SideTextShown169
SpawnBot217
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart102
SpawnUnit129
SpellCastAnswer190
SpellCooldown139
SpellIconChanged54
SpellInSlot116
SpellLevel95
SpellNameChanged53
SpellNumbers132
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame96
StatisticIncremented228
StatsRequest90
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus174
SurrenderVote173
SurrenderVoteCalled211
SwapItems35
SwapItemsAnswer69
TargetableChanged244
TargetHeldChampion201
TargetUnit110
TeamChanged225
TeamScore222
TipEvent113
TipShown89
TransientAck177
TutorialChatLine2
TutorialPopup188
TutorialPopupClosed214
TutorialShopOpened97
UiHighlight212
UnitDied167
UnitHighlighted93
UnitHighlightRemoved189
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync88
VictoryDance206
VoiceEvent126
VoiceEventDone5
VoiceOverride159
VolumeMuted41
WaypointAck123
WaypointGroup101
WaypointGroupAtSpeed104
WorldEvent75

Against 1.0.0.132

Where a build from 1.0.0.133 up to, not including, 1.0.0.134 differs from one from 1.0.0.132 up to, not including, 1.0.0.133. Anything not named here is the same in both.

Laid out differently

  • ClientEvent (vectors: another-on-1-0-0-133, buff-on-1-0-0-133, champion-kill-handler-on-1-0-0-133, consumable-bought-on-1-0-0-133, critical-strike-on-1-0-0-133, damage-dealt-on-1-0-0-133, damage-taken-on-1-0-0-133, death-assist-on-1-0-0-133, died-on-1-0-0-133, gold-earned-on-1-0-0-133, gold-spent-on-1-0-0-133, heal-cast-on-1-0-0-133, heal-on-1-0-0-133, item-bought-on-1-0-0-133, killing-spree-on-1-0-0-133, one-on-1-0-0-133)
    • event takes 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 surrenderVoteStarted, 78 surrenderVoteCast, 79 surrenderAlreadyVoted, 80 surrenderCountdown, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured in 1.0.0.133 and not in 1.0.0.132.
    • event takes 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 surrenderVoteStarted, 77 surrenderVoteCast, 78 surrenderAlreadyVoted, 79 surrenderCountdown, 80 surrenderFailed, 81 surrenderTooEarly, 82 surrenderAgreed, 83 surrenderVoteSpam, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 90 startNoticeFour, 91 startNoticeFive, 92 alert, 93 scoreboardOpened, 96 pointANeutralized, 97 pointBNeutralized, 98 pointCNeutralized, 99 pointDNeutralized, 100 pointENeutralized, 101 pointACaptured, 102 pointBCaptured, 103 pointCCaptured, 104 pointDCaptured, 105 pointECaptured in 1.0.0.132 and not in 1.0.0.133.
    • stage is in 1.0.0.133 (u32), after subject, and not in 1.0.0.132.
    • stageExtra is present when event = 3 in 1.0.0.132, and present when event = 3 or 4 in 1.0.0.133.
    • stagePadding is present when event = 3 in 1.0.0.132, and present when event = 3 or 4 in 1.0.0.133.
    • damage is present when event = 13 or 14 in 1.0.0.132, and present when event = 14 or 15 in 1.0.0.133.
    • spent is present when event = 21 in 1.0.0.132, and present when event = 22 in 1.0.0.133.
    • value is present when event = 23 or 75 in 1.0.0.132, and present when event = 24 or 76 in 1.0.0.133.
    • critical is present when event = 24 in 1.0.0.132, and present when event = 25 in 1.0.0.133.
    • spree is present when event = 42 in 1.0.0.132, and present when event = 43 in 1.0.0.133.
    • earned is present when event = 22 in 1.0.0.132, and present when event = 23 in 1.0.0.133.
    • heal is present when event = 39 or 40 in 1.0.0.132, and present when event = 40 or 41 in 1.0.0.133.
    • effect is present when event = 41 in 1.0.0.132, and present when event = 42 in 1.0.0.133.
    • assist is present when event = 61 in 1.0.0.132, and present when event = 62 in 1.0.0.133.
  • ClientReady
    • maskedStatus is in 1.0.0.133 (u32) at the start, and not in 1.0.0.132.
    • mask is in 1.0.0.133 (u32), after maskedStatus, and not in 1.0.0.132.
  • DeathHistory (vectors: another-on-1-0-0-133, one-on-1-0-0-133)
    • entries[].event takes 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.133 and not in 1.0.0.132.
    • entries[].event takes 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened in 1.0.0.132 and not in 1.0.0.133.
    • entries[].stage is in 1.0.0.133 (u32), after entries[].target, and not in 1.0.0.132.
    • entries[].stageExtra is present when event = 3 in 1.0.0.132, and present when event = 3 or 4 in 1.0.0.133.
    • entries[].stagePadding is present when event = 3 in 1.0.0.132, and present when event = 3 or 4 in 1.0.0.133.
    • entries[].damage is present when event = 13 or 14 in 1.0.0.132, and present when event = 14 or 15 in 1.0.0.133.
    • entries[].spent is present when event = 21 in 1.0.0.132, and present when event = 22 in 1.0.0.133.
    • entries[].value is present when event = 23 or 75 in 1.0.0.132, and present when event = 24 or 76 in 1.0.0.133.
    • entries[].critical is present when event = 24 in 1.0.0.132, and present when event = 25 in 1.0.0.133.
    • entries[].spree is present when event = 42 in 1.0.0.132, and present when event = 43 in 1.0.0.133.
    • entries[].earned is present when event = 22 in 1.0.0.132, and present when event = 23 in 1.0.0.133.
    • entries[].heal is present when event = 39 or 40 in 1.0.0.132, and present when event = 40 or 41 in 1.0.0.133.
    • entries[].effect is present when event = 41 in 1.0.0.132, and present when event = 42 in 1.0.0.133.
    • entries[].assist is present when event = 61 in 1.0.0.132, and present when event = 62 in 1.0.0.133.
  • WorldEvent (vectors: another-on-1-0-0-133, buff-on-1-0-0-133, champion-kill-handler-on-1-0-0-133, consumable-bought-on-1-0-0-133, critical-strike-on-1-0-0-133, damage-dealt-on-1-0-0-133, damage-taken-on-1-0-0-133, death-assist-on-1-0-0-133, died-on-1-0-0-133, gold-earned-on-1-0-0-133, gold-spent-on-1-0-0-133, heal-cast-on-1-0-0-133, heal-on-1-0-0-133, item-bought-on-1-0-0-133, killing-spree-on-1-0-0-133, one-on-1-0-0-133)
    • event takes 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.133 and not in 1.0.0.132.
    • event takes 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened in 1.0.0.132 and not in 1.0.0.133.
    • stage is in 1.0.0.133 (u32), after subject, and not in 1.0.0.132.
    • stageExtra is present when event = 3 in 1.0.0.132, and present when event = 3 or 4 in 1.0.0.133.
    • stagePadding is present when event = 3 in 1.0.0.132, and present when event = 3 or 4 in 1.0.0.133.
    • damage is present when event = 13 or 14 in 1.0.0.132, and present when event = 14 or 15 in 1.0.0.133.
    • spent is present when event = 21 in 1.0.0.132, and present when event = 22 in 1.0.0.133.
    • value is present when event = 23 or 75 in 1.0.0.132, and present when event = 24 or 76 in 1.0.0.133.
    • critical is present when event = 24 in 1.0.0.132, and present when event = 25 in 1.0.0.133.
    • spree is present when event = 42 in 1.0.0.132, and present when event = 43 in 1.0.0.133.
    • earned is present when event = 22 in 1.0.0.132, and present when event = 23 in 1.0.0.133.
    • heal is present when event = 39 or 40 in 1.0.0.132, and present when event = 40 or 41 in 1.0.0.133.
    • effect is present when event = 41 in 1.0.0.132, and present when event = 42 in 1.0.0.133.
    • assist is present when event = 61 in 1.0.0.132, and present when event = 62 in 1.0.0.133.

1.0.0.134

Client builds from 1.0.0.134 up to, not including, 1.0.0.135. Patch notes: V1.0.0.134.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1341004775105e2026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AppearanceCleared, BotKick, CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellCharge, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (216)
MessageCommand
AfkWarning193
AnimationOverrides111
Announcement134
AppearancePopped107
AppearancePushed160
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState180
BotTargets109
BuildingDied143
BuyItem136
Camera48
CameraAck46
CameraBehaviour119
CameraLock135
CameraLockSet125
CampCleared204
CancelTargeting140
CapturePointChanged221
CastSpell163
ChainTargets112
ChampionDied98
ChampionStats76
CharacterSelected199
Chat0
ClientEvent172
ClientFinished146
ClientReady86
ClientVersion198
ClockConvergence122
ClockReply8
ClockSync202
CloseShop15
CooldownSet139
CreateChampion80
CreateNeutral103
CreateTurret166
Damage105
DeathHistory36
DestroyMissile94
EffectAdded192
EffectAddedGroup108
EffectCount31
EffectCountGroup200
EffectRemoved128
EffectRemovedGroup156
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight182
EnterSight195
EnterTeamSight239
Exit149
ExperienceGained17
FaceDirection84
FacePosition84
FadeMinions213
FadeRemoved52
FadeSounds99
FadeTo187
FloatingText27
FogSet181
FogToggled131
ForceDeath30
GameEnded207
GameSpeed19
GoldEarned243
GoldGained37
GoldRedirect7
GreyscaleWhenDead179
HealthBar216
HudDisabled197
HudHighlighted68
HudHighlightToggled83
InhibitorState45
InputLock138
InputLockToggled164
InventorySlot87
ItemAdded115
ItemUsed168
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight85
LeaveTeamSight240
LevelUp70
LoadingProgress25
Loadout44
MapPing91
MapProp218
MapPropChanged219
MatchIdentity153
MatchStarted203
MinimapHighlighted20
MinimapIcon226
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket238
MoveCamera39
MovementBounds6
MoveOrder118
MusicCue230
NavigationFlags72
NexusIdle4
NexusSkin120
ObjectiveHidden171
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight242
ParticlesCreated141
ParticleSource220
Path194
PathWithSpeed137
Pause170
PauseAnimation117
Paused170
PingPlaced71
PlayAnimation185
PlayEmote77
PlayerDisconnected161
QueryStatus23
QueryStatusAnswer142
QuestEvent215
QuestUpdated145
Reconnected16
ReconnectedInMatch165
RegionAdded124
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication205
ResourceColours154
Respawned78
RespawnPoint223
Resume10
Resumed10
ResyncEnded74
Revived49
Roster103
ScoreAdded227
ScreenTint229
SeatChampion101
SeatLoadProgress158
SeatName102
SelectObject184
ShieldAdded106
ShopHighlighted183
Shutdown245
SideTextHidden176
SideTextRefreshed186
SideTextShown169
SpawnBot217
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart102
SpawnUnit129
SpellCastAnswer190
SpellCooldown139
SpellIconChanged54
SpellInSlot116
SpellLevel95
SpellNameChanged53
SpellNumbers132
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame96
StatisticIncremented228
StatsRequest90
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus174
SurrenderVote173
SurrenderVoteCalled211
SwapItems35
SwapItemsAnswer69
TargetableChanged244
TargetHeldChampion201
TargetUnit110
TeamChanged225
TeamScore222
TipEvent113
TipShown89
TransientAck177
TutorialChatLine2
TutorialPopup188
TutorialPopupClosed214
TutorialShopOpened97
UiHighlight212
UnitDied167
UnitHighlighted93
UnitHighlightRemoved189
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync88
VictoryDance206
VoiceEvent126
VoiceEventDone5
VoiceOverride159
VolumeMuted41
WaypointAck123
WaypointGroup101
WaypointGroupAtSpeed104
WorldEvent75

Against 1.0.0.133

Where a build from 1.0.0.134 up to, not including, 1.0.0.135 differs from one from 1.0.0.133 up to, not including, 1.0.0.134. Anything not named here is the same in both.

Laid out differently

  • ClientEvent (vectors: another-on-1-0-0-134, buff-on-1-0-0-134, consumable-bought-on-1-0-0-134, critical-strike-on-1-0-0-134, damage-dealt-on-1-0-0-134, damage-taken-on-1-0-0-134, death-assist-on-1-0-0-134, died-on-1-0-0-134, gold-earned-on-1-0-0-134, gold-spent-on-1-0-0-134, heal-cast-on-1-0-0-134, heal-on-1-0-0-134, item-bought-on-1-0-0-134, killing-spree-on-1-0-0-134, one-on-1-0-0-134)
    • event takes 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 surrenderVoteStarted, 77 surrenderVoteCast, 78 surrenderAlreadyVoted, 79 surrenderCountdown, 80 surrenderFailed, 81 surrenderTooEarly, 82 surrenderAgreed, 83 surrenderVoteSpam, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 90 startNoticeFour, 91 startNoticeFive, 92 alert, 93 scoreboardOpened, 96 pointANeutralized, 97 pointBNeutralized, 98 pointCNeutralized, 99 pointDNeutralized, 100 pointENeutralized, 101 pointACaptured, 102 pointBCaptured, 103 pointCCaptured, 104 pointDCaptured, 105 pointECaptured in 1.0.0.134 and not in 1.0.0.133.
    • event takes 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 surrenderVoteStarted, 78 surrenderVoteCast, 79 surrenderAlreadyVoted, 80 surrenderCountdown, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured in 1.0.0.133 and not in 1.0.0.134.
    • stage is present when event = 3 or 4 in 1.0.0.133, and present when event = 3 in 1.0.0.134.
    • damage is present when event = 14 or 15 in 1.0.0.133, and present when event = 13 or 14 in 1.0.0.134.
    • spent is present when event = 22 in 1.0.0.133, and present when event = 21 in 1.0.0.134.
    • value is present when event = 24 or 76 in 1.0.0.133, and present when event = 23 or 75 in 1.0.0.134.
    • critical is present when event = 25 in 1.0.0.133, and present when event = 24 in 1.0.0.134.
    • spree is present when event = 43 in 1.0.0.133, and present when event = 42 in 1.0.0.134.
    • earned is present when event = 23 in 1.0.0.133, and present when event = 22 in 1.0.0.134.
    • heal is present when event = 40 or 41 in 1.0.0.133, and present when event = 39 or 40 in 1.0.0.134.
    • effect is present when event = 42 in 1.0.0.133, and present when event = 41 in 1.0.0.134.
    • assist is present when event = 62 in 1.0.0.133, and present when event = 61 in 1.0.0.134.
    • stageExtra is in 1.0.0.133 and not in 1.0.0.134.
    • stagePadding is in 1.0.0.133 and not in 1.0.0.134.
  • DeathHistory (vectors: one-on-1-0-0-134)
    • entries[].event takes 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened in 1.0.0.134 and not in 1.0.0.133.
    • entries[].event takes 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.133 and not in 1.0.0.134.
    • entries[].stage is present when event = 3 or 4 in 1.0.0.133, and present when event = 3 in 1.0.0.134.
    • entries[].damage is present when event = 14 or 15 in 1.0.0.133, and present when event = 13 or 14 in 1.0.0.134.
    • entries[].spent is present when event = 22 in 1.0.0.133, and present when event = 21 in 1.0.0.134.
    • entries[].value is present when event = 24 or 76 in 1.0.0.133, and present when event = 23 or 75 in 1.0.0.134.
    • entries[].critical is present when event = 25 in 1.0.0.133, and present when event = 24 in 1.0.0.134.
    • entries[].spree is present when event = 43 in 1.0.0.133, and present when event = 42 in 1.0.0.134.
    • entries[].earned is present when event = 23 in 1.0.0.133, and present when event = 22 in 1.0.0.134.
    • entries[].heal is present when event = 40 or 41 in 1.0.0.133, and present when event = 39 or 40 in 1.0.0.134.
    • entries[].effect is present when event = 42 in 1.0.0.133, and present when event = 41 in 1.0.0.134.
    • entries[].assist is present when event = 62 in 1.0.0.133, and present when event = 61 in 1.0.0.134.
    • entries[].stageExtra is in 1.0.0.133 and not in 1.0.0.134.
    • entries[].stagePadding is in 1.0.0.133 and not in 1.0.0.134.
  • PlayerDisconnected (vectors: one-on-1-0-0-134)
    • flags is in 1.0.0.134 (1-byte bits), after champion, and not in 1.0.0.133.
  • SeatLoadProgress (vectors: one-on-1-0-0-134)
    • done is in 1.0.0.133 and not in 1.0.0.134.
  • WorldEvent (vectors: another-on-1-0-0-134, buff-on-1-0-0-134, consumable-bought-on-1-0-0-134, critical-strike-on-1-0-0-134, damage-dealt-on-1-0-0-134, damage-taken-on-1-0-0-134, death-assist-on-1-0-0-134, died-on-1-0-0-134, gold-earned-on-1-0-0-134, gold-spent-on-1-0-0-134, heal-cast-on-1-0-0-134, heal-on-1-0-0-134, item-bought-on-1-0-0-134, killing-spree-on-1-0-0-134, one-on-1-0-0-134)
    • event takes 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened in 1.0.0.134 and not in 1.0.0.133.
    • event takes 4 championKillHandler, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.133 and not in 1.0.0.134.
    • stage is present when event = 3 or 4 in 1.0.0.133, and present when event = 3 in 1.0.0.134.
    • damage is present when event = 14 or 15 in 1.0.0.133, and present when event = 13 or 14 in 1.0.0.134.
    • spent is present when event = 22 in 1.0.0.133, and present when event = 21 in 1.0.0.134.
    • value is present when event = 24 or 76 in 1.0.0.133, and present when event = 23 or 75 in 1.0.0.134.
    • critical is present when event = 25 in 1.0.0.133, and present when event = 24 in 1.0.0.134.
    • spree is present when event = 43 in 1.0.0.133, and present when event = 42 in 1.0.0.134.
    • earned is present when event = 23 in 1.0.0.133, and present when event = 22 in 1.0.0.134.
    • heal is present when event = 40 or 41 in 1.0.0.133, and present when event = 39 or 40 in 1.0.0.134.
    • effect is present when event = 42 in 1.0.0.133, and present when event = 41 in 1.0.0.134.
    • assist is present when event = 62 in 1.0.0.133, and present when event = 61 in 1.0.0.134.
    • stageExtra is in 1.0.0.133 and not in 1.0.0.134.
    • stagePadding is in 1.0.0.133 and not in 1.0.0.134.

1.0.0.135

Client builds from 1.0.0.135 up to, not including, 1.0.0.136. Patch notes: V1.0.0.135.

Build checkedPassedFailedSkippedCommitDate
1.0.0.135100409f351e2026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (220)
MessageCommand
AfkWarning195
AnimationOverrides111
Announcement134
AppearanceCleared212
AppearancePopped107
AppearancePushed162
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick234
BotState182
BotTargets109
BuildingDied143
BuyItem136
Camera48
CameraAck46
CameraBehaviour119
CameraLock135
CameraLockSet125
CampCleared206
CancelTargeting140
CapturePointChanged223
CastSpell165
ChainTargets112
ChampionDied98
ChampionStats76
CharacterSelected201
Chat0
ClientEvent174
ClientFinished146
ClientReady86
ClientVersion200
ClockConvergence122
ClockReply8
ClockSync204
CloseShop15
CooldownSet139
CreateChampion80
CreateNeutral103
CreateTurret168
Damage105
DeathHistory36
DestroyMissile94
EffectAdded194
EffectAddedGroup108
EffectCount31
EffectCountGroup202
EffectRemoved128
EffectRemovedGroup158
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight184
EnterSight197
EnterTeamSight236
Exit149
ExperienceGained17
FaceDirection84
FacePosition84
FadeMinions215
FadeRemoved52
FadeSounds99
FadeTo189
FloatingText27
FogSet183
FogToggled131
ForceDeath30
GameEnded209
GameSpeed19
GoldEarned240
GoldGained37
GoldRedirect7
GreyscaleWhenDead181
HealthBar218
HudDisabled199
HudHighlighted68
HudHighlightToggled83
InhibitorState45
InputLock138
InputLockToggled166
InventorySlot87
ItemAdded115
ItemUsed170
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight85
LeaveTeamSight237
LevelUp70
LoadingProgress25
Loadout44
MapPing91
MapProp220
MapPropChanged221
MatchIdentity155
MatchStarted205
MinimapHighlighted20
MinimapIcon228
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket235
MoveCamera39
MovementBounds6
MoveOrder118
MusicCue232
NavigationFlags72
NexusIdle4
NexusSkin120
ObjectiveHidden173
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight239
ParticlesCreated141
ParticleSource222
Path196
PathWithSpeed137
Pause172
PauseAnimation117
Paused172
PingPlaced71
PlayAnimation187
PlayEmote77
PlayerDisconnected163
QueryStatus23
QueryStatusAnswer142
QuestEvent217
QuestUpdated145
Reconnected16
ReconnectedInMatch167
RegionAdded124
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication207
ResourceColours156
Respawned78
RespawnPoint225
Resume10
Resumed10
ResyncEnded74
Revived49
Roster103
ScoreAdded229
ScreenTint231
SeatChampion101
SeatLoadProgress160
SeatName102
SelectObject186
ShieldAdded106
ShopHighlighted185
Shutdown242
SideTextHidden178
SideTextRefreshed188
SideTextShown171
SpawnBot219
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart102
SpawnUnit129
SpellCastAnswer192
SpellCharge244
SpellCooldown139
SpellIconChanged54
SpellInSlot116
SpellLevel95
SpellNameChanged53
SpellNumbers132
SpellOffsetTargetChanged55
SpellRangeChanged243
SpellTargetingChanged26
SpellUpgraded24
StartGame96
StatisticIncremented230
StatsRequest90
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus176
SurrenderVote175
SurrenderVoteCalled213
SwapItems35
SwapItemsAnswer69
TargetableChanged241
TargetHeldChampion203
TargetUnit110
TeamChanged227
TeamScore224
TipEvent113
TipShown89
TransientAck179
TutorialChatLine2
TutorialPopup190
TutorialPopupClosed216
TutorialShopOpened97
UiHighlight214
UnitDied169
UnitHighlighted93
UnitHighlightRemoved191
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync88
VictoryDance208
VoiceEvent126
VoiceEventDone5
VoiceOverride161
VolumeMuted41
WaypointAck123
WaypointGroup101
WaypointGroupAtSpeed104
WorldEvent75

Against 1.0.0.134

Where a build from 1.0.0.135 up to, not including, 1.0.0.136 differs from one from 1.0.0.134 up to, not including, 1.0.0.135. Anything not named here is the same in both.

In 1.0.0.135, not in 1.0.0.134

MessageSent byCommandWhat it does
AppearanceClearedserver212 on eventsTake every look laid over a unit away
BotKickserver234 on eventsHave a client it takes for a program rather than a player leave the match
SpellChargeclient244 on requestsWhat a client sends while its player charges a spell, and as the charge ends
SpellRangeChangedserver243 on eventsChange how far the spell in one of a unit’s slots is cast

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • AppearancePushed (vectors: one-on-1-0-0-135)
    • Its command is 160 in 1.0.0.134 and 162 in 1.0.0.135.
    • modelOnly is in 1.0.0.135 (u8), after overrideSpells, and not in 1.0.0.134.
  • ClientEvent (vectors: another-on-1-0-0-135, buff-on-1-0-0-135, consumable-bought-on-1-0-0-135, critical-strike-on-1-0-0-135, damage-dealt-on-1-0-0-135, damage-taken-on-1-0-0-135, death-assist-on-1-0-0-135, died-on-1-0-0-135, gold-earned-on-1-0-0-135, gold-spent-on-1-0-0-135, heal-cast-on-1-0-0-135, heal-on-1-0-0-135, item-bought-on-1-0-0-135, item-callout-on-1-0-0-135, killing-spree-on-1-0-0-135, one-on-1-0-0-135)
    • Its command is 172 in 1.0.0.134 and 174 in 1.0.0.135.
    • event takes 76 itemCallout, 77 surrenderVoteStarted, 78 surrenderVoteCast, 79 surrenderAlreadyVoted, 80 surrenderCountdown, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured in 1.0.0.135 and not in 1.0.0.134.
    • event takes 76 surrenderVoteStarted, 77 surrenderVoteCast, 78 surrenderAlreadyVoted, 79 surrenderCountdown, 80 surrenderFailed, 81 surrenderTooEarly, 82 surrenderAgreed, 83 surrenderVoteSpam, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 90 startNoticeFour, 91 startNoticeFive, 92 alert, 93 scoreboardOpened, 96 pointANeutralized, 97 pointBNeutralized, 98 pointCNeutralized, 99 pointDNeutralized, 100 pointENeutralized, 101 pointACaptured, 102 pointBCaptured, 103 pointCCaptured, 104 pointDCaptured, 105 pointECaptured in 1.0.0.134 and not in 1.0.0.135.
    • callout is in 1.0.0.135 (record), after kill.assists, and not in 1.0.0.134.
  • DeathHistory
    • entries[].event takes 76 itemCallout, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.135 and not in 1.0.0.134.
    • entries[].event takes 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened in 1.0.0.134 and not in 1.0.0.135.
    • entries[].callout is in 1.0.0.135 (record), after entries[].kill.assists, and not in 1.0.0.134.
  • EmotePlayed
    • emote is u32 in 1.0.0.134 and u8 in 1.0.0.135.
  • InventorySlot
    • The same fields come in another order in 1.0.0.135.
  • ItemAdded
    • how is in 1.0.0.135 (1-byte bits), after activate, and not in 1.0.0.134.
  • MissileCourse (vectors: one-on-1-0-0-135)
    • fromX is in 1.0.0.135 (f32), after driver, and not in 1.0.0.134.
    • fromY is in 1.0.0.135 (f32), after fromX, and not in 1.0.0.134.
    • fromZ is in 1.0.0.135 (f32), after fromY, and not in 1.0.0.134.
    • velocityX is in 1.0.0.135 (f32), after fromZ, and not in 1.0.0.134.
    • velocityY is in 1.0.0.135 (f32), after velocityX, and not in 1.0.0.134.
    • velocityZ is in 1.0.0.135 (f32), after velocityY, and not in 1.0.0.134.
  • PlayEmote
    • emote is u32 in 1.0.0.134 and u8 in 1.0.0.135.
  • WorldEvent
    • event takes 76 itemCallout, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.135 and not in 1.0.0.134.
    • event takes 79 surrenderCountdown, 86 minionsSpawned, 87 welcome, 88 startNoticeTwo, 89 startNoticeThree, 93 scoreboardOpened in 1.0.0.134 and not in 1.0.0.135.
    • callout is in 1.0.0.135 (record), after kill.assists, and not in 1.0.0.134.

1.0.0.136–1.0.0.137

Client builds from 1.0.0.136 up to, not including, 1.0.0.138. Patch notes: V1.0.0.136.

Build checkedPassedFailedSkippedCommitDate
1.0.0.13610046bab11d2026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampOpened, ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellSlotChanged, StreamRequest, SystemMessage, VoiceCommand.

Every message of this range (220)
MessageCommand
AfkWarning193
AnimationOverrides111
Announcement134
AppearanceCleared210
AppearancePopped107
AppearancePushed160
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick232
BotState180
BotTargets109
BuildingDied143
BuyItem136
Camera48
CameraAck46
CameraBehaviour119
CameraLock135
CameraLockSet125
CampCleared204
CancelTargeting140
CapturePointChanged221
CastSpell163
ChainTargets112
ChampionDied98
ChampionStats76
CharacterSelected199
Chat0
ClientEvent172
ClientFinished146
ClientReady86
ClientVersion198
ClockConvergence122
ClockReply8
ClockSync202
CloseShop15
CooldownSet139
CreateChampion80
CreateNeutral103
CreateTurret166
Damage105
DeathHistory36
DestroyMissile94
EffectAdded192
EffectAddedGroup108
EffectCount31
EffectCountGroup200
EffectRemoved128
EffectRemovedGroup156
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight182
EnterSight195
EnterTeamSight234
Exit149
ExperienceGained17
FaceDirection84
FacePosition84
FadeMinions213
FadeRemoved52
FadeSounds99
FadeTo187
FloatingText27
FogSet181
FogToggled131
ForceDeath30
GameEnded207
GameSpeed19
GoldEarned238
GoldGained37
GoldRedirect7
GreyscaleWhenDead179
HealthBar216
HudDisabled197
HudHighlighted68
HudHighlightToggled83
InhibitorState45
InputLock138
InputLockToggled164
InventorySlot87
ItemAdded115
ItemUsed168
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight85
LeaveTeamSight235
LevelUp70
LoadingProgress25
Loadout44
MapPing91
MapProp218
MapPropChanged219
MatchIdentity153
MatchStarted203
MinimapHighlighted20
MinimapIcon226
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket233
MoveCamera39
MovementBounds6
MoveOrder118
MusicCue230
NavigationFlags72
NexusIdle4
NexusSkin120
ObjectiveHidden171
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight237
ParticlesCreated141
ParticleSource220
Path194
PathWithSpeed137
Pause170
PauseAnimation117
Paused170
PingPlaced71
PlayAnimation185
PlayEmote77
PlayerDisconnected161
QueryStatus23
QueryStatusAnswer142
QuestEvent215
QuestUpdated145
Reconnected16
ReconnectedInMatch165
RegionAdded124
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication205
ResourceColours154
Respawned78
RespawnPoint223
Resume10
Resumed10
ResyncEnded74
Revived49
Roster103
ScoreAdded227
ScreenTint229
SeatChampion101
SeatLoadProgress158
SeatName102
SelectObject184
ShieldAdded106
ShopHighlighted183
Shutdown240
SideTextHidden176
SideTextRefreshed186
SideTextShown169
SpawnBot217
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart102
SpawnUnit129
SpellCastAnswer190
SpellCharge242
SpellCooldown139
SpellIconChanged54
SpellInSlot116
SpellLevel95
SpellNameChanged53
SpellNumbers132
SpellOffsetTargetChanged55
SpellRangeChanged241
SpellTargetingChanged26
SpellUpgraded24
StartGame96
StatisticIncremented228
StatsRequest90
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus174
SurrenderVote173
SurrenderVoteCalled211
SwapItems35
SwapItemsAnswer69
TargetableChanged239
TargetHeldChampion201
TargetUnit110
TeamChanged225
TeamScore222
TipEvent113
TipShown89
TransientAck177
TutorialChatLine2
TutorialPopup188
TutorialPopupClosed214
TutorialShopOpened97
UiHighlight212
UnitDied167
UnitHighlighted93
UnitHighlightRemoved189
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync88
VictoryDance206
VoiceEvent126
VoiceEventDone5
VoiceOverride159
VolumeMuted41
WaypointAck123
WaypointGroup101
WaypointGroupAtSpeed104
WorldEvent75

Against 1.0.0.135

Where a build from 1.0.0.136 up to, not including, 1.0.0.138 differs from one from 1.0.0.135 up to, not including, 1.0.0.136. Anything not named here is the same in both.

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • CampCleared (vectors: one-on-1-0-0-136)
    • Its command is 206 in 1.0.0.135 and 204 in 1.0.0.136–1.0.0.137.
    • does is in 1.0.0.136–1.0.0.137 (1-byte bits), after camp, and not in 1.0.0.135.
    • unit is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • active is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
  • FaceDirection (vectors: one-on-1-0-0-136)
    • how is in 1.0.0.136–1.0.0.137 (1-byte bits), after towardZ, and not in 1.0.0.135.
  • FacePosition (vectors: one-on-1-0-0-136)
    • unused is in 1.0.0.136–1.0.0.137 (u8), after directionZ, and not in 1.0.0.135.
  • MissileCourse
    • unused is in 1.0.0.136–1.0.0.137 (u8) at the start, and not in 1.0.0.135.
    • driver is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • kind is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • target is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • height is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • targetX is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • targetY is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • targetZ is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • motionA is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • motionB is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • motionC is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • motionD is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.
    • last is in 1.0.0.135 and not in 1.0.0.136–1.0.0.137.

1.0.0.138

Client builds from 1.0.0.138 up to, not including, 1.0.0.139. Patch notes: V1.0.0.138.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1381004e70d7e22026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ParticleEnterTeamSight, ShopEnabled, SoftReconnect, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage.

Every message of this range (221)
MessageCommand
AfkWarning195
AnimationOverrides113
Announcement136
AppearanceCleared212
AppearancePopped109
AppearancePushed162
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick234
BotState182
BotTargets111
BuildingDied145
BuyItem138
Camera48
CameraAck46
CameraBehaviour121
CameraLock137
CameraLockSet127
CampCleared206
CampOpened246
CancelTargeting142
CapturePointChanged223
CastSpell165
ChainTargets114
ChampionDied100
ChampionStats77
CharacterSelected201
Chat0
ClientEvent174
ClientFinished148
ClientReady88
ClientVersion200
ClockConvergence124
ClockReply8
ClockSync204
CloseShop15
CooldownSet141
CreateChampion82
CreateNeutral105
CreateTurret168
Damage107
DeathHistory36
DestroyMissile96
EffectAdded194
EffectAddedGroup110
EffectCount31
EffectCountGroup202
EffectRemoved130
EffectRemovedGroup158
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight184
EnterSight197
EnterTeamSight236
Exit151
ExperienceGained17
FaceDirection86
FacePosition86
FadeMinions215
FadeRemoved52
FadeSounds101
FadeTo189
FloatingText27
FogSet183
FogToggled133
ForceDeath30
GameEnded209
GameSpeed19
GoldEarned240
GoldGained37
GoldRedirect7
GreyscaleWhenDead181
HealthBar218
HudDisabled199
HudHighlighted68
HudHighlightToggled85
InhibitorState45
InputLock140
InputLockToggled166
InventorySlot89
ItemAdded117
ItemUsed170
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight87
LeaveTeamSight237
LevelUp70
LoadingProgress25
Loadout44
MapPing93
MapProp220
MapPropChanged221
MatchIdentity155
MatchStarted205
MinimapHighlighted20
MinimapIcon228
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket235
MoveCamera39
MovementBounds6
MoveOrder120
MusicCue232
NavigationFlags72
NexusIdle4
NexusSkin122
ObjectiveHidden173
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight239
ParticlesCreated143
ParticleSource222
Path196
PathWithSpeed139
Pause172
PauseAnimation119
Paused172
PingPlaced71
PlayAnimation187
PlayEmote78
PlayerDisconnected163
QueryStatus23
QueryStatusAnswer144
QuestEvent217
QuestUpdated147
Reconnected16
ReconnectedInMatch167
RegionAdded126
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication207
ResourceColours156
Respawned80
RespawnPoint225
Resume10
Resumed10
ResyncEnded75
Revived49
Roster103
ScoreAdded229
ScreenTint231
SeatChampion101
SeatLoadProgress160
SeatName102
SelectObject186
ShieldAdded108
ShopHighlighted185
Shutdown242
SideTextHidden178
SideTextRefreshed188
SideTextShown171
SpawnBot219
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart104
SpawnUnit131
SpellCastAnswer192
SpellCharge243
SpellCooldown141
SpellIconChanged54
SpellInSlot118
SpellLevel97
SpellNameChanged53
SpellNumbers134
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame98
StatisticIncremented230
StatsRequest92
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus176
SurrenderVote175
SurrenderVoteCalled213
SwapItems35
SwapItemsAnswer69
TargetableChanged241
TargetHeldChampion203
TargetUnit112
TeamChanged227
TeamScore224
TipEvent115
TipShown91
TransientAck179
TutorialChatLine2
TutorialPopup190
TutorialPopupClosed216
TutorialShopOpened99
UiHighlight214
UnitDied169
UnitHighlighted95
UnitHighlightRemoved191
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync90
VictoryDance208
VoiceCommand74
VoiceEvent128
VoiceEventDone5
VoiceOverride161
VolumeMuted41
WaypointAck125
WaypointGroup103
WaypointGroupAtSpeed106
WorldEvent76

Against 1.0.0.136–1.0.0.137

Where a build from 1.0.0.138 up to, not including, 1.0.0.139 differs from one from 1.0.0.136 up to, not including, 1.0.0.138. Anything not named here is the same in both.

In 1.0.0.138, not in 1.0.0.136–1.0.0.137

MessageSent byCommandWhat it does
CampOpenedserver246 on eventsOpen a camp of units that belong to no side
VoiceCommandserver74 on eventsWhat a server sends about a voice command a champion gave

In 1.0.0.136–1.0.0.137, not in 1.0.0.138

MessageSent byCommand it had
SpellRangeChangedserver241 on events

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.136–1.0.0.1371.0.0.138Messages
clock122124ClockConvergence
events74–7675–77ResyncEnded, ChampionStats
events78–24080–242Respawned, CreateChampion, HudHighlightToggled, FaceDirection, LeaveSight, InventorySlot, VersionSync, TipShown, UnitHighlighted, DestroyMissile, SpellLevel, StartGame, ChampionDied, FadeSounds, SpawnStart, WaypointGroupAtSpeed, ShieldAdded, AppearancePopped, EffectAddedGroup, BotTargets, TargetUnit, AnimationOverrides, ChainTargets, SpellInSlot, PauseAnimation, CameraBehaviour, NexusSkin, RegionAdded, CameraLockSet, SpawnUnit, FogToggled, SpellNumbers, Announcement, PathWithSpeed, InputLock, SpellCooldown, CancelTargeting, ParticlesCreated, QueryStatusAnswer, QuestUpdated, MatchIdentity, ResourceColours, VoiceOverride, AppearancePushed, PlayerDisconnected, InputLockToggled, CreateTurret, ItemUsed, SideTextShown, Paused, ObjectiveHidden, SurrenderStatus, SideTextHidden, GreyscaleWhenDead, BotState, FogSet, ShopHighlighted, PlayAnimation, SideTextRefreshed, FadeTo, TutorialPopup, UnitHighlightRemoved, EffectAdded, AfkWarning, Path, HudDisabled, EffectCountGroup, TargetHeldChampion, ClockSync, MatchStarted, VictoryDance, GameEnded, AppearanceCleared, SurrenderVoteCalled, UiHighlight, FadeMinions, HealthBar, SpawnBot, MapProp, MapPropChanged, ParticleSource, CapturePointChanged, TeamScore, RespawnPoint, TeamChanged, MinimapIcon, ScoreAdded, StatisticIncremented, ScreenTint, MusicCue, BotKick, EnterTeamSight, LeaveTeamSight, ParticleLeaveTeamSight, GoldEarned, TargetableChanged, Shutdown
requests7778PlayEmote
requests84–23386–235FacePosition, ClientReady, StatsRequest, MapPing, TutorialShopOpened, TipEvent, WaypointAck, CameraLock, BuyItem, CooldownSet, ClientFinished, Exit, CastSpell, ReconnectedInMatch, Pause, SurrenderVote, TransientAck, SelectObject, ClientVersion, CharacterSelected, TutorialPopupClosed, QuestEvent, ModulePacket
transient101–205103–207WaypointGroup, SeatLoadProgress, Replication

Laid out differently

  • BuildingDied (vectors: one-on-1-0-0-138)
    • Its command is 143 in 1.0.0.136–1.0.0.137 and 145 in 1.0.0.138.
    • lastChampion is in 1.0.0.138 (u32), after attacker, and not in 1.0.0.136–1.0.0.137.
  • CampCleared (vectors: one-on-1-0-0-138)
    • Its command is 204 in 1.0.0.136–1.0.0.137 and 206 in 1.0.0.138.
    • killer is in 1.0.0.138 (u32) at the start, and not in 1.0.0.136–1.0.0.137.
    • does names bit 0 active in 1.0.0.136–1.0.0.137 and speak in 1.0.0.138.
  • ClientEvent (vectors: buff-on-1-0-0-138, consumable-bought-on-1-0-0-138, critical-strike-on-1-0-0-138, damage-dealt-on-1-0-0-138, damage-taken-on-1-0-0-138, death-assist-on-1-0-0-138, died-on-1-0-0-138, gold-earned-on-1-0-0-138, gold-spent-on-1-0-0-138, heal-cast-on-1-0-0-138, heal-on-1-0-0-138, item-bought-on-1-0-0-138, item-callout-on-1-0-0-138, killing-spree-on-1-0-0-138, one-on-1-0-0-138, removed-on-1-0-0-138)
    • Its command is 172 in 1.0.0.136–1.0.0.137 and 174 in 1.0.0.138.
    • event takes 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 78 surrenderVoteStarted, 79 surrenderVoteCast, 80 surrenderAlreadyVoted, 81 surrenderCountdown, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 113 particleLimit in 1.0.0.138 and not in 1.0.0.136–1.0.0.137.
    • event takes 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 itemCallout, 77 surrenderVoteStarted, 78 surrenderVoteCast, 79 surrenderAlreadyVoted, 80 surrenderCountdown, 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured in 1.0.0.136–1.0.0.137 and not in 1.0.0.138.
    • other is in 1.0.0.138 (u32), after subject, and not in 1.0.0.136–1.0.0.137.
    • stage is present when event = 3 in 1.0.0.136–1.0.0.137, and present when event = 4 in 1.0.0.138.
    • damage is present when event = 13 or 14 in 1.0.0.136–1.0.0.137, and present when event = 14 or 15 in 1.0.0.138.
    • spent is present when event = 21 in 1.0.0.136–1.0.0.137, and present when event = 22 in 1.0.0.138.
    • value is present when event = 23 or 75 in 1.0.0.136–1.0.0.137, and present when event = 24 or 76 in 1.0.0.138.
    • critical is present when event = 24 in 1.0.0.136–1.0.0.137, and present when event = 25 in 1.0.0.138.
    • spree is present when event = 42 in 1.0.0.136–1.0.0.137, and present when event = 43 in 1.0.0.138.
    • earned is present when event = 22 in 1.0.0.136–1.0.0.137, and present when event = 23 in 1.0.0.138.
    • heal is present when event = 39 or 40 in 1.0.0.136–1.0.0.137, and present when event = 40 or 41 in 1.0.0.138.
    • effect is present when event = 41 in 1.0.0.136–1.0.0.137, and present when event = 42 in 1.0.0.138.
    • assist is present when event = 61 in 1.0.0.136–1.0.0.137, and present when event = 62 in 1.0.0.138.
    • kill is present when event = 0 in 1.0.0.136–1.0.0.137, and present when event = 1 in 1.0.0.138.
    • callout is present when event = 76 in 1.0.0.136–1.0.0.137, and present when event = 77 in 1.0.0.138.
    • callout.side is in 1.0.0.138 (u32), after callout.second, and not in 1.0.0.136–1.0.0.137.
  • CreateNeutral
    • Its command is 103 in 1.0.0.136–1.0.0.137 and 105 in 1.0.0.138.
    • effectSide is in 1.0.0.138 (u32), after camp, and not in 1.0.0.136–1.0.0.137.
    • revealEvent is in 1.0.0.138 (i32), after effectSide, and not in 1.0.0.136–1.0.0.137.
  • Damage
    • Its command is 105 in 1.0.0.136–1.0.0.137 and 107 in 1.0.0.138.
    • damageKind is in 1.0.0.138 (1-byte bits), after amount, and not in 1.0.0.136–1.0.0.137.
  • DeathHistory
    • entries[].event takes 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 113 particleLimit in 1.0.0.138 and not in 1.0.0.136–1.0.0.137.
    • entries[].event takes 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 itemCallout, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.136–1.0.0.137 and not in 1.0.0.138.
    • entries[].stage is present when event = 3 in 1.0.0.136–1.0.0.137, and present when event = 4 in 1.0.0.138.
    • entries[].damage is present when event = 13 or 14 in 1.0.0.136–1.0.0.137, and present when event = 14 or 15 in 1.0.0.138.
    • entries[].spent is present when event = 21 in 1.0.0.136–1.0.0.137, and present when event = 22 in 1.0.0.138.
    • entries[].value is present when event = 23 or 75 in 1.0.0.136–1.0.0.137, and present when event = 24 or 76 in 1.0.0.138.
    • entries[].critical is present when event = 24 in 1.0.0.136–1.0.0.137, and present when event = 25 in 1.0.0.138.
    • entries[].spree is present when event = 42 in 1.0.0.136–1.0.0.137, and present when event = 43 in 1.0.0.138.
    • entries[].earned is present when event = 22 in 1.0.0.136–1.0.0.137, and present when event = 23 in 1.0.0.138.
    • entries[].heal is present when event = 39 or 40 in 1.0.0.136–1.0.0.137, and present when event = 40 or 41 in 1.0.0.138.
    • entries[].effect is present when event = 41 in 1.0.0.136–1.0.0.137, and present when event = 42 in 1.0.0.138.
    • entries[].assist is present when event = 61 in 1.0.0.136–1.0.0.137, and present when event = 62 in 1.0.0.138.
    • entries[].kill is present when event = 0 in 1.0.0.136–1.0.0.137, and present when event = 1 in 1.0.0.138.
    • entries[].callout is present when event = 76 in 1.0.0.136–1.0.0.137, and present when event = 77 in 1.0.0.138.
    • entries[].callout.side is in 1.0.0.138 (u32), after entries[].callout.second, and not in 1.0.0.136–1.0.0.137.
  • EffectRemoved
    • Its command is 128 in 1.0.0.136–1.0.0.137 and 130 in 1.0.0.138.
    • timeLeft is in 1.0.0.138 (f32), after effect, and not in 1.0.0.136–1.0.0.137.
  • EffectRemovedGroup (vectors: one-on-1-0-0-138)
    • Its command is 156 in 1.0.0.136–1.0.0.137 and 158 in 1.0.0.138.
    • entries[].timeLeft is in 1.0.0.138 (f32), after entries[].slot, and not in 1.0.0.136–1.0.0.137.
  • EnterLocalSight (vectors: another-on-1-0-0-138, one-on-1-0-0-138)
    • Its command is 182 in 1.0.0.136–1.0.0.137 and 184 in 1.0.0.138.
    • carried is in 1.0.0.138 (2-byte bits) at the start, and not in 1.0.0.136–1.0.0.137.
    • messages is in 1.0.0.138 (sized by carried.size × CarriedMessage), after carried, and not in 1.0.0.136–1.0.0.137.
  • EnterSight (vectors: a-fifth-on-1-0-0-138, a-fourth-on-1-0-0-138, a-third-on-1-0-0-138, another-on-1-0-0-138, one-on-1-0-0-138)
    • Its command is 195 in 1.0.0.136–1.0.0.137 and 197 in 1.0.0.138.
    • carried is in 1.0.0.138 (2-byte bits) at the start, and not in 1.0.0.136–1.0.0.137.
    • messages is in 1.0.0.138 (sized by carried.size × CarriedMessage), after carried, and not in 1.0.0.136–1.0.0.137.
    • view.appearanceCount is in 1.0.0.138 (u32), after view.shield, and not in 1.0.0.136–1.0.0.137.
    • view.appearance is in 1.0.0.138 (count in appearanceCount × Appearance), after view.appearanceCount, and not in 1.0.0.136–1.0.0.137.
    • view.targetable is in 1.0.0.138 (u8), after view.appearance, and not in 1.0.0.136–1.0.0.137.
    • view.targetableToTeam is in 1.0.0.138 (u32), after view.targetable, and not in 1.0.0.136–1.0.0.137.
  • FloatingText
    • style is in 1.0.0.138 (u32), after colour, and not in 1.0.0.136–1.0.0.137.
  • ItemAdded
    • Its command is 115 in 1.0.0.136–1.0.0.137 and 117 in 1.0.0.138.
    • activate is in 1.0.0.136–1.0.0.137 and not in 1.0.0.138.
  • MissileReport
    • speed is in 1.0.0.138 (f32), after age, and not in 1.0.0.136–1.0.0.137.
  • MissileState
    • age is in 1.0.0.138 (f32), after unitAtZ, and not in 1.0.0.136–1.0.0.137.
  • MoveOrder (vectors: a-path-of-3-points-on-1-0-0-138, hold-on-1-0-0-138, one-on-1-0-0-138)
    • Its command is 118 in 1.0.0.136–1.0.0.137 and 120 in 1.0.0.138.
    • targetY is in 1.0.0.136–1.0.0.137 and not in 1.0.0.138.
  • PingPlaced
    • how names bit 7 unused in 1.0.0.136–1.0.0.137 and speak in 1.0.0.138.
  • SpawnPet (vectors: one-on-1-0-0-138)
    • owner is in 1.0.0.138 (u32) at the start, and not in 1.0.0.136–1.0.0.137.
    • pet is in 1.0.0.136–1.0.0.137 and not in 1.0.0.138.
  • SpellCastAnswer (vectors: one-on-1-0-0-138)
    • Its command is 190 in 1.0.0.136–1.0.0.137 and 192 in 1.0.0.138.
    • endCharge is in 1.0.0.138 (u8), after syncId, and not in 1.0.0.136–1.0.0.137.
  • SpellCharge (vectors: one-on-1-0-0-138)
    • Its command is 242 in 1.0.0.136–1.0.0.137 and 243 in 1.0.0.138.
    • end is in 1.0.0.138 (u8), after flags, and not in 1.0.0.136–1.0.0.137.
  • StopAnimation
    • animation is in 1.0.0.138 (text, ended by a zero byte), after flags, and not in 1.0.0.136–1.0.0.137.
  • UnitDied (vectors: one-on-1-0-0-138)
    • Its command is 167 in 1.0.0.136–1.0.0.137 and 169 in 1.0.0.138.
    • kind is in 1.0.0.138 (u8), after standing, and not in 1.0.0.136–1.0.0.137.
  • UnitSpoke
    • unusedToo is in 1.0.0.138 (u32), after unused, and not in 1.0.0.136–1.0.0.137.
  • VoiceEvent
    • Its command is 126 in 1.0.0.136–1.0.0.137 and 128 in 1.0.0.138.
    • kind is in 1.0.0.138 (u8), after callback, and not in 1.0.0.136–1.0.0.137.
  • WorldEvent
    • Its command is 75 in 1.0.0.136–1.0.0.137 and 76 in 1.0.0.138.
    • event takes 0 removed, 1 died, 3 championDied, 5 championKill, 7 singleKill, 8 doubleKill, 14 damageTaken, 15 damageDealt, 22 goldSpent, 23 goldEarned, 24 consumableBought, 25 criticalStrike, 28 inhibitorKilled, 29 inhibitorDied, 30 inhibitorRespawningSoon, 32 turretKilled, 33 turretDied, 34 minionKilled, 35 minionDenied, 36 monsterKilled, 37 largeMonsterKilled, 38 nexusKilled, 39 nexusDied, 40 heal, 41 healCast, 42 buff, 43 killingSpree, 50 killDuringSpree, 57 doubleKillDuringSpree, 58 tripleKillDuringSpree, 59 quadraKillDuringSpree, 62 deathAssist, 63 playerQuit, 64 playerLeft, 65 playerReconnected, 76 itemBought, 77 itemCallout, 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 113 particleLimit in 1.0.0.138 and not in 1.0.0.136–1.0.0.137.
    • event takes 0 died, 2 championDied, 4 championKill, 6 singleKill, 7 doubleKill, 13 damageTaken, 14 damageDealt, 21 goldSpent, 22 goldEarned, 23 consumableBought, 24 criticalStrike, 27 inhibitorKilled, 28 inhibitorDied, 29 inhibitorRespawningSoon, 31 turretKilled, 32 turretDied, 33 minionKilled, 34 minionDenied, 35 monsterKilled, 36 largeMonsterKilled, 37 nexusKilled, 38 nexusDied, 39 heal, 40 healCast, 41 buff, 42 killingSpree, 49 killDuringSpree, 56 doubleKillDuringSpree, 57 tripleKillDuringSpree, 58 quadraKillDuringSpree, 61 deathAssist, 62 playerQuit, 63 playerLeft, 64 playerReconnected, 75 itemBought, 76 itemCallout, 80 surrenderCountdown, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened in 1.0.0.136–1.0.0.137 and not in 1.0.0.138.
    • stage is present when event = 3 in 1.0.0.136–1.0.0.137, and present when event = 4 in 1.0.0.138.
    • damage is present when event = 13 or 14 in 1.0.0.136–1.0.0.137, and present when event = 14 or 15 in 1.0.0.138.
    • spent is present when event = 21 in 1.0.0.136–1.0.0.137, and present when event = 22 in 1.0.0.138.
    • value is present when event = 23 or 75 in 1.0.0.136–1.0.0.137, and present when event = 24 or 76 in 1.0.0.138.
    • critical is present when event = 24 in 1.0.0.136–1.0.0.137, and present when event = 25 in 1.0.0.138.
    • spree is present when event = 42 in 1.0.0.136–1.0.0.137, and present when event = 43 in 1.0.0.138.
    • earned is present when event = 22 in 1.0.0.136–1.0.0.137, and present when event = 23 in 1.0.0.138.
    • heal is present when event = 39 or 40 in 1.0.0.136–1.0.0.137, and present when event = 40 or 41 in 1.0.0.138.
    • effect is present when event = 41 in 1.0.0.136–1.0.0.137, and present when event = 42 in 1.0.0.138.
    • assist is present when event = 61 in 1.0.0.136–1.0.0.137, and present when event = 62 in 1.0.0.138.
    • kill is present when event = 0 in 1.0.0.136–1.0.0.137, and present when event = 1 in 1.0.0.138.
    • callout is present when event = 76 in 1.0.0.136–1.0.0.137, and present when event = 77 in 1.0.0.138.
    • callout.side is in 1.0.0.138 (u32), after callout.second, and not in 1.0.0.136–1.0.0.137.

Chapters

  • In the joining chapter, a passage holds for 1.0.0.138 and not 1.0.0.136–1.0.0.137: A turret’s CreateTurret can come on its own or inside the EnterSight that brings the turret into view.
  • In the units chapter, a passage holds for 1.0.0.138 and not 1.0.0.136–1.0.0.137: Several of these arrive on their own or inside the EnterSight that brings the unit into view (see Vision): a client takes either.
  • In the vision chapter, a passage holds for 1.0.0.138 and not 1.0.0.136–1.0.0.137: EnterSight can also carry whole messages of the game family, such as the CreateTurret or CreateNeutral that makes the unit, each taking effect as though it had arrived on its own.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.138:

  • VoiceEventDone, its layout: “It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.”, where 1.0.0.136–1.0.0.137 has “A client sends it at once where it could not play the event.”

1.0.0.139

Client builds from 1.0.0.139 up to, not including, 1.0.0.140. Patch notes: V1.0.0.139.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1391004853ee402026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, MissileRetarget, ShopEnabled, SoftReconnect, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage.

Every message of this range (221)
MessageCommand
AfkWarning194
AnimationOverrides113
AppearanceCleared211
AppearancePopped109
AppearancePushed161
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick233
BotState181
BotTargets111
BuildingDied144
BuyItem137
Camera48
CameraAck46
CameraBehaviour121
CameraLock136
CameraLockSet127
CampCleared205
CampOpened245
CancelTargeting141
CapturePointChanged222
CastSpell164
ChainTargets114
ChampionDied100
ChampionStats77
CharacterSelected200
Chat0
ClientEvent173
ClientFinished147
ClientReady88
ClientVersion199
ClockConvergence124
ClockReply8
ClockSync203
CloseShop15
CooldownSet140
CreateChampion82
CreateNeutral105
CreateTurret167
Damage107
DeathHistory36
DestroyMissile96
EffectAdded193
EffectAddedGroup110
EffectCount31
EffectCountGroup201
EffectRemoved130
EffectRemovedGroup157
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight183
EnterSight196
EnterTeamSight235
Exit150
ExperienceGained17
FaceDirection86
FacePosition86
FadeMinions214
FadeRemoved52
FadeSounds101
FadeTo188
FloatingText27
FogSet182
FogToggled133
ForceDeath30
GameEnded208
GameSpeed19
GoldEarned239
GoldGained37
GoldRedirect7
GreyscaleWhenDead180
HealthBar217
HudDisabled198
HudHighlighted68
HudHighlightToggled85
InhibitorState45
InputLock139
InputLockToggled165
InventorySlot89
ItemAdded117
ItemUsed169
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight87
LeaveTeamSight236
LevelUp70
LoadingProgress25
Loadout44
MapPing93
MapProp219
MapPropChanged220
MatchIdentity154
MatchStarted204
MinimapHighlighted20
MinimapIcon227
MissileCourse66
MissileHits40
MissileReport65
MissileState65
ModulePacket234
MoveCamera39
MovementBounds6
MoveOrder120
MusicCue231
NavigationFlags72
NexusIdle4
NexusSkin122
ObjectiveHidden172
ObjectiveReplaced14
ObjectiveShown59
ParticleEnterTeamSight237
ParticleLeaveTeamSight238
ParticlesCreated142
ParticleSource221
Path195
PathWithSpeed138
Pause171
PauseAnimation119
Paused171
PingPlaced71
PlayAnimation186
PlayEmote78
PlayerDisconnected162
QueryStatus23
QueryStatusAnswer143
QuestEvent216
QuestUpdated146
Reconnected16
ReconnectedInMatch166
RegionAdded126
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication206
ResourceColours155
Respawned80
RespawnPoint224
Resume10
Resumed10
ResyncEnded75
Revived49
Roster103
ScoreAdded228
ScreenTint230
SeatChampion101
SeatLoadProgress159
SeatName102
SelectObject185
ShieldAdded108
ShopHighlighted184
Shutdown241
SideTextHidden177
SideTextRefreshed187
SideTextShown170
SpawnBot218
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart104
SpawnUnit131
SpellCastAnswer191
SpellCharge242
SpellCooldown140
SpellIconChanged54
SpellInSlot118
SpellLevel97
SpellNameChanged53
SpellNumbers134
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame98
StatisticIncremented229
StatsRequest92
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus175
SurrenderVote174
SurrenderVoteCalled212
SwapItems35
SwapItemsAnswer69
TargetableChanged240
TargetHeldChampion202
TargetUnit112
TeamChanged226
TeamScore223
TipEvent115
TipShown91
TransientAck178
TutorialChatLine2
TutorialPopup189
TutorialPopupClosed215
TutorialShopOpened99
UiHighlight213
UnitDied168
UnitHighlighted95
UnitHighlightRemoved190
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync90
VictoryDance207
VoiceCommand74
VoiceEvent128
VoiceEventDone5
VoiceOverride160
VolumeMuted41
WaypointAck125
WaypointGroup103
WaypointGroupAtSpeed106
WorldEvent76

Against 1.0.0.138

Where a build from 1.0.0.139 up to, not including, 1.0.0.140 differs from one from 1.0.0.138 up to, not including, 1.0.0.139. Anything not named here is the same in both.

In 1.0.0.139, not in 1.0.0.138

MessageSent byCommandWhat it does
ParticleEnterTeamSightserver237 on eventsWhat a server sends as a particle comes into what one side can see

In 1.0.0.138, not in 1.0.0.139

MessageSent byCommand it had
Announcementserver136 on events

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.139:

  • RegionAdded, its layout: “A region grants sight, blocks the way, or grows cover. A region matching one the client holds in clientId (after taking 4294967294 as 4294967295), sightRadius, the first three bits of does, extra, otherExtra and position only resets that one’s lifetime to the new one; its id is not compared, and nothing new is added.”, where 1.0.0.138 has “A region grants sight, blocks the way, or grows cover.”
  • RegionAdded, clientId: “The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.”, where 1.0.0.138 has “Unused; a client reads nothing here.”
  • RegionAdded, marker: “The region’s id, which RegionRemoved names; 0 has the client pick one of its own.”, where 1.0.0.138 has “The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.”
  • RegionAdded, does.unused: “Unused; a server writes zero. A client clears it itself before storing the region.”, where 1.0.0.138 has “Unused; a server writes zero.”
  • RegionAdded, extra: “Kept with the region as it stands, and compared in matching a region already held; what else it does is not recorded. A server writes zero.”, where 1.0.0.138 has “Kept with the region as it stands; what it does is not recorded. A server writes zero.”
  • RegionAdded, otherExtra: “Kept and compared the same way; a server writes zero.”, where 1.0.0.138 has “Kept the same way; a server writes zero.”
  • RegionAttached, its layout: “A region matching one the client holds in kind, sightRadius, the first three bits of does (as the client sets them itself), extra, otherExtra and unit only has its lifetime replaced by the new one; marker and clientId are not compared, and nothing new is added.”, where 1.0.0.138 has “A region matching one the client holds in view, sightRadius, the first three bits of does, marker, sightFrom and unit only gives that one the new lifetime.”
  • RegionAttached, clientId: “The client the region belongs to where kind is 2. A client takes 4294967294 as 4294967295, no client.”, where 1.0.0.138 has “Unused; a client reads nothing here.”
  • RegionAttached, unit: “The unit the region follows. Where the client does not hold the unit, it drops the whole message and makes no region.”, where 1.0.0.138 has “The unit the region follows. A client takes the region even where it does not hold the unit.”
  • RegionAttached, lifetime: “How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less; one that starts at zero or less goes at the client’s next update.”, where 1.0.0.138 has “How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less. Whether one that starts at zero or less is kept is not recorded.”
  • RegionAttached, marker: “The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own.”, where 1.0.0.138 has “The region’s id, which RegionRemoved names; 4294967295 has the client pick one of its own. A region sent again with the same id, kind and radius changes the one held rather than adding another.”
  • RegionAttached, extra: “Kept with the region, and compared in matching a region already held, so a region differing only here is added as a new one. A server writes zero.”, where 1.0.0.138 has “Kept with the region as it stands; what it does is not recorded. A server writes zero.”
  • RegionAttached, otherExtra: “Kept and compared the same way; a server writes zero.”, where 1.0.0.138 has “Kept the same way; a server writes zero.”

1.0.0.140

Client builds from 1.0.0.140 up to, not including, 1.0.0.141. Patch notes: V1.0.0.140.

Build checkedPassedFailedSkippedCommitDate
1.0.0.14010044f285112026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, ShopEnabled, SoftReconnect, SpellRangeChanged, SpellSlotChanged, StreamRequest, SystemMessage.

Every message of this range (222)
MessageCommand
AfkWarning194
AnimationOverrides113
AppearanceCleared211
AppearancePopped109
AppearancePushed161
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick233
BotState181
BotTargets111
BuildingDied144
BuyItem137
Camera48
CameraAck46
CameraBehaviour121
CameraLock136
CameraLockSet127
CampCleared205
CampOpened245
CancelTargeting141
CapturePointChanged222
CastSpell164
ChainTargets114
ChampionDied100
ChampionStats77
CharacterSelected200
Chat0
ClientEvent173
ClientFinished147
ClientReady88
ClientVersion199
ClockConvergence124
ClockReply8
ClockSync203
CloseShop15
CooldownSet140
CreateChampion82
CreateNeutral105
CreateTurret167
Damage107
DeathHistory36
DestroyMissile96
EffectAdded193
EffectAddedGroup110
EffectCount31
EffectCountGroup201
EffectRemoved130
EffectRemovedGroup157
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight183
EnterSight196
EnterTeamSight235
Exit150
ExperienceGained17
FaceDirection86
FacePosition86
FadeMinions214
FadeRemoved52
FadeSounds101
FadeTo188
FloatingText27
FogSet182
FogToggled133
ForceDeath30
GameEnded208
GameSpeed19
GoldEarned239
GoldGained37
GoldRedirect7
GreyscaleWhenDead180
HealthBar217
HudDisabled198
HudHighlighted68
HudHighlightToggled85
InhibitorState45
InputLock139
InputLockToggled165
InventorySlot89
ItemAdded117
ItemUsed169
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight87
LeaveTeamSight236
LevelUp70
LoadingProgress25
Loadout44
MapPing93
MapProp219
MapPropChanged220
MatchIdentity154
MatchStarted204
MinimapHighlighted20
MinimapIcon227
MissileCourse66
MissileHits40
MissileReport65
MissileRetarget246
MissileState65
ModulePacket234
MoveCamera39
MovementBounds6
MoveOrder120
MusicCue231
NavigationFlags72
NexusIdle4
NexusSkin122
ObjectiveHidden172
ObjectiveReplaced14
ObjectiveShown59
ParticleEnterTeamSight237
ParticleLeaveTeamSight238
ParticlesCreated142
ParticleSource221
Path195
PathWithSpeed138
Pause171
PauseAnimation119
Paused171
PingPlaced71
PlayAnimation186
PlayEmote78
PlayerDisconnected162
QueryStatus23
QueryStatusAnswer143
QuestEvent216
QuestUpdated146
Reconnected16
ReconnectedInMatch166
RegionAdded126
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication206
ResourceColours155
Respawned80
RespawnPoint224
Resume10
Resumed10
ResyncEnded75
Revived49
Roster103
ScoreAdded228
ScreenTint230
SeatChampion101
SeatLoadProgress159
SeatName102
SelectObject185
ShieldAdded108
ShopHighlighted184
Shutdown241
SideTextHidden177
SideTextRefreshed187
SideTextShown170
SpawnBot218
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart104
SpawnUnit131
SpellCastAnswer191
SpellCharge242
SpellCooldown140
SpellIconChanged54
SpellInSlot118
SpellLevel97
SpellNameChanged53
SpellNumbers134
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame98
StatisticIncremented229
StatsRequest92
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus175
SurrenderVote174
SurrenderVoteCalled212
SwapItems35
SwapItemsAnswer69
TargetableChanged240
TargetHeldChampion202
TargetUnit112
TeamChanged226
TeamScore223
TipEvent115
TipShown91
TransientAck178
TutorialChatLine2
TutorialPopup189
TutorialPopupClosed215
TutorialShopOpened99
UiHighlight213
UnitDied168
UnitHighlighted95
UnitHighlightRemoved190
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync90
VictoryDance207
VoiceCommand74
VoiceEvent128
VoiceEventDone5
VoiceOverride160
VolumeMuted41
WaypointAck125
WaypointGroup103
WaypointGroupAtSpeed106
WorldEvent76

Against 1.0.0.139

Where a build from 1.0.0.140 up to, not including, 1.0.0.141 differs from one from 1.0.0.139 up to, not including, 1.0.0.140. Anything not named here is the same in both.

In 1.0.0.140, not in 1.0.0.139

MessageSent byCommandWhat it does
MissileRetargetserver246 on eventsChange what a missile flies at

Laid out differently

  • Autocast
    • criticalSlot is in 1.0.0.140 (i8), after slot, and not in 1.0.0.139.
  • ClientEvent
    • event takes 116 particleLimit in 1.0.0.140 and not in 1.0.0.139.
    • event takes 113 particleLimit in 1.0.0.139 and not in 1.0.0.140.
  • DeathHistory (vectors: one-on-1-0-0-140)
    • entries[].event takes 116 particleLimit in 1.0.0.140 and not in 1.0.0.139.
    • entries[].event takes 113 particleLimit in 1.0.0.139 and not in 1.0.0.140.
  • ModulePacket (vectors: one-on-1-0-0-140)
    • kind is u16 in 1.0.0.139 and u8 in 1.0.0.140.
    • extra is in 1.0.0.140 (u8), after kind, and not in 1.0.0.139.
    • data is bytes, 1024 in 1.0.0.139 and bytes, sized by length in 1.0.0.140.
  • SpawnUnit (vectors: one-on-1-0-0-140)
    • flags has laneMinion at bit 2 in 1.0.0.140, and not in 1.0.0.139.
    • flags.bot is at bit 2 in 1.0.0.139 and at bit 3 in 1.0.0.140.
    • flags.targetable is at bit 3 in 1.0.0.139 and at bit 4 in 1.0.0.140.
    • flags.unused is at bit 4, 4 bits wide, in 1.0.0.139 and at bit 5, 3 bits wide, in 1.0.0.140.
  • VersionSync
    • reporting has matched at bit 1 in 1.0.0.140, and not in 1.0.0.139.
    • reporting.unused is at bit 1, 7 bits wide, in 1.0.0.139 and at bit 2, 6 bits wide, in 1.0.0.140.
  • WorldEvent
    • event takes 116 particleLimit in 1.0.0.140 and not in 1.0.0.139.
    • event takes 113 particleLimit in 1.0.0.139 and not in 1.0.0.140.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: No region id stands for no region.
  • In the objects chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: Nothing a player sees depends on it.
  • In the objects chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: | Map | Holds | | —–– | ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– | | 1, 2, 6 | the six Barracks names, HQ_T1, HQ_T2, orderShop01, chaosShop01, spawn points named __P_… | | 3 | Barracks_T1_C1, Barracks_T2_C1, HQ_T1, HQ_T2, OrderShop01, ChaosShop01, ____P_Chaos_Spawn_Barracks__C01 | | 4 | Barracks_T1_L1, Barracks_T1_R1, Barracks_T2_L1, Barracks_T2_R1, HQ_T1, HQ_T2, OrderShop01, ChaosShop01, spawn points named __P_… | | 8 | orderShop01, chaosShop01 |
  • In the space chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: FaceDirection turns the unit at once where bit 0 of its flags is clear, and toward that direction at its own pace where it is set.
  • In the space chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client has data for maps 1 to 4, 6 and 8: | map | Origin of its paths | | —– | —————–– | | 1 | 6991, 7223 | | 2 | 6991, 7223 | | 3 | 7479, 7147 | | 4 | 6710, 6696 | | 6 | 6991, 7223 | | 8 | 6947, 6609 |
  • In the values chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A cast’s slot also takes 64 to 69, for a basic attack: 64 is the champion’s basic attack, 65 to 67 its other basic attacks, 68 its critical attack and 69 a miss.
  • In the values chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A champion’s own book ends at slot 51.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: The client has maps 1, 2, 3, 4, 6 and 8.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: CreateTurret names a building by its name with _A after it.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client fails on a CreateTurret naming no building, and a server MUST NOT send one.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: In the section’s name, n is how many players and bots the side has.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A champion’s spells and attacks are in DATA/Spells/<Spell>.inibin with all other spells.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client writes its own client id where its player id goes in LoadingProgress, in the low four bytes with zeros above.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A card draws a seat’s icon only where it is 0 or more.
  • In the vision chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: EnterSight states everything a client needs to draw the unit at once: its looks, its shields, where it stands or which path it walks, and, in what follows, its health and resource.
  • In the vision chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: EnterLocalSight states the unit’s resource beside its health.
  • In the movement chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A server MUST send the WaypointGroup that answers a MoveOrder on the transient channel.
  • In the movement chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A server MUST NOT send NavigationFlags: a client fails on the first one a match brings.
  • In the replication chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: ## A champion | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 0 | 0 | Gold in hand | float | | 0 | 1 to 2 | Which slots can be cast from: the champion’s own, then the second set | u32 | | 0 | 3 to 6 | What the spell in slots 0 to 3 costs | float | | 0 | 7 to 14 | What the spell in slots 42 to 49 costs | float | | 0 | 15 to 16 | What the spell in slots 0 and 1 of the second set costs | float | | 1 | 0 | What the champion is doing, as a set of bits | u32 | | 1 | 1 to 3 | Whether it is proof against spells, proof against all harm, and proof against strikes | u32 | | 1 | 4 | Damage it deals by striking | float | | 1 | 5 | Damage its spells deal before modifiers | float | | 1 | 6 | How often it turns a blow aside | float | | 1 | 7 | How often it strikes critically | float | | 1 | 8 | Armour | float | | 1 | 9 | Spell resistance | float | | 1 | 10 to 11 | How fast health and resource return | float | | 1 | 12 | How far it strikes from | float | | 1 | 13 to 15 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 16 to 17 | Flat and percent reduction of the spell damage it takes | float | | 1 | 18 | A multiplier on how fast it strikes | float | | 1 | 19 | A flat addition to how far it casts | float | | 1 | 20 | A modifier on its cooldowns | float | | 1 | 21 to 22 | How much armour it cuts through, flat then as a percent | float | | 1 | 23 to 24 | How much spell resistance it cuts through, flat then as a percent | float | | 1 | 25 | Life steal | float | | 1 | 26 | Spell vamp | float | | 3 | 0 to 1 | Health and resource as they stand | float | | 3 | 2 to 3 | Health and resource at their greatest | float | | 3 | 4 | Experience | float | | 3 | 5 to 6 | A flat and a percent addition to how far it sees | float | | 3 | 7 | How fast it moves | float | | 3 | 8 | A value whose meaning is not recorded | float | | 3 | 9 | Level | u32 | | 3 | 10 | Kills taken from no side | u32 | Bit n of either set of slots that can be cast from stands for slot n.
  • In the replication chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A server grants experience with ExperienceGained, and MUST name a champion in it: a client fails on one naming any other unit.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client shows a tournament’s hold, crediting the seat that asked, where the message says it is one.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client announces in chat who resumed the match.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: Input stays locked during the countdown.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client moves no neutral unit for VictoryDance.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: The action of BotKick that means leave is 4.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client dropped during play connects again at once by itself, for any reason but the one that means its player was away, and shows its player that it is reconnecting while it does.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: Once loading is done, a client gives up on a connection where a reliable message it sent goes unacknowledged for 15 seconds.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: Before loading is done, a client waits 60 seconds for an acknowledgement rather than 15.
  • In the combat chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: The health bar moves as replication states the health.
  • In the combat chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client draws the world without colour for GreyscaleWhenDead only under one of its display settings, and otherwise ignores it.
  • In the combat chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client also sends UseObject for a unit its champion is attacking, as that unit changes side.
  • In the shop chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: Suggested items are kept per champion and chosen by the mode VersionSync names, whatever the map.
  • In the communication chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client plays the voice line VoiceCommand names, unless its player has muted the champion’s player.
  • In the spectating chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A watching client first asks the service for its version, and ends by asking it to stop.
  • In the spectating chapter, a passage holds for 1.0.0.140 and not 1.0.0.139: A client fetches the first key frame’s information after the chunks of setting up.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.140:

  • Chat, speaker: “The client id the line is from. A client sends its own. From a server, a client shows the line with the name and champion of the player holding that client id, coloured for their side, and with no name for a client id nobody holds; 4294967295 shows the line as said to everyone with no name, less its first three bytes.”, where 1.0.0.139 has “The client id the line is from. A client sends its own. From a server, a client shows the line with the name of the player holding that client id, coloured for whether that player is on its own side, and with no name for a client id nobody holds; 4294967295 shows the whole line with no name and no tag. A client does not show a line from a player its own player has ignored or muted.”
  • Chat, audience: “1 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone, except that where VersionSync hides all chat and the player has not turned it back on, a client does not show the line unless speaker is 4294967295. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise.”, where 1.0.0.139 has “1 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise.”

1.0.0.141

Client builds from 1.0.0.141 up to, not including, 1.0.0.142. Patch notes: V1.0.0.141.

Build checkedPassedFailedSkippedCommitDate
1.0.0.14110049377c822026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, SoftReconnect, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (224)
MessageCommand
AfkWarning196
AnimationOverrides113
AppearanceCleared213
AppearancePopped109
AppearancePushed161
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick235
BotState181
BotTargets111
BuildingDied144
BuyItem137
Camera48
CameraAck46
CameraBehaviour121
CameraLock136
CameraLockSet127
CampCleared207
CampOpened247
CancelTargeting141
CapturePointChanged224
CastSpell164
ChainTargets114
ChampionDied100
ChampionStats77
CharacterSelected202
Chat0
ClientEvent173
ClientFinished147
ClientReady88
ClientVersion201
ClockConvergence124
ClockReply8
ClockSync205
CloseShop15
CooldownSet140
CreateChampion82
CreateNeutral105
CreateTurret167
Damage107
DeathHistory36
DestroyMissile96
EffectAdded195
EffectAddedGroup110
EffectCount31
EffectCountGroup203
EffectRemoved130
EffectRemovedGroup157
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight185
EnterSight198
EnterTeamSight237
Exit150
ExperienceGained17
FaceDirection86
FacePosition86
FadeMinions216
FadeRemoved52
FadeSounds101
FadeTo190
FloatingText27
FogSet182
FogToggled133
ForceDeath30
GameEnded210
GameSpeed19
GoldEarned241
GoldGained37
GoldRedirect7
GreyscaleWhenDead180
HealthBar219
HudDisabled200
HudHighlighted68
HudHighlightToggled85
InhibitorState45
InputLock139
InputLockToggled165
InventorySlot89
ItemAdded117
ItemUsed169
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight87
LeaveTeamSight238
LevelUp70
LoadingProgress25
Loadout44
MapPing93
MapProp221
MapPropChanged222
MatchIdentity154
MatchStarted206
MinimapHighlighted20
MinimapIcon229
MissileCourse66
MissileHits40
MissileReport65
MissileRetarget252
MissileState65
ModulePacket236
MoveCamera39
MovementBounds6
MoveOrder120
MusicCue233
NavigationFlags72
NexusIdle4
NexusSkin122
ObjectiveHidden172
ObjectiveReplaced14
ObjectiveShown59
ParticleEnterTeamSight239
ParticleLeaveTeamSight240
ParticlesCreated142
ParticleSource223
Path197
PathWithSpeed138
Pause171
PauseAnimation119
Paused171
PingPlaced71
PlayAnimation188
PlayEmote78
PlayerDisconnected162
QueryStatus23
QueryStatusAnswer143
QuestEvent218
QuestUpdated146
Reconnected16
ReconnectedInMatch166
RegionAdded126
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication208
ResourceColours155
Respawned80
RespawnPoint226
Resume10
Resumed10
ResyncEnded75
Revived49
Roster103
ScoreAdded230
ScreenTint232
SeatChampion101
SeatLoadProgress159
SeatName102
SelectObject187
ShieldAdded108
ShopEnabled253
ShopHighlighted186
Shutdown243
SideTextHidden177
SideTextRefreshed189
SideTextShown170
SpawnBot220
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart104
SpawnUnit131
SpellCastAnswer193
SpellCharge244
SpellCooldown140
SpellIconChanged54
SpellInSlot118
SpellLevel97
SpellNameChanged53
SpellNumbers134
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame98
StatisticIncremented231
StatsRequest92
StatTick42
StopAnimation43
StopAttack57
StreamRequest248
SurrenderStatus175
SurrenderVote174
SurrenderVoteCalled214
SwapItems35
SwapItemsAnswer69
TargetableChanged242
TargetHeldChampion204
TargetUnit112
TeamChanged228
TeamScore225
TipEvent115
TipShown91
TransientAck178
TutorialChatLine2
TutorialPopup191
TutorialPopupClosed217
TutorialShopOpened99
UiHighlight215
UnitDied168
UnitHighlighted95
UnitHighlightRemoved192
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync90
VictoryDance209
VoiceCommand74
VoiceEvent128
VoiceEventDone5
VoiceOverride160
VolumeMuted41
WaypointAck125
WaypointGroup103
WaypointGroupAtSpeed106
WorldEvent76

Against 1.0.0.140

Where a build from 1.0.0.141 up to, not including, 1.0.0.142 differs from one from 1.0.0.140 up to, not including, 1.0.0.141. Anything not named here is the same in both.

In 1.0.0.141, not in 1.0.0.140

MessageSent byCommandWhat it does
ShopEnabledserver253 on eventsSay whether a champion can use the shop
StreamRequestclient248 on requestsWhat a client watching a match streamed over its connection (see spec/spectating.md) sends each time the server answers its registration, asking for the stream from a point

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • DeathHistory (vectors: one-on-1-0-0-141)
    • sourceType is u32 in 1.0.0.140 and u8 in 1.0.0.141.
  • FadeTo
    • Its command is 188 in 1.0.0.140 and 190 in 1.0.0.141.
    • The same fields come in another order in 1.0.0.141.
  • ModulePacket
    • Its command is 234 in 1.0.0.140 and 236 in 1.0.0.141.
    • extra is in 1.0.0.140 and not in 1.0.0.141.
  • MoveOrder
    • movement is record in 1.0.0.140 and Movement in 1.0.0.141.
    • movement.header is in 1.0.0.140 and not in 1.0.0.141.
    • movement.path is in 1.0.0.140 and not in 1.0.0.141.

Structs

  • Movement
    • header is 4-byte bits in 1.0.0.140 and 1-byte bits in 1.0.0.141.
    • header.pointCount is at bit 16 in 1.0.0.140 and at bit 1 in 1.0.0.141.
    • header has unused at bit 1 in 1.0.0.140, and not in 1.0.0.141.
    • header has unusedHigh at bit 23 in 1.0.0.140, and not in 1.0.0.141.
  • MovementAtSpeed
    • header is 4-byte bits in 1.0.0.140 and 1-byte bits in 1.0.0.141.
    • header.pointCount is at bit 16 in 1.0.0.140 and at bit 1 in 1.0.0.141.
    • header has unused at bit 1 in 1.0.0.140, and not in 1.0.0.141.
    • header has unusedHigh at bit 23 in 1.0.0.140, and not in 1.0.0.141.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: No region id stands for no region.
  • In the objects chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: | Map | Holds | | —–– | ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– | | 1, 2, 6 | the six Barracks names, HQ_T1, HQ_T2, orderShop01, chaosShop01, spawn points named __P_… | | 3 | Barracks_T1_C1, Barracks_T2_C1, HQ_T1, HQ_T2, OrderShop01, ChaosShop01, ____P_Chaos_Spawn_Barracks__C01 | | 4 | Barracks_T1_L1, Barracks_T1_R1, Barracks_T2_L1, Barracks_T2_R1, HQ_T1, HQ_T2, OrderShop01, ChaosShop01, spawn points named __P_… | | 8 | orderShop01, chaosShop01 |
  • In the objects chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A WaypointGroup or WaypointGroupAtSpeed path for a unit not held is never applied, and a client does not read past its points: it reads the next path from inside the one it skipped, so every later path of that message comes out wrong.
  • In the ordering chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client that meets a unit it does not hold in a WaypointGroup or WaypointGroupAtSpeed leaves that unit’s path unread, reads every later movement in the group from the wrong place, and answers the group all the same.
  • In the space chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client has data for maps 1 to 4, 6 and 8: | map | Origin of its paths | | —– | —————–– | | 1 | 6991, 7223 | | 2 | 6991, 7223 | | 3 | 7479, 7147 | | 4 | 6710, 6696 | | 6 | 6991, 7223 | | 8 | 6947, 6609 |
  • In the time chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client runs no clock but the match clock, and takes whatever speed GameSpeed gives.
  • In the values chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A cast’s slot also takes 64 to 69, for a basic attack: 64 is the champion’s basic attack, 65 to 67 its other basic attacks, 68 its critical attack and 69 a miss.
  • In the values chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A champion’s own book ends at slot 51.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: The client has maps 1, 2, 3, 4, 6 and 8.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client fails on a CreateTurret naming no building, and a server MUST NOT send one.
  • In the data chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A champion’s spells and attacks are in DATA/Spells/<Spell>.inibin with all other spells.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Every answer for its own player id, the first included, has a client send ReconnectedInMatch, saying whether play has yet begun.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A server MUST put the seat’s player id in SeatLoadProgress: the loading screen shows a seat’s card from the VersionSync seat with that id.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client writes its own client id where its player id goes in LoadingProgress, in the low four bytes with zeros above.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A card draws a seat’s icon only where it is 0 or more.
  • In the joining chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client whose connection drops before play begins ends rather than connecting again.
  • In the vision chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: EnterSight states everything a client needs to draw the unit at once: its looks, its shields, where it stands or which path it walks, and, in what follows, its health and resource.
  • In the vision chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: EnterLocalSight states the unit’s resource beside its health.
  • In the movement chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A unit coming into sight while standing carries its place and facing in EnterSight instead.
  • In the movement chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client does not read the points of a movement whose unit it does not hold, and so misreads every later movement in the group.
  • In the movement chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A server MUST send the WaypointGroup that answers a MoveOrder on the transient channel.
  • In the movement chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A server MUST NOT send NavigationFlags: a client fails on the first one a match brings.
  • In the replication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: The groups follow in the order 0 to 4, and nothing gives a group’s length: each value is four bytes, so a group takes four bytes for its set of values and four for each bit that set has set.
  • In the replication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Each row also gives the type a value is written in.
  • In the replication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: ## A champion | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 0 | 0 | Gold in hand | float | | 0 | 1 to 2 | Which slots can be cast from: the champion’s own, then the second set | u32 | | 0 | 3 to 6 | What the spell in slots 0 to 3 costs | float | | 0 | 7 to 14 | What the spell in slots 42 to 49 costs | float | | 0 | 15 to 16 | What the spell in slots 0 and 1 of the second set costs | float | | 1 | 0 | What the champion is doing, as a set of bits | u32 | | 1 | 1 to 3 | Whether it is proof against spells, proof against all harm, and proof against strikes | u32 | | 1 | 4 | Damage it deals by striking | float | | 1 | 5 | Damage its spells deal before modifiers | float | | 1 | 6 | How often it turns a blow aside | float | | 1 | 7 | How often it strikes critically | float | | 1 | 8 | Armour | float | | 1 | 9 | Spell resistance | float | | 1 | 10 to 11 | How fast health and resource return | float | | 1 | 12 | How far it strikes from | float | | 1 | 13 to 15 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 16 to 17 | Flat and percent reduction of the spell damage it takes | float | | 1 | 18 | A multiplier on how fast it strikes | float | | 1 | 19 | A flat addition to how far it casts | float | | 1 | 20 | A modifier on its cooldowns | float | | 1 | 21 to 22 | How much armour it cuts through, flat then as a percent | float | | 1 | 23 to 24 | How much spell resistance it cuts through, flat then as a percent | float | | 1 | 25 | Life steal | float | | 1 | 26 | Spell vamp | float | | 3 | 0 to 1 | Health and resource as they stand | float | | 3 | 2 to 3 | Health and resource at their greatest | float | | 3 | 4 | Experience | float | | 3 | 5 to 6 | A flat and a percent addition to how far it sees | float | | 3 | 7 | How fast it moves | float | | 3 | 8 | A value whose meaning is not recorded | float | | 3 | 9 | Level | u32 | | 3 | 10 | Kills taken from no side | u32 | Bit n of either set of slots that can be cast from stands for slot n.
  • In the replication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A server grants experience with ExperienceGained, and MUST name a champion in it: a client fails on one naming any other unit.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: StatTick asks every unit’s stats to advance by that span.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Input stays locked during the countdown.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client sends ClientFinished every time GameEnded arrives in play, while playing a replay too.
  • In the match chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client sends ReconnectedInMatch on every connection it makes, the first included, with a byte that is 0 where the match is in play and 1 otherwise.
  • In the combat chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client shows nothing for Damage unless it holds the unit hurt; it need not hold the unit dealing it.
  • In the combat chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client draws the world without colour for GreyscaleWhenDead only under one of its display settings, and otherwise ignores it.
  • In the shop chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Loadout does nothing to the shop: a client fills its shop from its own data, and takes the items it suggests from its champion’s own data.
  • In the shop chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: The data of the map VersionSync names lists the items that cannot be bought, and can list the only items the shop holds.
  • In the shop chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Suggested items are kept per champion and chosen by the mode VersionSync names, whatever the map.
  • In the shop chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Opening the shop sends TutorialShopOpened, in any match, except while the shop is locked.
  • In the shop chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Opening the shop while the match is paused sends nothing.
  • In the communication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client plays the voice line VoiceCommand names, unless its player has muted the champion’s player.
  • In the communication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: Where a VoiceEvent asks for an answer, a client sends VoiceEventDone once it has played the event.
  • In the communication chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client answers a VoiceEvent it cannot play at once.
  • In the interface chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client keeps a CameraLockSet that arrives while it holds its camera itself, and applies and answers it once the hold ends.
  • In the spectating chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client asks getLastKeyFrameInfo for the last key frame.
  • In the spectating chapter, a passage holds for 1.0.0.140 and not 1.0.0.141: A client fetches the first key frame’s information after the chunks of setting up.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.141:

  • SpawnUnit, its layout: “A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names the unit that put it there.”, where 1.0.0.140 has “A client deletes no object first: where one already holds the new unit’s id, both answer to it. It does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory. The header names no object a client reads: a server names the unit that put it there.”
  • SpawnUnit, flags.ignoreCollision: “Set where it does not block the way.”, where 1.0.0.140 has “Set where it does not block the way. It takes effect only where bot is clear.”
  • SpawnUnit, flags.laneMinion: “Set where it is a lane minion.”, where 1.0.0.140 has “Unused here; a client reads nothing in this bit.”

1.0.0.142

Client builds from 1.0.0.142 up to, not including, 1.0.0.143. Patch notes: V1.0.0.142.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1421004c62b2282026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, SoftReconnect, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (224)
MessageCommand
AfkWarning196
AnimationOverrides113
AppearanceCleared213
AppearancePopped109
AppearancePushed161
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick235
BotState181
BotTargets111
BuildingDied144
BuyItem137
Camera48
CameraAck46
CameraBehaviour121
CameraLock136
CameraLockSet127
CampCleared207
CampOpened247
CancelTargeting141
CapturePointChanged224
CastSpell164
ChainTargets114
ChampionDied100
ChampionStats77
CharacterSelected202
Chat0
ClientEvent173
ClientFinished147
ClientReady88
ClientVersion201
ClockConvergence124
ClockReply8
ClockSync205
CloseShop15
CooldownSet140
CreateChampion82
CreateNeutral105
CreateTurret167
Damage107
DeathHistory36
DestroyMissile96
EffectAdded195
EffectAddedGroup110
EffectCount31
EffectCountGroup203
EffectRemoved130
EffectRemovedGroup157
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight185
EnterSight198
EnterTeamSight237
Exit150
ExperienceGained17
FaceDirection86
FacePosition86
FadeMinions216
FadeRemoved52
FadeSounds101
FadeTo190
FloatingText27
FogSet182
FogToggled133
ForceDeath30
GameEnded210
GameSpeed19
GoldEarned241
GoldGained37
GoldRedirect7
GreyscaleWhenDead180
HealthBar219
HudDisabled200
HudHighlighted68
HudHighlightToggled85
InhibitorState45
InputLock139
InputLockToggled165
InventorySlot89
ItemAdded117
ItemUsed169
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight87
LeaveTeamSight238
LevelUp70
LoadingProgress25
Loadout44
MapPing93
MapProp221
MapPropChanged222
MatchIdentity154
MatchStarted206
MinimapHighlighted20
MinimapIcon229
MissileCourse66
MissileHits40
MissileReport65
MissileRetarget252
MissileState65
ModulePacket236
MoveCamera39
MovementBounds6
MoveOrder120
MusicCue233
NavigationFlags72
NexusIdle4
NexusSkin122
ObjectiveHidden172
ObjectiveReplaced14
ObjectiveShown59
ParticleEnterTeamSight239
ParticleLeaveTeamSight240
ParticlesCreated142
ParticleSource223
Path197
PathWithSpeed138
Pause171
PauseAnimation119
Paused171
PingPlaced71
PlayAnimation188
PlayEmote78
PlayerDisconnected162
QueryStatus23
QueryStatusAnswer143
QuestEvent218
QuestUpdated146
Reconnected16
ReconnectedInMatch166
RegionAdded126
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication208
ResourceColours155
Respawned80
RespawnPoint226
Resume10
Resumed10
ResyncEnded75
Revived49
Roster103
ScoreAdded230
ScreenTint232
SeatChampion101
SeatLoadProgress159
SeatName102
SelectObject187
ShieldAdded108
ShopEnabled253
ShopHighlighted186
Shutdown243
SideTextHidden177
SideTextRefreshed189
SideTextShown170
SpawnBot220
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart104
SpawnUnit131
SpellCastAnswer193
SpellCharge244
SpellCooldown140
SpellIconChanged54
SpellInSlot118
SpellLevel97
SpellNameChanged53
SpellNumbers134
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame98
StatisticIncremented231
StatsRequest92
StatTick42
StopAnimation43
StopAttack57
StreamRequest248
SurrenderStatus175
SurrenderVote174
SurrenderVoteCalled214
SwapItems35
SwapItemsAnswer69
TargetableChanged242
TargetHeldChampion204
TargetUnit112
TeamChanged228
TeamScore225
TipEvent115
TipShown91
TransientAck178
TutorialChatLine2
TutorialPopup191
TutorialPopupClosed217
TutorialShopOpened99
UiHighlight215
UnitDied168
UnitHighlighted95
UnitHighlightRemoved192
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync90
VictoryDance209
VoiceCommand74
VoiceEvent128
VoiceEventDone5
VoiceOverride160
VolumeMuted41
WaypointAck125
WaypointGroup103
WaypointGroupAtSpeed106
WorldEvent76

Against 1.0.0.141

Where a build from 1.0.0.142 up to, not including, 1.0.0.143 differs from one from 1.0.0.141 up to, not including, 1.0.0.142. Anything not named here is the same in both.

Laid out differently

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.142:

  • CampCleared, killer: “The champion credited with emptying the camp, or zero for none. Where the camp has no buff side and no line of its own, a client has that champion speak a line for it, whatever speak says.”, where 1.0.0.141 has “Unused; a client reads nothing here.”
  • EnterLocalSight, vitals: “The unit’s health. A client reads it for a champion, a minion, a turret, a map prop or another unit with a mind, past the end of the message where it is missing, so a server sends it for those; for a building or a missile it ends after the carried messages.”, where 1.0.0.141 has “The unit’s health. Where a client already holds the unit, it reads these from body offset 2 whatever the carried size, so a server carries messages here only where they create the unit, and sends the vitals right after them.”

1.0.0.143

Client builds from 1.0.0.143 up to, not including, 1.0.0.144. Patch notes: V1.0.0.143.

Build checkedPassedFailedSkippedCommitDate
1.0.0.143100442015872026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CreateFollower, FollowerMaster, HoverIndicator, HoverTarget, MissileLaunched, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (223)
MessageCommand
AfkWarning196
AnimationOverrides113
AppearanceCleared213
AppearancePopped109
AppearancePushed161
Attack13
AttackFrom29
Autocast34
BotDebug21
BotKick235
BotState181
BotTargets111
BuildingDied144
BuyItem137
Camera48
CameraAck46
CameraBehaviour121
CameraLock136
CameraLockSet127
CampCleared207
CampOpened246
CancelTargeting141
CapturePointChanged224
CastSpell164
ChainTargets114
ChampionDied100
ChampionStats77
CharacterSelected202
Chat0
ClientEvent173
ClientFinished147
ClientReady88
ClientVersion201
ClockConvergence124
ClockReply8
ClockSync205
CloseShop15
CooldownSet140
CreateChampion82
CreateNeutral105
CreateTurret167
Damage107
DeathHistory36
DestroyMissile96
EffectAdded195
EffectAddedGroup110
EffectCount31
EffectCountGroup203
EffectRemoved130
EffectRemovedGroup157
EffectReplaced50
EffectReplacedGroup33
EmotePlayed73
EnterLocalSight185
EnterSight198
EnterTeamSight237
Exit150
ExperienceGained17
FaceDirection86
FacePosition86
FadeMinions216
FadeRemoved52
FadeSounds101
FadeTo190
FloatingText27
FogSet182
FogToggled133
ForceDeath30
GameEnded210
GameSpeed19
GoldEarned241
GoldGained37
GoldRedirect7
GreyscaleWhenDead180
HealthBar219
HudDisabled200
HudHighlighted68
HudHighlightToggled85
InhibitorState45
InputLock139
InputLockToggled165
InventorySlot89
ItemAdded117
ItemUsed169
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight87
LeaveTeamSight238
LevelUp70
LoadingProgress25
Loadout44
MapPing93
MapProp221
MapPropChanged222
MatchIdentity154
MatchStarted206
MinimapHighlighted20
MinimapIcon229
MissileCourse66
MissileHits40
MissileReport65
MissileRetarget251
MissileState65
ModulePacket236
MoveCamera39
MovementBounds6
MoveOrder120
MusicCue233
NavigationFlags72
NexusIdle4
NexusSkin122
ObjectiveHidden172
ObjectiveReplaced14
ObjectiveShown59
ParticleEnterTeamSight239
ParticleLeaveTeamSight240
ParticlesCreated142
ParticleSource223
Path197
PathWithSpeed138
Pause171
PauseAnimation119
Paused171
PingPlaced71
PlayAnimation188
PlayEmote78
PlayerDisconnected162
QueryStatus23
QueryStatusAnswer143
QuestEvent218
QuestUpdated146
Reconnected16
ReconnectedInMatch166
RegionAdded126
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication208
ResourceColours155
Respawned80
RespawnPoint226
Resume10
Resumed10
Revived49
Roster103
ScoreAdded230
ScreenTint232
SeatChampion101
SeatLoadProgress159
SeatName102
SelectObject187
ShieldAdded108
ShopEnabled253
ShopHighlighted186
Shutdown242
SideTextHidden177
SideTextRefreshed189
SideTextShown170
SoftReconnect252
SpawnBot220
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart104
SpawnUnit131
SpellCastAnswer193
SpellCharge243
SpellCooldown140
SpellIconChanged54
SpellInSlot118
SpellLevel97
SpellNameChanged53
SpellNumbers134
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame98
StatisticIncremented231
StatsRequest92
StatTick42
StopAnimation43
StopAttack57
StreamRequest247
SurrenderStatus175
SurrenderVote174
SurrenderVoteCalled214
SwapItems35
SwapItemsAnswer69
TargetHeldChampion204
TargetUnit112
TeamChanged228
TeamScore225
TipEvent115
TipShown91
TransientAck178
TutorialChatLine2
TutorialPopup191
TutorialPopupClosed217
TutorialShopOpened99
UiHighlight215
UnitDied168
UnitHighlighted95
UnitHighlightRemoved192
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync90
VictoryDance209
VoiceCommand74
VoiceEvent128
VoiceEventDone5
VoiceOverride160
VolumeMuted41
WaypointAck125
WaypointGroup103
WaypointGroupAtSpeed106
WorldEvent76

Against 1.0.0.142

Where a build from 1.0.0.143 up to, not including, 1.0.0.144 differs from one from 1.0.0.142 up to, not including, 1.0.0.143. Anything not named here is the same in both.

In 1.0.0.143, not in 1.0.0.142

MessageSent byCommandWhat it does
SoftReconnectserver252 on eventsWhat a server sends, in pairs, to rebuild a client’s world without a new connection: the first marks what the client holds, the second deletes whatever is still marked

In 1.0.0.142, not in 1.0.0.143

MessageSent byCommand it had
ResyncEndedserver75 on events
TargetableChangedserver242 on events

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1421.0.0.143Messages
events243–252242–251Shutdown, CampOpened, MissileRetarget
requests244–248243–247SpellCharge, StreamRequest

Laid out differently

Structs

  • Replication
    • present has group5 at bit 5 in 1.0.0.143, and not in 1.0.0.142.
    • present.unused is at bit 5, 3 bits wide, in 1.0.0.142 and at bit 6, 2 bits wide, in 1.0.0.143.
    • group5 is in 1.0.0.143 (record), after group3.values, and not in 1.0.0.142.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.143 and not 1.0.0.142: The stage of SoftReconnect that marks is 0.
  • In the objects chapter, a passage holds for 1.0.0.143 and not 1.0.0.142: A client reads only the two lowest bits of the stage: a stage with both clear marks, and any other removes.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.143:

  • DeathHistory, blobLength: “How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries.”, where 1.0.0.142 has “How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more.”
  • DeathHistory, entryCount: “How many entries follow.”, where 1.0.0.142 has “How many entries follow. Read as signed: from 2147483648 up it parses no entries.”
  • SpawnPet, its layout: “A client deletes any object holding the header’s id; spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat; and registers it under the header’s id and node. duration has no effect. The header names the pet. A server sends it to clients watching a match.”, where 1.0.0.142 has “A client spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat; and registers it under the header’s id and node. It deletes no object first; where one already holds the header’s id, both answer to it. duration has no effect. The header names the pet. A server sends it to clients watching a match.”
  • SpawnPet, spellLevel: “The level of the spell that summoned it, plus one. A client uses it only where the owner is on its own side.”, where 1.0.0.142 has “The level of the spell that summoned it, plus one. A client uses it only where the owner belongs to its own network node, so only for its own units and never while watching a match.”
  • SpawnPet, effect: “An effect it carries, padded with zero bytes. A client uses it only where the owner is on its own side.”, where 1.0.0.142 has “An effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node, as for spellLevel.”
  • SpawnPet, flags.copyInventory: “Set where it copies its owner’s items.”, where 1.0.0.142 has “Set to tie the pet to the unit clone names. A client ties it to clone whatever this bit says, so the bit adds nothing.”

1.0.0.144

Client builds from 1.0.0.144 up to, not including, 1.0.0.145. Patch notes: V1.0.0.144.

Build checkedPassedFailedSkippedCommitDate
1.0.0.144100438d4ea42026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, FollowerMaster, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (222)
MessageCommand
AfkWarning184
AnimationOverrides107
AppearanceCleared200
AppearancePopped103
AppearancePushed151
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick222
BotState170
BotTargets105
BuildingDied138
BuyItem131
Camera45
CameraAck43
CameraBehaviour115
CameraLock130
CameraLockSet121
CampCleared195
CampOpened233
CancelTargeting135
CapturePointChanged211
CastSpell154
ChainTargets108
ChampionDied94
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished141
ClientReady82
ClientVersion189
ClockConvergence118
ClockReply8
ClockSync193
CloseShop14
CooldownSet134
CreateChampion76
CreateFollower241
CreateNeutral99
CreateTurret157
Damage101
DeathHistory33
DestroyMissile90
EffectAdded183
EffectAddedGroup104
EffectCount28
EffectCountGroup191
EffectRemoved124
EffectRemovedGroup148
EffectReplaced47
EffectReplacedGroup30
EmotePlayed68
EnterLocalSight174
EnterSight186
EnterTeamSight224
Exit143
ExperienceGained16
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved49
FadeSounds95
FadeTo178
FloatingText24
FogSet171
FogToggled127
ForceDeath27
GameEnded198
GameSpeed18
GoldEarned228
GoldGained34
GoldRedirect7
GreyscaleWhenDead169
HealthBar206
HudDisabled188
HudHighlighted63
HudHighlightToggled79
InhibitorState42
InputLock133
InputLockToggled155
InventorySlot83
ItemAdded111
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight81
LeaveTeamSight225
LevelUp65
LoadingProgress22
Loadout41
MapPing87
MapProp208
MapPropChanged209
MatchIdentity146
MatchStarted194
MinimapIcon216
MissileCourse62
MissileHits37
MissileReport61
MissileRetarget238
MissileState61
ModulePacket223
MoveCamera36
MovementBounds6
MoveOrder114
MusicCue220
NavigationFlags67
NexusIdle4
NexusSkin116
ObjectiveHidden162
ObjectiveReplaced13
ObjectiveShown56
ParticleEnterTeamSight226
ParticleLeaveTeamSight227
ParticlesCreated136
ParticleSource210
Path185
PathWithSpeed132
Pause161
PauseAnimation113
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus20
QueryStatusAnswer137
QuestEvent205
QuestUpdated140
Reconnected15
ReconnectedInMatch156
RegionAdded120
RegionAttached35
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint213
Resume10
Resumed10
Revived46
Roster103
ScoreAdded217
ScreenTint219
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject175
ShieldAdded102
ShopEnabled240
Shutdown229
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SoftReconnect239
SpawnBot207
SpawnEnd17
SpawnFromBarracks3
SpawnPet57
SpawnStart98
SpawnUnit125
SpellCastAnswer181
SpellCharge230
SpellCooldown134
SpellIconChanged51
SpellInSlot112
SpellLevel91
SpellNameChanged50
SpellNumbers128
SpellOffsetTargetChanged52
SpellTargetingChanged23
SpellUpgraded21
StartGame92
StatisticIncremented218
StatsRequest86
StatTick39
StopAnimation40
StopAttack54
StreamRequest234
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled201
SwapItems32
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown85
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed204
TutorialShopOpened93
UiHighlight202
UnitDied158
UnitHighlighted89
UnitHighlightRemoved180
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell59
UseObject60
VersionSync84
VictoryDance197
VoiceCommand69
VoiceEvent122
VoiceEventDone5
VoiceOverride150
VolumeMuted38
WaypointAck119
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent70

Against 1.0.0.143

Where a build from 1.0.0.144 up to, not including, 1.0.0.145 differs from one from 1.0.0.143 up to, not including, 1.0.0.144. Anything not named here is the same in both.

In 1.0.0.144, not in 1.0.0.143

MessageSent byCommandWhat it does
CreateFollowerserver241 on eventsPut an object on the field that follows a unit

In 1.0.0.143, not in 1.0.0.144

MessageSent byCommand it had
MinimapHighlightedserver20 on events
ShopHighlightedserver186 on events

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1431.0.0.144Messages
clock2421SpellUpgraded
clock124118ClockConvergence
events13–1912–18Attack, ObjectiveReplaced, CloseShop, Reconnected, ExperienceGained, SpawnEnd, GameSpeed
events2119BotDebug
events26–6123–58SpellTargetingChanged, FloatingText, UnitText, AttackFrom, ForceDeath, EffectCount, EffectReplacedGroup, Autocast, GoldGained, RegionAttached, MoveCamera, MissileHits, VolumeMuted, StatTick, StopAnimation, Loadout, InhibitorState, CameraAck, Revived, EffectReplaced, UnitStopped, FadeRemoved, SpellNameChanged, SpellIconChanged, SpellOffsetTargetChanged, RegionRemoved, StopAttack, LeaveLocalSight, ObjectiveShown, SpawnPet, KillParticle
events65–6661–62MissileState, MissileCourse
events69–7464–69SwapItemsAnswer, LevelUp, PingPlaced, NavigationFlags, EmotePlayed, VoiceCommand
events77–14671–140ChampionStats, Respawned, CreateChampion, HudHighlightToggled, LeaveSight, InventorySlot, VersionSync, TipShown, UnitHighlighted, DestroyMissile, SpellLevel, StartGame, ChampionDied, FadeSounds, SpawnStart, CreateNeutral, WaypointGroupAtSpeed, Damage, ShieldAdded, AppearancePopped, EffectAddedGroup, BotTargets, TargetUnit, AnimationOverrides, ChainTargets, ItemAdded, SpellInSlot, PauseAnimation, CameraBehaviour, NexusSkin, RegionAdded, CameraLockSet, VoiceEvent, EffectRemoved, SpawnUnit, FogToggled, SpellNumbers, PathWithSpeed, InputLock, SpellCooldown, CancelTargeting, ParticlesCreated, QueryStatusAnswer, BuildingDied, QuestUpdated
events154–155146–147MatchIdentity, ResourceColours
events157148EffectRemovedGroup
events160–177150–167VoiceOverride, AppearancePushed, PlayerDisconnected, InputLockToggled, CreateTurret, UnitDied, ItemUsed, SideTextShown, Paused, ObjectiveHidden, SurrenderStatus, SideTextHidden
events180–185169–174GreyscaleWhenDead, BotState, FogSet, EnterLocalSight
events188–210176–198PlayAnimation, SideTextRefreshed, FadeTo, TutorialPopup, UnitHighlightRemoved, SpellCastAnswer, EffectAdded, AfkWarning, Path, EnterSight, HudDisabled, EffectCountGroup, TargetHeldChampion, ClockSync, MatchStarted, CampCleared, VictoryDance, GameEnded
events213–253200–240AppearanceCleared, SurrenderVoteCalled, UiHighlight, FadeMinions, SpawnBot, MapProp, MapPropChanged, ParticleSource, CapturePointChanged, TeamScore, RespawnPoint, TeamChanged, MinimapIcon, ScoreAdded, StatisticIncremented, ScreenTint, MusicCue, BotKick, EnterTeamSight, LeaveTeamSight, ParticleEnterTeamSight, ParticleLeaveTeamSight, GoldEarned, Shutdown, CampOpened, MissileRetarget, SoftReconnect, ShopEnabled
requests23–6320–60QueryStatus, LoadingProgress, UnitSpoke, SwapItems, Camera, UseObject
requests6561MissileReport
requests78–14772–141PlayEmote, ClientReady, StatsRequest, MapPing, TutorialShopOpened, TipEvent, MoveOrder, WaypointAck, CameraLock, BuyItem, CooldownSet, ClientFinished
requests150143Exit
requests164–178154–168CastSpell, ReconnectedInMatch, Pause, SurrenderVote, TransientAck
requests187–202175–190SelectObject, ClientVersion, CharacterSelected
requests217–247204–234TutorialPopupClosed, QuestEvent, ModulePacket, SpellCharge, StreamRequest
transient10397WaypointGroup
transient159149SeatLoadProgress
transient208196Replication

Laid out differently

  • ClientEvent
    • Its command is 173 in 1.0.0.143 and 163 in 1.0.0.144.
    • event takes 81 surrenderFailed, 82 surrenderTooEarly, 83 surrenderAgreed, 84 surrenderVoteSpam, 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 91 startNoticeFour, 92 startNoticeFive, 93 alert, 94 scoreboardOpened, 97 pointANeutralized, 98 pointBNeutralized, 99 pointCNeutralized, 100 pointDNeutralized, 101 pointENeutralized, 102 pointACaptured, 103 pointBCaptured, 104 pointCCaptured, 105 pointDCaptured, 106 pointECaptured, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched in 1.0.0.144 and not in 1.0.0.143.
    • event takes 81 surrenderCountdown, 82 surrenderFailed, 83 surrenderTooEarly, 84 surrenderAgreed, 85 surrenderVoteSpam, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 92 startNoticeFour, 93 startNoticeFive, 94 alert, 95 scoreboardOpened, 98 pointANeutralized, 99 pointBNeutralized, 100 pointCNeutralized, 101 pointDNeutralized, 102 pointENeutralized, 103 pointACaptured, 104 pointBCaptured, 105 pointCCaptured, 106 pointDCaptured, 107 pointECaptured, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched in 1.0.0.143 and not in 1.0.0.144.
    • monster is present when event = 117 or 118 or 119 or 120 in 1.0.0.143, and present when event = 116 or 117 or 118 or 119 in 1.0.0.144.
  • DeathHistory
    • Its command is 36 in 1.0.0.143 and 33 in 1.0.0.144.
    • entries[].event takes 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched in 1.0.0.144 and not in 1.0.0.143.
    • entries[].event takes 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched in 1.0.0.143 and not in 1.0.0.144.
    • entries[].monster is present when event = 117 or 118 or 119 or 120 in 1.0.0.143, and present when event = 116 or 117 or 118 or 119 in 1.0.0.144.
  • FaceDirection
    • Its command is 86 in 1.0.0.143 and 80 in 1.0.0.144.
    • turnTime is in 1.0.0.144 (f32), after how, and not in 1.0.0.143.
  • FacePosition
    • Its command is 86 in 1.0.0.143 and 80 in 1.0.0.144.
    • unknown is in 1.0.0.144 (f32), after unused, and not in 1.0.0.143.
  • HealthBar
    • Its command is 219 in 1.0.0.143 and 206 in 1.0.0.144.
    • flags is in 1.0.0.144 (1-byte bits) at the start, and not in 1.0.0.143.
    • barType is in 1.0.0.144 (u8), after flags, and not in 1.0.0.143.
    • side is in 1.0.0.144 (i32), after barType, and not in 1.0.0.143.
    • show is in 1.0.0.143 and not in 1.0.0.144.
  • HudHighlighted
    • Its command is 68 in 1.0.0.143 and 63 in 1.0.0.144.
    • part is in 1.0.0.144 (u8) at the start, and not in 1.0.0.143.
    • second is in 1.0.0.144 (u8), after number, and not in 1.0.0.143.
  • UpgradeSpell
    • Its command is 62 in 1.0.0.143 and 59 in 1.0.0.144.
    • how is in 1.0.0.144 (1-byte bits), after slot, and not in 1.0.0.143.
  • WorldEvent
    • Its command is 76 in 1.0.0.143 and 70 in 1.0.0.144.
    • event takes 87 minionsSpawned, 88 welcome, 89 startNoticeTwo, 90 startNoticeThree, 94 scoreboardOpened, 115 particleLimit, 116 dragonKilled, 117 dragonKilledWatched, 118 baronKilled, 119 baronKilledWatched in 1.0.0.144 and not in 1.0.0.143.
    • event takes 81 surrenderCountdown, 88 minionsSpawned, 89 welcome, 90 startNoticeTwo, 91 startNoticeThree, 95 scoreboardOpened, 116 particleLimit, 117 dragonKilled, 118 dragonKilledWatched, 119 baronKilled, 120 baronKilledWatched in 1.0.0.143 and not in 1.0.0.144.
    • monster is present when event = 117 or 118 or 119 or 120 in 1.0.0.143, and present when event = 116 or 117 or 118 or 119 in 1.0.0.144.

Structs

  • Particle
    • settingsFrom is in 1.0.0.144 (u32), after boundTo, and not in 1.0.0.143.

1.0.0.145

Client builds from 1.0.0.145 up to, not including, 1.0.0.146. Patch notes: V1.0.0.145.

Build checkedPassedFailedSkippedCommitDate
1.0.0.14510041b6571c2026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (223)
MessageCommand
AfkWarning184
AnimationOverrides107
AppearanceCleared200
AppearancePopped103
AppearancePushed151
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick222
BotState170
BotTargets105
BuildingDied138
BuyItem131
Camera45
CameraAck43
CameraBehaviour115
CameraLock130
CameraLockSet121
CampCleared195
CampOpened233
CancelTargeting135
CapturePointChanged211
CastSpell154
ChainTargets108
ChampionDied94
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished141
ClientReady82
ClientVersion189
ClockConvergence118
ClockReply8
ClockSync193
CloseShop14
CooldownSet134
CreateChampion76
CreateFollower241
CreateNeutral99
CreateTurret157
Damage101
DeathHistory33
DestroyMissile90
EffectAdded183
EffectAddedGroup104
EffectCount28
EffectCountGroup191
EffectRemoved124
EffectRemovedGroup148
EffectReplaced47
EffectReplacedGroup30
EmotePlayed68
EnterLocalSight174
EnterSight186
EnterTeamSight224
Exit143
ExperienceGained16
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved49
FadeSounds95
FadeTo178
FloatingText24
FogSet171
FogToggled127
FollowerMaster242
ForceDeath27
GameEnded198
GameSpeed18
GoldEarned228
GoldGained34
GoldRedirect7
GreyscaleWhenDead169
HealthBar206
HudDisabled188
HudHighlighted63
HudHighlightToggled79
InhibitorState42
InputLock133
InputLockToggled155
InventorySlot83
ItemAdded111
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight81
LeaveTeamSight225
LevelUp65
LoadingProgress22
Loadout41
MapPing87
MapProp208
MapPropChanged209
MatchIdentity146
MatchStarted194
MinimapIcon216
MissileCourse62
MissileHits37
MissileReport61
MissileRetarget238
MissileState61
ModulePacket223
MoveCamera36
MovementBounds6
MoveOrder114
MusicCue220
NavigationFlags67
NexusIdle4
NexusSkin116
ObjectiveHidden162
ObjectiveReplaced13
ObjectiveShown56
ParticleEnterTeamSight226
ParticleLeaveTeamSight227
ParticlesCreated136
ParticleSource210
Path185
PathWithSpeed132
Pause161
PauseAnimation113
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus20
QueryStatusAnswer137
QuestEvent205
QuestUpdated140
Reconnected15
ReconnectedInMatch156
RegionAdded120
RegionAttached35
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint213
Resume10
Resumed10
Revived46
Roster103
ScoreAdded217
ScreenTint219
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject175
ShieldAdded102
ShopEnabled240
Shutdown229
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SoftReconnect239
SpawnBot207
SpawnEnd17
SpawnFromBarracks3
SpawnPet57
SpawnStart98
SpawnUnit125
SpellCastAnswer181
SpellCharge230
SpellCooldown134
SpellIconChanged51
SpellInSlot112
SpellLevel91
SpellNameChanged50
SpellNumbers128
SpellOffsetTargetChanged52
SpellTargetingChanged23
SpellUpgraded21
StartGame92
StatisticIncremented218
StatsRequest86
StatTick39
StopAnimation40
StopAttack54
StreamRequest234
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled201
SwapItems32
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown85
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed204
TutorialShopOpened93
UiHighlight202
UnitDied158
UnitHighlighted89
UnitHighlightRemoved180
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell59
UseObject60
VersionSync84
VictoryDance197
VoiceCommand69
VoiceEvent122
VoiceEventDone5
VoiceOverride150
VolumeMuted38
WaypointAck119
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent70

Against 1.0.0.144

Where a build from 1.0.0.145 up to, not including, 1.0.0.146 differs from one from 1.0.0.144 up to, not including, 1.0.0.145. Anything not named here is the same in both.

In 1.0.0.145, not in 1.0.0.144

MessageSent byCommandWhat it does
FollowerMasterserver242 on eventsChange which unit a following object follows

Laid out differently

  • ClientReady
    • tipChosen is in 1.0.0.145 (u8), after mask, and not in 1.0.0.144.
    • tipColour is in 1.0.0.145 (u8), after tipChosen, and not in 1.0.0.144.
    • tipDuration is in 1.0.0.145 (u8), after tipColour, and not in 1.0.0.144.
    • loadingTips is in 1.0.0.145 (u8), after tipDuration, and not in 1.0.0.144.
    • playingTips is in 1.0.0.145 (u8), after loadingTips, and not in 1.0.0.144.
  • ClientVersion
    • clock is in 1.0.0.144 and not in 1.0.0.145.
  • VersionSync
    • tip is in 1.0.0.145 (i8), after reporting, and not in 1.0.0.144.
    • tipColour is in 1.0.0.145 (i8), after tip, and not in 1.0.0.144.
    • tipDuration is in 1.0.0.145 (i8), after tipColour, and not in 1.0.0.144.
    • loadingTips is in 1.0.0.145 (u8), after tipDuration, and not in 1.0.0.144.
    • playingTips is in 1.0.0.145 (u8), after loadingTips, and not in 1.0.0.144.

1.0.0.146

Client builds from 1.0.0.146 up to, not including, 1.0.0.147. Patch notes: V1.0.0.146.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1461004ae449c72026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (223)
MessageCommand
AfkWarning184
AnimationOverrides107
AppearanceCleared200
AppearancePopped103
AppearancePushed151
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick222
BotState170
BotTargets105
BuildingDied138
BuyItem131
Camera45
CameraAck43
CameraBehaviour115
CameraLock130
CameraLockSet121
CampCleared195
CampOpened233
CancelTargeting135
CapturePointChanged211
CastSpell154
ChainTargets108
ChampionDied94
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished141
ClientReady82
ClientVersion189
ClockConvergence118
ClockReply8
ClockSync193
CloseShop14
CooldownSet134
CreateChampion76
CreateFollower241
CreateNeutral99
CreateTurret157
Damage101
DeathHistory33
DestroyMissile90
EffectAdded183
EffectAddedGroup104
EffectCount28
EffectCountGroup191
EffectRemoved124
EffectRemovedGroup148
EffectReplaced47
EffectReplacedGroup30
EmotePlayed68
EnterLocalSight174
EnterSight186
EnterTeamSight224
Exit143
ExperienceGained16
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved49
FadeSounds95
FadeTo178
FloatingText24
FogSet171
FogToggled127
FollowerMaster242
ForceDeath27
GameEnded198
GameSpeed18
GoldEarned228
GoldGained34
GoldRedirect7
GreyscaleWhenDead169
HealthBar206
HudDisabled188
HudHighlighted63
HudHighlightToggled79
InhibitorState42
InputLock133
InputLockToggled155
InventorySlot83
ItemAdded111
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight81
LeaveTeamSight225
LevelUp65
LoadingProgress22
Loadout41
MapPing87
MapProp208
MapPropChanged209
MatchIdentity146
MatchStarted194
MinimapIcon216
MissileCourse62
MissileHits37
MissileReport61
MissileRetarget238
MissileState61
ModulePacket223
MoveCamera36
MovementBounds6
MoveOrder114
MusicCue220
NavigationFlags67
NexusIdle4
NexusSkin116
ObjectiveHidden162
ObjectiveReplaced13
ObjectiveShown56
ParticleEnterTeamSight226
ParticleLeaveTeamSight227
ParticlesCreated136
ParticleSource210
Path185
PathWithSpeed132
Pause161
PauseAnimation113
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus20
QueryStatusAnswer137
QuestEvent205
QuestUpdated140
Reconnected15
ReconnectedInMatch156
RegionAdded120
RegionAttached35
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint213
Resume10
Resumed10
Revived46
Roster103
ScoreAdded217
ScreenTint219
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject175
ShieldAdded102
ShopEnabled240
Shutdown229
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SoftReconnect239
SpawnBot207
SpawnEnd17
SpawnFromBarracks3
SpawnPet57
SpawnStart98
SpawnUnit125
SpellCastAnswer181
SpellCharge230
SpellCooldown134
SpellIconChanged51
SpellInSlot112
SpellLevel91
SpellNameChanged50
SpellNumbers128
SpellOffsetTargetChanged52
SpellTargetingChanged23
SpellUpgraded21
StartGame92
StatisticIncremented218
StatsRequest86
StatTick39
StopAnimation40
StopAttack54
StreamRequest234
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled201
SwapItems32
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown85
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed204
TutorialShopOpened93
UiHighlight202
UnitDied158
UnitHighlighted89
UnitHighlightRemoved180
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell59
UseObject60
VersionSync84
VictoryDance197
VoiceCommand69
VoiceEvent122
VoiceEventDone5
VoiceOverride150
VolumeMuted38
WaypointAck119
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent70

Against 1.0.0.145

Where a build from 1.0.0.146 up to, not including, 1.0.0.147 differs from one from 1.0.0.145 up to, not including, 1.0.0.146. Anything not named here is the same in both.

Laid out differently

  • StartGame (vectors: one-on-1-0-0-146)
    • rules has notice at bit 1 in 1.0.0.146, and not in 1.0.0.145.
    • rules.unused is at bit 1, 7 bits wide, in 1.0.0.145 and at bit 2, 6 bits wide, in 1.0.0.146.

Structs

  • ParticleGroup
    • package is in 1.0.0.146 (u32) at the start, and not in 1.0.0.145.

1.0.0.147

Client builds from 1.0.0.147 up to, not including, 1.0.0.148. Patch notes: V1.0.0.147.

Build checkedPassedFailedSkippedCommitDate
1.0.0.14710046d0a5cf2026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CooldownSet, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (222)
MessageCommand
AfkWarning184
AnimationOverrides107
AppearanceCleared200
AppearancePopped103
AppearancePushed151
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick222
BotState170
BotTargets105
BuildingDied138
BuyItem131
Camera45
CameraAck43
CameraBehaviour115
CameraLock130
CameraLockSet121
CampCleared195
CampOpened233
CancelTargeting135
CapturePointChanged211
CastSpell154
ChainTargets108
ChampionDied94
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished141
ClientReady82
ClientVersion189
ClockConvergence118
ClockReply8
ClockSync193
CloseShop14
CreateChampion76
CreateFollower241
CreateNeutral99
CreateTurret157
Damage101
DeathHistory33
DestroyMissile90
EffectAdded183
EffectAddedGroup104
EffectCount28
EffectCountGroup191
EffectRemoved124
EffectRemovedGroup148
EffectReplaced47
EffectReplacedGroup30
EmotePlayed68
EnterLocalSight174
EnterSight186
EnterTeamSight224
Exit143
ExperienceGained16
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved49
FadeSounds95
FadeTo178
FloatingText24
FogSet171
FogToggled127
FollowerMaster242
ForceDeath27
GameEnded198
GameSpeed18
GoldEarned228
GoldGained34
GoldRedirect7
GreyscaleWhenDead169
HealthBar206
HudDisabled188
HudHighlighted63
HudHighlightToggled79
InhibitorState42
InputLock133
InputLockToggled155
InventorySlot83
ItemAdded111
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight81
LeaveTeamSight225
LevelUp65
LoadingProgress22
Loadout41
MapPing87
MapProp208
MapPropChanged209
MatchIdentity146
MatchStarted194
MinimapIcon216
MissileCourse62
MissileHits37
MissileReport61
MissileRetarget238
MissileState61
ModulePacket223
MoveCamera36
MovementBounds6
MoveOrder114
MusicCue220
NavigationFlags67
NexusIdle4
NexusSkin116
ObjectiveHidden162
ObjectiveReplaced13
ObjectiveShown56
ParticleEnterTeamSight226
ParticleLeaveTeamSight227
ParticlesCreated136
ParticleSource210
Path185
PathWithSpeed132
Pause161
PauseAnimation113
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus20
QueryStatusAnswer137
QuestEvent205
QuestUpdated140
Reconnected15
ReconnectedInMatch156
RegionAdded120
RegionAttached35
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint213
Resume10
Resumed10
Revived46
Roster103
ScoreAdded217
ScreenTint219
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject175
ShieldAdded102
ShopEnabled240
Shutdown229
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SoftReconnect239
SpawnBot207
SpawnEnd17
SpawnFromBarracks3
SpawnPet57
SpawnStart98
SpawnUnit125
SpellCastAnswer181
SpellCharge230
SpellCooldown134
SpellIconChanged51
SpellInSlot112
SpellLevel91
SpellNameChanged50
SpellNumbers128
SpellOffsetTargetChanged52
SpellTargetingChanged23
SpellUpgraded21
StartGame92
StatisticIncremented218
StatsRequest86
StatTick39
StopAnimation40
StopAttack54
StreamRequest234
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled201
SwapItems32
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown85
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed204
TutorialShopOpened93
UiHighlight202
UnitDied158
UnitHighlighted89
UnitHighlightRemoved180
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell59
UseObject60
VersionSync84
VictoryDance197
VoiceCommand69
VoiceEvent122
VoiceEventDone5
VoiceOverride150
VolumeMuted38
WaypointAck119
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent70

Against 1.0.0.146

Where a build from 1.0.0.147 up to, not including, 1.0.0.148 differs from one from 1.0.0.146 up to, not including, 1.0.0.147. Anything not named here is the same in both.

In 1.0.0.146, not in 1.0.0.147

MessageSent byCommand it had
CooldownSetclient134 on requests

Laid out differently

  • AppearancePushed
    • how is in 1.0.0.147 (1-byte bits), after entry, and not in 1.0.0.146.
    • overrideSpells is in 1.0.0.146 and not in 1.0.0.147.
    • modelOnly is in 1.0.0.146 and not in 1.0.0.147.
  • CameraLockSet
    • state is in 1.0.0.147 (1-byte bits) at the start, and not in 1.0.0.146.
    • locked is in 1.0.0.146 and not in 1.0.0.147.
  • CancelTargeting
    • which.slot is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • which.summonerSpell is at bit 7 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • which has unused at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • CastSpell (vectors: one-on-1-0-0-147)
    • how.slot is at bit 1, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • how.summonerSpell is at bit 0 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • how has clicked at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • ClientEvent (vectors: alert-on-1-0-0-147, baron-killed-on-1-0-0-147, baron-killed-watched-on-1-0-0-147, buff-on-1-0-0-147, consumable-bought-on-1-0-0-147, critical-strike-on-1-0-0-147, damage-dealt-on-1-0-0-147, damage-taken-on-1-0-0-147, death-assist-on-1-0-0-147, died-on-1-0-0-147, dragon-killed-on-1-0-0-147, dragon-killed-watched-on-1-0-0-147, gold-earned-on-1-0-0-147, gold-spent-on-1-0-0-147, heal-cast-on-1-0-0-147, heal-on-1-0-0-147, item-bought-on-1-0-0-147, item-callout-on-1-0-0-147, killing-spree-on-1-0-0-147, one-on-1-0-0-147, point-acaptured-on-1-0-0-147, point-aneutralized-on-1-0-0-147, point-bcaptured-on-1-0-0-147, point-bneutralized-on-1-0-0-147, point-ccaptured-on-1-0-0-147, point-cneutralized-on-1-0-0-147, point-dcaptured-on-1-0-0-147, point-dneutralized-on-1-0-0-147, point-ecaptured-on-1-0-0-147, point-eneutralized-on-1-0-0-147, removed-on-1-0-0-147, start-notice-five-on-1-0-0-147, start-notice-four-on-1-0-0-147, start-notice-three-on-1-0-0-147, start-notice-two-on-1-0-0-147, surrender-agreed-on-1-0-0-147, surrender-failed-on-1-0-0-147, surrender-vote-cast-on-1-0-0-147, surrender-vote-spam-on-1-0-0-147, surrender-vote-started-on-1-0-0-147, welcome-on-1-0-0-147)
    • stage is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • damage.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • damage.parent is 4-byte bits in 1.0.0.146 and 2-byte bits in 1.0.0.147.
    • damage.parent.unused is at bit 15, 17 bits wide, in 1.0.0.146 and at bit 15, 1 bits wide, in 1.0.0.147.
    • heal.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • heal.parentCaster is in 1.0.0.147 (u32), after heal.parentScript, and not in 1.0.0.146.
    • heal.parent is in 1.0.0.147 (2-byte bits), after heal.parentCaster, and not in 1.0.0.146.
    • effect.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • effect.parentCaster is in 1.0.0.147 (u32), after effect.parentScript, and not in 1.0.0.146.
    • effect.parent is in 1.0.0.147 (2-byte bits), after effect.parentCaster, and not in 1.0.0.146.
    • votes is in 1.0.0.147 (record), after callout.side, and not in 1.0.0.146.
    • alert is in 1.0.0.147 (record), after votes.side, and not in 1.0.0.146.
    • number is in 1.0.0.147 (u32), after alert.second, and not in 1.0.0.146.
    • heal.spellLevel is in 1.0.0.146 and not in 1.0.0.147.
    • heal.parentSource is in 1.0.0.146 and not in 1.0.0.147.
    • heal.unused is in 1.0.0.146 and not in 1.0.0.147.
    • heal.unusedToo is in 1.0.0.146 and not in 1.0.0.147.
    • effect.spellLevel is in 1.0.0.146 and not in 1.0.0.147.
    • effect.parentSource is in 1.0.0.146 and not in 1.0.0.147.
    • effect.unused is in 1.0.0.146 and not in 1.0.0.147.
    • effect.unusedToo is in 1.0.0.146 and not in 1.0.0.147.
  • CreateChampion
    • how is 4-byte bits in 1.0.0.146 and 1-byte bits in 1.0.0.147.
    • how.unused is at bit 3, 29 bits wide, in 1.0.0.146 and at bit 3, 5 bits wide, in 1.0.0.147.
  • Damage
    • how.result is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 3 bits wide, in 1.0.0.147.
    • how has unused1 at bit 3 in 1.0.0.147, and not in 1.0.0.146.
    • how has kind at bit 4 in 1.0.0.147, and not in 1.0.0.146.
    • how.unused is at bit 7, 1 bits wide, in 1.0.0.146 and at bit 6, 2 bits wide, in 1.0.0.147.
    • damageKind is in 1.0.0.146 and not in 1.0.0.147.
  • DeathHistory (vectors: one-on-1-0-0-147)
    • entries[].stage is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • entries[].damage.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • entries[].damage.parent is 4-byte bits in 1.0.0.146 and 2-byte bits in 1.0.0.147.
    • entries[].damage.parent.unused is at bit 15, 17 bits wide, in 1.0.0.146 and at bit 15, 1 bits wide, in 1.0.0.147.
    • entries[].heal.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • entries[].heal.parentCaster is in 1.0.0.147 (u32), after entries[].heal.parentScript, and not in 1.0.0.146.
    • entries[].heal.parent is in 1.0.0.147 (2-byte bits), after entries[].heal.parentCaster, and not in 1.0.0.146.
    • entries[].effect.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • entries[].effect.parentCaster is in 1.0.0.147 (u32), after entries[].effect.parentScript, and not in 1.0.0.146.
    • entries[].effect.parent is in 1.0.0.147 (2-byte bits), after entries[].effect.parentCaster, and not in 1.0.0.146.
    • entries[].heal.spellLevel is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].heal.parentSource is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].heal.unused is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].heal.unusedToo is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].effect.spellLevel is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].effect.parentSource is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].effect.unused is in 1.0.0.146 and not in 1.0.0.147.
    • entries[].effect.unusedToo is in 1.0.0.146 and not in 1.0.0.147.
  • FogSet
    • state is in 1.0.0.147 (1-byte bits) at the start, and not in 1.0.0.146.
    • shown is in 1.0.0.146 and not in 1.0.0.147.
  • InhibitorState
    • state names bit 15 unused in 1.0.0.146 and alive in 1.0.0.147.
    • life is in 1.0.0.146 and not in 1.0.0.147.
  • InputLock
    • state is in 1.0.0.147 (1-byte bits), after category, and not in 1.0.0.146.
    • locked is in 1.0.0.146 and not in 1.0.0.147.
  • ItemAdded
    • how.unused is at bit 1, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • how.announce is at bit 0 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • how has unused7 at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • JoinSide
    • padding is in 1.0.0.146 and not in 1.0.0.147.
  • LoadingProgress
    • status names bit 31 unused in 1.0.0.146 and loaded in 1.0.0.147.
    • done is in 1.0.0.146 and not in 1.0.0.147.
  • MapProp
    • side is 4-byte bits in 1.0.0.146 and 2-byte bits in 1.0.0.147.
    • side.unused is at bit 9, 23 bits wide, in 1.0.0.146 and at bit 9, 7 bits wide, in 1.0.0.147.
  • MovementBounds
    • flags is in 1.0.0.147 (1-byte bits), after radius, and not in 1.0.0.146.
    • camera is in 1.0.0.146 and not in 1.0.0.147.
  • PauseAnimation
    • state is in 1.0.0.147 (1-byte bits) at the start, and not in 1.0.0.146.
    • paused is in 1.0.0.146 and not in 1.0.0.147.
  • Roster
    • padding is in 1.0.0.146 and not in 1.0.0.147.
    • gap is in 1.0.0.146 and not in 1.0.0.147.
  • SeatChampion
    • padding is in 1.0.0.146 and not in 1.0.0.147.
  • SeatName
    • padding is in 1.0.0.146 and not in 1.0.0.147.
  • ShopEnabled
    • flags is in 1.0.0.147 (1-byte bits) at the start, and not in 1.0.0.146.
    • enabled is in 1.0.0.146 and not in 1.0.0.147.
  • SpawnBot
    • sides is 4-byte bits in 1.0.0.146 and 2-byte bits in 1.0.0.147.
    • sides.unused is at bit 9, 23 bits wide, in 1.0.0.146 and at bit 9, 7 bits wide, in 1.0.0.147.
  • SpawnPet
    • flags has minimapIcon at bit 2 in 1.0.0.147, and not in 1.0.0.146.
    • flags.unused is at bit 2, 6 bits wide, in 1.0.0.146 and at bit 3, 5 bits wide, in 1.0.0.147.
    • minimapIcon is in 1.0.0.146 and not in 1.0.0.147.
  • SpawnUnit
    • flags is 1-byte bits in 1.0.0.146 and 2-byte bits in 1.0.0.147.
    • flags has team at bit 0 in 1.0.0.147, and not in 1.0.0.146.
    • flags.ignoreCollision is at bit 0 in 1.0.0.146 and at bit 9 in 1.0.0.147.
    • flags.ward is at bit 1 in 1.0.0.146 and at bit 10 in 1.0.0.147.
    • flags.laneMinion is at bit 2 in 1.0.0.146 and at bit 11 in 1.0.0.147.
    • flags.bot is at bit 3 in 1.0.0.146 and at bit 12 in 1.0.0.147.
    • flags.unused is at bit 4, 4 bits wide, in 1.0.0.146 and at bit 13, 3 bits wide, in 1.0.0.147.
    • team is in 1.0.0.146 and not in 1.0.0.147.
  • SpellCastAnswer
    • how is in 1.0.0.147 (1-byte bits), after syncId, and not in 1.0.0.146.
    • endCharge is in 1.0.0.146 and not in 1.0.0.147.
  • SpellCharge
    • flags.slot is at bit 1, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • flags.summonerSpell is at bit 0 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • flags has end at bit 7 in 1.0.0.147, and not in 1.0.0.146.
    • end is in 1.0.0.146 and not in 1.0.0.147.
  • SpellCooldown
    • which.slot is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • which.summonerSpell is at bit 7 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • which has speakWhenReady at bit 7 in 1.0.0.147, and not in 1.0.0.146.
    • then is in 1.0.0.146 and not in 1.0.0.147.
  • SpellIconChanged
    • which.slot is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • which.summonerSlots is at bit 7 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • which has unused at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • SpellNameChanged
    • which.slot is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • which.summonerSlots is at bit 7 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • which has unused at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • SpellOffsetTargetChanged
    • which.slot is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • which.summonerSlots is at bit 7 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • which has unused at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • SpellTargetingChanged
    • which.slot is at bit 0, 7 bits wide, in 1.0.0.146 and at bit 0, 6 bits wide, in 1.0.0.147.
    • which.summonerSlots is at bit 7 in 1.0.0.146 and at bit 6 in 1.0.0.147.
    • which has unused at bit 7 in 1.0.0.147, and not in 1.0.0.146.
  • StartGame
    • rules.unused is at bit 2, 6 bits wide, in 1.0.0.146 and at bit 1, 7 bits wide, in 1.0.0.147.
    • rules has notice at bit 1 in 1.0.0.146, and not in 1.0.0.147.
  • SurrenderStatus
    • reason is u32 in 1.0.0.146 and u8 in 1.0.0.147.
  • UnitDied
    • how is in 1.0.0.147 (1-byte bits), after stayDown, and not in 1.0.0.146.
    • standing is in 1.0.0.146 and not in 1.0.0.147.
  • VersionSync (vectors: one-on-1-0-0-147)
    • agreement is u8 in 1.0.0.146 and 1-byte bits in 1.0.0.147.
    • agreement has buildMatches at bit 0 in 1.0.0.147, and not in 1.0.0.146.
    • agreement has reportsToFile at bit 1 in 1.0.0.147, and not in 1.0.0.146.
    • agreement has matched at bit 2 in 1.0.0.147, and not in 1.0.0.146.
    • agreement has unused at bit 3 in 1.0.0.147, and not in 1.0.0.146.
    • reporting is in 1.0.0.146 and not in 1.0.0.147.
  • WorldEvent (vectors: baron-killed-on-1-0-0-147, baron-killed-watched-on-1-0-0-147, buff-on-1-0-0-147, consumable-bought-on-1-0-0-147, critical-strike-on-1-0-0-147, damage-dealt-on-1-0-0-147, damage-taken-on-1-0-0-147, death-assist-on-1-0-0-147, died-on-1-0-0-147, dragon-killed-on-1-0-0-147, dragon-killed-watched-on-1-0-0-147, gold-earned-on-1-0-0-147, gold-spent-on-1-0-0-147, heal-cast-on-1-0-0-147, heal-on-1-0-0-147, item-bought-on-1-0-0-147, item-callout-on-1-0-0-147, killing-spree-on-1-0-0-147, one-on-1-0-0-147, removed-on-1-0-0-147)
    • stage is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • damage.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • damage.parent is 4-byte bits in 1.0.0.146 and 2-byte bits in 1.0.0.147.
    • damage.parent.unused is at bit 15, 17 bits wide, in 1.0.0.146 and at bit 15, 1 bits wide, in 1.0.0.147.
    • heal.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • heal.parentCaster is in 1.0.0.147 (u32), after heal.parentScript, and not in 1.0.0.146.
    • heal.parent is in 1.0.0.147 (2-byte bits), after heal.parentCaster, and not in 1.0.0.146.
    • effect.sourceKind is u32 in 1.0.0.146 and u8 in 1.0.0.147.
    • effect.parentCaster is in 1.0.0.147 (u32), after effect.parentScript, and not in 1.0.0.146.
    • effect.parent is in 1.0.0.147 (2-byte bits), after effect.parentCaster, and not in 1.0.0.146.
    • heal.spellLevel is in 1.0.0.146 and not in 1.0.0.147.
    • heal.parentSource is in 1.0.0.146 and not in 1.0.0.147.
    • heal.unused is in 1.0.0.146 and not in 1.0.0.147.
    • heal.unusedToo is in 1.0.0.146 and not in 1.0.0.147.
    • effect.spellLevel is in 1.0.0.146 and not in 1.0.0.147.
    • effect.parentSource is in 1.0.0.146 and not in 1.0.0.147.
    • effect.unused is in 1.0.0.146 and not in 1.0.0.147.
    • effect.unusedToo is in 1.0.0.146 and not in 1.0.0.147.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.147:

  • VoiceOverride, flags: “Whether to reset.”, where 1.0.0.146 has “Whether to reset. A client compares the whole byte with 1, so a server writes the other bits zero.”

1.0.0.148

Client builds from 1.0.0.148 up to, not including, 1.0.0.149. Patch notes: V1.0.0.148.

Build checkedPassedFailedSkippedCommitDate
1.0.0.148100488638592026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CooldownSet, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (222)
MessageCommand
AfkWarning184
AnimationOverrides107
AppearanceCleared200
AppearancePopped103
AppearancePushed151
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick222
BotState170
BotTargets105
BuildingDied138
BuyItem131
Camera45
CameraAck43
CameraBehaviour115
CameraLock130
CameraLockSet121
CampCleared195
CampOpened233
CancelTargeting135
CapturePointChanged211
CastSpell154
ChainTargets108
ChampionDied94
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished141
ClientReady82
ClientVersion189
ClockConvergence118
ClockReply8
ClockSync193
CloseShop14
CreateChampion76
CreateFollower241
CreateNeutral99
CreateTurret157
Damage101
DeathHistory33
DestroyMissile90
EffectAdded183
EffectAddedGroup104
EffectCount28
EffectCountGroup191
EffectRemoved124
EffectRemovedGroup148
EffectReplaced47
EffectReplacedGroup30
EmotePlayed68
EnterLocalSight174
EnterSight186
EnterTeamSight224
Exit143
ExperienceGained16
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved49
FadeSounds95
FadeTo178
FloatingText24
FogSet171
FogToggled127
FollowerMaster242
ForceDeath27
GameEnded198
GameSpeed18
GoldEarned228
GoldGained34
GoldRedirect7
GreyscaleWhenDead169
HealthBar206
HudDisabled188
HudHighlighted63
HudHighlightToggled79
InhibitorState42
InputLock133
InputLockToggled155
InventorySlot83
ItemAdded111
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight81
LeaveTeamSight225
LevelUp65
LoadingProgress22
Loadout41
MapPing87
MapProp208
MapPropChanged209
MatchIdentity146
MatchStarted194
MinimapIcon216
MissileCourse62
MissileHits37
MissileReport61
MissileRetarget238
MissileState61
ModulePacket223
MoveCamera36
MovementBounds6
MoveOrder114
MusicCue220
NavigationFlags67
NexusIdle4
NexusSkin116
ObjectiveHidden162
ObjectiveReplaced13
ObjectiveShown56
ParticleEnterTeamSight226
ParticleLeaveTeamSight227
ParticlesCreated136
ParticleSource210
Path185
PathWithSpeed132
Pause161
PauseAnimation113
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus20
QueryStatusAnswer137
QuestEvent205
QuestUpdated140
Reconnected15
ReconnectedInMatch156
RegionAdded120
RegionAttached35
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint213
Resume10
Resumed10
Revived46
Roster103
ScoreAdded217
ScreenTint219
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject175
ShieldAdded102
ShopEnabled240
Shutdown229
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SoftReconnect239
SpawnBot207
SpawnEnd17
SpawnFromBarracks3
SpawnPet57
SpawnStart98
SpawnUnit125
SpellCastAnswer181
SpellCharge230
SpellCooldown134
SpellIconChanged51
SpellInSlot112
SpellLevel91
SpellNameChanged50
SpellNumbers128
SpellOffsetTargetChanged52
SpellTargetingChanged23
SpellUpgraded21
StartGame92
StatisticIncremented218
StatsRequest86
StatTick39
StopAnimation40
StopAttack54
StreamRequest234
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled201
SwapItems32
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown85
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed204
TutorialShopOpened93
UiHighlight202
UnitDied158
UnitHighlighted89
UnitHighlightRemoved180
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell59
UseObject60
VersionSync84
VictoryDance197
VoiceCommand69
VoiceEvent122
VoiceEventDone5
VoiceOverride150
VolumeMuted38
WaypointAck119
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent70

Against 1.0.0.147

Where a build from 1.0.0.148 up to, not including, 1.0.0.149 differs from one from 1.0.0.147 up to, not including, 1.0.0.148. Anything not named here is the same in both.

Laid out differently

Structs

  • Seat
    • botSkin is in 1.0.0.148 (i32), after botAsset, and not in 1.0.0.147.
    • allyBadge is in 1.0.0.148 (u8), after icon, and not in 1.0.0.147.
    • enemyBadge is in 1.0.0.148 (u8), after allyBadge, and not in 1.0.0.147.

1.0.0.149

Client builds from 1.0.0.149 up to, not including, 1.0.0.150. Patch notes: V1.0.0.149.

Build checkedPassedFailedSkippedCommitDate
1.0.0.149100415137a62026-10-24

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CooldownSet, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellRangeChanged, SpellSlotChanged, SystemMessage.

Every message of this range (222)
MessageCommand
AfkWarning184
AnimationOverrides107
AppearanceCleared200
AppearancePopped103
AppearancePushed151
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick222
BotState170
BotTargets105
BuildingDied138
BuyItem131
Camera45
CameraAck43
CameraBehaviour115
CameraLock130
CameraLockSet121
CampCleared195
CampOpened233
CancelTargeting135
CapturePointChanged211
CastSpell154
ChainTargets108
ChampionDied94
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished141
ClientReady82
ClientVersion189
ClockConvergence118
ClockReply8
ClockSync193
CloseShop14
CreateChampion76
CreateFollower241
CreateNeutral99
CreateTurret157
Damage101
DeathHistory33
DestroyMissile90
EffectAdded183
EffectAddedGroup104
EffectCount28
EffectCountGroup191
EffectRemoved124
EffectRemovedGroup148
EffectReplaced47
EffectReplacedGroup30
EmotePlayed68
EnterLocalSight174
EnterSight186
EnterTeamSight224
Exit143
ExperienceGained16
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved49
FadeSounds95
FadeTo178
FloatingText24
FogSet171
FogToggled127
FollowerMaster242
ForceDeath27
GameEnded198
GameSpeed18
GoldEarned228
GoldGained34
GoldRedirect7
GreyscaleWhenDead169
HealthBar206
HudDisabled188
HudHighlighted63
HudHighlightToggled79
InhibitorState42
InputLock133
InputLockToggled155
InventorySlot83
ItemAdded111
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight81
LeaveTeamSight225
LevelUp65
LoadingProgress22
Loadout41
MapPing87
MapProp208
MapPropChanged209
MatchIdentity146
MatchStarted194
MinimapIcon216
MissileCourse62
MissileHits37
MissileReport61
MissileRetarget238
MissileState61
ModulePacket223
MoveCamera36
MovementBounds6
MoveOrder114
MusicCue220
NavigationFlags67
NexusIdle4
NexusSkin116
ObjectiveHidden162
ObjectiveReplaced13
ObjectiveShown56
ParticleEnterTeamSight226
ParticleLeaveTeamSight227
ParticlesCreated136
ParticleSource210
Path185
PathWithSpeed132
Pause161
PauseAnimation113
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus20
QueryStatusAnswer137
QuestEvent205
QuestUpdated140
Reconnected15
ReconnectedInMatch156
RegionAdded120
RegionAttached35
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint213
Resume10
Resumed10
Revived46
Roster103
ScoreAdded217
ScreenTint219
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject175
ShieldAdded102
ShopEnabled240
Shutdown229
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SoftReconnect239
SpawnBot207
SpawnEnd17
SpawnFromBarracks3
SpawnPet57
SpawnStart98
SpawnUnit125
SpellCastAnswer181
SpellCharge230
SpellCooldown134
SpellIconChanged51
SpellInSlot112
SpellLevel91
SpellNameChanged50
SpellNumbers128
SpellOffsetTargetChanged52
SpellTargetingChanged23
SpellUpgraded21
StartGame92
StatisticIncremented218
StatsRequest86
StatTick39
StopAnimation40
StopAttack54
StreamRequest234
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled201
SwapItems32
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown85
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed204
TutorialShopOpened93
UiHighlight202
UnitDied158
UnitHighlighted89
UnitHighlightRemoved180
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell59
UseObject60
VersionSync84
VictoryDance197
VoiceCommand69
VoiceEvent122
VoiceEventDone5
VoiceOverride150
VolumeMuted38
WaypointAck119
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent70

Against 1.0.0.148

Where a build from 1.0.0.149 up to, not including, 1.0.0.150 differs from one from 1.0.0.148 up to, not including, 1.0.0.149. Anything not named here is the same in both.

Laid out differently

1.0.0.150

Client builds from 1.0.0.150 up to, not including, 1.0.0.151. Patch notes: V1.0.0.150.

Build checkedPassedFailedSkippedCommitDate
1.0.0.15010042b5cb062026-10-23

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CooldownSet, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellIconChanged, SpellNameChanged, SpellOffsetTargetChanged, SpellRangeChanged, SpellTargetingChanged, SystemMessage.

Every message of this range (219)
MessageCommand
AfkWarning181
AnimationOverrides104
AppearanceCleared197
AppearancePopped100
AppearancePushed148
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick219
BotState167
BotTargets102
BuildingDied135
BuyItem128
Camera45
CameraAck43
CameraBehaviour112
CameraLock127
CameraLockSet118
CampCleared192
CampOpened230
CancelTargeting132
CapturePointChanged208
CastSpell151
ChainTargets105
ChampionDied91
ChampionStats68
CharacterSelected187
Chat0
ClientEvent160
ClientFinished138
ClientReady79
ClientVersion186
ClockConvergence115
ClockReply8
ClockSync190
CloseShop14
CreateChampion73
CreateFollower238
CreateNeutral96
CreateTurret154
Damage98
DeathHistory33
DestroyMissile87
EffectAdded180
EffectAddedGroup101
EffectCount28
EffectCountGroup188
EffectRemoved121
EffectRemovedGroup145
EffectReplaced47
EffectReplacedGroup30
EmotePlayed65
EnterLocalSight171
EnterSight183
EnterTeamSight221
Exit140
ExperienceGained16
FaceDirection77
FacePosition77
FadeMinions200
FadeRemoved49
FadeSounds92
FadeTo175
FloatingText24
FogSet168
FogToggled124
FollowerMaster239
ForceDeath27
GameEnded195
GameSpeed18
GoldEarned225
GoldGained34
GoldRedirect7
GreyscaleWhenDead166
HealthBar203
HudDisabled185
HudHighlighted60
HudHighlightToggled76
InhibitorState42
InputLock130
InputLockToggled152
InventorySlot80
ItemAdded108
ItemUsed156
JoinSide100
KillParticle55
LeaveLocalSight52
LeaveSight78
LeaveTeamSight222
LevelUp62
LoadingProgress22
Loadout41
MapPing84
MapProp205
MapPropChanged206
MatchIdentity143
MatchStarted191
MinimapIcon213
MissileCourse59
MissileHits37
MissileReport58
MissileRetarget235
MissileState58
ModulePacket220
MoveCamera36
MovementBounds6
MoveOrder111
MusicCue217
NavigationFlags64
NexusIdle4
NexusSkin113
ObjectiveHidden159
ObjectiveReplaced13
ObjectiveShown53
ParticleEnterTeamSight223
ParticleLeaveTeamSight224
ParticlesCreated133
ParticleSource207
Path182
PathWithSpeed129
Pause158
PauseAnimation110
Paused158
PingPlaced63
PlayAnimation173
PlayEmote69
PlayerDisconnected149
QueryStatus20
QueryStatusAnswer134
QuestEvent202
QuestUpdated137
Reconnected15
ReconnectedInMatch153
RegionAdded117
RegionAttached35
RegionRemoved50
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication193
ResourceColours144
Respawned71
RespawnPoint210
Resume10
Resumed10
Revived46
Roster103
ScoreAdded214
ScreenTint216
SeatChampion101
SeatLoadProgress146
SeatName102
SelectObject172
ShieldAdded99
ShopEnabled237
Shutdown226
SideTextHidden164
SideTextRefreshed174
SideTextShown157
SoftReconnect236
SpawnBot204
SpawnEnd17
SpawnFromBarracks3
SpawnPet54
SpawnStart95
SpawnUnit122
SpellCastAnswer178
SpellCharge227
SpellCooldown131
SpellInSlot109
SpellLevel88
SpellNumbers125
SpellSlotChanged23
SpellUpgraded21
StartGame89
StatisticIncremented215
StatsRequest83
StatTick39
StopAnimation40
StopAttack51
StreamRequest231
SurrenderStatus162
SurrenderVote161
SurrenderVoteCalled198
SwapItems32
SwapItemsAnswer61
TargetHeldChampion189
TargetUnit103
TeamChanged212
TeamScore209
TipEvent106
TipShown82
TransientAck165
TutorialChatLine2
TutorialPopup176
TutorialPopupClosed201
TutorialShopOpened90
UiHighlight199
UnitDied155
UnitHighlighted86
UnitHighlightRemoved177
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell56
UseObject57
VersionSync81
VictoryDance194
VoiceCommand66
VoiceEvent119
VoiceEventDone5
VoiceOverride147
VolumeMuted38
WaypointAck116
WaypointGroup94
WaypointGroupAtSpeed97
WorldEvent67

Against 1.0.0.149

Where a build from 1.0.0.150 up to, not including, 1.0.0.151 differs from one from 1.0.0.149 up to, not including, 1.0.0.150. Anything not named here is the same in both.

In 1.0.0.150, not in 1.0.0.149

MessageSent byCommandWhat it does
SpellSlotChangedserver23 on eventsChange one thing about a spell already in a unit’s slot

In 1.0.0.149, not in 1.0.0.150

MessageSent byCommand it had
SpellIconChangedserver51 on events
SpellNameChangedserver50 on events
SpellOffsetTargetChangedserver52 on events
SpellTargetingChangedserver23 on events

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1491.0.0.150Messages
clock118115ClockConvergence
events53–24250–239RegionRemoved, StopAttack, LeaveLocalSight, ObjectiveShown, SpawnPet, KillParticle, MissileState, MissileCourse, HudHighlighted, SwapItemsAnswer, LevelUp, PingPlaced, NavigationFlags, EmotePlayed, VoiceCommand, WorldEvent, ChampionStats, Respawned, CreateChampion, HudHighlightToggled, FaceDirection, LeaveSight, InventorySlot, TipShown, UnitHighlighted, DestroyMissile, SpellLevel, StartGame, FadeSounds, SpawnStart, CreateNeutral, WaypointGroupAtSpeed, Damage, ShieldAdded, AppearancePopped, EffectAddedGroup, BotTargets, TargetUnit, AnimationOverrides, ChainTargets, ItemAdded, SpellInSlot, PauseAnimation, CameraBehaviour, NexusSkin, CameraLockSet, VoiceEvent, EffectRemoved, SpawnUnit, FogToggled, SpellNumbers, PathWithSpeed, InputLock, SpellCooldown, CancelTargeting, ParticlesCreated, QueryStatusAnswer, BuildingDied, QuestUpdated, ResourceColours, EffectRemovedGroup, VoiceOverride, AppearancePushed, PlayerDisconnected, InputLockToggled, CreateTurret, UnitDied, ItemUsed, SideTextShown, Paused, ObjectiveHidden, ClientEvent, SurrenderStatus, SideTextHidden, GreyscaleWhenDead, BotState, FogSet, EnterLocalSight, PlayAnimation, SideTextRefreshed, FadeTo, TutorialPopup, UnitHighlightRemoved, SpellCastAnswer, EffectAdded, AfkWarning, Path, EnterSight, HudDisabled, EffectCountGroup, TargetHeldChampion, ClockSync, MatchStarted, CampCleared, VictoryDance, GameEnded, AppearanceCleared, SurrenderVoteCalled, UiHighlight, FadeMinions, HealthBar, SpawnBot, MapProp, MapPropChanged, CapturePointChanged, TeamScore, RespawnPoint, TeamChanged, MinimapIcon, ScoreAdded, StatisticIncremented, ScreenTint, MusicCue, BotKick, EnterTeamSight, LeaveTeamSight, ParticleEnterTeamSight, ParticleLeaveTeamSight, GoldEarned, Shutdown, CampOpened, MissileRetarget, SoftReconnect, ShopEnabled, CreateFollower, FollowerMaster
requests59–23456–231UpgradeSpell, UseObject, MissileReport, PlayEmote, FacePosition, StatsRequest, MapPing, TutorialShopOpened, TipEvent, MoveOrder, WaypointAck, CameraLock, BuyItem, ClientFinished, Exit, CastSpell, ReconnectedInMatch, Pause, SurrenderVote, TransientAck, SelectObject, ClientVersion, CharacterSelected, TutorialPopupClosed, QuestEvent, ModulePacket, SpellCharge, StreamRequest
transient97–19694–193WaypointGroup, SeatLoadProgress, Replication

Laid out differently

  • ChampionDied
    • Its command is 94 in 1.0.0.149 and 91 in 1.0.0.150.
    • kind is in 1.0.0.150 (u8), after how, and not in 1.0.0.149.
  • ClientReady
    • Its command is 82 in 1.0.0.149 and 79 in 1.0.0.150.
    • settings is in 1.0.0.150 (1-byte bits), after tipDuration, and not in 1.0.0.149.
    • loadingTips is in 1.0.0.149 and not in 1.0.0.150.
    • playingTips is in 1.0.0.149 and not in 1.0.0.150.
  • MatchIdentity
    • Its command is 146 in 1.0.0.149 and 143 in 1.0.0.150.
    • platform is in 1.0.0.150 (text, 32 bytes), after game, and not in 1.0.0.149.
  • ParticleSource
    • Its command is 210 in 1.0.0.149 and 207 in 1.0.0.150.
    • source takes 2 resourceSmoothed in 1.0.0.150 and not in 1.0.0.149.
  • RegionAdded
    • Its command is 120 in 1.0.0.149 and 117 in 1.0.0.150.
    • does.unused is at bit 2, 30 bits wide, in 1.0.0.149 and at bit 1, 31 bits wide, in 1.0.0.150.
    • does has second at bit 1 in 1.0.0.149, and not in 1.0.0.150.
    • extra is in 1.0.0.149 and not in 1.0.0.150.
    • otherExtra is in 1.0.0.149 and not in 1.0.0.150.
  • RegionAttached
    • does.unused is at bit 2, 30 bits wide, in 1.0.0.149 and at bit 1, 31 bits wide, in 1.0.0.150.
    • does has second at bit 1 in 1.0.0.149, and not in 1.0.0.150.
    • extra is in 1.0.0.149 and not in 1.0.0.150.
    • otherExtra is in 1.0.0.149 and not in 1.0.0.150.
  • VersionSync (vectors: one-on-1-0-0-150)
    • Its command is 84 in 1.0.0.149 and 81 in 1.0.0.150.
    • tipFlags is in 1.0.0.150 (1-byte bits), after tipDuration, and not in 1.0.0.149.
    • loadingTips is in 1.0.0.149 and not in 1.0.0.150.
    • playingTips is in 1.0.0.149 and not in 1.0.0.150.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.150 and not 1.0.0.149: ParticlesCreated does not replace a marked object holding its net id: that object stays until the removing stage.

1.0.0.151

Client builds from 1.0.0.151 up to, not including, 1.0.0.152. Patch notes: V1.0.0.151.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1511004c8771b32026-10-23

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CooldownSet, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellIconChanged, SpellNameChanged, SpellOffsetTargetChanged, SpellRangeChanged, SpellTargetingChanged, SystemMessage.

Every message of this range (219)
MessageCommand
AfkWarning181
AnimationOverrides104
AppearanceCleared197
AppearancePopped100
AppearancePushed148
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick219
BotState167
BotTargets102
BuildingDied135
BuyItem128
Camera45
CameraAck43
CameraBehaviour112
CameraLock127
CameraLockSet118
CampCleared192
CampOpened230
CancelTargeting132
CapturePointChanged208
CastSpell151
ChainTargets105
ChampionDied91
ChampionStats68
CharacterSelected187
Chat0
ClientEvent160
ClientFinished138
ClientReady79
ClientVersion186
ClockConvergence115
ClockReply8
ClockSync190
CloseShop14
CreateChampion73
CreateFollower238
CreateNeutral96
CreateTurret154
Damage98
DeathHistory33
DestroyMissile87
EffectAdded180
EffectAddedGroup101
EffectCount28
EffectCountGroup188
EffectRemoved121
EffectRemovedGroup145
EffectReplaced47
EffectReplacedGroup30
EmotePlayed65
EnterLocalSight171
EnterSight183
EnterTeamSight221
Exit140
ExperienceGained16
FaceDirection77
FacePosition77
FadeMinions200
FadeRemoved49
FadeSounds92
FadeTo175
FloatingText24
FogSet168
FogToggled124
FollowerMaster239
ForceDeath27
GameEnded195
GameSpeed18
GoldEarned225
GoldGained34
GoldRedirect7
GreyscaleWhenDead166
HealthBar203
HudDisabled185
HudHighlighted60
HudHighlightToggled76
InhibitorState42
InputLock130
InputLockToggled152
InventorySlot80
ItemAdded108
ItemUsed156
JoinSide100
KillParticle55
LeaveLocalSight52
LeaveSight78
LeaveTeamSight222
LevelUp62
LoadingProgress22
Loadout41
MapPing84
MapProp205
MapPropChanged206
MatchIdentity143
MatchStarted191
MinimapIcon213
MissileCourse59
MissileHits37
MissileReport58
MissileRetarget235
MissileState58
ModulePacket220
MoveCamera36
MovementBounds6
MoveOrder111
MusicCue217
NavigationFlags64
NexusIdle4
NexusSkin113
ObjectiveHidden159
ObjectiveReplaced13
ObjectiveShown53
ParticleEnterTeamSight223
ParticleLeaveTeamSight224
ParticlesCreated133
ParticleSource207
Path182
PathWithSpeed129
Pause158
PauseAnimation110
Paused158
PingPlaced63
PlayAnimation173
PlayEmote69
PlayerDisconnected149
QueryStatus20
QueryStatusAnswer134
QuestEvent202
QuestUpdated137
Reconnected15
ReconnectedInMatch153
RegionAdded117
RegionAttached35
RegionRemoved50
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication193
ResourceColours144
Respawned71
RespawnPoint210
Resume10
Resumed10
Revived46
Roster103
ScoreAdded214
ScreenTint216
SeatChampion101
SeatLoadProgress146
SeatName102
SelectObject172
ShieldAdded99
ShopEnabled237
Shutdown226
SideTextHidden164
SideTextRefreshed174
SideTextShown157
SoftReconnect236
SpawnBot204
SpawnEnd17
SpawnFromBarracks3
SpawnPet54
SpawnStart95
SpawnUnit122
SpellCastAnswer178
SpellCharge227
SpellCooldown131
SpellInSlot109
SpellLevel88
SpellNumbers125
SpellSlotChanged23
SpellUpgraded21
StartGame89
StatisticIncremented215
StatsRequest83
StatTick39
StopAnimation40
StopAttack51
StreamRequest231
SurrenderStatus162
SurrenderVote161
SurrenderVoteCalled198
SwapItems32
SwapItemsAnswer61
TargetHeldChampion189
TargetUnit103
TeamChanged212
TeamScore209
TipEvent106
TipShown82
TransientAck165
TutorialChatLine2
TutorialPopup176
TutorialPopupClosed201
TutorialShopOpened90
UiHighlight199
UnitDied155
UnitHighlighted86
UnitHighlightRemoved177
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell56
UseObject57
VersionSync81
VictoryDance194
VoiceCommand66
VoiceEvent119
VoiceEventDone5
VoiceOverride147
VolumeMuted38
WaypointAck116
WaypointGroup94
WaypointGroupAtSpeed97
WorldEvent67

Against 1.0.0.150

Where a build from 1.0.0.151 up to, not including, 1.0.0.152 differs from one from 1.0.0.150 up to, not including, 1.0.0.151. Anything not named here is the same in both.

Structs

  • Seat
    • standing is in 1.0.0.151 (text, 16 bytes), after botAsset, and not in 1.0.0.150.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.150 and not 1.0.0.151: ParticlesCreated does not replace a marked object holding its net id: that object stays until the removing stage.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.151:

  • Chat, audience: “1 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise.”, where 1.0.0.150 has “1 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone, except that where VersionSync hides all chat and the player has not turned it back on, a client does not show the line unless speaker is 4294967295. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise.”
  • Chat, text: “The line; a client sends at most 127 bytes of it, and reads it up to the zero byte that ends it.”, where 1.0.0.150 has “The line; a client sends at most 511 bytes of it, and reads it up to the zero byte that ends it.”

1.0.0.152–1.0.0.153

Client builds from 1.0.0.152 up to, not including, 1.0.0.154. Patch notes: V1.0.0.152.

Build checkedPassedFailedSkippedCommitDate
1.0.0.152100435ed54a2026-10-23

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: ContextEmote, CooldownSet, HoverIndicator, HoverTarget, MinimapHighlighted, MissileLaunched, ShopHighlighted, SpellIconChanged, SpellNameChanged, SpellOffsetTargetChanged, SpellRangeChanged, SpellTargetingChanged, SystemMessage.

Every message of this range (219)
MessageCommand
AfkWarning181
AnimationOverrides104
AppearanceCleared197
AppearancePopped100
AppearancePushed148
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick219
BotState167
BotTargets102
BuildingDied135
BuyItem128
Camera45
CameraAck43
CameraBehaviour112
CameraLock127
CameraLockSet118
CampCleared192
CampOpened230
CancelTargeting132
CapturePointChanged208
CastSpell151
ChainTargets105
ChampionDied91
ChampionStats68
CharacterSelected187
Chat104
ClientEvent160
ClientFinished138
ClientReady79
ClientVersion186
ClockConvergence115
ClockReply8
ClockSync190
CloseShop14
CreateChampion73
CreateFollower238
CreateNeutral96
CreateTurret154
Damage98
DeathHistory33
DestroyMissile87
EffectAdded180
EffectAddedGroup101
EffectCount28
EffectCountGroup188
EffectRemoved121
EffectRemovedGroup145
EffectReplaced47
EffectReplacedGroup30
EmotePlayed65
EnterLocalSight171
EnterSight183
EnterTeamSight221
Exit140
ExperienceGained16
FaceDirection77
FacePosition77
FadeMinions200
FadeRemoved49
FadeSounds92
FadeTo175
FloatingText24
FogSet168
FogToggled124
FollowerMaster239
ForceDeath27
GameEnded195
GameSpeed18
GoldEarned225
GoldGained34
GoldRedirect7
GreyscaleWhenDead166
HealthBar203
HudDisabled185
HudHighlighted60
HudHighlightToggled76
InhibitorState42
InputLock130
InputLockToggled152
InventorySlot80
ItemAdded108
ItemUsed156
JoinSide100
KillParticle55
LeaveLocalSight52
LeaveSight78
LeaveTeamSight222
LevelUp62
LoadingProgress22
Loadout41
MapPing84
MapProp205
MapPropChanged206
MatchIdentity143
MatchStarted191
MinimapIcon213
MissileCourse59
MissileHits37
MissileReport58
MissileRetarget235
MissileState58
ModulePacket220
MoveCamera36
MovementBounds6
MoveOrder111
MusicCue217
NavigationFlags64
NexusIdle4
NexusSkin113
ObjectiveHidden159
ObjectiveReplaced13
ObjectiveShown53
ParticleEnterTeamSight223
ParticleLeaveTeamSight224
ParticlesCreated133
ParticleSource207
Path182
PathWithSpeed129
Pause158
PauseAnimation110
Paused158
PingPlaced63
PlayAnimation173
PlayEmote69
PlayerDisconnected149
QueryStatus20
QueryStatusAnswer134
QuestEvent202
QuestUpdated137
Reconnected15
ReconnectedInMatch153
RegionAdded117
RegionAttached35
RegionRemoved50
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication193
ResourceColours144
Respawned71
RespawnPoint210
Resume10
Resumed10
Revived46
Roster103
ScoreAdded214
ScreenTint216
SeatChampion101
SeatLoadProgress146
SeatName102
SelectObject172
ShieldAdded99
ShopEnabled237
Shutdown226
SideTextHidden164
SideTextRefreshed174
SideTextShown157
SoftReconnect236
SpawnBot204
SpawnEnd17
SpawnFromBarracks3
SpawnPet54
SpawnStart95
SpawnUnit122
SpellCastAnswer178
SpellCharge227
SpellCooldown131
SpellInSlot109
SpellLevel88
SpellNumbers125
SpellSlotChanged23
SpellUpgraded21
StartGame89
StatisticIncremented215
StatsRequest83
StatTick39
StopAnimation40
StopAttack51
StreamRequest231
SurrenderStatus162
SurrenderVote161
SurrenderVoteCalled198
SwapItems32
SwapItemsAnswer61
TargetHeldChampion189
TargetUnit103
TeamChanged212
TeamScore209
TipEvent106
TipShown82
TransientAck165
TutorialChatLine2
TutorialPopup176
TutorialPopupClosed201
TutorialShopOpened90
UiHighlight199
UnitDied155
UnitHighlighted86
UnitHighlightRemoved177
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell56
UseObject57
VersionSync81
VictoryDance194
VoiceCommand66
VoiceEvent119
VoiceEventDone5
VoiceOverride147
VolumeMuted38
WaypointAck116
WaypointGroup94
WaypointGroupAtSpeed97
WorldEvent67

Against 1.0.0.151

Where a build from 1.0.0.152 up to, not including, 1.0.0.154 differs from one from 1.0.0.151 up to, not including, 1.0.0.152. Anything not named here is the same in both.

Transport

  • The families differ: see families.json.
  • Channel chat is 5 in the chat family in 1.0.0.151, and 5 in the session family in 1.0.0.152–1.0.0.153.

Laid out differently

1.0.0.154–3.1.0.0

Client builds from 1.0.0.154 up to, not including, 3.01.0.1. Patch notes: V1.0.0.154.

Build checkedPassedFailedSkippedCommitDate
1.0.0.15411032363f662026-10-23

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CooldownSet, MinimapHighlighted, ShopHighlighted, SpellIconChanged, SpellNameChanged, SpellOffsetTargetChanged, SpellRangeChanged, SpellTargetingChanged.

Every message of this range (224)
MessageCommand
AfkWarning181
AnimationOverrides104
AppearanceCleared197
AppearancePopped100
AppearancePushed148
Attack12
AttackFrom26
Autocast31
BotDebug19
BotKick219
BotState167
BotTargets102
BuildingDied135
BuyItem128
Camera45
CameraAck43
CameraBehaviour112
CameraLock127
CameraLockSet118
CampCleared192
CampOpened230
CancelTargeting132
CapturePointChanged208
CastSpell151
ChainTargets105
ChampionDied91
ChampionStats68
CharacterSelected187
Chat104
ClientEvent160
ClientFinished138
ClientReady79
ClientVersion186
ClockConvergence115
ClockReply8
ClockSync190
CloseShop14
ContextEmote240
CreateChampion73
CreateFollower238
CreateNeutral96
CreateTurret154
Damage98
DeathHistory33
DestroyMissile87
EffectAdded180
EffectAddedGroup101
EffectCount28
EffectCountGroup188
EffectRemoved121
EffectRemovedGroup145
EffectReplaced47
EffectReplacedGroup30
EmotePlayed65
EnterLocalSight171
EnterSight183
EnterTeamSight221
Exit140
ExperienceGained16
FaceDirection77
FacePosition77
FadeMinions200
FadeRemoved49
FadeSounds92
FadeTo175
FloatingText24
FogSet168
FogToggled124
FollowerMaster239
ForceDeath27
GameEnded195
GameSpeed18
GoldEarned225
GoldGained34
GoldRedirect7
GreyscaleWhenDead166
HealthBar203
HoverIndicator243
HoverTarget242
HudDisabled185
HudHighlighted60
HudHighlightToggled76
InhibitorState42
InputLock130
InputLockToggled152
InventorySlot80
ItemAdded108
ItemUsed156
JoinSide100
KillParticle55
LeaveLocalSight52
LeaveSight78
LeaveTeamSight222
LevelUp62
LoadingProgress22
Loadout41
MapPing84
MapProp205
MapPropChanged206
MatchIdentity143
MatchStarted191
MinimapIcon213
MissileCourse59
MissileHits37
MissileLaunched107
MissileReport58
MissileRetarget235
MissileState58
ModulePacket220
MoveCamera36
MovementBounds6
MoveOrder111
MusicCue217
NavigationFlags64
NexusIdle4
NexusSkin113
ObjectiveHidden159
ObjectiveReplaced13
ObjectiveShown53
ParticleEnterTeamSight223
ParticleLeaveTeamSight224
ParticlesCreated133
ParticleSource207
Path182
PathWithSpeed129
Pause158
PauseAnimation110
Paused158
PingPlaced63
PlayAnimation173
PlayEmote69
PlayerDisconnected149
QueryStatus20
QueryStatusAnswer134
QuestEvent202
QuestUpdated137
Reconnected15
ReconnectedInMatch153
RegionAdded117
RegionAttached35
RegionRemoved50
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication193
ResourceColours144
Respawned71
RespawnPoint210
Resume10
Resumed10
Revived46
Roster103
ScoreAdded214
ScreenTint216
SeatChampion101
SeatLoadProgress146
SeatName102
SelectObject172
ShieldAdded99
ShopEnabled237
Shutdown226
SideTextHidden164
SideTextRefreshed174
SideTextShown157
SoftReconnect236
SpawnBot204
SpawnEnd17
SpawnFromBarracks3
SpawnPet54
SpawnStart95
SpawnUnit122
SpellCastAnswer178
SpellCharge227
SpellCooldown131
SpellInSlot109
SpellLevel88
SpellNumbers125
SpellSlotChanged23
SpellUpgraded21
StartGame89
StatisticIncremented215
StatsRequest83
StatTick39
StopAnimation40
StopAttack51
StreamRequest231
SurrenderStatus162
SurrenderVote161
SurrenderVoteCalled198
SwapItems32
SwapItemsAnswer61
SystemMessage244
TargetHeldChampion189
TargetUnit103
TeamChanged212
TeamScore209
TipEvent106
TipShown82
TransientAck165
TutorialChatLine2
TutorialPopup176
TutorialPopupClosed201
TutorialShopOpened90
UiHighlight199
UnitDied155
UnitHighlighted86
UnitHighlightRemoved177
UnitSpoke24
UnitStopped48
UnitText25
UpgradeSpell56
UseObject57
VersionSync81
VictoryDance194
VoiceCommand66
VoiceEvent119
VoiceEventDone5
VoiceOverride147
VolumeMuted38
WaypointAck116
WaypointGroup94
WaypointGroupAtSpeed97
WorldEvent67

Against 1.0.0.152–1.0.0.153

Where a build from 1.0.0.154 up to, not including, 3.01.0.1 differs from one from 1.0.0.152 up to, not including, 1.0.0.154. Anything not named here is the same in both.

In 1.0.0.154–3.1.0.0, not in 1.0.0.152–1.0.0.153

MessageSent byCommandWhat it does
ContextEmoteserver240 on eventsWhat a server sends about an emote a champion played for the moment
HoverIndicatorserver243 on eventsTurn a unit’s hover indicator on or off
HoverTargetserver242 on eventsSet the unit a unit’s hover indicator points at
MissileLaunchedserver107 on eventsWhat a server sends as the missile a swing or a cast prepared leaves the unit
SystemMessageserver244 on eventsPut a line of its own in a client’s chat

Laid out differently

  • ChampionDied (vectors: physical-on-1-0-0-154)
    • damageType is u8 in 1.0.0.152–1.0.0.153 and u32 in 1.0.0.154–3.1.0.0.
    • damageSource is u8 in 1.0.0.152–1.0.0.153 and u32 in 1.0.0.154–3.1.0.0.
  • MinimapIcon (vectors: one-on-1-0-0-154)
    • changeIcon is in 1.0.0.154–3.1.0.0 (u8), after unit, and not in 1.0.0.152–1.0.0.153.
    • changeBorder is in 1.0.0.154–3.1.0.0 (u8), after icon, and not in 1.0.0.152–1.0.0.153.
    • border is in 1.0.0.154–3.1.0.0 (text, 64 bytes), after changeBorder, and not in 1.0.0.152–1.0.0.153.
  • SpellNumbers (vectors: one-on-1-0-0-154)
    • entries[].values is 3 × f32 in 1.0.0.152–1.0.0.153 and 5 × f32 in 1.0.0.154–3.1.0.0.
  • UnitDied (vectors: one-on-1-0-0-154)
    • damageType is u8 in 1.0.0.152–1.0.0.153 and u32 in 1.0.0.154–3.1.0.0.
    • damageSource is u8 in 1.0.0.152–1.0.0.153 and u32 in 1.0.0.154–3.1.0.0.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.154–3.1.0.0:

  • BuildingDied, lastChampion: “For an inhibitor, the unit credited with destroying it; zero credits the attacker. A client reads it for nothing else.”, where 1.0.0.152–1.0.0.153 has “Unused; a client reads nothing here.”

Index of messages

MessageSent bySystemRanges
AfkWarningserverinterface1.0.0.130–3.1.0.0
AnimationOverridesservereffects1.0.0.130–3.1.0.0
Announcementserverinterface1.0.0.130–1.0.0.138
AppearanceClearedservereffects1.0.0.135–3.1.0.0
AppearancePoppedservereffects1.0.0.130–3.1.0.0
AppearancePushedservereffects1.0.0.130–3.1.0.0
Attackservercombat1.0.0.130–3.1.0.0
AttackFromservercombat1.0.0.130–3.1.0.0
Autocastserverspells1.0.0.130–3.1.0.0
BotDebugserverunits1.0.0.130–3.1.0.0
BotKickservermatch1.0.0.135–3.1.0.0
BotStateserverunits1.0.0.130–3.1.0.0
BotTargetsserverunits1.0.0.130–3.1.0.0
BuildingDiedservercombat1.0.0.130–3.1.0.0
BuyItemclientshop1.0.0.130–3.1.0.0
Cameraclientinterface1.0.0.130–3.1.0.0
CameraAckserverinterface1.0.0.130–3.1.0.0
CameraBehaviourserverinterface1.0.0.130–3.1.0.0
CameraLockclientinterface1.0.0.130–3.1.0.0
CameraLockSetserverinterface1.0.0.130–3.1.0.0
CampClearedserverobjectives1.0.0.130–3.1.0.0
CampOpenedserverobjectives1.0.0.138–3.1.0.0
CancelTargetingserverspells1.0.0.130–3.1.0.0
CapturePointChangedserverobjectives1.0.0.130–3.1.0.0
CastSpellclientspells1.0.0.130–3.1.0.0
ChainTargetsserverspells1.0.0.130–3.1.0.0
ChampionDiedservercombat1.0.0.130–3.1.0.0
ChampionStatsserverreplication1.0.0.130–3.1.0.0
CharacterSelectedclientjoining1.0.0.130–3.1.0.0
Chatbothcommunication1.0.0.130–3.1.0.0
ClientEventserverobjectives1.0.0.130–3.1.0.0
ClientFinishedclientmatch1.0.0.130–3.1.0.0
ClientReadyclientjoining1.0.0.130–3.1.0.0
ClientVersionclientjoining1.0.0.130–3.1.0.0
ClockConvergenceservermatch1.0.0.130–3.1.0.0
ClockReplyclientmatch1.0.0.130–3.1.0.0
ClockSyncservermatch1.0.0.130–3.1.0.0
CloseShopservershop1.0.0.130–3.1.0.0
ContextEmoteservercommunication1.0.0.154–3.1.0.0
CooldownSetclientspells1.0.0.130–1.0.0.146
CreateChampionserverunits1.0.0.130–3.1.0.0
CreateFollowerserverunits1.0.0.144–3.1.0.0
CreateNeutralserverunits1.0.0.130–3.1.0.0
CreateTurretserverunits1.0.0.130–3.1.0.0
Damageservercombat1.0.0.130–3.1.0.0
DeathHistoryservercombat1.0.0.130–3.1.0.0
DestroyMissileserverspells1.0.0.130–3.1.0.0
EffectAddedservereffects1.0.0.130–3.1.0.0
EffectAddedGroupservereffects1.0.0.130–3.1.0.0
EffectCountservereffects1.0.0.130–3.1.0.0
EffectCountGroupservereffects1.0.0.130–3.1.0.0
EffectRemovedservereffects1.0.0.130–3.1.0.0
EffectRemovedGroupservereffects1.0.0.130–3.1.0.0
EffectReplacedservereffects1.0.0.130–3.1.0.0
EffectReplacedGroupservereffects1.0.0.130–3.1.0.0
EmotePlayedservercommunication1.0.0.130–3.1.0.0
EnterLocalSightservervision1.0.0.130–3.1.0.0
EnterSightservervision1.0.0.130–3.1.0.0
EnterTeamSightservervision1.0.0.130–3.1.0.0
Exitclientmatch1.0.0.130–3.1.0.0
ExperienceGainedserverreplication1.0.0.130–3.1.0.0
FaceDirectionservermovement1.0.0.130–3.1.0.0
FacePositionclientmovement1.0.0.130–3.1.0.0
FadeMinionsservereffects1.0.0.130–3.1.0.0
FadeRemovedservereffects1.0.0.130–3.1.0.0
FadeSoundsservercommunication1.0.0.130–3.1.0.0
FadeToservereffects1.0.0.130–3.1.0.0
FloatingTextserverinterface1.0.0.130–3.1.0.0
FogSetservervision1.0.0.130–3.1.0.0
FogToggledservervision1.0.0.130–3.1.0.0
FollowerMasterserverunits1.0.0.145–3.1.0.0
ForceDeathservercombat1.0.0.130–3.1.0.0
GameEndedservermatch1.0.0.130–3.1.0.0
GameSpeedservermatch1.0.0.130–3.1.0.0
GoldEarnedserverreplication1.0.0.130–3.1.0.0
GoldGainedserverreplication1.0.0.130–3.1.0.0
GoldRedirectserverreplication1.0.0.130–3.1.0.0
GreyscaleWhenDeadservercombat1.0.0.130–3.1.0.0
HealthBarserverreplication1.0.0.130–3.1.0.0
HoverIndicatorservercombat1.0.0.154–3.1.0.0
HoverTargetservercombat1.0.0.154–3.1.0.0
HudDisabledserverinterface1.0.0.130–3.1.0.0
HudHighlightedserverguidance1.0.0.130–3.1.0.0
HudHighlightToggledserverguidance1.0.0.130–3.1.0.0
InhibitorStateservercombat1.0.0.130–3.1.0.0
InputLockserverinterface1.0.0.130–3.1.0.0
InputLockToggledserverinterface1.0.0.130–3.1.0.0
InventorySlotservershop1.0.0.130–3.1.0.0
ItemAddedservershop1.0.0.130–3.1.0.0
ItemUsedservershop1.0.0.130–3.1.0.0
JoinSideclientjoining1.0.0.130–3.1.0.0
KillParticleservereffects1.0.0.130–3.1.0.0
LeaveLocalSightservervision1.0.0.130–3.1.0.0
LeaveSightservervision1.0.0.130–3.1.0.0
LeaveTeamSightservervision1.0.0.130–3.1.0.0
LevelUpserverreplication1.0.0.130–3.1.0.0
LoadingProgressclientjoining1.0.0.130–3.1.0.0
Loadoutservershop1.0.0.130–3.1.0.0
MapPingclientcommunication1.0.0.130–3.1.0.0
MapPropserverunits1.0.0.130–3.1.0.0
MapPropChangedserverunits1.0.0.130–3.1.0.0
MatchIdentityserverjoining1.0.0.130–3.1.0.0
MatchStartedserverjoining1.0.0.130–3.1.0.0
MinimapHighlightedserverguidance1.0.0.130–1.0.0.143
MinimapIconserverinterface1.0.0.130–3.1.0.0
MissileCourseserverspells1.0.0.132–3.1.0.0
MissileHitsserverspells1.0.0.130–3.1.0.0
MissileLaunchedserverspells1.0.0.154–3.1.0.0
MissileReportclientspells1.0.0.130–3.1.0.0
MissileRetargetserverspells1.0.0.140–3.1.0.0
MissileStateserverspells1.0.0.130–3.1.0.0
ModulePacketclientjoining1.0.0.130–3.1.0.0
MoveCameraserverinterface1.0.0.130–3.1.0.0
MovementBoundsservermovement1.0.0.130–3.1.0.0
MoveOrderclientmovement1.0.0.130–3.1.0.0
MusicCueservercommunication1.0.0.130–3.1.0.0
NavigationFlagsservermovement1.0.0.130–3.1.0.0
NexusIdleservereffects1.0.0.130–3.1.0.0
NexusSkinservereffects1.0.0.130–3.1.0.0
ObjectiveHiddenserverguidance1.0.0.130–3.1.0.0
ObjectiveReplacedserverguidance1.0.0.130–3.1.0.0
ObjectiveShownserverguidance1.0.0.130–3.1.0.0
ParticleEnterTeamSightservervision1.0.0.139–3.1.0.0
ParticleLeaveTeamSightservervision1.0.0.130–3.1.0.0
ParticlesCreatedservereffects1.0.0.130–3.1.0.0
ParticleSourceservereffects1.0.0.130–3.1.0.0
Pathservermovement1.0.0.130–3.1.0.0
PathWithSpeedservermovement1.0.0.130–3.1.0.0
Pauseclientmatch1.0.0.130–3.1.0.0
PauseAnimationservereffects1.0.0.130–3.1.0.0
Pausedservermatch1.0.0.130–3.1.0.0
PingPlacedservercommunication1.0.0.130–3.1.0.0
PlayAnimationservereffects1.0.0.130–3.1.0.0
PlayEmoteclientcommunication1.0.0.130–3.1.0.0
PlayerDisconnectedservermatch1.0.0.130–3.1.0.0
QueryStatusclientjoining1.0.0.130–3.1.0.0
QueryStatusAnswerserverjoining1.0.0.130–3.1.0.0
QuestEventclientguidance1.0.0.130–3.1.0.0
QuestUpdatedserverguidance1.0.0.130–3.1.0.0
Reconnectedservermatch1.0.0.130–3.1.0.0
ReconnectedInMatchclientmatch1.0.0.130–3.1.0.0
RegionAddedservervision1.0.0.130–3.1.0.0
RegionAttachedservervision1.0.0.130–3.1.0.0
RegionRemovedservervision1.0.0.130–3.1.0.0
Registerclientjoining1.0.0.130–3.1.0.0
Registeredserverjoining1.0.0.130–3.1.0.0
RemoveItemclientshop1.0.0.130–3.1.0.0
RemoveItemAnswerservershop1.0.0.130–3.1.0.0
Replicationserverreplication1.0.0.130–3.1.0.0
ResourceColoursserverreplication1.0.0.130–3.1.0.0
Respawnedservercombat1.0.0.130–3.1.0.0
RespawnPointserverobjectives1.0.0.130–3.1.0.0
Resumeclientmatch1.0.0.130–3.1.0.0
Resumedservermatch1.0.0.130–3.1.0.0
ResyncEndedserverjoining1.0.0.130–1.0.0.142
Revivedservercombat1.0.0.130–3.1.0.0
Rosterserverjoining1.0.0.130–3.1.0.0
ScoreAddedserverreplication1.0.0.130–3.1.0.0
ScreenTintservereffects1.0.0.130–3.1.0.0
SeatChampionserverjoining1.0.0.130–3.1.0.0
SeatLoadProgressserverjoining1.0.0.130–3.1.0.0
SeatNameserverjoining1.0.0.130–3.1.0.0
SelectObjectclientinterface1.0.0.130–3.1.0.0
ShieldAddedserverreplication1.0.0.130–3.1.0.0
ShopEnabledservershop1.0.0.141–3.1.0.0
ShopHighlightedserverguidance1.0.0.130–1.0.0.143
Shutdownservermatch1.0.0.130–3.1.0.0
SideTextHiddenserverguidance1.0.0.130–3.1.0.0
SideTextRefreshedserverguidance1.0.0.130–3.1.0.0
SideTextShownserverguidance1.0.0.130–3.1.0.0
SoftReconnectservermatch1.0.0.143–3.1.0.0
SpawnBotserverunits1.0.0.130–3.1.0.0
SpawnEndserverjoining1.0.0.130–3.1.0.0
SpawnFromBarracksserverunits1.0.0.130–3.1.0.0
SpawnPetserverunits1.0.0.130–3.1.0.0
SpawnStartserverjoining1.0.0.130–3.1.0.0
SpawnUnitserverunits1.0.0.130–3.1.0.0
SpellCastAnswerserverspells1.0.0.130–3.1.0.0
SpellChargeclientspells1.0.0.135–3.1.0.0
SpellCooldownserverspells1.0.0.130–3.1.0.0
SpellIconChangedserverspells1.0.0.130–1.0.0.149
SpellInSlotserverspells1.0.0.130–3.1.0.0
SpellLevelserverspells1.0.0.130–3.1.0.0
SpellNameChangedserverspells1.0.0.130–1.0.0.149
SpellNumbersserverspells1.0.0.130–3.1.0.0
SpellOffsetTargetChangedserverspells1.0.0.130–1.0.0.149
SpellRangeChangedserverspells1.0.0.135–1.0.0.137
SpellSlotChangedserverspells1.0.0.150–3.1.0.0
SpellTargetingChangedserverspells1.0.0.130–1.0.0.149
SpellUpgradedserverspells1.0.0.130–3.1.0.0
StartGameserverjoining1.0.0.130–3.1.0.0
StatisticIncrementedserverreplication1.0.0.130–3.1.0.0
StatsRequestclientjoining1.0.0.130–3.1.0.0
StatTickserverreplication1.0.0.130–3.1.0.0
StopAnimationservereffects1.0.0.130–3.1.0.0
StopAttackservercombat1.0.0.130–3.1.0.0
StreamRequestclientspectating1.0.0.141–3.1.0.0
SurrenderStatusservervotes1.0.0.130–3.1.0.0
SurrenderVoteclientvotes1.0.0.130–3.1.0.0
SurrenderVoteCalledservervotes1.0.0.130–3.1.0.0
SwapItemsclientshop1.0.0.130–3.1.0.0
SwapItemsAnswerservershop1.0.0.130–3.1.0.0
SystemMessageservercommunication1.0.0.154–3.1.0.0
TargetableChangedserverunits1.0.0.130–1.0.0.142
TargetHeldChampionservercombat1.0.0.130–3.1.0.0
TargetUnitservercombat1.0.0.130–3.1.0.0
TeamChangedserverunits1.0.0.130–3.1.0.0
TeamScoreserverobjectives1.0.0.130–3.1.0.0
TipEventclientguidance1.0.0.130–3.1.0.0
TipShownserverguidance1.0.0.130–3.1.0.0
TransientAckclientreplication1.0.0.130–3.1.0.0
TutorialChatLineserverguidance1.0.0.130–3.1.0.0
TutorialPopupserverguidance1.0.0.130–3.1.0.0
TutorialPopupClosedclientguidance1.0.0.130–3.1.0.0
TutorialShopOpenedclientshop1.0.0.130–3.1.0.0
UiHighlightserverguidance1.0.0.130–3.1.0.0
UnitDiedservercombat1.0.0.130–3.1.0.0
UnitHighlightedserverguidance1.0.0.130–3.1.0.0
UnitHighlightRemovedserverguidance1.0.0.130–3.1.0.0
UnitSpokeclientcommunication1.0.0.130–3.1.0.0
UnitStoppedservermovement1.0.0.130–3.1.0.0
UnitTextserverinterface1.0.0.130–3.1.0.0
UpgradeSpellclientspells1.0.0.130–3.1.0.0
UseObjectclientcombat1.0.0.130–3.1.0.0
VersionSyncserverjoining1.0.0.130–3.1.0.0
VictoryDanceservermatch1.0.0.130–3.1.0.0
VoiceCommandservercommunication1.0.0.138–3.1.0.0
VoiceEventservercommunication1.0.0.130–3.1.0.0
VoiceEventDoneclientcommunication1.0.0.130–3.1.0.0
VoiceOverrideservereffects1.0.0.130–3.1.0.0
VolumeMutedservercommunication1.0.0.130–3.1.0.0
WaypointAckclientmovement1.0.0.130–3.1.0.0
WaypointGroupservermovement1.0.0.130–3.1.0.0
WaypointGroupAtSpeedservermovement1.0.0.130–3.1.0.0
WorldEventserverobjectives1.0.0.130–3.1.0.0