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.25 up to, not including, 1.0.0.130, in 42 ranges. Every build in a range is held to the same facts.

PatchFromUp toPatch notesBuilds checked
1.0.0.25–1.0.0.571.0.0.251.0.0.58V1.0.0.322
1.0.0.58–1.0.0.601.0.0.581.0.0.61V1.0.0.581
1.0.0.61–1.0.0.621.0.0.611.0.0.63V1.0.0.611
1.0.0.63–1.0.0.691.0.0.631.0.0.70V1.0.0.63, V1.0.0.662
1.0.0.70–1.0.0.711.0.0.701.0.0.72V1.0.0.701
1.0.0.72–1.0.0.731.0.0.721.0.0.74V1.0.0.721
1.0.0.741.0.0.741.0.0.75V1.0.0.741
1.0.0.75–1.0.0.781.0.0.751.0.0.79V1.0.0.751
1.0.0.79–1.0.0.801.0.0.791.0.0.81V1.0.0.791
1.0.0.811.0.0.811.0.0.82V1.0.0.811
1.0.0.821.0.0.821.0.0.83V1.0.0.821
1.0.0.83–1.0.0.851.0.0.831.0.0.86V1.0.0.83, V1.0.0.852
1.0.0.861.0.0.861.0.0.87V1.0.0.861
1.0.0.87–1.0.0.951.0.0.871.0.0.96V1.0.0.87, V1.0.0.942
1.0.0.961.0.0.961.0.0.97V1.0.0.961
1.0.0.971.0.0.971.0.0.98V1.0.0.971
1.0.0.981.0.0.981.0.0.99V1.0.0.981
1.0.0.99–1.0.0.1021.0.0.991.0.0.103V1.0.0.99, V1.0.0.100, V1.0.0.101, V1.0.0.1024
1.0.0.1031.0.0.1031.0.0.104V1.0.0.1031
1.0.0.1041.0.0.1041.0.0.105V1.0.0.1041
1.0.0.1051.0.0.1051.0.0.106V1.0.0.1051
1.0.0.1061.0.0.1061.0.0.107V1.0.0.1061
1.0.0.1071.0.0.1071.0.0.108V1.0.0.1071
1.0.0.1081.0.0.1081.0.0.109V1.0.0.1081
1.0.0.1091.0.0.1091.0.0.110V1.0.0.1091
1.0.0.1101.0.0.1101.0.0.111V1.0.0.1101
1.0.0.111–1.0.0.1121.0.0.1111.0.0.113V1.0.0.111, V1.0.0.1122
1.0.0.1131.0.0.1131.0.0.114V1.0.0.1131
1.0.0.114–1.0.0.1151.0.0.1141.0.0.116V1.0.0.1141
1.0.0.1161.0.0.1161.0.0.117V1.0.0.1161
1.0.0.117–1.0.0.1181.0.0.1171.0.0.119V1.0.0.117, V1.0.0.1182
1.0.0.1191.0.0.1191.0.0.120V1.0.0.1191
1.0.0.1201.0.0.1201.0.0.121V1.0.0.1201
1.0.0.1211.0.0.1211.0.0.122V1.0.0.1211
1.0.0.1221.0.0.1221.0.0.123V1.0.0.1221
1.0.0.1231.0.0.1231.0.0.124V1.0.0.1231
1.0.0.1241.0.0.1241.0.0.125V1.0.0.1241
1.0.0.1251.0.0.1251.0.0.126V1.0.0.1251
1.0.0.1261.0.0.1261.0.0.127V1.0.0.1261
1.0.0.1271.0.0.1271.0.0.128V1.0.0.1271
1.0.0.1281.0.0.1281.0.0.129V1.0.0.1281
1.0.0.1291.0.0.1291.0.0.130V1.0.0.1291

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.

In 1.0.0.25–1.0.0.126

Stock ENet 1.2.5 serves a client as it stands: the header, the constants and the commands are the release’s own, and the verify connect stock ENet sends states what the client’s connect asked for.

In 1.0.0.127–1.0.0.129

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 1.0.0.25–1.0.0.110

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 as text. A client pads what it sends to whole blocks.

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.
maximumTransmissionUnit40964096A client asks for 1400 in its connect command, and takes datagrams up to 4096 bytes.
minimumDatagram88A client discards any datagram shorter than this many bytes.

In 1.0.0.111–1.0.0.115

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. A client pads what it sends to whole blocks.

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.
maximumTransmissionUnit40964096A client asks for 1400 in its connect command, and takes datagrams up to 4096 bytes.
minimumDatagram88A client discards any datagram shorter than this many bytes.

In 1.0.0.116–1.0.0.126

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.
maximumTransmissionUnit40964096A client asks for 1400 in its connect command, and takes datagrams up to 4096 bytes.
minimumDatagram88A client discards any datagram shorter than this many bytes.

In 1.0.0.127–1.0.0.129

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.

In 1.0.0.25–1.0.0.126

That constant is above what a client asks for, so a server needs no clamp.

In 1.0.0.127–1.0.0.129

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.

In 1.0.0.25–1.0.0.115

A client pads what it sends to a whole number of blocks and enciphers all of it. The bytes it adds follow the message’s own fields to the end of the payload and hold nothing in particular.

In 1.0.0.116–1.0.0.129

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.

In 1.0.0.25–1.0.0.110

A client decodes nothing: its key is the first sixteen characters of the argument, as they stand. A key both this and later builds take alike is sixteen characters of text.

In 1.0.0.111–1.0.0.125

The argument holds the key in base64.

In 1.0.0.126–1.0.0.129

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 every range of this book

ChannelNameFamily
0registrationregistration
1requestsgame
2clockgame
3eventsgame
4transientgame
5chatchat
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

In 1.0.0.25–1.0.0.60

A client unwraps no container: a payload whose command is 255 does nothing, on any channel. A server MUST NOT send one, because nothing inside it reaches the client.

In 1.0.0.96–1.0.0.129

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.

In 1.0.0.126–1.0.0.129

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.25–1.0.0.78

The game family:

FieldTypeWhat it is
commandu8255 introduces a container of several messages rather than a message of its own, which Messages describes.
paddingbytes, 3A client reads nothing here, and most of its own messages leave it unwritten. A server writes zero.
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.79–1.0.0.129

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.

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.96

No region id stands for no region.

In 1.0.0.126

A region id of 0 names no region: given a RegionAdded carrying 0, a client gives the region an id of its own, its own node in the top byte and a count below it, which no message from a server can name.

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.

In 1.0.0.58–1.0.0.129

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.

In 1.0.0.96

A client tells a bot’s champion by a byte of its own, not by its client id.

In 1.0.0.126–1.0.0.129

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).

In 1.0.0.25–1.0.0.60

A client that still holds the earlier object gives the net id to the new one, so messages naming it reach the new object, and removing either leaves the id naming neither.

In 1.0.0.96

A client that still holds the earlier object creates the new one but keeps the net id on the old one, so messages naming it reach the old object, and removing either leaves the id naming neither.

In 1.0.0.126

CreateChampion and CreateTurret remove any object holding the net id before they create theirs. For any other creating message, a client that still holds the earlier object creates the new one but keeps the net id on the old one, so messages naming it reach the old object, and removing either leaves the id naming neither. Between its own reconnection and ResyncEnded, a client drops a SpawnFromBarracks, SpawnUnit or CreateNeutral naming a net id it holds.

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

In 1.0.0.58–1.0.0.96

Nothing a player sees depends on it.

In 1.0.0.126

A client applies a SpawnPet’s effect and spell level only where the owner’s node is its own.

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.

In 1.0.0.58–1.0.0.96

MapHolds
1, 2the six Barracks names, HQ_T1, HQ_T2, orderShop01, chaosShop01, the six 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

In 1.0.0.126–1.0.0.129

A name holding _Destroyed or _FB gives no identifier.

In 1.0.0.126

NameMaps
Barracks_T1_C1, Barracks_T2_C11, 2, 3
Barracks_T1_L1, Barracks_T1_R1, Barracks_T2_L1, Barracks_T2_R11, 2, 4
the six spawn points named __P_…1, 2
____P_Chaos_Spawn_Barracks__C013
HQ_T1, HQ_T21, 2, 3, 4
OrderShop013, 4
orderShop011, 2, 8
ChaosShop013
chaosShop011, 2, 8

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.

In 1.0.0.25–1.0.0.96

CreateTurret matches a turret’s name without regard to case, and does nothing where the map holds no turret of that name.

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.

In 1.0.0.25–1.0.0.126

EnterSight and EnterLocalSight carry no other message, and act only on a unit the client already holds.

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

In 1.0.0.25–1.0.0.96

LeaveLocalSight hides an object too, and it is held as before.

In 1.0.0.126

LeaveLocalSight does nothing.

In 1.0.0.96–1.0.0.129

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

In 1.0.0.126–1.0.0.129

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

In 1.0.0.126

No message removes a champion.

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.

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.25–1.0.0.96

SpawnPet names the pet’s owner in its header and carries the new pet’s net id in its body, and does nothing where that owner is not held.

In 1.0.0.25–1.0.0.60

A client sends a WaypointGroup’s WaypointAck before it reads any path, whatever units the paths name. A path for a unit not held is read through and dropped, and is not applied once an object takes that net id.

In 1.0.0.96–1.0.0.129

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.

In 1.0.0.126–1.0.0.129

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.96–1.0.0.129

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.

In 1.0.0.58–1.0.0.129

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.

In 1.0.0.126–1.0.0.129

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.

A champion carries no facing of its own when created.

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

In 1.0.0.104–1.0.0.129

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.58–1.0.0.96

A client has data for maps 1 to 4:

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

In 1.0.0.126

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

mapOrigin of its paths
16991, 7223
26991, 7223
37479, 7147
46710, 6696
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.

In 1.0.0.96–1.0.0.129

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.

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

In 1.0.0.126–1.0.0.129

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.

In 1.0.0.126–1.0.0.129

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.25–1.0.0.126

A cast’s slot also takes 64 to 70, for a basic attack.

In 1.0.0.126

Of those, 64 is the champion’s basic attack, 65 to 67 its other basic attacks, 68 its critical attack, 69 a miss and 70 a dodge.

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

In 1.0.0.58–1.0.0.96

A champion’s own book ends at slot 48. A client reports an Autocast naming a slot above 48 as an error, and keeps it all the same. A server MUST NOT name a champion book slot above 48.

In 1.0.0.126

A champion’s own book ends at slot 51. A client applies an Autocast or a SpellInSlot naming a slot above 51 while reporting it as an error. 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.

In 1.0.0.25–1.0.0.96

A champion’s inventory ends at slot 36, and a player sees and uses only slots 0 to 5. A client takes a RemoveItemAnswer naming a slot above 36 all the same, reporting it as an error and writing past the end of the inventory. A server MUST NOT name an inventory slot above 36.

In 1.0.0.96–1.0.0.129

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

In 1.0.0.126–1.0.0.129

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.

In 1.0.0.25–1.0.0.96

Each unit has 32 slots for the effects it carries, 0 to 31. A client uses a slot above 31 all the same, past the end of the unit’s slots. A server MUST NOT name an effect slot above 31.

In 1.0.0.126–1.0.0.129

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.

In 1.0.0.58–1.0.0.129

Movement takes the origin of a path from the ground.

In 1.0.0.58–1.0.0.96

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

In 1.0.0.126

The client has maps 1, 2, 3, 4 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.

In 1.0.0.25–1.0.0.96

CreateTurret names a building by its name alone, compared without regard to case, and one naming no building does nothing.

In 1.0.0.58–1.0.0.129

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.

In 1.0.0.58–1.0.0.96

room.dsc lists each object as a .sco, but its file is a binary .SCB, holding its name within it rather than on a Name= line.

In 1.0.0.126–1.0.0.129

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

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.96

In the section’s name, n is how many players the side has plus the count SpawnStart carries, added on both sides alike.

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.

In 1.0.0.25–1.0.0.96

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

In 1.0.0.25–1.0.0.96

Map 3 alone adds an Items.inibin. DATA/Globals/ holds figures for the whole game in UnitStats, bounty and ColorSettings.

In 1.0.0.126–1.0.0.129

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.126

A champion’s spells and attacks are in DATA/Characters/<Champion>/Spells/<Spell>.inibin.

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.

In 1.0.0.25–1.0.0.96

A client finds each argument between a pair of double quotes, and reads nothing outside them.

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.58–1.0.0.129

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.25–1.0.0.126

A client writes zero where its player id goes in LoadingProgress.

In 1.0.0.58–1.0.0.60

The loading screen picks the card a SeatLoadProgress updates by the client id it carries, not by its player id.

In 1.0.0.96–1.0.0.129

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.96–1.0.0.129

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.

The spawn run

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

In 1.0.0.25–1.0.0.60

A client drops nothing for arriving before CharacterSelected.

In 1.0.0.96

Before CharacterSelected, a client drops only what Units says it drops, and a GameEnded that arrives while it loads has it show an error and end.

In 1.0.0.126

A client drops nothing for arriving before CharacterSelected.

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

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.

In 1.0.0.58–1.0.0.60

A client’s shop does not wait for Loadout.

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.

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.25–1.0.0.127

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, as its launch line names the player. The proof is what settles the claim.
proofi64The player id enciphered with the 16-byte key both ends already hold; a plain copy where the client has no key.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.127

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.
playerIdi64Who occupies that seat. A client keeps the pair of clientId and playerId from every answer, and takes the answer as its own only where this is its own player id; it reads nothing after it.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.1093
1.0.0.110–1.0.0.12923

No body.

Vectors (4)

one-on-1-0-0-75, one-on-1-0-0-109, padded-on-1-0-0-114, one-on-1-0-0-126

QueryStatusAnswer

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

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.1094
1.0.0.110133
1.0.0.111–1.0.0.116134
1.0.0.117–1.0.0.118135
1.0.0.119–1.0.0.123136
1.0.0.124–1.0.0.125140
1.0.0.126–1.0.0.127141
FieldTypeWhat it is
readyu8Whether the server is ready; any value but zero ends the client’s wait. 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 (8)

yes-on-1-0-0-75, yes-on-1-0-0-109, yes-on-1-0-0-110, yes-on-1-0-0-116, yes-on-1-0-0-117, yes-on-1-0-0-123, yes-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

ClientVersion

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

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.7367
1.0.0.74–1.0.0.8168
1.0.0.82–1.0.0.9671
1.0.0.97–1.0.0.10272
1.0.0.103–1.0.0.10673
1.0.0.107–1.0.0.10974
1.0.0.110188
1.0.0.111–1.0.0.116189
1.0.0.117–1.0.0.118190
1.0.0.119–1.0.0.123191
1.0.0.124195
1.0.0.125196
1.0.0.126–1.0.0.127197
FieldTypeWhat it is
clockf32The client’s own clock as it sends this, in seconds.
clientIdu32The client id the sender holds: that of the client reporting.
texttext, 256 bytesThe build the client runs, as text ending at a zero byte; the bytes after that zero carry nothing.
Vectors (14)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.73

Command 68 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 builds agree, letting the client go on into the game. For 0 a client shows both versions, reports a build mismatch and leaves.
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, shown and not checked. Written out in full and padded with zero bytes to the width above; a client reads it up to the first zero byte.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.103

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

BuildsCommand
1.0.0.74–1.0.0.8169
1.0.0.82–1.0.0.9672
1.0.0.97–1.0.0.10273
1.0.0.10374

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

FieldTypeWhat it is
agreementu8Must be 1: any other value has the client report a build mismatch and leave. For 0 it also shows both versions.
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, shown and not checked. Written out in full and padded with zero bytes to the width above; a client reads it up to the first zero byte.
Vectors (5)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.127

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

BuildsCommand
1.0.0.104–1.0.0.10674
1.0.0.107–1.0.0.10975
1.0.0.110–1.0.0.11683
1.0.0.117–1.0.0.11884
1.0.0.119–1.0.0.12385
1.0.0.124–1.0.0.12787

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

FieldTypeWhat it is
agreementu8Must be 1: any other value has the client report a build mismatch and leave. For 0 it also shows both versions.
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, shown and not checked. Written out in full and padded with zero bytes to the width above; a client reads it up to the first zero byte.
modetext, 128 bytesWhich way the match is played, written and padded as above.
Vectors (6)

one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128

Command 87 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.
Vectors (1)

one-on-1-0-0-128

In 1.0.0.129

Command 87 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.unusedbit 1 to 7Unused; a server writes zero.

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.25–1.0.0.127

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

FieldTypeWhat it is
paddingbytes, 3Arbitrary; it carries no meaning.
clientIdu32The client id the sender holds, that is, the id of the client asking.
sideu32The side it asks for; a client asks for 100.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.127

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

FieldTypeWhat it is
paddingbytes, 3Unused; a client reads nothing here.
sideRoomu32How many seats side 100 has room for.
otherSideRoomu32How many side 200 has room for.
gapbytes, 4Unused; a client reads nothing here.
side24 × i64The players on side 100, twenty four places of a player identifier’s width; the client copies as many as sideRoom says, so a server keeps sideRoom at 24 or less; a larger one has no defined effect. sideTaken says how many of the leading places carry a player, and the rest hold zero.
otherSide24 × i64The players on side 200, read the same way under otherSideRoom and otherSideTaken, with otherSideRoom kept at 24 or less.
sideTakenu32How many of side 100’s places carry a player.
otherSideTakenu32How many on side 200.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

SeatName

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

Definition.

In 1.0.0.25–1.0.0.127

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

FieldTypeWhat it is
paddingbytes, 7Unused; a client reads nothing here.
playeri64Whose name this is. 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, and takes the name up to its first 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-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.127

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

FieldTypeWhat it is
paddingbytes, 7Unused; a client reads nothing here.
playeri64Whose champion this is. 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. A client reads nothing here, and takes the name up to its first zero byte.
assettext, sized by assetLength minus 1The champion the seat plays, as the name the client loads the champion’s data under. It ends with a zero byte and is not padded.
terminatorbytes, 1A zero byte closing the text, which the length above counts.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.62

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

FieldTypeWhat it is
clientIdu32The client id the sender holds, that is, the id of the client reporting.
playerIdi64Zero.
percentf32How far loading has got, from zero to one hundred.
etaf32How many seconds the client expects loading still to take.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one, until it wraps.
status.pingbit 16 to 30The round trip time the client measures, in milliseconds.
status.unusedbit 31Never written by a client; it carries nothing.
done1-byte bits
done.loadedbit 0Set once loading is done.
done.unusedbit 1 to 7Carries nothing; a client never writes these bits.
texttext, ended by a zero byteA text the client also keeps, at most 63 characters, ended by a zero byte. What it says is not recorded; a server ignores it.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.121

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

BuildsCommand
1.0.0.63–1.0.0.73116
1.0.0.74–1.0.0.81117
1.0.0.82–1.0.0.96121
1.0.0.97–1.0.0.102122
1.0.0.103–1.0.0.106124
1.0.0.107–1.0.0.108125
1.0.0.109126
1.0.0.110–1.0.0.12125
FieldTypeWhat it is
clientIdu32The client id the sender holds, that is, the id of the client reporting.
playerIdi64Zero.
percentf32How far loading has got, from zero to one hundred.
etaf32How many seconds the client expects loading still to take.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30The round trip time the client measures, in milliseconds.
status.unusedbit 31Never written by a client; it carries nothing.
done1-byte bits
done.loadedbit 0Set once loading is done.
done.unusedbit 1 to 7Carries nothing; a client never writes these bits.
texttext, ended by a zero byteA text the client also keeps, at most 63 characters, ended by a zero byte. What it says is not recorded; a server ignores it.
Vectors (9)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-121

In 1.0.0.122–1.0.0.127

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

FieldTypeWhat it is
clientIdu32The client id the sender holds, that is, the id of the client reporting.
playerIdi64Zero.
percentf32How far loading has got, from zero to one hundred.
etaf32How many seconds the client expects loading still to take.
status4-byte bits
status.countbit 0 to 15It rises with each report, not always by one.
status.pingbit 16 to 30The round trip time the client measures, in milliseconds.
status.unusedbit 31Never written by a client; it carries nothing.
done1-byte bits
done.loadedbit 0Set once loading is done.
done.unusedbit 1 to 7Carries nothing; a client never writes these bits.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.62

Command 114 on transient, sent by the server, unreliable.

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 bitsOnly ping is read.
status.unusedLowbit 0 to 15Unused; a server writes zero.
status.pingbit 16 to 30Drawn as the seat’s ping indicator.
status.unusedHighbit 31Unused; a server writes zero.
done1-byte bits
done.loadedbit 0Where set, a client shows secondsLeft as zero.
done.unusedbit 1 to 7Unused; a server writes zero.
statusTexttext, 64 bytesRead once done.loaded is set and the bar is nearly full: a client compares it, ignoring case, with a fixed phrase saying champions are being spawned, and shows a spawning label where it matches and a ready label otherwise. Padded with zero bytes.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.125

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

BuildsCommand
1.0.0.63–1.0.0.73117
1.0.0.74–1.0.0.81118
1.0.0.82–1.0.0.96122
1.0.0.97–1.0.0.102123
1.0.0.103–1.0.0.106125
1.0.0.107–1.0.0.108126
1.0.0.109127
1.0.0.110149
1.0.0.111–1.0.0.116150
1.0.0.117–1.0.0.118151
1.0.0.119–1.0.0.123152
1.0.0.124–1.0.0.125156
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 once loading is done.
done.unusedbit 1 to 7Carries nothing.
Vectors (13)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

Command 157 on transient, sent by the server, unreliable.

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 31It carries no defined value.
done1-byte bits
done.loadedbit 0Set once loading is done.
done.unusedbit 1 to 7Carries nothing.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 157 on transient, sent by the server, unreliable.

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.

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 1.0.0.25–1.0.0.60

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

FieldTypeWhat it is
countu8A client reads nothing here. A server writes zero.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.103

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

FieldTypeWhat it is
countu8A single count the client keeps. What it carries is not recorded for this range; a server writes zero.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-103

In 1.0.0.104–1.0.0.129

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

BuildsCommand
1.0.0.104–1.0.0.1095
1.0.0.110–1.0.0.11696
1.0.0.117–1.0.0.11897
1.0.0.119–1.0.0.12398
1.0.0.124–1.0.0.129101
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-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

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 1.0.0.25–1.0.0.109

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

A client answers it at once with ClientReady.

No body.

Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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

No body.

Vectors (1)

one-on-1-0-0-126

StartGame

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

Definition.

In 1.0.0.25–1.0.0.110

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

BuildsCommand
1.0.0.25–1.0.0.10913
1.0.0.11090

No body.

Vectors (3)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.111–1.0.0.125

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

BuildsCommand
1.0.0.111–1.0.0.11690
1.0.0.117–1.0.0.11891
1.0.0.119–1.0.0.12392
1.0.0.124–1.0.0.12595

A client past spawning ignores it.

No body.

Vectors (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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-126

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.25–1.0.0.109

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

The message is the header alone. A client sends it at once on SpawnEnd.

No body.

Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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

BuildsCommand
1.0.0.110–1.0.0.11681
1.0.0.117–1.0.0.11882
1.0.0.119–1.0.0.12383
1.0.0.124–1.0.0.12985

No body.

Vectors (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

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.25–1.0.0.10915
1.0.0.110189
1.0.0.111–1.0.0.116190
1.0.0.117–1.0.0.118191
1.0.0.119–1.0.0.123192
1.0.0.124196
1.0.0.125197
1.0.0.126–1.0.0.129198

No body.

Vectors (9)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.62111
1.0.0.63–1.0.0.73114
1.0.0.74–1.0.0.81115
1.0.0.82–1.0.0.96119
1.0.0.97–1.0.0.102120
1.0.0.103–1.0.0.106122
1.0.0.107–1.0.0.108123
1.0.0.109124
1.0.0.110144
1.0.0.111–1.0.0.116145
1.0.0.117–1.0.0.118146
1.0.0.119–1.0.0.123147
1.0.0.124–1.0.0.125151
1.0.0.126–1.0.0.127152
FieldTypeWhat it is
gamei64The match’s identifier. A client only logs it.
nametext, 128 bytesThe player’s name, padded with zero bytes. A client reads nothing of it.
Vectors (15)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128

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

FieldTypeWhat it is
gamei64The match’s identifier.
nametext, 128 bytesThe player’s name, padded with zero bytes. A client reads nothing of it.
Vectors (1)

one-on-1-0-0-128

In 1.0.0.129

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

FieldTypeWhat it is
gamei64The match’s identifier.
nametext, 128 bytesThe player’s name, padded with zero bytes.

MatchStarted

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

Definition.

In 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124200
1.0.0.125201
1.0.0.126–1.0.0.127202
FieldTypeWhat it is
startedAtf32When the match began, as a moment on the match clock, in seconds; a client counts match time from it.
Vectors (3)

one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
startedAtf32When the match began, as a moment on the match clock, in seconds.

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.113–1.0.0.125

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

BuildsCommand
1.0.0.113–1.0.0.116223
1.0.0.117–1.0.0.118224
1.0.0.119–1.0.0.122225
1.0.0.123226
1.0.0.124235
1.0.0.125236
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 (6)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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.

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 every range of this book

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

BuildsCommand
1.0.0.25–1.0.0.62119
1.0.0.63–1.0.0.73122
1.0.0.74–1.0.0.81123
1.0.0.82–1.0.0.96127
1.0.0.97–1.0.0.102128
1.0.0.103–1.0.0.106130
1.0.0.107–1.0.0.108131
1.0.0.109132
1.0.0.110–1.0.0.11669
1.0.0.117–1.0.0.11870
1.0.0.119–1.0.0.12371
1.0.0.124–1.0.0.12973

No body.

Vectors (12)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

StatsRequest

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

Definition.

In 1.0.0.104–1.0.0.127

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

BuildsCommand
1.0.0.104–1.0.0.106163
1.0.0.107–1.0.0.108164
1.0.0.109165
1.0.0.110–1.0.0.11674
1.0.0.117–1.0.0.11875
1.0.0.119–1.0.0.12376
1.0.0.124–1.0.0.12789

A client sends no body.

No body.

Vectors (7)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, empty-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

No body.

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:

  • a champion, CreateChampion, which, carrying the client’s own client id, also makes that champion the client’s own; a bot’s champion, the same CreateChampion naming no client, or SpawnBot;
  • a minion sent out from a side’s barracks, SpawnFromBarracks, and a unit like one, such as a ward, SpawnUnit;
  • a monster of no side, CreateNeutral; a pet, SpawnPet;
  • a turret, CreateTurret (The client’s data says how it names one), and a turret of the server’s choosing, SpawnTurret;
  • an object that follows a unit, CreateFollower, and a change to what it follows, FollowerMaster;
  • an unseen marker, SpawnMarker, which other messages can name and MarkerMoved moves;
  • a prop, a thing that stands on the map and is looked at, MapProp, and a change to one, MapPropChanged.

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

In 1.0.0.25–1.0.0.60

A client acts on a CreateChampion or a CreateNeutral whenever it arrives, before CharacterSelected as after.

In 1.0.0.96

A client drops a CreateChampion or a CreateNeutral that arrives before it has loaded the map’s ground grid, which it loads while loading the match.

In 1.0.0.126

A client acts on a CreateChampion or a CreateNeutral whenever it arrives. Once it has reconnected, it drops a SpawnFromBarracks, SpawnUnit or CreateNeutral for an object it already holds.

A client builds a prop from the character its MapProp names, loading that character from its own files when it has not already, and fails soon after the prop comes near what it draws where it cannot load it. A server MUST name in MapProp only characters the client can load.

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.25–1.0.0.57

Command 6 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.

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 and nobody holds it. A client only keeps it; the shown name is name as sent.
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, 40 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 128 bytesThe champion it is: the name the client loads its art and sound under, written and padded as above.

In 1.0.0.58–1.0.0.62

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

The champion takes the id in champion, not the header’s; a client deletes no object holding that id first. For the client’s own seat, name also becomes its own player’s name.

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 and nobody holds it. A client only keeps it; the shown name is name as sent.
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 and this index plus one, facing as the map sets for them. A client works out the head count itself. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.
skini32Which look it wears.
nametext, 40 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 128 bytesThe champion it is: the name the client loads its art and sound under, written and padded as above.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.63–1.0.0.104

Command 6 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.

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 and nobody holds it; its shown name is then the client’s own bot name for asset, and name 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, 40 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 128 bytesThe champion it is: the name the client loads its art and sound under, written and padded as above.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-104

In 1.0.0.105–1.0.0.127

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

BuildsCommand
1.0.0.105–1.0.0.1096
1.0.0.110–1.0.0.11675
1.0.0.117–1.0.0.11876
1.0.0.119–1.0.0.12377
1.0.0.124–1.0.0.12779

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 and nobody holds it; 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, 40 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 128 bytesThe champion it is: the name the client loads its art and sound under, written and padded as above.
Vectors (6)

one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126, one-on-1-0-0-127

In 1.0.0.128–1.0.0.129

Command 79 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.

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.

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.110–1.0.0.121

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

BuildsCommand
1.0.0.110205
1.0.0.111–1.0.0.116206
1.0.0.117–1.0.0.118207
1.0.0.119–1.0.0.121208
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.
sideu32Its side: 100, 200 or 300, taken whole.
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-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-121

In 1.0.0.122–1.0.0.123

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

BuildsCommand
1.0.0.122208
1.0.0.123209
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.
flags1-byte bitsHow the champion is loaded.
flags.nameIsCharacterbit 0Set to load the champion under name rather than character.
flags.unusedbit 1 to 7Unused; 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-122, one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

BuildsCommand
1.0.0.124214
1.0.0.125215
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-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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)

a-bot-on-1-0-0-126

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.25–1.0.0.73

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

The header names the barracks, and a client handles the message only where it holds that barracks; the new unit’s id is in 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, from 0 to 3; any other value has no defined effect.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

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, from 0 to 3; a client spawns nothing for any other value.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

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, from 0 to 3; any other value has no defined effect.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.10254
1.0.0.103–1.0.0.10655
1.0.0.107–1.0.0.10956
1.0.0.110–1.0.0.1253
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, from 0 to 3; a client spawns nothing for any other value.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
Vectors (4)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.126–1.0.0.127

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

The header names the barracks the unit comes out of, and a client ignores the message under any other header; the new unit’s id is unit. A client deletes no object first. While resynchronising, it drops a message naming an id it holds, or with kind above 4.

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, from 0 to 3; a client spawns nothing for any other value.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
Vectors (1)

a-minion-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

SpawnUnit

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

Definition.

In 1.0.0.25–1.0.0.57

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

A client gives the new unit its id and node, deleting nothing first. Where clone names a unit it holds, a client only links the new unit to it as a clone and copies nothing of it; zero or an unknown id leaves no link. 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.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
cloneu32The unit the new unit is linked to as a clone, 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.unusedbit 1 to 7Unused; a server writes zero.

In 1.0.0.58–1.0.0.62

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

A client gives the new unit its id and node, deleting nothing first, and fails where it cannot make the unit. Where clone names a unit it holds, a client links the new unit to it as a clone and copies its current state: health, resource, their maxima and its other stats; zero or an unknown id leaves no link. The header names the unit that put it there; a client reads nothing of it.

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.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
cloneu32The unit the new unit is linked to as a clone and 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.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.86

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

BuildsCommand
1.0.0.63–1.0.0.7393
1.0.0.74–1.0.0.8194
1.0.0.82–1.0.0.8698

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.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
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.unusedbit 1 to 7Unused; a server writes zero.
Vectors (4)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-86

In 1.0.0.87–1.0.0.96

Command 98 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 the unit that put it there; a client reads nothing of it.

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.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
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.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.119

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

BuildsCommand
1.0.0.97–1.0.0.10299
1.0.0.103–1.0.0.106100
1.0.0.107–1.0.0.108101
1.0.0.109102
1.0.0.110121
1.0.0.111–1.0.0.116122
1.0.0.117–1.0.0.118123
1.0.0.119124

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.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
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.unusedbit 1 to 7Unused; a server writes zero.
Vectors (8)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-119

In 1.0.0.120–1.0.0.121

Command 124 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.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
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.unusedbit 2 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-121

In 1.0.0.122–1.0.0.123

Command 124 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.nameIsAssetbit 2Set to load the unit’s art under name rather than asset.
flags.unusedbit 3 to 7Unused; a server writes zero.
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-123

In 1.0.0.124

Command 128 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.botbit 2Set where it is driven by the client’s own decisions.
flags.unusedbit 3 to 7Unused; a server writes zero.
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-124

In 1.0.0.125–1.0.0.128

Command 128 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. While resynchronising, it drops a SpawnUnit naming an id it holds, or with an empty asset. It does nothing more where it cannot make the unit. clone, where nonzero, is copied, state and inventory.

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.
visibilitySizef32How large it counts as for sight, in world units.
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.unusedbit 3 to 7Unused; a server writes zero.
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-128

In 1.0.0.129

Command 128 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.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.

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.25–1.0.0.57

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

A client leaves the monster facing as it was made. A client adds damageBonus to the damage the unit deals twice over.

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.
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.
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, three times over: the unit’s maximum and current health both end at its base health plus three times this, and not below 0.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. Where no camp of that number exists yet, a client makes one at the unit’s own position, not at campAt, and adds the unit to it.

In 1.0.0.58–1.0.0.62

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

A client leaves the monster facing as it was made. A client adds damageBonus to the damage the unit deals twice over.

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.
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.
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. A client makes the unit with health and maximum health of its base health plus this, then adds this to the maximum twice more, so the maximum ends at base health plus three times this, and not below 0; it lowers current health only where it is above that maximum.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. Where no camp of that number exists yet, a client makes one at the unit’s own position, not at campAt, and adds the unit to it.
Vectors (1)

inactive-on-1-0-0-58

In 1.0.0.63–1.0.0.102

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

A client leaves the monster facing as it was made, and drops the message while its map’s navigation data is unloaded. A client adds damageBonus to the damage the unit deals, and healthBonus to its maximum health, twice over, keeping that maximum at zero or above, and sets its health to the new maximum.

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.
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.
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; where no camp has that number, it makes one at the unit’s own position and adds the unit to it.
Vectors (2)

inactive-on-1-0-0-75, inactive-on-1-0-0-99

In 1.0.0.103

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

A client leaves the monster facing as it was made, and 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.
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.
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.
extrau16Kept with the camp; a client does nothing more with it. A server writes zero.
Vectors (1)

inactive-on-1-0-0-103

In 1.0.0.104–1.0.0.123

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

BuildsCommand
1.0.0.104–1.0.0.1097
1.0.0.110–1.0.0.11697
1.0.0.117–1.0.0.11898
1.0.0.119–1.0.0.12399

The monster faces from where it stands toward the facing point, or along +Z where the two are the same, and 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.
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.
extrau16Kept with the camp; a client does nothing more with it. A server writes zero.
Vectors (4)

inactive-on-1-0-0-109, inactive-on-1-0-0-116, inactive-on-1-0-0-117, inactive-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

The body ends after camp. The monster faces from where it stands toward the facing point, or along +Z where the two are the same, and 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 bytesA name the client gives the camp it sets up for the unit where it holds no camp of that number yet; it has no effect where the camp already exists. What the client shows by it is not recorded.
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 (1)

a-monster-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 102 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.

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.

SpawnPet

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

Definition.

In 1.0.0.25–1.0.0.57

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

The header names the owner, and every client that holds that unit handles the message. A client kills the owner’s earlier pet if that lives, then makes the pet under pet and node with the owner’s side, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node.
cloneu32The unit it copies, or zero. For a minion-like pet, a client only links the pet to that unit, where it holds it, and copies nothing of it.

In 1.0.0.58–1.0.0.74

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

The header names the owner, and every client that holds that unit handles the message. A client kills the owner’s earlier pet if that lives, then makes the pet under pet and node with the owner’s side, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node.
cloneu32The unit it copies, or zero. Where a client holds that unit, it links the pet to it and copies its current state: health, resource, their maxima and its other stats; otherwise nothing is linked or copied.
Vectors (1)

one-on-1-0-0-74

In 1.0.0.75–1.0.0.82

Command 32 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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-82

In 1.0.0.83–1.0.0.86

Command 32 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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
effecttext, 64 bytesAn effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.unusedbit 1 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
Vectors (1)

one-on-1-0-0-86

In 1.0.0.87–1.0.0.107

Command 32 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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 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.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.unusedbit 1 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
Vectors (1)

one-on-1-0-0-107

In 1.0.0.108–1.0.0.124

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

BuildsCommand
1.0.0.108–1.0.0.10932
1.0.0.110–1.0.0.11657
1.0.0.117–1.0.0.11858
1.0.0.119–1.0.0.12359
1.0.0.12460

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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 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.
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; a client acts on it only where the owner is its own champion.
flags.unusedbit 2 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
Vectors (5)

one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124

In 1.0.0.125–1.0.0.127

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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it.

FieldTypeWhat it is
petu32The id the pet answers to, which a client gives it together with node. The header names the owner.
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.
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, 32 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.
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; a client acts on it only where the owner is its own champion.
flags.unusedbit 2 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
minimapIconu8Not zero, where the owner is a champion, to class the pet with its owner for display. What that changes on screen is not recorded.
Vectors (1)

a-decoy-on-1-0-0-126

In 1.0.0.128

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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it. 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 node is its own.
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, 32 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 node is its own.
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-128

In 1.0.0.129

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.
Vectors (1)

one-on-1-0-0-129

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.25–1.0.0.109

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

A client matches name against the map’s turrets, ignoring case. With no match it does nothing; a matched turret takes the id and node, and one missing or dead is not rebuilt.

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 (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.128

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

BuildsCommand
1.0.0.110156
1.0.0.111–1.0.0.116157
1.0.0.117–1.0.0.118158
1.0.0.119–1.0.0.123159
1.0.0.124163
1.0.0.125164
1.0.0.126–1.0.0.128165

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.
Vectors (7)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-128

In 1.0.0.129

Command 165 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.

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.

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.110–1.0.0.121

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

BuildsCommand
1.0.0.110206
1.0.0.111–1.0.0.116207
1.0.0.117–1.0.0.118208
1.0.0.119–1.0.0.121209

A client takes the prop’s id from prop, not from the header, and makes every prop a level prop.

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.
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 of the character the client loads the prop’s art and sound under, written and padded as above.
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.
unusedu8Unused; a client reads nothing here.
skillLevelu8The prop’s skill level.
Vectors (4)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-121

In 1.0.0.122–1.0.0.123

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

BuildsCommand
1.0.0.122209
1.0.0.123210

A client takes the prop’s id from prop, not from the header, and makes every prop a level prop.

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.
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.
unusedu8Unused; a client reads nothing here.
skillLevelu8The prop’s skill level.
flags1-byte bitsHow the prop is loaded.
flags.nameIsAssetbit 0Set to load the prop’s art under name rather than asset.
flags.unusedbit 1 to 7Unused; a server writes zero.
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 of the character the client loads the prop’s art and sound under, written and padded as above.
Vectors (2)

one-on-1-0-0-122, one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

BuildsCommand
1.0.0.124215
1.0.0.125216

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.
rotationXf32A vector’s part along one ground axis, used for either kind. What this carries is not recorded.
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.
rotationZf32A vector’s part along the other ground axis, used for either kind. What this carries is not recorded.
offsetXf32A second vector’s part along one ground axis, used only where kind is 1. What this carries is not recorded.
offsetYf32A second vector’s part in height, used only where kind is 1. What this carries is not recorded.
offsetZf32A second vector’s part along the other ground axis, used only where kind is 1. What this carries is not recorded.
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 of the character the client loads the prop’s art and sound under, written and padded as above.
Vectors (2)

active-on-1-0-0-124, active-on-1-0-0-125

In 1.0.0.126–1.0.0.127

Command 217 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.
rotationXf32A vector’s part along one ground axis, used for either kind. What this carries is not recorded.
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.
rotationZf32A vector’s part along the other ground axis, used for either kind. What this carries is not recorded.
offsetXf32A second vector’s part along one ground axis, used only where kind is 1. What this carries is not recorded.
offsetYf32A second vector’s part in height, used only where kind is 1. What this carries is not recorded.
offsetZf32A second vector’s part along the other ground axis, used only where kind is 1. What this carries is not recorded.
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 deletes no object first: where one already holds the prop’s id, both answer to it. 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 of the character the client loads the prop’s art and sound under, written and padded as above.
Vectors (1)

a-prop-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 217 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. 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.

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.110–1.0.0.123

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

BuildsCommand
1.0.0.110207
1.0.0.111–1.0.0.116208
1.0.0.117–1.0.0.118209
1.0.0.119–1.0.0.122210
1.0.0.123211

A client ignores the message for a prop it does not know. Whatever the change, it then reads the same bytes again as grouped effects: where the ninth byte of name is not zero, it adds that many effects from the bytes after it, so a name of nine or more characters adds effects besides.

FieldTypeWhat it is
changeu8What changes. A client ignores any other value. Values: 0 apply, 1 linkEffect.
propu32The object changed.
nametext, 64 bytesWhat is applied, for apply; written and padded with zero bytes.
optionu8For linkEffect, zero.
effectu8For linkEffect, which of the prop’s effect values to drive.
pointu8For linkEffect, which capture point drives it.
Vectors (5)

apply-on-1-0-0-110, apply-on-1-0-0-116, apply-on-1-0-0-117, apply-on-1-0-0-122, apply-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

BuildsCommand
1.0.0.124216
1.0.0.125217
FieldTypeWhat it is
nametext, 64 bytesThe name of the animation, for animate; a client reads it for no other change. The name ends at its first zero byte, and 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 (2)

animate-on-1-0-0-124, animate-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

FieldTypeWhat it is
nametext, 64 bytesThe name of the animation, for animate; a client reads it for no other change. The name ends at its first zero byte, and 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 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 reads it for no other change.
effectu8For linkEffect, which of the prop’s effect values to drive.
pointu8For linkEffect, which capture point drives it.
Vectors (1)

an-animation-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

TeamChanged

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

Definition.

In 1.0.0.110–1.0.0.127

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

BuildsCommand
1.0.0.110212
1.0.0.111–1.0.0.116213
1.0.0.117–1.0.0.118214
1.0.0.119–1.0.0.122215
1.0.0.123216
1.0.0.124222
1.0.0.125223
1.0.0.126–1.0.0.127224
FieldTypeWhat it is
unitu32The unit. A client ignores the message where it does not hold it.
sideu32Its new side.
Vectors (8)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
unitu32The unit.
sideu32Its new side.

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.25–1.0.0.62105
1.0.0.63–1.0.0.73108
1.0.0.74–1.0.0.81109
1.0.0.82–1.0.0.96113
1.0.0.97–1.0.0.102114
1.0.0.103–1.0.0.106116
1.0.0.107–1.0.0.108117
1.0.0.109118
1.0.0.110–1.0.0.12921
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 (9)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

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.25–1.0.0.62106
1.0.0.63–1.0.0.73109
1.0.0.74–1.0.0.81110
1.0.0.82–1.0.0.96114
1.0.0.97–1.0.0.102115
1.0.0.103–1.0.0.106117
1.0.0.107–1.0.0.108118
1.0.0.109119
1.0.0.110102
1.0.0.111–1.0.0.116103
1.0.0.117–1.0.0.118104
1.0.0.119–1.0.0.123105
1.0.0.124–1.0.0.129108
FieldTypeWhat it is
targets5 × u32Five units.
Vectors (13)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

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.25–1.0.0.62107
1.0.0.63–1.0.0.73110
1.0.0.74–1.0.0.81111
1.0.0.82–1.0.0.96115
1.0.0.97–1.0.0.102116
1.0.0.103–1.0.0.106118
1.0.0.107–1.0.0.108119
1.0.0.109120
1.0.0.110170
1.0.0.111–1.0.0.116171
1.0.0.117–1.0.0.118172
1.0.0.119–1.0.0.123173
1.0.0.124177
1.0.0.125178
1.0.0.126–1.0.0.129179
FieldTypeWhat it is
statei32The state.
Vectors (15)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

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.129

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

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.

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.

In 1.0.0.25–1.0.0.96

EnterSight states where the unit stands or which path it walks, and nothing of its looks, shields, health or resource.

In 1.0.0.97–1.0.0.129

EnterSight also states the unit’s items.

In 1.0.0.126

EnterSight states the unit’s shields and where it stands or which path it walks, and nothing of its health or resource. A client reads every part of the body whatever its length, so a server MUST NOT end one early. For a turret, an inhibitor, a nexus or a prop it reads no body at all.

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.

In 1.0.0.25–1.0.0.60

EnterLocalSight states nothing of the unit.

In 1.0.0.96–1.0.0.129

EnterLocalSight states the unit’s health.

In 1.0.0.126

EnterLocalSight states the unit’s maximum health beside its health, and nothing of its resource.

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.

In 1.0.0.58–1.0.0.126

LeaveLocalSight changes nothing a client shows, whichever unit it names.

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.

In 1.0.0.126–1.0.0.129

A client makes only circular regions.

In 1.0.0.126

A region fastened to a unit with a radius of 3000 or less is blocked by walls, and any other sees over them; nothing in a region chooses this.

Drawing the fog

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

In 1.0.0.58–1.0.0.129

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.

In 1.0.0.25–1.0.0.60

Any other GoldGained shows the gold gained or lost over the unit it names, whichever unit that is. ItemAdded announces no purchase, a client’s own or another’s.

In 1.0.0.58–1.0.0.60

LevelUp shows its effect over any champion the client can see, and does nothing for another unit.

In 1.0.0.96–1.0.0.129

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.

In 1.0.0.126

LevelUp shows its effect over any champion the client can see, and does nothing for another unit.

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.25–1.0.0.57

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

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
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. For any other unit a server ends the message before it, and a client reads none of the body.
view.movementStaterecordremaining setWhere the unit stands, followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (4)

a-fourth-on-1-0-0-25, a-third-on-1-0-0-25, another-on-1-0-0-25, one-on-1-0-0-25

In 1.0.0.58–1.0.0.60

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

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
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. A client ignores it for a turret, and reads nothing of it for any other unit.
view.movementStaterecordremaining setWhere the unit stands, followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (4)

a-fourth-on-1-0-0-58, a-third-on-1-0-0-58, another-on-1-0-0-58, one-on-1-0-0-58

In 1.0.0.61–1.0.0.82

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

BuildsCommand
1.0.0.61–1.0.0.7355
1.0.0.74–1.0.0.8056
1.0.0.8156
1.0.0.8259

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
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.movementStaterecordremaining setWhere the unit stands, followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (20)

a-fourth-on-1-0-0-72, a-third-on-1-0-0-72, another-on-1-0-0-72, one-on-1-0-0-72, a-fourth-on-1-0-0-75, a-third-on-1-0-0-75, another-on-1-0-0-75, one-on-1-0-0-75, a-fourth-on-1-0-0-79, a-third-on-1-0-0-79, another-on-1-0-0-79, one-on-1-0-0-79, a-fourth-on-1-0-0-81, a-third-on-1-0-0-81, another-on-1-0-0-81, one-on-1-0-0-81, a-fourth-on-1-0-0-82, a-third-on-1-0-0-82, another-on-1-0-0-82, one-on-1-0-0-82

In 1.0.0.83–1.0.0.96

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

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It carries no other messages.

FieldTypePresent whenWhat it is
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. For any other unit a client reads nothing of it.
view.movementStaterecordremaining setWhere the unit stands, followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (4)

a-fourth-on-1-0-0-96, a-third-on-1-0-0-96, another-on-1-0-0-96, one-on-1-0-0-96

In 1.0.0.97–1.0.0.110

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

BuildsCommand
1.0.0.97–1.0.0.10260
1.0.0.103–1.0.0.10661
1.0.0.107–1.0.0.10962
1.0.0.110185

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
itemCountu8How many items follow. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop or a building it reads nothing at all.
itemscount in itemCount × HeldItemWhat the unit carries, one entry a slot.
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.movementStaterecordremaining setWhere the unit stands, followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (16)

a-fourth-on-1-0-0-99, a-third-on-1-0-0-99, another-on-1-0-0-99, one-on-1-0-0-99, a-fourth-on-1-0-0-106, a-third-on-1-0-0-106, another-on-1-0-0-106, one-on-1-0-0-106, a-fourth-on-1-0-0-109, a-third-on-1-0-0-109, another-on-1-0-0-109, one-on-1-0-0-109, a-fourth-on-1-0-0-110, a-third-on-1-0-0-110, another-on-1-0-0-110, one-on-1-0-0-110

In 1.0.0.111–1.0.0.125

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

BuildsCommand
1.0.0.111–1.0.0.116186
1.0.0.117–1.0.0.118187
1.0.0.119–1.0.0.123188
1.0.0.124192
1.0.0.125193

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
itemCountu8How many items follow. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop or a building it reads nothing at all.
itemscount in itemCount × HeldItemWhat the unit carries, one entry a slot.
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.hasShieldsu8Not zero where three f32 values follow; zero sets all three to zero. 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 stands, followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (25)

a-fifth-on-1-0-0-116, a-fourth-on-1-0-0-116, a-third-on-1-0-0-116, another-on-1-0-0-116, one-on-1-0-0-116, a-fifth-on-1-0-0-117, a-fourth-on-1-0-0-117, a-third-on-1-0-0-117, another-on-1-0-0-117, one-on-1-0-0-117, a-fifth-on-1-0-0-123, a-fourth-on-1-0-0-123, a-third-on-1-0-0-123, another-on-1-0-0-123, one-on-1-0-0-123, a-fifth-on-1-0-0-124, a-fourth-on-1-0-0-124, a-third-on-1-0-0-124, another-on-1-0-0-124, one-on-1-0-0-124, a-fifth-on-1-0-0-125, a-fourth-on-1-0-0-125, a-third-on-1-0-0-125, another-on-1-0-0-125, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.

FieldTypePresent whenWhat it is
itemCountu8How many items follow. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop or a building it reads nothing at all.
itemscount in itemCount × HeldItemWhat the unit carries, one entry a slot.
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.
view.hasShieldsu8Not zero where three f32 values follow; zero sets all three to zero. 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 stands; only a movementKind of 3 is followed by the direction it faces.
view.movementState.movementKindu8What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value. Values: 0 nothing, 1 movingAtASpeed, 2 moving, 3 standing.
view.movementState.syncIdu32The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.
view.movementState.movementMovementmovementKind = 2Every point after the first.
view.movementState.movementAtSpeedMovementAtSpeedmovementKind = 1Where the unit is going, and how a server makes it travel. WaypointGroupAtSpeed carries the same shape.
view.movementState.atXf32movementKind = 3Along one ground axis, in world units; the height is the ground’s.
view.movementState.atZf32movementKind = 3Along the other ground axis.
view.movementState.facingXf32movementKind = 3Which way it faces, along one ground axis.
view.movementState.facingZf32movementKind = 3Which way it faces, along the other.
Vectors (9)

a-fifth-on-1-0-0-126, a-fourth-on-1-0-0-126, a-sixth-on-1-0-0-126, a-third-on-1-0-0-126, another-on-1-0-0-126, one-on-1-0-0-126, standing-on-1-0-0-126, walking-after-a-teleport-on-1-0-0-126, walking-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.60

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

A client reads none of the body: it shows the unit and reads nothing more.

FieldTypePresent whenWhat it is
vitalsrecordremaining setThe unit’s health. A client reads nothing here.
vitals.maxHealthf32A client reads nothing here.
vitals.healthf32A client reads nothing here.
Vectors (2)

another-on-1-0-0-58, one-on-1-0-0-58

In 1.0.0.61–1.0.0.81

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

BuildsCommand
1.0.0.61–1.0.0.7357
1.0.0.74–1.0.0.8158

It carries no other messages: the body is the unit’s health alone, always present.

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. A client holds it to between zero and maxHealth.
Vectors (6)

another-on-1-0-0-72, one-on-1-0-0-72, another-on-1-0-0-75, one-on-1-0-0-75, another-on-1-0-0-81, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

It carries no other messages: the body is the unit’s health alone, always present.

FieldTypePresent whenWhat it is
vitalsrecordremaining setThe unit’s health. A client reads it only for a unit with a mind; for any other unit it reads nothing of the body.
vitals.maxHealthf32What the unit’s health tops out at. A client keeps it at zero or above.
vitals.healthf32What its health stands at. A client holds it to between zero and maxHealth.
Vectors (2)

another-on-1-0-0-96, one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.10262
1.0.0.103–1.0.0.10663
1.0.0.107–1.0.0.10964
1.0.0.110172
1.0.0.111–1.0.0.116173
1.0.0.117–1.0.0.118174
1.0.0.119–1.0.0.123175
1.0.0.124179
1.0.0.125180

It carries no other messages: the body is the unit’s health alone, always present.

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. A client holds it to between zero and maxHealth.
Vectors (18)

another-on-1-0-0-99, one-on-1-0-0-99, another-on-1-0-0-106, one-on-1-0-0-106, another-on-1-0-0-109, one-on-1-0-0-109, another-on-1-0-0-110, one-on-1-0-0-110, another-on-1-0-0-116, one-on-1-0-0-116, another-on-1-0-0-117, one-on-1-0-0-117, another-on-1-0-0-123, one-on-1-0-0-123, another-on-1-0-0-124, one-on-1-0-0-124, another-on-1-0-0-125, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

It carries no other messages: the body is the unit’s health alone, always present.

FieldTypePresent whenWhat it is
vitalsrecordremaining setThe unit’s health.
vitals.maxHealthf32What the unit’s health tops out at.
vitals.healthf32What its health stands at. A client holds it to between zero and maxHealth.
Vectors (3)

another-on-1-0-0-126, entered-on-1-0-0-126, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.120–1.0.0.127

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

BuildsCommand
1.0.0.120–1.0.0.122226
1.0.0.123227
1.0.0.124236
1.0.0.125237
1.0.0.126–1.0.0.127238
FieldTypeWhat it is
sideu8Which side the unit came into the view of, as an index from 0 to 3. A server sends only 0 to 3; a larger index has no defined effect.
Vectors (5)

one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, entered-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
sideu8Which side the unit came into or out of the view of.

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 1.0.0.25–1.0.0.123

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

BuildsCommand
1.0.0.25–1.0.0.7356
1.0.0.74–1.0.0.8157
1.0.0.82–1.0.0.9660
1.0.0.97–1.0.0.10261
1.0.0.103–1.0.0.10662
1.0.0.107–1.0.0.10963
1.0.0.110–1.0.0.11680
1.0.0.117–1.0.0.11881
1.0.0.119–1.0.0.12382

What a server sends to take a unit out of what a client can see; the client stops drawing it. The header names the unit.

No body.

Vectors (10)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

What a server sends to take a unit out of what a client can see; the client stops drawing it, unless it is a turret. The header names the unit.

No body.

Vectors (1)

one-on-1-0-0-124

In 1.0.0.126–1.0.0.127

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

What a server sends to take a unit out of what a client can see; the client stops drawing it, unless it is a turret. A client ignores it while playing a replay. The header names the unit.

No body.

Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

No body.

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 1.0.0.120–1.0.0.127

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

BuildsCommand
1.0.0.120–1.0.0.122227
1.0.0.123228
1.0.0.124237
1.0.0.125238
1.0.0.126–1.0.0.127239
FieldTypeWhat it is
sideu8Which side the unit passed out of the view of, as an index from 0 to 3. A server sends only 0 to 3; a larger index has no defined effect.
Vectors (5)

one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, left-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
sideu8Which side the unit came into or out of the view of.

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.123–1.0.0.125

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

BuildsCommand
1.0.0.123230
1.0.0.124239
1.0.0.125240

A client ignores the message where particle names none it holds.

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

one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

A client ignores the message where particle names none it holds, and fails where it names an object that is not a particle.

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

left-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
particleu32The particle.
teamu8Which side, by an index.

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.25–1.0.0.125

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

BuildsCommand
1.0.0.25–1.0.0.7358
1.0.0.74–1.0.0.8159
1.0.0.82–1.0.0.9662
1.0.0.97–1.0.0.10263
1.0.0.103–1.0.0.10664
1.0.0.107–1.0.0.10965
1.0.0.110–1.0.0.11655
1.0.0.117–1.0.0.11856
1.0.0.119–1.0.0.12357
1.0.0.124–1.0.0.12558

No body.

Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124

In 1.0.0.126–1.0.0.127

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

It changes nothing a client shows for any unit, and a client ignores it while playing a replay.

No body.

Vectors (1)

left-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.62

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

On this range a region stands where the message places it; RegionAttached places one that follows a unit. Every message adds a new region, even one matching a region the client holds; each counts down on its own.

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more.
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, taking each frame’s time off before it checks, and removes the region at the first count that reaches zero or less.
markeru32The id the client keeps the region under. Zero has the client pick one.
does4-byte bitsWhat the region does.
does.flagbit 0Where kind is 2 and this bit is set, a client also sets the bit after it.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32Kept with the region; what it names is not recorded. A server sends zero.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.7392
1.0.0.74–1.0.0.8193

On this range a region stands where the message places it; RegionAttached places one that follows a unit. A region matching one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and position only gives that one the new lifetime.

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more.
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, so zero or less removes it at once.
markeru32The id the client keeps the region under. Zero has the client pick one.
does4-byte bitsWhat the region does.
does.flagbit 0Where kind is 2 and this bit is set, a client also sets the bit after it.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

On this range a region stands where the message places it; RegionAttached places one that follows a unit.

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more.
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, so one that starts at zero or less goes at its first count.
markeru32The id the client keeps the region under. Zero has the client pick one.
does4-byte bitsWhat the region does.
does.flagbit 0Where kind is 2 and this bit is set, a client also sets the bit after it.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect, and a client clears the first of these bits itself; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32Kept with the region; what it names is not recorded. A server sends zero.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97–1.0.0.10298
1.0.0.103–1.0.0.10699
1.0.0.107–1.0.0.108100
1.0.0.109101
1.0.0.110116
1.0.0.111–1.0.0.116117
1.0.0.117–1.0.0.118118
1.0.0.119–1.0.0.123119

On this range a region stands where the message places it; RegionAttached places one that follows a unit. A region matching one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and position only gives that one the new lifetime.

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more.
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, so zero or less removes it at once.
markeru32The id the client keeps the region under. Zero has the client pick one.
does4-byte bitsWhat the region does.
does.flagbit 0Where kind is 2 and this bit is set, a client also sets the bit after it.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.
Vectors (8)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

On this range a region stands where the message places it; RegionAttached places one that follows a unit. A region matching one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and position only gives that one the new lifetime.

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side. A client watching the match takes the side it watches as its own, and draws every region while it watches both.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more.
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, so zero or less removes it at once.
markeru32The id the client keeps the region under. Zero has the client pick one.
does4-byte bitsWhat the region does.
does.flagbit 0Where kind is 2 and this bit is set, a client also sets the bit after it.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 123 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.
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.

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.25–1.0.0.62

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

Every message adds a new region, even one matching a region the client holds; each counts down on its own.

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more. Zero takes the unit’s own sight radius, followed as it changes, or a default where it has none.
unitu32The unit the region follows. A client ignores the message where it does not know the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less, so one that starts at zero or less goes at its first count.
markeru32The region’s id, which RegionRemoved names; zero has the client pick one of its own.
does4-byte bitsWhat the region does.
does.flagbit 0Set where the region shows the map; where kind is 2, a client sets both this bit and does.second, whatever was sent. What else it changes is not recorded.
does.secondbit 1Kept with the region; a client sets it wherever kind is 2. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect, because a client always sets this bit itself; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32Kept with the region; what it names is not recorded. A server sends zero.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.7391
1.0.0.74–1.0.0.8192

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
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more. Zero takes the unit’s own sight radius, followed as it changes, or a default where it has none.
unitu32The unit the region follows. A client ignores the message where it does not know the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less, so one that starts at zero or less goes at its first count.
markeru32The region’s id, which RegionRemoved names; zero has the client pick one of its own. A region that matches one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and unit only renews that one’s lifetime; the id is not compared.
does4-byte bitsWhat the region does.
does.flagbit 0Set where the region shows the map; where kind is 2, a client also sets does.second. What else it changes is not recorded.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect, because a client always sets this bit itself; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more. Zero takes the unit’s own sight radius, followed as it changes, or a default where it has none.
unitu32The unit the region follows. A client ignores the message where it does not know the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less, so one that starts at zero or less goes at its first count.
markeru32The region’s id, which RegionRemoved names; zero has the client pick one of its own.
does4-byte bitsWhat the region does.
does.flagbit 0Set where the region shows the map; a client sets it, and does.second, wherever kind is 2. What else it changes is not recorded.
does.secondbit 1Kept with the region; a client also sets it wherever kind is 2. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect, because a client always sets this bit itself; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32Kept with the region; what it names is not recorded. A server sends zero.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97–1.0.0.10297
1.0.0.103–1.0.0.10698
1.0.0.107–1.0.0.10899
1.0.0.109100
1.0.0.110–1.0.0.12337

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
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more. Zero takes the unit’s own sight radius, followed as it changes, or a default where it has none.
unitu32The unit the region follows. A client ignores the message where it does not know the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less, so one that starts at zero or less goes at its first count.
markeru32The region’s id, which RegionRemoved names; zero has the client pick one of its own. A region that matches one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and unit only renews that one’s lifetime; the id is not compared.
does4-byte bitsWhat the region does.
does.flagbit 0Set where the region shows the map; where kind is 2, a client also sets does.second. What else it changes is not recorded.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect, because a client always sets this bit itself; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.
Vectors (5)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
kindu32Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side. A client watching the match takes the side it watches as its own, and draws every region while it watches both.
clientIdu32Unused; a client reads nothing here.
sightRadiusf32How far the region shows the map around it, in world units, zero or more. Zero takes the unit’s own sight radius, followed as it changes, or a default where it has none.
unitu32The unit the region follows. A client ignores the message where it does not know the unit.
lifetimef32How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less, so one that starts at zero or less goes at its first count.
markeru32The region’s id, which RegionRemoved names; zero has the client pick one of its own. A region that matches one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and unit only renews that one’s lifetime; the id is not compared.
does4-byte bitsWhat the region does.
does.flagbit 0Where kind is 2 and this bit is set, a client also sets does.second. The region shows the map whether or not it is set.
does.secondbit 1Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.
does.unusedbit 2 to 31Its value has no effect, because a client always sets this bit itself; a server writes zero.
extrau32Kept with the region; it changes nothing a client shows. A server writes zero.
otherExtrau32A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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 1.0.0.25–1.0.0.62

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

FieldTypeWhat it is
regionu32The region to take away, by the id RegionAdded or RegionAttached gave it. A client takes away every region it holds under that id.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.7390
1.0.0.74–1.0.0.8191
FieldTypeWhat it is
regionu32The region to take away, by the name RegionAdded gave it.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
regionu32The region to take away, by the id RegionAdded or RegionAttached gave it. A client removes every region holding that id.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.129

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

BuildsCommand
1.0.0.97–1.0.0.10296
1.0.0.103–1.0.0.10697
1.0.0.107–1.0.0.10898
1.0.0.10999
1.0.0.110–1.0.0.11653
1.0.0.117–1.0.0.11854
1.0.0.119–1.0.0.12355
1.0.0.124–1.0.0.12956
FieldTypeWhat it is
regionu32The region to take away, by the name RegionAdded gave it.
Vectors (8)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, removed-on-1-0-0-126

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.98–1.0.0.103

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

BuildsCommand
1.0.0.98–1.0.0.102135
1.0.0.103137

A client turns its fog of war on.

No body.

Vectors (2)

one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.129

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

BuildsCommand
1.0.0.104–1.0.0.106137
1.0.0.107–1.0.0.108138
1.0.0.109139
1.0.0.110171
1.0.0.111–1.0.0.116172
1.0.0.117–1.0.0.118173
1.0.0.119–1.0.0.123174
1.0.0.124178
1.0.0.125179
1.0.0.126–1.0.0.129180
FieldTypeWhat it is
shownu8Nonzero turns the fog of war on; zero turns it off.
Vectors (10)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, drawn-on-1-0-0-126

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.25–1.0.0.62125
1.0.0.63–1.0.0.73128
1.0.0.74–1.0.0.81129
1.0.0.82–1.0.0.96133
1.0.0.97–1.0.0.102134
1.0.0.103–1.0.0.106136
1.0.0.107–1.0.0.108137
1.0.0.109138
1.0.0.110123
1.0.0.111–1.0.0.116124
1.0.0.117–1.0.0.118125
1.0.0.119–1.0.0.123126
1.0.0.124–1.0.0.129130

No body.

Vectors (14)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, toggled-on-1-0-0-126

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.

In 1.0.0.25–1.0.0.80

A path carries each point as two world floats (see Space), stated against no origin and no other point.

In 1.0.0.96–1.0.0.129

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.

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

Resolving a path

In 1.0.0.96–1.0.0.129

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.96–1.0.0.129

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

In 1.0.0.25–1.0.0.60

A server needs no origin.

In 1.0.0.96–1.0.0.129

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

In 1.0.0.25–1.0.0.60

A path carries no flag and no token, so nothing relocates a unit: every path is walked.

In 1.0.0.79–1.0.0.129

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.

In 1.0.0.96–1.0.0.129

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.

In 1.0.0.25–1.0.0.62

An order carries no path: only its destination, in world floats. A server works out the route itself and sends it in the path that answers the order.

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).

In 1.0.0.25–1.0.0.126

A client takes a WaypointGroup or a WaypointGroupAtSpeed on channels 2, 3 and 4 alike.

In 1.0.0.25–1.0.0.60

A client sends the WaypointAck before reading any movement in the group, and lists no units in it.

In 1.0.0.96–1.0.0.129

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.

Marking the ground

NavigationFlags marks the ground within circles.

In 1.0.0.126

A server MAY send NavigationFlags. A client replaces the circles it holds with those it carries, and answers with its syncId.

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 1.0.0.25–1.0.0.57

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

A client answers each with WaypointAck, naming this sync id alone, before it reads any movement and whatever movementCount is.

FieldTypeWhat it is
syncIdu32Names this statement of movement.
movementCountu16How many units follow. A client reads it as signed, so a count above 32767 counts as none, as zero does.
movementscount in movementCount × MovementAtSpeedWhat each unit is told to do.
Vectors (1)

one-on-1-0-0-25

In 1.0.0.58–1.0.0.60

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

A client answers each with WaypointAck, naming this sync id, before it reads any path.

FieldTypeWhat it is
syncIdu32Names this statement of movement.
movementCountu16How many units follow. A client reads it as signed, so a count above 32767 counts as none, as zero does.
movementscount in movementCount × MovementAtSpeedWhat each unit is told to do.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.127

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

BuildsCommand
1.0.0.61–1.0.0.62122
1.0.0.63–1.0.0.73125
1.0.0.74–1.0.0.80126
1.0.0.81126
1.0.0.82130
1.0.0.83–1.0.0.96130
1.0.0.97–1.0.0.102131
1.0.0.103–1.0.0.106133
1.0.0.107–1.0.0.108134
1.0.0.109135
1.0.0.110–1.0.0.11698
1.0.0.117–1.0.0.11899
1.0.0.119–1.0.0.123100
1.0.0.124–1.0.0.127103

A client answers each with WaypointAck, naming this sync id and listing, in order, each unit whose path carried a teleport token with that token.

FieldTypeWhat it is
syncIdu32Names this statement of movement.
movementCountu16How many units follow. A client reads it as signed, so a count above 32767 counts as none, as zero does.
movementscount in movementCount × MovementAtSpeedWhat each unit is told to do.
Vectors (17)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-79, one-on-1-0-0-81, one-on-1-0-0-82, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-107, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-dash-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.25–1.0.0.62

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

What a client sends for every WaypointGroup it takes, and for every WaypointGroupAtSpeed, Path and PathWithSpeed, as it takes it and before it moves any unit. The header names no object: it carries zero.

FieldTypeWhat it is
syncIdu32The number of the group it answers, as the group named itself.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.78

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

BuildsCommand
1.0.0.63–1.0.0.73123
1.0.0.74–1.0.0.78124

What a client sends for every WaypointGroup it takes, and for every WaypointGroupAtSpeed, as it takes it and before it moves any unit. The header names no object: it carries zero.

FieldTypeWhat it is
syncIdu32The number of the group it answers, as the group named itself.
Vectors (2)

one-on-1-0-0-72, one-on-1-0-0-75

In 1.0.0.79–1.0.0.127

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

BuildsCommand
1.0.0.79–1.0.0.81124
1.0.0.82–1.0.0.96128
1.0.0.97–1.0.0.102129
1.0.0.103–1.0.0.106131
1.0.0.107–1.0.0.108132
1.0.0.109133
1.0.0.110115
1.0.0.111–1.0.0.116116
1.0.0.117–1.0.0.118117
1.0.0.119–1.0.0.123118
1.0.0.124–1.0.0.127122

What a client sends for every WaypointGroup it takes, and for every WaypointGroupAtSpeed. The header names no object: it carries zero. It lists the units the group asked it to relocate.

FieldTypeWhat it is
syncIdu32The number of the group it answers, as the group named itself.
relocationCountu8How many relocations follow: answering a group, how many of its paths carried a teleport token. Answering a path for one unit, a client 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 × recordEach of those, in the group’s order.
relocations[].unitu32The unit the token belonged to.
relocations[].tokenu8The token that arrived with it.
Vectors (11)

one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 122 on requests, sent by the client, unsequenced.

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.

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.25–1.0.0.62

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

What a client sends as its player gives an order. It carries no path. The header names the unit ordered: the player’s champion, or a unit it controls alongside, which gets its own copy of the order.

FieldTypeWhat it is
kindu8What the order is. Values: 2 moveToPosition, 3 attack, 10 stop.
targetXf32Where the order points, along one ground axis, in world units.
targetYf32The height of the place ordered.
targetZf32Where the order points, along the other ground axis.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.78

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

What a client sends as its player gives an order. The header names the unit ordered: the player’s champion, or a unit it controls alongside, which gets its own copy of the order. 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 the order is. 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 ground axis.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
movementrecordEvery point after the first.
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 30How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the movement.
movement.header.unusedHighbit 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.pointscount in header.pointCount × recordEvery point of the path, each stated in world units.
movement.path.points[].xf32Along one ground axis, in world units.
movement.path.points[].zf32Along the other, in world units.
Vectors (2)

another-on-1-0-0-75, one-on-1-0-0-75

In 1.0.0.79–1.0.0.82

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

What a client sends as its player gives an order. The header names the unit ordered: the player’s champion, or a unit it controls alongside, which gets its own copy of the order. 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 the order is. 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 ground axis.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
movementrecordEvery point after the first.
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 30How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the movement.
movement.header.unusedHighbit 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.pointscount in header.pointCount × recordEvery point of the path, each stated whole. A client reads them even for a unit it does not hold.
movement.path.points[].xi16Along one ground axis, in the units Movement gives.
movement.path.points[].zi16Along the other.
Vectors (2)

another-on-1-0-0-82, one-on-1-0-0-82

In 1.0.0.83–1.0.0.127

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

BuildsCommand
1.0.0.83–1.0.0.10920
1.0.0.110110
1.0.0.111–1.0.0.116111
1.0.0.117–1.0.0.118112
1.0.0.119–1.0.0.123113
1.0.0.124–1.0.0.127117

What a client sends as its player gives an order. The header names the unit ordered: the player’s champion, or a unit it controls alongside, which gets its own copy of the order. 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 the order is. 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 ground axis.
targetu32The network object the order is aimed at, or zero where it is aimed at open ground.
movementrecordEvery point after the first.
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 (27)

a-path-of-3-points-on-1-0-0-103, hold-on-1-0-0-103, one-on-1-0-0-103, move-to-position-on-1-0-0-109, a-path-of-3-points-on-1-0-0-110, hold-on-1-0-0-110, move-to-position-on-1-0-0-110, one-on-1-0-0-110, a-path-of-3-points-on-1-0-0-111, hold-on-1-0-0-111, one-on-1-0-0-111, move-to-position-on-1-0-0-116, a-path-of-3-points-on-1-0-0-117, hold-on-1-0-0-117, one-on-1-0-0-117, move-to-position-on-1-0-0-117, a-path-of-3-points-on-1-0-0-119, hold-on-1-0-0-119, one-on-1-0-0-119, move-to-position-on-1-0-0-123, a-path-of-3-points-on-1-0-0-124, hold-on-1-0-0-124, one-on-1-0-0-124, a-path-of-10-points-on-1-0-0-126, a-path-of-4-points-on-1-0-0-126, a-path-of-5-points-on-1-0-0-126, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 117 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.
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 (3)

a-path-of-3-points-on-1-0-0-128, hold-on-1-0-0-128, one-on-1-0-0-128

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 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.57121
1.0.0.58–1.0.0.60121
1.0.0.61–1.0.0.62121
1.0.0.63–1.0.0.73124
1.0.0.74–1.0.0.80125
1.0.0.81125
1.0.0.82129
1.0.0.83–1.0.0.96129
1.0.0.97–1.0.0.102130
1.0.0.103–1.0.0.106132
1.0.0.107–1.0.0.108133
1.0.0.109134
1.0.0.110–1.0.0.11695
1.0.0.117–1.0.0.11896
1.0.0.119–1.0.0.12397
1.0.0.124–1.0.0.127100

What a server sends to set units walking paths, which each walks at its own speed.

FieldTypeWhat it is
syncIdu32The number of this statement; a client applies a path to a unit only where it is not behind the last the unit took. A client returns it in WaypointAck to say the group arrived.
movementCountu16How many paths follow, one for each unit. A client reads it as signed, so a count above 32767 counts as none, as zero does, and a client still answers.
movementscount in movementCount × MovementOne path for each unit.
Vectors (20)

one-on-1-0-0-25, one-on-1-0-0-58, one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-79, one-on-1-0-0-81, one-on-1-0-0-82, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-path-of-10-points-on-1-0-0-126, a-path-of-4-points-on-1-0-0-126, a-path-of-5-points-on-1-0-0-126, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 100 on transient, sent by the server, unreliable.

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

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 1.0.0.108–1.0.0.110

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

BuildsCommand
1.0.0.108204
1.0.0.109205
1.0.0.11067

A client clears every circle it holds before marking these, and answers each with a message to the server under command 32 whose body is this sync id alone.

FieldTypeWhat it is
countu16The count of circles that follow. A client reads that many whatever the payload holds.
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-108, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.111–1.0.0.127

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

BuildsCommand
1.0.0.111–1.0.0.11667
1.0.0.117–1.0.0.11868
1.0.0.119–1.0.0.12369
1.0.0.124–1.0.0.12771

A client clears every circle it holds before marking these, and answers each with a message to the server under command 32 whose body is this sync id alone.

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 (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, two-circles-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

FaceDirection

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

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.6293
1.0.0.63–1.0.0.7399
1.0.0.74–1.0.0.81100
1.0.0.82–1.0.0.96104
1.0.0.97–1.0.0.102105
1.0.0.103–1.0.0.106107
1.0.0.107–1.0.0.108108
1.0.0.109109
1.0.0.110–1.0.0.11679
1.0.0.117–1.0.0.11880
1.0.0.119–1.0.0.12381
1.0.0.124–1.0.0.12783

Where towardX and towardZ are both zero, a client does not turn the unit at once, but it still keeps the zero direction as the one the unit is to face. What follows from that is not recorded.

FieldTypeWhat it is
towardXf32The direction faced, along one ground axis.
towardYf32The direction faced, in height.
towardZf32The direction faced, along the other ground axis.
Vectors (13)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, facing-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 83 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.

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 every range of this book

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

BuildsCommand
1.0.0.25–1.0.0.6293
1.0.0.63–1.0.0.7399
1.0.0.74–1.0.0.81100
1.0.0.82–1.0.0.96104
1.0.0.97–1.0.0.102105
1.0.0.103–1.0.0.106107
1.0.0.107–1.0.0.108108
1.0.0.109109
1.0.0.110–1.0.0.11679
1.0.0.117–1.0.0.11880
1.0.0.119–1.0.0.12381
1.0.0.124–1.0.0.12983
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 (12)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

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.25–1.0.0.62

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

A client keeps its camera within the circle, and nothing else.

FieldTypeWhat it is
xf32The circle’s centre, in world units.
yf32The centre’s height, in world units. A client does not use it.
zf32The circle’s centre, in world units.
radiusf32The circle’s radius, in world units. Zero lifts the bounds; a negative radius counts as zero.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.109

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

BuildsCommand
1.0.0.63–1.0.0.73129
1.0.0.74–1.0.0.81130
1.0.0.82–1.0.0.96134
1.0.0.97135
1.0.0.98–1.0.0.102136
1.0.0.103–1.0.0.106138
1.0.0.107–1.0.0.108139
1.0.0.109140

A client keeps its camera within the circle, and nothing else.

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.
Vectors (9)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

In 1.0.0.110–1.0.0.125

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.
camerau8A client takes any bit set here as camera set; a server writes zero.
Vectors (1)

one-on-1-0-0-110

In 1.0.0.126–1.0.0.127

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.
camerau8Nonzero also keeps the client’s camera inside the circle, a negative radius counting as zero for it. The bounds on the champion’s orders apply whatever this holds.
Vectors (1)

a-circle-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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 1.0.0.25–1.0.0.62

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

A client answers every one at once, before applying it and whatever its sync id, unsequenced on the transient channel, with WaypointAck carrying this sync id. 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, and passes over a remainder shorter than a point.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.127

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

BuildsCommand
1.0.0.63–1.0.0.7383
1.0.0.74–1.0.0.8184
1.0.0.82–1.0.0.9687
1.0.0.97–1.0.0.10288
1.0.0.103–1.0.0.10689
1.0.0.107–1.0.0.10890
1.0.0.10991
1.0.0.110184
1.0.0.111–1.0.0.116185
1.0.0.117–1.0.0.118186
1.0.0.119–1.0.0.123187
1.0.0.124191
1.0.0.125192
1.0.0.126–1.0.0.127193

A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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, and passes over a remainder shorter than a point.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (15)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, two-points-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.62

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

A client answers every one at once, before applying it and whatever its sync id, as it answers Path. It applies it only where the sync id is not older than the last the unit took, and does not count it as the last itself.

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.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each, and passes over a remainder shorter than a point.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.107

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

BuildsCommand
1.0.0.63–1.0.0.7384
1.0.0.74–1.0.0.8185
1.0.0.82–1.0.0.9688
1.0.0.97–1.0.0.10289
1.0.0.103–1.0.0.10690
1.0.0.10791

A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each, and passes over a remainder shorter than a point.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (7)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-107

In 1.0.0.108–1.0.0.109

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

BuildsCommand
1.0.0.10891
1.0.0.10992

A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each, and passes over a remainder shorter than a point.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (2)

along-on-1-0-0-108, along-on-1-0-0-109

In 1.0.0.110

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

A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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.
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.
facingi8Which way the unit faces as it moves. Values: 0 along, 1 keep.
pointsto the end × recordThe path’s points, to the end of the message. A client takes the ground’s height for each, and passes over a remainder shorter than a point.
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-110

In 1.0.0.111–1.0.0.127

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

BuildsCommand
1.0.0.111–1.0.0.116130
1.0.0.117–1.0.0.118131
1.0.0.119–1.0.0.123132
1.0.0.124–1.0.0.127136

A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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, and passes over a remainder shorter than a point.
points[].xf32A point on the path, in world units.
points[].zf32A point on the path, in world units.
Vectors (4)

along-on-1-0-0-116, along-on-1-0-0-117, along-on-1-0-0-123, two-points-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 136 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.
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.

UnitStopped

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

Definition.

In 1.0.0.25–1.0.0.57

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

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. A client drops the message where it is behind the last the unit took by less than 1073741824.

In 1.0.0.58–1.0.0.109

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

A client applies it only where its sync id is not older than the last the unit took, counting a wrap: this message, Path, PathWithSpeed, WaypointGroup and WaypointGroupAtSpeed 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. A client drops the message where it is behind the last the unit took by less than 1073741824.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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

BuildsCommand
1.0.0.110–1.0.0.12350
1.0.0.124–1.0.0.12751

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. A client drops the message where it is behind the last the unit took by less than 1073741824.
Vectors (2)

one-on-1-0-0-123, stopped-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.

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.

In 1.0.0.25–1.0.0.126

A value that says yes or no is an integer, 1 for yes and 0 for no. A client takes a batch on channels 2, 3 and 4 alike.

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.

In 1.0.0.25–1.0.0.96

A prop answers to no table, and a client takes nothing a batch carries for one.

In 1.0.0.126–1.0.0.129

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.

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

In 1.0.0.58–1.0.0.60

A champion

GroupBitsValueType
00Experiencefloat
01Gold in handfloat
02Which slots can be cast fromu32
03 to 6What the spell in slots 0 to 3 costsfloat
07 to 14What the spell in slots 41 to 48 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 targetableu32
14Whether it is proof against strikesu32
15Damage it deals by strikingfloat
16Damage its spells deal before modifiersfloat
17How often it turns a blow asidefloat
18How often it strikes criticallyfloat
19Armourfloat
110Spell resistancefloat
111 to 12How fast health and resource returnfloat
113How far it strikes fromfloat
114 to 16Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
117 to 18Flat and percent reduction of the spell damage it takesfloat
119A multiplier on how fast it strikesfloat
120A flat addition to how far it castsfloat
121A modifier on its cooldownsfloat
20 to 1Whether it is proof against strikes, then against spells, as group 1 bits 4 and 1u32
30 to 1Health and resource as they standfloat
32 to 3Health and resource at their greatestfloat
34 to 5A flat and a percent addition to how far it seesfloat
36How fast it movesfloat
37A value whose meaning is not recordedfloat
38Levelu32

A turret

GroupBitsValueType
10Damage it deals by strikingfloat
11 to 2Armour and spell resistancefloat
13A multiplier on how fast it strikesfloat
14 to 6Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
17How fast health returnsfloat
18 to 9Health as it stands, then at its greatestfloat
110What the turret is doing, as a set of bitsu32
111 to 13Whether it is proof against spells, proof against all harm, and targetableu32
114Whether it is proof against strikesu32
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 targetableu32
18Whether it is proof against strikesu32
19Damage it deals by strikingfloat
110 to 11Armour and spell resistancefloat
112A multiplier on how fast it strikesfloat
113 to 15Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
116 to 17How fast health and resource returnfloat
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
11 to 2Whether it is proof against all harm, and targetableu32

In 1.0.0.96–1.0.0.126

A champion

GroupBitsValueType
00Experiencefloat
01Gold in handfloat
02 to 3Which slots can be cast from: the champion’s own, then the second setu32
04 to 7What the spell in slots 0 to 3 costsfloat
08 to 15What the spell in each of eight further slots costsfloat
016 to 17What 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 targetableu32
14Which sides can aim at it, as a set of bitsu32
15Whether it is proof against strikesu32
16Damage it deals by strikingfloat
17Damage its spells deal before modifiersfloat
18How often it turns a blow asidefloat
19How often it strikes criticallyfloat
110Armourfloat
111Spell resistancefloat
112 to 13How fast health and resource returnfloat
114How far it strikes fromfloat
115 to 17Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
118 to 19Flat and percent reduction of the spell damage it takesfloat
120A multiplier on how fast it strikesfloat
121A flat addition to how far it castsfloat
122A modifier on its cooldownsfloat
123 to 24How much armour it cuts through, flat then as a percentfloat
125 to 26How much spell resistance it cuts through, flat then as a percentfloat
127Life stealfloat
128Spell vampfloat
20 to 1Whether it is proof against strikes, then against spells, as group 1 bits 5 and 1u32
30 to 1Health and resource as they standfloat
32 to 3Health and resource at their greatestfloat
34 to 5A flat and a percent addition to how far it seesfloat
36How fast it movesfloat
37A value whose meaning is not recordedfloat
38Levelu32

What the second set and the eight further slots 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 client sets the sides that can aim at a unit to 33554432 where any can and 25165824 where none can.

A turret

GroupBitsValueType
10Damage it deals by strikingfloat
11 to 2Armour and spell resistancefloat
13A multiplier on how fast it strikesfloat
14 to 6Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
17How fast health returnsfloat
18 to 9Health as it stands, then at its greatestfloat
110What the turret is doing, as a set of bitsu32
111 to 13Whether it is proof against spells, proof against all harm, and targetableu32
114Which sides can aim at it, as a set of bitsu32
115Whether it is proof against strikesu32
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 targetableu32
18Which sides can aim at it, as a set of bitsu32
19Whether it is proof against strikesu32
110Damage it deals by strikingfloat
111 to 12Armour and spell resistancefloat
113A multiplier on how fast it strikesfloat
114 to 16Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damagefloat
117 to 18How fast health and resource returnfloat
119 to 20Flat 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
11 to 2Whether it is proof against all harm, and targetableu32
13Which sides can aim at it, as a set of bitsu32

In 1.0.0.96

A champion’s eight further slots are slots 41 to 48.

In 1.0.0.126

A champion’s eight further slots are slots 42 to 49, and bit n of either set of slots that can be cast from stands for slot n. Its group 3 bit 9 holds the kills it has taken from no side, as a u32.

A prop

GroupBitsValueType
10Health as it standsfloat
11Health as it stands, againfloat
12 to 3Whether it is proof against all harm, and targetableu32
14Which sides can aim at it, as a set of bitsu32
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.25–1.0.0.126

A server grants experience with ExperienceGained and gold with GoldGained.

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.25–1.0.0.62128
1.0.0.63–1.0.0.73131
1.0.0.74–1.0.0.81132
1.0.0.82–1.0.0.96136
1.0.0.97137
1.0.0.98–1.0.0.102138
1.0.0.103–1.0.0.106140
1.0.0.107–1.0.0.108141
1.0.0.109142
1.0.0.110194
1.0.0.111–1.0.0.116195
1.0.0.117–1.0.0.118196
1.0.0.119–1.0.0.123197
1.0.0.124202
1.0.0.125203
1.0.0.126–1.0.0.129204
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 (19)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, another-on-1-0-0-126, naming-no-unit-on-1-0-0-126, one-on-1-0-0-126

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.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.62129
1.0.0.63–1.0.0.73132
1.0.0.74–1.0.0.81133
1.0.0.82–1.0.0.96137
1.0.0.97138
1.0.0.98–1.0.0.102139
1.0.0.103–1.0.0.106141
1.0.0.107–1.0.0.108142
1.0.0.109143
1.0.0.110167
1.0.0.111–1.0.0.116168
1.0.0.117–1.0.0.118169
1.0.0.119–1.0.0.123170
1.0.0.124174
1.0.0.125175
1.0.0.126–1.0.0.127176

A client sends it for a Replication batch only where it holds every unit the batch names, or the batch names none.

FieldTypeWhat it is
syncIdu32Which batch is being acknowledged, as the batch named itself.
Vectors (17)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, acknowledged-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 176 on requests, sent by the client, unsequenced.

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.

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.25–1.0.0.109

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

Where amount is above 0.5, unit is the client’s own champion and source names a unit it holds, a client floats the gold over the source. Otherwise, where it holds the unit, it floats the amount over the unit as a gain or a loss, and nothing for zero.

FieldTypeWhat it is
unitu32The unit granted it.
sourceu32What it came from, or zero where nothing did.
amountf32How much.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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

BuildsCommand
1.0.0.110–1.0.0.12336
1.0.0.124–1.0.0.12737

Where amount is above 0.5, unit is the client’s own champion and source names a unit it holds, a client floats the gold over the source. Otherwise, where it holds the unit, it shows the amount on the unit as a gain or a loss, and nothing for zero; where that appears is not recorded.

FieldTypeWhat it is
unitu32The unit granted it.
sourceu32What it came from, or zero where nothing did.
amountf32How much.
Vectors (2)

one-on-1-0-0-123, granted-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.109

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

It changes no unit’s experience: a client only floats the amount as text over the unit, where the player’s floating-text settings allow.

FieldTypeWhat it is
unitu32The unit granted it, a champion. A client fails for any other unit it holds, and does nothing for a unit it does not know.
amountf32How much. A client shows a value below zero or from 100000 up as well.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.125

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

A client floats the amount over any champion it holds, except while playing a replay.

FieldTypeWhat it is
unitu32The unit granted it.
amountf32How much.
Vectors (1)

one-on-1-0-0-110

In 1.0.0.126–1.0.0.127

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

A client floats the amount over any champion it holds, except while playing a replay.

FieldTypeWhat it is
unitu32The unit granted it. A server names a champion: any other unit the client holds has no defined effect.
amountf32How much.
Vectors (1)

granted-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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

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

BuildsCommand
1.0.0.25–1.0.0.6289
1.0.0.63–1.0.0.7395
1.0.0.74–1.0.0.8196
1.0.0.82–1.0.0.96100
1.0.0.97–1.0.0.102101
1.0.0.103–1.0.0.106103
1.0.0.107–1.0.0.108104
1.0.0.109105
1.0.0.110–1.0.0.1297
FieldTypeWhat it is
targetu32The unit that receives the gold.
Vectors (10)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, redirected-on-1-0-0-126

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.25–1.0.0.7347
1.0.0.74–1.0.0.8148
1.0.0.82–1.0.0.9651
1.0.0.97–1.0.0.10252
1.0.0.103–1.0.0.10653
1.0.0.107–1.0.0.10954
1.0.0.110–1.0.0.11665
1.0.0.117–1.0.0.11866
1.0.0.119–1.0.0.12367
1.0.0.124–1.0.0.12969

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 (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, level-two-on-1-0-0-126

ChampionStats

What a server sends to set a champion’s tallies for the scoreboard. The header names the champion.

Definition.

In 1.0.0.61–1.0.0.106

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

BuildsCommand
1.0.0.61–1.0.0.73176
1.0.0.74–1.0.0.81177
1.0.0.82–1.0.0.96181
1.0.0.97182
1.0.0.98–1.0.0.102183
1.0.0.103185
1.0.0.104–1.0.0.106191

A fixed record of the champion’s tallies, which a client keeps whole and shows none of. It acts only on kills.

FieldTypeWhat it is
keptAbytes, 20Kept with the champion; a client shows nothing of it.
killsi32How many champions it has killed. Above zero, a client counts the champion’s first kill as made.
keptBbytes, 176Kept with the champion; a client shows nothing of it.
Vectors (8)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106

In 1.0.0.107–1.0.0.123

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

BuildsCommand
1.0.0.107–1.0.0.108192
1.0.0.109193
1.0.0.110–1.0.0.11671
1.0.0.117–1.0.0.11872
1.0.0.119–1.0.0.12373

A fixed record of the champion’s tallies. A client shows kills, deaths and assists, minionKills and neutralKills together as its minion count, the two structure kills together as its building count, and goldTotal; GoldEarned adds to goldTotal between these messages.

FieldTypeWhat it is
keptA3 × i32Kept with the champion; a client shows nothing of it.
deathsi32How many times the champion has died.
minionKillsi32How many minions it has killed, neutral ones aside.
killsi32How many champions it has killed. Each side’s kill total is the sum over its champions. Where any champion’s is above zero, a client takes first blood as taken: it raises no first-blood event and adds no first-blood bonus to a kill’s value after that.
structureKillsi32One kind of structure it has destroyed.
otherStructureKillsi32The other kind of structure it has destroyed.
keptBi32Kept with the champion; a client shows nothing of it.
neutralKillsi32How many neutral minions it has killed.
gapbytes, 12A client takes nothing from these bytes. A server writes zero.
keptC3 × i32Kept with the champion; a client shows nothing of it.
goldTotalf32The gold it has earned in all, shown rounded down.
keptD9 × i32Kept with the champion; a client shows nothing of it.
keptE2 × f32Kept with the champion; a client shows nothing of it.
keptFu8Kept with the champion; a client shows nothing of it.
paddingbytes, 3A client takes nothing from these bytes. A server writes zero.
keptG8 × i32Kept with the champion; a client shows nothing of it.
keptH13 × f32Kept with the champion; a client shows nothing of it.
keptIi32Kept with the champion; a client shows nothing of it.
assistsi32How many kills it has assisted.
Vectors (5)

one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.129

Command 75 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 nonzero count of champion kills marks first blood taken.
Vectors (1)

one-on-1-0-0-126

ShieldAdded

What a server sends to add to a unit’s shield. The header names the unit.

Definition.

In 1.0.0.111–1.0.0.127

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

BuildsCommand
1.0.0.111–1.0.0.116100
1.0.0.117–1.0.0.118101
1.0.0.119–1.0.0.123102
1.0.0.124–1.0.0.127105

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 7A client ignores these; a server writes zero.
amountf32How much is added.
Vectors (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-shield-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

HealthBar

What a server sends about a unit’s health bar. The header names the unit.

Definition.

In 1.0.0.103–1.0.0.127

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

BuildsCommand
1.0.0.103–1.0.0.106102
1.0.0.107–1.0.0.108103
1.0.0.109104
1.0.0.110204
1.0.0.111–1.0.0.116205
1.0.0.117–1.0.0.118206
1.0.0.119–1.0.0.122207
1.0.0.123208
1.0.0.124213
1.0.0.125214
1.0.0.126–1.0.0.127215
FieldTypeWhat it is
showu8Any value other than zero shows the bar; zero hides it.
Vectors (11)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, shown-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
showu8Set to show the bar, clear to hide it. Zero hides it, any other value shows it.

ScoreAdded

What a server sends to add to a player’s score. The header names no object: a server writes zero.

Definition.

In 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124224
1.0.0.125225
1.0.0.126–1.0.0.127226

A client ignores the message where champion 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 7A client ignores these; a server writes zero.
pointsf32How much is added.
Vectors (3)

offense-on-1-0-0-124, offense-on-1-0-0-125, a-score-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124225
1.0.0.125226
1.0.0.126–1.0.0.127227
FieldTypeWhat it is
championu32The champion.
statisticu8Which count, from 0 to 9. A client does not check the range, so a value past 9 has no defined effect; a server sends only those named. Values: 0 pointCaptured, 1 pointNeutralised, 2 killWhileAttackingPoint, 3 teamObjective, 4 defendedPointNeutralised, 5 killWhileDefendingPoint, 6 timeDefendingPoint, 7 lastStand, 8 captureAssist, 9 neutraliseAssist.
Vectors (3)

team-objective-on-1-0-0-124, team-objective-on-1-0-0-125, counted-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

GoldEarned

What a server sends about gold a champion earned. The header carries zero.

Definition.

In 1.0.0.120–1.0.0.125

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

BuildsCommand
1.0.0.120–1.0.0.122228
1.0.0.123231
1.0.0.124240
1.0.0.125241
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-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold.
Vectors (1)

credited-on-1-0-0-126

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 1.0.0.109–1.0.0.129

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

BuildsCommand
1.0.0.10978
1.0.0.110145
1.0.0.111–1.0.0.116146
1.0.0.117–1.0.0.118147
1.0.0.119–1.0.0.123148
1.0.0.124–1.0.0.125152
1.0.0.126–1.0.0.129153
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 (6)

one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125

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.25–1.0.0.7364
1.0.0.74–1.0.0.8165
1.0.0.82–1.0.0.9668
1.0.0.97–1.0.0.10269
1.0.0.103–1.0.0.10670
1.0.0.107–1.0.0.10971
1.0.0.110–1.0.0.12341
1.0.0.124–1.0.0.12942

A client takes it and changes nothing it shows.

FieldTypeWhat it is
secondsf32The span, in seconds.
Vectors (9)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123, one-second-on-1-0-0-126

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.25–1.0.0.96

The speed GameSpeed sets takes effect at once: sent during a hold, it ends the hold, and a Resumed after it changes nothing.

In 1.0.0.58–1.0.0.129

StatTick asks every unit’s stats to advance by that span.

In 1.0.0.126–1.0.0.129

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).

In 1.0.0.126–1.0.0.129

A client names no one in Pause or Resume.

A server holds the match with Paused.

In 1.0.0.25–1.0.0.96

A client reads nothing from Paused. It stops the match clock where the clock is running, keeping the speed it had, and shows nothing.

In 1.0.0.126–1.0.0.129

Paused carries how long the hold can last, in seconds.

In 1.0.0.126–1.0.0.129

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.126

Where the message’s flag asks it, a client announces in chat the player that held the match, unless the message names no one. Every hold shows a box with the time left.

A server ends the hold with Resumed.

In 1.0.0.25–1.0.0.96

A client reads nothing from Resumed. Where the match is held, it goes on at once at the speed it had, with no countdown and no announcement.

In 1.0.0.126–1.0.0.129

Resumed ends the hold either at once or after a countdown the client shows, during which the match stays held.

In 1.0.0.126

A client announces in chat who resumed the match only where it resumes at once, and does so even where the match was not held.

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.

A client sends ClientFinished every time GameEnded arrives in play, while playing a replay too.

In 1.0.0.58–1.0.0.129

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.126

VictoryDance moves every unit.

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.

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.

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.25–1.0.0.126

A client dropped during play connects again only where its player agrees: for the reason 0 it asks, and on a yes connects again, showing that it is reconnecting until it is back or its player cancels. For any other reason but the one that means its player was away, it shows that the reconnection failed. One dropped while loading leaves.

Where Reconnected names the client’s own, the client resynchronises until ResyncEnded.

In 1.0.0.58–1.0.0.60

A client sends ReconnectedInMatch right after the registration answer.

In 1.0.0.96–1.0.0.126

While it resynchronises, a client ignores any message creating a unit it already holds.

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.25–1.0.0.126

A client gives up on a connection where a reliable message it sent goes unacknowledged for 30 seconds, while loading and in play alike.

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.25–1.0.0.62

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

FieldTypeWhat it is
elapsedf32How long the match has run, in seconds. A client sets its clock to this plus its own measure of the round trip, and answers at once with ClockReply.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.125

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

BuildsCommand
1.0.0.63–1.0.0.7380
1.0.0.74–1.0.0.8181
1.0.0.82–1.0.0.9684
1.0.0.97–1.0.0.10285
1.0.0.103–1.0.0.10686
1.0.0.107–1.0.0.10887
1.0.0.10988
1.0.0.110192
1.0.0.111–1.0.0.116193
1.0.0.117–1.0.0.118194
1.0.0.119–1.0.0.123195
1.0.0.124199
1.0.0.125200
FieldTypeWhat it is
elapsedf32How long the match has run, in seconds.
Vectors (14)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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-126

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 1.0.0.25–1.0.0.119

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

BuildsCommand
1.0.0.25–1.0.0.6275
1.0.0.63–1.0.0.7381
1.0.0.74–1.0.0.8182
1.0.0.82–1.0.0.9685
1.0.0.97–1.0.0.10286
1.0.0.103–1.0.0.10687
1.0.0.107–1.0.0.10888
1.0.0.10989
1.0.0.110–1.0.0.1198
FieldTypeWhat it is
valueu32The client id the sender holds.
serverSaidf32The time the server last stated, in seconds, carried back as it arrived.
clientSaidf32What the client’s own clock reads, in seconds, just after it set itself from that statement.
Vectors (10)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-119

In 1.0.0.120–1.0.0.127

Command 8 on clock, sent by the client, reliable.

FieldTypeWhat it is
valueu32The client id the sender holds.
serverSaidf32The time the server last stated, in seconds, carried back as it arrived.
clientSaidf32What the client’s own clock reads, in seconds, just after it set itself from that statement.
checkbytes, 32The same thirty two bytes from every client of the build; they carry nothing a server needs.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.25–1.0.0.62

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

It takes effect at once, so sent while paused it ends the pause.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client applies it as given, with no limit.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73138
1.0.0.74–1.0.0.81139

Sent while paused, it takes effect on resuming.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client keeps it between 0 and 10.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

It takes effect at once: a nonzero speed sent while paused resumes the game.

FieldTypeWhat it is
speedf32How fast, 1 being normal; 0 pauses the game.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.109

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

BuildsCommand
1.0.0.97144
1.0.0.98–1.0.0.102145
1.0.0.103147
1.0.0.104–1.0.0.106152
1.0.0.107–1.0.0.108153
1.0.0.109154

Sent while paused, it takes effect on resuming.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client keeps it between 0 and 10.
Vectors (6)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

In 1.0.0.110–1.0.0.125

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.
Vectors (1)

one-on-1-0-0-110

In 1.0.0.126–1.0.0.129

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)

doubled-on-1-0-0-126

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 1.0.0.25–1.0.0.125

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

BuildsCommand
1.0.0.25–1.0.0.62134
1.0.0.63–1.0.0.73137
1.0.0.74–1.0.0.81138
1.0.0.82–1.0.0.96142
1.0.0.97143
1.0.0.98–1.0.0.102144
1.0.0.103146
1.0.0.104–1.0.0.106151
1.0.0.107–1.0.0.108152
1.0.0.109153
1.0.0.110–1.0.0.12510

A client resumes the match at once where it is held, and announces no one.

No body.

Vectors (12)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-125

In 1.0.0.126–1.0.0.128

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 by the name the client’s list of players gives it, where afterCountdown is clear: to a player in the colour of an ally where the resumer is on its side and of an enemy otherwise, and to a client watching the match in the resumer’s side’s colour. 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.
Vectors (2)

after-a-countdown-on-1-0-0-126, one-on-1-0-0-128

In 1.0.0.129

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.124–1.0.0.125

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

BuildsCommand
1.0.0.124167
1.0.0.125168

A client sends it only where its own settings allow holding the match, and only while the match is not held.

No body.

Vectors (2)

one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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-126

Resume

What a client sends to start a paused match again. The header names no object: it carries zero.

Definition.

In 1.0.0.124–1.0.0.125

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

A client sends it only where its own settings allow holding the match, and only while the match is held.

No body.

Vectors (1)

one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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.
Vectors (1)

from-a-client-on-1-0-0-126

Paused

What a server sends to put the match on hold. The header names no object: it carries zero.

Definition.

In 1.0.0.25–1.0.0.125

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

BuildsCommand
1.0.0.25–1.0.0.62133
1.0.0.63–1.0.0.73136
1.0.0.74–1.0.0.81137
1.0.0.82–1.0.0.96141
1.0.0.97142
1.0.0.98–1.0.0.102143
1.0.0.103145
1.0.0.104–1.0.0.106150
1.0.0.107–1.0.0.108151
1.0.0.109152
1.0.0.110160
1.0.0.111–1.0.0.116161
1.0.0.117–1.0.0.118162
1.0.0.119–1.0.0.123163
1.0.0.124167
1.0.0.125168

A client holds the match at once where it is not already held.

No body.

Vectors (17)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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

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 (1)

a-tournament-hold-on-1-0-0-126

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.25–1.0.0.57

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

A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. It ends the match on its screen and sends ClientFinished. A client fails where its own player does not yet exist.

FieldTypeWhat it is
resultu8Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won.

In 1.0.0.58–1.0.0.95

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

A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it shows an error and leaves as one abandoning the match. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.

FieldTypeWhat it is
resultu8Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won.
Vectors (1)

one-on-1-0-0-75

In 1.0.0.96–1.0.0.109

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

A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it first shows an error. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.

FieldTypeWhat it is
resultu8Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won.
Vectors (1)

one-on-1-0-0-109

In 1.0.0.110–1.0.0.121

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

BuildsCommand
1.0.0.110195
1.0.0.111–1.0.0.116196
1.0.0.117–1.0.0.118197
1.0.0.119–1.0.0.121198

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
resultu8Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won.
Vectors (4)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-121

In 1.0.0.122–1.0.0.125

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

BuildsCommand
1.0.0.122198
1.0.0.123199
1.0.0.124204
1.0.0.125205

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. A client counts a win where this names its own side, and a loss otherwise.
result.unusedbit 1 to 7A client does nothing with this bit.
Vectors (4)

one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

Command 206 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 hides its window and leaves at once; a client with no champion of its own first shows a message and counts neither. 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. A client counts a win where this names its own side, and a loss otherwise.
result.unusedbit 1 to 7A client does nothing with this bit.
Vectors (1)

side-100-won-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 206 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. 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.

ClientFinished

What a client sends when it has finished with the match.

Definition.

In 1.0.0.25–1.0.0.95

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

A client sends it each time GameEnded arrives.

No body.

Vectors (1)

one-on-1-0-0-75

In 1.0.0.96–1.0.0.109

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

A client sends it each time GameEnded arrives once the match has started, and not for one that arrives while the match still loads.

No body.

Vectors (1)

one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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

BuildsCommand
1.0.0.110137
1.0.0.111–1.0.0.116138
1.0.0.117–1.0.0.118139
1.0.0.119–1.0.0.123140
1.0.0.124–1.0.0.125144
1.0.0.126–1.0.0.129145

It is sent once, at the end.

No body.

Vectors (6)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125, empty-on-1-0-0-126

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.123–1.0.0.129

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

BuildsCommand
1.0.0.123198
1.0.0.124203
1.0.0.125204
1.0.0.126–1.0.0.129205
FieldTypeWhat it is
orderWonu8Nonzero where side 100 won, zero where side 200 won.
Vectors (4)

one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, side-100-won-on-1-0-0-126

Exit

What a client sends as it leaves. It carries nothing of its own.

Definition.

In 1.0.0.25–1.0.0.57

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

A client sends it once, as it leaves without a result: as its player confirms quitting or the window is asked to close, or as its player gives up reconnecting after the connection is lost, or loses it where reconnecting is turned off. It sends none after GameEnded, and none on Shutdown or BotKick.

No body.

In 1.0.0.58–1.0.0.62

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

A client sends it once, as it leaves without a result while the match runs: as its player quits from the options menu or closes the window, gives up reconnecting after the connection is lost, or dismisses the notice that it was disconnected for being away. It sends none while the match still loads, none after GameEnded, and none on Shutdown or BotKick.

No body.

Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73118
1.0.0.74–1.0.0.81119

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-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

Command 123 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, or as a reconnection fails.

No body.

Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.129

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

BuildsCommand
1.0.0.97–1.0.0.102124
1.0.0.103–1.0.0.106126
1.0.0.107–1.0.0.108127
1.0.0.109128
1.0.0.110140
1.0.0.111–1.0.0.116141
1.0.0.117–1.0.0.118142
1.0.0.119–1.0.0.123143
1.0.0.124–1.0.0.125147
1.0.0.126–1.0.0.129148

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 (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125, empty-on-1-0-0-126

PlayerDisconnected

What a server sends as a player’s client drops out. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.62

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

A client shows a chat notice naming the player that client id belongs to, whenever its interface exists: in a neutral colour where it has no champion of its own, and otherwise coloured for whether that player is on its own side.

FieldTypeWhat it is
clientIdu32The player’s client id, matched against the client id CreateChampion gave each champion the client knows.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73119
1.0.0.74–1.0.0.81120

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, matched against the owner of each champion the client knows.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

A client shows a chat notice naming the player that client id belongs to, whenever its interface exists: in a neutral colour where it has no champion of its own, and otherwise coloured for whether that player is on its own side.

FieldTypeWhat it is
clientIdu32The player’s client id, matched against the client id CreateChampion gave each champion the client knows.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.102125
1.0.0.103–1.0.0.106127
1.0.0.107–1.0.0.108128
1.0.0.109129
1.0.0.110151
1.0.0.111–1.0.0.116152
1.0.0.117–1.0.0.118153
1.0.0.119–1.0.0.123154
1.0.0.124158
1.0.0.125159

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, matched against the owner of each champion the client knows.
Vectors (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

A client shows a chat notice naming the player that client id belongs to, whenever its interface exists: coloured for whether that player is on its own side where it has a champion of its own and is not watching the match, and otherwise in that player’s side’s colour.

FieldTypeWhat it is
clientIdu32The player’s client id, matched against the client id CreateChampion gave each champion the client knows.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

ReconnectedInMatch

What a client sends right after the server answers its registration. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.62

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

A client dropped while playing asks its player whether to reconnect; where the drop gives inactivity or another reason, it only says it cannot reconnect. One dropped at any other time closes.

FieldTypeWhat it is
loadingu8Zero while the client is playing, in the state StartGame puts it in; 1 at any other time, including after GameEnded.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73120
1.0.0.74–1.0.0.81121

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 (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

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 while the match StartGame began is running, 1 otherwise: before StartGame, and once the match has ended.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.129

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

BuildsCommand
1.0.0.97–1.0.0.102126
1.0.0.103–1.0.0.106128
1.0.0.107–1.0.0.108129
1.0.0.109130
1.0.0.110155
1.0.0.111–1.0.0.116156
1.0.0.117–1.0.0.118157
1.0.0.119–1.0.0.123158
1.0.0.124162
1.0.0.125163
1.0.0.126–1.0.0.129164

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 (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

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.25–1.0.0.62118
1.0.0.63–1.0.0.73121
1.0.0.74–1.0.0.81122
1.0.0.82–1.0.0.96126
1.0.0.97–1.0.0.102127
1.0.0.103–1.0.0.106129
1.0.0.107–1.0.0.108130
1.0.0.109131
1.0.0.110–1.0.0.12916
FieldTypeWhat it is
clientu32The client, by the seat it occupies.
Vectors (10)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-126

ClockConvergence

What a server sends about how its clock and a client’s are being brought together. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.6276
1.0.0.63–1.0.0.7382
1.0.0.74–1.0.0.8183
1.0.0.82–1.0.0.9686
1.0.0.97–1.0.0.10287
1.0.0.103–1.0.0.10688
1.0.0.107–1.0.0.10889
1.0.0.10990
1.0.0.110114
1.0.0.111–1.0.0.116115
1.0.0.117–1.0.0.118116
1.0.0.119–1.0.0.123117
1.0.0.124–1.0.0.127121
FieldTypeWhat it is
clientTimef32The client’s clock, in seconds, as the client reported it. A client sets its clock offset from it: its running round trip value, less half of its own clock’s reading less this value.
roundTripf32The round trip time the server measures, in seconds. A client blends it into a running value, keeping 0.8 of the old and adding 0.1 of this.
Vectors (14)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 121 on clock, sent by the server, reliable.

FieldTypeWhat it is
clientTimef32The client’s clock, in seconds, as the client reported it.
roundTripf32The round trip time the server measures, in seconds.

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.

In 1.0.0.126–1.0.0.129

A client never walks its champion into range by itself: a server sends the WaypointGroup that takes it there.

In 1.0.0.126–1.0.0.129

A swing starts later by the timing byte of its Attack less 128, in hundredths of a second.

TargetUnit draws a unit’s targeting beam at what it is attacking.

In 1.0.0.25–1.0.0.96

Only a turret takes TargetUnit; every other unit ignores it.

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.

In 1.0.0.126–1.0.0.129

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.

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.

In 1.0.0.25–1.0.0.96

Nothing in UnitDied leaves the unit standing: every unit it puts down dies.

In 1.0.0.58–1.0.0.129

A death that credits no killer still stops the unit’s cast and attack.

In 1.0.0.126–1.0.0.129

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.

Coming back

Revived puts a champion back on the field.

In 1.0.0.25–1.0.0.96

A client reads nothing from Revived or Respawned: each brings the champion back where it stands.

In 1.0.0.126–1.0.0.129

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.126

A client sends UseObject at no other time.

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 1.0.0.25–1.0.0.73

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

FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it, and drops the whole message where it does not know this unit.
timingf32A shift in time, in seconds, from the moment the message arrives. 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-72

In 1.0.0.74–1.0.0.78

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

FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it.
timingf32A shift in time, in seconds, from the moment the message arrives. 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-75

In 1.0.0.79–1.0.0.129

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

BuildsCommand
1.0.0.79–1.0.0.8154
1.0.0.82–1.0.0.9657
1.0.0.97–1.0.0.10258
1.0.0.103–1.0.0.10659
1.0.0.107–1.0.0.10960
1.0.0.110–1.0.0.12913
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 (6)

one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, a-swing-on-1-0-0-126

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 1.0.0.25–1.0.0.57

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

FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it.
timingf32A shift in time, in seconds, from the moment the message arrives. 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.
fromXf32Where the swinging unit stands, along one ground axis, in world units. Where the unit stands more than 400 units from this point, measured along the ground alone, a client first moves it there; nearer, the point has no effect.
fromYf32Where it stands, in height, in world units.
fromZf32Where it stands, along the other, in world units.

In 1.0.0.58–1.0.0.60

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

FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it, and drops the whole message where it does not know this unit.
timingf32A shift in time, in seconds, from the moment the message arrives. 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.
fromXf32Where the swinging unit stands, along one ground axis, in world units. Where the point is on ground a unit can walk, a client drops any path the unit was following and makes the point where its movement ends, at zero speed; where the unit stands more than 400 units from it, measured along the ground alone, the client also places the unit there at once.
fromYf32Where it stands, in height, in world units.
fromZf32Where it stands, along the other, in world units.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.78

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

BuildsCommand
1.0.0.61–1.0.0.7354
1.0.0.74–1.0.0.7855
FieldTypeWhat it is
targetu32The unit swung at. A client throws the swing at it.
timingf32A shift in time, in seconds, from the moment the message arrives. 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.
unreadbytes, 4A client reads nothing here. A server writes zero.
fromXf32Where the swinging unit stands, along one ground axis, in world units. Where the unit stands more than 400 units from this point, a client first moves it there; nearer, the point has no effect.
fromYf32Where it stands, in height, in world units.
fromZf32Where it stands, along the other, in world units.
Vectors (2)

one-on-1-0-0-72, one-on-1-0-0-75

In 1.0.0.79–1.0.0.127

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

BuildsCommand
1.0.0.79–1.0.0.8155
1.0.0.82–1.0.0.9658
1.0.0.97–1.0.0.10259
1.0.0.103–1.0.0.10660
1.0.0.107–1.0.0.10961
1.0.0.110–1.0.0.12328
1.0.0.124–1.0.0.12729
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. Where the unit stands more than 400 units from this point, a client first moves it there; nearer, the point has no effect.
fromZf32Where it stands, along the other, in world units.
Vectors (7)

one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123, a-swing-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.73

Command 48 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. It applies only where forceStop is clear.
how.forceCastbit 1Set to make the attack land first where it has not already.
how.forceStopbit 2Set to stop the current cast outright; clear, a client stops the attack the ordinary way.
how.summonerSpellbit 3Picks which spells the stop applies to: set, the summoner spells; clear, the unit’s own. A unit with no summoner spells, such as any unit that is not a champion, stops nothing when this is set.
how.destroyMissilebit 4Set to destroy the attack’s missile, where it has one. It applies only where forceStop is set and a cast is under way.
how.unusedbit 5 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.127

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

BuildsCommand
1.0.0.74–1.0.0.8149
1.0.0.82–1.0.0.9652
1.0.0.97–1.0.0.10253
1.0.0.103–1.0.0.10654
1.0.0.107–1.0.0.10955
1.0.0.110–1.0.0.11654
1.0.0.117–1.0.0.11855
1.0.0.119–1.0.0.12356
1.0.0.124–1.0.0.12757

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 current cast outright; clear, a client stops the attack the ordinary way.
how.summonerSpellbit 3Picks which spells the stop applies to: set, the summoner spells; clear, the unit’s own. A unit with no summoner spells, such as any unit that is not a champion, stops nothing when this is set.
how.destroyMissilebit 4Set to destroy the attack’s missile, where it has one.
how.unusedbit 5 to 7Unused; a server writes zero.
Vectors (11)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, forced-on-1-0-0-126, ordinary-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.109

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

A client shows the figure, but 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: 0 the word for invulnerable, 1 nothing, 2 the word for a dodge, 3 the amount as a critical strike, 4 the amount, and 5 the word for a miss; any value above 5 shows as 4. A client shows the amount cut down to a whole number.
how.unusedbit 7Unused; a server writes zero.
targetu32The unit hurt.
sourceu32The unit dealing it. A client shows nothing, notices included, unless it holds target and target can be attacked; it does not need to hold source, and a champion source has the amount added to its damage dealt where result is 3, 4 or above 5.
amountf32How much.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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

BuildsCommand
1.0.0.110–1.0.0.11699
1.0.0.117–1.0.0.118100
1.0.0.119–1.0.0.123101
1.0.0.124–1.0.0.127104

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; any value above 5 shows as 4.
how.unusedbit 7Unused; a server writes zero.
targetu32The unit hurt.
sourceu32The unit dealing it. A client shows nothing, notices included, unless it holds target and target can be attacked; it does not need to hold source, and a champion source has the amount added to its damage dealt.
amountf32How much.
Vectors (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-hit-on-1-0-0-126

In 1.0.0.128

Command 104 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 and target can be attacked; the figure drifts from source toward target, and a champion source has the amount added to its damage dealt.
amountf32How much.
Vectors (1)

one-on-1-0-0-128

In 1.0.0.129

Command 104 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.

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 1.0.0.25–1.0.0.123

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

BuildsCommand
1.0.0.25–1.0.0.7369
1.0.0.74–1.0.0.8170
1.0.0.82–1.0.0.9673
1.0.0.97–1.0.0.10274
1.0.0.103–1.0.0.10675
1.0.0.107–1.0.0.10976
1.0.0.110103
1.0.0.111–1.0.0.116104
1.0.0.117–1.0.0.118105
1.0.0.119–1.0.0.123106

Only a turret takes it, drawing its beam to target.

FieldTypeWhat it is
targetu32The unit being attacked, or zero where it is attacking nothing.
Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.129

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

FieldTypeWhat it is
targetu32The unit being attacked, or zero where it is attacking nothing.
Vectors (1)

a-target-on-1-0-0-126

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.25–1.0.0.73

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

A client marks the unit 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. A client fails on a nonzero target where it has no player of its own.

FieldTypeWhat it is
targetu32The champion being attacked.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

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 (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

A client marks the unit where target is nonzero and is the client’s 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-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.10275
1.0.0.103–1.0.0.10676
1.0.0.107–1.0.0.10977
1.0.0.110191
1.0.0.111–1.0.0.116192
1.0.0.117–1.0.0.118193
1.0.0.119–1.0.0.123194
1.0.0.124198
1.0.0.125199

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 (9)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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)

a-champion-on-1-0-0-126

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.25–1.0.0.95

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

A client does nothing for a unit already dead. Otherwise it stops the unit’s cast and attack and, where killer is nonzero, puts the unit down for stayDown, whether or not it knows killer, and shows what that kind of unit shows for a kill, for a minion only where killer is on another side.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu8Unused; a server writes zero.
damageSourceu8Unused; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
Vectors (1)

one-on-1-0-0-75

In 1.0.0.96–1.0.0.102

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

A client does nothing for a unit already dead. Otherwise it stops the unit’s cast and attack and, where killer is nonzero, puts the unit down for stayDown, whether or not it knows killer, and shows what that kind of unit shows for a kill, for a minion only where killer, or the unit that owns killer, is the client’s own champion and on another side.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu8Unused; a server writes zero.
damageSourceu8Unused; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
Vectors (1)

one-on-1-0-0-99

In 1.0.0.103–1.0.0.125

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

BuildsCommand
1.0.0.103–1.0.0.10934
1.0.0.110157
1.0.0.111–1.0.0.116158
1.0.0.117–1.0.0.118159
1.0.0.119–1.0.0.123160
1.0.0.124164
1.0.0.125165

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.
standingu8Any nonzero value leaves the unit standing rather than dead. A champion then plays no death animation; minions and turrets play theirs whatever this says.
Vectors (7)

one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

Where the unit is already dead, a client does nothing with the message, and announces nothing. Otherwise it cancels the unit’s cast and attack; then, only where killer is nonzero, it puts the unit down by stayDown and standing and announces the death, credited to no unit where it does not hold killer. Whatever the unit’s kind adds follows.

FieldTypeWhat it is
killeru32The unit credited with the death.
damageTypeu8Unused; a server writes zero.
damageSourceu8Unused; a server writes zero.
stayDownf32How long the unit stays down, in seconds.
standingu8Any nonzero value leaves the unit standing rather than dead. A champion then plays no death animation; minions and turrets play theirs whatever this says.
Vectors (1)

killed-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 166 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.
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.

ChampionDied

What a server sends to say a champion died. The header names the unit this is about.

Definition.

In 1.0.0.107–1.0.0.123

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

BuildsCommand
1.0.0.107–1.0.0.10935
1.0.0.110–1.0.0.11692
1.0.0.117–1.0.0.11893
1.0.0.119–1.0.0.12394

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 0Any value other than zero leaves the champion standing in a zombie state rather than dead, with no death animation.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (4)

physical-on-1-0-0-109, physical-on-1-0-0-116, physical-on-1-0-0-117, physical-on-1-0-0-123

In 1.0.0.124–1.0.0.127

Command 97 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.
damageSourceu8Unused; 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 0Any value other than zero leaves the champion standing in a zombie state rather than dead, with no death animation.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

killed-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 97 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.

BuildingDied

What a server sends when a building is destroyed. The header names the unit this is about.

Definition.

In 1.0.0.25–1.0.0.60

Command 73 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-58

In 1.0.0.61–1.0.0.81

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

BuildsCommand
1.0.0.61–1.0.0.6273
1.0.0.63–1.0.0.7379
1.0.0.74–1.0.0.8180
FieldTypeWhat it is
attackeru32The unit that destroyed it.
Vectors (4)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
attackeru32The unit that destroyed it. A client reads it only for a nexus; for any other building it reads nothing of the message after the header.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.10284
1.0.0.103–1.0.0.10685
1.0.0.107–1.0.0.10886
1.0.0.10987
1.0.0.110134
1.0.0.111–1.0.0.116135
1.0.0.117–1.0.0.118136
1.0.0.119–1.0.0.123137
1.0.0.124–1.0.0.125141
FieldTypeWhat it is
attackeru32The unit that destroyed it.
Vectors (9)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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

FieldTypeWhat it is
attackeru32The unit that destroyed it. A client reads nothing here.

ForceDeath

What a server sends to put a unit into its death. The header names the unit.

Definition.

In 1.0.0.103–1.0.0.127

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

BuildsCommand
1.0.0.103–1.0.0.10635
1.0.0.107–1.0.0.10936
1.0.0.110–1.0.0.12329
1.0.0.124–1.0.0.12730

Nothing follows the header: a client marks the unit dead and starts its death at once, for no set time.

No body.

Vectors (4)

one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

No body.

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.25–1.0.0.125

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

BuildsCommand
1.0.0.25–1.0.0.73170
1.0.0.74–1.0.0.81171
1.0.0.82–1.0.0.96175
1.0.0.97176
1.0.0.98–1.0.0.102177
1.0.0.103179
1.0.0.104–1.0.0.106185
1.0.0.107–1.0.0.108186
1.0.0.109187
1.0.0.110169
1.0.0.111–1.0.0.116170
1.0.0.117–1.0.0.118171
1.0.0.119–1.0.0.123172
1.0.0.124176
1.0.0.125177
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 (16)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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)

enabled-on-1-0-0-126

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.25–1.0.0.57

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

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to. A client fails where it holds the source but not this unit.
entries[].damagerecordevent = 10 or 11How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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.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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.

In 1.0.0.58–1.0.0.60

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

A client ignores the whole message where killer is zero. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero; a killer it does not hold is shown with no name.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed: 1 names the killer as a minion, 2 as a turret, and any other value by the killer’s own name.
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 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to. A client fails where it holds the source but not this unit.
entries[].damagerecordevent = 10 or 11How much harm, and from what.
entries[].damage.physicalf32Physical damage.
entries[].damage.magicalf32Magical 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 client compares it with the target’s side, 0 for side 100 and 1 for side 200, to sort the entry into one of two groups in its death summary.
entries[].damage.parent.categorybit 8 to 11A client sums the physical and magical damage of two damageDealt entries where this, sourceKind 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How much health, and from what.
entries[].heal.amountf32How much health; a client shows it for healCast alone.
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; a client shows it by name for healCast alone.
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; a client shows it by name for healCast alone.
entries[].heal.unusedu32Unused; a client reads nothing here.
entries[].heal.unusedToou32What it means is not recorded for this range. A client compares its low four bits with the target’s side, as it does damage’s parent side, and takes its next four bits as a category, as it does damage’s parent category.
entries[].effectrecordevent = 38The 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.
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. With parentSource, it names the group of the death summary the entry goes in.
entries[].effect.unusedu32Unused; a client reads nothing here.
entries[].effect.unusedToou32What it means is not recorded for this range. A client compares its low four bits with the target’s side, as it does damage’s parent side, and takes its next four bits as a category, as it does damage’s parent category.
entries[].assistrecordevent = 53What 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.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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.62

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

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to. A client fails where it holds the source but not this unit.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.71

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

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to. A client fails where it holds the source but not this unit.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (1)

one-on-1-0-0-70

In 1.0.0.72–1.0.0.95

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

BuildsCommand
1.0.0.72–1.0.0.73115
1.0.0.74–1.0.0.81116
1.0.0.82–1.0.0.95120

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to. A client fails where it holds the source but not this unit.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (4)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-86

In 1.0.0.96

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

A client ignores the whole message where killer is zero. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero; where it does not hold this unit, it keeps the history with no killer and shows no killer name.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed. 1 to 4 each show a fixed label of the client’s own, whether or not it holds killer. 5 shows the killer’s champion name where the client holds killer and it is a champion. Any other value shows the killer’s own name where the client holds it, and a fixed placeholder otherwise.
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. A client does not check it against the message’s own length, so a server keeps it within the message and starts every entry inside these bytes.
entryCountu32How many entries follow. Read as signed: from 2147483648 up it parses no entries. A client fails where it claims more entries than blobLength holds.
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 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to. A client fails where it holds the source but not this unit.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unreadbytes, 8A client reads nothing here. A server writes zero.
entries[].kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unreadbytes, 8A client reads nothing here. A server writes zero.
entries[].kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.103

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

BuildsCommand
1.0.0.99–1.0.0.102121
1.0.0.103123

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 78, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unreadbytes, 8A client reads nothing here. A server writes zero.
entries[].kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (2)

one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.109

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

BuildsCommand
1.0.0.104–1.0.0.106123
1.0.0.107–1.0.0.108124
1.0.0.109125

A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 82, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unreadbytes, 8A client reads nothing here. A server writes zero.
entries[].kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (3)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

In 1.0.0.110–1.0.0.123

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

A client ignores the whole message where killer is zero; a killer it does not hold still lets the entries apply. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 84, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 scoreboardOpened, 83 pointNeutralized, 84 pointCaptured.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
entries[].kill.unreadbytes, 8A client reads nothing here. A server writes zero.
entries[].kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

A client ignores the whole message where killer is zero; a killer it does not hold still lets the entries apply. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 96, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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-125

In 1.0.0.126–1.0.0.127

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

A client ignores the whole message where killer is zero; a killer it does not hold still lets the entries apply. Each entry’s size after source follows from event alone.

FieldTypePresent whenWhat it is
killeru32The unit credited with the death. A client ignores the whole message where this is zero.
spanf32The time the entries below cover, in seconds.
sourceTypeu32What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.
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 98, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 82 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (3)

a-third-on-1-0-0-126, another-on-1-0-0-126, one-on-1-0-0-126

In 1.0.0.128

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 98, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 82 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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-128

In 1.0.0.129

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 101, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 81 startNoticeThree, 85 scoreboardOpened.
entries[].sourceu32The unit that did it.
entries[].targetu32The unit it was done to.
entries[].damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
entries[].valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
entries[].criticalf32event = 21The critical strike’s damage, as shown.
entries[].spreeu32event = 39How many kills in a row, as shown.
entries[].earnedrecordevent = 19Gold earned.
entries[].earned.goldf32How much gold, as shown.
entries[].healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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-129

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.25–1.0.0.57

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

FieldTypeWhat it is
stateu32What state the inhibitor takes. A client ignores any other value. Values: 0 down, 1 restored.
durationi32How long the state lasts, in whole seconds.

In 1.0.0.58–1.0.0.60

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

FieldTypeWhat it is
stateu32What state the inhibitor takes. For any other value a client shows nothing but keeps it as the inhibitor’s state, so a later 0 or 1 is applied even where it repeats the state before. Values: 0 down, 1 restored.
durationi32How long the state lasts, in whole seconds.
Vectors (1)

down-on-1-0-0-58

In 1.0.0.61–1.0.0.81

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

BuildsCommand
1.0.0.61–1.0.0.7365
1.0.0.74–1.0.0.8166
FieldTypeWhat it is
stateu32What state the inhibitor takes. A client ignores any other value. Values: 0 down, 1 restored.
durationu32How long the state lasts, in seconds.
Vectors (3)

down-on-1-0-0-72, down-on-1-0-0-75, down-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
stateu32What state the inhibitor takes. For any other value a client shows nothing but keeps it as the inhibitor’s state, so a later 0 or 1 is applied even where it repeats the state before. Values: 0 down, 1 restored.
durationu32How long the state lasts, in seconds.
Vectors (1)

down-on-1-0-0-96

In 1.0.0.97–1.0.0.121

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

BuildsCommand
1.0.0.97–1.0.0.10270
1.0.0.103–1.0.0.10671
1.0.0.107–1.0.0.10972
1.0.0.110–1.0.0.12144
FieldTypeWhat it is
stateu32What state the inhibitor takes. A client ignores any other value. Values: 0 down, 1 restored.
durationu32How long the state lasts, in seconds.
Vectors (4)

down-on-1-0-0-99, down-on-1-0-0-106, down-on-1-0-0-109, down-on-1-0-0-121

In 1.0.0.122–1.0.0.125

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

BuildsCommand
1.0.0.122–1.0.0.12344
1.0.0.124–1.0.0.12545
FieldTypeWhat it is
state4-byte bits
state.alivebit 0Clear to bring the inhibitor down for duration. Set has no effect: a client keeps the state it had.
state.durationbit 1 to 31How long the state lasts, in seconds.
Vectors (2)

one-on-1-0-0-123, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

Command 45 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 (2)

fallen-on-1-0-0-126, standing-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

Revived

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

Definition.

In 1.0.0.25–1.0.0.109

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

BuildsCommand
1.0.0.25–1.0.0.6271
1.0.0.63–1.0.0.7377
1.0.0.74–1.0.0.8178
1.0.0.82–1.0.0.9681
1.0.0.97–1.0.0.10282
1.0.0.103–1.0.0.10683
1.0.0.107–1.0.0.10884
1.0.0.10985

A client returns the champion where it already stands.

FieldTypeWhat it is
atXf32A client reads nothing here.
atYf32A client reads nothing here.
atZf32A client reads nothing here.
Vectors (9)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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

BuildsCommand
1.0.0.110–1.0.0.12348
1.0.0.124–1.0.0.12749
FieldTypeWhat it is
atXf32Where it returns, along one ground axis, in world units. A client sets the champion on the nearest open ground to this point and atZ.
atYf32Where it returns, in height, in world units.
atZf32Where it returns, along the other ground axis, in world units.
Vectors (3)

one-on-1-0-0-123, in-place-on-1-0-0-126, one-on-1-0-0-127

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.25–1.0.0.109

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

BuildsCommand
1.0.0.25–1.0.0.6272
1.0.0.63–1.0.0.7378
1.0.0.74–1.0.0.8179
1.0.0.82–1.0.0.9682
1.0.0.97–1.0.0.10283
1.0.0.103–1.0.0.10684
1.0.0.107–1.0.0.10885
1.0.0.10986

A client returns the champion where it already stands. 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.

FieldTypeWhat it is
xf32A client reads nothing here.
yf32A client reads nothing here.
zf32A client reads nothing here.
Vectors (9)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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

BuildsCommand
1.0.0.110–1.0.0.11673
1.0.0.117–1.0.0.11874
1.0.0.119–1.0.0.12375
1.0.0.124–1.0.0.12777

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. A client sets the champion on the nearest open ground to this point and z.
yf32Where it comes back, in height, in world units.
zf32Where it comes back, along the other ground axis, in world units.
Vectors (5)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, at-the-fountain-on-1-0-0-126, one-on-1-0-0-127

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
targetu32The unit to use.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.

In 1.0.0.58–1.0.0.129

A client casts nothing for a casting record whose length disagrees with its count of targets.

In 1.0.0.126–1.0.0.129

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.

In 1.0.0.25–1.0.0.60

A command its player types sends UpgradeSpell without checking anything.

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.

In 1.0.0.25–1.0.0.96

Only a missile that flies straight acts on MissileHits.

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.25–1.0.0.57

Command 35 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, from 0 to 44. A client still sends a larger slot, its low seven bits only.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the 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.

In 1.0.0.58–1.0.0.95

Command 35 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, from 0 to 48. A client still sends a larger slot, its low seven bits only.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the 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-75

In 1.0.0.96–1.0.0.102

Command 35 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, from 0 to 48. A client sends nothing for a slot above 48.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the 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-99

In 1.0.0.103–1.0.0.123

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

BuildsCommand
1.0.0.103–1.0.0.10636
1.0.0.107–1.0.0.10937
1.0.0.110153
1.0.0.111–1.0.0.116154
1.0.0.117–1.0.0.118155
1.0.0.119–1.0.0.123156
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, from 0 to 50. A client sends nothing for a slot above 50.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the 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 (6)

one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124160
1.0.0.125161
1.0.0.126–1.0.0.127162
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, from 0 to 51. A client sends nothing for a slot above 51.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the 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 (3)

one-on-1-0-0-124, one-on-1-0-0-125, at-ground-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 162 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.

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.25–1.0.0.57

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

There is no byte for ending a charge and no sync id: the casting follows the header at once.

FieldTypeWhat it is
castSpellCastThe casting.
Vectors (1)

one-on-1-0-0-25

In 1.0.0.58–1.0.0.60

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

There is no byte for ending a charge and no sync id: the casting is the whole body. A client fails where the casting’s size is wrong, for it then casts with no spell.

FieldTypeWhat it is
castSpellCastThe casting.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.80

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

There is no byte for ending a charge: the casting follows the sync id. A client fails where the casting’s size is wrong, for it then casts with no spell.

FieldTypeWhat it is
castSpellCastThe casting.
Vectors (3)

one-on-1-0-0-70, one-on-1-0-0-75, one-on-1-0-0-79

In 1.0.0.81–1.0.0.98

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

There is no byte for ending a charge: the casting follows the sync id. A client fails where the casting’s size is wrong, for it then casts with no spell.

FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.127

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

BuildsCommand
1.0.0.99–1.0.0.10236
1.0.0.103–1.0.0.10637
1.0.0.107–1.0.0.10938
1.0.0.110180
1.0.0.111–1.0.0.116181
1.0.0.117–1.0.0.118182
1.0.0.119–1.0.0.123183
1.0.0.124187
1.0.0.125188
1.0.0.126–1.0.0.127189

There is no byte for ending a charge: the casting follows the sync id.

FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.
Vectors (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, a-cast-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.

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.25–1.0.0.109

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

It carries no whole cooldown to show the time left against.

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. A client fails where it is set for a unit that is not a champion.
timeLeftf32How long is left, in seconds.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110131
1.0.0.111–1.0.0.116132
1.0.0.117–1.0.0.118133
1.0.0.119–1.0.0.123134

It carries no whole cooldown to show the time left against.

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 (4)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

It carries no whole cooldown to show the time left against.

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 them: for any other unit the bit set has no defined effect.
timeLeftf32How long is left, in seconds.
Vectors (1)

a-summoner-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 138 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.
timeLeftf32How long is left, in seconds.

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.25–1.0.0.109

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. For a slot outside the unit’s range a client sends 0.
which.summonerSpellbit 7Set where the slot is one from 4 to 40; slot still carries that slot’s own number.
cooldownf32The cooldown set, in seconds.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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

BuildsCommand
1.0.0.110131
1.0.0.111–1.0.0.116132
1.0.0.117–1.0.0.118133
1.0.0.119–1.0.0.123134
1.0.0.124–1.0.0.129138
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-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

CancelTargeting

What a server sends to end a spell’s targeting on a client. The header names the unit.

Definition.

In 1.0.0.126–1.0.0.127

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

A client cancels the aiming only where that slot, in the book named, is being aimed, and otherwise does nothing.

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)

a-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 139 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.

Autocast

What a server sends to set which spells a unit casts by itself. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.57

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

It names one slot: there is no slot for a critical strike.

FieldTypeWhat it is
sloti8The slot cast by itself, from -1 to 44. A client takes a value outside that range as it stands. What -1 does is not recorded.

In 1.0.0.58–1.0.0.98

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

BuildsCommand
1.0.0.58–1.0.0.8140
1.0.0.82–1.0.0.9843

It names one slot: there is no slot for a critical strike.

FieldTypeWhat it is
sloti8The slot cast by itself, from -1 to 48. A client takes a value outside that range as it stands. What -1 does is not recorded.
Vectors (3)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-98

In 1.0.0.99–1.0.0.127

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

BuildsCommand
1.0.0.99–1.0.0.10243
1.0.0.103–1.0.0.10644
1.0.0.107–1.0.0.10945
1.0.0.110–1.0.0.12333
1.0.0.124–1.0.0.12734

It names one slot: there is no slot for a critical strike.

FieldTypeWhat it is
sloti8The slot cast by itself, from -1 to 51. A client takes a value outside that range as it stands. What -1 does is not recorded.
Vectors (5)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123, a-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
sloti8The slot cast by itself, from 0 to 51; -1 leaves none.

UpgradeSpell

What a client sends to put a point into a spell. The header names the sender’s champion.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.10918
1.0.0.110–1.0.0.11659
1.0.0.117–1.0.0.11860
1.0.0.119–1.0.0.12361
1.0.0.124–1.0.0.12762

A client takes the point off its own count before it sends this. There is no evolution point.

FieldTypeWhat it is
slotu8Which slot is being raised: 0 to 3, for the champion’s own spells, though a client does not hold itself to that range.
Vectors (6)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-point-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
slotu8Which slot is being raised.

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.25–1.0.0.105

Command 19 on clock, sent by the server, reliable.

A client handles it the same on every channel: it sets the slot’s level and the points left. It does this only for a champion, and nothing for any other unit.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at. A client takes any level above 5 as 5.
pointsLeftu8How many spell points are left unspent.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-105

In 1.0.0.106–1.0.0.109

Command 19 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. A client takes any level above 6 as 6.
pointsLeftu8How many spell points are left unspent.
Vectors (1)

one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

Command 24 on clock, sent by the server, reliable.

On any channel a client sets the slot’s level to level, and the unspent spell points to pointsLeft; it raises the spell no further.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at. A client takes any level above 6 as 6.
pointsLeftu8How many spell points are left unspent.
Vectors (1)

a-second-level-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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 1.0.0.106–1.0.0.127

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

BuildsCommand
1.0.0.106201
1.0.0.107–1.0.0.108202
1.0.0.109203
1.0.0.110–1.0.0.11689
1.0.0.117–1.0.0.11890
1.0.0.119–1.0.0.12391
1.0.0.124–1.0.0.12794

It carries no level: a client raises the spell in the slot by one level each time, to at most 6.

FieldTypeWhat it is
slotu32Which slot. A client raises that slot’s level by one, to at most 6.
Vectors (7)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
slotu32Which slot. A client raises that slot’s level by one, to at most 6.

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.124–1.0.0.127

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

FieldTypeWhat it is
unitu32The unit whose slot this is. A client ignores the message where it does not know the unit.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
slotu8Which slot.
Vectors (1)

a-spell-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.62

Command 132 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 the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
targetingu8How the spell is aimed, 0 to 6. For a larger value a client still writes it onto the slot but builds no aiming for it, which has no defined effect; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73135
1.0.0.74–1.0.0.81136
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
targetingu8How the spell is aimed, 0 to 7. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

Command 140 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 the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
targetingu8How the spell is aimed, 0 to 7. A client knows no other value, so a server never sends a larger one; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.113

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

BuildsCommand
1.0.0.97141
1.0.0.98–1.0.0.102142
1.0.0.103144
1.0.0.104–1.0.0.106149
1.0.0.107–1.0.0.108150
1.0.0.109151
1.0.0.110–1.0.0.11326
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
targetingu8How the spell is aimed, 0 to 7. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (7)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-113

In 1.0.0.114–1.0.0.118

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 the slot counts among the summoner slots, so that 0 and 1 name those two.
targetingu8How the spell is aimed, 0 to 8. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-117

In 1.0.0.119–1.0.0.127

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 the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
targetingu8How the spell is aimed, 0 to 10. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.73

Command 172 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 the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
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, and treats a name it has no spell for as an error.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.123

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

BuildsCommand
1.0.0.74–1.0.0.81173
1.0.0.82–1.0.0.96177
1.0.0.97178
1.0.0.98–1.0.0.102179
1.0.0.103181
1.0.0.104–1.0.0.106187
1.0.0.107–1.0.0.108188
1.0.0.109189
1.0.0.110–1.0.0.12352
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
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, and treats a name it has no spell for as an error.
Vectors (10)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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 the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
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, and treats a name it has no spell for as an error.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.117–1.0.0.123

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 the slot counts among the summoner slots, so that 0 and 1 name those two.
iconu8Which icon the spell shows. Any value is accepted.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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 the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
iconu8Which icon the spell shows. Any value is accepted.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.119–1.0.0.123

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 the slot counts among the summoner slots, so that 0 and 1 name those two.
targetu32The unit the slot’s targeting indicator works from instead of the caster. A client takes an id it does not hold as no unit.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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 the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
targetu32The unit the slot’s targeting indicator works from instead of the caster. A client takes an id it does not hold as no unit.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.62

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

FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client reads every set it names.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values3 × f32The numbers themselves, one place each.

In 1.0.0.63–1.0.0.123

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

BuildsCommand
1.0.0.63–1.0.0.73166
1.0.0.74–1.0.0.81167
1.0.0.82–1.0.0.96171
1.0.0.97172
1.0.0.98–1.0.0.102173
1.0.0.103175
1.0.0.104–1.0.0.106181
1.0.0.107–1.0.0.108182
1.0.0.109183
1.0.0.110124
1.0.0.111–1.0.0.116125
1.0.0.117–1.0.0.118126
1.0.0.119–1.0.0.123127
FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client ignores the whole message where they do not all fit in it.
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 (14)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client ignores the whole message where they do not all fit in it.
entriescount in entryCount × recordThe sets themselves. A client skips a set naming a unit it does not hold.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot: 60 to 119 name the unit’s own spell slot, less 60, and 120 and up a summoner slot, less 120, the set skipped for a unit that has none. What 0 to 59 name is not recorded.
entries[].values3 × f32The numbers themselves, one place each.
Vectors (2)

another-on-1-0-0-126, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 131 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[].values3 × f32The numbers themselves, one place each.

MissileState

What a server sends to say where a missile is and what it is doing.

Definition.

In 1.0.0.25–1.0.0.57

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

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. 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.
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.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. A client tests the whole byte, so any set bit counts. For a missile it already holds that flies in a straight line, a client then starts the line again from the caster’s position, raised by the missile’s height above the ground, aiming it from where the missile now is.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-25

In 1.0.0.58–1.0.0.60

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

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. Where the casting names a second unit the client holds, a client aims the casting at that unit’s position; it moves no unit. For a missile that flies straight, casterAt becomes its start point, end and facing are taken as sent, and its velocity is set to carry it from its position to its end at the spell’s own missile speed; for any other missile, a client keeps the velocity as sent, and casterAt, facing, end and bounced have no effect. 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.
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.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. For a missile that flies straight, a client then sets its end to casterAt raised by the missile’s height above the ground, so it heads back to where the thrower stood; for any other missile it has no effect.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.81

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

BuildsCommand
1.0.0.61–1.0.0.7163
1.0.0.72–1.0.0.7363
1.0.0.74–1.0.0.7864
1.0.0.79–1.0.0.8164

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. 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.
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.
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 (4)

one-on-1-0-0-70, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

A client reads no single speed and no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. 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.
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.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. For a missile the client holds that flies straight, a client then sets its end to casterAt raised by the missile’s height above the ground, and its travel to that end less its position; for any other missile the client holds it has no effect.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.103

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

BuildsCommand
1.0.0.97–1.0.0.10268
1.0.0.10369

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. 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.
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.
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 (2)

one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.105

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

A client reads a speed but no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. 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.
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. A client uses it only for a missile that flies in a straight line.
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-105

In 1.0.0.106–1.0.0.110

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

BuildsCommand
1.0.0.10669
1.0.0.107–1.0.0.10970
1.0.0.11061

A client reads a speed but no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. 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.
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. A client uses it only for a missile that flies in a straight line.
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 (3)

one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.111–1.0.0.123

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

BuildsCommand
1.0.0.111–1.0.0.11661
1.0.0.117–1.0.0.11862
1.0.0.119–1.0.0.12363

A client reads both a speed and a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. 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. A client uses it only for a missile that flies in a straight line.
lifeSpentf32How far through the spell’s fixed travel time the missile is, as a part of one. A missile aimed at a unit, or bouncing, paces itself to arrive as that time runs out; with no fixed travel time it has no effect.
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 (3)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

A client reads both a speed and a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. 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. A client uses it only for a missile that flies in a straight line.
lifeSpentf32How far through the spell’s fixed travel time the missile is, as a part of one. A missile aimed at a unit, or bouncing, paces itself to arrive as that time runs out; with no fixed travel time it has no effect.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced; a client takes any nonzero byte as set. Only a missile that flies straight uses it; any other missile ignores it, with casterAt, end and facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

in-flight-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

MissileHits

What a server sends to say which units a missile struck. The header names the missile.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.73161
1.0.0.74–1.0.0.81162
1.0.0.82–1.0.0.96166
1.0.0.97167
1.0.0.98–1.0.0.102168
1.0.0.103170
1.0.0.104–1.0.0.106176
1.0.0.107–1.0.0.108177
1.0.0.109178
1.0.0.110–1.0.0.12339
1.0.0.124–1.0.0.12740
FieldTypeWhat it is
countu16How many units follow. A client reads it as signed, so a count of zero or above 32767 carries no units, and a server sends at most 32767.
targetscount in count × u32The units struck, in order. A client still takes a unit it does not know, with nothing shown on it, and nothing after the hit that destroys the missile shows.
Vectors (12)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123, two-units-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.62102
1.0.0.63–1.0.0.73105
1.0.0.74–1.0.0.81106
1.0.0.82–1.0.0.96110
1.0.0.97–1.0.0.102111
1.0.0.103–1.0.0.106113
1.0.0.107–1.0.0.108114
1.0.0.109115
1.0.0.110–1.0.0.11688
1.0.0.117–1.0.0.11889
1.0.0.119–1.0.0.12390
1.0.0.124–1.0.0.12993

No body.

Vectors (13)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-missile-on-1-0-0-126

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.25–1.0.0.62

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

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; 0 clears every target the client holds, and a count below zero names no targets and clears nothing. A count above 32 has no defined effect.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect. A slot naming a unit the client does not know is left empty.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73106
1.0.0.74–1.0.0.81107

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; 0 clears every target the client holds. A client given more than 32 fails.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

Where the client holds the caster, the caster’s current cast takes the list, whether or not the client holds the missile. A missile the client holds under the header’s name takes the list as well. A client drops the message while the match is still loading.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32. 0 clears every target the client holds; a negative value sets none and clears none. Any other count sets that many targets and leaves the rest as they were. A client given more than 32 fails.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.127

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

BuildsCommand
1.0.0.97–1.0.0.102112
1.0.0.103–1.0.0.106114
1.0.0.107–1.0.0.108115
1.0.0.109116
1.0.0.110105
1.0.0.111–1.0.0.116106
1.0.0.117–1.0.0.118107
1.0.0.119–1.0.0.123108
1.0.0.124–1.0.0.127111

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; 0 clears every target the client holds. A client given more than 32 fails.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (9)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.62

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

A client also sends it 209 bytes long, header included, from a missile of its own. That form writes only atX to atZ, velocityX to velocityZ and the cast, and leaves every other byte unwritten.

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.
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.
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-61

In 1.0.0.63–1.0.0.103

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

BuildsCommand
1.0.0.63–1.0.0.7363
1.0.0.74–1.0.0.8164
1.0.0.82–1.0.0.9667
1.0.0.97–1.0.0.10268
1.0.0.10369
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.
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.
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 (6)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.110

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

BuildsCommand
1.0.0.104–1.0.0.10669
1.0.0.107–1.0.0.10970
1.0.0.11061
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.
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.
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 (3)

one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.111–1.0.0.125

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

BuildsCommand
1.0.0.111–1.0.0.11661
1.0.0.117–1.0.0.11862
1.0.0.119–1.0.0.12363
1.0.0.124–1.0.0.12565
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.
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 (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124

In 1.0.0.126–1.0.0.129

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.

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.

In 1.0.0.25–1.0.0.126

AppearancePopped takes away every look laid over the unit’s own, not only the newest.

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.25–1.0.0.98

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

FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in. A client fails where it is above 31.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out. A server never sends zero. A client adds nothing for an effect it does not know.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-98

In 1.0.0.99–1.0.0.107

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

BuildsCommand
1.0.0.99–1.0.0.10237
1.0.0.103–1.0.0.10638
1.0.0.10739
FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in. A client ignores the message where it is above 31.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out. A server never sends zero. A client adds nothing for an effect it does not know.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.
Vectors (3)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-107

In 1.0.0.108–1.0.0.120

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

BuildsCommand
1.0.0.108–1.0.0.10939
1.0.0.110182
1.0.0.111–1.0.0.116183
1.0.0.117–1.0.0.118184
1.0.0.119–1.0.0.120185
FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in. A client ignores the message where it is above 31.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
hiddenu8Whether the client keeps it off the unit’s display. A client hides it only for 1 and shows it for any other value. Values: 0 shown, 1 hidden.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out. A server never sends zero. A client adds nothing for an effect it does not know.
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-109, shown-on-1-0-0-110, shown-on-1-0-0-116, shown-on-1-0-0-117, shown-on-1-0-0-120

In 1.0.0.121–1.0.0.127

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

BuildsCommand
1.0.0.121–1.0.0.123185
1.0.0.124189
1.0.0.125190
1.0.0.126–1.0.0.127191
FieldTypeWhat it is
slotu8Which of the unit’s effect slots it sits in. A client ignores the message where it is above 63.
kindu8What sort of effect it is.
countu8How many of it are stacked there.
hiddenu8Whether the client keeps it off the unit’s display. A client hides it only for 1 and shows it for any other value. Values: 0 shown, 1 hidden.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out. A server never sends zero. A client adds nothing for an effect it does not know.
runningForf32How long it has already run, in seconds.
lastsf32How long it runs in total, in seconds.
casteru32The unit that put it there.
Vectors (4)

shown-on-1-0-0-123, shown-on-1-0-0-124, shown-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.98

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

BuildsCommand
1.0.0.25–1.0.0.8138
1.0.0.82–1.0.0.9839
FieldTypeWhat it is
slotu8Which of the unit’s effect slots. A client fails where it is above 31.
runningForf32How long the effect has already run, in seconds.
lastsf32How long it runs in total, in seconds. A client applies a value below zero as given; a server sends zero or more.
casteru32The unit that put it there. Where the client holds no such unit, it leaves the effect with no caster.
Vectors (3)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-98

In 1.0.0.99–1.0.0.120

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

BuildsCommand
1.0.0.99–1.0.0.10239
1.0.0.103–1.0.0.10640
1.0.0.107–1.0.0.10941
1.0.0.110–1.0.0.12049
FieldTypeWhat it is
slotu8Which of the unit’s effect slots. A client ignores the message where it is above 31.
runningForf32How long the effect has already run, in seconds.
lastsf32How long it runs in total, in seconds. A client applies a value below zero as given; a server sends zero or more.
casteru32The unit that put it there.
Vectors (4)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-120

In 1.0.0.121–1.0.0.123

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

FieldTypeWhat it is
slotu8Which of the unit’s effect slots. A client ignores the message where it is above 63.
runningForf32How long the effect has already run, in seconds.
lastsf32How long it runs in total, in seconds. A client applies a value below zero as given; a server sends zero or more.
casteru32The unit that put it there.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
slotu8Which of the unit’s effect slots. A client ignores the message where it is above 63.
runningForf32How long the effect has already run, in seconds.
lastsf32How long it has left to run from when it arrives, in seconds. A client applies a value below zero as given.
casteru32The unit that put it there.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.60

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

FieldTypeWhat it is
slotu8Which slot. A client fails where it is above 31.
countu8How many are stacked there now.
timeLeftf32How long it has left to run, in seconds.
casteru32The unit that put it there. Where the client holds no such unit, it leaves the effect with no caster.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.62

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

FieldTypeWhat it is
slotu8Which slot. A client fails where it is above 31.
countu8How many are stacked there now.
timeLeftf32How long it has left to run, in seconds.
runningForf32A client reads nothing here: it takes the effect to have run since it was added. A server writes zero.
casteru32The unit that put it there. Where the client holds no such unit, it leaves the effect with no caster.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.7386
1.0.0.74–1.0.0.8187
FieldTypeWhat it is
slotu8Which slot. A client fails where it is above 31.
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. Where the client holds no such unit, it leaves the effect with no caster.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
slotu8Which slot. A client fails where it is above 31.
countu8How many are stacked there now.
timeLeftf32The whole run of the effect, in seconds, counted from its start: a client ends it this less runningFor from now.
runningForf32How long it has already run, in seconds.
casteru32The unit that put it there. Where the client holds no such unit, it leaves the effect with no caster.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

FieldTypeWhat it is
slotu8Which slot. A client fails where it is above 31.
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. Where the client holds no such unit, it leaves the effect with no caster.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.120

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

BuildsCommand
1.0.0.99–1.0.0.10291
1.0.0.103–1.0.0.10692
1.0.0.107–1.0.0.10893
1.0.0.10994
1.0.0.110–1.0.0.12030
FieldTypeWhat it is
slotu8Which slot. A client ignores the message where it is above 31.
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.
Vectors (5)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-120

In 1.0.0.121–1.0.0.123

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

FieldTypeWhat it is
slotu8Which slot. A client ignores the message where it is above 63.
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.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
slotu8Which slot. A client ignores the message where it is above 63.
countu8How many are stacked there now.
timeLeftf32How long it has left to run, in seconds.
runningForf32How long it has already run, in seconds.
casteru32The unit that put it there.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.98

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

BuildsCommand
1.0.0.25–1.0.0.8139
1.0.0.82–1.0.0.9841
FieldTypeWhat it is
slotu8Which slot it sat in. A client fails where it is above 31.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
Vectors (3)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-98

In 1.0.0.99–1.0.0.120

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

BuildsCommand
1.0.0.99–1.0.0.10241
1.0.0.103–1.0.0.10642
1.0.0.107–1.0.0.10943
1.0.0.110120
1.0.0.111–1.0.0.116121
1.0.0.117–1.0.0.118122
1.0.0.119–1.0.0.120123
FieldTypeWhat it is
slotu8Which slot it sat in. A client ignores the message where it is above 31.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
Vectors (7)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-120

In 1.0.0.121–1.0.0.127

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

BuildsCommand
1.0.0.121–1.0.0.123123
1.0.0.124–1.0.0.127127
FieldTypeWhat it is
slotu8Which slot it sat in. A client ignores the message where it is above 63.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.
Vectors (2)

one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
slotu8Which slot it sat in.
effectu32Which effect, by the number its name gives, as Objects and identifiers works it out.

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.82–1.0.0.107

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

BuildsCommand
1.0.0.82–1.0.0.10238
1.0.0.103–1.0.0.10639
1.0.0.10740

A client takes each entry as it takes an EffectAdded for that unit, with the kind, effect and times above, and holds it to the same rules.

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.
Vectors (3)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-107

In 1.0.0.108–1.0.0.123

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

BuildsCommand
1.0.0.108–1.0.0.10940
1.0.0.110101
1.0.0.111–1.0.0.116102
1.0.0.117–1.0.0.118103
1.0.0.119–1.0.0.123104

A client takes each entry as it takes an EffectAdded for that unit, with the kind, effect and times above, and holds it to the same rules.

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 (5)

one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

A client takes each entry as it takes an EffectAdded for that unit, with the kind, effect and times above, and holds it to the same rules.

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 from when it arrives, 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[].hiddenu81 keeps it off the unit’s display; any other value shows it.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 107 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.

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.82–1.0.0.123

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

BuildsCommand
1.0.0.82–1.0.0.10240
1.0.0.103–1.0.0.10641
1.0.0.107–1.0.0.10942
1.0.0.110–1.0.0.12332

A client takes each entry as it takes an EffectReplaced for that unit, with the two times above.

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.
Vectors (4)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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.

FieldTypeWhat it is
runningForf32How long the effect has already run, in seconds.
lastsf32How long it has left to run from when it arrives, 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.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.82–1.0.0.96

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

A client takes each entry as it takes an EffectCount for that unit, with the two times above.

FieldTypeWhat it is
lastsf32The whole run of the effect, in seconds, counted from its start: a client takes it as the timeLeft of an EffectCount.
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 (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.127

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

BuildsCommand
1.0.0.97–1.0.0.10292
1.0.0.103–1.0.0.10693
1.0.0.107–1.0.0.10894
1.0.0.10995
1.0.0.110190
1.0.0.111–1.0.0.116191
1.0.0.117–1.0.0.118192
1.0.0.119–1.0.0.123193
1.0.0.124197
1.0.0.125198
1.0.0.126–1.0.0.127199

A client takes each entry as it takes an EffectCount for that unit, with the two times above.

FieldTypeWhat it is
lastsf32How long the effect has left to run, in seconds: a client takes it as the timeLeft of an EffectCount.
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 (11)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.82–1.0.0.127

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

BuildsCommand
1.0.0.82–1.0.0.10242
1.0.0.103–1.0.0.10643
1.0.0.107–1.0.0.10944
1.0.0.110147
1.0.0.111–1.0.0.116148
1.0.0.117–1.0.0.118149
1.0.0.119–1.0.0.123150
1.0.0.124–1.0.0.125154
1.0.0.126–1.0.0.127155

A client takes each entry as it takes an EffectRemoved for that unit.

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 (9)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.5721
1.0.0.58–1.0.0.10921
1.0.0.110132
1.0.0.111–1.0.0.116133
1.0.0.117–1.0.0.118134
1.0.0.119–1.0.0.123135
1.0.0.124–1.0.0.125139
1.0.0.126–1.0.0.129140
FieldTypeWhat it is
groupCountu8How many sets follow.
groupscount in groupCount × ParticleGroupThe sets themselves.
Vectors (8)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-125, one-on-1-0-0-126

KillParticle

What a server sends to stop a particle a client is drawing.

Definition.

In 1.0.0.25–1.0.0.109

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

The particle field alone names the particle; the header can carry zero.

FieldTypeWhat it is
particleu32The particle to stop.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110–1.0.0.11658
1.0.0.117–1.0.0.11859
1.0.0.119–1.0.0.12360

The header names the particle.

FieldTypeWhat it is
particleu32The particle to stop.
Vectors (3)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.129

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

FieldTypeWhat it is
particleu32The particle to stop.
Vectors (1)

one-on-1-0-0-126

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.124–1.0.0.129

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

BuildsCommand
1.0.0.124217
1.0.0.125218
1.0.0.126–1.0.0.129219
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 (3)

resource-on-1-0-0-124, resource-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.62

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

No skin is carried; the look wears the unit’s own skin. A client first stops a basic attack the unit is making; looks stack, the newest shows, and AppearancePopped takes away the one its entry names.

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.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.7396
1.0.0.74–1.0.0.8197

No skin is carried; the look wears the unit’s own skin. A client first stops a basic attack the unit is making; looks stack, the newest shows, and AppearancePopped takes away the one its entry names.

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 (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

No skin is carried; the look wears the unit’s own skin. A client first stops a basic attack the unit is making; looks stack, the newest shows, and AppearancePopped takes away the one its entry names.

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. A client reads it up to that byte, whatever its length.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.102102
1.0.0.103–1.0.0.106104
1.0.0.107–1.0.0.108105
1.0.0.109106
1.0.0.110150
1.0.0.111–1.0.0.116151
1.0.0.117–1.0.0.118152
1.0.0.119–1.0.0.123153
1.0.0.124157
1.0.0.125158

No skin is carried; the look wears the unit’s own skin. A client first stops a basic attack the unit is making; looks stack, the newest shows, and AppearancePopped takes away the one its entry names.

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 (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

No skin is carried; the look wears the unit’s own skin. A client first stops a basic attack the unit is making; looks stack, the newest shows, and AppearancePopped takes away the one its entry names.

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.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 159 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.
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.

AppearancePopped

What a server sends to take a look AppearancePushed laid over a unit away. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.57

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

A client also takes away every look laid over the unit on this command, and does so before it looks for the one entry names, so the unit is left with no look laid over it.

FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.

In 1.0.0.58–1.0.0.62

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

A client may also take away every look laid over the unit on this command; where it does, the unit is left with no look laid over it, whatever entry names.

FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.7397
1.0.0.74–1.0.0.8198

A client also takes away every look laid over the unit on this command, and does so before it looks for the one entry names, so the unit is left with no look laid over it.

FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

A client also takes away every look laid over the unit on this command, so the unit is left with no look laid over it.

FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.127

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

BuildsCommand
1.0.0.97–1.0.0.102103
1.0.0.103–1.0.0.106105
1.0.0.107–1.0.0.108106
1.0.0.109107
1.0.0.110100
1.0.0.111–1.0.0.116101
1.0.0.117–1.0.0.118102
1.0.0.119–1.0.0.123103
1.0.0.124–1.0.0.127106

A client also takes away every look laid over the unit on this command, and does so before it looks for the one entry names, so the unit is left with no look laid over it.

FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.
Vectors (9)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
entryu32The look, by the name AppearancePushed gave it.

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.61–1.0.0.127

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

BuildsCommand
1.0.0.61–1.0.0.73177
1.0.0.74–1.0.0.81178
1.0.0.82–1.0.0.96182
1.0.0.97183
1.0.0.98–1.0.0.102184
1.0.0.103186
1.0.0.104–1.0.0.106192
1.0.0.107–1.0.0.108193
1.0.0.109194
1.0.0.110104
1.0.0.111–1.0.0.116105
1.0.0.117–1.0.0.118106
1.0.0.119–1.0.0.123107
1.0.0.124–1.0.0.127110

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.

FieldTypeWhat it is
pairCountu8How many pairs follow.
pairscount in pairCount × AnimationOverrideEach pair naming what is replaced and what replaces it.
Vectors (15)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
pairCountu8How many pairs follow.
pairscount in pairCount × AnimationOverrideEach pair naming what is replaced and what replaces it.

PlayAnimation

What a server sends to make a unit play an animation. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.57

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

Every play blends in over a blend time of 0.2 seconds. Without loop or holdLastFrame, an animation that ends is removed, except that where it was the unit’s only animation and the unit has an idle, a client fades back to the idle, looping. No start point is carried: the animation starts from its beginning. A unit whose animation has been locked ignores the message.

FieldTypeWhat it is
flags4-byte bitsHow the animation plays, as a set of bits.
flags.unusedLowbit 0Unused; a server writes zero.
flags.loopbit 1Set to loop the animation: it starts over once it ends.
flags.holdLastFramebit 2Set to hold the last frame once the animation ends; it stops advancing there. Wins over loop.
flags.fadeOthersbit 3Set to freeze the animations already playing and fade them to nothing over the blend time. They are not removed.
flags.freezeOthersbit 4Set to freeze the animations already playing, fade them out over the blend time, then remove them.
flags.dropOthersbit 5Set to remove the animations already playing at once, with no fade.
flags.lockedbit 6Set to lock the unit’s animation: once the animation plays, a client refuses every later animation played on the unit, unless the unit’s own character data opts out.
flags.fadeAtEndbit 7Only where loop is clear: set to start fading the animation out once its time left is at or below the blend time.
flags.unusedbit 8 to 31Unused; a server writes zero.
scaleTimef32Where above zero, how many seconds the animation is stretched or squeezed to span; otherwise it plays at normal speed.
animationtext, ended by a zero byteThe animation’s name, ended by a zero byte. Nothing plays for a name the unit does not have.

In 1.0.0.58–1.0.0.127

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

BuildsCommand
1.0.0.58–1.0.0.1099
1.0.0.110175
1.0.0.111–1.0.0.116176
1.0.0.117–1.0.0.118177
1.0.0.119–1.0.0.123178
1.0.0.124182
1.0.0.125183
1.0.0.126–1.0.0.127184

Every play blends in over a blend time of 0.2 seconds unless noFadeIn is set. Without loop or holdLastFrame, an animation that ends is removed, except that where it was the unit’s only animation and the unit has an idle, a client fades back to the idle, looping. No start point is carried: the animation starts from its beginning. A unit whose animation has been locked ignores the message.

FieldTypeWhat it is
flags4-byte bitsHow the animation plays, as a set of bits.
flags.unusedLowbit 0Unused; a server writes zero.
flags.loopbit 1Set to loop the animation: it starts over once it ends.
flags.holdLastFramebit 2Set to hold the last frame once the animation ends; it stops advancing there. Wins over loop.
flags.fadeOthersbit 3Set to freeze the animations already playing and fade them to nothing over the blend time. They are not removed.
flags.freezeOthersbit 4Set to freeze the animations already playing, fade them out over the blend time, then remove them.
flags.dropOthersbit 5Set to remove the animations already playing at once, with no fade.
flags.lockedbit 6Set to lock the unit’s animation: once the animation plays, a client refuses every later animation played on the unit, unless the unit’s own character data opts out. A client applies the lock only where one of its own settings is on, as it is by default.
flags.fadeAtEndbit 7Only where loop is clear: set to start fading the animation out once its time left is at or below the blend time.
flags.syncPhasebit 8Only together with loop: where an animation already playing on the unit is the same one, the new one starts at that animation’s current fraction of its length, where that fraction lies strictly between 0 and 1.
flags.noFadeInbit 9Set to show the animation at full weight at once, with no blend in. Animations that fadeOthers or freezeOthers fade out then vanish at once.
flags.unusedbit 10 to 31Unused; a server writes zero.
scaleTimef32Where above zero, how many seconds the animation is stretched or squeezed to span; otherwise it plays at normal speed.
animationtext, ended by a zero byteThe animation’s name, ended by a zero byte. Nothing plays for a name the unit does not have.
Vectors (9)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 184 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.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.

StopAnimation

What a server sends to stop an animation a unit is playing. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.62

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

No name is carried. A client does nothing for a dead unit; otherwise it stops the animation the unit is playing, blending out over a fixed time, unless the unit’s animation lock stays held.

FieldTypeWhat it is
flags4-byte bitsHow it stops.
flags.unusedLowbit 0 to 5A client ignores these; a server sends zero.
flags.unlockbit 6Set to release the unit’s animation lock in every case. Clear releases it only where the unit’s own data allows; where the lock stays held, the animation does not stop.
flags.unusedHighbit 7 to 31A client ignores these; a server sends zero.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.82

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

BuildsCommand
1.0.0.63–1.0.0.7394
1.0.0.74–1.0.0.8195
1.0.0.8299

No name is carried: a client stops whatever animation the unit is playing, blending out over a fixed time.

FieldTypeWhat it is
flags4-byte bitsHow it stops.
flags.unusedLowbit 0 to 5A client ignores these; a server sends zero.
flags.unlockbit 6Set to release the unit’s animation lock in every case. Clear releases it only where the unit’s own state allows; the animation stops either way.
flags.unusedHighbit 7 to 31A client ignores these; a server sends zero.
Vectors (4)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-82

In 1.0.0.83–1.0.0.127

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

BuildsCommand
1.0.0.83–1.0.0.9699
1.0.0.97–1.0.0.102100
1.0.0.103–1.0.0.106101
1.0.0.107–1.0.0.108102
1.0.0.109103
1.0.0.110–1.0.0.12342
1.0.0.124–1.0.0.12743

No name is carried: a client stops whatever animation the unit is playing, blending out over a fixed time.

FieldTypeWhat it is
flags4-byte bitsHow it stops.
flags.unusedLowbit 0 to 5A client ignores these; a server sends zero.
flags.unlockbit 6Set to release the unit’s animation lock in every case. Clear releases it only where the unit’s own state allows; the animation stops either way.
flags.unusedMidbit 7 to 8A client ignores these; a server sends zero.
flags.blendbit 9Set to put the unit’s animation into a second blend state, which a client applies only where one of its own settings is on. What that state changes is not recorded.
flags.unusedHighbit 10 to 31A client ignores these; a server sends zero.
Vectors (7)

one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

PauseAnimation

What a server sends to pause or resume a unit’s animation. The header names the unit.

Definition.

In 1.0.0.106–1.0.0.129

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

BuildsCommand
1.0.0.106202
1.0.0.107–1.0.0.108203
1.0.0.109204
1.0.0.110109
1.0.0.111–1.0.0.116110
1.0.0.117–1.0.0.118111
1.0.0.119–1.0.0.123112
1.0.0.124–1.0.0.129116
FieldTypeWhat it is
pausedu8Set to pause, clear to resume. Any nonzero value sets it.
Vectors (8)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

FadeTo

What a server sends to fade a unit towards an opacity over time. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.81

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

BuildsCommand
1.0.0.25–1.0.0.62136
1.0.0.63–1.0.0.73139
1.0.0.74–1.0.0.81140
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 (4)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

Each FadeTo adds a fade, with its id, target and time, to the unit’s stack of fades. The unit fades from its current opacity to the target in a straight line over the time. FadeRemoved names the id of the fade it takes away.

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 (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.129

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

BuildsCommand
1.0.0.97145
1.0.0.98–1.0.0.102146
1.0.0.103148
1.0.0.104–1.0.0.106153
1.0.0.107–1.0.0.108154
1.0.0.109155
1.0.0.110177
1.0.0.111–1.0.0.116178
1.0.0.117–1.0.0.118179
1.0.0.119–1.0.0.123180
1.0.0.124184
1.0.0.125185
1.0.0.126–1.0.0.129186
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 (13)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

FadeRemoved

What a server sends to undo a fade on a unit. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.62137
1.0.0.63–1.0.0.73140
1.0.0.74–1.0.0.81141
1.0.0.82–1.0.0.96145
1.0.0.97146
1.0.0.98–1.0.0.102147
1.0.0.103149
1.0.0.104–1.0.0.106154
1.0.0.107–1.0.0.108155
1.0.0.109156
1.0.0.110–1.0.0.12351
1.0.0.124–1.0.0.12752
FieldTypeWhat it is
fadei16The fade, by the name FadeTo gave it. A client does nothing where no fade on the unit has that name.
Vectors (13)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
fadei16The fade, by the name FadeTo gave it.

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.25–1.0.0.73174
1.0.0.74–1.0.0.81175
1.0.0.82–1.0.0.96179
1.0.0.97180
1.0.0.98–1.0.0.102181
1.0.0.103183
1.0.0.104–1.0.0.106189
1.0.0.107–1.0.0.108190
1.0.0.109191
1.0.0.110201
1.0.0.111–1.0.0.116202
1.0.0.117–1.0.0.118203
1.0.0.119–1.0.0.122204
1.0.0.123205
1.0.0.124210
1.0.0.125211
1.0.0.126–1.0.0.129212
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 (18)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

NexusIdle

What a server sends to put each nexus into its idle particles. 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.25–1.0.0.73173
1.0.0.74–1.0.0.81174
1.0.0.82–1.0.0.96178
1.0.0.97179
1.0.0.98–1.0.0.102180
1.0.0.103182
1.0.0.104–1.0.0.106188
1.0.0.107–1.0.0.108189
1.0.0.109190
1.0.0.110–1.0.0.1294

No body.

Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-126

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.25–1.0.0.73169
1.0.0.74–1.0.0.81170
1.0.0.82–1.0.0.96174
1.0.0.97175
1.0.0.98–1.0.0.102176
1.0.0.103178
1.0.0.104–1.0.0.106184
1.0.0.107–1.0.0.108185
1.0.0.109186
1.0.0.110112
1.0.0.111–1.0.0.116113
1.0.0.117–1.0.0.118114
1.0.0.119–1.0.0.123115
1.0.0.124–1.0.0.129119
FieldTypeWhat it is
sideu8Which side.
skinu32Which look.
Vectors (15)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

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.113–1.0.0.127

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

BuildsCommand
1.0.0.113–1.0.0.116215
1.0.0.117–1.0.0.118216
1.0.0.119–1.0.0.122217
1.0.0.123218
1.0.0.124226
1.0.0.125227
1.0.0.126–1.0.0.127228
FieldTypePresent whenWhat it is
fadeInu8Any value other than zero 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 for every client, or a side’s number. A client with no player of its own shows a tint only for 0 and 100.
colouru32fadeIn setThe tint, as blue, green, red and opacity bytes.
weightf32fadeIn setHow strongly it applies at most.
Vectors (14)

another-on-1-0-0-116, one-on-1-0-0-116, another-on-1-0-0-117, one-on-1-0-0-117, another-on-1-0-0-122, one-on-1-0-0-122, another-on-1-0-0-123, one-on-1-0-0-123, another-on-1-0-0-124, one-on-1-0-0-124, another-on-1-0-0-125, one-on-1-0-0-125, clearing-on-1-0-0-126, tinting-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 228 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.
colouru32fadeIn setThe tint, as blue, green, red and opacity bytes.
weightf32fadeIn setHow strongly it applies at most.

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.125–1.0.0.127

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

BuildsCommand
1.0.0.125157
1.0.0.126–1.0.0.127158
FieldTypePresent whenWhat it is
flags1-byte bitsWhether to reset. The whole byte is read, and a name follows any value other than 1, so a server sends only 0 or 1.
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-125, one-on-1-0-0-125, changing-on-1-0-0-126, resetting-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.

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.58–1.0.0.129

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.58–1.0.0.60

A client uses the map’s list of the items the shop holds only where a setting of its own turns it on.

In 1.0.0.96

Suggested items are kept per champion, whatever the map or the mode.

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.25–1.0.0.69

A client never asks to swap two slots: it has no SwapItems.

Opening the shop sends TutorialShopOpened, in any match, except while the shop is locked.

In 1.0.0.126–1.0.0.129

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.

In 1.0.0.25–1.0.0.60

A client asks for an item a player holds only one of even where the player holds it already, and an item that can be used in the shop needs a slot as any other does.

A client asks only while the shop is not locked, with the champion dead or near a shop of its side.

In 1.0.0.126–1.0.0.129

A client never asks for an item a player holds only one of and holds already.

In 1.0.0.126

A client asks only with the shop open.

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.

In 1.0.0.58–1.0.0.129

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.25–1.0.0.57

Command 83 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.

FieldTypeWhat it is
runes30 × u32The runes set before the match, thirty places.
summoners2 × u32The spells in the champion’s summoner slots, by the numbers their names give.
choices80 × ChoiceThe choices made alongside them, 400 bytes that a client keeps as one block.
levelu8The player’s account level.

In 1.0.0.58–1.0.0.62

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

A client sets the champion’s two summoner slots from summoners, a zero leaving its slot as it was, and keeps the runes, the choices and level. It changes nothing in the shop.

FieldTypeWhat it is
runes30 × u32The runes set before the match, thirty places.
summoners2 × u32The spells in the champion’s summoner slots, by the numbers their names give.
choices80 × ChoiceThe choices made alongside them, 400 bytes that a client keeps as one block.
levelu8The player’s account level.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.127

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

BuildsCommand
1.0.0.63–1.0.0.7389
1.0.0.74–1.0.0.8190
1.0.0.82–1.0.0.9694
1.0.0.97–1.0.0.10295
1.0.0.103–1.0.0.10696
1.0.0.107–1.0.0.10897
1.0.0.10998
1.0.0.110–1.0.0.12343
1.0.0.124–1.0.0.12544
1.0.0.126–1.0.0.12744

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.
summoners2 × u32The spells in the champion’s summoner slots, by the numbers their names give.
choices80 × ChoiceThe choices made alongside them, 400 bytes that a client keeps as one block.
levelu8The player’s account level.
Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 44 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.

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.

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.25–1.0.0.8141
1.0.0.82–1.0.0.9644
1.0.0.97–1.0.0.10245
1.0.0.103–1.0.0.10646
1.0.0.107–1.0.0.10947
1.0.0.110128
1.0.0.111–1.0.0.116129
1.0.0.117–1.0.0.118130
1.0.0.119–1.0.0.123131
1.0.0.124–1.0.0.129135
FieldTypeWhat it is
itemu32Which item, by the number the client knows it as.
Vectors (11)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

RemoveItem

What a client sends to be rid of an item. The header names the sender’s champion.

Definition.

In 1.0.0.25–1.0.0.98

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

BuildsCommand
1.0.0.25–1.0.0.8143
1.0.0.82–1.0.0.9646
1.0.0.97–1.0.0.9847
FieldTypeWhat it is
slotu8Which slot.
sellu8A client sends 1.
Vectors (4)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-98

In 1.0.0.99–1.0.0.125

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

BuildsCommand
1.0.0.99–1.0.0.10247
1.0.0.103–1.0.0.10648
1.0.0.107–1.0.0.10949
1.0.0.110–1.0.0.1259
FieldTypeWhat it is
slotu8Which slot.
sellu8A client sends 1 from the shop or a hotkey, and 0 after an answer to a purchase.
Vectors (4)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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.
Vectors (1)

selling-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.70–1.0.0.123

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

BuildsCommand
1.0.0.70–1.0.0.8145
1.0.0.82–1.0.0.9648
1.0.0.97–1.0.0.10249
1.0.0.103–1.0.0.10650
1.0.0.107–1.0.0.10951
1.0.0.110–1.0.0.12334
FieldTypeWhat it is
fromu8The slot the item leaves, 0 to 5.
tou8The slot it goes to, 0 to 5. A client never sends the slot named by from.
Vectors (7)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
fromu8The slot the item leaves, at most 37.
tou8The slot it goes to, at most 37. A client never sends the slot named by from.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
fromu8
tou8

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.25–1.0.0.73

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

A client sends it every time its player opens the shop, in any game. Where a script of the client’s has locked the shop, the shop does not open and nothing is sent.

No body.

Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

Command 149 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 (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

A client sends it whenever its player opens the shop, in every mode and on every map.

No body.

Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97154
1.0.0.98–1.0.0.102155
1.0.0.103157
1.0.0.104–1.0.0.106162
1.0.0.107–1.0.0.108163
1.0.0.109164
1.0.0.110–1.0.0.11691
1.0.0.117–1.0.0.11892
1.0.0.119–1.0.0.12393

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 (9)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.129

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)

empty-on-1-0-0-126

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.25–1.0.0.81

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

There is no charges field: a client takes an item’s charges from the item’s own data. A client applies it only to a champion’s item slots.

FieldTypeWhat it is
slotu8The slot it went to, 0 to 36. A larger value than 36 has no defined effect.
itemu32Which item, by the number the client knows it as. For an item it does not know, a client empties the slot and still takes inSlot.
inSlotu8How many of the item the slot holds now; a client applies zero as well. The slot’s charges come from the item’s own data.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

There is no charges field: a client takes an item’s charges from the item’s own data. A server sends it to units nobody is buying for.

FieldTypeWhat it is
slotu8The slot it went to, 0 to 36. A larger value than 36 has no defined effect.
itemu32Which item, by the number the client knows it as. For an item it does not know, a client empties the slot and still takes inSlot.
inSlotu8How many of the item the slot holds now; a client applies zero as well. The slot’s charges come from the item’s own data.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

There is no charges field: a client takes an item’s charges from the item’s own data. A server sends it to units nobody is buying for.

FieldTypeWhat it is
slotu8The slot it went to, 0 to 36. A client rejects the message from 37 up.
itemu32Which item, by the number the client knows it as.
inSlotu8How many of the item the slot holds now; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.123

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

BuildsCommand
1.0.0.99–1.0.0.10246
1.0.0.103–1.0.0.10647
1.0.0.107–1.0.0.10948
1.0.0.110108
1.0.0.111–1.0.0.116109
1.0.0.117–1.0.0.118110
1.0.0.119–1.0.0.123111

There is no charges field: a client takes an item’s charges from the item’s own data. A server sends it to units nobody is buying for.

FieldTypeWhat it is
slotu8The slot it went to, 0 to 37. 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 now; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
activateu8What this carries is not recorded. Where it is not zero, a client refreshes the slot and, where the slot holds an item, sends RemoveItem for it with sell clear; a server sends zero.
Vectors (7)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

It answers no request: where inSlot is above zero, a client puts item and inSlot in the slot whether or not anything asked for it. There is no charges field: a client takes an item’s charges from the item’s own data. A server sends it to units nobody is buying for.

FieldTypeWhat it is
slotu8The slot it went to, 0 to 37. 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 now; zero leaves the slot as it was. The slot’s charges come from the item’s own data.
activateu8What this carries is not recorded. Where it is not zero, a client refreshes the slot and, where the slot holds an item, sends RemoveItem for it with sell clear; a server sends zero.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

RemoveItemAnswer

What a server sends to confirm an item left a slot. The header names the unit this is about.

Definition.

In 1.0.0.25–1.0.0.96

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

BuildsCommand
1.0.0.25–1.0.0.8144
1.0.0.82–1.0.0.9647
FieldTypeWhat it is
slotu8Which slot, 0 to 36. A larger value than 36 has no defined effect.
leftu8How many are left in the slot; zero empties it, item and charges cleared.
Vectors (3)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

FieldTypeWhat it is
slotu8Which slot, 0 to 36. A client drops the message from 37 up.
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.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.125

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

BuildsCommand
1.0.0.99–1.0.0.10248
1.0.0.103–1.0.0.10649
1.0.0.107–1.0.0.10950
1.0.0.110–1.0.0.12511
FieldTypeWhat it is
slotu8Which slot, 0 to 37. A client drops the message from 38 up.
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.
Vectors (4)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.126–1.0.0.127

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

A client takes it only for a champion, and ignores it for any other unit.

FieldTypeWhat it is
slotu8Which slot, 0 to 37. A client drops the message from 38 up.
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.
Vectors (1)

one-left-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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 1.0.0.25–1.0.0.81

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

FieldTypeWhat it is
fromu8The slot the item left, 0 to 36. A client swaps the two slots named whatever their values, so a server keeps both within range.
tou8The slot it went to, 0 to 36. A client swaps the two slots named whatever their values, so a server keeps both within range.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
fromu8The slot the item left, 0 to 5. A client does not check it, and a value above 36 can bring the client down.
tou8The slot it went to, 0 to 5. A client does not check it, and a value above 36 can bring the client down.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97–1.0.0.10250
1.0.0.103–1.0.0.10651
1.0.0.107–1.0.0.10952
1.0.0.110–1.0.0.11664
1.0.0.117–1.0.0.11865
1.0.0.119–1.0.0.12366
FieldTypeWhat it is
fromu8The slot the item left, 0 to 5. A client ignores the message for any other.
tou8The slot it went to, 0 to 5. A client ignores the message for any other.
Vectors (6)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
fromu8The slot the item left, 0 to 37. A client ignores the message where it is 38 or more.
tou8The slot it went to, 0 to 37. A client ignores the message where it is 38 or more.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
fromu8The slot the item left.
tou8The slot it went to.

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.97–1.0.0.98

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

FieldTypeWhat it is
slotu8Which slot, 0 to 36. A client ignores the message from 37 up.
itemu32The item. It has no effect where count is zero.
countu8How many. Zero leaves the slot empty.
chargesu8Its charges.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.127

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

BuildsCommand
1.0.0.99–1.0.0.10244
1.0.0.103–1.0.0.10645
1.0.0.107–1.0.0.10946
1.0.0.110–1.0.0.11682
1.0.0.117–1.0.0.11883
1.0.0.119–1.0.0.12384
1.0.0.124–1.0.0.12786
FieldTypeWhat it is
slotu8Which slot, 0 to 37. A client ignores the message from 38 up.
itemu32The item. It has no effect where count is zero.
countu8How many. Zero leaves the slot empty.
chargesu8Its charges.
Vectors (7)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

ItemUsed

What a server sends after an item in a unit’s inventory is used. The header names the unit.

Definition.

In 1.0.0.74–1.0.0.96

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

BuildsCommand
1.0.0.74–1.0.0.8147
1.0.0.82–1.0.0.9650
FieldTypeWhat it is
slotu8Which slot, 0 to 36. A larger value than 36 has no defined effect, and a client ignores the message where the slot is empty.
leftu8How many are left in it; zero empties the slot.
chargesu8How many charges it holds.
Vectors (3)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

FieldTypeWhat it is
slotu8Which slot, 0 to 36. A client ignores the message from 37 up, and where the slot is empty.
leftu8How many are left in it; zero empties the slot.
chargesu8How many charges it holds.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.127

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

BuildsCommand
1.0.0.99–1.0.0.10251
1.0.0.103–1.0.0.10652
1.0.0.107–1.0.0.10953
1.0.0.110158
1.0.0.111–1.0.0.116159
1.0.0.117–1.0.0.118160
1.0.0.119–1.0.0.123161
1.0.0.124165
1.0.0.125166
1.0.0.126–1.0.0.127167
FieldTypeWhat it is
slotu8Which slot, 0 to 37. A client ignores the message from 38 up, and where the slot is empty.
leftu8How many are left in it; zero empties the slot.
chargesu8How many charges it holds.
Vectors (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-left-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
slotu8Which slot.
leftu8How many are left in it; zero empties the slot.
chargesu8How many charges it holds.

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.25–1.0.0.73146
1.0.0.74–1.0.0.81147
1.0.0.82–1.0.0.96151
1.0.0.97152
1.0.0.98–1.0.0.102153
1.0.0.103155
1.0.0.104–1.0.0.106160
1.0.0.107–1.0.0.108161
1.0.0.109162
1.0.0.110–1.0.0.12915

No body.

Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, empty-on-1-0-0-126

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).

In 1.0.0.96–1.0.0.129

CampCleared sets no time for the camp to fill again: a client keeps the state it gives for the camp.

In 1.0.0.126

A client shows nothing of the state CampCleared gives.

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.

In 1.0.0.122–1.0.0.123

No unit stands behind a point: a server sets each point outright with CapturePointValue, which says who holds it, how far it is taken and how fast that changes, and a client moves the point on by itself between messages. TeamScore carries both sides’ scores at once. A client acts on either only where its screen has the capture point panel.

In 1.0.0.126–1.0.0.129

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).

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.86–1.0.0.96

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

The header has no effect. A client keeps one state for the camp, shared by both sides.

FieldTypeWhat it is
campu8Which camp. A client ignores the message for a camp it does not know.
activeu8The camp’s state, kept as it stands; nonzero where it is active.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.118

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

BuildsCommand
1.0.0.97190
1.0.0.98–1.0.0.102191
1.0.0.103193
1.0.0.104–1.0.0.106199
1.0.0.107–1.0.0.108200
1.0.0.109201
1.0.0.110193
1.0.0.111–1.0.0.116194
1.0.0.117–1.0.0.118195

The header has no effect. A client keeps one state for the camp, shared by both sides. A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
campu8Which camp. A client ignores the message for a camp it does not know.
activeu8The camp’s state, kept as it stands; nonzero where it is active.
Vectors (9)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117

In 1.0.0.119–1.0.0.122

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

The header has no effect. A client keeps one state for the camp, shared by both sides. A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
campu32Which camp. A client ignores the message for a camp it does not know.
activeu8The camp’s state, kept as it stands; nonzero where it is active.
Vectors (1)

one-on-1-0-0-122

In 1.0.0.123–1.0.0.124

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

BuildsCommand
1.0.0.123196
1.0.0.124201

The header names the champion credited with emptying the camp. A client uses it only to choose a side: side 100 where the champion is on side 100, side 200 otherwise. A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
campu32Which camp. A client ignores the message for a camp it does not know.
activeu8The camp’s state for that side, kept as it stands; nonzero where it is active.
Vectors (2)

one-on-1-0-0-123, one-on-1-0-0-124

In 1.0.0.125

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

A client marks the camp empty, even one that had just filled.

FieldTypeWhat it is
unitu32The champion credited with emptying the camp. A client uses it only to choose a side: side 100 where the killer is on side 100, side 200 otherwise.
campu32Which camp. A client ignores the message for a camp it does not know.
activeu8The camp’s state for that side, kept as it stands; nonzero where it is active.
Vectors (1)

one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

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

FieldTypeWhat it is
unitu32The champion credited with emptying the camp. A client uses it only to choose a side: side 100 where the killer is on side 100, side 200 otherwise.
campu32Which camp. A client ignores the message for a camp it does not know.
activeu8The camp’s state for that side, kept as it stands; nonzero where it is active.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124218
1.0.0.125219
1.0.0.126–1.0.0.127220

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 255; 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. A client does nothing with it.
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 (4)

mana-on-1-0-0-124, mana-on-1-0-0-125, binding-on-1-0-0-126, mana-on-1-0-0-127

In 1.0.0.128–1.0.0.129

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

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.

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.110–1.0.0.123

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

BuildsCommand
1.0.0.110209
1.0.0.111–1.0.0.116210
1.0.0.117–1.0.0.118211
1.0.0.119–1.0.0.122212
1.0.0.123213

A client ignores it unless it shows the capture point panel. Each score shows as a whole number, divided by 100 and rounded toward zero.

FieldTypeWhat it is
sideScorei32The score side 100 now stands at.
otherSideScorei32The score side 200 now stands at.
Vectors (5)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

BuildsCommand
1.0.0.124219
1.0.0.125220

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 (2)

one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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-126

CapturePointValue

What a server sends when a point one side can take from the other changes. The header names no object: it carries zero.

Definition.

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110208
1.0.0.111–1.0.0.116209
1.0.0.117–1.0.0.118210
1.0.0.119–1.0.0.122211
1.0.0.123212

A client ignores it unless it shows the capture point panel. A client keeps one record per point, making every point up to this one, and projects each from value and rate as time passes.

FieldTypeWhat it is
valuef32How far the point is taken, from -100 to 100: toward side 100 where positive, side 200 where negative. A client shows how full it is as the value without its sign.
ratef32How fast value changes, in units a second.
sideu32Who holds the point: 100 or 200, or 300 where it is neutral.
pointu8Which point, 0 to 255.
stateu8Zero to label the point by its name; above zero to label it with that number as a multiplier.
Vectors (5)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123

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 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110210
1.0.0.111–1.0.0.116211
1.0.0.117–1.0.0.118212
1.0.0.119–1.0.0.122213
1.0.0.123214

A client ignores it unless it shows the respawn point panel.

FieldTypeWhat it is
actionu8What to do. A client ignores any other value. Values: 0 offer, 1 select.
pointu8Which point.
Vectors (5)

offer-on-1-0-0-110, offer-on-1-0-0-116, offer-on-1-0-0-117, offer-on-1-0-0-122, offer-on-1-0-0-123

In 1.0.0.124–1.0.0.129

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

BuildsCommand
1.0.0.124220
1.0.0.125221
1.0.0.126–1.0.0.129222
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 (3)

owned-on-1-0-0-124, owned-on-1-0-0-125, owned-on-1-0-0-126

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.25–1.0.0.60

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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.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 = 0Nothing a client shows; the unit before it names the killer.
kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (14)

buff-on-1-0-0-58, consumable-bought-on-1-0-0-58, critical-strike-on-1-0-0-58, damage-dealt-on-1-0-0-58, damage-taken-on-1-0-0-58, death-assist-on-1-0-0-58, died-on-1-0-0-58, gold-earned-on-1-0-0-58, gold-spent-on-1-0-0-58, heal-cast-on-1-0-0-58, heal-on-1-0-0-58, item-bought-on-1-0-0-58, killing-spree-on-1-0-0-58, one-on-1-0-0-58

In 1.0.0.61–1.0.0.71

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (14)

buff-on-1-0-0-70, consumable-bought-on-1-0-0-70, critical-strike-on-1-0-0-70, damage-dealt-on-1-0-0-70, damage-taken-on-1-0-0-70, death-assist-on-1-0-0-70, died-on-1-0-0-70, gold-earned-on-1-0-0-70, gold-spent-on-1-0-0-70, heal-cast-on-1-0-0-70, heal-on-1-0-0-70, item-bought-on-1-0-0-70, killing-spree-on-1-0-0-70, one-on-1-0-0-70

In 1.0.0.72–1.0.0.95

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

BuildsCommand
1.0.0.72–1.0.0.73168
1.0.0.74–1.0.0.81169
1.0.0.82–1.0.0.95173
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (56)

buff-on-1-0-0-72, consumable-bought-on-1-0-0-72, critical-strike-on-1-0-0-72, damage-dealt-on-1-0-0-72, damage-taken-on-1-0-0-72, death-assist-on-1-0-0-72, died-on-1-0-0-72, gold-earned-on-1-0-0-72, gold-spent-on-1-0-0-72, heal-cast-on-1-0-0-72, heal-on-1-0-0-72, item-bought-on-1-0-0-72, killing-spree-on-1-0-0-72, one-on-1-0-0-72, buff-on-1-0-0-75, consumable-bought-on-1-0-0-75, critical-strike-on-1-0-0-75, damage-dealt-on-1-0-0-75, damage-taken-on-1-0-0-75, death-assist-on-1-0-0-75, died-on-1-0-0-75, gold-earned-on-1-0-0-75, gold-spent-on-1-0-0-75, heal-cast-on-1-0-0-75, heal-on-1-0-0-75, item-bought-on-1-0-0-75, killing-spree-on-1-0-0-75, one-on-1-0-0-75, buff-on-1-0-0-81, consumable-bought-on-1-0-0-81, critical-strike-on-1-0-0-81, damage-dealt-on-1-0-0-81, damage-taken-on-1-0-0-81, death-assist-on-1-0-0-81, died-on-1-0-0-81, gold-earned-on-1-0-0-81, gold-spent-on-1-0-0-81, heal-cast-on-1-0-0-81, heal-on-1-0-0-81, item-bought-on-1-0-0-81, killing-spree-on-1-0-0-81, one-on-1-0-0-81, buff-on-1-0-0-86, consumable-bought-on-1-0-0-86, critical-strike-on-1-0-0-86, damage-dealt-on-1-0-0-86, damage-taken-on-1-0-0-86, death-assist-on-1-0-0-86, died-on-1-0-0-86, gold-earned-on-1-0-0-86, gold-spent-on-1-0-0-86, heal-cast-on-1-0-0-86, heal-on-1-0-0-86, item-bought-on-1-0-0-86, killing-spree-on-1-0-0-86, one-on-1-0-0-86

In 1.0.0.96

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 74, and so which fields follow. A larger value has no defined effect. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (14)

buff-on-1-0-0-96, consumable-bought-on-1-0-0-96, critical-strike-on-1-0-0-96, damage-dealt-on-1-0-0-96, damage-taken-on-1-0-0-96, death-assist-on-1-0-0-96, died-on-1-0-0-96, gold-earned-on-1-0-0-96, gold-spent-on-1-0-0-96, heal-cast-on-1-0-0-96, heal-on-1-0-0-96, item-bought-on-1-0-0-96, killing-spree-on-1-0-0-96, one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

BuildsCommand
1.0.0.97174
1.0.0.98175
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (28)

buff-on-1-0-0-97, consumable-bought-on-1-0-0-97, critical-strike-on-1-0-0-97, damage-dealt-on-1-0-0-97, damage-taken-on-1-0-0-97, death-assist-on-1-0-0-97, died-on-1-0-0-97, gold-earned-on-1-0-0-97, gold-spent-on-1-0-0-97, heal-cast-on-1-0-0-97, heal-on-1-0-0-97, item-bought-on-1-0-0-97, killing-spree-on-1-0-0-97, one-on-1-0-0-97, buff-on-1-0-0-98, consumable-bought-on-1-0-0-98, critical-strike-on-1-0-0-98, damage-dealt-on-1-0-0-98, damage-taken-on-1-0-0-98, death-assist-on-1-0-0-98, died-on-1-0-0-98, gold-earned-on-1-0-0-98, gold-spent-on-1-0-0-98, heal-cast-on-1-0-0-98, heal-on-1-0-0-98, item-bought-on-1-0-0-98, killing-spree-on-1-0-0-98, one-on-1-0-0-98

In 1.0.0.99–1.0.0.103

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

BuildsCommand
1.0.0.99–1.0.0.102175
1.0.0.103177
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 78, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (28)

buff-on-1-0-0-99, consumable-bought-on-1-0-0-99, critical-strike-on-1-0-0-99, damage-dealt-on-1-0-0-99, damage-taken-on-1-0-0-99, death-assist-on-1-0-0-99, died-on-1-0-0-99, gold-earned-on-1-0-0-99, gold-spent-on-1-0-0-99, heal-cast-on-1-0-0-99, heal-on-1-0-0-99, item-bought-on-1-0-0-99, killing-spree-on-1-0-0-99, one-on-1-0-0-99, buff-on-1-0-0-103, consumable-bought-on-1-0-0-103, critical-strike-on-1-0-0-103, damage-dealt-on-1-0-0-103, damage-taken-on-1-0-0-103, death-assist-on-1-0-0-103, died-on-1-0-0-103, gold-earned-on-1-0-0-103, gold-spent-on-1-0-0-103, heal-cast-on-1-0-0-103, heal-on-1-0-0-103, item-bought-on-1-0-0-103, killing-spree-on-1-0-0-103, one-on-1-0-0-103

In 1.0.0.104–1.0.0.109

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

BuildsCommand
1.0.0.104–1.0.0.106183
1.0.0.107–1.0.0.108184
1.0.0.109185
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 82, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 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; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (42)

buff-on-1-0-0-106, consumable-bought-on-1-0-0-106, critical-strike-on-1-0-0-106, damage-dealt-on-1-0-0-106, damage-taken-on-1-0-0-106, death-assist-on-1-0-0-106, died-on-1-0-0-106, gold-earned-on-1-0-0-106, gold-spent-on-1-0-0-106, heal-cast-on-1-0-0-106, heal-on-1-0-0-106, item-bought-on-1-0-0-106, killing-spree-on-1-0-0-106, one-on-1-0-0-106, buff-on-1-0-0-108, consumable-bought-on-1-0-0-108, critical-strike-on-1-0-0-108, damage-dealt-on-1-0-0-108, damage-taken-on-1-0-0-108, death-assist-on-1-0-0-108, died-on-1-0-0-108, gold-earned-on-1-0-0-108, gold-spent-on-1-0-0-108, heal-cast-on-1-0-0-108, heal-on-1-0-0-108, item-bought-on-1-0-0-108, killing-spree-on-1-0-0-108, one-on-1-0-0-108, buff-on-1-0-0-109, consumable-bought-on-1-0-0-109, critical-strike-on-1-0-0-109, damage-dealt-on-1-0-0-109, damage-taken-on-1-0-0-109, death-assist-on-1-0-0-109, died-on-1-0-0-109, gold-earned-on-1-0-0-109, gold-spent-on-1-0-0-109, heal-cast-on-1-0-0-109, heal-on-1-0-0-109, item-bought-on-1-0-0-109, killing-spree-on-1-0-0-109, one-on-1-0-0-109

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110–1.0.0.11670
1.0.0.117–1.0.0.11871
1.0.0.119–1.0.0.12372
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 84, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 scoreboardOpened, 83 pointNeutralized, 84 pointCaptured.
sourceu32The unit the thing is credited to, or zero where none is.
subjectu32The unit the thing happened to, or zero where none is named; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (55)

buff-on-1-0-0-116, consumable-bought-on-1-0-0-116, critical-strike-on-1-0-0-116, damage-dealt-on-1-0-0-116, damage-taken-on-1-0-0-116, death-assist-on-1-0-0-116, died-on-1-0-0-116, gold-earned-on-1-0-0-116, gold-spent-on-1-0-0-116, heal-cast-on-1-0-0-116, heal-on-1-0-0-116, item-bought-on-1-0-0-116, killing-spree-on-1-0-0-116, one-on-1-0-0-116, buff-on-1-0-0-117, consumable-bought-on-1-0-0-117, critical-strike-on-1-0-0-117, damage-dealt-on-1-0-0-117, damage-taken-on-1-0-0-117, death-assist-on-1-0-0-117, died-on-1-0-0-117, gold-earned-on-1-0-0-117, gold-spent-on-1-0-0-117, heal-cast-on-1-0-0-117, heal-on-1-0-0-117, item-bought-on-1-0-0-117, killing-spree-on-1-0-0-117, one-on-1-0-0-117, buff-on-1-0-0-122, consumable-bought-on-1-0-0-122, critical-strike-on-1-0-0-122, damage-dealt-on-1-0-0-122, damage-taken-on-1-0-0-122, death-assist-on-1-0-0-122, died-on-1-0-0-122, gold-earned-on-1-0-0-122, gold-spent-on-1-0-0-122, heal-cast-on-1-0-0-122, heal-on-1-0-0-122, item-bought-on-1-0-0-122, killing-spree-on-1-0-0-122, one-on-1-0-0-122, buff-on-1-0-0-123, consumable-bought-on-1-0-0-123, critical-strike-on-1-0-0-123, damage-dealt-on-1-0-0-123, damage-taken-on-1-0-0-123, death-assist-on-1-0-0-123, gold-earned-on-1-0-0-123, gold-spent-on-1-0-0-123, heal-cast-on-1-0-0-123, heal-on-1-0-0-123, item-bought-on-1-0-0-123, killing-spree-on-1-0-0-123, one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 96, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 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.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (14)

buff-on-1-0-0-125, consumable-bought-on-1-0-0-125, critical-strike-on-1-0-0-125, damage-dealt-on-1-0-0-125, damage-taken-on-1-0-0-125, death-assist-on-1-0-0-125, died-on-1-0-0-125, gold-earned-on-1-0-0-125, gold-spent-on-1-0-0-125, heal-cast-on-1-0-0-125, heal-on-1-0-0-125, item-bought-on-1-0-0-125, killing-spree-on-1-0-0-125, one-on-1-0-0-125

In 1.0.0.126–1.0.0.128

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 98, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 82 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.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (14)

buff-on-1-0-0-128, consumable-bought-on-1-0-0-128, critical-strike-on-1-0-0-128, damage-dealt-on-1-0-0-128, damage-taken-on-1-0-0-128, death-assist-on-1-0-0-128, died-on-1-0-0-128, gold-earned-on-1-0-0-128, gold-spent-on-1-0-0-128, heal-cast-on-1-0-0-128, heal-on-1-0-0-128, item-bought-on-1-0-0-128, killing-spree-on-1-0-0-128, one-on-1-0-0-128

In 1.0.0.129

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 101, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 71 surrenderCountdown, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 81 startNoticeThree, 85 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.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (14)

buff-on-1-0-0-129, consumable-bought-on-1-0-0-129, critical-strike-on-1-0-0-129, damage-dealt-on-1-0-0-129, damage-taken-on-1-0-0-129, death-assist-on-1-0-0-129, died-on-1-0-0-129, gold-earned-on-1-0-0-129, gold-spent-on-1-0-0-129, heal-cast-on-1-0-0-129, heal-on-1-0-0-129, item-bought-on-1-0-0-129, killing-spree-on-1-0-0-129, one-on-1-0-0-129

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.25–1.0.0.60

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 73, and so which fields follow. A value above 73 has no defined effect. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 63 surrenderVoteStarted, 64 surrenderVoteCast, 65 surrenderAlreadyVoted, 66 surrenderCountdown, 67 surrenderFailed, 68 surrenderTooEarly, 69 surrenderAgreed, 70 surrenderVoteSpam, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How much harm, and from what.
damage.physicalf32Physical damage.
damage.magicalf32Magical 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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.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 = 0Nothing a client shows; the unit before it names the killer.
kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (14)

buff-on-1-0-0-58, consumable-bought-on-1-0-0-58, critical-strike-on-1-0-0-58, damage-dealt-on-1-0-0-58, damage-taken-on-1-0-0-58, death-assist-on-1-0-0-58, died-on-1-0-0-58, gold-earned-on-1-0-0-58, gold-spent-on-1-0-0-58, heal-cast-on-1-0-0-58, heal-on-1-0-0-58, item-bought-on-1-0-0-58, killing-spree-on-1-0-0-58, one-on-1-0-0-58

In 1.0.0.61–1.0.0.71

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

BuildsCommand
1.0.0.61–1.0.0.62108
1.0.0.63–1.0.0.71111
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 73, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 63 surrenderVoteStarted, 64 surrenderVoteCast, 65 surrenderAlreadyVoted, 66 surrenderCountdown, 67 surrenderFailed, 68 surrenderTooEarly, 69 surrenderAgreed, 70 surrenderVoteSpam, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (28)

buff-on-1-0-0-61, consumable-bought-on-1-0-0-61, critical-strike-on-1-0-0-61, damage-dealt-on-1-0-0-61, damage-taken-on-1-0-0-61, death-assist-on-1-0-0-61, died-on-1-0-0-61, gold-earned-on-1-0-0-61, gold-spent-on-1-0-0-61, heal-cast-on-1-0-0-61, heal-on-1-0-0-61, item-bought-on-1-0-0-61, killing-spree-on-1-0-0-61, one-on-1-0-0-61, buff-on-1-0-0-70, consumable-bought-on-1-0-0-70, critical-strike-on-1-0-0-70, damage-dealt-on-1-0-0-70, damage-taken-on-1-0-0-70, death-assist-on-1-0-0-70, died-on-1-0-0-70, gold-earned-on-1-0-0-70, gold-spent-on-1-0-0-70, heal-cast-on-1-0-0-70, heal-on-1-0-0-70, item-bought-on-1-0-0-70, killing-spree-on-1-0-0-70, one-on-1-0-0-70

In 1.0.0.72–1.0.0.95

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

BuildsCommand
1.0.0.72–1.0.0.73111
1.0.0.74–1.0.0.81112
1.0.0.82–1.0.0.95116
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 63 surrenderVoteStarted, 64 surrenderVoteCast, 65 surrenderAlreadyVoted, 66 surrenderCountdown, 67 surrenderFailed, 68 surrenderTooEarly, 69 surrenderAgreed, 70 surrenderVoteSpam, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unusedf32A client reads nothing here, and writes zero where it raises the event itself. A server writes zero.
Vectors (56)

buff-on-1-0-0-72, consumable-bought-on-1-0-0-72, critical-strike-on-1-0-0-72, damage-dealt-on-1-0-0-72, damage-taken-on-1-0-0-72, death-assist-on-1-0-0-72, died-on-1-0-0-72, gold-earned-on-1-0-0-72, gold-spent-on-1-0-0-72, heal-cast-on-1-0-0-72, heal-on-1-0-0-72, item-bought-on-1-0-0-72, killing-spree-on-1-0-0-72, one-on-1-0-0-72, buff-on-1-0-0-75, consumable-bought-on-1-0-0-75, critical-strike-on-1-0-0-75, damage-dealt-on-1-0-0-75, damage-taken-on-1-0-0-75, death-assist-on-1-0-0-75, died-on-1-0-0-75, gold-earned-on-1-0-0-75, gold-spent-on-1-0-0-75, heal-cast-on-1-0-0-75, heal-on-1-0-0-75, item-bought-on-1-0-0-75, killing-spree-on-1-0-0-75, one-on-1-0-0-75, buff-on-1-0-0-81, consumable-bought-on-1-0-0-81, critical-strike-on-1-0-0-81, damage-dealt-on-1-0-0-81, damage-taken-on-1-0-0-81, death-assist-on-1-0-0-81, died-on-1-0-0-81, gold-earned-on-1-0-0-81, gold-spent-on-1-0-0-81, heal-cast-on-1-0-0-81, heal-on-1-0-0-81, item-bought-on-1-0-0-81, killing-spree-on-1-0-0-81, one-on-1-0-0-81, buff-on-1-0-0-86, consumable-bought-on-1-0-0-86, critical-strike-on-1-0-0-86, damage-dealt-on-1-0-0-86, damage-taken-on-1-0-0-86, death-assist-on-1-0-0-86, died-on-1-0-0-86, gold-earned-on-1-0-0-86, gold-spent-on-1-0-0-86, heal-cast-on-1-0-0-86, heal-on-1-0-0-86, item-bought-on-1-0-0-86, killing-spree-on-1-0-0-86, one-on-1-0-0-86

In 1.0.0.96

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 74, and so which fields follow. A larger value has no defined effect. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 63 surrenderVoteStarted, 64 surrenderVoteCast, 65 surrenderAlreadyVoted, 66 surrenderCountdown, 67 surrenderFailed, 68 surrenderTooEarly, 69 surrenderAgreed, 70 surrenderVoteSpam, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (14)

buff-on-1-0-0-96, consumable-bought-on-1-0-0-96, critical-strike-on-1-0-0-96, damage-dealt-on-1-0-0-96, damage-taken-on-1-0-0-96, death-assist-on-1-0-0-96, died-on-1-0-0-96, gold-earned-on-1-0-0-96, gold-spent-on-1-0-0-96, heal-cast-on-1-0-0-96, heal-on-1-0-0-96, item-bought-on-1-0-0-96, killing-spree-on-1-0-0-96, one-on-1-0-0-96

In 1.0.0.97–1.0.0.98

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 74, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 63 surrenderVoteStarted, 64 surrenderVoteCast, 65 surrenderAlreadyVoted, 66 surrenderCountdown, 67 surrenderFailed, 68 surrenderTooEarly, 69 surrenderAgreed, 70 surrenderVoteSpam, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 62What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (14)

buff-on-1-0-0-98, consumable-bought-on-1-0-0-98, critical-strike-on-1-0-0-98, damage-dealt-on-1-0-0-98, damage-taken-on-1-0-0-98, death-assist-on-1-0-0-98, died-on-1-0-0-98, gold-earned-on-1-0-0-98, gold-spent-on-1-0-0-98, heal-cast-on-1-0-0-98, heal-on-1-0-0-98, item-bought-on-1-0-0-98, killing-spree-on-1-0-0-98, one-on-1-0-0-98

In 1.0.0.99–1.0.0.103

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

BuildsCommand
1.0.0.99–1.0.0.102117
1.0.0.103119
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 78, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 68 surrenderVoteStarted, 69 surrenderVoteCast, 70 surrenderAlreadyVoted, 71 surrenderCountdown, 72 surrenderFailed, 73 surrenderTooEarly, 74 surrenderAgreed, 75 surrenderVoteSpam, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (28)

buff-on-1-0-0-99, consumable-bought-on-1-0-0-99, critical-strike-on-1-0-0-99, damage-dealt-on-1-0-0-99, damage-taken-on-1-0-0-99, death-assist-on-1-0-0-99, died-on-1-0-0-99, gold-earned-on-1-0-0-99, gold-spent-on-1-0-0-99, heal-cast-on-1-0-0-99, heal-on-1-0-0-99, item-bought-on-1-0-0-99, killing-spree-on-1-0-0-99, one-on-1-0-0-99, buff-on-1-0-0-103, consumable-bought-on-1-0-0-103, critical-strike-on-1-0-0-103, damage-dealt-on-1-0-0-103, damage-taken-on-1-0-0-103, death-assist-on-1-0-0-103, died-on-1-0-0-103, gold-earned-on-1-0-0-103, gold-spent-on-1-0-0-103, heal-cast-on-1-0-0-103, heal-on-1-0-0-103, item-bought-on-1-0-0-103, killing-spree-on-1-0-0-103, one-on-1-0-0-103

In 1.0.0.104–1.0.0.109

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

BuildsCommand
1.0.0.104–1.0.0.106119
1.0.0.107–1.0.0.108120
1.0.0.109121
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 82, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 68 surrenderVoteStarted, 69 surrenderVoteCast, 70 surrenderAlreadyVoted, 71 surrenderCountdown, 72 surrenderFailed, 73 surrenderTooEarly, 74 surrenderAgreed, 75 surrenderVoteSpam, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 79 alert, 80 scoreboardOpened.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (42)

buff-on-1-0-0-106, consumable-bought-on-1-0-0-106, critical-strike-on-1-0-0-106, damage-dealt-on-1-0-0-106, damage-taken-on-1-0-0-106, death-assist-on-1-0-0-106, died-on-1-0-0-106, gold-earned-on-1-0-0-106, gold-spent-on-1-0-0-106, heal-cast-on-1-0-0-106, heal-on-1-0-0-106, item-bought-on-1-0-0-106, killing-spree-on-1-0-0-106, one-on-1-0-0-106, buff-on-1-0-0-108, consumable-bought-on-1-0-0-108, critical-strike-on-1-0-0-108, damage-dealt-on-1-0-0-108, damage-taken-on-1-0-0-108, death-assist-on-1-0-0-108, died-on-1-0-0-108, gold-earned-on-1-0-0-108, gold-spent-on-1-0-0-108, heal-cast-on-1-0-0-108, heal-on-1-0-0-108, item-bought-on-1-0-0-108, killing-spree-on-1-0-0-108, one-on-1-0-0-108, buff-on-1-0-0-109, consumable-bought-on-1-0-0-109, critical-strike-on-1-0-0-109, damage-dealt-on-1-0-0-109, damage-taken-on-1-0-0-109, death-assist-on-1-0-0-109, died-on-1-0-0-109, gold-earned-on-1-0-0-109, gold-spent-on-1-0-0-109, heal-cast-on-1-0-0-109, heal-on-1-0-0-109, item-bought-on-1-0-0-109, killing-spree-on-1-0-0-109, one-on-1-0-0-109

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110162
1.0.0.111–1.0.0.116163
1.0.0.117–1.0.0.118164
1.0.0.119–1.0.0.123165
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 84, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 68 surrenderVoteStarted, 69 surrenderVoteCast, 70 surrenderAlreadyVoted, 71 surrenderCountdown, 72 surrenderFailed, 73 surrenderTooEarly, 74 surrenderAgreed, 75 surrenderVoteSpam, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 79 alert, 80 scoreboardOpened, 83 pointNeutralized, 84 pointCaptured.
subjectu32The unit the event is about; for a death, the unit that made the kill.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 = 0Nothing a client shows; the unit before it names the killer.
kill.unreadbytes, 8A client reads nothing here. A server writes zero.
kill.listbytes, 12A client copies these bytes as they stand and acts on them as its own bookkeeping, so a server writes zero: anything else can bring the client down.
Vectors (69)

buff-on-1-0-0-110, consumable-bought-on-1-0-0-110, critical-strike-on-1-0-0-110, damage-dealt-on-1-0-0-110, damage-taken-on-1-0-0-110, death-assist-on-1-0-0-110, died-on-1-0-0-110, gold-earned-on-1-0-0-110, gold-spent-on-1-0-0-110, heal-cast-on-1-0-0-110, heal-on-1-0-0-110, item-bought-on-1-0-0-110, killing-spree-on-1-0-0-110, one-on-1-0-0-110, buff-on-1-0-0-116, consumable-bought-on-1-0-0-116, critical-strike-on-1-0-0-116, damage-dealt-on-1-0-0-116, damage-taken-on-1-0-0-116, death-assist-on-1-0-0-116, died-on-1-0-0-116, gold-earned-on-1-0-0-116, gold-spent-on-1-0-0-116, heal-cast-on-1-0-0-116, heal-on-1-0-0-116, item-bought-on-1-0-0-116, killing-spree-on-1-0-0-116, one-on-1-0-0-116, buff-on-1-0-0-117, consumable-bought-on-1-0-0-117, critical-strike-on-1-0-0-117, damage-dealt-on-1-0-0-117, damage-taken-on-1-0-0-117, death-assist-on-1-0-0-117, died-on-1-0-0-117, gold-earned-on-1-0-0-117, gold-spent-on-1-0-0-117, heal-cast-on-1-0-0-117, heal-on-1-0-0-117, item-bought-on-1-0-0-117, killing-spree-on-1-0-0-117, one-on-1-0-0-117, buff-on-1-0-0-122, consumable-bought-on-1-0-0-122, critical-strike-on-1-0-0-122, damage-dealt-on-1-0-0-122, damage-taken-on-1-0-0-122, death-assist-on-1-0-0-122, died-on-1-0-0-122, gold-earned-on-1-0-0-122, gold-spent-on-1-0-0-122, heal-cast-on-1-0-0-122, heal-on-1-0-0-122, item-bought-on-1-0-0-122, killing-spree-on-1-0-0-122, one-on-1-0-0-122, buff-on-1-0-0-123, consumable-bought-on-1-0-0-123, critical-strike-on-1-0-0-123, damage-dealt-on-1-0-0-123, damage-taken-on-1-0-0-123, death-assist-on-1-0-0-123, gold-earned-on-1-0-0-123, gold-spent-on-1-0-0-123, heal-cast-on-1-0-0-123, heal-on-1-0-0-123, item-bought-on-1-0-0-123, killing-spree-on-1-0-0-123, one-on-1-0-0-123

In 1.0.0.124–1.0.0.125

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

BuildsCommand
1.0.0.124169
1.0.0.125170
FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 96, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 68 surrenderVoteStarted, 69 surrenderVoteCast, 70 surrenderAlreadyVoted, 71 surrenderCountdown, 72 surrenderFailed, 73 surrenderTooEarly, 74 surrenderAgreed, 75 surrenderVoteSpam, 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 79 alert, 80 scoreboardOpened, 83 pointANeutralized, 84 pointBNeutralized, 85 pointCNeutralized, 86 pointDNeutralized, 87 pointENeutralized, 88 pointACaptured, 89 pointBCaptured, 90 pointCCaptured, 91 pointDCaptured, 92 pointECaptured.
subjectu32The unit the event is about.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (28)

buff-on-1-0-0-124, consumable-bought-on-1-0-0-124, critical-strike-on-1-0-0-124, damage-dealt-on-1-0-0-124, damage-taken-on-1-0-0-124, death-assist-on-1-0-0-124, died-on-1-0-0-124, gold-earned-on-1-0-0-124, gold-spent-on-1-0-0-124, heal-cast-on-1-0-0-124, heal-on-1-0-0-124, item-bought-on-1-0-0-124, killing-spree-on-1-0-0-124, one-on-1-0-0-124, buff-on-1-0-0-125, consumable-bought-on-1-0-0-125, critical-strike-on-1-0-0-125, damage-dealt-on-1-0-0-125, damage-taken-on-1-0-0-125, death-assist-on-1-0-0-125, died-on-1-0-0-125, gold-earned-on-1-0-0-125, gold-spent-on-1-0-0-125, heal-cast-on-1-0-0-125, heal-on-1-0-0-125, item-bought-on-1-0-0-125, killing-spree-on-1-0-0-125, one-on-1-0-0-125

In 1.0.0.126–1.0.0.128

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 98, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 68 surrenderVoteStarted, 69 surrenderVoteCast, 70 surrenderAlreadyVoted, 71 surrenderCountdown, 72 surrenderFailed, 73 surrenderTooEarly, 74 surrenderAgreed, 75 surrenderVoteSpam, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 81 alert, 82 scoreboardOpened, 85 pointANeutralized, 86 pointBNeutralized, 87 pointCNeutralized, 88 pointDNeutralized, 89 pointENeutralized, 90 pointACaptured, 91 pointBCaptured, 92 pointCCaptured, 93 pointDCaptured, 94 pointECaptured.
subjectu32The unit the event is about.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (14)

buff-on-1-0-0-128, consumable-bought-on-1-0-0-128, critical-strike-on-1-0-0-128, damage-dealt-on-1-0-0-128, damage-taken-on-1-0-0-128, death-assist-on-1-0-0-128, died-on-1-0-0-128, gold-earned-on-1-0-0-128, gold-spent-on-1-0-0-128, heal-cast-on-1-0-0-128, heal-on-1-0-0-128, item-bought-on-1-0-0-128, killing-spree-on-1-0-0-128, one-on-1-0-0-128

In 1.0.0.129

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

FieldTypePresent whenWhat it is
eventu8Which event, from 0 to 101, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 67 itemBought, 68 surrenderVoteStarted, 69 surrenderVoteCast, 70 surrenderAlreadyVoted, 71 surrenderCountdown, 72 surrenderFailed, 73 surrenderTooEarly, 74 surrenderAgreed, 75 surrenderVoteSpam, 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 81 startNoticeThree, 82 startNoticeFour, 83 startNoticeFive, 84 alert, 85 scoreboardOpened, 88 pointANeutralized, 89 pointBNeutralized, 90 pointCNeutralized, 91 pointDNeutralized, 92 pointENeutralized, 93 pointACaptured, 94 pointBCaptured, 95 pointCCaptured, 96 pointDCaptured, 97 pointECaptured.
subjectu32The unit the event is about.
damagerecordevent = 10 or 11How 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 = 18How much gold, as shown.
valueu32event = 20 or 67What it carries is not recorded for this range; a client does not show it.
criticalf32event = 21The critical strike’s damage, as shown.
spreeu32event = 39How many kills in a row, as shown.
earnedrecordevent = 19Gold earned.
earned.goldf32How much gold, as shown.
healrecordevent = 36 or 37How 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 = 38The 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 = 53What 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 (14)

buff-on-1-0-0-129, consumable-bought-on-1-0-0-129, critical-strike-on-1-0-0-129, damage-dealt-on-1-0-0-129, damage-taken-on-1-0-0-129, death-assist-on-1-0-0-129, died-on-1-0-0-129, gold-earned-on-1-0-0-129, gold-spent-on-1-0-0-129, heal-cast-on-1-0-0-129, heal-on-1-0-0-129, item-bought-on-1-0-0-129, killing-spree-on-1-0-0-129, one-on-1-0-0-129

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).

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).

Where a VoiceEvent asks for an answer, a client sends VoiceEventDone once it has played the event.

In 1.0.0.25–1.0.0.96

A client never answers a VoiceEvent it cannot play.

In 1.0.0.126–1.0.0.129

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 every range of this book

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.
Vectors (2)

another-on-1-0-0-126, one-on-1-0-0-126

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.25–1.0.0.95

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

A client also sends it from the alert button on its HUD, naming its champion’s own place and writing nothing in particular where the target goes.

FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged, 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.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-87

In 1.0.0.96–1.0.0.118

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

BuildsCommand
1.0.0.96–1.0.0.10925
1.0.0.110–1.0.0.11685
1.0.0.117–1.0.0.11886
FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged, 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.
Vectors (3)

one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117

In 1.0.0.119–1.0.0.122

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, 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.
unsetbytes, 1A client writes nothing in particular here.
Vectors (2)

one-on-1-0-0-119, one-on-1-0-0-120

In 1.0.0.123

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, 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.
how1-byte bitsWhich mark it is.
how.kindbit 0 to 3Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack.
how.unsetbit 4 to 7A client writes nothing in particular here.
Vectors (1)

here-on-1-0-0-123

In 1.0.0.124–1.0.0.127

Command 90 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, 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. It writes only the low four bits; the high four carry no meaning. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (1)

on-open-ground-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 90 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.

PingPlaced

What a server sends to show a ping on the map to everyone meant to see it.

Definition.

In 1.0.0.25–1.0.0.103

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

Where target is a unit it holds, of a kind that takes notices, a client shows a notice for it, but not again for the next ping on the same target; it keeps the last target of each side apart. 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.
atYf32Its height, in world units. A client does not use it to place the ping.
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.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-103

In 1.0.0.104–1.0.0.118

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

BuildsCommand
1.0.0.104–1.0.0.10926
1.0.0.110–1.0.0.11666
1.0.0.117–1.0.0.11867

A client drops the message where the player who placed it is muted. Where target is a unit it can name, it shows a notice for it. 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.
atYf32Its height, in world units. A client does not use it to place the ping.
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.playSoundbit 0Set where the client plays a sound for it.
how.showInChatbit 1Set where the client writes a line about it.
how.unusedbit 2 to 7Unused; a server writes zero.
Vectors (3)

one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117

In 1.0.0.119–1.0.0.122

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

A client drops the message where the player who placed it is muted. Where target is a unit it can name, it shows a notice for it. 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.
atYf32Its height, in world units. A client does not use it to place the ping.
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.unusedLowbit 0 to 3A client reads nothing here. A server writes zero.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.unusedbit 6 to 7Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-122

In 1.0.0.123–1.0.0.127

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

BuildsCommand
1.0.0.12368
1.0.0.124–1.0.0.12770

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.
atYf32Its height, in world units. A client does not use it to place the ping.
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. A client plays one only where category is 0 or 1.
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-123, on-open-ground-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

PlayEmote

What a client sends to play an emote. The header names the sender’s champion.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.10910
1.0.0.110–1.0.0.11672
1.0.0.117–1.0.0.11873
1.0.0.119–1.0.0.12374
1.0.0.124–1.0.0.12776
FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list. A client sends nothing where no emote matches.
Vectors (6)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; one past the list plays nothing.

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.25–1.0.0.109

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

FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; any value at or past the end of the list plays nothing.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110–1.0.0.11668
1.0.0.117–1.0.0.11869
1.0.0.119–1.0.0.12370
FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; one past the list plays nothing.
Vectors (3)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.129

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-126

VoiceEvent

What a server sends to play a voice event. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.97

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

BuildsCommand
1.0.0.25–1.0.0.62131
1.0.0.63–1.0.0.73134
1.0.0.74–1.0.0.81135
1.0.0.82–1.0.0.96139
1.0.0.97140
FieldTypeWhat it is
eventtext, 64 bytesThe event’s name. A client sends no VoiceEventDone for a name that names no event it holds.
callbacku8Bit 0 set asks the client to send VoiceEventDone once the event has finished playing.
Vectors (6)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97

In 1.0.0.98–1.0.0.103

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

BuildsCommand
1.0.0.98–1.0.0.102141
1.0.0.103143
FieldTypeWhat it is
eventtext, 64 bytesThe event’s name. A client sends no VoiceEventDone for a name that names no event it holds.
callbacku8Bit 0 set asks the client to send VoiceEventDone once the event has finished playing. A client sends it at once, whatever this holds, where its audio is not set up.
Vectors (2)

one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.123

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

BuildsCommand
1.0.0.104–1.0.0.106148
1.0.0.107–1.0.0.108149
1.0.0.109150
1.0.0.110118
1.0.0.111–1.0.0.116119
1.0.0.117–1.0.0.118120
1.0.0.119–1.0.0.123121
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.
callbacku8Nonzero 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.
handleu32A number a client returns in VoiceEventDone.
Vectors (7)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
foldertext, 64 bytesThe event’s folder.
eventtext, 64 bytesThe event’s name.
callbacku8Nonzero 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.
handleu32A number a client returns in VoiceEventDone.
Vectors (1)

asking-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.73

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

A client names no event: the message is its header alone. It sends none for an event with an empty name or one it does not know.

No body.

Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

A client names no event: the message is its header alone. It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.

No body.

Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

A client names no event: the message is its header alone. A client sends it only once the event has finished playing; where it cannot find the event, or the name is empty, it sends nothing.

No body.

Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.103

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

BuildsCommand
1.0.0.97168
1.0.0.98–1.0.0.102169
1.0.0.103171

A client names no event: the message is its header alone. It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.

No body.

Vectors (3)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.109

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

BuildsCommand
1.0.0.104–1.0.0.106177
1.0.0.107–1.0.0.108178
1.0.0.109179

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.
Vectors (3)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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.
Vectors (1)

one-on-1-0-0-126

MusicCue

What a server sends to drive the music a client plays.

Definition.

In 1.0.0.124–1.0.0.129

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

BuildsCommand
1.0.0.124227
1.0.0.125228
1.0.0.126–1.0.0.129229
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-124, begin-on-1-0-0-125, one-on-1-0-0-126

VolumeMuted

What a server sends to mute or unmute one kind of sound. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.110

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

BuildsCommand
1.0.0.25–1.0.0.73167
1.0.0.74–1.0.0.81168
1.0.0.82–1.0.0.96172
1.0.0.97173
1.0.0.98–1.0.0.102174
1.0.0.103176
1.0.0.104–1.0.0.106182
1.0.0.107–1.0.0.108183
1.0.0.109184
1.0.0.11040
FieldTypeWhat it is
categoryu8Which kind. A larger value than 6 has no defined effect. 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 (11)

music-on-1-0-0-72, music-on-1-0-0-75, music-on-1-0-0-81, music-on-1-0-0-96, music-on-1-0-0-97, music-on-1-0-0-99, music-on-1-0-0-103, music-on-1-0-0-106, music-on-1-0-0-108, music-on-1-0-0-109, music-on-1-0-0-110

In 1.0.0.111–1.0.0.129

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

BuildsCommand
1.0.0.111–1.0.0.12340
1.0.0.124–1.0.0.12941
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 (2)

music-on-1-0-0-123, music-muted-on-1-0-0-126

FadeSounds

What a server sends to fade a client’s sound effects out. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.73175
1.0.0.74–1.0.0.81176
1.0.0.82–1.0.0.96180
1.0.0.97181
1.0.0.98–1.0.0.102182
1.0.0.103184
1.0.0.104–1.0.0.106190
1.0.0.107–1.0.0.108191
1.0.0.109192
1.0.0.110–1.0.0.11693
1.0.0.117–1.0.0.11894
1.0.0.119–1.0.0.12395
1.0.0.124–1.0.0.12798
FieldTypeWhat it is
timef32How long the fade takes, in seconds on the match clock; a client fades its main sound effects out over that time.
Vectors (14)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-second-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
timef32How long the sounds take to fade; the unit is not recorded.

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.25–1.0.0.109

Command 30 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 text a client sends on a script’s behalf. 1 for one of the client’s own error texts, each distinct text sent once per session.
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 (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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.

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.

In 1.0.0.58–1.0.0.129

A client ignores SurrenderVoteCalled that arrives before its own champion is on the field.

In 1.0.0.126

A client opens no panel for a vote called while the match is paused.

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 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.73158
1.0.0.74–1.0.0.81159
1.0.0.82–1.0.0.96163
1.0.0.97164
1.0.0.98–1.0.0.102165
1.0.0.103167
1.0.0.104–1.0.0.106173
1.0.0.107–1.0.0.108174
1.0.0.109175
1.0.0.110199
1.0.0.111–1.0.0.116200
1.0.0.117–1.0.0.118201
1.0.0.119–1.0.0.122202
1.0.0.123203
1.0.0.124208
1.0.0.125209
1.0.0.126–1.0.0.127210

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 with a player of its own announces that 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 (18)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, opening-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

SurrenderVote

What a client sends to vote on surrendering. The header names no object: it carries zero.

Definition.

In 1.0.0.25–1.0.0.73

Command 157 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 as they happen to be; a server ignores them.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

Command 158 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. A client sends it clear.
how.unusedbit 1 to 7Always clear.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

Command 162 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.
how.unusedbit 1 to 7Unused; a client leaves them as they happen to be, and a server ignores them.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97163
1.0.0.98–1.0.0.102164
1.0.0.103166
1.0.0.104–1.0.0.106172
1.0.0.107–1.0.0.108173
1.0.0.109174
1.0.0.110163
1.0.0.111–1.0.0.116164
1.0.0.117–1.0.0.118165
1.0.0.119–1.0.0.123166
1.0.0.124170
1.0.0.125171

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 (12)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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)

yes-on-1-0-0-126

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.25–1.0.0.73

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

A client ignores the message unless its interface and its own champion both exist.

FieldTypeWhat it is
reasonu32Why the vote stands where it does. A client acts on 0 to 4 and ignores the message for any other value; 0 resets the vote whatever side holds, and 1 resets it only where side is the client’s own.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

FieldTypeWhat it is
reasonu32Why the vote stands where it does. A client acts on 0 to 4 and ignores the message for any other value; 1 resets the vote only where side is the client’s own. A client with no player of its own, as while spectating, shows only 0 and 4.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
reasonu32Why the vote stands where it does. A client acts on 0 to 4 and ignores the message for any other value; 1 resets the vote only where side is the client’s own. A client with no champion of its own, as while spectating, ignores the whole message.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.127

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

BuildsCommand
1.0.0.97166
1.0.0.98–1.0.0.102167
1.0.0.103169
1.0.0.104–1.0.0.106175
1.0.0.107–1.0.0.108176
1.0.0.109177
1.0.0.110164
1.0.0.111–1.0.0.116165
1.0.0.117–1.0.0.118166
1.0.0.119–1.0.0.123167
1.0.0.124171
1.0.0.125172
1.0.0.126–1.0.0.127173
FieldTypeWhat it is
reasonu32Why the vote stands where it does. A client acts on 0 to 4 and ignores the message for any other value; 1 resets the vote only where side is the client’s own. A client with no player of its own, as while spectating, shows only 0 and 4.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.
Vectors (13)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
reasonu32Why the vote stands where it does.
inFavouru8How many voted for.
againstu8How many voted against.
sideu32Which side.

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.25–1.0.0.119

Camera names one point, the one the view looks at, in place of where the view sits and which way it faces.

In 1.0.0.25–1.0.0.60

A client ignores CameraLockSet that arrives while it holds its camera itself, and answers nothing.

In 1.0.0.96–1.0.0.129

A client keeps a CameraLockSet that arrives while it holds its camera itself, and applies and answers it once the hold ends.

In 1.0.0.96–1.0.0.126

A client takes the lock from the player’s own settings when StartGame arrives, locked where they say nothing, and answers with CameraLock; CameraLockSet changes it for the match without changing those settings.

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 1.0.0.25–1.0.0.73

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

A client sends a new report each time its view moves more than 200 units, at most one every tenth of a second, and sends an unanswered one again after twice its ping, in seconds, plus 1/30 of a second. While its view is locked it sends none.

FieldTypeWhat it is
lookAtXf32The point the view looks at, along one ground axis: where it stands, plus 2000 units the way it faces.
lookAtYf32Its height, taken the same way.
lookAtZf32Along the other ground axis, taken the same way.
clientIdu32The client id the sender holds: that of the client the view belongs to.
syncIdu8Names this report, counting up as the view moves and wrapping after 255. A client sends the report again until a server returns the name.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.119

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

BuildsCommand
1.0.0.74–1.0.0.8160
1.0.0.82–1.0.0.9663
1.0.0.97–1.0.0.10264
1.0.0.103–1.0.0.10665
1.0.0.107–1.0.0.10966
1.0.0.110–1.0.0.11947
FieldTypeWhat it is
lookAtXf32The point the view looks at, along one ground axis: where it stands, plus 2000 units the way it faces.
lookAtYf32Its height, taken the same way.
lookAtZf32Along the other ground axis, taken the same way.
clientIdu32The client id the sender holds: that 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 (7)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-119

In 1.0.0.120–1.0.0.125

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

BuildsCommand
1.0.0.120–1.0.0.12347
1.0.0.124–1.0.0.12548
FieldTypeWhat it is
positionXf32Where the view stands, along one ground axis.
positionYf32Its height.
positionZf32Along the other ground axis.
directionXf32
directionYf32
directionZf32
clientIdu32The client id the sender holds: that 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 (2)

one-on-1-0-0-123, one-on-1-0-0-124

In 1.0.0.126–1.0.0.127

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

A client sends no report while the camera is locked. It sends a new report, with the next syncId, only where at least 0.1 seconds have passed since the last and the view has moved more than 200 units or turned; it sends a report that goes unanswered again after a delay that follows the round trip.

FieldTypeWhat it is
positionXf32Where the view stands, along one ground axis.
positionYf32Its height.
positionZf32Along the other ground axis.
directionXf32
directionYf32
directionZf32
clientIdu32The client id the sender holds: that 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-126

In 1.0.0.128–1.0.0.129

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

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.

SelectObject

What a client sends as the object it has selected changes. The header names no object: it carries zero.

Definition.

In 1.0.0.25–1.0.0.103

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

BuildsCommand
1.0.0.25–1.0.0.7361
1.0.0.74–1.0.0.8162
1.0.0.82–1.0.0.9665
1.0.0.97–1.0.0.10266
1.0.0.10367
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.
selectedu32A client writes zero here.
Vectors (6)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-103

In 1.0.0.104–1.0.0.129

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

BuildsCommand
1.0.0.104–1.0.0.10667
1.0.0.107–1.0.0.10968
1.0.0.110174
1.0.0.111–1.0.0.116175
1.0.0.117–1.0.0.118176
1.0.0.119–1.0.0.123177
1.0.0.124181
1.0.0.125182
1.0.0.126–1.0.0.129183
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-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.57

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

A client sends it on each CameraLockSet with state as that message carried it, all eight bits included, and also as its player sets the lock or the game forces a lock or lifts one. While a forced lock holds, a CameraLockSet or player setting is dropped. As a forced lock begins, a client keeps the state then in force and sends it as the lock lifts; a second forced lock during the first sends its own state and keeps nothing new.

FieldTypeWhat it is
state1-byte bits
state.lockedbit 0Set while the view follows a unit.
state.unusedbit 1 to 7As CameraLockSet carried them; zero in a report the client makes on its own.
clientIdu32The client id of the client locking. Zero is a client id like any other rather than an absence.

In 1.0.0.58–1.0.0.73

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

A client sends it on each CameraLockSet with state as that message carried it, all eight bits included, and also as its player sets the lock, as the game forces the view free and as that forcing lifts. A forced free view is sent at once, with state zero. While it holds, a CameraLockSet or player setting is dropped; as it lifts, a client sends the state in force just before it began. Where the client’s own champion is made while the view is locked, a client sends state 1 again.

FieldTypeWhat it is
state1-byte bits
state.lockedbit 0Set while the view follows a unit.
state.unusedbit 1 to 7As CameraLockSet carried them; zero in a report the client makes on its own.
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-72

In 1.0.0.74–1.0.0.127

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

BuildsCommand
1.0.0.74–1.0.0.8161
1.0.0.82–1.0.0.9664
1.0.0.97–1.0.0.10265
1.0.0.103–1.0.0.10666
1.0.0.107–1.0.0.10967
1.0.0.110127
1.0.0.111–1.0.0.116128
1.0.0.117–1.0.0.118129
1.0.0.119–1.0.0.123130
1.0.0.124–1.0.0.127134

A client sends it on each CameraLockSet with state as that message carried it, all eight bits included, and also as its player sets the lock or the game forces a lock or lifts one. While a forced lock holds, a CameraLockSet or player setting is kept and sent only as that lock lifts.

FieldTypeWhat it is
state1-byte bits
state.lockedbit 0Set while the view follows a unit.
state.unusedbit 1 to 7As CameraLockSet carried them; zero in a report the client makes on its own.
clientIdu32The client id of the client locking. Zero is a client id like any other rather than an absence.
Vectors (11)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.25–1.0.0.62

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

Only the client whose own champion the header names moves its view; others, and every client where the header names no champion, take the message and do nothing.

FieldTypeWhat it is
how1-byte bitsHow the view moves.
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. A client ignores the message where it is zero or less.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.123

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

BuildsCommand
1.0.0.63–1.0.0.73133
1.0.0.74–1.0.0.81134
1.0.0.82–1.0.0.96138
1.0.0.97139
1.0.0.98–1.0.0.102140
1.0.0.103–1.0.0.106142
1.0.0.107–1.0.0.108143
1.0.0.109144
1.0.0.110–1.0.0.12338

Only the client whose own champion the header names moves its view; others, and every client where the header names no champion, take the message and do nothing.

FieldTypeWhat it is
how1-byte bitsHow the view moves.
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 (10)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

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 bitsHow the view moves. A client ignores it where the header carries zero.
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-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.62

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

A client answers at once with CameraLock, returning the state byte as it arrived. While the game forces the view free, a client ignores the message and sends nothing for it, then or later.

FieldTypeWhat it is
lockedu8Nonzero to lock the camera, zero to free it; a client tests the whole byte, so any set bit locks it.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.127

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

BuildsCommand
1.0.0.63–1.0.0.73130
1.0.0.74–1.0.0.81131
1.0.0.82–1.0.0.96135
1.0.0.97136
1.0.0.98–1.0.0.102137
1.0.0.103–1.0.0.106139
1.0.0.107–1.0.0.108140
1.0.0.109141
1.0.0.110117
1.0.0.111–1.0.0.116118
1.0.0.117–1.0.0.118119
1.0.0.119–1.0.0.123120
1.0.0.124–1.0.0.127124

A client answers at once with CameraLock, returning the state byte as it arrived. While the game holds a forced lock, it keeps the byte and sends it only as that lock lifts.

FieldTypeWhat it is
lockedu8Nonzero to lock the camera, zero to free it; a client tests the whole byte, so any set bit locks it.
Vectors (14)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

CameraBehaviour

What a server sends to set a point a champion’s player’s view keeps to. The header names the champion.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.6294
1.0.0.63–1.0.0.73100
1.0.0.74–1.0.0.81101
1.0.0.82–1.0.0.96105
1.0.0.97–1.0.0.102106
1.0.0.103–1.0.0.106108
1.0.0.107–1.0.0.108109
1.0.0.109110
1.0.0.110111
1.0.0.111–1.0.0.116112
1.0.0.117–1.0.0.118113
1.0.0.119–1.0.0.123114
1.0.0.124–1.0.0.127118

Only the client whose own champion the header names applies it.

FieldTypeWhat it is
xf32Along one ground axis, in world units.
yf32In height, in world units.
zf32Along the other ground axis, in world units.
Vectors (14)

one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
xf32Along one ground axis, in world units.
yf32In height, in world units.
zf32Along the other ground axis, in world units.

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.25–1.0.0.73

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

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.
Vectors (1)

camera-locking-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

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.
Vectors (2)

camera-locking-on-1-0-0-75, camera-locking-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

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.
Vectors (1)

camera-locking-on-1-0-0-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97153
1.0.0.98–1.0.0.102154
1.0.0.103156
1.0.0.104–1.0.0.106161
1.0.0.107–1.0.0.108162
1.0.0.109163
1.0.0.110130
1.0.0.111–1.0.0.116131
1.0.0.117–1.0.0.118132
1.0.0.119–1.0.0.123133

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.
Vectors (10)

camera-locking-on-1-0-0-97, camera-locking-on-1-0-0-99, camera-locking-on-1-0-0-103, camera-locking-on-1-0-0-106, camera-locking-on-1-0-0-108, camera-locking-on-1-0-0-109, camera-locking-on-1-0-0-110, camera-locking-on-1-0-0-116, camera-locking-on-1-0-0-117, camera-locking-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

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.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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.25–1.0.0.81

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

BuildsCommand
1.0.0.25–1.0.0.62124
1.0.0.63–1.0.0.73127
1.0.0.74–1.0.0.81128

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-61, shop-on-1-0-0-72, shop-on-1-0-0-75, shop-on-1-0-0-81

In 1.0.0.82–1.0.0.96

Command 132 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-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.102133
1.0.0.103–1.0.0.106135
1.0.0.107–1.0.0.108136
1.0.0.109137
1.0.0.110154
1.0.0.111–1.0.0.116155
1.0.0.117–1.0.0.118156
1.0.0.119–1.0.0.123157
1.0.0.124161
1.0.0.125162

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 (10)

shop-on-1-0-0-99, shop-on-1-0-0-106, shop-on-1-0-0-108, shop-on-1-0-0-109, shop-on-1-0-0-110, shop-on-1-0-0-116, shop-on-1-0-0-117, shop-on-1-0-0-123, shop-on-1-0-0-124, shop-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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)

one-on-1-0-0-126

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.110–1.0.0.125

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

BuildsCommand
1.0.0.110213
1.0.0.111–1.0.0.116214
1.0.0.117–1.0.0.118215
1.0.0.119–1.0.0.122216
1.0.0.123217
1.0.0.124223
1.0.0.125224

A client does nothing unless unit is a unit it holds that can be attacked.

FieldTypeWhat it is
unitu32The unit this is about. A client ignores the message where it does not hold the unit or the unit has no minimap icon.
icontext, 64 bytesThe name the client loads the mark under, ended by a zero byte. A client changes nothing where it is the mark already drawn.
Vectors (7)

one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.127

Command 225 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. A client ignores the message where it does not hold the unit.
icontext, 64 bytesThe name the client loads the mark under, ended by a zero byte. A client changes nothing where it is the mark already drawn.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 225 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.
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.

FloatingText

What a server sends to show text floating over a unit. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.57

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

FieldTypeWhat it is
unusedu32Unused; a server writes zero.
delayf32Unused; a server writes zero.
sloti32Where the text goes. 0 floats it over the unit while the unit is in the client’s own view, where the player’s floating-text settings allow. 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 show the text on screen as a message for ten seconds, whatever slot holds, and float an error notice of its own over the unit, under the same view and settings as slot 0; it does nothing else with the 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.

In 1.0.0.58–1.0.0.109

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

FieldTypeWhat it is
unusedu32Unused; a server writes zero.
delayf32Unused; a server writes zero.
sloti32Where the text goes. 0 floats it over the unit while the unit is in the client’s own view, where the player’s floating-text settings allow. 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 show the text on screen as a message for ten seconds, whatever slot holds, and do nothing else with the 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. For slot 0 and for the on-screen message, a client shows a text that names a key into its own text as that key’s text, and any other text as it is.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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 show the text on screen as a message for ten seconds, whatever slot holds, and do nothing else with the 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.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.124–1.0.0.127

Command 28 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.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.73145
1.0.0.74–1.0.0.81146
1.0.0.82–1.0.0.96150
1.0.0.97151
1.0.0.98–1.0.0.102152
1.0.0.103154
1.0.0.104–1.0.0.106159
1.0.0.107–1.0.0.108160
1.0.0.109161
1.0.0.110183
1.0.0.111–1.0.0.116184
1.0.0.117–1.0.0.118185
1.0.0.119–1.0.0.123186
1.0.0.124190
1.0.0.125191
1.0.0.126–1.0.0.129192

No body.

Vectors (17)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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 1.0.0.25–1.0.0.107

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

BuildsCommand
1.0.0.25–1.0.0.73171
1.0.0.74–1.0.0.81172
1.0.0.82–1.0.0.96176
1.0.0.97177
1.0.0.98–1.0.0.102178
1.0.0.103180
1.0.0.104–1.0.0.106186
1.0.0.107187

A client also opens its chat entry, as the chat key does, where chat is open to it.

No body.

Vectors (9)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-107

In 1.0.0.108–1.0.0.129

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

BuildsCommand
1.0.0.108187
1.0.0.109188
1.0.0.110187
1.0.0.111–1.0.0.116188
1.0.0.117–1.0.0.118189
1.0.0.119–1.0.0.123190
1.0.0.124194
1.0.0.125195
1.0.0.126–1.0.0.129196

No body.

Vectors (9)

one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, empty-on-1-0-0-126

Announcement

What a server sends to show one of a client’s own fixed announcements for five seconds.

Definition.

In 1.0.0.25–1.0.0.73

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

FieldTypeWhat it is
announcementu32Which of the client’s announcements, -1 to 27. The text of each is the client’s own and is not recorded here. -1 shows a text that is none of the 28; 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-72

In 1.0.0.74–1.0.0.81

Command 67 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; 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-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
announcementu32Which of the client’s announcements, -1 to 27. The text of each is the client’s own and is not recorded here. -1 shows a text that is none of the 28, and 5, 6, 20, 21 and 25 show only a placeholder; 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-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97–1.0.0.10271
1.0.0.103–1.0.0.10672
1.0.0.107–1.0.0.10973
1.0.0.110126
1.0.0.111–1.0.0.116127
1.0.0.117–1.0.0.118128
1.0.0.119–1.0.0.123129
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 (7)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123

In 1.0.0.124–1.0.0.129

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 (2)

naming-a-unit-on-1-0-0-126, one-on-1-0-0-126

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 1.0.0.25–1.0.0.62

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

FieldTypeWhat it is
syncIdu8The name the report carried. A client sends the report again until this comes back. It takes a value only where it is newer than the last it took, counting with wrap within 128 steps, and ignores any other.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.123

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

BuildsCommand
1.0.0.63–1.0.0.73113
1.0.0.74–1.0.0.81114
1.0.0.82–1.0.0.96118
1.0.0.97–1.0.0.102119
1.0.0.103–1.0.0.106121
1.0.0.107–1.0.0.108122
1.0.0.109123
1.0.0.110–1.0.0.12345
FieldTypeWhat it is
syncIdu8The name the report carried. A client sends the report again until this comes back.
Vectors (9)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
syncIdu8The name the report carried. A client takes it only where it is at most 127 past the last name it took, counting round past 255, and sends the report again until it does.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
syncIdu8The name the report carried. A client sends the report again until this comes back.

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.

In 1.0.0.58–1.0.0.129

A client takes TutorialChatLine in any match.

In 1.0.0.58–1.0.0.96

A client takes TutorialPopup 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.25–1.0.0.110

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

BuildsCommand
1.0.0.25–1.0.0.73155
1.0.0.74–1.0.0.81156
1.0.0.82–1.0.0.96160
1.0.0.97161
1.0.0.98–1.0.0.102162
1.0.0.103164
1.0.0.104–1.0.0.106170
1.0.0.107–1.0.0.108171
1.0.0.109172
1.0.0.11063
FieldTypeWhat it is
elementu8What to light up on the main controls, 0 to 8; a larger value has no defined effect. 4, 5 and 6 each name a part of a second panel; which part each value names is not recorded. 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 for 4, 5 or 6.
Vectors (11)

spell-on-1-0-0-72, spell-on-1-0-0-75, spell-on-1-0-0-81, spell-on-1-0-0-96, spell-on-1-0-0-97, spell-on-1-0-0-99, spell-on-1-0-0-103, spell-on-1-0-0-106, spell-on-1-0-0-108, spell-on-1-0-0-109, spell-on-1-0-0-110

In 1.0.0.111–1.0.0.123

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

BuildsCommand
1.0.0.111–1.0.0.11663
1.0.0.117–1.0.0.11864
1.0.0.119–1.0.0.12365
FieldTypeWhat it is
elementu8What to light up on the main controls, 0 to 8; a client ignores a larger value. 4, 5 and 6 each name a part of a second panel; which part each value names is not recorded. 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 for 4, 5 or 6.
Vectors (3)

spell-on-1-0-0-116, spell-on-1-0-0-117, spell-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
elementu8What to light up on the main controls, 0 to 8; a client ignores a larger value. 4, 5 and 6 each name a part of a second panel; which part each value names is not recorded. 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 for 3 to 8.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

HudHighlightToggled

What a server sends to light up part of the screen, or to put it out. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.81

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

BuildsCommand
1.0.0.25–1.0.0.73164
1.0.0.74–1.0.0.81165
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.
secondu8A third value where part is 2; a server writes zero otherwise.
state1-byte bitsWhether it is lit.
state.onbit 0Set to light it up, clear to put it out.
state.unusedbit 1 to 7A client ignores these bits; a server writes zero.
Vectors (3)

hud-on-1-0-0-72, hud-on-1-0-0-75, hud-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

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 has no defined effect.
numberu8Which slot, as in HudHighlighted.
secondu8A third value where part is 2; a server writes zero otherwise.
state1-byte bitsWhether it is lit.
state.onbit 0Set to light it up, clear to put it out.
state.unusedbit 1 to 7A client ignores these bits; a server writes zero.
Vectors (1)

hud-on-1-0-0-96

In 1.0.0.97–1.0.0.123

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

BuildsCommand
1.0.0.97170
1.0.0.98–1.0.0.102171
1.0.0.103173
1.0.0.104–1.0.0.106179
1.0.0.107–1.0.0.108180
1.0.0.109181
1.0.0.110–1.0.0.11678
1.0.0.117–1.0.0.11879
1.0.0.119–1.0.0.12380
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.
secondu8A third value where part is 2; a server writes zero otherwise.
state1-byte bitsWhether it is lit.
state.onbit 0Set to light it up, clear to put it out.
state.unusedbit 1 to 7A client ignores these bits; a server writes zero.
Vectors (9)

hud-on-1-0-0-97, hud-on-1-0-0-99, hud-on-1-0-0-103, hud-on-1-0-0-106, hud-on-1-0-0-108, hud-on-1-0-0-109, hud-on-1-0-0-116, hud-on-1-0-0-117, hud-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

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 client checks it against no limit: a value beyond those named has no defined effect.
numberu8Which slot, as in HudHighlighted.
secondu8A third value where part is 2; a server writes zero otherwise.
state1-byte bitsWhether it is lit.
state.onbit 0Set to light it up, clear to put it out.
state.unusedbit 1 to 7A client ignores these bits; a server writes zero.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.104–1.0.0.110

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

BuildsCommand
1.0.0.104–1.0.0.106146
1.0.0.107–1.0.0.108147
1.0.0.109148
1.0.0.110200
FieldTypeWhat it is
actionu8What to do. A client does nothing for 2 and 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 (4)

show-on-1-0-0-106, show-on-1-0-0-108, show-on-1-0-0-109, show-on-1-0-0-110

In 1.0.0.111–1.0.0.129

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

BuildsCommand
1.0.0.111–1.0.0.116201
1.0.0.117–1.0.0.118202
1.0.0.119–1.0.0.122203
1.0.0.123204
1.0.0.124209
1.0.0.125210
1.0.0.126–1.0.0.129211
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 (7)

show-on-1-0-0-116, show-on-1-0-0-117, show-on-1-0-0-122, show-on-1-0-0-123, show-on-1-0-0-124, show-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.73141
1.0.0.74–1.0.0.81142
1.0.0.82–1.0.0.96146
1.0.0.97147
1.0.0.98–1.0.0.102148
1.0.0.103150
1.0.0.104–1.0.0.106155
1.0.0.107–1.0.0.108156
1.0.0.109157
1.0.0.110–1.0.0.11687
1.0.0.117–1.0.0.11888
1.0.0.119–1.0.0.12389
1.0.0.124–1.0.0.12992
FieldTypeWhat it is
unitu32The unit: one that can be damaged.
Vectors (14)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

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.25–1.0.0.73142
1.0.0.74–1.0.0.81143
1.0.0.82–1.0.0.96147
1.0.0.97148
1.0.0.98–1.0.0.102149
1.0.0.103151
1.0.0.104–1.0.0.106156
1.0.0.107–1.0.0.108157
1.0.0.109158
1.0.0.110179
1.0.0.111–1.0.0.116180
1.0.0.117–1.0.0.118181
1.0.0.119–1.0.0.123182
1.0.0.124186
1.0.0.125187
1.0.0.126–1.0.0.129188
FieldTypeWhat it is
unitu32The unit. Where it has no light, nothing happens.
Vectors (17)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

MinimapHighlighted

What a server sends to make part of the minimap blink, as a tutorial does.

Definition.

In 1.0.0.25–1.0.0.73

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

FieldTypeWhat it is
elementu8Which part of the minimap blinks; a server sends 0, its camera button. A client acts only once it knows its own champion, and does not check the value: any other has no defined effect.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

FieldTypeWhat it is
elementu8Which part of the minimap blinks. A client acts on 0 alone, its camera button, and only once it knows its own champion; it ignores any other value.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
elementu8Which part of the minimap blinks; a server sends 0, its camera button. A client acts only once it knows its own champion, and does not check the value: any other has no defined effect.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.127

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

BuildsCommand
1.0.0.97169
1.0.0.98–1.0.0.102170
1.0.0.103172
1.0.0.104–1.0.0.106178
1.0.0.107–1.0.0.108179
1.0.0.109180
1.0.0.110–1.0.0.12720
FieldTypeWhat it is
elementu8Which part of the minimap blinks. A client acts on 0 alone, its camera button, and only once it knows its own champion; it ignores any other value.
Vectors (7)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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.

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.25–1.0.0.110

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

BuildsCommand
1.0.0.25–1.0.0.73156
1.0.0.74–1.0.0.81157
1.0.0.82–1.0.0.96161
1.0.0.97162
1.0.0.98–1.0.0.102163
1.0.0.103165
1.0.0.104–1.0.0.106171
1.0.0.107–1.0.0.108172
1.0.0.109–1.0.0.110173
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 larger value than 4 has no defined effect.
numberu8Which of the element’s entries.
secondu8For the shop’s element 3, which item within the category; a client reads nothing here otherwise.
Vectors (10)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-110

In 1.0.0.111–1.0.0.129

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

BuildsCommand
1.0.0.111–1.0.0.116174
1.0.0.117–1.0.0.118175
1.0.0.119–1.0.0.123176
1.0.0.124180
1.0.0.125181
1.0.0.126–1.0.0.129182
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 (5)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

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 1.0.0.104–1.0.0.129

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

BuildsCommand
1.0.0.104–1.0.0.106145
1.0.0.107–1.0.0.108146
1.0.0.109147
1.0.0.110–1.0.0.11684
1.0.0.117–1.0.0.11885
1.0.0.119–1.0.0.12386
1.0.0.124–1.0.0.12988
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 (7)

one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

TipEvent

What a client sends about a tip it has shown or dismissed.

Definition.

In 1.0.0.104–1.0.0.125

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

BuildsCommand
1.0.0.104–1.0.0.106147
1.0.0.107–1.0.0.108148
1.0.0.109149
1.0.0.110106
1.0.0.111–1.0.0.116107
1.0.0.117–1.0.0.118108
1.0.0.119–1.0.0.123109
1.0.0.124–1.0.0.125112
FieldTypeWhat it is
whatu8What happened to the tip. Values: 0 clicked, 1 closed.
tipu32Which tip, as TipShown named it.
Vectors (8)

clicked-on-1-0-0-106, clicked-on-1-0-0-108, clicked-on-1-0-0-109, clicked-on-1-0-0-110, clicked-on-1-0-0-116, clicked-on-1-0-0-117, clicked-on-1-0-0-123, clicked-on-1-0-0-124

In 1.0.0.126–1.0.0.129

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)

one-on-1-0-0-126

QuestUpdated

What a server sends to add a quest to the quest tracker, complete it or remove it. The header carries zero.

Definition.

In 1.0.0.104–1.0.0.123

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

BuildsCommand
1.0.0.104–1.0.0.106143
1.0.0.107–1.0.0.108144
1.0.0.109145
1.0.0.110136
1.0.0.111–1.0.0.116137
1.0.0.117–1.0.0.118138
1.0.0.119–1.0.0.123139

The header names a champion; a client takes the message only so.

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.
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 (7)

primary-on-1-0-0-106, primary-on-1-0-0-108, primary-on-1-0-0-109, primary-on-1-0-0-110, primary-on-1-0-0-116, primary-on-1-0-0-117, primary-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124–1.0.0.125143
1.0.0.126–1.0.0.127144
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. 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 (2)

primary-on-1-0-0-125, one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

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.

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 1.0.0.104–1.0.0.129

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

BuildsCommand
1.0.0.104–1.0.0.106144
1.0.0.107–1.0.0.108145
1.0.0.109146
1.0.0.110203
1.0.0.111–1.0.0.116204
1.0.0.117–1.0.0.118205
1.0.0.119–1.0.0.122206
1.0.0.123207
1.0.0.124212
1.0.0.125213
1.0.0.126–1.0.0.129214
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 (11)

enter-on-1-0-0-106, enter-on-1-0-0-108, enter-on-1-0-0-109, enter-on-1-0-0-110, enter-on-1-0-0-116, enter-on-1-0-0-117, enter-on-1-0-0-122, enter-on-1-0-0-123, enter-on-1-0-0-124, enter-on-1-0-0-125, one-on-1-0-0-126

ObjectiveShown

What a server sends to show the objective panel with a text. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.110

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

BuildsCommand
1.0.0.25–1.0.0.73149
1.0.0.74–1.0.0.81150
1.0.0.82–1.0.0.96154
1.0.0.97155
1.0.0.98–1.0.0.102156
1.0.0.103158
1.0.0.104–1.0.0.106164
1.0.0.107–1.0.0.108165
1.0.0.109166
1.0.0.11056
FieldTypeWhat it is
texttext, ended by a zero byteThe objective, ended by a zero byte.
Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.111–1.0.0.129

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

BuildsCommand
1.0.0.111–1.0.0.11656
1.0.0.117–1.0.0.11857
1.0.0.119–1.0.0.12358
1.0.0.124–1.0.0.12959
FieldTypeWhat it is
texttext, 128 bytesThe objective. The text ends at its first zero byte, which falls within the field.
Vectors (4)

one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-126

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 1.0.0.25–1.0.0.110

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

BuildsCommand
1.0.0.25–1.0.0.73151
1.0.0.74–1.0.0.81152
1.0.0.82–1.0.0.96156
1.0.0.97157
1.0.0.98–1.0.0.102158
1.0.0.103160
1.0.0.104–1.0.0.106166
1.0.0.107–1.0.0.108167
1.0.0.109168
1.0.0.11014

A client ignores it where it has no objective panel.

FieldTypeWhat it is
texttext, ended by a zero byteThe objective, ended by a zero byte.
Vectors (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110

In 1.0.0.111–1.0.0.127

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

A client ignores it where it has no objective panel.

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-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
texttext, 128 bytesThe objective. The text ends at its first zero byte, which falls within the field.

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.25–1.0.0.73150
1.0.0.74–1.0.0.81151
1.0.0.82–1.0.0.96155
1.0.0.97156
1.0.0.98–1.0.0.102157
1.0.0.103159
1.0.0.104–1.0.0.106165
1.0.0.107–1.0.0.108166
1.0.0.109167
1.0.0.110161
1.0.0.111–1.0.0.116162
1.0.0.117–1.0.0.118163
1.0.0.119–1.0.0.123164
1.0.0.124168
1.0.0.125169
1.0.0.126–1.0.0.129170

No body.

Vectors (17)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.73

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

A client also sizes the panel to the text and shows it. The box sits at the lower right, at 98.5% of the screen’s width and 85% of its height, less room for the interface.

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-72

In 1.0.0.74–1.0.0.129

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

BuildsCommand
1.0.0.74–1.0.0.81153
1.0.0.82–1.0.0.96157
1.0.0.97158
1.0.0.98–1.0.0.102159
1.0.0.103161
1.0.0.104–1.0.0.106167
1.0.0.107–1.0.0.108168
1.0.0.109169
1.0.0.110159
1.0.0.111–1.0.0.116160
1.0.0.117–1.0.0.118161
1.0.0.119–1.0.0.123162
1.0.0.124166
1.0.0.125167
1.0.0.126–1.0.0.129168

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 (16)

one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.73154
1.0.0.74–1.0.0.81155
1.0.0.82–1.0.0.96159
1.0.0.97160
1.0.0.98–1.0.0.102161
1.0.0.103163
1.0.0.104–1.0.0.106169
1.0.0.107–1.0.0.108170
1.0.0.109171
1.0.0.110176
1.0.0.111–1.0.0.116177
1.0.0.117–1.0.0.118178
1.0.0.119–1.0.0.123179
1.0.0.124183
1.0.0.125184
1.0.0.126–1.0.0.129185
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 (17)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.73153
1.0.0.74–1.0.0.81154
1.0.0.82–1.0.0.96158
1.0.0.97159
1.0.0.98–1.0.0.102160
1.0.0.103162
1.0.0.104–1.0.0.106168
1.0.0.107–1.0.0.108169
1.0.0.109170
1.0.0.110166
1.0.0.111–1.0.0.116167
1.0.0.117–1.0.0.118168
1.0.0.119–1.0.0.123169
1.0.0.124173
1.0.0.125174
1.0.0.126–1.0.0.129175

No body.

Vectors (17)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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

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

BuildsCommand
1.0.0.25–1.0.0.73165
1.0.0.74–1.0.0.81166
1.0.0.82–1.0.0.96170
1.0.0.97171
1.0.0.98–1.0.0.102172
1.0.0.103174
1.0.0.104–1.0.0.106180
1.0.0.107–1.0.0.108181
1.0.0.109182
1.0.0.110–1.0.0.1292
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 (11)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-126

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.25–1.0.0.73143
1.0.0.74–1.0.0.81144
1.0.0.82–1.0.0.96148
1.0.0.97149
1.0.0.98–1.0.0.102150
1.0.0.103152
1.0.0.104–1.0.0.106157
1.0.0.107–1.0.0.108158
1.0.0.109159
1.0.0.110178
1.0.0.111–1.0.0.116179
1.0.0.117–1.0.0.118180
1.0.0.119–1.0.0.123181
1.0.0.124185
1.0.0.125186
1.0.0.126–1.0.0.129187
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 (17)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, one-on-1-0-0-126

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.25–1.0.0.73

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

No body.

Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.81

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

A client also sends it as its player closes a tip in the tutorial.

No body.

Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-81

In 1.0.0.82–1.0.0.96

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

No body.

Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97150
1.0.0.98–1.0.0.102151
1.0.0.103153
1.0.0.104–1.0.0.106158
1.0.0.107–1.0.0.108159
1.0.0.109160
1.0.0.110202
1.0.0.111–1.0.0.116203
1.0.0.117–1.0.0.118204
1.0.0.119–1.0.0.122205
1.0.0.123206
1.0.0.124211
1.0.0.125212

A client also sends it as its player closes a tip in the tutorial.

No body.

Vectors (13)

one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125

In 1.0.0.126–1.0.0.129

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

No body.

Vectors (1)

one-on-1-0-0-126

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.

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.25–1.0.0.57

FieldTypeWhat it is
header2-byte bits
header.pointCountbit 0 to 15How many points the path holds. A client takes none as no path and reads nothing more of the message. It sets no upper bound, and reads a count from 32768 up as negative, which no server sends.
pathrecordEverything the movement carries after its point count.
path.unitu32The unit the path belongs to.
path.pointscount in header.pointCount × recordEvery point of the path, each stated in world units. A client reads them even for a unit it does not hold, and takes each point’s height from the ground.
path.points[].xf32Along one ground axis, in world units.
path.points[].zf32Along the other, in world units.

In 1.0.0.58–1.0.0.60

FieldTypeWhat it is
header2-byte bits
header.pointCountbit 0 to 15How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the message.
pathrecordEverything the movement carries after its point count.
path.unitu32The unit the path belongs to.
path.pointscount in header.pointCount × recordEvery point of the path, each stated in world units. A client reads them even for a unit it does not hold, and takes each point’s height from the ground.
path.points[].xf32Along one ground axis, in world units.
path.points[].zf32Along the other, in world units.

In 1.0.0.61–1.0.0.80

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 30How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the movement.
header.unusedHighbit 31Unused; a client reads nothing here.
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.pointscount in header.pointCount × recordEvery point of the path, each stated in world units. A client reads them even for a unit it does not hold, and takes each point’s height from the ground.
path.points[].xf32Along one ground axis, in world units.
path.points[].zf32Along the other, in world units.

In 1.0.0.81–1.0.0.82

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 30How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the movement.
header.unusedHighbit 31Unused; a client reads nothing here.
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.pointscount in header.pointCount × recordEvery point of the path, each stated whole. A client reads them even for a unit it does not hold.
path.points[].xi16Along one ground axis, in the units Movement gives.
path.points[].zi16Along the other.

In 1.0.0.83–1.0.0.129

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.

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.25–1.0.0.57

FieldTypeWhat it is
header2-byte bits
header.pointCountbit 0 to 15How many points the path holds. A client takes none as no path and reads nothing more of the message. It sets no upper bound, and reads a count from 32768 up as negative, which no server sends.
pathrecordEverything the movement carries after its point count.
path.unitu32The unit the path belongs to.
path.termsSpeedParamsHow the unit is made to travel.
path.pointscount in header.pointCount × recordEvery point of the path, each stated in world units. A client reads them even for a unit it does not hold, and takes each point’s height from the ground.
path.points[].xf32Along one ground axis, in world units.
path.points[].zf32Along the other, in world units.

In 1.0.0.58–1.0.0.60

FieldTypeWhat it is
header2-byte bits
header.pointCountbit 0 to 15How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the message.
pathrecordEverything the movement carries after its point count.
path.unitu32The unit the path belongs to.
path.termsSpeedParamsHow the unit is made to travel.
path.pointscount in header.pointCount × recordEvery point of the path, each stated in world units. A client reads them even for a unit it does not hold, and takes each point’s height from the ground.
path.points[].xf32Along one ground axis, in world units.
path.points[].zf32Along the other, in world units.

In 1.0.0.61–1.0.0.80

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 30How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the movement.
header.unusedHighbit 31Unused; a client reads nothing here.
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.pointscount in header.pointCount × recordEvery point of the path, each stated in world units. A client reads them even for a unit it does not hold, and takes each point’s height from the ground.
path.points[].xf32Along one ground axis, in world units.
path.points[].zf32Along the other, in world units.

In 1.0.0.81–1.0.0.82

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 30How many points the path holds. A client takes none, or more than 2048, as no path and reads nothing more of the movement.
header.unusedHighbit 31Unused; a client reads nothing here.
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.pointscount in header.pointCount × recordEvery point of the path, each stated whole. A client reads them even for a unit it does not hold.
path.points[].xi16Along one ground axis, in the units Movement gives.
path.points[].zi16Along the other.

In 1.0.0.83–1.0.0.129

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.

Particle

One drawn particle: where it sits, what it hangs off, and how far into its run it is.

Definition.

In 1.0.0.25–1.0.0.97

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.
atXf32Where the particle 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.
towardXf32Where the particle is aimed, along one ground axis, in world units.
towardYf32Where it is aimed, in height, in world units.
towardZf32Where it is aimed, along the other ground axis, in world units.
ownerXf32Where the unit that made it stood, along one ground axis, in world units.
ownerYf32Where that unit stood, in height, in world units.
ownerZf32Where that unit stood, along the other ground axis, in world units.
runningForf32How far into its run the particle already is, in seconds.

In 1.0.0.98–1.0.0.129

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.

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.25–1.0.0.57

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; 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.

In 1.0.0.58–1.0.0.129

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.

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 every range of this book

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.

Seat

One place at the match: who holds it, what they brought, and what the client shows for them.

Definition.

In 1.0.0.25–1.0.0.109

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.

In 1.0.0.110–1.0.0.123

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.

In 1.0.0.124–1.0.0.129

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.

SpeedParams

How a unit is made to travel, in place of what a receiving end would otherwise choose for it.

Definition.

In 1.0.0.25–1.0.0.107

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.

In 1.0.0.108–1.0.0.109

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.

In 1.0.0.110

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.
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.
keepFacingu80 to face the way the unit travels, 1 to keep its facing. Values: 0 faceTheWayItGoes, 1 holdItsFacing.

In 1.0.0.111–1.0.0.129

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 1.0.0.25–1.0.0.57

FieldTypeWhat it is
sizeu16How many bytes the casting takes, this field included. Where it differs from the bytes the casting takes, a client still gives the cast its 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, at most 32. A client sets no bound of its own.
hitscount in hitCount × SpellHitThe units the casting hits, each a unit then a one-byte result.
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.
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.unusedbit 2 to 7A client reads nothing here; 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.

In 1.0.0.58–1.0.0.60

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, at most 32. A larger count has no defined effect.
hitscount in hitCount × SpellHitThe units the casting hits, each a unit then a one-byte result.
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.
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.unusedbit 2 to 7A client reads nothing here; 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.

In 1.0.0.61–1.0.0.71

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 × SpellHitThe units the casting hits, each a unit then a one-byte result.
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.unusedbit 2 to 7A client reads nothing here; 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.

In 1.0.0.72–1.0.0.78

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 × SpellHitThe units the casting hits, each a unit then a one-byte result.
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.unusedbit 3 to 7A client reads nothing here; 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.

In 1.0.0.79–1.0.0.118

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 × SpellHitThe units the casting hits, each a unit then a one-byte result.
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.

In 1.0.0.119–1.0.0.129

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 1.0.0.25–1.0.0.118

FieldTypeWhat it is
unitu32The unit hit.
resultu8How the hit landed.

In 1.0.0.119–1.0.0.129

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, AppearanceCleared, AscendedUnit, AttackIndicators, AttackSpeedBounds, BalanceResult, BalanceVote, BalanceVoteAnswer, BalanceVoteRefused, BotKick, BounceMissile, CampMarker, CampOpened, CampTimer, ChampionRemoved, CharacterPreload, ChatAllowance, ContextEmote, CreateFollower, CursorRings, DeathTimer, EffectCounter, EmitterPause, FloatingTextOnMap, FollowerMaster, GameOptions, GroundAttackMode, HoverIndicator, HoverTarget, InhibitorDied, InputLockChanged, InputLocksFlipped, InventorySnapshot, InventorySnapshotOnMap, ItemCharges, ItemSubstitution, LevelCap, MarkerMoved, MinionKillCount, MissileCourse, MissileLaunched, MissileRetarget, MissileSpeed, ParticleEnterTeamSight, PlaceTurret, RegionMoved, ResourceDisplay, ResourceKindChanged, ShopEnabled, ShopUndo, ShopUndoCount, Shutdown, Situation, SoftReconnect, SoundPlayed, SpawnMarker, SpawnTurret, SpellCharge, SpellCharges, SpellCostChanged, SpellRangeChanged, SpellRankLimits, SpellSlotChanged, SpellSlotChangedForOwner, SpellTargeterHidden, SpellTargeterShown, SpellToggled, StreamChunk, StreamChunkRange, StreamMetadata, StreamRequest, SubstitutionCleared, SurrenderAllowed, SurrenderFailed, SystemMessage, ThemeMusic, UnitDiedOnMap, VoiceCommand, ZoomReport.

1.0.0.25–1.0.0.57

Client builds from 1.0.0.25 up to, not including, 1.0.0.58. Patch notes: V1.0.0.32.

Build checkedPassedFailedSkippedCommitDate
1.0.0.251004a6a384b2026-11-04
1.0.0.2810049fcd79a2026-11-04

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AnimationOverrides, CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, ChampionStats, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, ItemUsed, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, SwapItems, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (159)
MessageCommand
AfkWarning145
Announcement66
AppearancePopped91
AppearancePushed90
Attack53
AttackFrom54
Autocast40
BotDebug105
BotState107
BotTargets106
BuildingDied73
BuyItem41
Camera59
CameraAck110
CameraBehaviour94
CameraLock60
CameraLockSet127
CastSpell35
ChainTargets103
CharacterSelected15
Chat0
ClientEvent108
ClientFinished17
ClientReady16
ClientVersion67
ClockConvergence76
ClockReply75
ClockSync74
CloseShop146
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory112
DestroyMissile102
EffectAdded37
EffectCount80
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight57
EnterSight55
Exit115
ExperienceGained28
FaceDirection93
FacePosition93
FadeMinions174
FadeRemoved137
FadeSounds175
FadeTo136
FloatingText30
FogToggled125
GameEnded14
GameSpeed135
GoldGained27
GoldRedirect89
GreyscaleWhenDead170
HudDisabled171
HudHighlighted155
HudHighlightToggled164
InhibitorState65
InputLock147
InputLockToggled124
ItemAdded42
JoinSide100
KillParticle22
LeaveLocalSight58
LeaveSight56
LevelUp47
LoadingProgress113
Loadout83
MapPing25
MatchIdentity111
MinimapHighlighted163
MissileHits161
MissileReport63
MissileState63
MoveCamera130
MovementBounds126
MoveOrder20
NexusIdle173
NexusSkin169
ObjectiveHidden150
ObjectiveReplaced151
ObjectiveShown149
ParticlesCreated21
Path77
PathWithSpeed78
Paused133
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected116
QueryStatus3
QueryStatusAnswer4
Reconnected118
ReconnectedInMatch117
RegionAdded86
RegionAttached85
RegionRemoved84
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication128
Respawned72
Resumed134
ResyncEnded119
Revived71
Roster103
SeatChampion101
SeatLoadProgress114
SeatName102
SelectObject61
ShopHighlighted156
SideTextHidden153
SideTextRefreshed154
SideTextShown152
SpawnEnd12
SpawnFromBarracks49
SpawnPet32
SpawnStart5
SpawnUnit87
SpellCastAnswer36
SpellCooldown33
SpellNameChanged172
SpellNumbers166
SpellTargetingChanged132
SpellUpgraded19
StartGame13
StatTick64
StopAnimation88
StopAttack48
SurrenderStatus160
SurrenderVote157
SurrenderVoteCalled158
SwapItemsAnswer46
TargetHeldChampion70
TargetUnit69
TransientAck129
TutorialChatLine165
TutorialPopup143
TutorialPopupClosed144
TutorialShopOpened148
UnitDied34
UnitHighlighted141
UnitHighlightRemoved142
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync68
VoiceEvent131
VoiceEventDone162
VolumeMuted167
WaypointAck120
WaypointGroup121
WaypointGroupAtSpeed122
WorldEvent168

1.0.0.58–1.0.0.60

Client builds from 1.0.0.58 up to, not including, 1.0.0.61. Patch notes: V1.0.0.58.

Build checkedPassedFailedSkippedCommitDate
1.0.0.581004fb3b94f2026-11-04

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: AnimationOverrides, CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, ChampionStats, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, ItemUsed, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, SwapItems, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (159)
MessageCommand
AfkWarning145
Announcement66
AppearancePopped91
AppearancePushed90
Attack53
AttackFrom54
Autocast40
BotDebug105
BotState107
BotTargets106
BuildingDied73
BuyItem41
Camera59
CameraAck110
CameraBehaviour94
CameraLock60
CameraLockSet127
CastSpell35
ChainTargets103
CharacterSelected15
Chat0
ClientEvent108
ClientFinished17
ClientReady16
ClientVersion67
ClockConvergence76
ClockReply75
ClockSync74
CloseShop146
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory112
DestroyMissile102
EffectAdded37
EffectCount80
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight57
EnterSight55
Exit115
ExperienceGained28
FaceDirection93
FacePosition93
FadeMinions174
FadeRemoved137
FadeSounds175
FadeTo136
FloatingText30
FogToggled125
GameEnded14
GameSpeed135
GoldGained27
GoldRedirect89
GreyscaleWhenDead170
HudDisabled171
HudHighlighted155
HudHighlightToggled164
InhibitorState65
InputLock147
InputLockToggled124
ItemAdded42
JoinSide100
KillParticle22
LeaveLocalSight58
LeaveSight56
LevelUp47
LoadingProgress113
Loadout83
MapPing25
MatchIdentity111
MinimapHighlighted163
MissileHits161
MissileReport63
MissileState63
MoveCamera130
MovementBounds126
MoveOrder20
NexusIdle173
NexusSkin169
ObjectiveHidden150
ObjectiveReplaced151
ObjectiveShown149
ParticlesCreated21
Path77
PathWithSpeed78
Paused133
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected116
QueryStatus3
QueryStatusAnswer4
Reconnected118
ReconnectedInMatch117
RegionAdded86
RegionAttached85
RegionRemoved84
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication128
Respawned72
Resumed134
ResyncEnded119
Revived71
Roster103
SeatChampion101
SeatLoadProgress114
SeatName102
SelectObject61
ShopHighlighted156
SideTextHidden153
SideTextRefreshed154
SideTextShown152
SpawnEnd12
SpawnFromBarracks49
SpawnPet32
SpawnStart5
SpawnUnit87
SpellCastAnswer36
SpellCooldown33
SpellNameChanged172
SpellNumbers166
SpellTargetingChanged132
SpellUpgraded19
StartGame13
StatTick64
StopAnimation88
StopAttack48
SurrenderStatus160
SurrenderVote157
SurrenderVoteCalled158
SwapItemsAnswer46
TargetHeldChampion70
TargetUnit69
TransientAck129
TutorialChatLine165
TutorialPopup143
TutorialPopupClosed144
TutorialShopOpened148
UnitDied34
UnitHighlighted141
UnitHighlightRemoved142
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync68
VoiceEvent131
VoiceEventDone162
VolumeMuted167
WaypointAck120
WaypointGroup121
WaypointGroupAtSpeed122
WorldEvent168

Against 1.0.0.25–1.0.0.57

Where a build from 1.0.0.58 up to, not including, 1.0.0.61 differs from one from 1.0.0.25 up to, not including, 1.0.0.58. Anything not named here is the same in both.

Laid out differently

  • PlayAnimation
    • flags has syncPhase at bit 8 in 1.0.0.58–1.0.0.60, and not in 1.0.0.25–1.0.0.57.
    • flags has noFadeIn at bit 9 in 1.0.0.58–1.0.0.60, and not in 1.0.0.25–1.0.0.57.
    • flags.unused is at bit 8, 24 bits wide, in 1.0.0.25–1.0.0.57 and at bit 10, 22 bits wide, in 1.0.0.58–1.0.0.60.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client acts on that Registered alone and ignores every other, so it pairs no other player’s player id with a client id.
  • In the objects chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: Nothing a player sees depends on it.
  • In the objects chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: | Map | Holds | | –– | ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– | | 1, 2 | the six Barracks names, HQ_T1, HQ_T2, orderShop01, chaosShop01, the six 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 |
  • In the ordering chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: 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.
  • In the space chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client has data for maps 1 to 4: | map | Origin of its paths | | —– | —————–– | | 1 | 6991, 7223 | | 2 | 6991, 7223 | | 3 | 7479, 7147 | | 4 | 6710, 6696 |
  • In the values chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A champion’s own book ends at slot 48.
  • In the data chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: Movement takes the origin of a path from the ground.
  • In the data chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: The client has maps 1, 2, 3 and 4.
  • In the data chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: 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.
  • In the data chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: room.dsc lists each object as a .sco, but its file is a binary .SCB, holding its name within it rather than on a Name= line.
  • In the joining chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: 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.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: The loading screen picks the card a SeatLoadProgress updates by the client id it carries, not by its player id.
  • In the joining chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client’s shop does not wait for Loadout.
  • In the vision chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: LeaveLocalSight changes nothing a client shows, whichever unit it names.
  • In the vision chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client draws its fog of war, or the map with no darkening, as FogSet and FogToggled say.
  • In the vision chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: LevelUp shows its effect over any champion the client can see, and does nothing for another unit.
  • In the replication chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: ## A champion | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 0 | 0 | Experience | float | | 0 | 1 | Gold in hand | float | | 0 | 2 | Which slots can be cast from | u32 | | 0 | 3 to 6 | What the spell in slots 0 to 3 costs | float | | 0 | 7 to 14 | What the spell in slots 41 to 48 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 targetable | u32 | | 1 | 4 | Whether it is proof against strikes | u32 | | 1 | 5 | Damage it deals by striking | float | | 1 | 6 | Damage its spells deal before modifiers | float | | 1 | 7 | How often it turns a blow aside | float | | 1 | 8 | How often it strikes critically | float | | 1 | 9 | Armour | float | | 1 | 10 | Spell resistance | float | | 1 | 11 to 12 | How fast health and resource return | float | | 1 | 13 | How far it strikes from | float | | 1 | 14 to 16 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 17 to 18 | Flat and percent reduction of the spell damage it takes | float | | 1 | 19 | A multiplier on how fast it strikes | float | | 1 | 20 | A flat addition to how far it casts | float | | 1 | 21 | A modifier on its cooldowns | float | | 2 | 0 to 1 | Whether it is proof against strikes, then against spells, as group 1 bits 4 and 1 | u32 | | 3 | 0 to 1 | Health and resource as they stand | float | | 3 | 2 to 3 | Health and resource at their greatest | float | | 3 | 4 to 5 | A flat and a percent addition to how far it sees | float | | 3 | 6 | How fast it moves | float | | 3 | 7 | A value whose meaning is not recorded | float | | 3 | 8 | Level | u32 | ## A turret | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 1 | 0 | Damage it deals by striking | float | | 1 | 1 to 2 | Armour and spell resistance | float | | 1 | 3 | A multiplier on how fast it strikes | float | | 1 | 4 to 6 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 7 | How fast health returns | float | | 1 | 8 to 9 | Health as it stands, then at its greatest | float | | 1 | 10 | What the turret is doing, as a set of bits | u32 | | 1 | 11 to 13 | Whether it is proof against spells, proof against all harm, and targetable | u32 | | 1 | 14 | Whether it is proof against strikes | u32 | | 3 | 0 to 1 | A flat and a percent addition to how far it sees | float | | 3 | 2 | How fast it moves | float | | 3 | 3 | A value whose meaning is not recorded | float | ## A minion, and a unit belonging to no side | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 1 | 0 to 1 | Health and resource as they stand | float | | 1 | 2 to 3 | Health and resource at their greatest | float | | 1 | 4 | What the unit is doing, as a set of bits | u32 | | 1 | 5 to 7 | Whether it is proof against spells, proof against all harm, and targetable | u32 | | 1 | 8 | Whether it is proof against strikes | u32 | | 1 | 9 | Damage it deals by striking | float | | 1 | 10 to 11 | Armour and spell resistance | float | | 1 | 12 | A multiplier on how fast it strikes | 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 | How fast health and resource return | float | | 3 | 0 to 1 | A flat and a percent addition to how far it sees | float | | 3 | 2 | How fast it moves | float | | 3 | 3 | A value whose meaning is not recorded | float | ## A building Inhibitors, nexuses and the buildings minions come from share one table.
  • In the match chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: StatTick asks every unit’s stats to advance by that span.
  • In the match chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client that receives GameEnded while still loading leaves at once.
  • In the match chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client sends ReconnectedInMatch right after the registration answer.
  • In the combat chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A death that credits no killer still stops the unit’s cast and attack.
  • In the spells chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client casts nothing for a casting record whose length disagrees with its count of targets.
  • In the shop chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: 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.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client uses the map’s list of the items the shop holds only where a setting of its own turns it on.
  • In the shop chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A purchase a server never answers still plays the sound of buying.
  • In the votes chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client ignores SurrenderVoteCalled that arrives before its own champion is on the field.
  • In the guidance chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client takes TutorialChatLine in any match.
  • In the guidance chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.25–1.0.0.57: A client takes TutorialPopup in any match.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.58–1.0.0.60:

  • AppearancePopped, its layout: “A client may also take away every look laid over the unit on this command; where it does, the unit is left with no look laid over it, whatever entry names.”, where 1.0.0.25–1.0.0.57 has “A client also takes away every look laid over the unit on this command, and does so before it looks for the one entry names, so the unit is left with no look laid over it.”
  • AttackFrom, target: “The unit swung at. A client throws the swing at it, and drops the whole message where it does not know this unit.”, where 1.0.0.25–1.0.0.57 has “The unit swung at. A client throws the swing at it.”
  • AttackFrom, fromX: “Where the swinging unit stands, along one ground axis, in world units. Where the point is on ground a unit can walk, a client drops any path the unit was following and makes the point where its movement ends, at zero speed; where the unit stands more than 400 units from it, measured along the ground alone, the client also places the unit there at once.”, where 1.0.0.25–1.0.0.57 has “Where the swinging unit stands, along one ground axis, in world units. Where the unit stands more than 400 units from this point, measured along the ground alone, a client first moves it there; nearer, the point has no effect.”
  • Autocast, slot: “The slot cast by itself, from -1 to 48. A client takes a value outside that range as it stands. What -1 does is not recorded.”, where 1.0.0.25–1.0.0.57 has “The slot cast by itself, from -1 to 44. A client takes a value outside that range as it stands. What -1 does is not recorded.”
  • CameraLock, its layout: “A client sends it on each CameraLockSet with state as that message carried it, all eight bits included, and also as its player sets the lock, as the game forces the view free and as that forcing lifts. A forced free view is sent at once, with state zero. While it holds, a CameraLockSet or player setting is dropped; as it lifts, a client sends the state in force just before it began. Where the client’s own champion is made while the view is locked, a client sends state 1 again.”, where 1.0.0.25–1.0.0.57 has “A client sends it on each CameraLockSet with state as that message carried it, all eight bits included, and also as its player sets the lock or the game forces a lock or lifts one. While a forced lock holds, a CameraLockSet or player setting is dropped. As a forced lock begins, a client keeps the state then in force and sends it as the lock lifts; a second forced lock during the first sends its own state and keeps nothing new.”
  • CastSpell, how.slot: “Which slot is being cast from, from 0 to 48. A client still sends a larger slot, its low seven bits only.”, where 1.0.0.25–1.0.0.57 has “Which slot is being cast from, from 0 to 44. A client still sends a larger slot, its low seven bits only.”
  • CreateChampion, its layout: “The champion takes the id in champion, not the header’s; a client deletes no object holding that id first. For the client’s own seat, name also becomes its own player’s name.”, where 1.0.0.25–1.0.0.57 has “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.”
  • CreateChampion, spawnIndex: “Where 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 and this index plus one, facing as the map sets for them. A client works out the head count itself. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.”, where 1.0.0.25–1.0.0.57 has “Where 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.”
  • CreateNeutral, healthBonus: “What is added to the health it holds. A client makes the unit with health and maximum health of its base health plus this, then adds this to the maximum twice more, so the maximum ends at base health plus three times this, and not below 0; it lowers current health only where it is above that maximum.”, where 1.0.0.25–1.0.0.57 has “What is added to the health it holds, three times over: the unit’s maximum and current health both end at its base health plus three times this, and not below 0.”
  • DeathHistory, its layout: “A client ignores the whole message where killer is zero. Each entry’s size after source follows from event alone.”, where 1.0.0.25–1.0.0.57 has “A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.”
  • DeathHistory, killer: “The unit credited with the death. A client ignores the whole message where this is zero; a killer it does not hold is shown with no name.”, where 1.0.0.25–1.0.0.57 has “The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit.”
  • DeathHistory, sourceType: “What sort of source the killer was. A client keeps only the low 4 bits, signed: 1 names the killer as a minion, 2 as a turret, and any other value by the killer’s own name.”, where 1.0.0.25–1.0.0.57 has “What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.”
  • DeathHistory, entries[].damage.parent.side: “What it means is not recorded for this range. A client compares it with the target’s side, 0 for side 100 and 1 for side 200, to sort the entry into one of two groups in its death summary.”, where 1.0.0.25–1.0.0.57 has “What it means is not recorded for this range; a server writes zero.”
  • DeathHistory, entries[].damage.parent.category: “A client sums the physical and magical damage of two damageDealt entries where this, sourceKind and both spells match, and, where this is zero, the subjects match too.”, where 1.0.0.25–1.0.0.57 has “A 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.”
  • DeathHistory, entries[].heal.amount: “How much health; a client shows it for healCast alone.”, where 1.0.0.25–1.0.0.57 has “How much health, as shown.”
  • DeathHistory, entries[].heal.script: “The spell or effect, by the number its name gives; a client shows it by name for healCast alone.”, where 1.0.0.25–1.0.0.57 has “The spell or effect, by the number its name gives, shown by name.”
  • DeathHistory, entries[].heal.parentScript: “The spell or effect it came from, by the number its name gives; a client shows it by name for healCast alone.”, where 1.0.0.25–1.0.0.57 has “The spell or effect it came from, by the number its name gives, shown by name.”
  • DeathHistory, entries[].heal.unusedToo: “What it means is not recorded for this range. A client compares its low four bits with the target’s side, as it does damage’s parent side, and takes its next four bits as a category, as it does damage’s parent category.”, where 1.0.0.25–1.0.0.57 has “Unused; a client reads nothing here.”
  • DeathHistory, entries[].effect.script: “The spell or effect, by the number its name gives.”, where 1.0.0.25–1.0.0.57 has “The spell or effect, by the number its name gives, shown by name.”
  • DeathHistory, entries[].effect.parentScript: “The spell or effect it came from, by the number its name gives. With parentSource, it names the group of the death summary the entry goes in.”, where 1.0.0.25–1.0.0.57 has “The spell or effect it came from, by the number its name gives, shown by name.”
  • DeathHistory, entries[].effect.unusedToo: “What it means is not recorded for this range. A client compares its low four bits with the target’s side, as it does damage’s parent side, and takes its next four bits as a category, as it does damage’s parent category.”, where 1.0.0.25–1.0.0.57 has “Unused; a client reads nothing here.”
  • EnterSight, view: “Everything 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. A client ignores it for a turret, and reads nothing of it for any other unit.”, where 1.0.0.25–1.0.0.57 has “Everything 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. For any other unit a server ends the message before it, and a client reads none of the body.”
  • Exit, its layout: “A client sends it once, as it leaves without a result while the match runs: as its player quits from the options menu or closes the window, gives up reconnecting after the connection is lost, or dismisses the notice that it was disconnected for being away. It sends none while the match still loads, none after GameEnded, and none on Shutdown or BotKick.”, where 1.0.0.25–1.0.0.57 has “A client sends it once, as it leaves without a result: as its player confirms quitting or the window is asked to close, or as its player gives up reconnecting after the connection is lost, or loses it where reconnecting is turned off. It sends none after GameEnded, and none on Shutdown or BotKick.”
  • FloatingText, error: “Nonzero has a client show the text on screen as a message for ten seconds, whatever slot holds, and do nothing else with the message.”, where 1.0.0.25–1.0.0.57 has “Nonzero has a client show the text on screen as a message for ten seconds, whatever slot holds, and float an error notice of its own over the unit, under the same view and settings as slot 0; it does nothing else with the message.”
  • FloatingText, text: “The text, ended by a zero byte; the two take at most 1024 bytes. For slot 0 and for the on-screen message, a client shows a text that names a key into its own text as that key’s text, and any other text as it is.”, where 1.0.0.25–1.0.0.57 has “The text, ended by a zero byte; the two take at most 1024 bytes.”
  • GameEnded, its layout: “A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it shows an error and leaves as one abandoning the match. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.”, where 1.0.0.25–1.0.0.57 has “A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. It ends the match on its screen and sends ClientFinished. A client fails where its own player does not yet exist.”
  • InhibitorState, state: “What state the inhibitor takes. For any other value a client shows nothing but keeps it as the inhibitor’s state, so a later 0 or 1 is applied even where it repeats the state before.”, where 1.0.0.25–1.0.0.57 has “What state the inhibitor takes. A client ignores any other value.”
  • Loadout, its layout: “A client sets the champion’s two summoner slots from summoners, a zero leaving its slot as it was, and keeps the runes, the choices and level. It changes nothing in the shop.”, where 1.0.0.25–1.0.0.57 has “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.”
  • MissileState, its layout: “A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. Where the casting names a second unit the client holds, a client aims the casting at that unit’s position; it moves no unit. For a missile that flies straight, casterAt becomes its start point, end and facing are taken as sent, and its velocity is set to carry it from its position to its end at the spell’s own missile speed; for any other missile, a client keeps the velocity as sent, and casterAt, facing, end and bounced have no effect. The header names the unit casting, as the casting inside does.”, where 1.0.0.25–1.0.0.57 has “A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.”
  • MissileState, how.bounced: “Set where the missile has bounced. For a missile that flies straight, a client then sets its end to casterAt raised by the missile’s height above the ground, so it heads back to where the thrower stood; for any other missile it has no effect.”, where 1.0.0.25–1.0.0.57 has “Set where the missile has bounced. A client tests the whole byte, so any set bit counts. For a missile it already holds that flies in a straight line, a client then starts the line again from the caster’s position, raised by the missile’s height above the ground, aiming it from where the missile now is.”
  • SpawnPet, clone: “The unit it copies, or zero. Where a client holds that unit, it links the pet to it and copies its current state: health, resource, their maxima and its other stats; otherwise nothing is linked or copied.”, where 1.0.0.25–1.0.0.57 has “The unit it copies, or zero. For a minion-like pet, a client only links the pet to that unit, where it holds it, and copies nothing of it.”
  • SpawnUnit, its layout: “A client gives the new unit its id and node, deleting nothing first, and fails where it cannot make the unit. Where clone names a unit it holds, a client links the new unit to it as a clone and copies its current state: health, resource, their maxima and its other stats; zero or an unknown id leaves no link. The header names the unit that put it there; a client reads nothing of it.”, where 1.0.0.25–1.0.0.57 has “A client gives the new unit its id and node, deleting nothing first. Where clone names a unit it holds, a client only links the new unit to it as a clone and copies nothing of it; zero or an unknown id leaves no link. The header names the unit that put it there.”
  • SpawnUnit, clone: “The unit the new unit is linked to as a clone and copies, or zero.”, where 1.0.0.25–1.0.0.57 has “The unit the new unit is linked to as a clone, or zero.”
  • SpellCastAnswer, its layout: “There is no byte for ending a charge and no sync id: the casting is the whole body. A client fails where the casting’s size is wrong, for it then casts with no spell.”, where 1.0.0.25–1.0.0.57 has “There is no byte for ending a charge and no sync id: the casting follows the header at once.”
  • UnitStopped, its layout: “A client applies it only where its sync id is not older than the last the unit took, counting a wrap: this message, Path, PathWithSpeed, WaypointGroup and WaypointGroupAtSpeed share one count per unit, starting at -1.”, where 1.0.0.25–1.0.0.57 has “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.”
  • WaypointGroupAtSpeed, its layout: “A client answers each with WaypointAck, naming this sync id, before it reads any path.”, where 1.0.0.25–1.0.0.57 has “A client answers each with WaypointAck, naming this sync id alone, before it reads any movement and whatever movementCount is.”

1.0.0.61–1.0.0.62

Client builds from 1.0.0.61 up to, not including, 1.0.0.63. Patch notes: V1.0.0.61.

Build checkedPassedFailedSkippedCommitDate
1.0.0.611004aab167f2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, ItemUsed, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, SwapItems, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (161)
MessageCommand
AfkWarning145
AnimationOverrides177
Announcement66
AppearancePopped91
AppearancePushed90
Attack53
AttackFrom54
Autocast40
BotDebug105
BotState107
BotTargets106
BuildingDied73
BuyItem41
Camera59
CameraAck110
CameraBehaviour94
CameraLock60
CameraLockSet127
CastSpell35
ChainTargets103
ChampionStats176
CharacterSelected15
Chat0
ClientEvent108
ClientFinished17
ClientReady16
ClientVersion67
ClockConvergence76
ClockReply75
ClockSync74
CloseShop146
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory112
DestroyMissile102
EffectAdded37
EffectCount80
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight57
EnterSight55
Exit115
ExperienceGained28
FaceDirection93
FacePosition93
FadeMinions174
FadeRemoved137
FadeSounds175
FadeTo136
FloatingText30
FogToggled125
GameEnded14
GameSpeed135
GoldGained27
GoldRedirect89
GreyscaleWhenDead170
HudDisabled171
HudHighlighted155
HudHighlightToggled164
InhibitorState65
InputLock147
InputLockToggled124
ItemAdded42
JoinSide100
KillParticle22
LeaveLocalSight58
LeaveSight56
LevelUp47
LoadingProgress113
Loadout83
MapPing25
MatchIdentity111
MinimapHighlighted163
MissileHits161
MissileReport63
MissileState63
MoveCamera130
MovementBounds126
MoveOrder20
NexusIdle173
NexusSkin169
ObjectiveHidden150
ObjectiveReplaced151
ObjectiveShown149
ParticlesCreated21
Path77
PathWithSpeed78
Paused133
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected116
QueryStatus3
QueryStatusAnswer4
Reconnected118
ReconnectedInMatch117
RegionAdded86
RegionAttached85
RegionRemoved84
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication128
Respawned72
Resumed134
ResyncEnded119
Revived71
Roster103
SeatChampion101
SeatLoadProgress114
SeatName102
SelectObject61
ShopHighlighted156
SideTextHidden153
SideTextRefreshed154
SideTextShown152
SpawnEnd12
SpawnFromBarracks49
SpawnPet32
SpawnStart5
SpawnUnit87
SpellCastAnswer36
SpellCooldown33
SpellNameChanged172
SpellNumbers166
SpellTargetingChanged132
SpellUpgraded19
StartGame13
StatTick64
StopAnimation88
StopAttack48
SurrenderStatus160
SurrenderVote157
SurrenderVoteCalled158
SwapItemsAnswer46
TargetHeldChampion70
TargetUnit69
TransientAck129
TutorialChatLine165
TutorialPopup143
TutorialPopupClosed144
TutorialShopOpened148
UnitDied34
UnitHighlighted141
UnitHighlightRemoved142
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync68
VoiceEvent131
VoiceEventDone162
VolumeMuted167
WaypointAck120
WaypointGroup121
WaypointGroupAtSpeed122
WorldEvent168

Against 1.0.0.58–1.0.0.60

Where a build from 1.0.0.61 up to, not including, 1.0.0.63 differs from one from 1.0.0.58 up to, not including, 1.0.0.61. Anything not named here is the same in both.

In 1.0.0.61–1.0.0.62, not in 1.0.0.58–1.0.0.60

MessageSent byCommandWhat it does
AnimationOverridesserver177 on eventsMake a unit play one set of movements wherever it would have played another
ChampionStatsserver176 on eventsSet a champion’s tallies for the scoreboard

Laid out differently

Structs

  • Movement
    • header is 2-byte bits in 1.0.0.58–1.0.0.60 and 4-byte bits in 1.0.0.61–1.0.0.62.
    • header has hasTeleportToken at bit 0 in 1.0.0.61–1.0.0.62, and not in 1.0.0.58–1.0.0.60.
    • header has unused at bit 1 in 1.0.0.61–1.0.0.62, and not in 1.0.0.58–1.0.0.60.
    • header.pointCount is at bit 0, 16 bits wide, in 1.0.0.58–1.0.0.60 and at bit 16, 15 bits wide, in 1.0.0.61–1.0.0.62.
    • header has unusedHigh at bit 31 in 1.0.0.61–1.0.0.62, and not in 1.0.0.58–1.0.0.60.
    • path.teleportToken is in 1.0.0.61–1.0.0.62 (u8), after path.unit, and not in 1.0.0.58–1.0.0.60.
  • MovementAtSpeed
    • header is 2-byte bits in 1.0.0.58–1.0.0.60 and 4-byte bits in 1.0.0.61–1.0.0.62.
    • header has hasTeleportToken at bit 0 in 1.0.0.61–1.0.0.62, and not in 1.0.0.58–1.0.0.60.
    • header has unused at bit 1 in 1.0.0.61–1.0.0.62, and not in 1.0.0.58–1.0.0.60.
    • header.pointCount is at bit 0, 16 bits wide, in 1.0.0.58–1.0.0.60 and at bit 16, 15 bits wide, in 1.0.0.61–1.0.0.62.
    • header has unusedHigh at bit 31 in 1.0.0.61–1.0.0.62, and not in 1.0.0.58–1.0.0.60.
    • path.teleportToken is in 1.0.0.61–1.0.0.62 (u8), after path.unit, and not in 1.0.0.58–1.0.0.60.
  • SpellCast
    • startedAt is in 1.0.0.61–1.0.0.62 (f32), after cooldown, and not in 1.0.0.58–1.0.0.60.

Chapters

  • In the messages chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client unwraps no container: a payload whose command is 255 does nothing, on any channel.
  • In the objects chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client that still holds the earlier object gives the net id to the new one, so messages naming it reach the new object, and removing either leaves the id naming neither.
  • In the objects chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client sends a WaypointGroup’s WaypointAck before it reads any path, whatever units the paths name.
  • In the joining chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: The loading screen picks the card a SeatLoadProgress updates by the client id it carries, not by its player id.
  • In the joining chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client drops nothing for arriving before CharacterSelected.
  • In the joining chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client’s shop does not wait for Loadout.
  • In the units chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client acts on a CreateChampion or a CreateNeutral whenever it arrives, before CharacterSelected as after.
  • In the vision chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: EnterLocalSight states nothing of the unit.
  • In the vision chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: Any other GoldGained shows the gold gained or lost over the unit it names, whichever unit that is.
  • In the vision chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: LevelUp shows its effect over any champion the client can see, and does nothing for another unit.
  • In the movement chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A server needs no origin.
  • In the movement chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A path carries no flag and no token, so nothing relocates a unit: every path is walked.
  • In the movement chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client sends the WaypointAck before reading any movement in the group, and lists no units in it.
  • In the replication chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: ## A champion | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 0 | 0 | Experience | float | | 0 | 1 | Gold in hand | float | | 0 | 2 | Which slots can be cast from | u32 | | 0 | 3 to 6 | What the spell in slots 0 to 3 costs | float | | 0 | 7 to 14 | What the spell in slots 41 to 48 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 targetable | u32 | | 1 | 4 | Whether it is proof against strikes | u32 | | 1 | 5 | Damage it deals by striking | float | | 1 | 6 | Damage its spells deal before modifiers | float | | 1 | 7 | How often it turns a blow aside | float | | 1 | 8 | How often it strikes critically | float | | 1 | 9 | Armour | float | | 1 | 10 | Spell resistance | float | | 1 | 11 to 12 | How fast health and resource return | float | | 1 | 13 | How far it strikes from | float | | 1 | 14 to 16 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 17 to 18 | Flat and percent reduction of the spell damage it takes | float | | 1 | 19 | A multiplier on how fast it strikes | float | | 1 | 20 | A flat addition to how far it casts | float | | 1 | 21 | A modifier on its cooldowns | float | | 2 | 0 to 1 | Whether it is proof against strikes, then against spells, as group 1 bits 4 and 1 | u32 | | 3 | 0 to 1 | Health and resource as they stand | float | | 3 | 2 to 3 | Health and resource at their greatest | float | | 3 | 4 to 5 | A flat and a percent addition to how far it sees | float | | 3 | 6 | How fast it moves | float | | 3 | 7 | A value whose meaning is not recorded | float | | 3 | 8 | Level | u32 | ## A turret | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 1 | 0 | Damage it deals by striking | float | | 1 | 1 to 2 | Armour and spell resistance | float | | 1 | 3 | A multiplier on how fast it strikes | float | | 1 | 4 to 6 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 7 | How fast health returns | float | | 1 | 8 to 9 | Health as it stands, then at its greatest | float | | 1 | 10 | What the turret is doing, as a set of bits | u32 | | 1 | 11 to 13 | Whether it is proof against spells, proof against all harm, and targetable | u32 | | 1 | 14 | Whether it is proof against strikes | u32 | | 3 | 0 to 1 | A flat and a percent addition to how far it sees | float | | 3 | 2 | How fast it moves | float | | 3 | 3 | A value whose meaning is not recorded | float | ## A minion, and a unit belonging to no side | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 1 | 0 to 1 | Health and resource as they stand | float | | 1 | 2 to 3 | Health and resource at their greatest | float | | 1 | 4 | What the unit is doing, as a set of bits | u32 | | 1 | 5 to 7 | Whether it is proof against spells, proof against all harm, and targetable | u32 | | 1 | 8 | Whether it is proof against strikes | u32 | | 1 | 9 | Damage it deals by striking | float | | 1 | 10 to 11 | Armour and spell resistance | float | | 1 | 12 | A multiplier on how fast it strikes | 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 | How fast health and resource return | float | | 3 | 0 to 1 | A flat and a percent addition to how far it sees | float | | 3 | 2 | How fast it moves | float | | 3 | 3 | A value whose meaning is not recorded | float | ## A building Inhibitors, nexuses and the buildings minions come from share one table.
  • In the match chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client sends ReconnectedInMatch right after the registration answer.
  • In the spells chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A command its player types sends UpgradeSpell without checking anything.
  • In the shop chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client uses the map’s list of the items the shop holds only where a setting of its own turns it on.
  • In the shop chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client asks for an item a player holds only one of even where the player holds it already, and an item that can be used in the shop needs a slot as any other does.
  • In the interface chapter, a passage holds for 1.0.0.58–1.0.0.60 and not 1.0.0.61–1.0.0.62: A client ignores CameraLockSet that arrives while it holds its camera itself, and answers nothing.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.61–1.0.0.62:

  • BuildingDied, attacker: “The unit that destroyed it.”, where 1.0.0.58–1.0.0.60 has “The unit that destroyed it. A client reads nothing here.”
  • EnterLocalSight, its layout: “It carries no other messages: the body is the unit’s health alone, always present.”, where 1.0.0.58–1.0.0.60 has “A client reads none of the body: it shows the unit and reads nothing more.”
  • EnterLocalSight, vitals: “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.”, where 1.0.0.58–1.0.0.60 has “The unit’s health. A client reads nothing here.”
  • EnterLocalSight, vitals.maxHealth: “What the unit’s health tops out at.”, where 1.0.0.58–1.0.0.60 has “A client reads nothing here.”
  • EnterLocalSight, vitals.health: “What its health stands at. A client holds it to between zero and maxHealth.”, where 1.0.0.58–1.0.0.60 has “A client reads nothing here.”
  • EnterSight, view: “Everything 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.”, where 1.0.0.58–1.0.0.60 has “Everything 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. A client ignores it for a turret, and reads nothing of it for any other unit.”
  • MissileState, its layout: “A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.”, where 1.0.0.58–1.0.0.60 has “A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. Where the casting names a second unit the client holds, a client aims the casting at that unit’s position; it moves no unit. For a missile that flies straight, casterAt becomes its start point, end and facing are taken as sent, and its velocity is set to carry it from its position to its end at the spell’s own missile speed; for any other missile, a client keeps the velocity as sent, and casterAt, facing, end and bounced have no effect. The header names the unit casting, as the casting inside does.”
  • MissileState, how.bounced: “Set 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.”, where 1.0.0.58–1.0.0.60 has “Set where the missile has bounced. For a missile that flies straight, a client then sets its end to casterAt raised by the missile’s height above the ground, so it heads back to where the thrower stood; for any other missile it has no effect.”
  • SpawnStart, count: “A single count the client keeps. What it carries is not recorded for this range; a server writes zero.”, where 1.0.0.58–1.0.0.60 has “A client reads nothing here. A server writes zero.”
  • SpellCastAnswer, its layout: “There is no byte for ending a charge: the casting follows the sync id. A client fails where the casting’s size is wrong, for it then casts with no spell.”, where 1.0.0.58–1.0.0.60 has “There is no byte for ending a charge and no sync id: the casting is the whole body. A client fails where the casting’s size is wrong, for it then casts with no spell.”
  • WaypointGroupAtSpeed, its layout: “A client answers each with WaypointAck, naming this sync id and listing, in order, each unit whose path carried a teleport token with that token.”, where 1.0.0.58–1.0.0.60 has “A client answers each with WaypointAck, naming this sync id, before it reads any path.”

1.0.0.63–1.0.0.69

Client builds from 1.0.0.63 up to, not including, 1.0.0.70. Patch notes: V1.0.0.63, V1.0.0.66.

Build checkedPassedFailedSkippedCommitDate
1.0.0.631004643caf82026-11-03
1.0.0.6610043f5aaad2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, ItemUsed, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, SwapItems, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (161)
MessageCommand
AfkWarning145
AnimationOverrides177
Announcement66
AppearancePopped97
AppearancePushed96
Attack53
AttackFrom54
Autocast40
BotDebug108
BotState110
BotTargets109
BuildingDied79
BuyItem41
Camera59
CameraAck113
CameraBehaviour100
CameraLock60
CameraLockSet130
CastSpell35
ChainTargets106
ChampionStats176
CharacterSelected15
Chat0
ClientEvent111
ClientFinished17
ClientReady16
ClientVersion67
ClockConvergence82
ClockReply81
ClockSync80
CloseShop146
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory115
DestroyMissile105
EffectAdded37
EffectCount86
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight57
EnterSight55
Exit118
ExperienceGained28
FaceDirection99
FacePosition99
FadeMinions174
FadeRemoved140
FadeSounds175
FadeTo139
FloatingText30
FogToggled128
GameEnded14
GameSpeed138
GoldGained27
GoldRedirect95
GreyscaleWhenDead170
HudDisabled171
HudHighlighted155
HudHighlightToggled164
InhibitorState65
InputLock147
InputLockToggled127
ItemAdded42
JoinSide100
KillParticle22
LeaveLocalSight58
LeaveSight56
LevelUp47
LoadingProgress116
Loadout89
MapPing25
MatchIdentity114
MinimapHighlighted163
MissileHits161
MissileReport63
MissileState63
MoveCamera133
MovementBounds129
MoveOrder20
NexusIdle173
NexusSkin169
ObjectiveHidden150
ObjectiveReplaced151
ObjectiveShown149
ParticlesCreated21
Path83
PathWithSpeed84
Paused136
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected119
QueryStatus3
QueryStatusAnswer4
Reconnected121
ReconnectedInMatch120
RegionAdded92
RegionAttached91
RegionRemoved90
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication131
Respawned78
Resumed137
ResyncEnded122
Revived77
Roster103
SeatChampion101
SeatLoadProgress117
SeatName102
SelectObject61
ShopHighlighted156
SideTextHidden153
SideTextRefreshed154
SideTextShown152
SpawnEnd12
SpawnFromBarracks49
SpawnPet32
SpawnStart5
SpawnUnit93
SpellCastAnswer36
SpellCooldown33
SpellNameChanged172
SpellNumbers166
SpellTargetingChanged135
SpellUpgraded19
StartGame13
StatTick64
StopAnimation94
StopAttack48
SurrenderStatus160
SurrenderVote157
SurrenderVoteCalled158
SwapItemsAnswer46
TargetHeldChampion70
TargetUnit69
TransientAck132
TutorialChatLine165
TutorialPopup143
TutorialPopupClosed144
TutorialShopOpened148
UnitDied34
UnitHighlighted141
UnitHighlightRemoved142
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync68
VoiceEvent134
VoiceEventDone162
VolumeMuted167
WaypointAck123
WaypointGroup124
WaypointGroupAtSpeed125
WorldEvent168

Against 1.0.0.61–1.0.0.62

Where a build from 1.0.0.63 up to, not including, 1.0.0.70 differs from one from 1.0.0.61 up to, not including, 1.0.0.63. 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

  • DeathHistory
    • Its command is 112 in 1.0.0.61–1.0.0.62 and 115 in 1.0.0.63–1.0.0.69.
    • span is in 1.0.0.63–1.0.0.69 (f32), after killer, and not in 1.0.0.61–1.0.0.62.
  • MoveOrder
    • movement is in 1.0.0.63–1.0.0.69 (record), after target, and not in 1.0.0.61–1.0.0.62.
  • PlayerDisconnected
    • Its command is 116 in 1.0.0.61–1.0.0.62 and 119 in 1.0.0.63–1.0.0.69.
    • champion is in 1.0.0.63–1.0.0.69 (u32) at the start, and not in 1.0.0.61–1.0.0.62.
    • clientId is in 1.0.0.61–1.0.0.62 and not in 1.0.0.63–1.0.0.69.
  • SeatLoadProgress
    • Its command is 114 in 1.0.0.61–1.0.0.62 and 117 in 1.0.0.63–1.0.0.69.
    • status names bit 0 unusedLow in 1.0.0.61–1.0.0.62 and count in 1.0.0.63–1.0.0.69.
    • status names bit 31 unusedHigh in 1.0.0.61–1.0.0.62 and loaded in 1.0.0.63–1.0.0.69.
    • statusText is in 1.0.0.61–1.0.0.62 and not in 1.0.0.63–1.0.0.69.

Chapters

  • In the movement chapter, a passage holds for 1.0.0.61–1.0.0.62 and not 1.0.0.63–1.0.0.69: An order carries no path: only its destination, in world floats.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.63–1.0.0.69:

  • CreateChampion, its layout: “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.”, where 1.0.0.61–1.0.0.62 has “The champion takes the id in champion, not the header’s; a client deletes no object holding that id first. For the client’s own seat, name also becomes its own player’s name.”
  • CreateChampion, bot: “Nonzero where a bot plays the seat and nobody holds it; its shown name is then the client’s own bot name for asset, and name has no effect.”, where 1.0.0.61–1.0.0.62 has “Nonzero where a bot plays the seat and nobody holds it. A client only keeps it; the shown name is name as sent.”
  • CreateChampion, spawnIndex: “Where 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.”, where 1.0.0.61–1.0.0.62 has “Where 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 and this index plus one, facing as the map sets for them. A client works out the head count itself. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.”
  • CreateNeutral, its layout: “A client leaves the monster facing as it was made, and drops the message while its map’s navigation data is unloaded. A client adds damageBonus to the damage the unit deals, and healthBonus to its maximum health, twice over, keeping that maximum at zero or above, and sets its health to the new maximum.”, where 1.0.0.61–1.0.0.62 has “A client leaves the monster facing as it was made. A client adds damageBonus to the damage the unit deals twice over.”
  • CreateNeutral, healthBonus: “What is added to the health it holds.”, where 1.0.0.61–1.0.0.62 has “What is added to the health it holds. A client makes the unit with health and maximum health of its base health plus this, then adds this to the maximum twice more, so the maximum ends at base health plus three times this, and not below 0; it lowers current health only where it is above that maximum.”
  • CreateNeutral, camp: “Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first; where no camp has that number, it makes one at the unit’s own position and adds the unit to it.”, where 1.0.0.61–1.0.0.62 has “Which camp the unit belongs to. Where no camp of that number exists yet, a client makes one at the unit’s own position, not at campAt, and adds the unit to it.”
  • MissileReport, its layout: no note, where 1.0.0.61–1.0.0.62 has “A client also sends it 209 bytes long, header included, from a missile of its own. That form writes only atX to atZ, velocityX to velocityZ and the cast, and leaves every other byte unwritten.”
  • SpellNumbers, entryCount: “How many sets of numbers follow. A client ignores the whole message where they do not all fit in it.”, where 1.0.0.61–1.0.0.62 has “How many sets of numbers follow. A client reads every set it names.”

1.0.0.70–1.0.0.71

Client builds from 1.0.0.70 up to, not including, 1.0.0.72. Patch notes: V1.0.0.70.

Build checkedPassedFailedSkippedCommitDate
1.0.0.70100404d61432026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, ItemUsed, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (162)
MessageCommand
AfkWarning145
AnimationOverrides177
Announcement66
AppearancePopped97
AppearancePushed96
Attack53
AttackFrom54
Autocast40
BotDebug108
BotState110
BotTargets109
BuildingDied79
BuyItem41
Camera59
CameraAck113
CameraBehaviour100
CameraLock60
CameraLockSet130
CastSpell35
ChainTargets106
ChampionStats176
CharacterSelected15
Chat0
ClientEvent111
ClientFinished17
ClientReady16
ClientVersion67
ClockConvergence82
ClockReply81
ClockSync80
CloseShop146
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory115
DestroyMissile105
EffectAdded37
EffectCount86
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight57
EnterSight55
Exit118
ExperienceGained28
FaceDirection99
FacePosition99
FadeMinions174
FadeRemoved140
FadeSounds175
FadeTo139
FloatingText30
FogToggled128
GameEnded14
GameSpeed138
GoldGained27
GoldRedirect95
GreyscaleWhenDead170
HudDisabled171
HudHighlighted155
HudHighlightToggled164
InhibitorState65
InputLock147
InputLockToggled127
ItemAdded42
JoinSide100
KillParticle22
LeaveLocalSight58
LeaveSight56
LevelUp47
LoadingProgress116
Loadout89
MapPing25
MatchIdentity114
MinimapHighlighted163
MissileHits161
MissileReport63
MissileState63
MoveCamera133
MovementBounds129
MoveOrder20
NexusIdle173
NexusSkin169
ObjectiveHidden150
ObjectiveReplaced151
ObjectiveShown149
ParticlesCreated21
Path83
PathWithSpeed84
Paused136
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected119
QueryStatus3
QueryStatusAnswer4
Reconnected121
ReconnectedInMatch120
RegionAdded92
RegionAttached91
RegionRemoved90
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication131
Respawned78
Resumed137
ResyncEnded122
Revived77
Roster103
SeatChampion101
SeatLoadProgress117
SeatName102
SelectObject61
ShopHighlighted156
SideTextHidden153
SideTextRefreshed154
SideTextShown152
SpawnEnd12
SpawnFromBarracks49
SpawnPet32
SpawnStart5
SpawnUnit93
SpellCastAnswer36
SpellCooldown33
SpellNameChanged172
SpellNumbers166
SpellTargetingChanged135
SpellUpgraded19
StartGame13
StatTick64
StopAnimation94
StopAttack48
SurrenderStatus160
SurrenderVote157
SurrenderVoteCalled158
SwapItems45
SwapItemsAnswer46
TargetHeldChampion70
TargetUnit69
TransientAck132
TutorialChatLine165
TutorialPopup143
TutorialPopupClosed144
TutorialShopOpened148
UnitDied34
UnitHighlighted141
UnitHighlightRemoved142
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync68
VoiceEvent134
VoiceEventDone162
VolumeMuted167
WaypointAck123
WaypointGroup124
WaypointGroupAtSpeed125
WorldEvent168

Against 1.0.0.63–1.0.0.69

Where a build from 1.0.0.70 up to, not including, 1.0.0.72 differs from one from 1.0.0.63 up to, not including, 1.0.0.70. Anything not named here is the same in both.

In 1.0.0.70–1.0.0.71, not in 1.0.0.63–1.0.0.69

MessageSent byCommandWhat it does
SwapItemsclient45 on requestsMove an item from one slot to another

Chapters

  • In the shop chapter, a passage holds for 1.0.0.63–1.0.0.69 and not 1.0.0.70–1.0.0.71: A client never asks to swap two slots: it has no SwapItems.

1.0.0.72–1.0.0.73

Client builds from 1.0.0.72 up to, not including, 1.0.0.74. Patch notes: V1.0.0.72.

Build checkedPassedFailedSkippedCommitDate
1.0.0.72100491e5dfc2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, ItemUsed, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (162)
MessageCommand
AfkWarning145
AnimationOverrides177
Announcement66
AppearancePopped97
AppearancePushed96
Attack53
AttackFrom54
Autocast40
BotDebug108
BotState110
BotTargets109
BuildingDied79
BuyItem41
Camera59
CameraAck113
CameraBehaviour100
CameraLock60
CameraLockSet130
CastSpell35
ChainTargets106
ChampionStats176
CharacterSelected15
Chat0
ClientEvent111
ClientFinished17
ClientReady16
ClientVersion67
ClockConvergence82
ClockReply81
ClockSync80
CloseShop146
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory115
DestroyMissile105
EffectAdded37
EffectCount86
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight57
EnterSight55
Exit118
ExperienceGained28
FaceDirection99
FacePosition99
FadeMinions174
FadeRemoved140
FadeSounds175
FadeTo139
FloatingText30
FogToggled128
GameEnded14
GameSpeed138
GoldGained27
GoldRedirect95
GreyscaleWhenDead170
HudDisabled171
HudHighlighted155
HudHighlightToggled164
InhibitorState65
InputLock147
InputLockToggled127
ItemAdded42
JoinSide100
KillParticle22
LeaveLocalSight58
LeaveSight56
LevelUp47
LoadingProgress116
Loadout89
MapPing25
MatchIdentity114
MinimapHighlighted163
MissileHits161
MissileReport63
MissileState63
MoveCamera133
MovementBounds129
MoveOrder20
NexusIdle173
NexusSkin169
ObjectiveHidden150
ObjectiveReplaced151
ObjectiveShown149
ParticlesCreated21
Path83
PathWithSpeed84
Paused136
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected119
QueryStatus3
QueryStatusAnswer4
Reconnected121
ReconnectedInMatch120
RegionAdded92
RegionAttached91
RegionRemoved90
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication131
Respawned78
Resumed137
ResyncEnded122
Revived77
Roster103
SeatChampion101
SeatLoadProgress117
SeatName102
SelectObject61
ShopHighlighted156
SideTextHidden153
SideTextRefreshed154
SideTextShown152
SpawnEnd12
SpawnFromBarracks49
SpawnPet32
SpawnStart5
SpawnUnit93
SpellCastAnswer36
SpellCooldown33
SpellNameChanged172
SpellNumbers166
SpellTargetingChanged135
SpellUpgraded19
StartGame13
StatTick64
StopAnimation94
StopAttack48
SurrenderStatus160
SurrenderVote157
SurrenderVoteCalled158
SwapItems45
SwapItemsAnswer46
TargetHeldChampion70
TargetUnit69
TransientAck132
TutorialChatLine165
TutorialPopup143
TutorialPopupClosed144
TutorialShopOpened148
UnitDied34
UnitHighlighted141
UnitHighlightRemoved142
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync68
VoiceEvent134
VoiceEventDone162
VolumeMuted167
WaypointAck123
WaypointGroup124
WaypointGroupAtSpeed125
WorldEvent168

Against 1.0.0.70–1.0.0.71

Where a build from 1.0.0.72 up to, not including, 1.0.0.74 differs from one from 1.0.0.70 up to, not including, 1.0.0.72. Anything not named here is the same in both.

Structs

  • SpellCast
    • how has forced at bit 2 in 1.0.0.72–1.0.0.73, and not in 1.0.0.70–1.0.0.71.
    • how.unused is at bit 2, 6 bits wide, in 1.0.0.70–1.0.0.71 and at bit 3, 5 bits wide, in 1.0.0.72–1.0.0.73.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.72–1.0.0.73:

  • ClientEvent, event: “Which event, from 0 to 74, and so which fields follow.”, where 1.0.0.70–1.0.0.71 has “Which event, from 0 to 73, and so which fields follow.”
  • DeathHistory, entries[].event: “Which event, from 0 to 74, and so which fields follow.”, where 1.0.0.70–1.0.0.71 has “Which event, from 0 to 73, and so which fields follow.”
  • WorldEvent, event: “Which event, from 0 to 74, and so which fields follow.”, where 1.0.0.70–1.0.0.71 has “Which event, from 0 to 73, and so which fields follow.”

1.0.0.74

Client builds from 1.0.0.74 up to, not including, 1.0.0.75. Patch notes: V1.0.0.74.

Build checkedPassedFailedSkippedCommitDate
1.0.0.741004feab01e2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (163)
MessageCommand
AfkWarning146
AnimationOverrides178
Announcement67
AppearancePopped98
AppearancePushed97
Attack54
AttackFrom55
Autocast40
BotDebug109
BotState111
BotTargets110
BuildingDied80
BuyItem41
Camera60
CameraAck114
CameraBehaviour101
CameraLock61
CameraLockSet131
CastSpell35
ChainTargets107
ChampionStats177
CharacterSelected15
Chat0
ClientEvent112
ClientFinished17
ClientReady16
ClientVersion68
ClockConvergence83
ClockReply82
ClockSync81
CloseShop147
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory116
DestroyMissile106
EffectAdded37
EffectCount87
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight58
EnterSight56
Exit119
ExperienceGained28
FaceDirection100
FacePosition100
FadeMinions175
FadeRemoved141
FadeSounds176
FadeTo140
FloatingText30
FogToggled129
GameEnded14
GameSpeed139
GoldGained27
GoldRedirect96
GreyscaleWhenDead171
HudDisabled172
HudHighlighted156
HudHighlightToggled165
InhibitorState66
InputLock148
InputLockToggled128
ItemAdded42
ItemUsed47
JoinSide100
KillParticle22
LeaveLocalSight59
LeaveSight57
LevelUp48
LoadingProgress117
Loadout90
MapPing25
MatchIdentity115
MinimapHighlighted164
MissileHits162
MissileReport64
MissileState64
MoveCamera134
MovementBounds130
MoveOrder20
NexusIdle174
NexusSkin170
ObjectiveHidden151
ObjectiveReplaced152
ObjectiveShown150
ParticlesCreated21
Path84
PathWithSpeed85
Paused137
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected120
QueryStatus3
QueryStatusAnswer4
Reconnected122
ReconnectedInMatch121
RegionAdded93
RegionAttached92
RegionRemoved91
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication132
Respawned79
Resumed138
ResyncEnded123
Revived78
Roster103
SeatChampion101
SeatLoadProgress118
SeatName102
SelectObject62
ShopHighlighted157
SideTextHidden154
SideTextRefreshed155
SideTextShown153
SpawnEnd12
SpawnFromBarracks50
SpawnPet32
SpawnStart5
SpawnUnit94
SpellCastAnswer36
SpellCooldown33
SpellNameChanged173
SpellNumbers167
SpellTargetingChanged136
SpellUpgraded19
StartGame13
StatTick65
StopAnimation95
StopAttack49
SurrenderStatus161
SurrenderVote158
SurrenderVoteCalled159
SwapItems45
SwapItemsAnswer46
TargetHeldChampion71
TargetUnit70
TransientAck133
TutorialChatLine166
TutorialPopup144
TutorialPopupClosed145
TutorialShopOpened149
UnitDied34
UnitHighlighted142
UnitHighlightRemoved143
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync69
VoiceEvent135
VoiceEventDone163
VolumeMuted168
WaypointAck124
WaypointGroup125
WaypointGroupAtSpeed126
WorldEvent169

Against 1.0.0.72–1.0.0.73

Where a build from 1.0.0.74 up to, not including, 1.0.0.75 differs from one from 1.0.0.72 up to, not including, 1.0.0.74. Anything not named here is the same in both.

In 1.0.0.74, not in 1.0.0.72–1.0.0.73

MessageSent byCommandWhat it does
ItemUsedserver47 on eventsWhat a server sends after an item in a unit’s inventory is used

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.72–1.0.0.731.0.0.74Messages
clock81–8282–83ClockReply, ClockConvergence
events47–17748–178LevelUp, StopAttack, SpawnFromBarracks, Attack, AttackFrom, EnterSight, LeaveSight, EnterLocalSight, LeaveLocalSight, MissileState, StatTick, InhibitorState, Announcement, VersionSync, TargetUnit, TargetHeldChampion, Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount, Loadout, RegionRemoved, RegionAttached, RegionAdded, SpawnUnit, StopAnimation, GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets, BotDebug, BotTargets, BotState, ClientEvent, CameraAck, MatchIdentity, DeathHistory, PlayerDisconnected, Reconnected, ResyncEnded, WaypointGroupAtSpeed, InputLockToggled, FogToggled, MovementBounds, CameraLockSet, MoveCamera, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeTo, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop, InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent, NexusSkin, GreyscaleWhenDead, HudDisabled, SpellNameChanged, NexusIdle, FadeMinions, FadeSounds, ChampionStats, AnimationOverrides
requests59–16260–163Camera, CameraLock, SelectObject, MissileReport, ClientVersion, FacePosition, LoadingProgress, Exit, ReconnectedInMatch, WaypointAck, TransientAck, TutorialPopupClosed, TutorialShopOpened, SurrenderVote, VoiceEventDone
transient117–131118–132SeatLoadProgress, WaypointGroup, Replication

1.0.0.75–1.0.0.78

Client builds from 1.0.0.75 up to, not including, 1.0.0.79. Patch notes: V1.0.0.75.

Build checkedPassedFailedSkippedCommitDate
1.0.0.751004cd5e97d2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (163)
MessageCommand
AfkWarning146
AnimationOverrides178
Announcement67
AppearancePopped98
AppearancePushed97
Attack54
AttackFrom55
Autocast40
BotDebug109
BotState111
BotTargets110
BuildingDied80
BuyItem41
Camera60
CameraAck114
CameraBehaviour101
CameraLock61
CameraLockSet131
CastSpell35
ChainTargets107
ChampionStats177
CharacterSelected15
Chat0
ClientEvent112
ClientFinished17
ClientReady16
ClientVersion68
ClockConvergence83
ClockReply82
ClockSync81
CloseShop147
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory116
DestroyMissile106
EffectAdded37
EffectCount87
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight58
EnterSight56
Exit119
ExperienceGained28
FaceDirection100
FacePosition100
FadeMinions175
FadeRemoved141
FadeSounds176
FadeTo140
FloatingText30
FogToggled129
GameEnded14
GameSpeed139
GoldGained27
GoldRedirect96
GreyscaleWhenDead171
HudDisabled172
HudHighlighted156
HudHighlightToggled165
InhibitorState66
InputLock148
InputLockToggled128
ItemAdded42
ItemUsed47
JoinSide100
KillParticle22
LeaveLocalSight59
LeaveSight57
LevelUp48
LoadingProgress117
Loadout90
MapPing25
MatchIdentity115
MinimapHighlighted164
MissileHits162
MissileReport64
MissileState64
MoveCamera134
MovementBounds130
MoveOrder20
NexusIdle174
NexusSkin170
ObjectiveHidden151
ObjectiveReplaced152
ObjectiveShown150
ParticlesCreated21
Path84
PathWithSpeed85
Paused137
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected120
QueryStatus3
QueryStatusAnswer4
Reconnected122
ReconnectedInMatch121
RegionAdded93
RegionAttached92
RegionRemoved91
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication132
Respawned79
Resumed138
ResyncEnded123
Revived78
Roster103
SeatChampion101
SeatLoadProgress118
SeatName102
SelectObject62
ShopHighlighted157
SideTextHidden154
SideTextRefreshed155
SideTextShown153
SpawnEnd12
SpawnFromBarracks50
SpawnPet32
SpawnStart5
SpawnUnit94
SpellCastAnswer36
SpellCooldown33
SpellNameChanged173
SpellNumbers167
SpellTargetingChanged136
SpellUpgraded19
StartGame13
StatTick65
StopAnimation95
StopAttack49
SurrenderStatus161
SurrenderVote158
SurrenderVoteCalled159
SwapItems45
SwapItemsAnswer46
TargetHeldChampion71
TargetUnit70
TransientAck133
TutorialChatLine166
TutorialPopup144
TutorialPopupClosed145
TutorialShopOpened149
UnitDied34
UnitHighlighted142
UnitHighlightRemoved143
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync69
VoiceEvent135
VoiceEventDone163
VolumeMuted168
WaypointAck124
WaypointGroup125
WaypointGroupAtSpeed126
WorldEvent169

Against 1.0.0.74

Where a build from 1.0.0.75 up to, not including, 1.0.0.79 differs from one from 1.0.0.74 up to, not including, 1.0.0.75. Anything not named here is the same in both.

Laid out differently

  • SpawnPet (vectors: one-on-1-0-0-75)
    • flags is in 1.0.0.75–1.0.0.78 (1-byte bits), after clone, and not in 1.0.0.74.

1.0.0.79–1.0.0.80

Client builds from 1.0.0.79 up to, not including, 1.0.0.81. Patch notes: V1.0.0.79.

Build checkedPassedFailedSkippedCommitDate
1.0.0.791004c26e5fb2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (163)
MessageCommand
AfkWarning146
AnimationOverrides178
Announcement67
AppearancePopped98
AppearancePushed97
Attack54
AttackFrom55
Autocast40
BotDebug109
BotState111
BotTargets110
BuildingDied80
BuyItem41
Camera60
CameraAck114
CameraBehaviour101
CameraLock61
CameraLockSet131
CastSpell35
ChainTargets107
ChampionStats177
CharacterSelected15
Chat0
ClientEvent112
ClientFinished17
ClientReady16
ClientVersion68
ClockConvergence83
ClockReply82
ClockSync81
CloseShop147
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory116
DestroyMissile106
EffectAdded37
EffectCount87
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight58
EnterSight56
Exit119
ExperienceGained28
FaceDirection100
FacePosition100
FadeMinions175
FadeRemoved141
FadeSounds176
FadeTo140
FloatingText30
FogToggled129
GameEnded14
GameSpeed139
GoldGained27
GoldRedirect96
GreyscaleWhenDead171
HudDisabled172
HudHighlighted156
HudHighlightToggled165
InhibitorState66
InputLock148
InputLockToggled128
ItemAdded42
ItemUsed47
JoinSide100
KillParticle22
LeaveLocalSight59
LeaveSight57
LevelUp48
LoadingProgress117
Loadout90
MapPing25
MatchIdentity115
MinimapHighlighted164
MissileHits162
MissileReport64
MissileState64
MoveCamera134
MovementBounds130
MoveOrder20
NexusIdle174
NexusSkin170
ObjectiveHidden151
ObjectiveReplaced152
ObjectiveShown150
ParticlesCreated21
Path84
PathWithSpeed85
Paused137
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected120
QueryStatus3
QueryStatusAnswer4
Reconnected122
ReconnectedInMatch121
RegionAdded93
RegionAttached92
RegionRemoved91
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication132
Respawned79
Resumed138
ResyncEnded123
Revived78
Roster103
SeatChampion101
SeatLoadProgress118
SeatName102
SelectObject62
ShopHighlighted157
SideTextHidden154
SideTextRefreshed155
SideTextShown153
SpawnEnd12
SpawnFromBarracks50
SpawnPet32
SpawnStart5
SpawnUnit94
SpellCastAnswer36
SpellCooldown33
SpellNameChanged173
SpellNumbers167
SpellTargetingChanged136
SpellUpgraded19
StartGame13
StatTick65
StopAnimation95
StopAttack49
SurrenderStatus161
SurrenderVote158
SurrenderVoteCalled159
SwapItems45
SwapItemsAnswer46
TargetHeldChampion71
TargetUnit70
TransientAck133
TutorialChatLine166
TutorialPopup144
TutorialPopupClosed145
TutorialShopOpened149
UnitDied34
UnitHighlighted142
UnitHighlightRemoved143
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync69
VoiceEvent135
VoiceEventDone163
VolumeMuted168
WaypointAck124
WaypointGroup125
WaypointGroupAtSpeed126
WorldEvent169

Against 1.0.0.75–1.0.0.78

Where a build from 1.0.0.79 up to, not including, 1.0.0.81 differs from one from 1.0.0.75 up to, not including, 1.0.0.79. Anything not named here is the same in both.

Transport

Laid out differently

  • Attack
    • timing is f32 in 1.0.0.75–1.0.0.78 and u8 in 1.0.0.79–1.0.0.80.
  • AttackFrom
    • timing is f32 in 1.0.0.75–1.0.0.78 and u8 in 1.0.0.79–1.0.0.80.
    • unread is in 1.0.0.75–1.0.0.78 and not in 1.0.0.79–1.0.0.80.
    • fromY is in 1.0.0.75–1.0.0.78 and not in 1.0.0.79–1.0.0.80.
  • MoveOrder
    • movement.path.points[].x is f32 in 1.0.0.75–1.0.0.78 and i16 in 1.0.0.79–1.0.0.80.
    • movement.path.points[].z is f32 in 1.0.0.75–1.0.0.78 and i16 in 1.0.0.79–1.0.0.80.
  • WaypointAck
    • relocationCount is in 1.0.0.79–1.0.0.80 (u8), after syncId, and not in 1.0.0.75–1.0.0.78.
    • relocations is in 1.0.0.79–1.0.0.80 (count in relocationCount × record), after relocationCount, and not in 1.0.0.75–1.0.0.78.

Structs

  • SpellCast
    • how has overrideCastPosition at bit 3 in 1.0.0.79–1.0.0.80, and not in 1.0.0.75–1.0.0.78.
    • how has clicked at bit 4 in 1.0.0.79–1.0.0.80, and not in 1.0.0.75–1.0.0.78.
    • how.unused is at bit 3, 5 bits wide, in 1.0.0.75–1.0.0.78 and at bit 5, 3 bits wide, in 1.0.0.79–1.0.0.80.

Chapters

  • In the movement chapter, a passage holds for 1.0.0.79–1.0.0.80 and not 1.0.0.75–1.0.0.78: A client answers each group with one WaypointAck, listing every unit in it that carried a token, with an empty list where none did.

1.0.0.81

Client builds from 1.0.0.81 up to, not including, 1.0.0.82. Patch notes: V1.0.0.81.

Build checkedPassedFailedSkippedCommitDate
1.0.0.81100470a93dc2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EffectAddedGroup, EffectCountGroup, EffectRemovedGroup, EffectReplacedGroup, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (163)
MessageCommand
AfkWarning146
AnimationOverrides178
Announcement67
AppearancePopped98
AppearancePushed97
Attack54
AttackFrom55
Autocast40
BotDebug109
BotState111
BotTargets110
BuildingDied80
BuyItem41
Camera60
CameraAck114
CameraBehaviour101
CameraLock61
CameraLockSet131
CastSpell35
ChainTargets107
ChampionStats177
CharacterSelected15
Chat0
ClientEvent112
ClientFinished17
ClientReady16
ClientVersion68
ClockConvergence83
ClockReply82
ClockSync81
CloseShop147
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory116
DestroyMissile106
EffectAdded37
EffectCount87
EffectRemoved39
EffectReplaced38
EmotePlayed11
EnterLocalSight58
EnterSight56
Exit119
ExperienceGained28
FaceDirection100
FacePosition100
FadeMinions175
FadeRemoved141
FadeSounds176
FadeTo140
FloatingText30
FogToggled129
GameEnded14
GameSpeed139
GoldGained27
GoldRedirect96
GreyscaleWhenDead171
HudDisabled172
HudHighlighted156
HudHighlightToggled165
InhibitorState66
InputLock148
InputLockToggled128
ItemAdded42
ItemUsed47
JoinSide100
KillParticle22
LeaveLocalSight59
LeaveSight57
LevelUp48
LoadingProgress117
Loadout90
MapPing25
MatchIdentity115
MinimapHighlighted164
MissileHits162
MissileReport64
MissileState64
MoveCamera134
MovementBounds130
MoveOrder20
NexusIdle174
NexusSkin170
ObjectiveHidden151
ObjectiveReplaced152
ObjectiveShown150
ParticlesCreated21
Path84
PathWithSpeed85
Paused137
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected120
QueryStatus3
QueryStatusAnswer4
Reconnected122
ReconnectedInMatch121
RegionAdded93
RegionAttached92
RegionRemoved91
Register0
Registered0
RemoveItem43
RemoveItemAnswer44
Replication132
Respawned79
Resumed138
ResyncEnded123
Revived78
Roster103
SeatChampion101
SeatLoadProgress118
SeatName102
SelectObject62
ShopHighlighted157
SideTextHidden154
SideTextRefreshed155
SideTextShown153
SpawnEnd12
SpawnFromBarracks50
SpawnPet32
SpawnStart5
SpawnUnit94
SpellCastAnswer36
SpellCooldown33
SpellNameChanged173
SpellNumbers167
SpellTargetingChanged136
SpellUpgraded19
StartGame13
StatTick65
StopAnimation95
StopAttack49
SurrenderStatus161
SurrenderVote158
SurrenderVoteCalled159
SwapItems45
SwapItemsAnswer46
TargetHeldChampion71
TargetUnit70
TransientAck133
TutorialChatLine166
TutorialPopup144
TutorialPopupClosed145
TutorialShopOpened149
UnitDied34
UnitHighlighted142
UnitHighlightRemoved143
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync69
VoiceEvent135
VoiceEventDone163
VolumeMuted168
WaypointAck124
WaypointGroup125
WaypointGroupAtSpeed126
WorldEvent169

Against 1.0.0.79–1.0.0.80

Where a build from 1.0.0.81 up to, not including, 1.0.0.82 differs from one from 1.0.0.79 up to, not including, 1.0.0.81. Anything not named here is the same in both.

Laid out differently

  • SpellCastAnswer
    • syncId is in 1.0.0.81 (u32) at the start, and not in 1.0.0.79–1.0.0.80.

Structs

  • Movement
    • path.points[].x is f32 in 1.0.0.79–1.0.0.80 and i16 in 1.0.0.81.
    • path.points[].z is f32 in 1.0.0.79–1.0.0.80 and i16 in 1.0.0.81.
  • MovementAtSpeed
    • path.points[].x is f32 in 1.0.0.79–1.0.0.80 and i16 in 1.0.0.81.
    • path.points[].z is f32 in 1.0.0.79–1.0.0.80 and i16 in 1.0.0.81.

Chapters

  • In the movement chapter, a passage holds for 1.0.0.79–1.0.0.80 and not 1.0.0.81: A path carries each point as two world floats (see Space), stated against no origin and no other point.

1.0.0.82

Client builds from 1.0.0.82 up to, not including, 1.0.0.83. Patch notes: V1.0.0.82.

Build checkedPassedFailedSkippedCommitDate
1.0.0.821004688d35d2026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (167)
MessageCommand
AfkWarning150
AnimationOverrides182
Announcement70
AppearancePopped102
AppearancePushed101
Attack57
AttackFrom58
Autocast43
BotDebug113
BotState115
BotTargets114
BuildingDied83
BuyItem44
Camera63
CameraAck118
CameraBehaviour105
CameraLock64
CameraLockSet135
CastSpell35
ChainTargets111
ChampionStats181
CharacterSelected15
Chat0
ClientEvent116
ClientFinished17
ClientReady16
ClientVersion71
ClockConvergence86
ClockReply85
ClockSync84
CloseShop151
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory120
DestroyMissile110
EffectAdded37
EffectAddedGroup38
EffectCount90
EffectCountGroup91
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight61
EnterSight59
Exit123
ExperienceGained28
FaceDirection104
FacePosition104
FadeMinions179
FadeRemoved145
FadeSounds180
FadeTo144
FloatingText30
FogToggled133
GameEnded14
GameSpeed143
GoldGained27
GoldRedirect100
GreyscaleWhenDead175
HudDisabled176
HudHighlighted160
HudHighlightToggled169
InhibitorState69
InputLock152
InputLockToggled132
ItemAdded45
ItemUsed50
JoinSide100
KillParticle22
LeaveLocalSight62
LeaveSight60
LevelUp51
LoadingProgress121
Loadout94
MapPing25
MatchIdentity119
MinimapHighlighted168
MissileHits166
MissileReport67
MissileState67
MoveCamera138
MovementBounds134
MoveOrder20
NexusIdle178
NexusSkin174
ObjectiveHidden155
ObjectiveReplaced156
ObjectiveShown154
ParticlesCreated21
Path87
PathWithSpeed88
Paused141
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected124
QueryStatus3
QueryStatusAnswer4
Reconnected126
ReconnectedInMatch125
RegionAdded97
RegionAttached96
RegionRemoved95
Register0
Registered0
RemoveItem46
RemoveItemAnswer47
Replication136
Respawned82
Resumed142
ResyncEnded127
Revived81
Roster103
SeatChampion101
SeatLoadProgress122
SeatName102
SelectObject65
ShopHighlighted161
SideTextHidden158
SideTextRefreshed159
SideTextShown157
SpawnEnd12
SpawnFromBarracks53
SpawnPet32
SpawnStart5
SpawnUnit98
SpellCastAnswer36
SpellCooldown33
SpellNameChanged177
SpellNumbers171
SpellTargetingChanged140
SpellUpgraded19
StartGame13
StatTick68
StopAnimation99
StopAttack52
SurrenderStatus165
SurrenderVote162
SurrenderVoteCalled163
SwapItems48
SwapItemsAnswer49
TargetHeldChampion74
TargetUnit73
TransientAck137
TutorialChatLine170
TutorialPopup148
TutorialPopupClosed149
TutorialShopOpened153
UnitDied34
UnitHighlighted146
UnitHighlightRemoved147
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync72
VoiceEvent139
VoiceEventDone167
VolumeMuted172
WaypointAck128
WaypointGroup129
WaypointGroupAtSpeed130
WorldEvent173

Against 1.0.0.81

Where a build from 1.0.0.82 up to, not including, 1.0.0.83 differs from one from 1.0.0.81 up to, not including, 1.0.0.82. Anything not named here is the same in both.

In 1.0.0.82, not in 1.0.0.81

MessageSent byCommandWhat it does
EffectAddedGroupserver38 on eventsPut one effect on several units at once
EffectCountGroupserver91 on eventsRestate how many of an effect are stacked on several units at once
EffectRemovedGroupserver42 on eventsTake one effect off several units at once
EffectReplacedGroupserver40 on eventsWhat a server sends about the effect in one slot of several units at once

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.811.0.0.82Messages
clock82–8385–86ClockReply, ClockConvergence
events3839EffectReplaced
events3941EffectRemoved
events40–8743–90Autocast, ItemAdded, RemoveItemAnswer, SwapItemsAnswer, ItemUsed, LevelUp, StopAttack, SpawnFromBarracks, Attack, AttackFrom, EnterSight, LeaveSight, EnterLocalSight, LeaveLocalSight, MissileState, StatTick, InhibitorState, Announcement, VersionSync, TargetUnit, TargetHeldChampion, Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount
events90–17894–182Loadout, RegionRemoved, RegionAttached, RegionAdded, SpawnUnit, StopAnimation, GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets, BotDebug, BotTargets, BotState, ClientEvent, CameraAck, MatchIdentity, DeathHistory, Reconnected, ResyncEnded, WaypointGroupAtSpeed, InputLockToggled, FogToggled, MovementBounds, CameraLockSet, MoveCamera, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop, InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent, NexusSkin, GreyscaleWhenDead, HudDisabled, SpellNameChanged, NexusIdle, FadeMinions, FadeSounds, ChampionStats, AnimationOverrides
requests41–6844–71BuyItem, RemoveItem, SwapItems, Camera, CameraLock, SelectObject, MissileReport, ClientVersion
requests100–163104–167FacePosition, LoadingProgress, Exit, ReconnectedInMatch, WaypointAck, TransientAck, TutorialPopupClosed, TutorialShopOpened, SurrenderVote, VoiceEventDone
transient118–132122–136SeatLoadProgress, WaypointGroup, Replication

Laid out differently

  • FadeTo
    • Its command is 140 in 1.0.0.81 and 144 in 1.0.0.82.
    • The same fields come in another order in 1.0.0.82.
  • PlayerDisconnected
    • Its command is 120 in 1.0.0.81 and 124 in 1.0.0.82.
    • clientId is in 1.0.0.82 (u32) at the start, and not in 1.0.0.81.
    • champion is in 1.0.0.81 and not in 1.0.0.82.

1.0.0.83–1.0.0.85

Client builds from 1.0.0.83 up to, not including, 1.0.0.86. Patch notes: V1.0.0.83, V1.0.0.85.

Build checkedPassedFailedSkippedCommitDate
1.0.0.8310049fd29ab2026-11-03
1.0.0.85100466c35412026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CampCleared, CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (167)
MessageCommand
AfkWarning150
AnimationOverrides182
Announcement70
AppearancePopped102
AppearancePushed101
Attack57
AttackFrom58
Autocast43
BotDebug113
BotState115
BotTargets114
BuildingDied83
BuyItem44
Camera63
CameraAck118
CameraBehaviour105
CameraLock64
CameraLockSet135
CastSpell35
ChainTargets111
ChampionStats181
CharacterSelected15
Chat0
ClientEvent116
ClientFinished17
ClientReady16
ClientVersion71
ClockConvergence86
ClockReply85
ClockSync84
CloseShop151
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory120
DestroyMissile110
EffectAdded37
EffectAddedGroup38
EffectCount90
EffectCountGroup91
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight61
EnterSight59
Exit123
ExperienceGained28
FaceDirection104
FacePosition104
FadeMinions179
FadeRemoved145
FadeSounds180
FadeTo144
FloatingText30
FogToggled133
GameEnded14
GameSpeed143
GoldGained27
GoldRedirect100
GreyscaleWhenDead175
HudDisabled176
HudHighlighted160
HudHighlightToggled169
InhibitorState69
InputLock152
InputLockToggled132
ItemAdded45
ItemUsed50
JoinSide100
KillParticle22
LeaveLocalSight62
LeaveSight60
LevelUp51
LoadingProgress121
Loadout94
MapPing25
MatchIdentity119
MinimapHighlighted168
MissileHits166
MissileReport67
MissileState67
MoveCamera138
MovementBounds134
MoveOrder20
NexusIdle178
NexusSkin174
ObjectiveHidden155
ObjectiveReplaced156
ObjectiveShown154
ParticlesCreated21
Path87
PathWithSpeed88
Paused141
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected124
QueryStatus3
QueryStatusAnswer4
Reconnected126
ReconnectedInMatch125
RegionAdded97
RegionAttached96
RegionRemoved95
Register0
Registered0
RemoveItem46
RemoveItemAnswer47
Replication136
Respawned82
Resumed142
ResyncEnded127
Revived81
Roster103
SeatChampion101
SeatLoadProgress122
SeatName102
SelectObject65
ShopHighlighted161
SideTextHidden158
SideTextRefreshed159
SideTextShown157
SpawnEnd12
SpawnFromBarracks53
SpawnPet32
SpawnStart5
SpawnUnit98
SpellCastAnswer36
SpellCooldown33
SpellNameChanged177
SpellNumbers171
SpellTargetingChanged140
SpellUpgraded19
StartGame13
StatTick68
StopAnimation99
StopAttack52
SurrenderStatus165
SurrenderVote162
SurrenderVoteCalled163
SwapItems48
SwapItemsAnswer49
TargetHeldChampion74
TargetUnit73
TransientAck137
TutorialChatLine170
TutorialPopup148
TutorialPopupClosed149
TutorialShopOpened153
UnitDied34
UnitHighlighted146
UnitHighlightRemoved147
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync72
VoiceEvent139
VoiceEventDone167
VolumeMuted172
WaypointAck128
WaypointGroup129
WaypointGroupAtSpeed130
WorldEvent173

Against 1.0.0.82

Where a build from 1.0.0.83 up to, not including, 1.0.0.86 differs from one from 1.0.0.82 up to, not including, 1.0.0.83. Anything not named here is the same in both.

Laid out differently

  • MoveOrder
    • movement.header.pointCount is at bit 16, 15 bits wide, in 1.0.0.82 and at bit 16, 7 bits wide, in 1.0.0.83–1.0.0.85.
    • movement.header.unusedHigh is at bit 31, 1 bits wide, in 1.0.0.82 and at bit 23, 9 bits wide, in 1.0.0.83–1.0.0.85.
    • movement.path.flags is in 1.0.0.83–1.0.0.85 (bits, count in header.pointCount minus 1), after movement.path.teleportToken, and not in 1.0.0.82.
    • movement.path.firstX is in 1.0.0.83–1.0.0.85 (i16), after movement.path.flags, and not in 1.0.0.82.
    • movement.path.firstZ is in 1.0.0.83–1.0.0.85 (i16), after movement.path.firstX, and not in 1.0.0.82.
    • movement.path.steps is in 1.0.0.83–1.0.0.85 (count in header.pointCount minus 1 × record), after movement.path.firstZ, and not in 1.0.0.82.
    • movement.path.points is in 1.0.0.82 and not in 1.0.0.83–1.0.0.85.
  • SpawnPet
    • script is in 1.0.0.83–1.0.0.85 (text, 32 bytes), after flags, and not in 1.0.0.82.
  • StopAnimation
    • flags has unusedMid at bit 7 in 1.0.0.83–1.0.0.85, and not in 1.0.0.82.
    • flags has blend at bit 9 in 1.0.0.83–1.0.0.85, and not in 1.0.0.82.
    • flags.unusedHigh is at bit 7, 25 bits wide, in 1.0.0.82 and at bit 10, 22 bits wide, in 1.0.0.83–1.0.0.85.

Structs

  • Movement
    • header.pointCount is at bit 16, 15 bits wide, in 1.0.0.82 and at bit 16, 7 bits wide, in 1.0.0.83–1.0.0.85.
    • header.unusedHigh is at bit 31, 1 bits wide, in 1.0.0.82 and at bit 23, 9 bits wide, in 1.0.0.83–1.0.0.85.
    • path.flags is in 1.0.0.83–1.0.0.85 (bits, count in header.pointCount minus 1), after path.teleportToken, and not in 1.0.0.82.
    • path.firstX is in 1.0.0.83–1.0.0.85 (i16), after path.flags, and not in 1.0.0.82.
    • path.firstZ is in 1.0.0.83–1.0.0.85 (i16), after path.firstX, and not in 1.0.0.82.
    • path.steps is in 1.0.0.83–1.0.0.85 (count in header.pointCount minus 1 × record), after path.firstZ, and not in 1.0.0.82.
    • path.points is in 1.0.0.82 and not in 1.0.0.83–1.0.0.85.
  • MovementAtSpeed
    • header.pointCount is at bit 16, 15 bits wide, in 1.0.0.82 and at bit 16, 7 bits wide, in 1.0.0.83–1.0.0.85.
    • header.unusedHigh is at bit 31, 1 bits wide, in 1.0.0.82 and at bit 23, 9 bits wide, in 1.0.0.83–1.0.0.85.
    • path.flags is in 1.0.0.83–1.0.0.85 (bits, count in header.pointCount minus 1), after path.terms, and not in 1.0.0.82.
    • path.firstX is in 1.0.0.83–1.0.0.85 (i16), after path.flags, and not in 1.0.0.82.
    • path.firstZ is in 1.0.0.83–1.0.0.85 (i16), after path.firstX, and not in 1.0.0.82.
    • path.steps is in 1.0.0.83–1.0.0.85 (count in header.pointCount minus 1 × record), after path.firstZ, and not in 1.0.0.82.
    • path.points is in 1.0.0.82 and not in 1.0.0.83–1.0.0.85.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.83–1.0.0.85:

  • EnterSight, its layout: “What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It carries no other messages.”, where 1.0.0.82 has “What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.”
  • EnterSight, view: “Everything 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. For any other unit a client reads nothing of it.”, where 1.0.0.82 has “Everything 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.”

1.0.0.86

Client builds from 1.0.0.86 up to, not including, 1.0.0.87. Patch notes: V1.0.0.86.

Build checkedPassedFailedSkippedCommitDate
1.0.0.861004309cae62026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (168)
MessageCommand
AfkWarning150
AnimationOverrides182
Announcement70
AppearancePopped102
AppearancePushed101
Attack57
AttackFrom58
Autocast43
BotDebug113
BotState115
BotTargets114
BuildingDied83
BuyItem44
Camera63
CameraAck118
CameraBehaviour105
CameraLock64
CameraLockSet135
CampCleared189
CastSpell35
ChainTargets111
ChampionStats181
CharacterSelected15
Chat0
ClientEvent116
ClientFinished17
ClientReady16
ClientVersion71
ClockConvergence86
ClockReply85
ClockSync84
CloseShop151
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory120
DestroyMissile110
EffectAdded37
EffectAddedGroup38
EffectCount90
EffectCountGroup91
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight61
EnterSight59
Exit123
ExperienceGained28
FaceDirection104
FacePosition104
FadeMinions179
FadeRemoved145
FadeSounds180
FadeTo144
FloatingText30
FogToggled133
GameEnded14
GameSpeed143
GoldGained27
GoldRedirect100
GreyscaleWhenDead175
HudDisabled176
HudHighlighted160
HudHighlightToggled169
InhibitorState69
InputLock152
InputLockToggled132
ItemAdded45
ItemUsed50
JoinSide100
KillParticle22
LeaveLocalSight62
LeaveSight60
LevelUp51
LoadingProgress121
Loadout94
MapPing25
MatchIdentity119
MinimapHighlighted168
MissileHits166
MissileReport67
MissileState67
MoveCamera138
MovementBounds134
MoveOrder20
NexusIdle178
NexusSkin174
ObjectiveHidden155
ObjectiveReplaced156
ObjectiveShown154
ParticlesCreated21
Path87
PathWithSpeed88
Paused141
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected124
QueryStatus3
QueryStatusAnswer4
Reconnected126
ReconnectedInMatch125
RegionAdded97
RegionAttached96
RegionRemoved95
Register0
Registered0
RemoveItem46
RemoveItemAnswer47
Replication136
Respawned82
Resumed142
ResyncEnded127
Revived81
Roster103
SeatChampion101
SeatLoadProgress122
SeatName102
SelectObject65
ShopHighlighted161
SideTextHidden158
SideTextRefreshed159
SideTextShown157
SpawnEnd12
SpawnFromBarracks53
SpawnPet32
SpawnStart5
SpawnUnit98
SpellCastAnswer36
SpellCooldown33
SpellNameChanged177
SpellNumbers171
SpellTargetingChanged140
SpellUpgraded19
StartGame13
StatTick68
StopAnimation99
StopAttack52
SurrenderStatus165
SurrenderVote162
SurrenderVoteCalled163
SwapItems48
SwapItemsAnswer49
TargetHeldChampion74
TargetUnit73
TransientAck137
TutorialChatLine170
TutorialPopup148
TutorialPopupClosed149
TutorialShopOpened153
UnitDied34
UnitHighlighted146
UnitHighlightRemoved147
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync72
VoiceEvent139
VoiceEventDone167
VolumeMuted172
WaypointAck128
WaypointGroup129
WaypointGroupAtSpeed130
WorldEvent173

Against 1.0.0.83–1.0.0.85

Where a build from 1.0.0.86 up to, not including, 1.0.0.87 differs from one from 1.0.0.83 up to, not including, 1.0.0.86. Anything not named here is the same in both.

In 1.0.0.86, not in 1.0.0.83–1.0.0.85

MessageSent byCommandWhat it does
CampClearedserver189 on eventsWhat a server sends as a camp of units that belong to no side is emptied

1.0.0.87–1.0.0.95

Client builds from 1.0.0.87 up to, not including, 1.0.0.96. Patch notes: V1.0.0.87, V1.0.0.94.

Build checkedPassedFailedSkippedCommitDate
1.0.0.871004090601d2026-11-03
1.0.0.941004bb326332026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (168)
MessageCommand
AfkWarning150
AnimationOverrides182
Announcement70
AppearancePopped102
AppearancePushed101
Attack57
AttackFrom58
Autocast43
BotDebug113
BotState115
BotTargets114
BuildingDied83
BuyItem44
Camera63
CameraAck118
CameraBehaviour105
CameraLock64
CameraLockSet135
CampCleared189
CastSpell35
ChainTargets111
ChampionStats181
CharacterSelected15
Chat0
ClientEvent116
ClientFinished17
ClientReady16
ClientVersion71
ClockConvergence86
ClockReply85
ClockSync84
CloseShop151
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory120
DestroyMissile110
EffectAdded37
EffectAddedGroup38
EffectCount90
EffectCountGroup91
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight61
EnterSight59
Exit123
ExperienceGained28
FaceDirection104
FacePosition104
FadeMinions179
FadeRemoved145
FadeSounds180
FadeTo144
FloatingText30
FogToggled133
GameEnded14
GameSpeed143
GoldGained27
GoldRedirect100
GreyscaleWhenDead175
HudDisabled176
HudHighlighted160
HudHighlightToggled169
InhibitorState69
InputLock152
InputLockToggled132
ItemAdded45
ItemUsed50
JoinSide100
KillParticle22
LeaveLocalSight62
LeaveSight60
LevelUp51
LoadingProgress121
Loadout94
MapPing25
MatchIdentity119
MinimapHighlighted168
MissileHits166
MissileReport67
MissileState67
MoveCamera138
MovementBounds134
MoveOrder20
NexusIdle178
NexusSkin174
ObjectiveHidden155
ObjectiveReplaced156
ObjectiveShown154
ParticlesCreated21
Path87
PathWithSpeed88
Paused141
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected124
QueryStatus3
QueryStatusAnswer4
Reconnected126
ReconnectedInMatch125
RegionAdded97
RegionAttached96
RegionRemoved95
Register0
Registered0
RemoveItem46
RemoveItemAnswer47
Replication136
Respawned82
Resumed142
ResyncEnded127
Revived81
Roster103
SeatChampion101
SeatLoadProgress122
SeatName102
SelectObject65
ShopHighlighted161
SideTextHidden158
SideTextRefreshed159
SideTextShown157
SpawnEnd12
SpawnFromBarracks53
SpawnPet32
SpawnStart5
SpawnUnit98
SpellCastAnswer36
SpellCooldown33
SpellNameChanged177
SpellNumbers171
SpellTargetingChanged140
SpellUpgraded19
StartGame13
StatTick68
StopAnimation99
StopAttack52
SurrenderStatus165
SurrenderVote162
SurrenderVoteCalled163
SwapItems48
SwapItemsAnswer49
TargetHeldChampion74
TargetUnit73
TransientAck137
TutorialChatLine170
TutorialPopup148
TutorialPopupClosed149
TutorialShopOpened153
UnitDied34
UnitHighlighted146
UnitHighlightRemoved147
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync72
VoiceEvent139
VoiceEventDone167
VolumeMuted172
WaypointAck128
WaypointGroup129
WaypointGroupAtSpeed130
WorldEvent173

Against 1.0.0.86

Where a build from 1.0.0.87 up to, not including, 1.0.0.96 differs from one from 1.0.0.86 up to, not including, 1.0.0.87. Anything not named here is the same in both.

Laid out differently

  • SpawnPet
    • skin is in 1.0.0.87–1.0.0.95 (i32), after asset, and not in 1.0.0.86.
  • SpawnUnit
    • skin is in 1.0.0.87–1.0.0.95 (i32), after asset, and not in 1.0.0.86.

1.0.0.96

Client builds from 1.0.0.96 up to, not including, 1.0.0.97. Patch notes: V1.0.0.96.

Build checkedPassedFailedSkippedCommitDate
1.0.0.961004a085dd62026-11-03

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, FogSet, ForceDeath, HealthBar, InventorySlot, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (168)
MessageCommand
AfkWarning150
AnimationOverrides182
Announcement70
AppearancePopped102
AppearancePushed101
Attack57
AttackFrom58
Autocast43
BotDebug113
BotState115
BotTargets114
BuildingDied83
BuyItem44
Camera63
CameraAck118
CameraBehaviour105
CameraLock64
CameraLockSet135
CampCleared189
CastSpell35
ChainTargets111
ChampionStats181
CharacterSelected15
Chat0
ClientEvent116
ClientFinished17
ClientReady16
ClientVersion71
ClockConvergence86
ClockReply85
ClockSync84
CloseShop151
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory120
DestroyMissile110
EffectAdded37
EffectAddedGroup38
EffectCount90
EffectCountGroup91
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight61
EnterSight59
Exit123
ExperienceGained28
FaceDirection104
FacePosition104
FadeMinions179
FadeRemoved145
FadeSounds180
FadeTo144
FloatingText30
FogToggled133
GameEnded14
GameSpeed143
GoldGained27
GoldRedirect100
GreyscaleWhenDead175
HudDisabled176
HudHighlighted160
HudHighlightToggled169
InhibitorState69
InputLock152
InputLockToggled132
ItemAdded45
ItemUsed50
JoinSide100
KillParticle22
LeaveLocalSight62
LeaveSight60
LevelUp51
LoadingProgress121
Loadout94
MapPing25
MatchIdentity119
MinimapHighlighted168
MissileHits166
MissileReport67
MissileState67
MoveCamera138
MovementBounds134
MoveOrder20
NexusIdle178
NexusSkin174
ObjectiveHidden155
ObjectiveReplaced156
ObjectiveShown154
ParticlesCreated21
Path87
PathWithSpeed88
Paused141
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected124
QueryStatus3
QueryStatusAnswer4
Reconnected126
ReconnectedInMatch125
RegionAdded97
RegionAttached96
RegionRemoved95
Register0
Registered0
RemoveItem46
RemoveItemAnswer47
Replication136
Respawned82
Resumed142
ResyncEnded127
Revived81
Roster103
SeatChampion101
SeatLoadProgress122
SeatName102
SelectObject65
ShopHighlighted161
SideTextHidden158
SideTextRefreshed159
SideTextShown157
SpawnEnd12
SpawnFromBarracks53
SpawnPet32
SpawnStart5
SpawnUnit98
SpellCastAnswer36
SpellCooldown33
SpellNameChanged177
SpellNumbers171
SpellTargetingChanged140
SpellUpgraded19
StartGame13
StatTick68
StopAnimation99
StopAttack52
SurrenderStatus165
SurrenderVote162
SurrenderVoteCalled163
SwapItems48
SwapItemsAnswer49
TargetHeldChampion74
TargetUnit73
TransientAck137
TutorialChatLine170
TutorialPopup148
TutorialPopupClosed149
TutorialShopOpened153
UnitDied34
UnitHighlighted146
UnitHighlightRemoved147
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync72
VoiceEvent139
VoiceEventDone167
VolumeMuted172
WaypointAck128
WaypointGroup129
WaypointGroupAtSpeed130
WorldEvent173

Against 1.0.0.87–1.0.0.95

Where a build from 1.0.0.96 up to, not including, 1.0.0.97 differs from one from 1.0.0.87 up to, not including, 1.0.0.96. Anything not named here is the same in both.

Laid out differently

Chapters

  • In the messages chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: No region id stands for no region.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client tells a bot’s champion by a byte of its own, not by its client id.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client that still holds the earlier object creates the new one but keeps the net id on the old one, so messages naming it reach the old object, and removing either leaves the id naming neither.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client removes a region once its lifetime reaches 0, so a region given a lifetime of 0 does not last.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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.96 and not 1.0.0.87–1.0.0.95: 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 time chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: The allowance starts at 0, and nothing but ClockConvergence changes it: a client that has had none takes ClockSync as it stands.
  • In the values chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client asks to swap only slots 0 to 5 (SwapItems).
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: In the section’s name, n is how many players the side has plus the count SpawnStart carries, added on both sides alike.
  • In the joining chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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.96 and not 1.0.0.87–1.0.0.95: ## 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).
  • In the joining chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: Before CharacterSelected, a client drops only what Units says it drops, and a GameEnded that arrives while it loads has it show an error and end.
  • In the units chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client drops a CreateChampion or a CreateNeutral that arrives before it has loaded the map’s ground grid, which it loads while loading the match.
  • In the vision chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: EnterLocalSight states the unit’s health.
  • In the vision chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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.
  • In the movement chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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).
  • In the movement chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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.
  • In the movement chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: 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.96 and not 1.0.0.87–1.0.0.95: The origin is the midpoint of the bounds a map’s navigation data covers, truncated to a whole number on each axis.
  • In the movement chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A movement whose flag says so carries a token beside the unit (see Movement).
  • In the movement chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client sends the path it would take, with its destination beside it in world floats.
  • In the replication chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: ## A champion | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 0 | 0 | Experience | float | | 0 | 1 | Gold in hand | float | | 0 | 2 to 3 | Which slots can be cast from: the champion’s own, then the second set | u32 | | 0 | 4 to 7 | What the spell in slots 0 to 3 costs | float | | 0 | 8 to 15 | What the spell in each of eight further slots costs | float | | 0 | 16 to 17 | 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 targetable | u32 | | 1 | 4 | Which sides can aim at it, as a set of bits | u32 | | 1 | 5 | Whether it is proof against strikes | u32 | | 1 | 6 | Damage it deals by striking | float | | 1 | 7 | Damage its spells deal before modifiers | float | | 1 | 8 | How often it turns a blow aside | float | | 1 | 9 | How often it strikes critically | float | | 1 | 10 | Armour | float | | 1 | 11 | Spell resistance | float | | 1 | 12 to 13 | How fast health and resource return | float | | 1 | 14 | How far it strikes from | float | | 1 | 15 to 17 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 18 to 19 | Flat and percent reduction of the spell damage it takes | float | | 1 | 20 | A multiplier on how fast it strikes | float | | 1 | 21 | A flat addition to how far it casts | float | | 1 | 22 | A modifier on its cooldowns | float | | 1 | 23 to 24 | How much armour it cuts through, flat then as a percent | float | | 1 | 25 to 26 | How much spell resistance it cuts through, flat then as a percent | float | | 1 | 27 | Life steal | float | | 1 | 28 | Spell vamp | float | | 2 | 0 to 1 | Whether it is proof against strikes, then against spells, as group 1 bits 5 and 1 | u32 | | 3 | 0 to 1 | Health and resource as they stand | float | | 3 | 2 to 3 | Health and resource at their greatest | float | | 3 | 4 to 5 | A flat and a percent addition to how far it sees | float | | 3 | 6 | How fast it moves | float | | 3 | 7 | A value whose meaning is not recorded | float | | 3 | 8 | Level | u32 | What the second set and the eight further slots hold is not recorded, and a server writes zero in their costs.
  • In the replication chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A champion’s eight further slots are slots 41 to 48.
  • In the match chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: While it resynchronises, a client ignores any message creating a unit it already holds.
  • In the shop chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: Suggested items are kept per champion, whatever the map or the mode.
  • In the objectives chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: CampCleared sets no time for the camp to fill again: a client keeps the state it gives for the camp.
  • In the interface chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client keeps a CameraLockSet that arrives while it holds its camera itself, and applies and answers it once the hold ends.
  • In the interface chapter, a passage holds for 1.0.0.96 and not 1.0.0.87–1.0.0.95: A client takes the lock from the player’s own settings when StartGame arrives, locked where they say nothing, and answers with CameraLock; CameraLockSet changes it for the match without changing those settings.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.96:

  • CastSpell, how.slot: “Which slot is being cast from, from 0 to 48. A client sends nothing for a slot above 48.”, where 1.0.0.87–1.0.0.95 has “Which slot is being cast from, from 0 to 48. A client still sends a larger slot, its low seven bits only.”
  • ClientFinished, its layout: “A client sends it each time GameEnded arrives once the match has started, and not for one that arrives while the match still loads.”, where 1.0.0.87–1.0.0.95 has “A client sends it each time GameEnded arrives.”
  • GameEnded, its layout: “A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it first shows an error. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.”, where 1.0.0.87–1.0.0.95 has “A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it shows an error and leaves as one abandoning the match. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.”
  • MapPing, its layout: no note, where 1.0.0.87–1.0.0.95 has “A client also sends it from the alert button on its HUD, naming its champion’s own place and writing nothing in particular where the target goes.”
  • UnitDied, its layout: “A client does nothing for a unit already dead. Otherwise it stops the unit’s cast and attack and, where killer is nonzero, puts the unit down for stayDown, whether or not it knows killer, and shows what that kind of unit shows for a kill, for a minion only where killer, or the unit that owns killer, is the client’s own champion and on another side.”, where 1.0.0.87–1.0.0.95 has “A client does nothing for a unit already dead. Otherwise it stops the unit’s cast and attack and, where killer is nonzero, puts the unit down for stayDown, whether or not it knows killer, and shows what that kind of unit shows for a kill, for a minion only where killer is on another side.”

1.0.0.97

Client builds from 1.0.0.97 up to, not including, 1.0.0.98. Patch notes: V1.0.0.97.

Build checkedPassedFailedSkippedCommitDate
1.0.0.971004822e4c72026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, FogSet, ForceDeath, HealthBar, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (169)
MessageCommand
AfkWarning151
AnimationOverrides183
Announcement71
AppearancePopped103
AppearancePushed102
Attack58
AttackFrom59
Autocast43
BotDebug114
BotState116
BotTargets115
BuildingDied84
BuyItem45
Camera64
CameraAck119
CameraBehaviour106
CameraLock65
CameraLockSet136
CampCleared190
CastSpell35
ChainTargets112
ChampionStats182
CharacterSelected15
Chat0
ClientEvent117
ClientFinished17
ClientReady16
ClientVersion72
ClockConvergence87
ClockReply86
ClockSync85
CloseShop152
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory121
DestroyMissile111
EffectAdded37
EffectAddedGroup38
EffectCount91
EffectCountGroup92
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight62
EnterSight60
Exit124
ExperienceGained28
FaceDirection105
FacePosition105
FadeMinions180
FadeRemoved146
FadeSounds181
FadeTo145
FloatingText30
FogToggled134
GameEnded14
GameSpeed144
GoldGained27
GoldRedirect101
GreyscaleWhenDead176
HudDisabled177
HudHighlighted161
HudHighlightToggled170
InhibitorState70
InputLock153
InputLockToggled133
InventorySlot44
ItemAdded46
ItemUsed51
JoinSide100
KillParticle22
LeaveLocalSight63
LeaveSight61
LevelUp52
LoadingProgress122
Loadout95
MapPing25
MatchIdentity120
MinimapHighlighted169
MissileHits167
MissileReport68
MissileState68
MoveCamera139
MovementBounds135
MoveOrder20
NexusIdle179
NexusSkin175
ObjectiveHidden156
ObjectiveReplaced157
ObjectiveShown155
ParticlesCreated21
Path88
PathWithSpeed89
Paused142
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected125
QueryStatus3
QueryStatusAnswer4
Reconnected127
ReconnectedInMatch126
RegionAdded98
RegionAttached97
RegionRemoved96
Register0
Registered0
RemoveItem47
RemoveItemAnswer48
Replication137
Respawned83
Resumed143
ResyncEnded128
Revived82
Roster103
SeatChampion101
SeatLoadProgress123
SeatName102
SelectObject66
ShopHighlighted162
SideTextHidden159
SideTextRefreshed160
SideTextShown158
SpawnEnd12
SpawnFromBarracks54
SpawnPet32
SpawnStart5
SpawnUnit99
SpellCastAnswer36
SpellCooldown33
SpellNameChanged178
SpellNumbers172
SpellTargetingChanged141
SpellUpgraded19
StartGame13
StatTick69
StopAnimation100
StopAttack53
SurrenderStatus166
SurrenderVote163
SurrenderVoteCalled164
SwapItems49
SwapItemsAnswer50
TargetHeldChampion75
TargetUnit74
TransientAck138
TutorialChatLine171
TutorialPopup149
TutorialPopupClosed150
TutorialShopOpened154
UnitDied34
UnitHighlighted147
UnitHighlightRemoved148
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync73
VoiceEvent140
VoiceEventDone168
VolumeMuted173
WaypointAck129
WaypointGroup130
WaypointGroupAtSpeed131
WorldEvent174

Against 1.0.0.96

Where a build from 1.0.0.97 up to, not including, 1.0.0.98 differs from one from 1.0.0.96 up to, not including, 1.0.0.97. Anything not named here is the same in both.

In 1.0.0.97, not in 1.0.0.96

MessageSent byCommandWhat it does
InventorySlotserver44 on eventsSet one slot of a unit’s inventory

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.961.0.0.97Messages
clock85–8686–87ClockReply, ClockConvergence
events45–18946–190ItemAdded, RemoveItemAnswer, SwapItemsAnswer, ItemUsed, LevelUp, StopAttack, SpawnFromBarracks, Attack, AttackFrom, LeaveSight, EnterLocalSight, LeaveLocalSight, MissileState, StatTick, InhibitorState, Announcement, VersionSync, TargetUnit, TargetHeldChampion, Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount, EffectCountGroup, Loadout, RegionRemoved, RegionAttached, RegionAdded, SpawnUnit, StopAnimation, GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets, BotDebug, BotTargets, BotState, ClientEvent, CameraAck, MatchIdentity, DeathHistory, Reconnected, ResyncEnded, WaypointGroupAtSpeed, InputLockToggled, FogToggled, MovementBounds, CameraLockSet, MoveCamera, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeTo, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop, InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent, NexusSkin, GreyscaleWhenDead, HudDisabled, SpellNameChanged, NexusIdle, FadeMinions, FadeSounds, ChampionStats, AnimationOverrides, CampCleared
requests44–16745–168BuyItem, RemoveItem, SwapItems, Camera, CameraLock, SelectObject, MissileReport, ClientVersion, FacePosition, LoadingProgress, Exit, ReconnectedInMatch, WaypointAck, TransientAck, TutorialPopupClosed, TutorialShopOpened, SurrenderVote, VoiceEventDone
transient122–136123–137SeatLoadProgress, WaypointGroup, Replication

Laid out differently

  • EnterSight
    • Its command is 59 in 1.0.0.96 and 60 in 1.0.0.97.
    • itemCount is in 1.0.0.97 (u8) at the start, and not in 1.0.0.96.
    • items is in 1.0.0.97 (count in itemCount × HeldItem), after itemCount, and not in 1.0.0.96.
  • PlayerDisconnected
    • Its command is 124 in 1.0.0.96 and 125 in 1.0.0.97.
    • champion is in 1.0.0.97 (u32) at the start, and not in 1.0.0.96.
    • clientId is in 1.0.0.96 and not in 1.0.0.97.

Chapters

  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: No region id stands for no region.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client tells a bot’s champion by a byte of its own, not by its client id.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client that still holds the earlier object creates the new one but keeps the net id on the old one, so messages naming it reach the old object, and removing either leaves the id naming neither.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Nothing a player sees depends on it.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: | Map | Holds | | –– | ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– | | 1, 2 | the six Barracks names, HQ_T1, HQ_T2, orderShop01, chaosShop01, the six 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 |
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: CreateTurret matches a turret’s name without regard to case, and does nothing where the map holds no turret of that name.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: LeaveLocalSight hides an object too, and it is held as before.
  • In the objects chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: SpawnPet names the pet’s owner in its header and carries the new pet’s net id in its body, and does nothing where that owner is not held.
  • In the space chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client has data for maps 1 to 4: | map | Origin of its paths | | —– | —————–– | | 1 | 6991, 7223 | | 2 | 6991, 7223 | | 3 | 7479, 7147 | | 4 | 6710, 6696 |
  • In the values chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A champion’s own book ends at slot 48.
  • In the values chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A champion’s inventory ends at slot 36, and a player sees and uses only slots 0 to 5.
  • In the values chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Each unit has 32 slots for the effects it carries, 0 to 31.
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: The client has maps 1, 2, 3 and 4.
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: CreateTurret names a building by its name alone, compared without regard to case, and one naming no building does nothing.
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: room.dsc lists each object as a .sco, but its file is a binary .SCB, holding its name within it rather than on a Name= line.
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: In the section’s name, n is how many players the side has plus the count SpawnStart carries, added on both sides alike.
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A champion’s spells and attacks are in DATA/Spells/<Spell>.inibin with all other spells.
  • In the data chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Map 3 alone adds an Items.inibin.
  • In the joining chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client finds each argument between a pair of double quotes, and reads nothing outside them.
  • In the joining chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Before CharacterSelected, a client drops only what Units says it drops, and a GameEnded that arrives while it loads has it show an error and end.
  • In the units chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client drops a CreateChampion or a CreateNeutral that arrives before it has loaded the map’s ground grid, which it loads while loading the match.
  • In the vision chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: EnterSight states where the unit stands or which path it walks, and nothing of its looks, shields, health or resource.
  • In the vision chapter, a passage holds for 1.0.0.97 and not 1.0.0.96: EnterSight also states the unit’s items.
  • In the replication chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A prop answers to no table, and a client takes nothing a batch carries for one.
  • In the replication chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A champion’s eight further slots are slots 41 to 48.
  • In the match chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: The speed GameSpeed sets takes effect at once: sent during a hold, it ends the hold, and a Resumed after it changes nothing.
  • In the match chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client reads nothing from Paused.
  • In the match chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client reads nothing from Resumed.
  • In the combat chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Only a turret takes TargetUnit; every other unit ignores it.
  • In the combat chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Nothing in UnitDied leaves the unit standing: every unit it puts down dies.
  • In the combat chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client reads nothing from Revived or Respawned: each brings the champion back where it stands.
  • In the spells chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Only a missile that flies straight acts on MissileHits.
  • In the shop chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: Suggested items are kept per champion, whatever the map or the mode.
  • In the communication chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client never answers a VoiceEvent it cannot play.
  • In the guidance chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client takes TutorialPopup in any match.
  • In the spectating chapter, a passage holds for 1.0.0.96 and not 1.0.0.97: A client cannot watch a match: no start-up word or message makes it watch.

1.0.0.98

Client builds from 1.0.0.98 up to, not including, 1.0.0.99. Patch notes: V1.0.0.98.

Build checkedPassedFailedSkippedCommitDate
1.0.0.981004ef837432026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, ForceDeath, HealthBar, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (170)
MessageCommand
AfkWarning152
AnimationOverrides184
Announcement71
AppearancePopped103
AppearancePushed102
Attack58
AttackFrom59
Autocast43
BotDebug114
BotState116
BotTargets115
BuildingDied84
BuyItem45
Camera64
CameraAck119
CameraBehaviour106
CameraLock65
CameraLockSet137
CampCleared191
CastSpell35
ChainTargets112
ChampionStats183
CharacterSelected15
Chat0
ClientEvent117
ClientFinished17
ClientReady16
ClientVersion72
ClockConvergence87
ClockReply86
ClockSync85
CloseShop153
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory121
DestroyMissile111
EffectAdded37
EffectAddedGroup38
EffectCount91
EffectCountGroup92
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight62
EnterSight60
Exit124
ExperienceGained28
FaceDirection105
FacePosition105
FadeMinions181
FadeRemoved147
FadeSounds182
FadeTo146
FloatingText30
FogSet135
FogToggled134
GameEnded14
GameSpeed145
GoldGained27
GoldRedirect101
GreyscaleWhenDead177
HudDisabled178
HudHighlighted162
HudHighlightToggled171
InhibitorState70
InputLock154
InputLockToggled133
InventorySlot44
ItemAdded46
ItemUsed51
JoinSide100
KillParticle22
LeaveLocalSight63
LeaveSight61
LevelUp52
LoadingProgress122
Loadout95
MapPing25
MatchIdentity120
MinimapHighlighted170
MissileHits168
MissileReport68
MissileState68
MoveCamera140
MovementBounds136
MoveOrder20
NexusIdle180
NexusSkin176
ObjectiveHidden157
ObjectiveReplaced158
ObjectiveShown156
ParticlesCreated21
Path88
PathWithSpeed89
Paused143
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected125
QueryStatus3
QueryStatusAnswer4
Reconnected127
ReconnectedInMatch126
RegionAdded98
RegionAttached97
RegionRemoved96
Register0
Registered0
RemoveItem47
RemoveItemAnswer48
Replication138
Respawned83
Resumed144
ResyncEnded128
Revived82
Roster103
SeatChampion101
SeatLoadProgress123
SeatName102
SelectObject66
ShopHighlighted163
SideTextHidden160
SideTextRefreshed161
SideTextShown159
SpawnEnd12
SpawnFromBarracks54
SpawnPet32
SpawnStart5
SpawnUnit99
SpellCastAnswer36
SpellCooldown33
SpellNameChanged179
SpellNumbers173
SpellTargetingChanged142
SpellUpgraded19
StartGame13
StatTick69
StopAnimation100
StopAttack53
SurrenderStatus167
SurrenderVote164
SurrenderVoteCalled165
SwapItems49
SwapItemsAnswer50
TargetHeldChampion75
TargetUnit74
TransientAck139
TutorialChatLine172
TutorialPopup150
TutorialPopupClosed151
TutorialShopOpened155
UnitDied34
UnitHighlighted148
UnitHighlightRemoved149
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync73
VoiceEvent141
VoiceEventDone169
VolumeMuted174
WaypointAck129
WaypointGroup130
WaypointGroupAtSpeed131
WorldEvent175

Against 1.0.0.97

Where a build from 1.0.0.98 up to, not including, 1.0.0.99 differs from one from 1.0.0.97 up to, not including, 1.0.0.98. Anything not named here is the same in both.

In 1.0.0.98, not in 1.0.0.97

MessageSent byCommandWhat it does
FogSetserver135 on eventsTurn the drawing of the fog of war on or off

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Structs

  • Particle
    • atX is f32 in 1.0.0.97 and i16 in 1.0.0.98.
    • atZ is f32 in 1.0.0.97 and i16 in 1.0.0.98.
    • towardX is f32 in 1.0.0.97 and i16 in 1.0.0.98.
    • towardZ is f32 in 1.0.0.97 and i16 in 1.0.0.98.
    • ownerX is f32 in 1.0.0.97 and i16 in 1.0.0.98.
    • ownerZ is f32 in 1.0.0.97 and i16 in 1.0.0.98.
    • facingX is in 1.0.0.98 (f32), after ownerZ, and not in 1.0.0.97.
    • facingY is in 1.0.0.98 (f32), after facingX, and not in 1.0.0.97.
    • facingZ is in 1.0.0.98 (f32), after facingY, and not in 1.0.0.97.

1.0.0.99–1.0.0.102

Client builds from 1.0.0.99 up to, not including, 1.0.0.103. Patch notes: V1.0.0.99, V1.0.0.100, V1.0.0.101, V1.0.0.102.

Build checkedPassedFailedSkippedCommitDate
1.0.0.991004d422aad2026-11-02
1.0.0.1001004df9a7cc2026-11-02
1.0.0.1011004bfa5a232026-11-02
1.0.0.10210049c2150c2026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, ForceDeath, HealthBar, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (170)
MessageCommand
AfkWarning152
AnimationOverrides184
Announcement71
AppearancePopped103
AppearancePushed102
Attack58
AttackFrom59
Autocast43
BotDebug114
BotState116
BotTargets115
BuildingDied84
BuyItem45
Camera64
CameraAck119
CameraBehaviour106
CameraLock65
CameraLockSet137
CampCleared191
CastSpell35
ChainTargets112
ChampionStats183
CharacterSelected15
Chat0
ClientEvent117
ClientFinished17
ClientReady16
ClientVersion72
ClockConvergence87
ClockReply86
ClockSync85
CloseShop153
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory121
DestroyMissile111
EffectAdded37
EffectAddedGroup38
EffectCount91
EffectCountGroup92
EffectRemoved41
EffectRemovedGroup42
EffectReplaced39
EffectReplacedGroup40
EmotePlayed11
EnterLocalSight62
EnterSight60
Exit124
ExperienceGained28
FaceDirection105
FacePosition105
FadeMinions181
FadeRemoved147
FadeSounds182
FadeTo146
FloatingText30
FogSet135
FogToggled134
GameEnded14
GameSpeed145
GoldGained27
GoldRedirect101
GreyscaleWhenDead177
HudDisabled178
HudHighlighted162
HudHighlightToggled171
InhibitorState70
InputLock154
InputLockToggled133
InventorySlot44
ItemAdded46
ItemUsed51
JoinSide100
KillParticle22
LeaveLocalSight63
LeaveSight61
LevelUp52
LoadingProgress122
Loadout95
MapPing25
MatchIdentity120
MinimapHighlighted170
MissileHits168
MissileReport68
MissileState68
MoveCamera140
MovementBounds136
MoveOrder20
NexusIdle180
NexusSkin176
ObjectiveHidden157
ObjectiveReplaced158
ObjectiveShown156
ParticlesCreated21
Path88
PathWithSpeed89
Paused143
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected125
QueryStatus3
QueryStatusAnswer4
Reconnected127
ReconnectedInMatch126
RegionAdded98
RegionAttached97
RegionRemoved96
Register0
Registered0
RemoveItem47
RemoveItemAnswer48
Replication138
Respawned83
Resumed144
ResyncEnded128
Revived82
Roster103
SeatChampion101
SeatLoadProgress123
SeatName102
SelectObject66
ShopHighlighted163
SideTextHidden160
SideTextRefreshed161
SideTextShown159
SpawnEnd12
SpawnFromBarracks54
SpawnPet32
SpawnStart5
SpawnUnit99
SpellCastAnswer36
SpellCooldown33
SpellNameChanged179
SpellNumbers173
SpellTargetingChanged142
SpellUpgraded19
StartGame13
StatTick69
StopAnimation100
StopAttack53
SurrenderStatus167
SurrenderVote164
SurrenderVoteCalled165
SwapItems49
SwapItemsAnswer50
TargetHeldChampion75
TargetUnit74
TransientAck139
TutorialChatLine172
TutorialPopup150
TutorialPopupClosed151
TutorialShopOpened155
UnitDied34
UnitHighlighted148
UnitHighlightRemoved149
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync73
VoiceEvent141
VoiceEventDone169
VolumeMuted174
WaypointAck129
WaypointGroup130
WaypointGroupAtSpeed131
WorldEvent175

Against 1.0.0.98

Where a build from 1.0.0.99 up to, not including, 1.0.0.103 differs from one from 1.0.0.98 up to, not including, 1.0.0.99. 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.99–1.0.0.102:

  • Autocast, slot: “The slot cast by itself, from -1 to 51. A client takes a value outside that range as it stands. What -1 does is not recorded.”, where 1.0.0.98 has “The slot cast by itself, from -1 to 48. A client takes a value outside that range as it stands. What -1 does is not recorded.”
  • EffectAdded, slot: “Which of the unit’s effect slots it sits in. A client ignores the message where it is above 31.”, where 1.0.0.98 has “Which of the unit’s effect slots it sits in. A client fails where it is above 31.”
  • EffectCount, slot: “Which slot. A client ignores the message where it is above 31.”, where 1.0.0.98 has “Which slot. A client fails where it is above 31.”
  • EffectCount, caster: “The unit that put it there.”, where 1.0.0.98 has “The unit that put it there. Where the client holds no such unit, it leaves the effect with no caster.”
  • EffectRemoved, slot: “Which slot it sat in. A client ignores the message where it is above 31.”, where 1.0.0.98 has “Which slot it sat in. A client fails where it is above 31.”
  • EffectReplaced, slot: “Which of the unit’s effect slots. A client ignores the message where it is above 31.”, where 1.0.0.98 has “Which of the unit’s effect slots. A client fails where it is above 31.”
  • EffectReplaced, caster: “The unit that put it there.”, where 1.0.0.98 has “The unit that put it there. Where the client holds no such unit, it leaves the effect with no caster.”
  • InventorySlot, slot: “Which slot, 0 to 37. A client ignores the message from 38 up.”, where 1.0.0.98 has “Which slot, 0 to 36. A client ignores the message from 37 up.”
  • ItemUsed, slot: “Which slot, 0 to 37. A client ignores the message from 38 up, and where the slot is empty.”, where 1.0.0.98 has “Which slot, 0 to 36. A client ignores the message from 37 up, and where the slot is empty.”
  • RemoveItem, sell: “A client sends 1 from the shop or a hotkey, and 0 after an answer to a purchase.”, where 1.0.0.98 has “A client sends 1.”
  • RemoveItemAnswer, slot: “Which slot, 0 to 37. A client drops the message from 38 up.”, where 1.0.0.98 has “Which slot, 0 to 36. A client drops the message from 37 up.”
  • SpellCastAnswer, its layout: “There is no byte for ending a charge: the casting follows the sync id.”, where 1.0.0.98 has “There is no byte for ending a charge: the casting follows the sync id. A client fails where the casting’s size is wrong, for it then casts with no spell.”

1.0.0.103

Client builds from 1.0.0.103 up to, not including, 1.0.0.104. Patch notes: V1.0.0.103.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1031004b41ea762026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, QuestEvent, QuestUpdated, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, TipEvent, TipShown, UiHighlight, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (172)
MessageCommand
AfkWarning154
AnimationOverrides186
Announcement72
AppearancePopped105
AppearancePushed104
Attack59
AttackFrom60
Autocast44
BotDebug116
BotState118
BotTargets117
BuildingDied85
BuyItem46
Camera65
CameraAck121
CameraBehaviour108
CameraLock66
CameraLockSet139
CampCleared193
CastSpell36
ChainTargets114
ChampionStats185
CharacterSelected15
Chat0
ClientEvent119
ClientFinished17
ClientReady16
ClientVersion73
ClockConvergence88
ClockReply87
ClockSync86
CloseShop155
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory123
DestroyMissile113
EffectAdded38
EffectAddedGroup39
EffectCount92
EffectCountGroup93
EffectRemoved42
EffectRemovedGroup43
EffectReplaced40
EffectReplacedGroup41
EmotePlayed11
EnterLocalSight63
EnterSight61
Exit126
ExperienceGained28
FaceDirection107
FacePosition107
FadeMinions183
FadeRemoved149
FadeSounds184
FadeTo148
FloatingText30
FogSet137
FogToggled136
ForceDeath35
GameEnded14
GameSpeed147
GoldGained27
GoldRedirect103
GreyscaleWhenDead179
HealthBar102
HudDisabled180
HudHighlighted164
HudHighlightToggled173
InhibitorState71
InputLock156
InputLockToggled135
InventorySlot45
ItemAdded47
ItemUsed52
JoinSide100
KillParticle22
LeaveLocalSight64
LeaveSight62
LevelUp53
LoadingProgress124
Loadout96
MapPing25
MatchIdentity122
MinimapHighlighted172
MissileHits170
MissileReport69
MissileState69
MoveCamera142
MovementBounds138
MoveOrder20
NexusIdle182
NexusSkin178
ObjectiveHidden159
ObjectiveReplaced160
ObjectiveShown158
ParticlesCreated21
Path89
PathWithSpeed90
Paused145
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected127
QueryStatus3
QueryStatusAnswer4
Reconnected129
ReconnectedInMatch128
RegionAdded99
RegionAttached98
RegionRemoved97
Register0
Registered0
RemoveItem48
RemoveItemAnswer49
Replication140
Respawned84
Resumed146
ResyncEnded130
Revived83
Roster103
SeatChampion101
SeatLoadProgress125
SeatName102
SelectObject67
ShopHighlighted165
SideTextHidden162
SideTextRefreshed163
SideTextShown161
SpawnEnd12
SpawnFromBarracks55
SpawnPet32
SpawnStart5
SpawnUnit100
SpellCastAnswer37
SpellCooldown33
SpellNameChanged181
SpellNumbers175
SpellTargetingChanged144
SpellUpgraded19
StartGame13
StatTick70
StopAnimation101
StopAttack54
SurrenderStatus169
SurrenderVote166
SurrenderVoteCalled167
SwapItems50
SwapItemsAnswer51
TargetHeldChampion76
TargetUnit75
TransientAck141
TutorialChatLine174
TutorialPopup152
TutorialPopupClosed153
TutorialShopOpened157
UnitDied34
UnitHighlighted150
UnitHighlightRemoved151
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync74
VoiceEvent143
VoiceEventDone171
VolumeMuted176
WaypointAck131
WaypointGroup132
WaypointGroupAtSpeed133
WorldEvent177

Against 1.0.0.99–1.0.0.102

Where a build from 1.0.0.103 up to, not including, 1.0.0.104 differs from one from 1.0.0.99 up to, not including, 1.0.0.103. Anything not named here is the same in both.

In 1.0.0.103, not in 1.0.0.99–1.0.0.102

MessageSent byCommandWhat it does
ForceDeathserver35 on eventsPut a unit into its death
HealthBarserver102 on eventsWhat a server sends about a unit’s health bar

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.99–1.0.0.1021.0.0.103Messages
clock86–8787–88ClockReply, ClockConvergence
events36–10037–101SpellCastAnswer, EffectAdded, EffectAddedGroup, EffectReplaced, EffectReplacedGroup, EffectRemoved, EffectRemovedGroup, Autocast, InventorySlot, ItemAdded, RemoveItemAnswer, SwapItemsAnswer, ItemUsed, LevelUp, StopAttack, SpawnFromBarracks, Attack, AttackFrom, EnterSight, LeaveSight, EnterLocalSight, LeaveLocalSight, MissileState, StatTick, InhibitorState, Announcement, VersionSync, TargetUnit, TargetHeldChampion, Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount, EffectCountGroup, Loadout, RegionRemoved, RegionAttached, RegionAdded, SpawnUnit, StopAnimation
events101–191103–193GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets, BotDebug, BotTargets, BotState, ClientEvent, CameraAck, MatchIdentity, DeathHistory, PlayerDisconnected, Reconnected, ResyncEnded, WaypointGroupAtSpeed, InputLockToggled, FogToggled, FogSet, MovementBounds, CameraLockSet, MoveCamera, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeTo, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop, InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent, NexusSkin, GreyscaleWhenDead, HudDisabled, SpellNameChanged, NexusIdle, FadeMinions, FadeSounds, ChampionStats, AnimationOverrides, CampCleared
requests35–7236–73CastSpell, BuyItem, RemoveItem, SwapItems, Camera, CameraLock, SelectObject, MissileReport, ClientVersion
requests105–169107–171FacePosition, LoadingProgress, Exit, ReconnectedInMatch, WaypointAck, TransientAck, TutorialPopupClosed, TutorialShopOpened, SurrenderVote, VoiceEventDone
transient123–138125–140SeatLoadProgress, WaypointGroup, Replication

Laid out differently

  • CreateNeutral (vectors: inactive-on-1-0-0-103)
    • extra is in 1.0.0.103 (u16), after camp, and not in 1.0.0.99–1.0.0.102.
  • UnitDied
    • standing is in 1.0.0.103 (u8), after stayDown, and not in 1.0.0.99–1.0.0.102.

1.0.0.104

Client builds from 1.0.0.104 up to, not including, 1.0.0.105. Patch notes: V1.0.0.104.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1041004301dab32026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (178)
MessageCommand
AfkWarning159
AnimationOverrides192
Announcement72
AppearancePopped105
AppearancePushed104
Attack59
AttackFrom60
Autocast44
BotDebug116
BotState118
BotTargets117
BuildingDied85
BuyItem46
Camera65
CameraAck121
CameraBehaviour108
CameraLock66
CameraLockSet139
CampCleared199
CastSpell36
ChainTargets114
ChampionStats191
CharacterSelected15
Chat0
ClientEvent119
ClientFinished17
ClientReady16
ClientVersion73
ClockConvergence88
ClockReply87
ClockSync86
CloseShop160
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory123
DestroyMissile113
EffectAdded38
EffectAddedGroup39
EffectCount92
EffectCountGroup93
EffectRemoved42
EffectRemovedGroup43
EffectReplaced40
EffectReplacedGroup41
EmotePlayed11
EnterLocalSight63
EnterSight61
Exit126
ExperienceGained28
FaceDirection107
FacePosition107
FadeMinions189
FadeRemoved154
FadeSounds190
FadeTo153
FloatingText30
FogSet137
FogToggled136
ForceDeath35
GameEnded14
GameSpeed152
GoldGained27
GoldRedirect103
GreyscaleWhenDead185
HealthBar102
HudDisabled186
HudHighlighted170
HudHighlightToggled179
InhibitorState71
InputLock161
InputLockToggled135
InventorySlot45
ItemAdded47
ItemUsed52
JoinSide100
KillParticle22
LeaveLocalSight64
LeaveSight62
LevelUp53
LoadingProgress124
Loadout96
MapPing25
MatchIdentity122
MinimapHighlighted178
MissileHits176
MissileReport69
MissileState69
MoveCamera142
MovementBounds138
MoveOrder20
NexusIdle188
NexusSkin184
ObjectiveHidden165
ObjectiveReplaced166
ObjectiveShown164
ParticlesCreated21
Path89
PathWithSpeed90
Paused150
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected127
QueryStatus3
QueryStatusAnswer4
QuestEvent144
QuestUpdated143
Reconnected129
ReconnectedInMatch128
RegionAdded99
RegionAttached98
RegionRemoved97
Register0
Registered0
RemoveItem48
RemoveItemAnswer49
Replication140
Respawned84
Resumed151
ResyncEnded130
Revived83
Roster103
SeatChampion101
SeatLoadProgress125
SeatName102
SelectObject67
ShopHighlighted171
SideTextHidden168
SideTextRefreshed169
SideTextShown167
SpawnEnd12
SpawnFromBarracks55
SpawnPet32
SpawnStart5
SpawnUnit100
SpellCastAnswer37
SpellCooldown33
SpellNameChanged187
SpellNumbers181
SpellTargetingChanged149
SpellUpgraded19
StartGame13
StatsRequest163
StatTick70
StopAnimation101
StopAttack54
SurrenderStatus175
SurrenderVote172
SurrenderVoteCalled173
SwapItems50
SwapItemsAnswer51
TargetHeldChampion76
TargetUnit75
TipEvent147
TipShown145
TransientAck141
TutorialChatLine180
TutorialPopup157
TutorialPopupClosed158
TutorialShopOpened162
UiHighlight146
UnitDied34
UnitHighlighted155
UnitHighlightRemoved156
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync74
VoiceEvent148
VoiceEventDone177
VolumeMuted182
WaypointAck131
WaypointGroup132
WaypointGroupAtSpeed133
WorldEvent183

Against 1.0.0.103

Where a build from 1.0.0.104 up to, not including, 1.0.0.105 differs from one from 1.0.0.103 up to, not including, 1.0.0.104. Anything not named here is the same in both.

In 1.0.0.104, not in 1.0.0.103

MessageSent byCommandWhat it does
QuestEventclient144 on requestsWhat a client sends as its player points at a quest in the tracker (QuestUpdated), stops pointing at it, or clicks it
QuestUpdatedserver143 on eventsAdd a quest to the quest tracker, complete it or remove it
StatsRequestclient163 on requestsWhat a client sends about itself
TipEventclient147 on requestsWhat a client sends about a tip it has shown or dismissed
TipShownserver145 on eventsPut a note in front of a seat
UiHighlightserver146 on eventsPlace an animated highlight over one element of the screen, or to take one away

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • ClientEvent
    • event takes 79 alert, 80 scoreboardOpened in 1.0.0.104 and not in 1.0.0.103.
  • CreateNeutral
    • facingX is in 1.0.0.104 (f32), after campAtZ, and not in 1.0.0.103.
    • facingY is in 1.0.0.104 (f32), after facingX, and not in 1.0.0.103.
    • facingZ is in 1.0.0.104 (f32), after facingY, and not in 1.0.0.103.
  • DeathHistory
    • entries[].event takes 80 scoreboardOpened in 1.0.0.104 and not in 1.0.0.103.
  • FogSet
    • shown is in 1.0.0.104 (u8) at the start, and not in 1.0.0.103.
  • MissileReport
    • age is in 1.0.0.104 (f32), after targetZ, and not in 1.0.0.103.
  • MissileState
    • speed is in 1.0.0.104 (f32), after unitAtZ, and not in 1.0.0.103.
  • PingPlaced
    • how is in 1.0.0.104 (1-byte bits), after source, and not in 1.0.0.103.
  • SpawnStart
    • botsOnOneSide is in 1.0.0.104 (u8) at the start, and not in 1.0.0.103.
    • botsOnTheOther is in 1.0.0.104 (u8), after botsOnOneSide, and not in 1.0.0.103.
    • count is in 1.0.0.103 and not in 1.0.0.104.
  • VersionSync
    • mode is in 1.0.0.104 (text, 128 bytes), after build, and not in 1.0.0.103.
  • VoiceEvent
    • Its command is 143 in 1.0.0.103 and 148 in 1.0.0.104.
    • folder is in 1.0.0.104 (text, 64 bytes) at the start, and not in 1.0.0.103.
    • handle is in 1.0.0.104 (u32), after callback, and not in 1.0.0.103.
  • VoiceEventDone
    • Its command is 171 in 1.0.0.103 and 177 in 1.0.0.104.
    • handle is in 1.0.0.104 (u32) at the start, and not in 1.0.0.103.
  • WorldEvent
    • Its command is 177 in 1.0.0.103 and 183 in 1.0.0.104.
    • event takes 80 scoreboardOpened in 1.0.0.104 and not in 1.0.0.103.

Chapters

  • In the space chapter, a passage holds for 1.0.0.104 and not 1.0.0.103: 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.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.104:

  • SelectObject, selected: “The network object now selected, or zero where none is.”, where 1.0.0.103 has “A client writes zero here.”

1.0.0.105

Client builds from 1.0.0.105 up to, not including, 1.0.0.106. Patch notes: V1.0.0.105.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1051004bc605eb2026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, PauseAnimation, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellLevel, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (178)
MessageCommand
AfkWarning159
AnimationOverrides192
Announcement72
AppearancePopped105
AppearancePushed104
Attack59
AttackFrom60
Autocast44
BotDebug116
BotState118
BotTargets117
BuildingDied85
BuyItem46
Camera65
CameraAck121
CameraBehaviour108
CameraLock66
CameraLockSet139
CampCleared199
CastSpell36
ChainTargets114
ChampionStats191
CharacterSelected15
Chat0
ClientEvent119
ClientFinished17
ClientReady16
ClientVersion73
ClockConvergence88
ClockReply87
ClockSync86
CloseShop160
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory123
DestroyMissile113
EffectAdded38
EffectAddedGroup39
EffectCount92
EffectCountGroup93
EffectRemoved42
EffectRemovedGroup43
EffectReplaced40
EffectReplacedGroup41
EmotePlayed11
EnterLocalSight63
EnterSight61
Exit126
ExperienceGained28
FaceDirection107
FacePosition107
FadeMinions189
FadeRemoved154
FadeSounds190
FadeTo153
FloatingText30
FogSet137
FogToggled136
ForceDeath35
GameEnded14
GameSpeed152
GoldGained27
GoldRedirect103
GreyscaleWhenDead185
HealthBar102
HudDisabled186
HudHighlighted170
HudHighlightToggled179
InhibitorState71
InputLock161
InputLockToggled135
InventorySlot45
ItemAdded47
ItemUsed52
JoinSide100
KillParticle22
LeaveLocalSight64
LeaveSight62
LevelUp53
LoadingProgress124
Loadout96
MapPing25
MatchIdentity122
MinimapHighlighted178
MissileHits176
MissileReport69
MissileState69
MoveCamera142
MovementBounds138
MoveOrder20
NexusIdle188
NexusSkin184
ObjectiveHidden165
ObjectiveReplaced166
ObjectiveShown164
ParticlesCreated21
Path89
PathWithSpeed90
Paused150
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected127
QueryStatus3
QueryStatusAnswer4
QuestEvent144
QuestUpdated143
Reconnected129
ReconnectedInMatch128
RegionAdded99
RegionAttached98
RegionRemoved97
Register0
Registered0
RemoveItem48
RemoveItemAnswer49
Replication140
Respawned84
Resumed151
ResyncEnded130
Revived83
Roster103
SeatChampion101
SeatLoadProgress125
SeatName102
SelectObject67
ShopHighlighted171
SideTextHidden168
SideTextRefreshed169
SideTextShown167
SpawnEnd12
SpawnFromBarracks55
SpawnPet32
SpawnStart5
SpawnUnit100
SpellCastAnswer37
SpellCooldown33
SpellNameChanged187
SpellNumbers181
SpellTargetingChanged149
SpellUpgraded19
StartGame13
StatsRequest163
StatTick70
StopAnimation101
StopAttack54
SurrenderStatus175
SurrenderVote172
SurrenderVoteCalled173
SwapItems50
SwapItemsAnswer51
TargetHeldChampion76
TargetUnit75
TipEvent147
TipShown145
TransientAck141
TutorialChatLine180
TutorialPopup157
TutorialPopupClosed158
TutorialShopOpened162
UiHighlight146
UnitDied34
UnitHighlighted155
UnitHighlightRemoved156
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync74
VoiceEvent148
VoiceEventDone177
VolumeMuted182
WaypointAck131
WaypointGroup132
WaypointGroupAtSpeed133
WorldEvent183

Against 1.0.0.104

Where a build from 1.0.0.105 up to, not including, 1.0.0.106 differs from one from 1.0.0.104 up to, not including, 1.0.0.105. Anything not named here is the same in both.

Laid out differently

  • CreateChampion
    • rank is in 1.0.0.105 (u8), after bot, and not in 1.0.0.104.

1.0.0.106

Client builds from 1.0.0.106 up to, not including, 1.0.0.107. Patch notes: V1.0.0.106.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1061004650539d2026-11-02

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, ChampionDied, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (180)
MessageCommand
AfkWarning159
AnimationOverrides192
Announcement72
AppearancePopped105
AppearancePushed104
Attack59
AttackFrom60
Autocast44
BotDebug116
BotState118
BotTargets117
BuildingDied85
BuyItem46
Camera65
CameraAck121
CameraBehaviour108
CameraLock66
CameraLockSet139
CampCleared199
CastSpell36
ChainTargets114
ChampionStats191
CharacterSelected15
Chat0
ClientEvent119
ClientFinished17
ClientReady16
ClientVersion73
ClockConvergence88
ClockReply87
ClockSync86
CloseShop160
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory123
DestroyMissile113
EffectAdded38
EffectAddedGroup39
EffectCount92
EffectCountGroup93
EffectRemoved42
EffectRemovedGroup43
EffectReplaced40
EffectReplacedGroup41
EmotePlayed11
EnterLocalSight63
EnterSight61
Exit126
ExperienceGained28
FaceDirection107
FacePosition107
FadeMinions189
FadeRemoved154
FadeSounds190
FadeTo153
FloatingText30
FogSet137
FogToggled136
ForceDeath35
GameEnded14
GameSpeed152
GoldGained27
GoldRedirect103
GreyscaleWhenDead185
HealthBar102
HudDisabled186
HudHighlighted170
HudHighlightToggled179
InhibitorState71
InputLock161
InputLockToggled135
InventorySlot45
ItemAdded47
ItemUsed52
JoinSide100
KillParticle22
LeaveLocalSight64
LeaveSight62
LevelUp53
LoadingProgress124
Loadout96
MapPing25
MatchIdentity122
MinimapHighlighted178
MissileHits176
MissileReport69
MissileState69
MoveCamera142
MovementBounds138
MoveOrder20
NexusIdle188
NexusSkin184
ObjectiveHidden165
ObjectiveReplaced166
ObjectiveShown164
ParticlesCreated21
Path89
PathWithSpeed90
PauseAnimation202
Paused150
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected127
QueryStatus3
QueryStatusAnswer4
QuestEvent144
QuestUpdated143
Reconnected129
ReconnectedInMatch128
RegionAdded99
RegionAttached98
RegionRemoved97
Register0
Registered0
RemoveItem48
RemoveItemAnswer49
Replication140
Respawned84
Resumed151
ResyncEnded130
Revived83
Roster103
SeatChampion101
SeatLoadProgress125
SeatName102
SelectObject67
ShopHighlighted171
SideTextHidden168
SideTextRefreshed169
SideTextShown167
SpawnEnd12
SpawnFromBarracks55
SpawnPet32
SpawnStart5
SpawnUnit100
SpellCastAnswer37
SpellCooldown33
SpellLevel201
SpellNameChanged187
SpellNumbers181
SpellTargetingChanged149
SpellUpgraded19
StartGame13
StatsRequest163
StatTick70
StopAnimation101
StopAttack54
SurrenderStatus175
SurrenderVote172
SurrenderVoteCalled173
SwapItems50
SwapItemsAnswer51
TargetHeldChampion76
TargetUnit75
TipEvent147
TipShown145
TransientAck141
TutorialChatLine180
TutorialPopup157
TutorialPopupClosed158
TutorialShopOpened162
UiHighlight146
UnitDied34
UnitHighlighted155
UnitHighlightRemoved156
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync74
VoiceEvent148
VoiceEventDone177
VolumeMuted182
WaypointAck131
WaypointGroup132
WaypointGroupAtSpeed133
WorldEvent183

Against 1.0.0.105

Where a build from 1.0.0.106 up to, not including, 1.0.0.107 differs from one from 1.0.0.105 up to, not including, 1.0.0.106. Anything not named here is the same in both.

In 1.0.0.106, not in 1.0.0.105

MessageSent byCommandWhat it does
PauseAnimationserver202 on eventsPause or resume a unit’s animation
SpellLevelserver201 on eventsSet the level of one of a unit’s spells

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.106:

  • MissileState, its layout: “A client reads a speed but no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. The header names the unit casting, as the casting inside does.”, where 1.0.0.105 has “A client reads a speed but no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.”
  • SpellUpgraded, its layout: “Arriving on the events channel instead, it raises the spell as well, and a client shows the new level either way.”, where 1.0.0.105 has “A client handles it the same on every channel: it sets the slot’s level and the points left. It does this only for a champion, and nothing for any other unit.”
  • SpellUpgraded, level: “The level the spell now stands at. A client takes any level above 6 as 6.”, where 1.0.0.105 has “The level the spell now stands at. A client takes any level above 5 as 5.”

1.0.0.107

Client builds from 1.0.0.107 up to, not including, 1.0.0.108. Patch notes: V1.0.0.107.

Build checkedPassedFailedSkippedCommitDate
1.0.0.107100414325cb2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, NavigationFlags, ParticleLeaveTeamSight, ParticleSource, Pause, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (181)
MessageCommand
AfkWarning160
AnimationOverrides193
Announcement73
AppearancePopped106
AppearancePushed105
Attack60
AttackFrom61
Autocast45
BotDebug117
BotState119
BotTargets118
BuildingDied86
BuyItem47
Camera66
CameraAck122
CameraBehaviour109
CameraLock67
CameraLockSet140
CampCleared200
CastSpell37
ChainTargets115
ChampionDied35
ChampionStats192
CharacterSelected15
Chat0
ClientEvent120
ClientFinished17
ClientReady16
ClientVersion74
ClockConvergence89
ClockReply88
ClockSync87
CloseShop161
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory124
DestroyMissile114
EffectAdded39
EffectAddedGroup40
EffectCount93
EffectCountGroup94
EffectRemoved43
EffectRemovedGroup44
EffectReplaced41
EffectReplacedGroup42
EmotePlayed11
EnterLocalSight64
EnterSight62
Exit127
ExperienceGained28
FaceDirection108
FacePosition108
FadeMinions190
FadeRemoved155
FadeSounds191
FadeTo154
FloatingText30
FogSet138
FogToggled137
ForceDeath36
GameEnded14
GameSpeed153
GoldGained27
GoldRedirect104
GreyscaleWhenDead186
HealthBar103
HudDisabled187
HudHighlighted171
HudHighlightToggled180
InhibitorState72
InputLock162
InputLockToggled136
InventorySlot46
ItemAdded48
ItemUsed53
JoinSide100
KillParticle22
LeaveLocalSight65
LeaveSight63
LevelUp54
LoadingProgress125
Loadout97
MapPing25
MatchIdentity123
MinimapHighlighted179
MissileHits177
MissileReport70
MissileState70
MoveCamera143
MovementBounds139
MoveOrder20
NexusIdle189
NexusSkin185
ObjectiveHidden166
ObjectiveReplaced167
ObjectiveShown165
ParticlesCreated21
Path90
PathWithSpeed91
PauseAnimation203
Paused151
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected128
QueryStatus3
QueryStatusAnswer4
QuestEvent145
QuestUpdated144
Reconnected130
ReconnectedInMatch129
RegionAdded100
RegionAttached99
RegionRemoved98
Register0
Registered0
RemoveItem49
RemoveItemAnswer50
Replication141
Respawned85
Resumed152
ResyncEnded131
Revived84
Roster103
SeatChampion101
SeatLoadProgress126
SeatName102
SelectObject68
ShopHighlighted172
SideTextHidden169
SideTextRefreshed170
SideTextShown168
SpawnEnd12
SpawnFromBarracks56
SpawnPet32
SpawnStart5
SpawnUnit101
SpellCastAnswer38
SpellCooldown33
SpellLevel202
SpellNameChanged188
SpellNumbers182
SpellTargetingChanged150
SpellUpgraded19
StartGame13
StatsRequest164
StatTick71
StopAnimation102
StopAttack55
SurrenderStatus176
SurrenderVote173
SurrenderVoteCalled174
SwapItems51
SwapItemsAnswer52
TargetHeldChampion77
TargetUnit76
TipEvent148
TipShown146
TransientAck142
TutorialChatLine181
TutorialPopup158
TutorialPopupClosed159
TutorialShopOpened163
UiHighlight147
UnitDied34
UnitHighlighted156
UnitHighlightRemoved157
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync75
VoiceEvent149
VoiceEventDone178
VolumeMuted183
WaypointAck132
WaypointGroup133
WaypointGroupAtSpeed134
WorldEvent184

Against 1.0.0.106

Where a build from 1.0.0.107 up to, not including, 1.0.0.108 differs from one from 1.0.0.106 up to, not including, 1.0.0.107. Anything not named here is the same in both.

In 1.0.0.107, not in 1.0.0.106

MessageSent byCommandWhat it does
ChampionDiedserver35 on eventsSay a champion died

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1061.0.0.107Messages
clock87–8888–89ClockReply, ClockConvergence
events35–20236–203ForceDeath, SpellCastAnswer, EffectAdded, EffectAddedGroup, EffectReplaced, EffectReplacedGroup, EffectRemoved, EffectRemovedGroup, Autocast, InventorySlot, ItemAdded, RemoveItemAnswer, SwapItemsAnswer, ItemUsed, LevelUp, StopAttack, SpawnFromBarracks, Attack, AttackFrom, EnterSight, LeaveSight, EnterLocalSight, LeaveLocalSight, MissileState, StatTick, InhibitorState, Announcement, VersionSync, TargetUnit, TargetHeldChampion, Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount, EffectCountGroup, Loadout, RegionRemoved, RegionAttached, RegionAdded, SpawnUnit, StopAnimation, HealthBar, GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets, BotDebug, BotTargets, BotState, ClientEvent, CameraAck, MatchIdentity, DeathHistory, PlayerDisconnected, Reconnected, ResyncEnded, WaypointGroupAtSpeed, InputLockToggled, FogToggled, FogSet, MovementBounds, CameraLockSet, MoveCamera, QuestUpdated, TipShown, UiHighlight, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeTo, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop, InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent, NexusSkin, GreyscaleWhenDead, HudDisabled, SpellNameChanged, NexusIdle, FadeMinions, FadeSounds, AnimationOverrides, CampCleared, SpellLevel, PauseAnimation
requests36–17737–178CastSpell, BuyItem, RemoveItem, SwapItems, Camera, CameraLock, SelectObject, MissileReport, ClientVersion, FacePosition, LoadingProgress, Exit, ReconnectedInMatch, WaypointAck, TransientAck, QuestEvent, TipEvent, TutorialPopupClosed, TutorialShopOpened, StatsRequest, SurrenderVote, VoiceEventDone
transient125–140126–141SeatLoadProgress, WaypointGroup, Replication

Laid out differently

  • ChampionStats
    • Its command is 191 in 1.0.0.106 and 192 in 1.0.0.107.
    • keptA is bytes, 20 in 1.0.0.106 and 3 × i32 in 1.0.0.107.
    • deaths is in 1.0.0.107 (i32), after keptA, and not in 1.0.0.106.
    • minionKills is in 1.0.0.107 (i32), after deaths, and not in 1.0.0.106.
    • structureKills is in 1.0.0.107 (i32), after kills, and not in 1.0.0.106.
    • otherStructureKills is in 1.0.0.107 (i32), after structureKills, and not in 1.0.0.106.
    • keptB is bytes, 176 in 1.0.0.106 and i32 in 1.0.0.107.
    • neutralKills is in 1.0.0.107 (i32), after keptB, and not in 1.0.0.106.
    • gap is in 1.0.0.107 (bytes, 12), after neutralKills, and not in 1.0.0.106.
    • keptC is in 1.0.0.107 (3 × i32), after gap, and not in 1.0.0.106.
    • goldTotal is in 1.0.0.107 (f32), after keptC, and not in 1.0.0.106.
    • keptD is in 1.0.0.107 (9 × i32), after goldTotal, and not in 1.0.0.106.
    • keptE is in 1.0.0.107 (2 × f32), after keptD, and not in 1.0.0.106.
    • keptF is in 1.0.0.107 (u8), after keptE, and not in 1.0.0.106.
    • padding is in 1.0.0.107 (bytes, 3), after keptF, and not in 1.0.0.106.
    • keptG is in 1.0.0.107 (8 × i32), after padding, and not in 1.0.0.106.
    • keptH is in 1.0.0.107 (13 × f32), after keptG, and not in 1.0.0.106.
    • keptI is in 1.0.0.107 (i32), after keptH, and not in 1.0.0.106.
    • assists is in 1.0.0.107 (i32), after keptI, and not in 1.0.0.106.

1.0.0.108

Client builds from 1.0.0.108 up to, not including, 1.0.0.109. Patch notes: V1.0.0.108.

Build checkedPassedFailedSkippedCommitDate
1.0.0.10810045f7af672026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (182)
MessageCommand
AfkWarning160
AnimationOverrides193
Announcement73
AppearancePopped106
AppearancePushed105
Attack60
AttackFrom61
Autocast45
BotDebug117
BotState119
BotTargets118
BuildingDied86
BuyItem47
Camera66
CameraAck122
CameraBehaviour109
CameraLock67
CameraLockSet140
CampCleared200
CastSpell37
ChainTargets115
ChampionDied35
ChampionStats192
CharacterSelected15
Chat0
ClientEvent120
ClientFinished17
ClientReady16
ClientVersion74
ClockConvergence89
ClockReply88
ClockSync87
CloseShop161
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory124
DestroyMissile114
EffectAdded39
EffectAddedGroup40
EffectCount93
EffectCountGroup94
EffectRemoved43
EffectRemovedGroup44
EffectReplaced41
EffectReplacedGroup42
EmotePlayed11
EnterLocalSight64
EnterSight62
Exit127
ExperienceGained28
FaceDirection108
FacePosition108
FadeMinions190
FadeRemoved155
FadeSounds191
FadeTo154
FloatingText30
FogSet138
FogToggled137
ForceDeath36
GameEnded14
GameSpeed153
GoldGained27
GoldRedirect104
GreyscaleWhenDead186
HealthBar103
HudDisabled187
HudHighlighted171
HudHighlightToggled180
InhibitorState72
InputLock162
InputLockToggled136
InventorySlot46
ItemAdded48
ItemUsed53
JoinSide100
KillParticle22
LeaveLocalSight65
LeaveSight63
LevelUp54
LoadingProgress125
Loadout97
MapPing25
MatchIdentity123
MinimapHighlighted179
MissileHits177
MissileReport70
MissileState70
MoveCamera143
MovementBounds139
MoveOrder20
NavigationFlags204
NexusIdle189
NexusSkin185
ObjectiveHidden166
ObjectiveReplaced167
ObjectiveShown165
ParticlesCreated21
Path90
PathWithSpeed91
PauseAnimation203
Paused151
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected128
QueryStatus3
QueryStatusAnswer4
QuestEvent145
QuestUpdated144
Reconnected130
ReconnectedInMatch129
RegionAdded100
RegionAttached99
RegionRemoved98
Register0
Registered0
RemoveItem49
RemoveItemAnswer50
Replication141
Respawned85
Resumed152
ResyncEnded131
Revived84
Roster103
SeatChampion101
SeatLoadProgress126
SeatName102
SelectObject68
ShopHighlighted172
SideTextHidden169
SideTextRefreshed170
SideTextShown168
SpawnEnd12
SpawnFromBarracks56
SpawnPet32
SpawnStart5
SpawnUnit101
SpellCastAnswer38
SpellCooldown33
SpellLevel202
SpellNameChanged188
SpellNumbers182
SpellTargetingChanged150
SpellUpgraded19
StartGame13
StatsRequest164
StatTick71
StopAnimation102
StopAttack55
SurrenderStatus176
SurrenderVote173
SurrenderVoteCalled174
SwapItems51
SwapItemsAnswer52
TargetHeldChampion77
TargetUnit76
TipEvent148
TipShown146
TransientAck142
TutorialChatLine181
TutorialPopup158
TutorialPopupClosed159
TutorialShopOpened163
UiHighlight147
UnitDied34
UnitHighlighted156
UnitHighlightRemoved157
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync75
VoiceEvent149
VoiceEventDone178
VolumeMuted183
WaypointAck132
WaypointGroup133
WaypointGroupAtSpeed134
WorldEvent184

Against 1.0.0.107

Where a build from 1.0.0.108 up to, not including, 1.0.0.109 differs from one from 1.0.0.107 up to, not including, 1.0.0.108. Anything not named here is the same in both.

In 1.0.0.108, not in 1.0.0.107

MessageSent byCommandWhat it does
NavigationFlagsserver204 on eventsMark the ground within circles, in place of the circles it marked before: each circle’s flags apply to the ground within it

Laid out differently

  • EffectAdded
    • hidden is in 1.0.0.108 (u8), after count, and not in 1.0.0.107.
  • EffectAddedGroup
    • entries[].hidden is in 1.0.0.108 (u8), after entries[].stacks, and not in 1.0.0.107.
  • PathWithSpeed (vectors: along-on-1-0-0-108)
    • facing is in 1.0.0.108 (i8), after arcZ, and not in 1.0.0.107.
  • SpawnPet
    • flags has clearOwnerTarget at bit 1 in 1.0.0.108, and not in 1.0.0.107.
    • flags.unused is at bit 1, 7 bits wide, in 1.0.0.107 and at bit 2, 6 bits wide, in 1.0.0.108.

Structs

  • SpeedParams
    • keepFacing is in 1.0.0.108 (u8), after fromZ, and not in 1.0.0.107.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.108:

  • HudDisabled, its layout: no note, where 1.0.0.107 has “A client also opens its chat entry, as the chat key does, where chat is open to it.”

1.0.0.109

Client builds from 1.0.0.109 up to, not including, 1.0.0.110. Patch notes: V1.0.0.109.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1091004a1008b12026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MapProp, MapPropChanged, MatchStarted, MinimapIcon, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, RespawnPoint, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpawnBot, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, TeamChanged, TeamScore, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (183)
MessageCommand
AfkWarning161
AnimationOverrides194
Announcement73
AppearancePopped107
AppearancePushed106
Attack60
AttackFrom61
Autocast45
BotDebug118
BotState120
BotTargets119
BuildingDied87
BuyItem47
Camera66
CameraAck123
CameraBehaviour110
CameraLock67
CameraLockSet141
CampCleared201
CastSpell37
ChainTargets116
ChampionDied35
ChampionStats193
CharacterSelected15
Chat0
ClientEvent121
ClientFinished17
ClientReady16
ClientVersion74
ClockConvergence90
ClockReply89
ClockSync88
CloseShop162
CooldownSet33
CreateChampion6
CreateNeutral7
CreateTurret8
Damage23
DeathHistory125
DestroyMissile115
EffectAdded39
EffectAddedGroup40
EffectCount94
EffectCountGroup95
EffectRemoved43
EffectRemovedGroup44
EffectReplaced41
EffectReplacedGroup42
EmotePlayed11
EnterLocalSight64
EnterSight62
Exit128
ExperienceGained28
FaceDirection109
FacePosition109
FadeMinions191
FadeRemoved156
FadeSounds192
FadeTo155
FloatingText30
FogSet139
FogToggled138
ForceDeath36
GameEnded14
GameSpeed154
GoldGained27
GoldRedirect105
GreyscaleWhenDead187
HealthBar104
HudDisabled188
HudHighlighted172
HudHighlightToggled181
InhibitorState72
InputLock163
InputLockToggled137
InventorySlot46
ItemAdded48
ItemUsed53
JoinSide100
KillParticle22
LeaveLocalSight65
LeaveSight63
LevelUp54
LoadingProgress126
Loadout98
MapPing25
MatchIdentity124
MinimapHighlighted180
MissileHits178
MissileReport70
MissileState70
MoveCamera144
MovementBounds140
MoveOrder20
NavigationFlags205
NexusIdle190
NexusSkin186
ObjectiveHidden167
ObjectiveReplaced168
ObjectiveShown166
ParticlesCreated21
Path91
PathWithSpeed92
PauseAnimation204
Paused152
PingPlaced26
PlayAnimation9
PlayEmote10
PlayerDisconnected129
QueryStatus3
QueryStatusAnswer4
QuestEvent146
QuestUpdated145
Reconnected131
ReconnectedInMatch130
RegionAdded101
RegionAttached100
RegionRemoved99
Register0
Registered0
RemoveItem49
RemoveItemAnswer50
Replication142
ResourceColours78
Respawned86
Resumed153
ResyncEnded132
Revived85
Roster103
SeatChampion101
SeatLoadProgress127
SeatName102
SelectObject68
ShopHighlighted173
SideTextHidden170
SideTextRefreshed171
SideTextShown169
SpawnEnd12
SpawnFromBarracks56
SpawnPet32
SpawnStart5
SpawnUnit102
SpellCastAnswer38
SpellCooldown33
SpellLevel203
SpellNameChanged189
SpellNumbers183
SpellTargetingChanged151
SpellUpgraded19
StartGame13
StatsRequest165
StatTick71
StopAnimation103
StopAttack55
SurrenderStatus177
SurrenderVote174
SurrenderVoteCalled175
SwapItems51
SwapItemsAnswer52
TargetHeldChampion77
TargetUnit76
TipEvent149
TipShown147
TransientAck143
TutorialChatLine182
TutorialPopup159
TutorialPopupClosed160
TutorialShopOpened164
UiHighlight148
UnitDied34
UnitHighlighted157
UnitHighlightRemoved158
UnitSpoke30
UnitStopped24
UpgradeSpell18
VersionSync75
VoiceEvent150
VoiceEventDone179
VolumeMuted184
WaypointAck133
WaypointGroup134
WaypointGroupAtSpeed135
WorldEvent185

Against 1.0.0.108

Where a build from 1.0.0.109 up to, not including, 1.0.0.110 differs from one from 1.0.0.108 up to, not including, 1.0.0.109. Anything not named here is the same in both.

In 1.0.0.109, not in 1.0.0.108

MessageSent byCommandWhat it does
ResourceColoursserver78 on eventsGive a unit’s resource bar colours of its own, or to take them back

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1081.0.0.109Messages
clock88–8989–90ClockReply, ClockConvergence
events84–20485–205Revived, Respawned, BuildingDied, ClockSync, Path, PathWithSpeed, EffectCount, EffectCountGroup, Loadout, RegionRemoved, RegionAttached, RegionAdded, SpawnUnit, StopAnimation, HealthBar, GoldRedirect, AppearancePushed, AppearancePopped, FaceDirection, CameraBehaviour, DestroyMissile, ChainTargets, BotDebug, BotTargets, BotState, ClientEvent, CameraAck, MatchIdentity, DeathHistory, PlayerDisconnected, Reconnected, ResyncEnded, WaypointGroupAtSpeed, InputLockToggled, FogToggled, FogSet, MovementBounds, CameraLockSet, MoveCamera, QuestUpdated, TipShown, UiHighlight, VoiceEvent, SpellTargetingChanged, Paused, Resumed, GameSpeed, FadeTo, FadeRemoved, UnitHighlighted, UnitHighlightRemoved, TutorialPopup, AfkWarning, CloseShop, InputLock, ObjectiveShown, ObjectiveHidden, ObjectiveReplaced, SideTextShown, SideTextHidden, SideTextRefreshed, HudHighlighted, ShopHighlighted, SurrenderVoteCalled, SurrenderStatus, MissileHits, MinimapHighlighted, HudHighlightToggled, TutorialChatLine, SpellNumbers, VolumeMuted, WorldEvent, NexusSkin, GreyscaleWhenDead, HudDisabled, SpellNameChanged, NexusIdle, FadeMinions, FadeSounds, ChampionStats, AnimationOverrides, CampCleared, SpellLevel, PauseAnimation, NavigationFlags
requests108–178109–179FacePosition, LoadingProgress, Exit, ReconnectedInMatch, WaypointAck, TransientAck, QuestEvent, TipEvent, TutorialPopupClosed, TutorialShopOpened, StatsRequest, SurrenderVote, VoiceEventDone
transient126–141127–142SeatLoadProgress, WaypointGroup, Replication

1.0.0.110

Client builds from 1.0.0.110 up to, not including, 1.0.0.111. Patch notes: V1.0.0.110.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1101004a3ab6fd2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, ScreenTint, ShieldAdded, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (191)
MessageCommand
AfkWarning183
AnimationOverrides104
Announcement126
AppearancePopped100
AppearancePushed150
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState170
BotTargets102
BuildingDied134
BuyItem128
Camera47
CameraAck45
CameraBehaviour111
CameraLock127
CameraLockSet117
CampCleared193
CapturePointValue208
CastSpell153
ChainTargets105
ChampionDied92
ChampionStats71
CharacterSelected189
Chat0
ClientEvent162
ClientFinished137
ClientReady81
ClientVersion188
ClockConvergence114
ClockReply8
ClockSync192
CloseShop15
CooldownSet131
CreateChampion75
CreateNeutral97
CreateTurret156
Damage99
DeathHistory35
DestroyMissile88
EffectAdded182
EffectAddedGroup101
EffectCount30
EffectCountGroup190
EffectRemoved120
EffectRemovedGroup147
EffectReplaced49
EffectReplacedGroup32
EmotePlayed68
EnterLocalSight172
EnterSight185
Exit140
ExperienceGained17
FaceDirection79
FacePosition79
FadeMinions201
FadeRemoved51
FadeSounds93
FadeTo177
FloatingText27
FogSet171
FogToggled123
ForceDeath29
GameEnded195
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead169
HealthBar204
HudDisabled187
HudHighlighted63
HudHighlightToggled78
InhibitorState44
InputLock130
InputLockToggled154
InventorySlot82
ItemAdded108
ItemUsed158
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight80
LevelUp65
LoadingProgress25
Loadout43
MapPing85
MapProp206
MapPropChanged207
MatchIdentity144
MinimapHighlighted20
MinimapIcon213
MissileHits39
MissileReport61
MissileState61
MoveCamera38
MovementBounds6
MoveOrder110
NavigationFlags67
NexusIdle4
NexusSkin112
ObjectiveHidden161
ObjectiveReplaced14
ObjectiveShown56
ParticlesCreated132
Path184
PathWithSpeed129
PauseAnimation109
Paused160
PingPlaced66
PlayAnimation175
PlayEmote72
PlayerDisconnected151
QueryStatus23
QueryStatusAnswer133
QuestEvent203
QuestUpdated136
Reconnected16
ReconnectedInMatch155
RegionAdded116
RegionAttached37
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication194
ResourceColours145
Respawned73
RespawnPoint210
Resumed10
ResyncEnded69
Revived48
Roster103
SeatChampion101
SeatLoadProgress149
SeatName102
SelectObject174
ShopHighlighted173
SideTextHidden166
SideTextRefreshed176
SideTextShown159
SpawnBot205
SpawnEnd18
SpawnFromBarracks3
SpawnPet57
SpawnStart96
SpawnUnit121
SpellCastAnswer180
SpellCooldown131
SpellLevel89
SpellNameChanged52
SpellNumbers124
SpellTargetingChanged26
SpellUpgraded24
StartGame90
StatsRequest74
StatTick41
StopAnimation42
StopAttack54
SurrenderStatus164
SurrenderVote163
SurrenderVoteCalled199
SwapItems34
SwapItemsAnswer64
TargetHeldChampion191
TargetUnit103
TeamChanged212
TeamScore209
TipEvent106
TipShown84
TransientAck167
TutorialChatLine2
TutorialPopup178
TutorialPopupClosed202
TutorialShopOpened91
UiHighlight200
UnitDied157
UnitHighlighted87
UnitHighlightRemoved179
UnitSpoke27
UnitStopped50
UpgradeSpell59
VersionSync83
VoiceEvent118
VoiceEventDone5
VolumeMuted40
WaypointAck115
WaypointGroup95
WaypointGroupAtSpeed98
WorldEvent70

Against 1.0.0.109

Where a build from 1.0.0.110 up to, not including, 1.0.0.111 differs from one from 1.0.0.109 up to, not including, 1.0.0.110. Anything not named here is the same in both.

In 1.0.0.110, not in 1.0.0.109

MessageSent byCommandWhat it does
CapturePointValueserver208 on eventsWhat a server sends when a point one side can take from the other changes
MapPropserver206 on eventsPlace a prop on the map: a thing that stands there and is looked at rather than one that acts
MapPropChangedserver207 on eventsChange something about a prop already on the map
MinimapIconserver213 on eventsChange what a client draws for a unit on its map
RespawnPointserver210 on eventsWhat a server sends about the points a champion can choose to return to life at
SpawnBotserver205 on eventsCreate a champion played by a bot
TeamChangedserver212 on eventsMove a unit to another side
TeamScoreserver209 on eventsSet a side’s score, where a match is won on score

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1091.0.0.110Messages
clock1924SpellUpgraded
clock898ClockReply
clock90114ClockConvergence
events4133QueryStatusAnswer
events596SpawnStart
events675CreateChampion
events797CreateNeutral
events8156CreateTurret
events9175PlayAnimation
events1168EmotePlayed
events1218SpawnEnd
events1390StartGame
events14195GameEnded
events21132ParticlesCreated
events2258KillParticle
events2399Damage
events2450UnitStopped
events2666PingPlaced
events2736GoldGained
events2817ExperienceGained
events3027FloatingText
events3257SpawnPet
events33131SpellCooldown
events34157UnitDied
events3592ChampionDied
events3629ForceDeath
events38180SpellCastAnswer
events39182EffectAdded
events40101EffectAddedGroup
events4149EffectReplaced
events4232EffectReplacedGroup
events43120EffectRemoved
events44147EffectRemovedGroup
events4533Autocast
events4682InventorySlot
events48108ItemAdded
events5011RemoveItemAnswer
events5264SwapItemsAnswer
events53158ItemUsed
events5465LevelUp
events5554StopAttack
events563SpawnFromBarracks
events6013Attack
events6128AttackFrom
events62185EnterSight
events6380LeaveSight
events64172EnterLocalSight
events6555LeaveLocalSight
events7061MissileState
events7141StatTick
events7244InhibitorState
events73126Announcement
events7583VersionSync
events76103TargetUnit
events77191TargetHeldChampion
events78145ResourceColours
events8548Revived
events8673Respawned
events87134BuildingDied
events88192ClockSync
events91184Path
events9430EffectCount
events95190EffectCountGroup
events9843Loadout
events9953RegionRemoved
events10037RegionAttached
events101116RegionAdded
events102121SpawnUnit
events10342StopAnimation
events104204HealthBar
events1057GoldRedirect
events106150AppearancePushed
events107100AppearancePopped
events10979FaceDirection
events110111CameraBehaviour
events11588DestroyMissile
events116105ChainTargets
events11821BotDebug
events119102BotTargets
events120170BotState
events12345CameraAck
events124144MatchIdentity
events129151PlayerDisconnected
events13116Reconnected
events13269ResyncEnded
events13598WaypointGroupAtSpeed
events137154InputLockToggled
events138123FogToggled
events139171FogSet
events141117CameraLockSet
events14438MoveCamera
events145136QuestUpdated
events14784TipShown
events148200UiHighlight
events150118VoiceEvent
events15126SpellTargetingChanged
events152160Paused
events15310Resumed
events15419GameSpeed
events155177FadeTo
events15651FadeRemoved
events15787UnitHighlighted
events158179UnitHighlightRemoved
events159178TutorialPopup
events161183AfkWarning
events16215CloseShop
events163130InputLock
events16656ObjectiveShown
events167161ObjectiveHidden
events16814ObjectiveReplaced
events169159SideTextShown
events170166SideTextHidden
events171176SideTextRefreshed
events17263HudHighlighted
events175199SurrenderVoteCalled
events177164SurrenderStatus
events17839MissileHits
events18020MinimapHighlighted
events18178HudHighlightToggled
events1822TutorialChatLine
events183124SpellNumbers
events18440VolumeMuted
events186112NexusSkin
events187169GreyscaleWhenDead
events188187HudDisabled
events18952SpellNameChanged
events1904NexusIdle
events191201FadeMinions
events19293FadeSounds
events19371ChampionStats
events194104AnimationOverrides
events201193CampCleared
events20389SpellLevel
events204109PauseAnimation
events20567NavigationFlags
requests323QueryStatus
requests1072PlayEmote
requests15189CharacterSelected
requests1681ClientReady
requests17137ClientFinished
requests1859UpgradeSpell
requests20110MoveOrder
requests2585MapPing
requests3027UnitSpoke
requests33131CooldownSet
requests37153CastSpell
requests47128BuyItem
requests499RemoveItem
requests5134SwapItems
requests6647Camera
requests67127CameraLock
requests68174SelectObject
requests7061MissileReport
requests74188ClientVersion
requests10979FacePosition
requests12625LoadingProgress
requests128140Exit
requests130155ReconnectedInMatch
requests133115WaypointAck
requests143167TransientAck
requests146203QuestEvent
requests149106TipEvent
requests160202TutorialPopupClosed
requests16491TutorialShopOpened
requests16574StatsRequest
requests174163SurrenderVote
requests1795VoiceEventDone
transient127149SeatLoadProgress
transient13495WaypointGroup
transient142194Replication

Laid out differently

Structs

  • Seat
    • flags is in 1.0.0.110 (u8), after otherSummoner, and not in 1.0.0.109.
    • side is in 1.0.0.110 (u32), after flags, and not in 1.0.0.109.
    • botName is in 1.0.0.110 (bytes, 28), after side, and not in 1.0.0.109.
    • botAsset is in 1.0.0.110 (bytes, 28), after botName, and not in 1.0.0.109.
    • botDifficulty is in 1.0.0.110 (i32), after botAsset, and not in 1.0.0.109.
  • SpeedParams
    • follows is in 1.0.0.110 (u32), after fromZ, and not in 1.0.0.109.
    • followDistance is in 1.0.0.110 (f32), after follows, and not in 1.0.0.109.
    • followBackDistance is in 1.0.0.110 (f32), after followDistance, and not in 1.0.0.109.

1.0.0.111–1.0.0.112

Client builds from 1.0.0.111 up to, not including, 1.0.0.113. Patch notes: V1.0.0.111, V1.0.0.112.

Build checkedPassedFailedSkippedCommitDate
1.0.0.111100424913182026-11-01
1.0.0.112100413710c72026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, ScreenTint, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (192)
MessageCommand
AfkWarning184
AnimationOverrides105
Announcement127
AppearancePopped101
AppearancePushed151
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState171
BotTargets103
BuildingDied135
BuyItem129
Camera47
CameraAck45
CameraBehaviour112
CameraLock128
CameraLockSet118
CampCleared194
CapturePointValue209
CastSpell154
ChainTargets106
ChampionDied92
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished138
ClientReady81
ClientVersion189
ClockConvergence115
ClockReply8
ClockSync193
CloseShop15
CooldownSet132
CreateChampion75
CreateNeutral97
CreateTurret157
Damage99
DeathHistory35
DestroyMissile88
EffectAdded183
EffectAddedGroup102
EffectCount30
EffectCountGroup191
EffectRemoved121
EffectRemovedGroup148
EffectReplaced49
EffectReplacedGroup32
EmotePlayed68
EnterLocalSight173
EnterSight186
Exit141
ExperienceGained17
FaceDirection79
FacePosition79
FadeMinions202
FadeRemoved51
FadeSounds93
FadeTo178
FloatingText27
FogSet172
FogToggled124
ForceDeath29
GameEnded196
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead170
HealthBar205
HudDisabled188
HudHighlighted63
HudHighlightToggled78
InhibitorState44
InputLock131
InputLockToggled155
InventorySlot82
ItemAdded109
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight80
LevelUp65
LoadingProgress25
Loadout43
MapPing85
MapProp207
MapPropChanged208
MatchIdentity145
MinimapHighlighted20
MinimapIcon214
MissileHits39
MissileReport61
MissileState61
MoveCamera38
MovementBounds6
MoveOrder111
NavigationFlags67
NexusIdle4
NexusSkin113
ObjectiveHidden162
ObjectiveReplaced14
ObjectiveShown56
ParticlesCreated133
Path185
PathWithSpeed130
PauseAnimation110
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus23
QueryStatusAnswer134
QuestEvent204
QuestUpdated137
Reconnected16
ReconnectedInMatch156
RegionAdded117
RegionAttached37
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication195
ResourceColours146
Respawned73
RespawnPoint211
Resumed10
ResyncEnded69
Revived48
Roster103
SeatChampion101
SeatLoadProgress150
SeatName102
SelectObject175
ShieldAdded100
ShopHighlighted174
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SpawnBot206
SpawnEnd18
SpawnFromBarracks3
SpawnPet57
SpawnStart96
SpawnUnit122
SpellCastAnswer181
SpellCooldown132
SpellLevel89
SpellNameChanged52
SpellNumbers125
SpellTargetingChanged26
SpellUpgraded24
StartGame90
StatsRequest74
StatTick41
StopAnimation42
StopAttack54
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled200
SwapItems34
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit104
TeamChanged213
TeamScore210
TipEvent107
TipShown84
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed203
TutorialShopOpened91
UiHighlight201
UnitDied158
UnitHighlighted87
UnitHighlightRemoved180
UnitSpoke27
UnitStopped50
UpgradeSpell59
VersionSync83
VoiceEvent119
VoiceEventDone5
VolumeMuted40
WaypointAck116
WaypointGroup95
WaypointGroupAtSpeed98
WorldEvent70

Against 1.0.0.110

Where a build from 1.0.0.111 up to, not including, 1.0.0.113 differs from one from 1.0.0.110 up to, not including, 1.0.0.111. Anything not named here is the same in both.

Transport

In 1.0.0.111–1.0.0.112, not in 1.0.0.110

MessageSent byCommandWhat it does
ShieldAddedserver100 on eventsAdd to a unit’s shield

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • EnterSight
    • Its command is 185 in 1.0.0.110 and 186 in 1.0.0.111–1.0.0.112.
    • view.hasShields is in 1.0.0.111–1.0.0.112 (u8), after view, and not in 1.0.0.110.
    • view.magicShield is in 1.0.0.111–1.0.0.112 (f32), after view.hasShields, and not in 1.0.0.110.
    • view.physicalShield is in 1.0.0.111–1.0.0.112 (f32), after view.magicShield, and not in 1.0.0.110.
    • view.shield is in 1.0.0.111–1.0.0.112 (f32), after view.physicalShield, and not in 1.0.0.110.
  • MissileReport
    • unknownBX is in 1.0.0.111–1.0.0.112 (f32), after velocityZ, and not in 1.0.0.110.
    • unknownBY is in 1.0.0.111–1.0.0.112 (f32), after unknownBX, and not in 1.0.0.110.
    • unknownBZ is in 1.0.0.111–1.0.0.112 (f32), after unknownBY, and not in 1.0.0.110.
    • unset is in 1.0.0.111–1.0.0.112 (bytes, 4), after age, and not in 1.0.0.110.
  • MissileState
    • startX is in 1.0.0.111–1.0.0.112 (f32), after velocityZ, and not in 1.0.0.110.
    • startY is in 1.0.0.111–1.0.0.112 (f32), after startX, and not in 1.0.0.110.
    • startZ is in 1.0.0.111–1.0.0.112 (f32), after startY, and not in 1.0.0.110.
    • lifeSpent is in 1.0.0.111–1.0.0.112 (f32), after speed, and not in 1.0.0.110.
  • ObjectiveReplaced
    • text is text, ended by a zero byte in 1.0.0.110 and text, 128 bytes in 1.0.0.111–1.0.0.112.
  • ObjectiveShown
    • text is text, ended by a zero byte in 1.0.0.110 and text, 128 bytes in 1.0.0.111–1.0.0.112.
  • PathWithSpeed
    • Its command is 129 in 1.0.0.110 and 130 in 1.0.0.111–1.0.0.112.
    • travelTime is in 1.0.0.111–1.0.0.112 (f32), after backOff, and not in 1.0.0.110.

Structs

  • SpeedParams
    • followTime is in 1.0.0.111–1.0.0.112 (f32), after followBackDistance, and not in 1.0.0.110.

Chapters

  • In the transport chapter, a passage holds for 1.0.0.110 and not 1.0.0.111–1.0.0.112: A client decodes nothing: its key is the first sixteen characters of the argument, as they stand.
  • In the transport chapter, a passage holds for 1.0.0.111–1.0.0.112 and not 1.0.0.110: The argument holds the key in base64.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.111–1.0.0.112:

  • HudHighlighted, element: “What to light up on the main controls, 0 to 8; a client ignores a larger value. 4, 5 and 6 each name a part of a second panel; which part each value names is not recorded.”, where 1.0.0.110 has “What to light up on the main controls, 0 to 8; a larger value has no defined effect. 4, 5 and 6 each name a part of a second panel; which part each value names is not recorded.”
  • NavigationFlags, count: “The count of circles that follow.”, where 1.0.0.110 has “The count of circles that follow. A client reads that many whatever the payload holds.”
  • StartGame, its layout: “A client past spawning ignores it.”, where 1.0.0.110 has none
  • VolumeMuted, category: “Which kind. A client ignores the message from 7 up.”, where 1.0.0.110 has “Which kind. A larger value than 6 has no defined effect.”

1.0.0.113

Client builds from 1.0.0.113 up to, not including, 1.0.0.114. Patch notes: V1.0.0.113.

Build checkedPassedFailedSkippedCommitDate
1.0.0.113100492c7cb12026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (194)
MessageCommand
AfkWarning184
AnimationOverrides105
Announcement127
AppearancePopped101
AppearancePushed151
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState171
BotTargets103
BuildingDied135
BuyItem129
Camera47
CameraAck45
CameraBehaviour112
CameraLock128
CameraLockSet118
CampCleared194
CapturePointValue209
CastSpell154
ChainTargets106
ChampionDied92
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished138
ClientReady81
ClientVersion189
ClockConvergence115
ClockReply8
ClockSync193
CloseShop15
CooldownSet132
CreateChampion75
CreateNeutral97
CreateTurret157
Damage99
DeathHistory35
DestroyMissile88
EffectAdded183
EffectAddedGroup102
EffectCount30
EffectCountGroup191
EffectRemoved121
EffectRemovedGroup148
EffectReplaced49
EffectReplacedGroup32
EmotePlayed68
EnterLocalSight173
EnterSight186
Exit141
ExperienceGained17
FaceDirection79
FacePosition79
FadeMinions202
FadeRemoved51
FadeSounds93
FadeTo178
FloatingText27
FogSet172
FogToggled124
ForceDeath29
GameEnded196
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead170
HealthBar205
HudDisabled188
HudHighlighted63
HudHighlightToggled78
InhibitorState44
InputLock131
InputLockToggled155
InventorySlot82
ItemAdded109
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight80
LevelUp65
LoadingProgress25
Loadout43
MapPing85
MapProp207
MapPropChanged208
MatchIdentity145
MinimapHighlighted20
MinimapIcon214
MissileHits39
MissileReport61
MissileState61
ModulePacket223
MoveCamera38
MovementBounds6
MoveOrder111
NavigationFlags67
NexusIdle4
NexusSkin113
ObjectiveHidden162
ObjectiveReplaced14
ObjectiveShown56
ParticlesCreated133
Path185
PathWithSpeed130
PauseAnimation110
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus23
QueryStatusAnswer134
QuestEvent204
QuestUpdated137
Reconnected16
ReconnectedInMatch156
RegionAdded117
RegionAttached37
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication195
ResourceColours146
Respawned73
RespawnPoint211
Resumed10
ResyncEnded69
Revived48
Roster103
ScreenTint215
SeatChampion101
SeatLoadProgress150
SeatName102
SelectObject175
ShieldAdded100
ShopHighlighted174
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SpawnBot206
SpawnEnd18
SpawnFromBarracks3
SpawnPet57
SpawnStart96
SpawnUnit122
SpellCastAnswer181
SpellCooldown132
SpellLevel89
SpellNameChanged52
SpellNumbers125
SpellTargetingChanged26
SpellUpgraded24
StartGame90
StatsRequest74
StatTick41
StopAnimation42
StopAttack54
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled200
SwapItems34
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit104
TeamChanged213
TeamScore210
TipEvent107
TipShown84
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed203
TutorialShopOpened91
UiHighlight201
UnitDied158
UnitHighlighted87
UnitHighlightRemoved180
UnitSpoke27
UnitStopped50
UpgradeSpell59
VersionSync83
VoiceEvent119
VoiceEventDone5
VolumeMuted40
WaypointAck116
WaypointGroup95
WaypointGroupAtSpeed98
WorldEvent70

Against 1.0.0.111–1.0.0.112

Where a build from 1.0.0.113 up to, not including, 1.0.0.114 differs from one from 1.0.0.111 up to, not including, 1.0.0.113. Anything not named here is the same in both.

In 1.0.0.113, not in 1.0.0.111–1.0.0.112

MessageSent byCommandWhat it does
ModulePacketclient223 on requestsCarry data from a module of its own, often a message of its own that the module has taken over
ScreenTintserver215 on eventsTint a side’s screens, or to take a tint away

1.0.0.114–1.0.0.115

Client builds from 1.0.0.114 up to, not including, 1.0.0.116. Patch notes: V1.0.0.114.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1141004362197c2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (194)
MessageCommand
AfkWarning184
AnimationOverrides105
Announcement127
AppearancePopped101
AppearancePushed151
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState171
BotTargets103
BuildingDied135
BuyItem129
Camera47
CameraAck45
CameraBehaviour112
CameraLock128
CameraLockSet118
CampCleared194
CapturePointValue209
CastSpell154
ChainTargets106
ChampionDied92
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished138
ClientReady81
ClientVersion189
ClockConvergence115
ClockReply8
ClockSync193
CloseShop15
CooldownSet132
CreateChampion75
CreateNeutral97
CreateTurret157
Damage99
DeathHistory35
DestroyMissile88
EffectAdded183
EffectAddedGroup102
EffectCount30
EffectCountGroup191
EffectRemoved121
EffectRemovedGroup148
EffectReplaced49
EffectReplacedGroup32
EmotePlayed68
EnterLocalSight173
EnterSight186
Exit141
ExperienceGained17
FaceDirection79
FacePosition79
FadeMinions202
FadeRemoved51
FadeSounds93
FadeTo178
FloatingText27
FogSet172
FogToggled124
ForceDeath29
GameEnded196
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead170
HealthBar205
HudDisabled188
HudHighlighted63
HudHighlightToggled78
InhibitorState44
InputLock131
InputLockToggled155
InventorySlot82
ItemAdded109
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight80
LevelUp65
LoadingProgress25
Loadout43
MapPing85
MapProp207
MapPropChanged208
MatchIdentity145
MinimapHighlighted20
MinimapIcon214
MissileHits39
MissileReport61
MissileState61
ModulePacket223
MoveCamera38
MovementBounds6
MoveOrder111
NavigationFlags67
NexusIdle4
NexusSkin113
ObjectiveHidden162
ObjectiveReplaced14
ObjectiveShown56
ParticlesCreated133
Path185
PathWithSpeed130
PauseAnimation110
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus23
QueryStatusAnswer134
QuestEvent204
QuestUpdated137
Reconnected16
ReconnectedInMatch156
RegionAdded117
RegionAttached37
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication195
ResourceColours146
Respawned73
RespawnPoint211
Resumed10
ResyncEnded69
Revived48
Roster103
ScreenTint215
SeatChampion101
SeatLoadProgress150
SeatName102
SelectObject175
ShieldAdded100
ShopHighlighted174
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SpawnBot206
SpawnEnd18
SpawnFromBarracks3
SpawnPet57
SpawnStart96
SpawnUnit122
SpellCastAnswer181
SpellCooldown132
SpellLevel89
SpellNameChanged52
SpellNumbers125
SpellTargetingChanged26
SpellUpgraded24
StartGame90
StatsRequest74
StatTick41
StopAnimation42
StopAttack54
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled200
SwapItems34
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit104
TeamChanged213
TeamScore210
TipEvent107
TipShown84
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed203
TutorialShopOpened91
UiHighlight201
UnitDied158
UnitHighlighted87
UnitHighlightRemoved180
UnitSpoke27
UnitStopped50
UpgradeSpell59
VersionSync83
VoiceEvent119
VoiceEventDone5
VolumeMuted40
WaypointAck116
WaypointGroup95
WaypointGroupAtSpeed98
WorldEvent70

Against 1.0.0.113

Where a build from 1.0.0.114 up to, not including, 1.0.0.116 differs from one from 1.0.0.113 up to, not including, 1.0.0.114. Anything not named here is the same in both.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.114–1.0.0.115:

  • SpellTargetingChanged, targeting: “How the spell is aimed, 0 to 8. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.”, where 1.0.0.113 has “How the spell is aimed, 0 to 7. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.”

1.0.0.116

Client builds from 1.0.0.116 up to, not including, 1.0.0.117. Patch notes: V1.0.0.116.

Build checkedPassedFailedSkippedCommitDate
1.0.0.11610045ba57872026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellIconChanged, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (194)
MessageCommand
AfkWarning184
AnimationOverrides105
Announcement127
AppearancePopped101
AppearancePushed151
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState171
BotTargets103
BuildingDied135
BuyItem129
Camera47
CameraAck45
CameraBehaviour112
CameraLock128
CameraLockSet118
CampCleared194
CapturePointValue209
CastSpell154
ChainTargets106
ChampionDied92
ChampionStats71
CharacterSelected190
Chat0
ClientEvent163
ClientFinished138
ClientReady81
ClientVersion189
ClockConvergence115
ClockReply8
ClockSync193
CloseShop15
CooldownSet132
CreateChampion75
CreateNeutral97
CreateTurret157
Damage99
DeathHistory35
DestroyMissile88
EffectAdded183
EffectAddedGroup102
EffectCount30
EffectCountGroup191
EffectRemoved121
EffectRemovedGroup148
EffectReplaced49
EffectReplacedGroup32
EmotePlayed68
EnterLocalSight173
EnterSight186
Exit141
ExperienceGained17
FaceDirection79
FacePosition79
FadeMinions202
FadeRemoved51
FadeSounds93
FadeTo178
FloatingText27
FogSet172
FogToggled124
ForceDeath29
GameEnded196
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead170
HealthBar205
HudDisabled188
HudHighlighted63
HudHighlightToggled78
InhibitorState44
InputLock131
InputLockToggled155
InventorySlot82
ItemAdded109
ItemUsed159
JoinSide100
KillParticle58
LeaveLocalSight55
LeaveSight80
LevelUp65
LoadingProgress25
Loadout43
MapPing85
MapProp207
MapPropChanged208
MatchIdentity145
MinimapHighlighted20
MinimapIcon214
MissileHits39
MissileReport61
MissileState61
ModulePacket223
MoveCamera38
MovementBounds6
MoveOrder111
NavigationFlags67
NexusIdle4
NexusSkin113
ObjectiveHidden162
ObjectiveReplaced14
ObjectiveShown56
ParticlesCreated133
Path185
PathWithSpeed130
PauseAnimation110
Paused161
PingPlaced66
PlayAnimation176
PlayEmote72
PlayerDisconnected152
QueryStatus23
QueryStatusAnswer134
QuestEvent204
QuestUpdated137
Reconnected16
ReconnectedInMatch156
RegionAdded117
RegionAttached37
RegionRemoved53
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication195
ResourceColours146
Respawned73
RespawnPoint211
Resumed10
ResyncEnded69
Revived48
Roster103
ScreenTint215
SeatChampion101
SeatLoadProgress150
SeatName102
SelectObject175
ShieldAdded100
ShopHighlighted174
SideTextHidden167
SideTextRefreshed177
SideTextShown160
SpawnBot206
SpawnEnd18
SpawnFromBarracks3
SpawnPet57
SpawnStart96
SpawnUnit122
SpellCastAnswer181
SpellCooldown132
SpellLevel89
SpellNameChanged52
SpellNumbers125
SpellTargetingChanged26
SpellUpgraded24
StartGame90
StatsRequest74
StatTick41
StopAnimation42
StopAttack54
SurrenderStatus165
SurrenderVote164
SurrenderVoteCalled200
SwapItems34
SwapItemsAnswer64
TargetHeldChampion192
TargetUnit104
TeamChanged213
TeamScore210
TipEvent107
TipShown84
TransientAck168
TutorialChatLine2
TutorialPopup179
TutorialPopupClosed203
TutorialShopOpened91
UiHighlight201
UnitDied158
UnitHighlighted87
UnitHighlightRemoved180
UnitSpoke27
UnitStopped50
UpgradeSpell59
VersionSync83
VoiceEvent119
VoiceEventDone5
VolumeMuted40
WaypointAck116
WaypointGroup95
WaypointGroupAtSpeed98
WorldEvent70

Against 1.0.0.114–1.0.0.115

Where a build from 1.0.0.116 up to, not including, 1.0.0.117 differs from one from 1.0.0.114 up to, not including, 1.0.0.116. Anything not named here is the same in both.

Transport

Chapters

  • In the transport chapter, a passage holds for 1.0.0.114–1.0.0.115 and not 1.0.0.116: A client pads what it sends to a whole number of blocks and enciphers all of it.
  • In the transport chapter, a passage holds for 1.0.0.116 and not 1.0.0.114–1.0.0.115: What a client sends carries no padding either.

1.0.0.117–1.0.0.118

Client builds from 1.0.0.117 up to, not including, 1.0.0.119. Patch notes: V1.0.0.117, V1.0.0.118.

Build checkedPassedFailedSkippedCommitDate
1.0.0.11710048f8e7782026-11-01
1.0.0.1181004be7d9422026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellInSlot, SpellOffsetTargetChanged, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (195)
MessageCommand
AfkWarning185
AnimationOverrides106
Announcement128
AppearancePopped102
AppearancePushed152
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState172
BotTargets104
BuildingDied136
BuyItem130
Camera47
CameraAck45
CameraBehaviour113
CameraLock129
CameraLockSet119
CampCleared195
CapturePointValue210
CastSpell155
ChainTargets107
ChampionDied93
ChampionStats72
CharacterSelected191
Chat0
ClientEvent164
ClientFinished139
ClientReady82
ClientVersion190
ClockConvergence116
ClockReply8
ClockSync194
CloseShop15
CooldownSet133
CreateChampion76
CreateNeutral98
CreateTurret158
Damage100
DeathHistory35
DestroyMissile89
EffectAdded184
EffectAddedGroup103
EffectCount30
EffectCountGroup192
EffectRemoved122
EffectRemovedGroup149
EffectReplaced49
EffectReplacedGroup32
EmotePlayed69
EnterLocalSight174
EnterSight187
Exit142
ExperienceGained17
FaceDirection80
FacePosition80
FadeMinions203
FadeRemoved51
FadeSounds94
FadeTo179
FloatingText27
FogSet173
FogToggled125
ForceDeath29
GameEnded197
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead171
HealthBar206
HudDisabled189
HudHighlighted64
HudHighlightToggled79
InhibitorState44
InputLock132
InputLockToggled156
InventorySlot83
ItemAdded110
ItemUsed160
JoinSide100
KillParticle59
LeaveLocalSight56
LeaveSight81
LevelUp66
LoadingProgress25
Loadout43
MapPing86
MapProp208
MapPropChanged209
MatchIdentity146
MinimapHighlighted20
MinimapIcon215
MissileHits39
MissileReport62
MissileState62
ModulePacket224
MoveCamera38
MovementBounds6
MoveOrder112
NavigationFlags68
NexusIdle4
NexusSkin114
ObjectiveHidden163
ObjectiveReplaced14
ObjectiveShown57
ParticlesCreated134
Path186
PathWithSpeed131
PauseAnimation111
Paused162
PingPlaced67
PlayAnimation177
PlayEmote73
PlayerDisconnected153
QueryStatus23
QueryStatusAnswer135
QuestEvent205
QuestUpdated138
Reconnected16
ReconnectedInMatch157
RegionAdded118
RegionAttached37
RegionRemoved54
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication196
ResourceColours147
Respawned74
RespawnPoint212
Resumed10
ResyncEnded70
Revived48
Roster103
ScreenTint216
SeatChampion101
SeatLoadProgress151
SeatName102
SelectObject176
ShieldAdded101
ShopHighlighted175
SideTextHidden168
SideTextRefreshed178
SideTextShown161
SpawnBot207
SpawnEnd18
SpawnFromBarracks3
SpawnPet58
SpawnStart97
SpawnUnit123
SpellCastAnswer182
SpellCooldown133
SpellIconChanged53
SpellLevel90
SpellNameChanged52
SpellNumbers126
SpellTargetingChanged26
SpellUpgraded24
StartGame91
StatsRequest75
StatTick41
StopAnimation42
StopAttack55
SurrenderStatus166
SurrenderVote165
SurrenderVoteCalled201
SwapItems34
SwapItemsAnswer65
TargetHeldChampion193
TargetUnit105
TeamChanged214
TeamScore211
TipEvent108
TipShown85
TransientAck169
TutorialChatLine2
TutorialPopup180
TutorialPopupClosed204
TutorialShopOpened92
UiHighlight202
UnitDied159
UnitHighlighted88
UnitHighlightRemoved181
UnitSpoke27
UnitStopped50
UpgradeSpell60
VersionSync84
VoiceEvent120
VoiceEventDone5
VolumeMuted40
WaypointAck117
WaypointGroup96
WaypointGroupAtSpeed99
WorldEvent71

Against 1.0.0.116

Where a build from 1.0.0.117 up to, not including, 1.0.0.119 differs from one from 1.0.0.116 up to, not including, 1.0.0.117. Anything not named here is the same in both.

In 1.0.0.117–1.0.0.118, not in 1.0.0.116

MessageSent byCommandWhat it does
SpellIconChangedserver53 on eventsChange which icon a spell already in a unit’s slot shows

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1161.0.0.117–1.0.0.118Messages
clock115116ClockConvergence
events53–21554–216RegionRemoved, StopAttack, LeaveLocalSight, ObjectiveShown, SpawnPet, KillParticle, MissileState, HudHighlighted, 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, PauseAnimation, CameraBehaviour, NexusSkin, RegionAdded, CameraLockSet, VoiceEvent, EffectRemoved, SpawnUnit, FogToggled, SpellNumbers, Announcement, PathWithSpeed, InputLock, SpellCooldown, ParticlesCreated, QueryStatusAnswer, BuildingDied, QuestUpdated, MatchIdentity, ResourceColours, EffectRemovedGroup, 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, CampCleared, GameEnded, SurrenderVoteCalled, UiHighlight, FadeMinions, HealthBar, SpawnBot, MapProp, MapPropChanged, CapturePointValue, TeamScore, RespawnPoint, TeamChanged, MinimapIcon, ScreenTint
requests59–22360–224UpgradeSpell, MissileReport, PlayEmote, StatsRequest, FacePosition, ClientReady, MapPing, TutorialShopOpened, TipEvent, MoveOrder, WaypointAck, CameraLock, BuyItem, CooldownSet, ClientFinished, Exit, CastSpell, ReconnectedInMatch, SurrenderVote, TransientAck, SelectObject, ClientVersion, CharacterSelected, TutorialPopupClosed, QuestEvent, ModulePacket
transient95–19596–196WaypointGroup, SeatLoadProgress, Replication

1.0.0.119

Client builds from 1.0.0.119 up to, not including, 1.0.0.120. Patch notes: V1.0.0.119.

Build checkedPassedFailedSkippedCommitDate
1.0.0.119100468d1fdf2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, EnterTeamSight, LeaveTeamSight, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellInSlot, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (196)
MessageCommand
AfkWarning186
AnimationOverrides107
Announcement129
AppearancePopped103
AppearancePushed153
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState173
BotTargets105
BuildingDied137
BuyItem131
Camera47
CameraAck45
CameraBehaviour114
CameraLock130
CameraLockSet120
CampCleared196
CapturePointValue211
CastSpell156
ChainTargets108
ChampionDied94
ChampionStats73
CharacterSelected192
Chat0
ClientEvent165
ClientFinished140
ClientReady83
ClientVersion191
ClockConvergence117
ClockReply8
ClockSync195
CloseShop15
CooldownSet134
CreateChampion77
CreateNeutral99
CreateTurret159
Damage101
DeathHistory35
DestroyMissile90
EffectAdded185
EffectAddedGroup104
EffectCount30
EffectCountGroup193
EffectRemoved123
EffectRemovedGroup150
EffectReplaced49
EffectReplacedGroup32
EmotePlayed70
EnterLocalSight175
EnterSight188
Exit143
ExperienceGained17
FaceDirection81
FacePosition81
FadeMinions204
FadeRemoved51
FadeSounds95
FadeTo180
FloatingText27
FogSet174
FogToggled126
ForceDeath29
GameEnded198
GameSpeed19
GoldGained36
GoldRedirect7
GreyscaleWhenDead172
HealthBar207
HudDisabled190
HudHighlighted65
HudHighlightToggled80
InhibitorState44
InputLock133
InputLockToggled157
InventorySlot84
ItemAdded111
ItemUsed161
JoinSide100
KillParticle60
LeaveLocalSight57
LeaveSight82
LevelUp67
LoadingProgress25
Loadout43
MapPing87
MapProp209
MapPropChanged210
MatchIdentity147
MinimapHighlighted20
MinimapIcon216
MissileHits39
MissileReport63
MissileState63
ModulePacket225
MoveCamera38
MovementBounds6
MoveOrder113
NavigationFlags69
NexusIdle4
NexusSkin115
ObjectiveHidden164
ObjectiveReplaced14
ObjectiveShown58
ParticlesCreated135
Path187
PathWithSpeed132
PauseAnimation112
Paused163
PingPlaced68
PlayAnimation178
PlayEmote74
PlayerDisconnected154
QueryStatus23
QueryStatusAnswer136
QuestEvent206
QuestUpdated139
Reconnected16
ReconnectedInMatch158
RegionAdded119
RegionAttached37
RegionRemoved55
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication197
ResourceColours148
Respawned75
RespawnPoint213
Resumed10
ResyncEnded71
Revived48
Roster103
ScreenTint217
SeatChampion101
SeatLoadProgress152
SeatName102
SelectObject177
ShieldAdded102
ShopHighlighted176
SideTextHidden169
SideTextRefreshed179
SideTextShown162
SpawnBot208
SpawnEnd18
SpawnFromBarracks3
SpawnPet59
SpawnStart98
SpawnUnit124
SpellCastAnswer183
SpellCooldown134
SpellIconChanged53
SpellLevel91
SpellNameChanged52
SpellNumbers127
SpellOffsetTargetChanged54
SpellTargetingChanged26
SpellUpgraded24
StartGame92
StatsRequest76
StatTick41
StopAnimation42
StopAttack56
SurrenderStatus167
SurrenderVote166
SurrenderVoteCalled202
SwapItems34
SwapItemsAnswer66
TargetHeldChampion194
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown86
TransientAck170
TutorialChatLine2
TutorialPopup181
TutorialPopupClosed205
TutorialShopOpened93
UiHighlight203
UnitDied160
UnitHighlighted89
UnitHighlightRemoved182
UnitSpoke27
UnitStopped50
UpgradeSpell61
VersionSync85
VoiceEvent121
VoiceEventDone5
VolumeMuted40
WaypointAck118
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent72

Against 1.0.0.117–1.0.0.118

Where a build from 1.0.0.119 up to, not including, 1.0.0.120 differs from one from 1.0.0.117 up to, not including, 1.0.0.119. Anything not named here is the same in both.

In 1.0.0.119, not in 1.0.0.117–1.0.0.118

MessageSent byCommandWhat it does
SpellOffsetTargetChangedserver54 on eventsChange the unit a spell already in a unit’s slot is cast from

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.117–1.0.0.1181.0.0.119Messages
clock116117ClockConvergence
events54–21655–217RegionRemoved, StopAttack, LeaveLocalSight, ObjectiveShown, SpawnPet, KillParticle, MissileState, HudHighlighted, SwapItemsAnswer, LevelUp, 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, PauseAnimation, CameraBehaviour, NexusSkin, RegionAdded, CameraLockSet, VoiceEvent, EffectRemoved, SpawnUnit, FogToggled, SpellNumbers, Announcement, PathWithSpeed, InputLock, SpellCooldown, ParticlesCreated, QueryStatusAnswer, BuildingDied, QuestUpdated, MatchIdentity, ResourceColours, EffectRemovedGroup, 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, GameEnded, SurrenderVoteCalled, UiHighlight, FadeMinions, HealthBar, SpawnBot, MapProp, MapPropChanged, CapturePointValue, TeamScore, RespawnPoint, TeamChanged, MinimapIcon, ScreenTint
requests60–22461–225UpgradeSpell, MissileReport, PlayEmote, StatsRequest, FacePosition, ClientReady, TutorialShopOpened, TipEvent, MoveOrder, WaypointAck, CameraLock, BuyItem, CooldownSet, ClientFinished, Exit, CastSpell, ReconnectedInMatch, SurrenderVote, TransientAck, SelectObject, ClientVersion, CharacterSelected, TutorialPopupClosed, QuestEvent, ModulePacket
transient96–19697–197WaypointGroup, SeatLoadProgress, Replication

Laid out differently

  • CampCleared
    • Its command is 195 in 1.0.0.117–1.0.0.118 and 196 in 1.0.0.119.
    • camp is u8 in 1.0.0.117–1.0.0.118 and u32 in 1.0.0.119.
  • MapPing (vectors: one-on-1-0-0-119)
    • Its command is 86 in 1.0.0.117–1.0.0.118 and 87 in 1.0.0.119.
    • unset is in 1.0.0.119 (bytes, 1), after target, and not in 1.0.0.117–1.0.0.118.
  • PingPlaced
    • Its command is 67 in 1.0.0.117–1.0.0.118 and 68 in 1.0.0.119.
    • how has unusedLow at bit 0 in 1.0.0.119, and not in 1.0.0.117–1.0.0.118.
    • how.playSound is at bit 0 in 1.0.0.117–1.0.0.118 and at bit 4 in 1.0.0.119.
    • how.showInChat is at bit 1 in 1.0.0.117–1.0.0.118 and at bit 5 in 1.0.0.119.
    • how.unused is at bit 2, 6 bits wide, in 1.0.0.117–1.0.0.118 and at bit 6, 2 bits wide, in 1.0.0.119.

Structs

  • SpellHit
    • atX is in 1.0.0.119 (f32), after unit, and not in 1.0.0.117–1.0.0.118.
    • atY is in 1.0.0.119 (f32), after atX, and not in 1.0.0.117–1.0.0.118.
    • atZ is in 1.0.0.119 (f32), after atY, and not in 1.0.0.117–1.0.0.118.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.119:

  • SpellTargetingChanged, which.summonerSlots: “Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.”, where 1.0.0.117–1.0.0.118 has “Set where the slot counts among the summoner slots, so that 0 and 1 name those two.”
  • SpellTargetingChanged, targeting: “How the spell is aimed, 0 to 10. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.”, where 1.0.0.117–1.0.0.118 has “How the spell is aimed, 0 to 8. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.”

1.0.0.120

Client builds from 1.0.0.120 up to, not including, 1.0.0.121. Patch notes: V1.0.0.120.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1201004996f5f32026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellInSlot, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (199)
MessageCommand
AfkWarning186
AnimationOverrides107
Announcement129
AppearancePopped103
AppearancePushed153
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState173
BotTargets105
BuildingDied137
BuyItem131
Camera47
CameraAck45
CameraBehaviour114
CameraLock130
CameraLockSet120
CampCleared196
CapturePointValue211
CastSpell156
ChainTargets108
ChampionDied94
ChampionStats73
CharacterSelected192
Chat0
ClientEvent165
ClientFinished140
ClientReady83
ClientVersion191
ClockConvergence117
ClockReply8
ClockSync195
CloseShop15
CooldownSet134
CreateChampion77
CreateNeutral99
CreateTurret159
Damage101
DeathHistory35
DestroyMissile90
EffectAdded185
EffectAddedGroup104
EffectCount30
EffectCountGroup193
EffectRemoved123
EffectRemovedGroup150
EffectReplaced49
EffectReplacedGroup32
EmotePlayed70
EnterLocalSight175
EnterSight188
EnterTeamSight226
Exit143
ExperienceGained17
FaceDirection81
FacePosition81
FadeMinions204
FadeRemoved51
FadeSounds95
FadeTo180
FloatingText27
FogSet174
FogToggled126
ForceDeath29
GameEnded198
GameSpeed19
GoldEarned228
GoldGained36
GoldRedirect7
GreyscaleWhenDead172
HealthBar207
HudDisabled190
HudHighlighted65
HudHighlightToggled80
InhibitorState44
InputLock133
InputLockToggled157
InventorySlot84
ItemAdded111
ItemUsed161
JoinSide100
KillParticle60
LeaveLocalSight57
LeaveSight82
LeaveTeamSight227
LevelUp67
LoadingProgress25
Loadout43
MapPing87
MapProp209
MapPropChanged210
MatchIdentity147
MinimapHighlighted20
MinimapIcon216
MissileHits39
MissileReport63
MissileState63
ModulePacket225
MoveCamera38
MovementBounds6
MoveOrder113
NavigationFlags69
NexusIdle4
NexusSkin115
ObjectiveHidden164
ObjectiveReplaced14
ObjectiveShown58
ParticlesCreated135
Path187
PathWithSpeed132
PauseAnimation112
Paused163
PingPlaced68
PlayAnimation178
PlayEmote74
PlayerDisconnected154
QueryStatus23
QueryStatusAnswer136
QuestEvent206
QuestUpdated139
Reconnected16
ReconnectedInMatch158
RegionAdded119
RegionAttached37
RegionRemoved55
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication197
ResourceColours148
Respawned75
RespawnPoint213
Resumed10
ResyncEnded71
Revived48
Roster103
ScreenTint217
SeatChampion101
SeatLoadProgress152
SeatName102
SelectObject177
ShieldAdded102
ShopHighlighted176
SideTextHidden169
SideTextRefreshed179
SideTextShown162
SpawnBot208
SpawnEnd18
SpawnFromBarracks3
SpawnPet59
SpawnStart98
SpawnUnit124
SpellCastAnswer183
SpellCooldown134
SpellIconChanged53
SpellLevel91
SpellNameChanged52
SpellNumbers127
SpellOffsetTargetChanged54
SpellTargetingChanged26
SpellUpgraded24
StartGame92
StatsRequest76
StatTick41
StopAnimation42
StopAttack56
SurrenderStatus167
SurrenderVote166
SurrenderVoteCalled202
SwapItems34
SwapItemsAnswer66
TargetHeldChampion194
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown86
TransientAck170
TutorialChatLine2
TutorialPopup181
TutorialPopupClosed205
TutorialShopOpened93
UiHighlight203
UnitDied160
UnitHighlighted89
UnitHighlightRemoved182
UnitSpoke27
UnitStopped50
UpgradeSpell61
VersionSync85
VoiceEvent121
VoiceEventDone5
VolumeMuted40
WaypointAck118
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent72

Against 1.0.0.119

Where a build from 1.0.0.120 up to, not including, 1.0.0.121 differs from one from 1.0.0.119 up to, not including, 1.0.0.120. Anything not named here is the same in both.

In 1.0.0.120, not in 1.0.0.119

MessageSent byCommandWhat it does
EnterTeamSightserver226 on eventsWhat a server sends when a unit comes into the view of a whole side
GoldEarnedserver228 on eventsWhat a server sends about gold a champion earned
LeaveTeamSightserver227 on eventsWhat a server sends when a unit passes out of the view of a whole side

Laid out differently

  • Camera
    • positionX is in 1.0.0.120 (f32) at the start, and not in 1.0.0.119.
    • positionY is in 1.0.0.120 (f32), after positionX, and not in 1.0.0.119.
    • positionZ is in 1.0.0.120 (f32), after positionY, and not in 1.0.0.119.
    • directionX is in 1.0.0.120 (f32), after positionZ, and not in 1.0.0.119.
    • directionY is in 1.0.0.120 (f32), after directionX, and not in 1.0.0.119.
    • directionZ is in 1.0.0.120 (f32), after directionY, and not in 1.0.0.119.
    • lookAtX is in 1.0.0.119 and not in 1.0.0.120.
    • lookAtY is in 1.0.0.119 and not in 1.0.0.120.
    • lookAtZ is in 1.0.0.119 and not in 1.0.0.120.
  • ClockReply
    • check is in 1.0.0.120 (bytes, 32), after clientSaid, and not in 1.0.0.119.
  • SpawnUnit
    • flags has ward at bit 1 in 1.0.0.120, and not in 1.0.0.119.
    • flags.unused is at bit 1, 7 bits wide, in 1.0.0.119 and at bit 2, 6 bits wide, in 1.0.0.120.

Chapters

  • In the interface chapter, a passage holds for 1.0.0.119 and not 1.0.0.120: Camera names one point, the one the view looks at, in place of where the view sits and which way it faces.

1.0.0.121

Client builds from 1.0.0.121 up to, not including, 1.0.0.122. Patch notes: V1.0.0.121.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1211004c60872f2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellInSlot, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (199)
MessageCommand
AfkWarning186
AnimationOverrides107
Announcement129
AppearancePopped103
AppearancePushed153
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState173
BotTargets105
BuildingDied137
BuyItem131
Camera47
CameraAck45
CameraBehaviour114
CameraLock130
CameraLockSet120
CampCleared196
CapturePointValue211
CastSpell156
ChainTargets108
ChampionDied94
ChampionStats73
CharacterSelected192
Chat0
ClientEvent165
ClientFinished140
ClientReady83
ClientVersion191
ClockConvergence117
ClockReply8
ClockSync195
CloseShop15
CooldownSet134
CreateChampion77
CreateNeutral99
CreateTurret159
Damage101
DeathHistory35
DestroyMissile90
EffectAdded185
EffectAddedGroup104
EffectCount30
EffectCountGroup193
EffectRemoved123
EffectRemovedGroup150
EffectReplaced49
EffectReplacedGroup32
EmotePlayed70
EnterLocalSight175
EnterSight188
EnterTeamSight226
Exit143
ExperienceGained17
FaceDirection81
FacePosition81
FadeMinions204
FadeRemoved51
FadeSounds95
FadeTo180
FloatingText27
FogSet174
FogToggled126
ForceDeath29
GameEnded198
GameSpeed19
GoldEarned228
GoldGained36
GoldRedirect7
GreyscaleWhenDead172
HealthBar207
HudDisabled190
HudHighlighted65
HudHighlightToggled80
InhibitorState44
InputLock133
InputLockToggled157
InventorySlot84
ItemAdded111
ItemUsed161
JoinSide100
KillParticle60
LeaveLocalSight57
LeaveSight82
LeaveTeamSight227
LevelUp67
LoadingProgress25
Loadout43
MapPing87
MapProp209
MapPropChanged210
MatchIdentity147
MinimapHighlighted20
MinimapIcon216
MissileHits39
MissileReport63
MissileState63
ModulePacket225
MoveCamera38
MovementBounds6
MoveOrder113
NavigationFlags69
NexusIdle4
NexusSkin115
ObjectiveHidden164
ObjectiveReplaced14
ObjectiveShown58
ParticlesCreated135
Path187
PathWithSpeed132
PauseAnimation112
Paused163
PingPlaced68
PlayAnimation178
PlayEmote74
PlayerDisconnected154
QueryStatus23
QueryStatusAnswer136
QuestEvent206
QuestUpdated139
Reconnected16
ReconnectedInMatch158
RegionAdded119
RegionAttached37
RegionRemoved55
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication197
ResourceColours148
Respawned75
RespawnPoint213
Resumed10
ResyncEnded71
Revived48
Roster103
ScreenTint217
SeatChampion101
SeatLoadProgress152
SeatName102
SelectObject177
ShieldAdded102
ShopHighlighted176
SideTextHidden169
SideTextRefreshed179
SideTextShown162
SpawnBot208
SpawnEnd18
SpawnFromBarracks3
SpawnPet59
SpawnStart98
SpawnUnit124
SpellCastAnswer183
SpellCooldown134
SpellIconChanged53
SpellLevel91
SpellNameChanged52
SpellNumbers127
SpellOffsetTargetChanged54
SpellTargetingChanged26
SpellUpgraded24
StartGame92
StatsRequest76
StatTick41
StopAnimation42
StopAttack56
SurrenderStatus167
SurrenderVote166
SurrenderVoteCalled202
SwapItems34
SwapItemsAnswer66
TargetHeldChampion194
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown86
TransientAck170
TutorialChatLine2
TutorialPopup181
TutorialPopupClosed205
TutorialShopOpened93
UiHighlight203
UnitDied160
UnitHighlighted89
UnitHighlightRemoved182
UnitSpoke27
UnitStopped50
UpgradeSpell61
VersionSync85
VoiceEvent121
VoiceEventDone5
VolumeMuted40
WaypointAck118
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent72

Against 1.0.0.120

Where a build from 1.0.0.121 up to, not including, 1.0.0.122 differs from one from 1.0.0.120 up to, not including, 1.0.0.121. Anything not named here is the same in both.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.121:

  • EffectAdded, slot: “Which of the unit’s effect slots it sits in. A client ignores the message where it is above 63.”, where 1.0.0.120 has “Which of the unit’s effect slots it sits in. A client ignores the message where it is above 31.”
  • EffectCount, slot: “Which slot. A client ignores the message where it is above 63.”, where 1.0.0.120 has “Which slot. A client ignores the message where it is above 31.”
  • EffectRemoved, slot: “Which slot it sat in. A client ignores the message where it is above 63.”, where 1.0.0.120 has “Which slot it sat in. A client ignores the message where it is above 31.”
  • EffectReplaced, slot: “Which of the unit’s effect slots. A client ignores the message where it is above 63.”, where 1.0.0.120 has “Which of the unit’s effect slots. A client ignores the message where it is above 31.”

1.0.0.122

Client builds from 1.0.0.122 up to, not including, 1.0.0.123. Patch notes: V1.0.0.122.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1221004c19f1492026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, MatchStarted, MusicCue, ParticleLeaveTeamSight, ParticleSource, Pause, Resume, ScoreAdded, SpellInSlot, StatisticIncremented, UnitText, UseObject, VictoryDance, VoiceOverride.

Every message of this range (199)
MessageCommand
AfkWarning186
AnimationOverrides107
Announcement129
AppearancePopped103
AppearancePushed153
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState173
BotTargets105
BuildingDied137
BuyItem131
Camera47
CameraAck45
CameraBehaviour114
CameraLock130
CameraLockSet120
CampCleared196
CapturePointValue211
CastSpell156
ChainTargets108
ChampionDied94
ChampionStats73
CharacterSelected192
Chat0
ClientEvent165
ClientFinished140
ClientReady83
ClientVersion191
ClockConvergence117
ClockReply8
ClockSync195
CloseShop15
CooldownSet134
CreateChampion77
CreateNeutral99
CreateTurret159
Damage101
DeathHistory35
DestroyMissile90
EffectAdded185
EffectAddedGroup104
EffectCount30
EffectCountGroup193
EffectRemoved123
EffectRemovedGroup150
EffectReplaced49
EffectReplacedGroup32
EmotePlayed70
EnterLocalSight175
EnterSight188
EnterTeamSight226
Exit143
ExperienceGained17
FaceDirection81
FacePosition81
FadeMinions204
FadeRemoved51
FadeSounds95
FadeTo180
FloatingText27
FogSet174
FogToggled126
ForceDeath29
GameEnded198
GameSpeed19
GoldEarned228
GoldGained36
GoldRedirect7
GreyscaleWhenDead172
HealthBar207
HudDisabled190
HudHighlighted65
HudHighlightToggled80
InhibitorState44
InputLock133
InputLockToggled157
InventorySlot84
ItemAdded111
ItemUsed161
JoinSide100
KillParticle60
LeaveLocalSight57
LeaveSight82
LeaveTeamSight227
LevelUp67
LoadingProgress25
Loadout43
MapPing87
MapProp209
MapPropChanged210
MatchIdentity147
MinimapHighlighted20
MinimapIcon216
MissileHits39
MissileReport63
MissileState63
ModulePacket225
MoveCamera38
MovementBounds6
MoveOrder113
NavigationFlags69
NexusIdle4
NexusSkin115
ObjectiveHidden164
ObjectiveReplaced14
ObjectiveShown58
ParticlesCreated135
Path187
PathWithSpeed132
PauseAnimation112
Paused163
PingPlaced68
PlayAnimation178
PlayEmote74
PlayerDisconnected154
QueryStatus23
QueryStatusAnswer136
QuestEvent206
QuestUpdated139
Reconnected16
ReconnectedInMatch158
RegionAdded119
RegionAttached37
RegionRemoved55
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication197
ResourceColours148
Respawned75
RespawnPoint213
Resumed10
ResyncEnded71
Revived48
Roster103
ScreenTint217
SeatChampion101
SeatLoadProgress152
SeatName102
SelectObject177
ShieldAdded102
ShopHighlighted176
SideTextHidden169
SideTextRefreshed179
SideTextShown162
SpawnBot208
SpawnEnd18
SpawnFromBarracks3
SpawnPet59
SpawnStart98
SpawnUnit124
SpellCastAnswer183
SpellCooldown134
SpellIconChanged53
SpellLevel91
SpellNameChanged52
SpellNumbers127
SpellOffsetTargetChanged54
SpellTargetingChanged26
SpellUpgraded24
StartGame92
StatsRequest76
StatTick41
StopAnimation42
StopAttack56
SurrenderStatus167
SurrenderVote166
SurrenderVoteCalled202
SwapItems34
SwapItemsAnswer66
TargetHeldChampion194
TargetUnit106
TeamChanged215
TeamScore212
TipEvent109
TipShown86
TransientAck170
TutorialChatLine2
TutorialPopup181
TutorialPopupClosed205
TutorialShopOpened93
UiHighlight203
UnitDied160
UnitHighlighted89
UnitHighlightRemoved182
UnitSpoke27
UnitStopped50
UpgradeSpell61
VersionSync85
VoiceEvent121
VoiceEventDone5
VolumeMuted40
WaypointAck118
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent72

Against 1.0.0.121

Where a build from 1.0.0.122 up to, not including, 1.0.0.123 differs from one from 1.0.0.121 up to, not including, 1.0.0.122. Anything not named here is the same in both.

Laid out differently

  • GameEnded (vectors: one-on-1-0-0-122)
    • result is u8 in 1.0.0.121 and 1-byte bits in 1.0.0.122.
    • result has side100Won at bit 0 in 1.0.0.122, and not in 1.0.0.121.
    • result has unused at bit 1 in 1.0.0.122, and not in 1.0.0.121.
  • InhibitorState
    • state is u32 in 1.0.0.121 and 4-byte bits in 1.0.0.122.
    • state takes 0 down, 1 restored in 1.0.0.121 and not in 1.0.0.122.
    • state has alive at bit 0 in 1.0.0.122, and not in 1.0.0.121.
    • state has duration at bit 1 in 1.0.0.122, and not in 1.0.0.121.
    • duration is in 1.0.0.121 and not in 1.0.0.122.
  • LoadingProgress
    • text is in 1.0.0.121 and not in 1.0.0.122.
  • MapProp (vectors: one-on-1-0-0-122)
    • flags is in 1.0.0.122 (1-byte bits), after skillLevel, and not in 1.0.0.121.
  • SpawnBot (vectors: one-on-1-0-0-122)
    • sides is in 1.0.0.122 (4-byte bits), after rank, and not in 1.0.0.121.
    • flags is in 1.0.0.122 (1-byte bits), after sides, and not in 1.0.0.121.
    • side is in 1.0.0.121 and not in 1.0.0.122.
  • SpawnUnit
    • flags has nameIsAsset at bit 2 in 1.0.0.122, and not in 1.0.0.121.
    • flags.unused is at bit 2, 6 bits wide, in 1.0.0.121 and at bit 3, 5 bits wide, in 1.0.0.122.

Chapters

  • In the objectives chapter, a passage holds for 1.0.0.122 and not 1.0.0.121: No unit stands behind a point: a server sets each point outright with CapturePointValue, which says who holds it, how far it is taken and how fast that changes, and a client moves the point on by itself between messages.

1.0.0.123

Client builds from 1.0.0.123 up to, not including, 1.0.0.124. Patch notes: V1.0.0.123.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1231004dd7ef302026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, CapturePointChanged, MatchStarted, MusicCue, ParticleSource, Pause, Resume, ScoreAdded, SpellInSlot, StatisticIncremented, UnitText, UseObject, VoiceOverride.

Every message of this range (201)
MessageCommand
AfkWarning186
AnimationOverrides107
Announcement129
AppearancePopped103
AppearancePushed153
Attack13
AttackFrom28
Autocast33
BotDebug21
BotState173
BotTargets105
BuildingDied137
BuyItem131
Camera47
CameraAck45
CameraBehaviour114
CameraLock130
CameraLockSet120
CampCleared196
CapturePointValue212
CastSpell156
ChainTargets108
ChampionDied94
ChampionStats73
CharacterSelected192
Chat0
ClientEvent165
ClientFinished140
ClientReady83
ClientVersion191
ClockConvergence117
ClockReply8
ClockSync195
CloseShop15
CooldownSet134
CreateChampion77
CreateNeutral99
CreateTurret159
Damage101
DeathHistory35
DestroyMissile90
EffectAdded185
EffectAddedGroup104
EffectCount30
EffectCountGroup193
EffectRemoved123
EffectRemovedGroup150
EffectReplaced49
EffectReplacedGroup32
EmotePlayed70
EnterLocalSight175
EnterSight188
EnterTeamSight227
Exit143
ExperienceGained17
FaceDirection81
FacePosition81
FadeMinions205
FadeRemoved51
FadeSounds95
FadeTo180
FloatingText27
FogSet174
FogToggled126
ForceDeath29
GameEnded199
GameSpeed19
GoldEarned231
GoldGained36
GoldRedirect7
GreyscaleWhenDead172
HealthBar208
HudDisabled190
HudHighlighted65
HudHighlightToggled80
InhibitorState44
InputLock133
InputLockToggled157
InventorySlot84
ItemAdded111
ItemUsed161
JoinSide100
KillParticle60
LeaveLocalSight57
LeaveSight82
LeaveTeamSight228
LevelUp67
LoadingProgress25
Loadout43
MapPing87
MapProp210
MapPropChanged211
MatchIdentity147
MinimapHighlighted20
MinimapIcon217
MissileHits39
MissileReport63
MissileState63
ModulePacket226
MoveCamera38
MovementBounds6
MoveOrder113
NavigationFlags69
NexusIdle4
NexusSkin115
ObjectiveHidden164
ObjectiveReplaced14
ObjectiveShown58
ParticleLeaveTeamSight230
ParticlesCreated135
Path187
PathWithSpeed132
PauseAnimation112
Paused163
PingPlaced68
PlayAnimation178
PlayEmote74
PlayerDisconnected154
QueryStatus23
QueryStatusAnswer136
QuestEvent207
QuestUpdated139
Reconnected16
ReconnectedInMatch158
RegionAdded119
RegionAttached37
RegionRemoved55
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication197
ResourceColours148
Respawned75
RespawnPoint214
Resumed10
ResyncEnded71
Revived48
Roster103
ScreenTint218
SeatChampion101
SeatLoadProgress152
SeatName102
SelectObject177
ShieldAdded102
ShopHighlighted176
SideTextHidden169
SideTextRefreshed179
SideTextShown162
SpawnBot209
SpawnEnd18
SpawnFromBarracks3
SpawnPet59
SpawnStart98
SpawnUnit124
SpellCastAnswer183
SpellCooldown134
SpellIconChanged53
SpellLevel91
SpellNameChanged52
SpellNumbers127
SpellOffsetTargetChanged54
SpellTargetingChanged26
SpellUpgraded24
StartGame92
StatsRequest76
StatTick41
StopAnimation42
StopAttack56
SurrenderStatus167
SurrenderVote166
SurrenderVoteCalled203
SwapItems34
SwapItemsAnswer66
TargetHeldChampion194
TargetUnit106
TeamChanged216
TeamScore213
TipEvent109
TipShown86
TransientAck170
TutorialChatLine2
TutorialPopup181
TutorialPopupClosed206
TutorialShopOpened93
UiHighlight204
UnitDied160
UnitHighlighted89
UnitHighlightRemoved182
UnitSpoke27
UnitStopped50
UpgradeSpell61
VersionSync85
VictoryDance198
VoiceEvent121
VoiceEventDone5
VolumeMuted40
WaypointAck118
WaypointGroup97
WaypointGroupAtSpeed100
WorldEvent72

Against 1.0.0.122

Where a build from 1.0.0.123 up to, not including, 1.0.0.124 differs from one from 1.0.0.122 up to, not including, 1.0.0.123. Anything not named here is the same in both.

In 1.0.0.123, not in 1.0.0.122

MessageSent byCommandWhat it does
ParticleLeaveTeamSightserver230 on eventsWhat a server sends as a particle passes out of what one side can see
VictoryDanceserver198 on eventsSet units moving as winners or losers do

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • MapPing (vectors: here-on-1-0-0-123)
    • how is in 1.0.0.123 (1-byte bits), after target, and not in 1.0.0.122.
    • unset is in 1.0.0.122 and not in 1.0.0.123.
  • PingPlaced (vectors: one-on-1-0-0-123)
    • how names bit 0 unusedLow in 1.0.0.122 and category in 1.0.0.123.
    • how has throttled at bit 6 in 1.0.0.123, and not in 1.0.0.122.
    • how.unused is at bit 6, 2 bits wide, in 1.0.0.122 and at bit 7, 1 bits wide, in 1.0.0.123.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.123:

  • CampCleared, its layout: “The header names the champion credited with emptying the camp. A client uses it only to choose a side: side 100 where the champion is on side 100, side 200 otherwise. A client marks the camp empty, even one that had just filled.”, where 1.0.0.122 has “The header has no effect. A client keeps one state for the camp, shared by both sides. A client marks the camp empty, even one that had just filled.”
  • CampCleared, active: “The camp’s state for that side, kept as it stands; nonzero where it is active.”, where 1.0.0.122 has “The camp’s state, kept as it stands; nonzero where it is active.”

1.0.0.124

Client builds from 1.0.0.124 up to, not including, 1.0.0.125. Patch notes: V1.0.0.124.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1241004a7a09bc2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting, VoiceOverride.

Every message of this range (211)
MessageCommand
AfkWarning190
AnimationOverrides110
Announcement133
AppearancePopped106
AppearancePushed157
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState177
BotTargets108
BuildingDied141
BuyItem135
Camera48
CameraAck46
CameraBehaviour118
CameraLock134
CameraLockSet124
CampCleared201
CapturePointChanged218
CastSpell160
ChainTargets111
ChampionDied97
ChampionStats75
CharacterSelected196
Chat0
ClientEvent169
ClientFinished144
ClientReady85
ClientVersion195
ClockConvergence121
ClockReply8
ClockSync199
CloseShop15
CooldownSet138
CreateChampion79
CreateNeutral102
CreateTurret163
Damage104
DeathHistory36
DestroyMissile93
EffectAdded189
EffectAddedGroup107
EffectCount31
EffectCountGroup197
EffectRemoved127
EffectRemovedGroup154
EffectReplaced50
EffectReplacedGroup33
EmotePlayed72
EnterLocalSight179
EnterSight192
EnterTeamSight236
Exit147
ExperienceGained17
FaceDirection83
FacePosition83
FadeMinions210
FadeRemoved52
FadeSounds98
FadeTo184
FloatingText27
FogSet178
FogToggled130
ForceDeath30
GameEnded204
GameSpeed19
GoldEarned240
GoldGained37
GoldRedirect7
GreyscaleWhenDead176
HealthBar213
HudDisabled194
HudHighlighted67
HudHighlightToggled82
InhibitorState45
InputLock137
InputLockToggled161
InventorySlot86
ItemAdded114
ItemUsed165
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight84
LeaveTeamSight237
LevelUp69
LoadingProgress25
Loadout44
MapPing90
MapProp215
MapPropChanged216
MatchIdentity151
MatchStarted200
MinimapHighlighted20
MinimapIcon223
MissileHits40
MissileReport65
MissileState65
ModulePacket235
MoveCamera39
MovementBounds6
MoveOrder117
MusicCue227
NavigationFlags71
NexusIdle4
NexusSkin119
ObjectiveHidden168
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight239
ParticlesCreated139
ParticleSource217
Path191
PathWithSpeed136
Pause167
PauseAnimation116
Paused167
PingPlaced70
PlayAnimation182
PlayEmote76
PlayerDisconnected158
QueryStatus23
QueryStatusAnswer140
QuestEvent212
QuestUpdated143
Reconnected16
ReconnectedInMatch162
RegionAdded123
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication202
ResourceColours152
Respawned77
RespawnPoint220
Resume10
Resumed10
ResyncEnded73
Revived49
Roster103
ScoreAdded224
ScreenTint226
SeatChampion101
SeatLoadProgress156
SeatName102
SelectObject181
ShieldAdded105
ShopHighlighted180
SideTextHidden173
SideTextRefreshed183
SideTextShown166
SpawnBot214
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart101
SpawnUnit128
SpellCastAnswer187
SpellCooldown138
SpellIconChanged54
SpellInSlot115
SpellLevel94
SpellNameChanged53
SpellNumbers131
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame95
StatisticIncremented225
StatsRequest89
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus171
SurrenderVote170
SurrenderVoteCalled208
SwapItems35
SwapItemsAnswer68
TargetHeldChampion198
TargetUnit109
TeamChanged222
TeamScore219
TipEvent112
TipShown88
TransientAck174
TutorialChatLine2
TutorialPopup185
TutorialPopupClosed211
TutorialShopOpened96
UiHighlight209
UnitDied164
UnitHighlighted92
UnitHighlightRemoved186
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync87
VictoryDance203
VoiceEvent125
VoiceEventDone5
VolumeMuted41
WaypointAck122
WaypointGroup100
WaypointGroupAtSpeed103
WorldEvent74

Against 1.0.0.123

Where a build from 1.0.0.124 up to, not including, 1.0.0.125 differs from one from 1.0.0.123 up to, not including, 1.0.0.124. Anything not named here is the same in both.

In 1.0.0.124, not in 1.0.0.123

MessageSent byCommandWhat it does
CapturePointChangedserver218 on eventsWhat a server sends when something changes about a point one side can take from the other
MatchStartedserver200 on eventsSet when the match began
MusicCueserver227 on eventsDrive the music a client plays
ParticleSourceserver217 on eventsDrive a value of the lasting particle effects on a unit from something that changes
Pauseclient167 on requestsHold a match
Resumeclient10 on requestsStart a paused match again
ScoreAddedserver224 on eventsAdd to a player’s score
SpellInSlotserver115 on eventsPut a spell in one of a unit’s slots
StatisticIncrementedserver225 on eventsAdd one to a champion’s count of a deed, as counted for the end of a match
UnitTextserver28 on eventsFloat a line of the client’s own text over a unit, as combat text floats
UseObjectclient63 on requestsUse a unit: as its player right-clicks a unit its character data makes usable by them and off its use cooldown

In 1.0.0.123, not in 1.0.0.124

MessageSent byCommand it had
CapturePointValueserver212 on events

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Channel1.0.0.1231.0.0.124Messages
clock117121ClockConvergence
events28–6029–61AttackFrom, 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
events63–8665–88MissileState, HudHighlighted, SwapItemsAnswer, LevelUp, PingPlaced, NavigationFlags, EmotePlayed, ResyncEnded, Respawned, CreateChampion, HudHighlightToggled, FaceDirection, LeaveSight, InventorySlot, VersionSync, TipShown
events89–11192–114UnitHighlighted, DestroyMissile, SpellLevel, StartGame, ChampionDied, FadeSounds, SpawnStart, WaypointGroupAtSpeed, Damage, ShieldAdded, AppearancePopped, EffectAddedGroup, BotTargets, TargetUnit, AnimationOverrides, ChainTargets, ItemAdded
events112–195116–199PauseAnimation, CameraBehaviour, NexusSkin, RegionAdded, CameraLockSet, VoiceEvent, EffectRemoved, FogToggled, SpellNumbers, Announcement, PathWithSpeed, InputLock, SpellCooldown, ParticlesCreated, QueryStatusAnswer, BuildingDied, MatchIdentity, ResourceColours, EffectRemovedGroup, AppearancePushed, PlayerDisconnected, InputLockToggled, CreateTurret, UnitDied, ItemUsed, SideTextShown, Paused, ObjectiveHidden, SurrenderStatus, SideTextHidden, GreyscaleWhenDead, BotState, FogSet, EnterLocalSight, ShopHighlighted, PlayAnimation, SideTextRefreshed, FadeTo, TutorialPopup, UnitHighlightRemoved, SpellCastAnswer, EffectAdded, AfkWarning, Path, EnterSight, HudDisabled, EffectCountGroup, TargetHeldChampion, ClockSync
events196–208201–213CampCleared, VictoryDance, GameEnded, SurrenderVoteCalled, UiHighlight, FadeMinions, HealthBar
events216–217222–223TeamChanged, MinimapIcon
events218226ScreenTint
events227–231236–240EnterTeamSight, LeaveTeamSight, ParticleLeaveTeamSight, GoldEarned
requests34–6135–62SwapItems, Camera, UpgradeSpell
requests63–7465–76MissileReport, PlayEmote
requests7689StatsRequest
requests81–8383–85FacePosition, ClientReady
requests93–10996–112TutorialShopOpened, TipEvent
requests113–192117–196MoveOrder, WaypointAck, CameraLock, BuyItem, CooldownSet, ClientFinished, Exit, CastSpell, ReconnectedInMatch, SurrenderVote, TransientAck, SelectObject, ClientVersion, CharacterSelected
requests206–207211–212TutorialPopupClosed, QuestEvent
requests226235ModulePacket
transient97100WaypointGroup
transient152156SeatLoadProgress
transient197202Replication

Laid out differently

  • ChampionStats
    • Its command is 73 in 1.0.0.123 and 75 in 1.0.0.124.
    • size is in 1.0.0.124 (u32) at the start, and not in 1.0.0.123.
    • values is in 1.0.0.124 (bytes, sized by size minus 4), after size, and not in 1.0.0.123.
    • keptA is in 1.0.0.123 and not in 1.0.0.124.
    • deaths is in 1.0.0.123 and not in 1.0.0.124.
    • minionKills is in 1.0.0.123 and not in 1.0.0.124.
    • kills is in 1.0.0.123 and not in 1.0.0.124.
    • structureKills is in 1.0.0.123 and not in 1.0.0.124.
    • otherStructureKills is in 1.0.0.123 and not in 1.0.0.124.
    • keptB is in 1.0.0.123 and not in 1.0.0.124.
    • neutralKills is in 1.0.0.123 and not in 1.0.0.124.
    • gap is in 1.0.0.123 and not in 1.0.0.124.
    • keptC is in 1.0.0.123 and not in 1.0.0.124.
    • goldTotal is in 1.0.0.123 and not in 1.0.0.124.
    • keptD is in 1.0.0.123 and not in 1.0.0.124.
    • keptE is in 1.0.0.123 and not in 1.0.0.124.
    • keptF is in 1.0.0.123 and not in 1.0.0.124.
    • padding is in 1.0.0.123 and not in 1.0.0.124.
    • keptG is in 1.0.0.123 and not in 1.0.0.124.
    • keptH is in 1.0.0.123 and not in 1.0.0.124.
    • keptI is in 1.0.0.123 and not in 1.0.0.124.
    • assists is in 1.0.0.123 and not in 1.0.0.124.
  • ClientEvent (vectors: buff-on-1-0-0-124, consumable-bought-on-1-0-0-124, critical-strike-on-1-0-0-124, damage-dealt-on-1-0-0-124, damage-taken-on-1-0-0-124, death-assist-on-1-0-0-124, died-on-1-0-0-124, gold-earned-on-1-0-0-124, gold-spent-on-1-0-0-124, heal-cast-on-1-0-0-124, heal-on-1-0-0-124, item-bought-on-1-0-0-124, killing-spree-on-1-0-0-124, one-on-1-0-0-124)
    • Its command is 165 in 1.0.0.123 and 169 in 1.0.0.124.
    • event takes 83 pointANeutralized, 84 pointBNeutralized, 85 pointCNeutralized, 86 pointDNeutralized, 87 pointENeutralized, 88 pointACaptured, 89 pointBCaptured, 90 pointCCaptured, 91 pointDCaptured, 92 pointECaptured in 1.0.0.124 and not in 1.0.0.123.
    • event takes 83 pointNeutralized, 84 pointCaptured in 1.0.0.123 and not in 1.0.0.124.
    • kill.gold is in 1.0.0.124 (f32), after kill, and not in 1.0.0.123.
    • kill.assistCount is in 1.0.0.124 (u32), after kill.gold, and not in 1.0.0.123.
    • kill.assists is in 1.0.0.124 (12 × u32), after kill.assistCount, and not in 1.0.0.123.
    • kill.unread is in 1.0.0.123 and not in 1.0.0.124.
    • kill.list is in 1.0.0.123 and not in 1.0.0.124.
  • CreateNeutral
    • Its command is 99 in 1.0.0.123 and 102 in 1.0.0.124.
    • campIcon is in 1.0.0.124 (text, 64 bytes), after uniqueName, and not in 1.0.0.123.
    • extra is in 1.0.0.123 and not in 1.0.0.124.
  • DeathHistory
    • Its command is 35 in 1.0.0.123 and 36 in 1.0.0.124.
    • entries[].event takes 83 pointNeutralized, 84 pointCaptured in 1.0.0.123 and not in 1.0.0.124.
    • entries[].kill.gold is in 1.0.0.124 (f32), after entries[].kill, and not in 1.0.0.123.
    • entries[].kill.assistCount is in 1.0.0.124 (u32), after entries[].kill.gold, and not in 1.0.0.123.
    • entries[].kill.assists is in 1.0.0.124 (12 × u32), after entries[].kill.assistCount, and not in 1.0.0.123.
    • entries[].kill.unread is in 1.0.0.123 and not in 1.0.0.124.
    • entries[].kill.list is in 1.0.0.123 and not in 1.0.0.124.
  • MapPing
    • Its command is 87 in 1.0.0.123 and 90 in 1.0.0.124.
    • kind is in 1.0.0.124 (u8), after target, and not in 1.0.0.123.
    • how is in 1.0.0.123 and not in 1.0.0.124.
  • MapProp (vectors: active-on-1-0-0-124)
    • Its command is 210 in 1.0.0.123 and 215 in 1.0.0.124.
    • rotationX is in 1.0.0.124 (f32), after atZ, and not in 1.0.0.123.
    • rotationY is in 1.0.0.124 (f32), after rotationX, and not in 1.0.0.123.
    • rotationZ is in 1.0.0.124 (f32), after rotationY, and not in 1.0.0.123.
    • offsetX is in 1.0.0.124 (f32), after rotationZ, and not in 1.0.0.123.
    • offsetY is in 1.0.0.124 (f32), after offsetX, and not in 1.0.0.123.
    • offsetZ is in 1.0.0.124 (f32), after offsetY, and not in 1.0.0.123.
    • rank is in 1.0.0.124 (u8), after skillLevel, and not in 1.0.0.123.
    • kind is in 1.0.0.124 (u8), after rank, and not in 1.0.0.123.
    • unused is in 1.0.0.123 and not in 1.0.0.124.
    • flags is in 1.0.0.123 and not in 1.0.0.124.
  • MapPropChanged (vectors: animate-on-1-0-0-124)
    • Its command is 211 in 1.0.0.123 and 216 in 1.0.0.124.
    • first is in 1.0.0.124 (f32), after name, and not in 1.0.0.123.
    • second is in 1.0.0.124 (f32), after first, and not in 1.0.0.123.
    • value is in 1.0.0.124 (u32), after prop, and not in 1.0.0.123.
    • change takes 0 animate, 2 look in 1.0.0.124 and not in 1.0.0.123.
    • change takes 0 apply in 1.0.0.123 and not in 1.0.0.124.
  • QuestUpdated
    • Its command is 139 in 1.0.0.123 and 143 in 1.0.0.124.
    • tooltip is in 1.0.0.124 (text, 128 bytes), after icon, and not in 1.0.0.123.
  • RespawnPoint (vectors: owned-on-1-0-0-124)
    • Its command is 214 in 1.0.0.123 and 220 in 1.0.0.124.
    • action takes 0 owned, 1 chosen in 1.0.0.124 and not in 1.0.0.123.
    • action takes 0 offer, 1 select in 1.0.0.123 and not in 1.0.0.124.
    • side is in 1.0.0.124 (i32), after point, and not in 1.0.0.123.
    • clientId is in 1.0.0.124 (u32), after side, and not in 1.0.0.123.
    • x is in 1.0.0.124 (f32), after clientId, and not in 1.0.0.123.
    • y is in 1.0.0.124 (f32), after x, and not in 1.0.0.123.
    • z is in 1.0.0.124 (f32), after y, and not in 1.0.0.123.
  • SpawnBot (vectors: one-on-1-0-0-124)
    • Its command is 209 in 1.0.0.123 and 214 in 1.0.0.124.
    • flags is in 1.0.0.123 and not in 1.0.0.124.
  • SpawnUnit (vectors: one-on-1-0-0-124)
    • Its command is 124 in 1.0.0.123 and 128 in 1.0.0.124.
    • flags names bit 2 nameIsAsset in 1.0.0.123 and bot in 1.0.0.124.
  • TeamScore (vectors: one-on-1-0-0-124)
    • Its command is 213 in 1.0.0.123 and 219 in 1.0.0.124.
    • side is in 1.0.0.124 (i32) at the start, and not in 1.0.0.123.
    • score is in 1.0.0.124 (i32), after side, and not in 1.0.0.123.
    • sideScore is in 1.0.0.123 and not in 1.0.0.124.
    • otherSideScore is in 1.0.0.123 and not in 1.0.0.124.
  • WorldEvent
    • Its command is 72 in 1.0.0.123 and 74 in 1.0.0.124.
    • event takes 83 pointNeutralized, 84 pointCaptured in 1.0.0.123 and not in 1.0.0.124.
    • kill.gold is in 1.0.0.124 (f32), after kill, and not in 1.0.0.123.
    • kill.assistCount is in 1.0.0.124 (u32), after kill.gold, and not in 1.0.0.123.
    • kill.assists is in 1.0.0.124 (12 × u32), after kill.assistCount, and not in 1.0.0.123.
    • kill.unread is in 1.0.0.123 and not in 1.0.0.124.
    • kill.list is in 1.0.0.123 and not in 1.0.0.124.

Structs

  • Seat
    • icon is in 1.0.0.124 (i32), after botDifficulty, and not in 1.0.0.123.

Chapters

  • In the objectives chapter, a passage holds for 1.0.0.123 and not 1.0.0.124: No unit stands behind a point: a server sets each point outright with CapturePointValue, which says who holds it, how far it is taken and how fast that changes, and a client moves the point on by itself between messages.

1.0.0.125

Client builds from 1.0.0.125 up to, not including, 1.0.0.126. Patch notes: V1.0.0.125.

Build checkedPassedFailedSkippedCommitDate
1.0.0.12510041c017cf2026-11-01

Other ranges of this book have these, and this one does not, so what the chapters say of them says nothing of it: CancelTargeting.

Every message of this range (212)
MessageCommand
AfkWarning191
AnimationOverrides110
Announcement133
AppearancePopped106
AppearancePushed158
Attack13
AttackFrom29
Autocast34
BotDebug21
BotState178
BotTargets108
BuildingDied141
BuyItem135
Camera48
CameraAck46
CameraBehaviour118
CameraLock134
CameraLockSet124
CampCleared202
CapturePointChanged219
CastSpell161
ChainTargets111
ChampionDied97
ChampionStats75
CharacterSelected197
Chat0
ClientEvent170
ClientFinished144
ClientReady85
ClientVersion196
ClockConvergence121
ClockReply8
ClockSync200
CloseShop15
CooldownSet138
CreateChampion79
CreateNeutral102
CreateTurret164
Damage104
DeathHistory36
DestroyMissile93
EffectAdded190
EffectAddedGroup107
EffectCount31
EffectCountGroup198
EffectRemoved127
EffectRemovedGroup154
EffectReplaced50
EffectReplacedGroup33
EmotePlayed72
EnterLocalSight180
EnterSight193
EnterTeamSight237
Exit147
ExperienceGained17
FaceDirection83
FacePosition83
FadeMinions211
FadeRemoved52
FadeSounds98
FadeTo185
FloatingText27
FogSet179
FogToggled130
ForceDeath30
GameEnded205
GameSpeed19
GoldEarned241
GoldGained37
GoldRedirect7
GreyscaleWhenDead177
HealthBar214
HudDisabled195
HudHighlighted67
HudHighlightToggled82
InhibitorState45
InputLock137
InputLockToggled162
InventorySlot86
ItemAdded114
ItemUsed166
JoinSide100
KillParticle61
LeaveLocalSight58
LeaveSight84
LeaveTeamSight238
LevelUp69
LoadingProgress25
Loadout44
MapPing90
MapProp216
MapPropChanged217
MatchIdentity151
MatchStarted201
MinimapHighlighted20
MinimapIcon224
MissileHits40
MissileReport65
MissileState65
ModulePacket236
MoveCamera39
MovementBounds6
MoveOrder117
MusicCue228
NavigationFlags71
NexusIdle4
NexusSkin119
ObjectiveHidden169
ObjectiveReplaced14
ObjectiveShown59
ParticleLeaveTeamSight240
ParticlesCreated139
ParticleSource218
Path192
PathWithSpeed136
Pause168
PauseAnimation116
Paused168
PingPlaced70
PlayAnimation183
PlayEmote76
PlayerDisconnected159
QueryStatus23
QueryStatusAnswer140
QuestEvent213
QuestUpdated143
Reconnected16
ReconnectedInMatch163
RegionAdded123
RegionAttached38
RegionRemoved56
Register0
Registered0
RemoveItem9
RemoveItemAnswer11
Replication203
ResourceColours152
Respawned77
RespawnPoint221
Resume10
Resumed10
ResyncEnded73
Revived49
Roster103
ScoreAdded225
ScreenTint227
SeatChampion101
SeatLoadProgress156
SeatName102
SelectObject182
ShieldAdded105
ShopHighlighted181
SideTextHidden174
SideTextRefreshed184
SideTextShown167
SpawnBot215
SpawnEnd18
SpawnFromBarracks3
SpawnPet60
SpawnStart101
SpawnUnit128
SpellCastAnswer188
SpellCooldown138
SpellIconChanged54
SpellInSlot115
SpellLevel94
SpellNameChanged53
SpellNumbers131
SpellOffsetTargetChanged55
SpellTargetingChanged26
SpellUpgraded24
StartGame95
StatisticIncremented226
StatsRequest89
StatTick42
StopAnimation43
StopAttack57
SurrenderStatus172
SurrenderVote171
SurrenderVoteCalled209
SwapItems35
SwapItemsAnswer68
TargetHeldChampion199
TargetUnit109
TeamChanged223
TeamScore220
TipEvent112
TipShown88
TransientAck175
TutorialChatLine2
TutorialPopup186
TutorialPopupClosed212
TutorialShopOpened96
UiHighlight210
UnitDied165
UnitHighlighted92
UnitHighlightRemoved187
UnitSpoke27
UnitStopped51
UnitText28
UpgradeSpell62
UseObject63
VersionSync87
VictoryDance204
VoiceEvent125
VoiceEventDone5
VoiceOverride157
VolumeMuted41
WaypointAck122
WaypointGroup100
WaypointGroupAtSpeed103
WorldEvent74

Against 1.0.0.124

Where a build from 1.0.0.125 up to, not including, 1.0.0.126 differs from one from 1.0.0.124 up to, not including, 1.0.0.125. Anything not named here is the same in both.

In 1.0.0.125, not in 1.0.0.124

MessageSent byCommandWhat it does
VoiceOverrideserver157 on eventsChange or reset the voice a unit speaks with

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-125)
    • Its command is 201 in 1.0.0.124 and 202 in 1.0.0.125.
    • unit is in 1.0.0.125 (u32) at the start, and not in 1.0.0.124.
  • SpawnPet
    • minimapIcon is in 1.0.0.125 (u8), after script, and not in 1.0.0.124.
  • SpawnUnit
    • visibilitySize is in 1.0.0.125 (f32), after team, and not in 1.0.0.124.

1.0.0.126

Client builds from 1.0.0.126 up to, not including, 1.0.0.127. Patch notes: V1.0.0.126.

Build checkedPassedFailedSkippedCommitDate
1.0.0.12610044f423d42026-10-31
Every message of this range (213)
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
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
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.125

Where a build from 1.0.0.126 up to, not including, 1.0.0.127 differs from one from 1.0.0.125 up to, not including, 1.0.0.126. Anything not named here is the same in both.

In 1.0.0.126, not in 1.0.0.125

MessageSent byCommandWhat it does
CancelTargetingserver139 on eventsEnd a spell’s targeting on a client

Commands

These differ only in their command. Each row is a run of commands moved by the same amount:

Laid out differently

  • ClientEvent
    • Its command is 170 in 1.0.0.125 and 171 in 1.0.0.126.
    • event takes 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 81 alert, 82 scoreboardOpened, 85 pointANeutralized, 86 pointBNeutralized, 87 pointCNeutralized, 88 pointDNeutralized, 89 pointENeutralized, 90 pointACaptured, 91 pointBCaptured, 92 pointCCaptured, 93 pointDCaptured, 94 pointECaptured in 1.0.0.126 and not in 1.0.0.125.
    • event takes 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 79 alert, 80 scoreboardOpened, 83 pointANeutralized, 84 pointBNeutralized, 85 pointCNeutralized, 86 pointDNeutralized, 87 pointENeutralized, 88 pointACaptured, 89 pointBCaptured, 90 pointCCaptured, 91 pointDCaptured, 92 pointECaptured in 1.0.0.125 and not in 1.0.0.126.
  • DeathHistory (vectors: a-third-on-1-0-0-126, another-on-1-0-0-126, one-on-1-0-0-126)
    • entries[].event takes 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 82 scoreboardOpened in 1.0.0.126 and not in 1.0.0.125.
    • entries[].event takes 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 scoreboardOpened in 1.0.0.125 and not in 1.0.0.126.
  • InhibitorState (vectors: fallen-on-1-0-0-126, standing-on-1-0-0-126)
    • state is 4-byte bits in 1.0.0.125 and 2-byte bits in 1.0.0.126.
    • state.duration is at bit 1, 31 bits wide, in 1.0.0.125 and at bit 0, 15 bits wide, in 1.0.0.126.
    • state has unused at bit 15 in 1.0.0.126, and not in 1.0.0.125.
    • state has alive at bit 0 in 1.0.0.125, and not in 1.0.0.126.
    • life is in 1.0.0.126 (1-byte bits), after state, and not in 1.0.0.125.
  • Pause (vectors: one-on-1-0-0-126)
    • Its command is 168 in 1.0.0.125 and 169 in 1.0.0.126.
    • clientId is in 1.0.0.126 (u32) at the start, and not in 1.0.0.125.
    • timeLeft is in 1.0.0.126 (i32), after clientId, and not in 1.0.0.125.
    • how is in 1.0.0.126 (1-byte bits), after timeLeft, and not in 1.0.0.125.
  • Paused (vectors: a-tournament-hold-on-1-0-0-126)
    • Its command is 168 in 1.0.0.125 and 169 in 1.0.0.126.
    • clientId is in 1.0.0.126 (u32) at the start, and not in 1.0.0.125.
    • timeLeft is in 1.0.0.126 (i32), after clientId, and not in 1.0.0.125.
    • how is in 1.0.0.126 (1-byte bits), after timeLeft, and not in 1.0.0.125.
  • PlayerDisconnected (vectors: one-on-1-0-0-126)
    • Its command is 159 in 1.0.0.125 and 160 in 1.0.0.126.
    • clientId is in 1.0.0.126 (u32) at the start, and not in 1.0.0.125.
    • champion is in 1.0.0.125 and not in 1.0.0.126.
  • RemoveItem (vectors: selling-on-1-0-0-126)
    • which is in 1.0.0.126 (1-byte bits) at the start, and not in 1.0.0.125.
    • slot is in 1.0.0.125 and not in 1.0.0.126.
    • sell is in 1.0.0.125 and not in 1.0.0.126.
  • Resume (vectors: from-a-client-on-1-0-0-126)
    • clientId is in 1.0.0.126 (u32) at the start, and not in 1.0.0.125.
    • how is in 1.0.0.126 (1-byte bits), after clientId, and not in 1.0.0.125.
  • Resumed (vectors: after-a-countdown-on-1-0-0-126)
    • clientId is in 1.0.0.126 (u32) at the start, and not in 1.0.0.125.
    • how is in 1.0.0.126 (1-byte bits), after clientId, and not in 1.0.0.125.
  • StartGame (vectors: one-on-1-0-0-126)
    • rules is in 1.0.0.126 (1-byte bits) at the start, and not in 1.0.0.125.
  • WorldEvent
    • event takes 78 minionsSpawned, 79 welcome, 80 startNoticeTwo, 82 scoreboardOpened in 1.0.0.126 and not in 1.0.0.125.
    • event takes 76 minionsSpawned, 77 welcome, 78 startNoticeTwo, 80 scoreboardOpened in 1.0.0.125 and not in 1.0.0.126.

Chapters

  • In the transport chapter, a passage holds for 1.0.0.125 and not 1.0.0.126: The argument holds the key in base64.
  • In the transport chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: An argument longer than sixteen characters holds the key in base64, and the key is the first sixteen bytes it decodes to.
  • In the messages chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client unwraps a container on any channel.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A region id of 0 names no region: given a RegionAdded carrying 0, a client gives the region an id of its own, its own node in the top byte and a count below it, which no message from a server can name.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A bot’s champion carries 4294967295.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: CreateChampion and CreateTurret remove any object holding the net id before they create theirs.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client applies a SpawnPet’s effect and spell level only where the owner’s node is its own.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A name holding _Destroyed or _FB gives no identifier.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: | Name | Maps | | ––––––––––––––––––––––––––––––––––– | ––––– | | Barracks_T1_C1, Barracks_T2_C1 | 1, 2, 3 | | Barracks_T1_L1, Barracks_T1_R1, Barracks_T2_L1, Barracks_T2_R1 | 1, 2, 4 | | the six spawn points named __P_… | 1, 2 | | ____P_Chaos_Spawn_Barracks__C01 | 3 | | HQ_T1, HQ_T2 | 1, 2, 3, 4 | | OrderShop01 | 3, 4 | | orderShop01 | 1, 2, 8 | | ChaosShop01 | 3 | | chaosShop01 | 1, 2, 8 |
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: LeaveLocalSight does nothing.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: RegionRemoved for a region a client does not hold does nothing.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: No message removes a champion.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: SpawnPet takes the net id in its header for the new pet, but does nothing where the owner its body names is not held.
  • In the ordering chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: That answer lists no units but leaves its count of units unset, so a server MUST NOT rely on the count.
  • In the space chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client has data for maps 1 to 4 and 8: | map | Origin of its paths | | —– | —————–– | | 1 | 6991, 7223 | | 2 | 6991, 7223 | | 3 | 7479, 7147 | | 4 | 6710, 6696 | | 8 | 6947, 6609 |
  • In the time chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A GameSpeed that arrives during a hold takes effect as play resumes.
  • In the time chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: MatchStarted gives that moment.
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Of those, 64 is the champion’s basic attack, 65 to 67 its other basic attacks, 68 its critical attack, 69 a miss and 70 a dodge.
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A champion’s own book ends at slot 51.
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A champion’s inventory ends at slot 37.
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Each unit has 64 slots for the effects it carries, 0 to 63.
  • In the data chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: The client has maps 1, 2, 3, 4 and 8.
  • In the data chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Each object’s file is .sco as text or .SCB as binary, and gives its name on its Name= line.
  • In the data chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: 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 the data chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A champion’s spells and attacks are in DATA/Characters/<Champion>/Spells/<Spell>.inibin.
  • In the joining chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client drops nothing for arriving before CharacterSelected.
  • In the units chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client acts on a CreateChampion or a CreateNeutral whenever it arrives.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: EnterSight states the unit’s shields and where it stands or which path it walks, and nothing of its health or resource.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: EnterLocalSight states the unit’s maximum health beside its health, and nothing of its resource.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client makes only circular regions.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A region fastened to a unit with a radius of 3000 or less is blocked by walls, and any other sees over them; nothing in a region chooses this.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: LevelUp shows its effect over any champion the client can see, and does nothing for another unit.
  • In the movement chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A server MAY send NavigationFlags.
  • In the replication chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Props answer to a table of their own as well.
  • In the replication chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A champion’s eight further slots are slots 42 to 49, and bit n of either set of slots that can be cast from stands for slot n.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Sent during a hold, GameSpeed takes effect as the match resumes.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client names no one in Pause or Resume.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Paused carries how long the hold can last, in seconds.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client begins a hold only where the time Paused carries is above zero and the match is not already held.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Where the message’s flag asks it, a client announces in chat the player that held the match, unless the message names no one.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Resumed ends the hold either at once or after a countdown the client shows, during which the match stays held.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client announces in chat who resumed the match only where it resumes at once, and does so even where the match was not held.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: VictoryDance moves every unit.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client never walks its champion into range by itself: a server sends the WaypointGroup that takes it there.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A swing starts later by the timing byte of its Attack less 128, in hundredths of a second.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Any unit takes TargetUnit, whatever it is attacking.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Either UnitDied or ChampionDied can leave the unit standing as a husk rather than dead, without its death animation or death screen.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: 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.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client sends UseObject at no other time.
  • In the spells chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: The casting record names the spell by the hash of its name, and a client casts nothing for a spell it has not loaded.
  • In the shop chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: Opening the shop while the match is paused sends nothing.
  • In the shop chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client never asks for an item a player holds only one of and holds already.
  • In the shop chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client asks only with the shop open.
  • In the objectives chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client shows nothing of the state CampCleared gives.
  • In the objectives chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client acts on TeamScore once its game screen is up, whatever the mode.
  • In the communication chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client answers a VoiceEvent it cannot play at once.
  • In the votes chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client opens no panel for a vote called while the match is paused.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A watching client takes the match over HTTP from a spectator service, not over a game connection.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: 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.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: The word replay starts a watching client as spectator does.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A player’s key too can be given as base64.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: 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.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.125: A client asks getLastKeyFrameInfo for the last key frame.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.126:

  • Camera, its layout: “A client sends no report while the camera is locked. It sends a new report, with the next syncId, only where at least 0.1 seconds have passed since the last and the view has moved more than 200 units or turned; it sends a report that goes unanswered again after a delay that follows the round trip.”, where 1.0.0.125 has none
  • ExperienceGained, unit: “The unit granted it. A server names a champion: any other unit the client holds has no defined effect.”, where 1.0.0.125 has “The unit granted it.”
  • GameSpeed, speed: “How fast, 1 being normal. Zero stops the clock as a pause does, and a client then holds any later GameSpeed until the game resumes.”, where 1.0.0.125 has “How fast, 1 being normal.”
  • LeaveLocalSight, its layout: “It changes nothing a client shows for any unit, and a client ignores it while playing a replay.”, where 1.0.0.125 has none
  • LeaveSight, its layout: “What a server sends to take a unit out of what a client can see; the client stops drawing it, unless it is a turret. A client ignores it while playing a replay. The header names the unit.”, where 1.0.0.125 has “What a server sends to take a unit out of what a client can see; the client stops drawing it, unless it is a turret. The header names the unit.”
  • MissileReport, unknownAX: “casterAt from the last MissileState the client took for this missile, returned as it came.”, where 1.0.0.125 has “What this holds is not recorded.”
  • MissileReport, unknownAY: “casterAt from the last MissileState the client took for this missile, returned as it came.”, where 1.0.0.125 has “What this holds is not recorded.”
  • MissileReport, unknownAZ: “casterAt from the last MissileState the client took for this missile, returned as it came.”, where 1.0.0.125 has “What this holds is not recorded.”
  • MissileReport, unknownBX: “A client leaves it unwritten; its bytes carry no meaning.”, where 1.0.0.125 has “What this holds is not recorded.”
  • MissileReport, unknownBY: “A client leaves it unwritten; its bytes carry no meaning.”, where 1.0.0.125 has “What this holds is not recorded.”
  • MissileReport, unknownBZ: “A client leaves it unwritten; its bytes carry no meaning.”, where 1.0.0.125 has “What this holds is not recorded.”
  • MissileReport, flag: “The whole how byte of the last MissileState the client took for this missile, returned as it came.”, where 1.0.0.125 has “Zero or one; what it means is not recorded.”
  • MovementBounds, camera: “Nonzero also keeps the client’s camera inside the circle, a negative radius counting as zero for it. The bounds on the champion’s orders apply whatever this holds.”, where 1.0.0.125 has “A client takes any bit set here as camera set; a server writes zero.”
  • RemoveItemAnswer, its layout: “A client takes it only for a champion, and ignores it for any other unit.”, where 1.0.0.125 has none
  • SpawnFromBarracks, its layout: “The header names the barracks the unit comes out of, and a client ignores the message under any other header; the new unit’s id is unit. A client deletes no object first. While resynchronising, it drops a message naming an id it holds, or with kind above 4.”, where 1.0.0.125 has none
  • TipEvent, its layout: “Where what is 0, the header names the champion the TipShown named; where it is 1, the sender’s champion.”, where 1.0.0.125 has none

1.0.0.127

Client builds from 1.0.0.127 up to, not including, 1.0.0.128. Patch notes: V1.0.0.127.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1271004d3238e32026-10-31
Every message of this range (213)
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
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
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.126

Where a build from 1.0.0.127 up to, not including, 1.0.0.128 differs from one from 1.0.0.126 up to, not including, 1.0.0.127. Anything not named here is the same in both.

Transport

Chapters

  • In the transport chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: Stock ENet 1.2.5 serves a client as it stands: the header, the constants and the commands are the release’s own, and the verify connect stock ENet sends states what the client’s connect asked for.
  • In the transport chapter, a passage holds for 1.0.0.127 and not 1.0.0.126: Stock ENet 1.2.5 serves a client once its transmission unit is clamped (see below).
  • In the transport chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: That constant is above what a client asks for, so a server needs no clamp.
  • In the transport chapter, a passage holds for 1.0.0.127 and not 1.0.0.126: That constant is below what a client asks for.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A region id of 0 names no region: given a RegionAdded carrying 0, a client gives the region an id of its own, its own node in the top byte and a count below it, which no message from a server can name.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: CreateChampion and CreateTurret remove any object holding the net id before they create theirs.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client applies a SpawnPet’s effect and spell level only where the owner’s node is its own.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: | Name | Maps | | ––––––––––––––––––––––––––––––––––– | ––––– | | Barracks_T1_C1, Barracks_T2_C1 | 1, 2, 3 | | Barracks_T1_L1, Barracks_T1_R1, Barracks_T2_L1, Barracks_T2_R1 | 1, 2, 4 | | the six spawn points named __P_… | 1, 2 | | ____P_Chaos_Spawn_Barracks__C01 | 3 | | HQ_T1, HQ_T2 | 1, 2, 3, 4 | | OrderShop01 | 3, 4 | | orderShop01 | 1, 2, 8 | | ChaosShop01 | 3 | | chaosShop01 | 1, 2, 8 |
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: EnterSight and EnterLocalSight carry no other message, and act only on a unit the client already holds.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: LeaveLocalSight does nothing.
  • In the objects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: No message removes a champion.
  • In the space chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client has data for maps 1 to 4 and 8: | map | Origin of its paths | | —– | —————–– | | 1 | 6991, 7223 | | 2 | 6991, 7223 | | 3 | 7479, 7147 | | 4 | 6710, 6696 | | 8 | 6947, 6609 |
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A cast’s slot also takes 64 to 70, for a basic attack.
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: Of those, 64 is the champion’s basic attack, 65 to 67 its other basic attacks, 68 its critical attack, 69 a miss and 70 a dodge.
  • In the values chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A champion’s own book ends at slot 51.
  • In the data chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: The client has maps 1, 2, 3, 4 and 8.
  • In the data chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A champion’s spells and attacks are in DATA/Characters/<Champion>/Spells/<Spell>.inibin.
  • In the joining chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client writes zero where its player id goes in LoadingProgress.
  • In the joining chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client drops nothing for arriving before CharacterSelected.
  • In the units chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client acts on a CreateChampion or a CreateNeutral whenever it arrives.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: EnterSight states the unit’s shields and where it stands or which path it walks, and nothing of its health or resource.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: EnterLocalSight states the unit’s maximum health beside its health, and nothing of its resource.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: LeaveLocalSight changes nothing a client shows, whichever unit it names.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A region fastened to a unit with a radius of 3000 or less is blocked by walls, and any other sees over them; nothing in a region chooses this.
  • In the vision chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: LevelUp shows its effect over any champion the client can see, and does nothing for another unit.
  • In the movement chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client takes a WaypointGroup or a WaypointGroupAtSpeed on channels 2, 3 and 4 alike.
  • In the movement chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A server MAY send NavigationFlags.
  • In the replication chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A value that says yes or no is an integer, 1 for yes and 0 for no.
  • In the replication chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: ## A champion | Group | Bits | Value | Type | | —– | –––– | —————————————————————————————————— | —– | | 0 | 0 | Experience | float | | 0 | 1 | Gold in hand | float | | 0 | 2 to 3 | Which slots can be cast from: the champion’s own, then the second set | u32 | | 0 | 4 to 7 | What the spell in slots 0 to 3 costs | float | | 0 | 8 to 15 | What the spell in each of eight further slots costs | float | | 0 | 16 to 17 | 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 targetable | u32 | | 1 | 4 | Which sides can aim at it, as a set of bits | u32 | | 1 | 5 | Whether it is proof against strikes | u32 | | 1 | 6 | Damage it deals by striking | float | | 1 | 7 | Damage its spells deal before modifiers | float | | 1 | 8 | How often it turns a blow aside | float | | 1 | 9 | How often it strikes critically | float | | 1 | 10 | Armour | float | | 1 | 11 | Spell resistance | float | | 1 | 12 to 13 | How fast health and resource return | float | | 1 | 14 | How far it strikes from | float | | 1 | 15 to 17 | Flat and percent modifiers on the damage it strikes with, then the flat modifier on its spells’ damage | float | | 1 | 18 to 19 | Flat and percent reduction of the spell damage it takes | float | | 1 | 20 | A multiplier on how fast it strikes | float | | 1 | 21 | A flat addition to how far it casts | float | | 1 | 22 | A modifier on its cooldowns | float | | 1 | 23 to 24 | How much armour it cuts through, flat then as a percent | float | | 1 | 25 to 26 | How much spell resistance it cuts through, flat then as a percent | float | | 1 | 27 | Life steal | float | | 1 | 28 | Spell vamp | float | | 2 | 0 to 1 | Whether it is proof against strikes, then against spells, as group 1 bits 5 and 1 | u32 | | 3 | 0 to 1 | Health and resource as they stand | float | | 3 | 2 to 3 | Health and resource at their greatest | float | | 3 | 4 to 5 | A flat and a percent addition to how far it sees | float | | 3 | 6 | How fast it moves | float | | 3 | 7 | A value whose meaning is not recorded | float | | 3 | 8 | Level | u32 | What the second set and the eight further slots hold is not recorded, and a server writes zero in their costs.
  • In the replication chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A champion’s eight further slots are slots 42 to 49, and 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.126 and not 1.0.0.127: A server grants experience with ExperienceGained and gold with GoldGained.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: Where the message’s flag asks it, a client announces in chat the player that held the match, unless the message names no one.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client announces in chat who resumed the match only where it resumes at once, and does so even where the match was not held.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: VictoryDance moves every unit.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client dropped during play connects again only where its player agrees: for the reason 0 it asks, and on a yes connects again, showing that it is reconnecting until it is back or its player cancels.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: While it resynchronises, a client ignores any message creating a unit it already holds.
  • In the match chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client gives up on a connection where a reliable message it sent goes unacknowledged for 30 seconds, while loading and in play alike.
  • In the combat chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client sends UseObject at no other time.
  • In the effects chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: AppearancePopped takes away every look laid over the unit’s own, not only the newest.
  • In the shop chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client asks only with the shop open.
  • In the objectives chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client shows nothing of the state CampCleared gives.
  • In the votes chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client opens no panel for a vote called while the match is paused.
  • In the interface chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A client takes the lock from the player’s own settings when StartGame arrives, locked where they say nothing, and answers with CameraLock; CameraLockSet changes it for the match without changing those settings.
  • In the spectating chapter, a passage holds for 1.0.0.126 and not 1.0.0.127: A player’s key too can be given as base64.

1.0.0.128

Client builds from 1.0.0.128 up to, not including, 1.0.0.129. Patch notes: V1.0.0.128.

Build checkedPassedFailedSkippedCommitDate
1.0.0.12810045261f942026-10-31
Every message of this range (213)
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
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
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.127

Where a build from 1.0.0.128 up to, not including, 1.0.0.129 differs from one from 1.0.0.127 up to, not including, 1.0.0.128. Anything not named here is the same in both.

Laid out differently

  • CreateChampion
    • name is text, 40 bytes in 1.0.0.127 and text, 128 bytes in 1.0.0.128.
    • asset is text, 128 bytes in 1.0.0.127 and text, 40 bytes in 1.0.0.128.
  • PlayAnimation
    • flags names bit 3 fadeOthers in 1.0.0.127 and queueLast in 1.0.0.128.
    • flags names bit 4 freezeOthers in 1.0.0.127 and replaceable in 1.0.0.128.
    • flags names bit 8 syncPhase in 1.0.0.127 and jumpToEnd in 1.0.0.128.
    • flags.loop is at bit 1 in 1.0.0.127 and at bit 0 in 1.0.0.128.
    • flags.holdLastFrame is at bit 2 in 1.0.0.127 and at bit 1 in 1.0.0.128.
    • flags has queue at bit 2 in 1.0.0.128, and not in 1.0.0.127.
    • flags.locked is at bit 6 in 1.0.0.127 and at bit 5 in 1.0.0.128.
    • flags has noRestart at bit 6 in 1.0.0.128, and not in 1.0.0.127.
    • flags.noFadeIn is at bit 9 in 1.0.0.127 and at bit 7 in 1.0.0.128.
    • flags.unused is at bit 10, 22 bits wide, in 1.0.0.127 and at bit 9, 23 bits wide, in 1.0.0.128.
    • flags has unusedLow at bit 0 in 1.0.0.127, and not in 1.0.0.128.
    • flags has dropOthers at bit 5 in 1.0.0.127, and not in 1.0.0.128.
    • flags has fadeAtEnd at bit 7 in 1.0.0.127, and not in 1.0.0.128.
  • PlayerDisconnected
    • champion is in 1.0.0.128 (u32) at the start, and not in 1.0.0.127.
    • clientId is in 1.0.0.127 and not in 1.0.0.128.
  • Respawned
    • resource is in 1.0.0.128 (f32), after z, and not in 1.0.0.127.
  • Revived
    • resource is in 1.0.0.128 (f32), after atZ, and not in 1.0.0.127.
  • StopAnimation
    • flags is 4-byte bits in 1.0.0.127 and 1-byte bits in 1.0.0.128.
    • flags has fade at bit 0 in 1.0.0.128, and not in 1.0.0.127.
    • flags has ignoreLock at bit 1 in 1.0.0.128, and not in 1.0.0.127.
    • flags has stopAll at bit 2 in 1.0.0.128, and not in 1.0.0.127.
    • flags has unused at bit 3 in 1.0.0.128, and not in 1.0.0.127.
    • flags has unusedLow at bit 0 in 1.0.0.127, and not in 1.0.0.128.
    • flags has unlock at bit 6 in 1.0.0.127, and not in 1.0.0.128.
    • flags has unusedMid at bit 7 in 1.0.0.127, and not in 1.0.0.128.
    • flags has blend at bit 9 in 1.0.0.127, and not in 1.0.0.128.
    • flags has unusedHigh at bit 10 in 1.0.0.127, and not in 1.0.0.128.

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.128:

  • AnimationOverrides, its layout: no note, where 1.0.0.127 has “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.”
  • AppearancePopped, its layout: no note, where 1.0.0.127 has “A client also takes away every look laid over the unit on this command, and does so before it looks for the one entry names, so the unit is left with no look laid over it.”
  • AppearancePushed, its layout: “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.”, where 1.0.0.127 has “No skin is carried; the look wears the unit’s own skin. A client first stops a basic attack the unit is making; looks stack, the newest shows, and AppearancePopped takes away the one its entry names.”
  • AppearancePushed, asset: “The name the client loads it under, ended by a zero byte. The name and its zero byte take at most 64 bytes.”, where 1.0.0.127 has “The name the client loads it under, ended by a zero byte.”
  • AttackFrom, fromX: “Where the swinging unit stands, along one ground axis, in world units.”, where 1.0.0.127 has “Where the swinging unit stands, along one ground axis, in world units. Where the unit stands more than 400 units from this point, a client first moves it there; nearer, the point has no effect.”
  • Autocast, its layout: no note, where 1.0.0.127 has “It names one slot: there is no slot for a critical strike.”
  • Autocast, slot: “The slot cast by itself, from 0 to 51; -1 leaves none.”, where 1.0.0.127 has “The slot cast by itself, from -1 to 51. A client takes a value outside that range as it stands. What -1 does is not recorded.”
  • Camera, its layout: no note, where 1.0.0.127 has “A client sends no report while the camera is locked. It sends a new report, with the next syncId, only where at least 0.1 seconds have passed since the last and the view has moved more than 200 units or turned; it sends a report that goes unanswered again after a delay that follows the round trip.”
  • Camera, positionX: no note, where 1.0.0.127 has “Where the view stands, along one ground axis.”
  • Camera, positionY: no note, where 1.0.0.127 has “Its height.”
  • Camera, positionZ: no note, where 1.0.0.127 has “Along the other ground axis.”
  • Camera, clientId: “The client id of the client the view belongs to.”, where 1.0.0.127 has “The client id the sender holds: that of the client the view belongs to.”
  • CameraAck, syncId: “The name the report carried. A client sends the report again until this comes back.”, where 1.0.0.127 has “The name the report carried. A client takes it only where it is at most 127 past the last name it took, counting round past 255, and sends the report again until it does.”
  • CameraBehaviour, its layout: no note, where 1.0.0.127 has “Only the client whose own champion the header names applies it.”
  • CameraLock, its layout: “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.”, where 1.0.0.127 has “A client sends it on each CameraLockSet with state as that message carried it, all eight bits included, and also as its player sets the lock or the game forces a lock or lifts one. While a forced lock holds, a CameraLockSet or player setting is kept and sent only as that lock lifts.”
  • CameraLock, state.unused: “Unused; a client writes zero.”, where 1.0.0.127 has “As CameraLockSet carried them; zero in a report the client makes on its own.”
  • CameraLockSet, its layout: “A client ignores the message while something of its own holds the camera.”, where 1.0.0.127 has “A client answers at once with CameraLock, returning the state byte as it arrived. While the game holds a forced lock, it keeps the byte and sends it only as that lock lifts.”
  • CameraLockSet, locked: “Set to lock the camera, clear to free it. Any nonzero value sets it.”, where 1.0.0.127 has “Nonzero to lock the camera, zero to free it; a client tests the whole byte, so any set bit locks it.”
  • CampCleared, its layout: “A client marks the camp empty, even one that had just filled.”, where 1.0.0.127 has none
  • CampCleared, unit: “A unit whose side picks the marker: side 100 for one of side 100, side 200 otherwise.”, where 1.0.0.127 has “The champion credited with emptying the camp. A client uses it only to choose a side: side 100 where the killer is on side 100, side 200 otherwise.”
  • CampCleared, camp: “Which camp. A client ignores a camp it does not know, but for the timer.”, where 1.0.0.127 has “Which camp. A client ignores the message for a camp it does not know.”
  • CancelTargeting, its layout: “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.”, where 1.0.0.127 has “A client cancels the aiming only where that slot, in the book named, is being aimed, and otherwise does nothing.”
  • CapturePointChanged, point: “Which point, 0 to 254; a match of five points uses 0 to 4.”, where 1.0.0.127 has “Which point, 0 to 255; a match of five points uses 0 to 4.”
  • CapturePointChanged, side: “The side attacking the point. It has no effect on a binding.”, where 1.0.0.127 has “The side attacking the point. A client does nothing with it.”
  • CastSpell, how.slot: “Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells.”, where 1.0.0.127 has “Which slot is being cast from, from 0 to 51. A client sends nothing for a slot above 51.”
  • CastSpell, y: “The height of the place aimed at.”, where 1.0.0.127 has “The same point, in height, in world units: the height of the place aimed at.”
  • CastSpell, endX: “The 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.”, where 1.0.0.127 has “The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.”
  • CastSpell, endY: “The height of where the cast ends.”, where 1.0.0.127 has “The second point, in height, in world units: the height of where the cast ends.”
  • ChainTargets, count: “How many of the slots are used, 0 to 32.”, where 1.0.0.127 has “How many of the slots are used, 0 to 32; 0 clears every target the client holds. A client given more than 32 fails.”
  • ChainTargets, caster: “The unit casting the missile.”, where 1.0.0.127 has “The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.”
  • ChampionDied, damageSource: “Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero.”, where 1.0.0.127 has “Unused; a server writes zero.”
  • ChampionDied, how.zombie: “Set to leave the champion standing in a zombie state rather than dead: no death animation and no death screen.”, where 1.0.0.127 has “Any value other than zero leaves the champion standing in a zombie state rather than dead, with no death animation.”
  • ClientVersion, clientId: “The client id of the client reporting.”, where 1.0.0.127 has “The client id the sender holds: that of the client reporting.”
  • ClientVersion, text: “The build, as text. The text ends at a zero byte.”, where 1.0.0.127 has “The build the client runs, as text ending at a zero byte; the bytes after that zero carry nothing.”
  • ClockConvergence, clientTime: “The client’s clock, in seconds, as the client reported it.”, where 1.0.0.127 has “The client’s clock, in seconds, as the client reported it. A client sets its clock offset from it: its running round trip value, less half of its own clock’s reading less this value.”
  • ClockConvergence, roundTrip: “The round trip time the server measures, in seconds.”, where 1.0.0.127 has “The round trip time the server measures, in seconds. A client blends it into a running value, keeping 0.8 of the old and adding 0.1 of this.”
  • ClockReply, value: “The client id the sender holds, as it sends in clientId in Camera and CameraLock.”, where 1.0.0.127 has “The client id the sender holds.”
  • ClockReply, serverSaid: “What the server last said the clock stood at, in seconds.”, where 1.0.0.127 has “The time the server last stated, in seconds, carried back as it arrived.”
  • ClockReply, clientSaid: “What the client’s own clock reads, in seconds, just after it set itself from that statement: elapsed plus its smoothed estimate of the delay.”, where 1.0.0.127 has “What the client’s own clock reads, in seconds, just after it set itself from that statement.”
  • ClockReply, check: “Thirty-two bytes every client of this build sends alike; a server ignores them.”, where 1.0.0.127 has “The same thirty two bytes from every client of the build; they carry nothing a server needs.”
  • CreateNeutral, its layout: “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.”, where 1.0.0.127 has “The body ends after camp. The monster faces from where it stands toward the facing point, or along +Z where the two are the same, and a client drops the message while its map’s navigation data is unloaded.”
  • CreateNeutral, campIcon: “The 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.”, where 1.0.0.127 has “A name the client gives the camp it sets up for the unit where it holds no camp of that number yet; it has no effect where the camp already exists. What the client shows by it is not recorded.”
  • Damage, how.result: “How 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.”, where 1.0.0.127 has “How 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; any value above 5 shows as 4.”
  • Damage, source: “The unit dealing it. A client shows nothing, notices included, unless it holds both target and source and target can be attacked; the figure drifts from source toward target, and a champion source has the amount added to its damage dealt.”, where 1.0.0.127 has “The unit dealing it. A client shows nothing, notices included, unless it holds target and target can be attacked; it does not need to hold source, and a champion source has the amount added to its damage dealt.”
  • DeathHistory, its layout: “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.”, where 1.0.0.127 has “A client ignores the whole message where killer is zero; a killer it does not hold still lets the entries apply. Each entry’s size after source follows from event alone.”
  • DeathHistory, killer: “The unit credited with the death.”, where 1.0.0.127 has “The unit credited with the death. A client ignores the whole message where this is zero.”
  • DeathHistory, sourceType: “What sort of source the killer was. A client keeps only the low 4 bits, signed.”, where 1.0.0.127 has “What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer.”
  • EffectAdded, slot: “Which of the unit’s effect slots it sits in.”, where 1.0.0.127 has “Which of the unit’s effect slots it sits in. A client ignores the message where it is above 63.”
  • EffectAdded, hidden: “Whether the client keeps it off the unit’s display.”, where 1.0.0.127 has “Whether the client keeps it off the unit’s display. A client hides it only for 1 and shows it for any other value.”
  • EffectAdded, effect: “Which effect, by the number its name gives, as Objects and identifiers works it out.”, where 1.0.0.127 has “Which effect, by the number its name gives, as Objects and identifiers works it out. A server never sends zero. A client adds nothing for an effect it does not know.”
  • EffectAddedGroup, its layout: no note, where 1.0.0.127 has “A client takes each entry as it takes an EffectAdded for that unit, with the kind, effect and times above, and holds it to the same rules.”
  • EffectAddedGroup, lasts: “How long it runs in total, in seconds.”, where 1.0.0.127 has “How long it has left to run from when it arrives, in seconds.”
  • EffectAddedGroup, entries[].hidden: “Whether the client keeps it off the unit’s display.”, where 1.0.0.127 has “1 keeps it off the unit’s display; any other value shows it.”
  • EffectCount, its layout: “Where the slot is empty, the whole message does nothing.”, where 1.0.0.127 has none
  • EffectCount, slot: “Which slot.”, where 1.0.0.127 has “Which slot. A client ignores the message where it is above 63.”
  • EffectCount, count: “How many are stacked there now. 0 takes the effect off.”, where 1.0.0.127 has “How many are stacked there now.”
  • EffectCount, timeLeft: “How long it has left to run, in seconds from when the message arrives.”, where 1.0.0.127 has “How long it has left to run, in seconds.”
  • EffectCount, runningFor: “How long it has already run, in seconds: a client counts its start that long before the message arrived.”, where 1.0.0.127 has “How long it has already run, in seconds.”
  • EffectCountGroup, its layout: no note, where 1.0.0.127 has “A client takes each entry as it takes an EffectCount for that unit, with the two times above.”
  • EffectCountGroup, lasts: “How long the effect runs in total, in seconds.”, where 1.0.0.127 has “How long the effect has left to run, in seconds: a client takes it as the timeLeft of an EffectCount.”
  • EffectRemoved, slot: “Which slot it sat in.”, where 1.0.0.127 has “Which slot it sat in. A client ignores the message where it is above 63.”
  • EffectRemovedGroup, its layout: no note, where 1.0.0.127 has “A client takes each entry as it takes an EffectRemoved for that unit.”
  • EffectReplaced, its layout: “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.”, where 1.0.0.127 has none
  • EffectReplaced, slot: “Which of the unit’s effect slots.”, where 1.0.0.127 has “Which of the unit’s effect slots. A client ignores the message where it is above 63.”
  • EffectReplaced, lasts: “How 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.”, where 1.0.0.127 has “How long it has left to run from when it arrives, in seconds. A client applies a value below zero as given.”
  • EffectReplacedGroup, its layout: “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.”, where 1.0.0.127 has “A client takes each entry as it takes an EffectReplaced for that unit, with the two times above.”
  • EffectReplacedGroup, lasts: “How long it has left to run, in seconds from when the message arrives. runningFor moves neither its start nor its end.”, where 1.0.0.127 has “How long it has left to run from when it arrives, in seconds.”
  • EnterLocalSight, its layout: no note, where 1.0.0.127 has “It carries no other messages: the body is the unit’s health alone, always present.”
  • EnterLocalSight, vitals: “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.”, where 1.0.0.127 has “The unit’s health.”
  • EnterLocalSight, vitals.health: “What its health stands at.”, where 1.0.0.127 has “What its health stands at. A client holds it to between zero and maxHealth.”
  • EnterSight, its layout: “It states everything a client needs to draw the unit at once.”, where 1.0.0.127 has “What a server sends to bring a unit into what a client can see. A client draws a unit only once this has named it, except turrets, which it draws regardless; the header names the unit. It states everything a client needs to draw the unit at once.”
  • EnterSight, itemCount: “How 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.”, where 1.0.0.127 has “How many items follow. A client reads this and the rest for a champion, a minion or another unit with a mind; for a turret, a map prop or a building it reads nothing at all.”
  • EnterSight, items: “The items themselves.”, where 1.0.0.127 has “What the unit carries, one entry a slot.”
  • EnterSight, view: “Everything 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.”, where 1.0.0.127 has “Everything 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.”
  • EnterSight, view.hasShields: “Whether the three figures below follow. A zero leaves them out.”, where 1.0.0.127 has “Not zero where three f32 values follow; zero sets all three to zero.”
  • EnterSight, view.movementState: “Where 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.”, where 1.0.0.127 has “Where the unit stands; only a movementKind of 3 is followed by the direction it faces.”
  • EnterSight, view.movementState.movementKind: “What 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.”, where 1.0.0.127 has “What follows the sync id: 0 nothing, 1 a path walked at a set speed, 2 a path, 3 a point the unit stands at. A client reads nothing more for any other value.”
  • EnterSight, view.movementState.syncId: “The name this statement of movement answers to.”, where 1.0.0.127 has “The number of this statement about the unit; a client takes a path or a point only where it is not behind the last one the unit took.”
  • EnterSight, view.movementState.movement: “Where the unit is going. Movement says how a path is read.”, where 1.0.0.127 has “Every point after the first.”
  • EnterSight, view.movementState.atX: “Where the unit stands, along one ground axis, in world units.”, where 1.0.0.127 has “Along one ground axis, in world units; the height is the ground’s.”
  • EnterSight, view.movementState.atZ: “Where it stands, along the other, in world units.”, where 1.0.0.127 has “Along the other ground axis.”
  • EnterTeamSight, side: “Which side the unit came into or out of the view of.”, where 1.0.0.127 has “Which side the unit came into the view of, as an index from 0 to 3. A server sends only 0 to 3; a larger index has no defined effect.”
  • ExperienceGained, its layout: “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.”, where 1.0.0.127 has “A client floats the amount over any champion it holds, except while playing a replay.”
  • ExperienceGained, unit: “The unit granted it. A server names a champion: a client fails for any other unit.”, where 1.0.0.127 has “The unit granted it. A server names a champion: any other unit the client holds has no defined effect.”
  • FaceDirection, its layout: no note, where 1.0.0.127 has “Where towardX and towardZ are both zero, a client does not turn the unit at once, but it still keeps the zero direction as the one the unit is to face. What follows from that is not recorded.”
  • FadeRemoved, fade: “The fade, by the name FadeTo gave it.”, where 1.0.0.127 has “The fade, by the name FadeTo gave it. A client does nothing where no fade on the unit has that name.”
  • FadeSounds, time: “How long the sounds take to fade; the unit is not recorded.”, where 1.0.0.127 has “How long the fade takes, in seconds on the match clock; a client fades its main sound effects out over that time.”
  • FloatingText, slot: “Where 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.”, where 1.0.0.127 has “Where 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.”
  • FloatingText, error: “Nonzero has a client ignore the whole message.”, where 1.0.0.127 has “Nonzero has a client show the text on screen as a message for ten seconds, whatever slot holds, and do nothing else with the message.”
  • FloatingText, text: “The text, ended by a zero byte; the two take at most 1024 bytes.”, where 1.0.0.127 has “The text, ended by a zero byte.”
  • ForceDeath, its layout: no note, where 1.0.0.127 has “Nothing follows the header: a client marks the unit dead and starts its death at once, for no set time.”
  • GameEnded, its layout: “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.”, where 1.0.0.127 has “Arriving while the match still loads, it counts as a win or loss for the player’s side, and the client hides its window and leaves at once; a client with no champion of its own first shows a message and counts neither. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.”
  • GameEnded, result.side100Won: “Set where side 100 won, clear where side 200 did.”, where 1.0.0.127 has “Set where side 100 won, clear where side 200 did. A client counts a win where this names its own side, and a loss otherwise.”
  • GameEnded, result.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “A client does nothing with this bit.”
  • GoldGained, its layout: “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.”, where 1.0.0.127 has “Where amount is above 0.5, unit is the client’s own champion and source names a unit it holds, a client floats the gold over the source. Otherwise, where it holds the unit, it shows the amount on the unit as a gain or a loss, and nothing for zero; where that appears is not recorded.”
  • HealthBar, show: “Set to show the bar, clear to hide it. Zero hides it, any other value shows it.”, where 1.0.0.127 has “Any value other than zero shows the bar; zero hides it.”
  • HudHighlightToggled, element: “What to light up, as in HudHighlighted. A value beyond those named does nothing.”, where 1.0.0.127 has “What to light up, as in HudHighlighted. A client checks it against no limit: a value beyond those named has no defined effect.”
  • HudHighlightToggled, second: “For the shop’s element 3, which item within the category; a client reads nothing here otherwise.”, where 1.0.0.127 has “A third value where part is 2; a server writes zero otherwise.”
  • HudHighlightToggled, state.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “A client ignores these bits; a server writes zero.”
  • HudHighlighted, element: “What to light up on the main controls. A client ignores any value above 8.”, where 1.0.0.127 has “What to light up on the main controls, 0 to 8; a client ignores a larger value. 4, 5 and 6 each name a part of a second panel; which part each value names is not recorded.”
  • HudHighlighted, number: “Which 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.”, where 1.0.0.127 has “Which slot, for a spell or a summoner spell; it has no effect for 3 to 8.”
  • InhibitorState, its layout: “A client ignores the whole message, duration included, unless alive differs from the inhibitor’s current state.”, where 1.0.0.127 has none
  • InhibitorState, state.duration: “How long the state lasts, in whole seconds; zero where alive is set.”, where 1.0.0.127 has “How long the state lasts, in seconds; zero where alive is set.”
  • InputLock, its layout: “A client ignores it while playing a replay.”, where 1.0.0.127 has none
  • InputLock, locked: “Set to lock, clear to unlock. Any nonzero value sets it.”, where 1.0.0.127 has “Set to lock, clear to unlock.”
  • InventorySlot, slot: “Which slot, 0 to 39. A client ignores the message from 40 up.”, where 1.0.0.127 has “Which slot, 0 to 37. A client ignores the message from 38 up.”
  • ItemAdded, its layout: “A server sends it to units nobody is buying for.”, where 1.0.0.127 has “It answers no request: where inSlot is above zero, a client puts item and inSlot in the slot whether or not anything asked for it. There is no charges field: a client takes an item’s charges from the item’s own data. A server sends it to units nobody is buying for.”
  • ItemAdded, slot: “The slot it went to. A client rejects the message from 38 up.”, where 1.0.0.127 has “The slot it went to, 0 to 37. A client rejects the message from 38 up.”
  • ItemAdded, inSlot: “How 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.”, where 1.0.0.127 has “How many of the item the slot holds now; zero leaves the slot as it was. The slot’s charges come from the item’s own data.”
  • ItemAdded, activate: “Nonzero readies the item’s own spell, in the slot four past the item’s, and has the client answer with RemoveItem for it.”, where 1.0.0.127 has “What this carries is not recorded. Where it is not zero, a client refreshes the slot and, where the slot holds an item, sends RemoveItem for it with sell clear; a server sends zero.”
  • ItemUsed, slot: “Which slot.”, where 1.0.0.127 has “Which slot, 0 to 37. A client ignores the message from 38 up, and where the slot is empty.”
  • JoinSide, padding: “Never written by a client.”, where 1.0.0.127 has “Arbitrary; it carries no meaning.”
  • JoinSide, clientId: “The client id of the client asking.”, where 1.0.0.127 has “The client id the sender holds, that is, the id of the client asking.”
  • JoinSide, side: “The side it asks for.”, where 1.0.0.127 has “The side it asks for; a client asks for 100.”
  • LeaveLocalSight, its layout: “It changes nothing a client shows for any unit, and a client ignores it while watching a match.”, where 1.0.0.127 has “It changes nothing a client shows for any unit, and a client ignores it while playing a replay.”
  • LeaveSight, its layout: no note, where 1.0.0.127 has “What a server sends to take a unit out of what a client can see; the client stops drawing it, unless it is a turret. A client ignores it while playing a replay. The header names the unit.”
  • LeaveTeamSight, side: “Which side the unit came into or out of the view of.”, where 1.0.0.127 has “Which side the unit passed out of the view of, as an index from 0 to 3. A server sends only 0 to 3; a larger index has no defined effect.”
  • LoadingProgress, clientId: “The client id of the client reporting.”, where 1.0.0.127 has “The client id the sender holds, that is, the id of the client reporting.”
  • LoadingProgress, playerId: “Who is reporting. A client sends zero.”, where 1.0.0.127 has “Zero.”
  • LoadingProgress, eta: “How long the client expects still to take, in seconds.”, where 1.0.0.127 has “How many seconds the client expects loading still to take.”
  • LoadingProgress, status.ping: “Round trip time the client measures, in milliseconds.”, where 1.0.0.127 has “The round trip time the client measures, in milliseconds.”
  • LoadingProgress, status.unused: “Never written by a client.”, where 1.0.0.127 has “Never written by a client; it carries nothing.”
  • LoadingProgress, done.loaded: “Set in every report whose progress stands at one hundred, and in no other.”, where 1.0.0.127 has “Set once loading is done.”
  • LoadingProgress, done.unused: “Never written by a client.”, where 1.0.0.127 has “Carries nothing; a client never writes these bits.”
  • Loadout, runes: “The runes set before the match, thirty places in runs of nine, nine, nine and three. A place holds zero where nothing was set.”, where 1.0.0.127 has “The runes set before the match, thirty places.”
  • Loadout, choices: “The choices made alongside them, one place each, and how far each was taken. A place stands empty where nothing was chosen.”, where 1.0.0.127 has “The choices made alongside them, 400 bytes that a client keeps as one block.”
  • MapPing, y: “The height of the place pinged.”, where 1.0.0.127 has “The height of the place pinged, in world units.”
  • MapPing, kind: “Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack.”, where 1.0.0.127 has “Which 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 four bits; the high four carry no meaning.”
  • MapProp, rotationX: “For 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.”, where 1.0.0.127 has “A vector’s part along one ground axis, used for either kind. What this carries is not recorded.”
  • MapProp, rotationZ: “For 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.”, where 1.0.0.127 has “A vector’s part along the other ground axis, used for either kind. What this carries is not recorded.”
  • MapProp, offsetX: “What is added to where it stands, along one ground axis, in world units.”, where 1.0.0.127 has “A second vector’s part along one ground axis, used only where kind is 1. What this carries is not recorded.”
  • MapProp, offsetY: “What is added to where it stands, in height, in world units.”, where 1.0.0.127 has “A second vector’s part in height, used only where kind is 1. What this carries is not recorded.”
  • MapProp, offsetZ: “What is added to where it stands, along the other ground axis, in world units.”, where 1.0.0.127 has “A second vector’s part along the other ground axis, used only where kind is 1. What this carries is not recorded.”
  • MapProp, kind: “What 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.”, where 1.0.0.127 has “What sort of prop it is; a client makes nothing for any other value. A client deletes no object first: where one already holds the prop’s id, both answer to it.”
  • MapProp, asset: “The name the client loads its art and sound under, written and padded as above.”, where 1.0.0.127 has “The name of the character the client loads the prop’s art and sound under, written and padded as above.”
  • MapPropChanged, name: “A 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.”, where 1.0.0.127 has “The name of the animation, for animate; a client reads it for no other change. The name ends at its first zero byte, and the bytes after it carry no meaning.”
  • MapPropChanged, value: “A value the change uses: for animate, the animation’s flags; for linkEffect, the particle effect value; for look, the look’s number.”, where 1.0.0.127 has “A value the change uses: for animate, the animation’s flags; for linkEffect, the particle effect value.”
  • MapPropChanged, option: “For animate, nonzero to remove the prop after the animation; for linkEffect, zero.”, where 1.0.0.127 has “For linkEffect, zero; a client reads it for no other change.”
  • MatchIdentity, game: “The match’s identifier.”, where 1.0.0.127 has “The match’s identifier. A client only logs it.”
  • MatchStarted, startedAt: “When the match began, as a moment on the match clock, in seconds.”, where 1.0.0.127 has “When the match began, as a moment on the match clock, in seconds; a client counts match time from it.”
  • MinimapHighlighted, element: “The minimap; a client acts on element 0 only, its camera button, and only once it knows its own champion. Any other value is ignored.”, where 1.0.0.127 has “Which part of the minimap blinks. A client acts on 0 alone, its camera button, and only once it knows its own champion; it ignores any other value.”
  • MinimapIcon, unit: “The unit this is about.”, where 1.0.0.127 has “The unit this is about. A client ignores the message where it does not hold the unit.”
  • MinimapIcon, icon: “The 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.”, where 1.0.0.127 has “The name the client loads the mark under, ended by a zero byte. A client changes nothing where it is the mark already drawn.”
  • MissileHits, count: “How many units follow. A client reads it as signed, so a count above 32767 carries none.”, where 1.0.0.127 has “How many units follow. A client reads it as signed, so a count of zero or above 32767 carries no units, and a server sends at most 32767.”
  • MissileHits, targets: “The units struck, in order.”, where 1.0.0.127 has “The units struck, in order. A client still takes a unit it does not know, with nothing shown on it, and nothing after the hit that destroys the missile shows.”
  • MissileState, its layout: “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.”, where 1.0.0.127 has “A client reads both a speed and a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. The header names the unit casting, as the casting inside does.”
  • MissileState, speed: “How fast the missile travels, in world units a second.”, where 1.0.0.127 has “How fast the missile travels, in world units a second. A client uses it only for a missile that flies in a straight line.”
  • MissileState, lifeSpent: “How much of its life is gone, as a part of one.”, where 1.0.0.127 has “How far through the spell’s fixed travel time the missile is, as a part of one. A missile aimed at a unit, or bouncing, paces itself to arrive as that time runs out; with no fixed travel time it has no effect.”
  • MissileState, how.bounced: “Set 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.”, where 1.0.0.127 has “Set where the missile has bounced; a client takes any nonzero byte as set. Only a missile that flies straight uses it; any other missile ignores it, with casterAt, end and facing.”
  • MoveCamera, how: no note, where 1.0.0.127 has “How the view moves. A client ignores it where the header carries zero.”
  • MoveOrder, its layout: “The path it carries is what the client would take; where the unit actually goes is whatever the server answers with.”, where 1.0.0.127 has “What a client sends as its player gives an order. The header names the unit ordered: the player’s champion, or a unit it controls alongside, which gets its own copy of the order. The path it carries is what the client would take; where the unit actually goes is whatever the server answers with.”
  • MoveOrder, kind: “What is being asked for.”, where 1.0.0.127 has “What the order is.”
  • MoveOrder, targetZ: “Where the order points, along the other.”, where 1.0.0.127 has “Where the order points, along the other ground axis.”
  • MoveOrder, movement: no note, where 1.0.0.127 has “Every point after the first.”
  • MovementBounds, camera: “Set to keep the camera within the circle too. Clear leaves the camera as it was, bound or not. Any nonzero value sets it.”, where 1.0.0.127 has “Nonzero also keeps the client’s camera inside the circle, a negative radius counting as zero for it. The bounds on the champion’s orders apply whatever this holds.”
  • NavigationFlags, its layout: “A client fails on the first of these in a match: it stops, marking no circle and sending no answer.”, where 1.0.0.127 has “A client clears every circle it holds before marking these, and answers each with a message to the server under command 32 whose body is this sync id alone.”
  • ObjectiveReplaced, its layout: no note, where 1.0.0.127 has “A client ignores it where it has no objective panel.”
  • ParticleLeaveTeamSight, its layout: no note, where 1.0.0.127 has “A client ignores the message where particle names none it holds, and fails where it names an object that is not a particle.”
  • Path, its layout: “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).”, where 1.0.0.127 has “A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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).”
  • Path, points: “The path’s points, to the end of the message. A client takes the ground’s height for each.”, where 1.0.0.127 has “The path’s points, to the end of the message. A client takes the ground’s height for each, and passes over a remainder shorter than a point.”
  • PathWithSpeed, its layout: “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.”, where 1.0.0.127 has “A client answers every one at once, before applying it, with WaypointAck: ten bytes holding this sync id and a last byte, where the relocation count sits, that is arbitrary and carries no meaning. 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.”
  • PathWithSpeed, points: “The path’s points, to the end of the message. A client takes the ground’s height for each.”, where 1.0.0.127 has “The path’s points, to the end of the message. A client takes the ground’s height for each, and passes over a remainder shorter than a point.”
  • PingPlaced, atY: “The height of the place, as a client shows it.”, where 1.0.0.127 has “Its height, in world units. A client does not use it to place the ping.”
  • PingPlaced, how.playSound: “Set where the client plays a sound for it.”, where 1.0.0.127 has “Set where the client plays a sound for it. A client plays one only where category is 0 or 1.”
  • PlayEmote, emote: “Which emote, by its place in the client’s list; one past the list plays nothing.”, where 1.0.0.127 has “Which emote, by its place in the client’s list. A client sends nothing where no emote matches.”
  • QueryStatusAnswer, ready: “Whether the server is ready. While answers say it is not, a client keeps asking and goes no further, which Joining a match sets out.”, where 1.0.0.127 has “Whether the server is ready; any value but zero ends the client’s wait. While answers say it is not, a client keeps asking and goes no further, which Joining a match sets out.”
  • QuestUpdated, tooltip: “A key into the client’s own text for its tooltip. It applies to activate only.”, where 1.0.0.127 has “A key into the client’s own text. It applies to activate only.”
  • RegionAdded, its layout: “A region grants sight, blocks the way, or grows cover.”, where 1.0.0.127 has “On this range a region stands where the message places it; RegionAttached places one that follows a unit. A region matching one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and position only gives that one the new lifetime.”
  • RegionAdded, kind: “What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.”, where 1.0.0.127 has “Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side. A client watching the match takes the side it watches as its own, and draws every region while it watches both.”
  • RegionAdded, sightRadius: “How far the region shows the map around it, in world units. Zero takes a default radius.”, where 1.0.0.127 has “How far the region shows the map around it, in world units, zero or more.”
  • RegionAdded, lifetime: “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.”, where 1.0.0.127 has “How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero, so zero or less removes it at once.”
  • RegionAdded, marker: “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.”, where 1.0.0.127 has “The id the client keeps the region under. Zero has the client pick one.”
  • RegionAdded, does.flag: “What this changes on a client is not recorded.”, where 1.0.0.127 has “Where kind is 2 and this bit is set, a client also sets the bit after it.”
  • RegionAdded, does.second: “A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.”, where 1.0.0.127 has “Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.”
  • RegionAdded, does.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “Its value has no effect; a server writes zero.”
  • RegionAdded, extra: “Kept with the region as it stands; what it does is not recorded. A server writes zero.”, where 1.0.0.127 has “Kept with the region; it changes nothing a client shows. A server writes zero.”
  • RegionAdded, otherExtra: “Kept the same way; a server writes zero.”, where 1.0.0.127 has “A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.”
  • RegionAttached, its layout: “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.”, where 1.0.0.127 has none
  • RegionAttached, kind: “What sort of region it is. Where it is 2, the region belongs to the client clientId names; what other values mean is not recorded.”, where 1.0.0.127 has “Whose map shows the region: 0 side 100’s, 1 side 200’s, 2 everyone’s, 3 side 300’s, 4 any other. A client takes the value as it stands, so 100 or 200 here matches no one, and draws the region only where it is 2 or names the player’s own side. A client watching the match takes the side it watches as its own, and draws every region while it watches both.”
  • RegionAttached, sightRadius: “How 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.”, where 1.0.0.127 has “How far the region shows the map around it, in world units, zero or more. Zero takes the unit’s own sight radius, followed as it changes, or a default where it has none.”
  • RegionAttached, unit: “The unit the region follows. A client takes the region even where it does not hold the unit.”, where 1.0.0.127 has “The unit the region follows. A client ignores the message where it does not know 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. Whether one that starts at zero or less is kept is not recorded.”, where 1.0.0.127 has “How long it lasts, in seconds. A client counts it down and removes the region once it reaches zero or less, so one that starts at zero or less goes at its first count.”
  • RegionAttached, marker: “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.”, where 1.0.0.127 has “The region’s id, which RegionRemoved names; zero has the client pick one of its own. A region that matches one the client holds in kind, sightRadius, the first three bits of does, extra, otherExtra and unit only renews that one’s lifetime; the id is not compared.”
  • RegionAttached, does.flag: “What this changes on a client is not recorded.”, where 1.0.0.127 has “Where kind is 2 and this bit is set, a client also sets does.second. The region shows the map whether or not it is set.”
  • RegionAttached, does.second: “A second choice a client keeps with the region; it also sets it itself where kind is 2 and the bit below it is set.”, where 1.0.0.127 has “Kept with the region; a client also sets it where kind is 2 and flag is set. It changes nothing a client shows.”
  • RegionAttached, does.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “Its value has no effect, because a client always sets this bit itself; a server writes zero.”
  • RegionAttached, extra: “Kept with the region as it stands; what it does is not recorded. A server writes zero.”, where 1.0.0.127 has “Kept with the region; it changes nothing a client shows. A server writes zero.”
  • RegionAttached, otherExtra: “Kept the same way; a server writes zero.”, where 1.0.0.127 has “A region sent again with the same value is taken as the one already shown; what else it names is not recorded. A server sends zero.”
  • Register, playerId: “Who the sender claims to be. The proof is what settles the claim.”, where 1.0.0.127 has “Who the sender claims to be, as its launch line names the player. The proof is what settles the claim.”
  • Register, proof: “The player id enciphered with the 16-byte key; a plain copy where the client has no key.”, where 1.0.0.127 has “The player id enciphered with the 16-byte key both ends already hold; a plain copy where the client has no key.”
  • Registered, clientId: “The 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).”, where 1.0.0.127 has “The client id playerId holds. Where playerId is the client’s own, the client takes this client id as its own and goes on.”
  • Registered, playerId: “The player the answer is for; a client takes it only where this is its own player id, and reads nothing after it.”, where 1.0.0.127 has “Who occupies that seat. A client keeps the pair of clientId and playerId from every answer, and takes the answer as its own only where this is its own player id; it reads nothing after it.”
  • RemoveItem, which.sell: “Set to sell the item, clear to throw it away. A client always sends it set.”, where 1.0.0.127 has “Set to sell the item, clear to throw it away.”
  • RemoveItemAnswer, its layout: no note, where 1.0.0.127 has “A client takes it only for a champion, and ignores it for any other unit.”
  • RemoveItemAnswer, slot: “Which 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.”, where 1.0.0.127 has “Which slot, 0 to 37. A client drops the message from 38 up.”
  • Roster, sideRoom: “How 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.”, where 1.0.0.127 has “How many seats side 100 has room for.”
  • Roster, otherSideRoom: “How many the other has room for, under the same terms.”, where 1.0.0.127 has “How many side 200 has room for.”
  • Roster, side: “The 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.”, where 1.0.0.127 has “The players on side 100, twenty four places of a player identifier’s width; the client copies as many as sideRoom says, so a server keeps sideRoom at 24 or less; a larger one has no defined effect. sideTaken says how many of the leading places carry a player, and the rest hold zero.”
  • Roster, otherSide: “The players on the other, under the same reading, as many as otherSideRoom gives.”, where 1.0.0.127 has “The players on side 200, read the same way under otherSideRoom and otherSideTaken, with otherSideRoom kept at 24 or less.”
  • Roster, sideTaken: “How many of the leading places on the first side carry a player. A client keeps it, and it limits nothing.”, where 1.0.0.127 has “How many of side 100’s places carry a player.”
  • Roster, otherSideTaken: “How many on the other, under the same terms.”, where 1.0.0.127 has “How many on side 200.”
  • ScoreAdded, its layout: “A client ignores the message where player names no champion it holds.”, where 1.0.0.127 has “A client ignores the message where champion names no champion it holds.”
  • ScoreAdded, flags.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “A client ignores these; a server writes zero.”
  • ScreenTint, fadeIn: “1 brings a tint in, and the colour and weight below follow; 0 takes it away, and they do not.”, where 1.0.0.127 has “Any value other than zero brings a tint in, and the colour and weight below follow; 0 takes it away, and they do not.”
  • ScreenTint, side: “Which side sees it.”, where 1.0.0.127 has “Which side sees it: 0 for every client, or a side’s number. A client with no player of its own shows a tint only for 0 and 100.”
  • SeatChampion, player: “The player this is about. It has a player identifier’s width.”, where 1.0.0.127 has “Whose champion this is. It has a player identifier’s width.”
  • SeatChampion, assetLength: “How many bytes the name below occupies, counting the byte that ends it.”, where 1.0.0.127 has “How many bytes the name below occupies, counting the byte that ends it. A client reads nothing here, and takes the name up to its first zero byte.”
  • SeatChampion, asset: “The name the client loads the champion’s art and sound under. It is not padded.”, where 1.0.0.127 has “The champion the seat plays, as the name the client loads the champion’s data under. It ends with a zero byte and is not padded.”
  • SeatLoadProgress, status.loaded: “Set in every report whose progress stands at one hundred, and in no other.”, where 1.0.0.127 has “It carries no defined value.”
  • SeatLoadProgress, done.loaded: “Set where the seat has loaded; a client then shows no time left.”, where 1.0.0.127 has “Set once loading is done.”
  • SeatLoadProgress, done.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “Carries nothing.”
  • SeatName, player: “The player this is about. It has a player identifier’s width.”, where 1.0.0.127 has “Whose name this is. It has a player identifier’s width.”
  • SeatName, nameLength: “How 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.”, where 1.0.0.127 has “How many bytes the name below occupies, counting the byte that ends it. A client reads nothing here, and takes the name up to its first zero byte.”
  • ShieldAdded, flags.unused: “Unused; a server writes zero.”, where 1.0.0.127 has “A client ignores these; a server writes zero.”
  • SpawnFromBarracks, its layout: “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.”, where 1.0.0.127 has “The header names the barracks the unit comes out of, and a client ignores the message under any other header; the new unit’s id is unit. A client deletes no object first. While resynchronising, it drops a message naming an id it holds, or with kind above 4.”
  • SpawnFromBarracks, kind: “What sort of unit it is.”, where 1.0.0.127 has “What sort of unit it is, from 0 to 3; a client spawns nothing for any other value.”
  • SpawnPet, its layout: “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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it. The header names the pet. A server sends it to clients watching a match.”, where 1.0.0.127 has “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 with the owner’s side and sight, as the owner’s pet. It deletes no object first; where one already holds pet, both answer to it.”
  • SpawnPet, pet: “The name the new pet answers to.”, where 1.0.0.127 has “The id the pet answers to, which a client gives it together with node. The header names the owner.”
  • SpawnPet, spellLevel: “The level of the spell that summoned it, plus one. A client uses it only where node is its own.”, where 1.0.0.127 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.”
  • SpawnPet, effect: “An effect it carries, padded with zero bytes. A client uses it only where node is its own.”, where 1.0.0.127 has “An effect it carries, padded with zero bytes. A client uses it only where the owner belongs to its own network node.”
  • SpawnPet, flags.clearOwnerTarget: “Set where its owner’s target is cleared.”, where 1.0.0.127 has “Set where its owner’s target is cleared; a client acts on it only where the owner is its own champion.”
  • SpawnPet, minimapIcon: “Set where it shows on the minimap. Any nonzero value sets it.”, where 1.0.0.127 has “Not zero, where the owner is a champion, to class the pet with its owner for display. What that changes on screen is not recorded.”
  • SpellCastAnswer, its layout: no note, where 1.0.0.127 has “There is no byte for ending a charge: the casting follows the sync id.”
  • SpellCooldown, its layout: no note, where 1.0.0.127 has “It carries no whole cooldown to show the time left against.”
  • SpellCooldown, which.summonerSpell: “Set where the slot counts among the summoner slots, so that 0 and 1 name those two.”, where 1.0.0.127 has “Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.”
  • SpellIconChanged, which.summonerSlots: “Set 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.”, where 1.0.0.127 has “Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.”
  • SpellIconChanged, icon: “Which icon the spell shows.”, where 1.0.0.127 has “Which icon the spell shows. Any value is accepted.”
  • SpellInSlot, unit: “The unit whose slot this is.”, where 1.0.0.127 has “The unit whose slot this is. A client ignores the message where it does not know the unit.”
  • SpellLevel, its layout: no note, where 1.0.0.127 has “It carries no level: a client raises the spell in the slot by one level each time, to at most 6.”
  • SpellNameChanged, which.summonerSlots: “Set 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.”, where 1.0.0.127 has “Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.”
  • SpellNameChanged, name: “The name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.”, where 1.0.0.127 has “The name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot, and treats a name it has no spell for as an error.”
  • SpellNumbers, entryCount: “How many sets of numbers follow.”, where 1.0.0.127 has “How many sets of numbers follow. A client ignores the whole message where they do not all fit in it.”
  • SpellNumbers, entries: “The sets themselves.”, where 1.0.0.127 has “The sets themselves. A client skips a set naming a unit it does not hold.”
  • SpellNumbers, entries[].slot: “Which slot.”, where 1.0.0.127 has “Which slot: 60 to 119 name the unit’s own spell slot, less 60, and 120 and up a summoner slot, less 120, the set skipped for a unit that has none. What 0 to 59 name is not recorded.”
  • SpellOffsetTargetChanged, which.summonerSlots: “Set 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.”, where 1.0.0.127 has “Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.”
  • SpellOffsetTargetChanged, target: “The 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.”, where 1.0.0.127 has “The unit the slot’s targeting indicator works from instead of the caster. A client takes an id it does not hold as no unit.”
  • SpellTargetingChanged, which.summonerSlots: “Set 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.”, where 1.0.0.127 has “Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.”
  • SpellTargetingChanged, targeting: “How the spell is aimed.”, where 1.0.0.127 has “How the spell is aimed, 0 to 10. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.”
  • SpellUpgraded, its layout: “A client takes it the same on every channel: it sets the slot’s level to level, at most 6, and keeps pointsLeft.”, where 1.0.0.127 has “On any channel a client sets the slot’s level to level, and the unspent spell points to pointsLeft; it raises the spell no further.”
  • SpellUpgraded, level: “The level the spell now stands at.”, where 1.0.0.127 has “The level the spell now stands at. A client takes any level above 6 as 6.”
  • StatisticIncremented, statistic: “Which count. A value past those named has no defined effect.”, where 1.0.0.127 has “Which count, from 0 to 9. A client does not check the range, so a value past 9 has no defined effect; a server sends only those named.”
  • StatsRequest, its layout: no note, where 1.0.0.127 has “A client sends no body.”
  • StopAttack, how.forceStop: “Set 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.”, where 1.0.0.127 has “Set to stop the current cast outright; clear, a client stops the attack the ordinary way.”
  • StopAttack, how.summonerSpell: “Set where the slot stopped is a summoner spell’s.”, where 1.0.0.127 has “Picks which spells the stop applies to: set, the summoner spells; clear, the unit’s own. A unit with no summoner spells, such as any unit that is not a champion, stops nothing when this is set.”
  • SurrenderStatus, reason: “Why the vote stands where it does.”, where 1.0.0.127 has “Why the vote stands where it does. A client acts on 0 to 4 and ignores the message for any other value; 1 resets the vote only where side is the client’s own. A client with no player of its own, as while spectating, shows only 0 and 4.”
  • SurrenderVoteCalled, how.openTheMenu: “Set 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.”, where 1.0.0.127 has “Set where the vote opens: a client of side opens the vote’s panel from seats and closesIn, which have no other effect; every client with a player of its own announces that a vote began, with caller, inFavour, against and side.”
  • SwapItems, from: no note, where 1.0.0.127 has “The slot the item leaves, at most 37.”
  • SwapItems, to: no note, where 1.0.0.127 has “The slot it goes to, at most 37. A client never sends the slot named by from.”
  • SwapItemsAnswer, from: “The slot the item left.”, where 1.0.0.127 has “The slot the item left, 0 to 37. A client ignores the message where it is 38 or more.”
  • SwapItemsAnswer, to: “The slot it went to.”, where 1.0.0.127 has “The slot it went to, 0 to 37. A client ignores the message where it is 38 or more.”
  • TeamChanged, unit: “The unit.”, where 1.0.0.127 has “The unit. A client ignores the message where it does not hold it.”
  • TransientAck, its layout: “It is sent for a batch whose values the client dropped as well as for one it took.”, where 1.0.0.127 has “A client sends it for a Replication batch only where it holds every unit the batch names, or the batch names none.”
  • UnitDied, its layout: “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.”, where 1.0.0.127 has “Where the unit is already dead, a client does nothing with the message, and announces nothing. Otherwise it cancels the unit’s cast and attack; then, only where killer is nonzero, it puts the unit down by stayDown and standing and announces the death, credited to no unit where it does not hold killer. Whatever the unit’s kind adds follows.”
  • UnitDied, damageSource: “Read only for a minion a champion killed, whose kill a client shows another way where it is 7; a server writes zero.”, where 1.0.0.127 has “Unused; a server writes zero.”
  • UnitDied, standing: “Set 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.”, where 1.0.0.127 has “Any nonzero value leaves the unit standing rather than dead. A champion then plays no death animation; minions and turrets play theirs whatever this says.”
  • UnitStopped, syncId: “The unit’s movement count.”, where 1.0.0.127 has “The unit’s movement count. A client drops the message where it is behind the last the unit took by less than 1073741824.”
  • UnitText, its layout: “A client ignores it whenever it is watching a match.”, where 1.0.0.127 has none
  • UpgradeSpell, its layout: no note, where 1.0.0.127 has “A client takes the point off its own count before it sends this. There is no evolution point.”
  • UpgradeSpell, slot: “Which slot is being raised.”, where 1.0.0.127 has “Which slot is being raised: 0 to 3, for the champion’s own spells, though a client does not hold itself to that range.”
  • UseObject, its layout: “A client also sends it as a unit its champion is attacking changes side (TeamChanged), whether usable or not.”, where 1.0.0.127 has none
  • VersionSync, agreement: “Nonzero where the build the client runs matches, which a client needs to load; zero has it show both versions and end.”, where 1.0.0.127 has “Must be 1: any other value has the client report a build mismatch and leave. For 0 it also shows both versions.”
  • VersionSync, build: “Which build the server serves. Written out in full and padded with zero bytes to the width above.”, where 1.0.0.127 has “Which build the server serves, shown and not checked. Written out in full and padded with zero bytes to the width above; a client reads it up to the first zero byte.”
  • VoiceEvent, folder: “The event’s folder. It has no effect where kind is 1.”, where 1.0.0.127 has “The event’s folder.”
  • VoiceEvent, event: “The event’s name; for kind 1, the conversation’s.”, where 1.0.0.127 has “The event’s name.”
  • VoiceEvent, callback: “For 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.”, where 1.0.0.127 has “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.”
  • VoiceEvent, handle: “For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion.”, where 1.0.0.127 has “A number a client returns in VoiceEventDone.”
  • VoiceOverride, flags: “Whether to reset. A client compares the whole byte with 1, so a server writes the other bits zero.”, where 1.0.0.127 has “Whether to reset. The whole byte is read, and a name follows any value other than 1, so a server sends only 0 or 1.”
  • WaypointAck, its layout: “It lists the units the group asked it to relocate.”, where 1.0.0.127 has “What a client sends for every WaypointGroup it takes, and for every WaypointGroupAtSpeed. The header names no object: it carries zero. It lists the units the group asked it to relocate.”
  • WaypointAck, syncId: “Which group is being acknowledged, as the group named itself.”, where 1.0.0.127 has “The number of the group it answers, as the group named itself.”
  • WaypointAck, relocationCount: “How 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.”, where 1.0.0.127 has “How many relocations follow: answering a group, how many of its paths carried a teleport token. Answering a path for one unit, a client sends only syncId and this byte, unwritten, on the transient channel, and no relocations, so a server reads nothing in it there.”
  • WaypointAck, relocations: no note, where 1.0.0.127 has “Each of those, in the group’s order.”
  • WaypointGroup, its layout: no note, where 1.0.0.127 has “What a server sends to set units walking paths, which each walks at its own speed.”
  • WaypointGroup, syncId: “Names this group. A client returns it to say the group arrived.”, where 1.0.0.127 has “The number of this statement; a client applies a path to a unit only where it is not behind the last the unit took. A client returns it in WaypointAck to say the group arrived.”
  • WaypointGroup, movementCount: “How many units the group moves. A client reads it as signed, so a count above 32767 carries none.”, where 1.0.0.127 has “How many paths follow, one for each unit. A client reads it as signed, so a count above 32767 counts as none, as zero does, and a client still answers.”
  • WaypointGroup, movements: no note, where 1.0.0.127 has “One path for each unit.”
  • WaypointGroupAtSpeed, its layout: no note, where 1.0.0.127 has “A client answers each with WaypointAck, naming this sync id and listing, in order, each unit whose path carried a teleport token with that token.”
  • WaypointGroupAtSpeed, movementCount: “How many units follow. A client reads it as signed, so a count above 32767 carries none.”, where 1.0.0.127 has “How many units follow. A client reads it as signed, so a count above 32767 counts as none, as zero does.”

1.0.0.129

Client builds from 1.0.0.129 up to, not including, 1.0.0.130. Patch notes: V1.0.0.129.

Build checkedPassedFailedSkippedCommitDate
1.0.0.1291004131f0e82026-10-31
Every message of this range (214)
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
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.128

Where a build from 1.0.0.129 up to, not including, 1.0.0.130 differs from one from 1.0.0.128 up to, not including, 1.0.0.129. Anything not named here is the same in both.

In 1.0.0.129, not in 1.0.0.128

MessageSent byCommandWhat it does
TargetableChangedserver243 on eventsChange whether a unit can be aimed at, and by which sides

Laid out differently

Only notes

These read the same on the wire, and only their notes change. What each says in 1.0.0.129:

  • Damage, source: “The 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.”, where 1.0.0.128 has “The unit dealing it. A client shows nothing, notices included, unless it holds both target and source and target can be attacked; the figure drifts from source toward target, and a champion source has the amount added to its damage dealt.”
  • MatchIdentity, name: “The player’s name, padded with zero bytes.”, where 1.0.0.128 has “The player’s name, padded with zero bytes. A client reads nothing of it.”
  • Resumed, clientId: “The 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.”, where 1.0.0.128 has “The client id of the player who resumed the match, announced in chat by the name the client’s list of players gives it, where afterCountdown is clear: to a player in the colour of an ally where the resumer is on its side and of an enemy otherwise, and to a client watching the match in the resumer’s side’s colour. 4294967295 announces no one.”

Index of messages

MessageSent bySystemRanges
AfkWarningserverinterface1.0.0.25–1.0.0.129
AnimationOverridesservereffects1.0.0.61–1.0.0.129
Announcementserverinterface1.0.0.25–1.0.0.129
AppearancePoppedservereffects1.0.0.25–1.0.0.129
AppearancePushedservereffects1.0.0.25–1.0.0.129
Attackservercombat1.0.0.25–1.0.0.129
AttackFromservercombat1.0.0.25–1.0.0.129
Autocastserverspells1.0.0.25–1.0.0.129
BotDebugserverunits1.0.0.25–1.0.0.129
BotStateserverunits1.0.0.25–1.0.0.129
BotTargetsserverunits1.0.0.25–1.0.0.129
BuildingDiedservercombat1.0.0.25–1.0.0.129
BuyItemclientshop1.0.0.25–1.0.0.129
Cameraclientinterface1.0.0.25–1.0.0.129
CameraAckserverinterface1.0.0.25–1.0.0.129
CameraBehaviourserverinterface1.0.0.25–1.0.0.129
CameraLockclientinterface1.0.0.25–1.0.0.129
CameraLockSetserverinterface1.0.0.25–1.0.0.129
CampClearedserverobjectives1.0.0.86–1.0.0.129
CancelTargetingserverspells1.0.0.126–1.0.0.129
CapturePointChangedserverobjectives1.0.0.124–1.0.0.129
CapturePointValueserverobjectives1.0.0.110–1.0.0.123
CastSpellclientspells1.0.0.25–1.0.0.129
ChainTargetsserverspells1.0.0.25–1.0.0.129
ChampionDiedservercombat1.0.0.107–1.0.0.129
ChampionStatsserverreplication1.0.0.61–1.0.0.129
CharacterSelectedclientjoining1.0.0.25–1.0.0.129
Chatbothcommunication1.0.0.25–1.0.0.129
ClientEventserverobjectives1.0.0.25–1.0.0.129
ClientFinishedclientmatch1.0.0.25–1.0.0.129
ClientReadyclientjoining1.0.0.25–1.0.0.129
ClientVersionclientjoining1.0.0.25–1.0.0.129
ClockConvergenceservermatch1.0.0.25–1.0.0.129
ClockReplyclientmatch1.0.0.25–1.0.0.129
ClockSyncservermatch1.0.0.25–1.0.0.129
CloseShopservershop1.0.0.25–1.0.0.129
CooldownSetclientspells1.0.0.25–1.0.0.129
CreateChampionserverunits1.0.0.25–1.0.0.129
CreateNeutralserverunits1.0.0.25–1.0.0.129
CreateTurretserverunits1.0.0.25–1.0.0.129
Damageservercombat1.0.0.25–1.0.0.129
DeathHistoryservercombat1.0.0.25–1.0.0.129
DestroyMissileserverspells1.0.0.25–1.0.0.129
EffectAddedservereffects1.0.0.25–1.0.0.129
EffectAddedGroupservereffects1.0.0.82–1.0.0.129
EffectCountservereffects1.0.0.25–1.0.0.129
EffectCountGroupservereffects1.0.0.82–1.0.0.129
EffectRemovedservereffects1.0.0.25–1.0.0.129
EffectRemovedGroupservereffects1.0.0.82–1.0.0.129
EffectReplacedservereffects1.0.0.25–1.0.0.129
EffectReplacedGroupservereffects1.0.0.82–1.0.0.129
EmotePlayedservercommunication1.0.0.25–1.0.0.129
EnterLocalSightservervision1.0.0.25–1.0.0.129
EnterSightservervision1.0.0.25–1.0.0.129
EnterTeamSightservervision1.0.0.120–1.0.0.129
Exitclientmatch1.0.0.25–1.0.0.129
ExperienceGainedserverreplication1.0.0.25–1.0.0.129
FaceDirectionservermovement1.0.0.25–1.0.0.129
FacePositionclientmovement1.0.0.25–1.0.0.129
FadeMinionsservereffects1.0.0.25–1.0.0.129
FadeRemovedservereffects1.0.0.25–1.0.0.129
FadeSoundsservercommunication1.0.0.25–1.0.0.129
FadeToservereffects1.0.0.25–1.0.0.129
FloatingTextserverinterface1.0.0.25–1.0.0.129
FogSetservervision1.0.0.98–1.0.0.129
FogToggledservervision1.0.0.25–1.0.0.129
ForceDeathservercombat1.0.0.103–1.0.0.129
GameEndedservermatch1.0.0.25–1.0.0.129
GameSpeedservermatch1.0.0.25–1.0.0.129
GoldEarnedserverreplication1.0.0.120–1.0.0.129
GoldGainedserverreplication1.0.0.25–1.0.0.129
GoldRedirectserverreplication1.0.0.25–1.0.0.129
GreyscaleWhenDeadservercombat1.0.0.25–1.0.0.129
HealthBarserverreplication1.0.0.103–1.0.0.129
HudDisabledserverinterface1.0.0.25–1.0.0.129
HudHighlightedserverguidance1.0.0.25–1.0.0.129
HudHighlightToggledserverguidance1.0.0.25–1.0.0.129
InhibitorStateservercombat1.0.0.25–1.0.0.129
InputLockserverinterface1.0.0.25–1.0.0.129
InputLockToggledserverinterface1.0.0.25–1.0.0.129
InventorySlotservershop1.0.0.97–1.0.0.129
ItemAddedservershop1.0.0.25–1.0.0.129
ItemUsedservershop1.0.0.74–1.0.0.129
JoinSideclientjoining1.0.0.25–1.0.0.129
KillParticleservereffects1.0.0.25–1.0.0.129
LeaveLocalSightservervision1.0.0.25–1.0.0.129
LeaveSightservervision1.0.0.25–1.0.0.129
LeaveTeamSightservervision1.0.0.120–1.0.0.129
LevelUpserverreplication1.0.0.25–1.0.0.129
LoadingProgressclientjoining1.0.0.25–1.0.0.129
Loadoutservershop1.0.0.25–1.0.0.129
MapPingclientcommunication1.0.0.25–1.0.0.129
MapPropserverunits1.0.0.110–1.0.0.129
MapPropChangedserverunits1.0.0.110–1.0.0.129
MatchIdentityserverjoining1.0.0.25–1.0.0.129
MatchStartedserverjoining1.0.0.124–1.0.0.129
MinimapHighlightedserverguidance1.0.0.25–1.0.0.129
MinimapIconserverinterface1.0.0.110–1.0.0.129
MissileHitsserverspells1.0.0.25–1.0.0.129
MissileReportclientspells1.0.0.25–1.0.0.129
MissileStateserverspells1.0.0.25–1.0.0.129
ModulePacketclientjoining1.0.0.113–1.0.0.129
MoveCameraserverinterface1.0.0.25–1.0.0.129
MovementBoundsservermovement1.0.0.25–1.0.0.129
MoveOrderclientmovement1.0.0.25–1.0.0.129
MusicCueservercommunication1.0.0.124–1.0.0.129
NavigationFlagsservermovement1.0.0.108–1.0.0.129
NexusIdleservereffects1.0.0.25–1.0.0.129
NexusSkinservereffects1.0.0.25–1.0.0.129
ObjectiveHiddenserverguidance1.0.0.25–1.0.0.129
ObjectiveReplacedserverguidance1.0.0.25–1.0.0.129
ObjectiveShownserverguidance1.0.0.25–1.0.0.129
ParticleLeaveTeamSightservervision1.0.0.123–1.0.0.129
ParticlesCreatedservereffects1.0.0.25–1.0.0.129
ParticleSourceservereffects1.0.0.124–1.0.0.129
Pathservermovement1.0.0.25–1.0.0.129
PathWithSpeedservermovement1.0.0.25–1.0.0.129
Pauseclientmatch1.0.0.124–1.0.0.129
PauseAnimationservereffects1.0.0.106–1.0.0.129
Pausedservermatch1.0.0.25–1.0.0.129
PingPlacedservercommunication1.0.0.25–1.0.0.129
PlayAnimationservereffects1.0.0.25–1.0.0.129
PlayEmoteclientcommunication1.0.0.25–1.0.0.129
PlayerDisconnectedservermatch1.0.0.25–1.0.0.129
QueryStatusclientjoining1.0.0.25–1.0.0.129
QueryStatusAnswerserverjoining1.0.0.25–1.0.0.129
QuestEventclientguidance1.0.0.104–1.0.0.129
QuestUpdatedserverguidance1.0.0.104–1.0.0.129
Reconnectedservermatch1.0.0.25–1.0.0.129
ReconnectedInMatchclientmatch1.0.0.25–1.0.0.129
RegionAddedservervision1.0.0.25–1.0.0.129
RegionAttachedservervision1.0.0.25–1.0.0.129
RegionRemovedservervision1.0.0.25–1.0.0.129
Registerclientjoining1.0.0.25–1.0.0.129
Registeredserverjoining1.0.0.25–1.0.0.129
RemoveItemclientshop1.0.0.25–1.0.0.129
RemoveItemAnswerservershop1.0.0.25–1.0.0.129
Replicationserverreplication1.0.0.25–1.0.0.129
ResourceColoursserverreplication1.0.0.109–1.0.0.129
Respawnedservercombat1.0.0.25–1.0.0.129
RespawnPointserverobjectives1.0.0.110–1.0.0.129
Resumeclientmatch1.0.0.124–1.0.0.129
Resumedservermatch1.0.0.25–1.0.0.129
ResyncEndedserverjoining1.0.0.25–1.0.0.129
Revivedservercombat1.0.0.25–1.0.0.129
Rosterserverjoining1.0.0.25–1.0.0.129
ScoreAddedserverreplication1.0.0.124–1.0.0.129
ScreenTintservereffects1.0.0.113–1.0.0.129
SeatChampionserverjoining1.0.0.25–1.0.0.129
SeatLoadProgressserverjoining1.0.0.25–1.0.0.129
SeatNameserverjoining1.0.0.25–1.0.0.129
SelectObjectclientinterface1.0.0.25–1.0.0.129
ShieldAddedserverreplication1.0.0.111–1.0.0.129
ShopHighlightedserverguidance1.0.0.25–1.0.0.129
SideTextHiddenserverguidance1.0.0.25–1.0.0.129
SideTextRefreshedserverguidance1.0.0.25–1.0.0.129
SideTextShownserverguidance1.0.0.25–1.0.0.129
SpawnBotserverunits1.0.0.110–1.0.0.129
SpawnEndserverjoining1.0.0.25–1.0.0.129
SpawnFromBarracksserverunits1.0.0.25–1.0.0.129
SpawnPetserverunits1.0.0.25–1.0.0.129
SpawnStartserverjoining1.0.0.25–1.0.0.129
SpawnUnitserverunits1.0.0.25–1.0.0.129
SpellCastAnswerserverspells1.0.0.25–1.0.0.129
SpellCooldownserverspells1.0.0.25–1.0.0.129
SpellIconChangedserverspells1.0.0.117–1.0.0.129
SpellInSlotserverspells1.0.0.124–1.0.0.129
SpellLevelserverspells1.0.0.106–1.0.0.129
SpellNameChangedserverspells1.0.0.25–1.0.0.129
SpellNumbersserverspells1.0.0.25–1.0.0.129
SpellOffsetTargetChangedserverspells1.0.0.119–1.0.0.129
SpellTargetingChangedserverspells1.0.0.25–1.0.0.129
SpellUpgradedserverspells1.0.0.25–1.0.0.129
StartGameserverjoining1.0.0.25–1.0.0.129
StatisticIncrementedserverreplication1.0.0.124–1.0.0.129
StatsRequestclientjoining1.0.0.104–1.0.0.129
StatTickserverreplication1.0.0.25–1.0.0.129
StopAnimationservereffects1.0.0.25–1.0.0.129
StopAttackservercombat1.0.0.25–1.0.0.129
SurrenderStatusservervotes1.0.0.25–1.0.0.129
SurrenderVoteclientvotes1.0.0.25–1.0.0.129
SurrenderVoteCalledservervotes1.0.0.25–1.0.0.129
SwapItemsclientshop1.0.0.70–1.0.0.129
SwapItemsAnswerservershop1.0.0.25–1.0.0.129
TargetableChangedserverunits1.0.0.129
TargetHeldChampionservercombat1.0.0.25–1.0.0.129
TargetUnitservercombat1.0.0.25–1.0.0.129
TeamChangedserverunits1.0.0.110–1.0.0.129
TeamScoreserverobjectives1.0.0.110–1.0.0.129
TipEventclientguidance1.0.0.104–1.0.0.129
TipShownserverguidance1.0.0.104–1.0.0.129
TransientAckclientreplication1.0.0.25–1.0.0.129
TutorialChatLineserverguidance1.0.0.25–1.0.0.129
TutorialPopupserverguidance1.0.0.25–1.0.0.129
TutorialPopupClosedclientguidance1.0.0.25–1.0.0.129
TutorialShopOpenedclientshop1.0.0.25–1.0.0.129
UiHighlightserverguidance1.0.0.104–1.0.0.129
UnitDiedservercombat1.0.0.25–1.0.0.129
UnitHighlightedserverguidance1.0.0.25–1.0.0.129
UnitHighlightRemovedserverguidance1.0.0.25–1.0.0.129
UnitSpokeclientcommunication1.0.0.25–1.0.0.129
UnitStoppedservermovement1.0.0.25–1.0.0.129
UnitTextserverinterface1.0.0.124–1.0.0.129
UpgradeSpellclientspells1.0.0.25–1.0.0.129
UseObjectclientcombat1.0.0.124–1.0.0.129
VersionSyncserverjoining1.0.0.25–1.0.0.129
VictoryDanceservermatch1.0.0.123–1.0.0.129
VoiceEventservercommunication1.0.0.25–1.0.0.129
VoiceEventDoneclientcommunication1.0.0.25–1.0.0.129
VoiceOverrideservereffects1.0.0.125–1.0.0.129
VolumeMutedservercommunication1.0.0.25–1.0.0.129
WaypointAckclientmovement1.0.0.25–1.0.0.129
WaypointGroupservermovement1.0.0.25–1.0.0.129
WaypointGroupAtSpeedservermovement1.0.0.25–1.0.0.129
WorldEventserverobjectives1.0.0.25–1.0.0.129