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

Replication

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

In 1.0.0.130–1.0.0.140

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

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

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

What settles a reading

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

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

Props answer to a table of their own as well.

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

The building table is the same on every map.

Which batches a client takes

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

Reading the tables

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

In 1.0.0.130–1.0.0.140

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

In 1.0.0.140

A champion

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

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

A turret

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

A minion, and a unit belonging to no side

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

A building

Inhibitors, nexuses and the buildings minions come from share one table. It has no value for health at its greatest.

GroupBitsValueType
10Health as it standsfloat
11Whether it is proof against all harmu32

A prop

GroupBitsValueType
10Health as it standsfloat
11Health as it stands, againfloat
12Whether it is proof against all harmu32
30 to 1A flat and a percent addition to how far it seesfloat
32How fast it movesfloat
33A value whose meaning is not recordedfloat

Values stated outside a batch

Besides its batches, a server states some values with messages of their own.

In 1.0.0.140

A server grants experience with ExperienceGained, and MUST name a champion in it: a client fails on one naming any other unit. GoldGained shows the gold gained over the unit and grants none: a champion’s gold in hand follows group 0 bit 0 of its batches alone.

A server can send the gold a unit earns to another with GoldRedirect. A level gained is LevelUp, which on its own is enough for a client to show the new level on its champion’s portrait. A server sets a champion’s tallies for the scoreboard with ChampionStats. A server can also add to a unit’s shield (ShieldAdded), change how its health bar or resource bar is shown (HealthBar, ResourceDisplay), change the sort of resource it has (ResourceKindChanged), set the highest level a champion reaches (LevelCap), and count minions killed, scores and deeds (MinionKillCount, ScoreAdded, StatisticIncremented).

Messages

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

Replication

What a server sends to say what has changed about units a client can see. It is the most frequent thing a server sends. The header names no object: a server writes zero.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.131204
1.0.0.132–1.0.0.134205
1.0.0.135207
1.0.0.136–1.0.0.137205
1.0.0.138207
1.0.0.139–1.0.0.140206
1.0.0.141–1.0.0.142208
1.0.0.143208
1.0.0.144–1.0.0.149196
1.0.0.150–3.1.0.0193
FieldTypeWhat it is
syncIdu32Names this batch of changes. Replication says which batches a client takes values from.
unitCountu8How many units follow.
unitscount in unitCount × Replication
Vectors (10)

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

TransientAck

What a client sends to say a batch of changes arrived, naming which batch. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.138

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

BuildsCommand
1.0.0.130–1.0.0.131176
1.0.0.132–1.0.0.134177
1.0.0.135179
1.0.0.136–1.0.0.137177
1.0.0.138179

It is sent for a batch whose values the client dropped as well as for one it took.

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

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

In 1.0.0.139–1.0.0.143

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

A client sends it for a batch it took and for one whose values it dropped, but sends none for a batch where any entry names a unit it does not hold.

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

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

BuildsCommand
1.0.0.144–1.0.0.149168
1.0.0.150–3.1.0.0165

It is sent for a batch whose values the client dropped as well as for one it took.

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

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

GoldGained

What a server sends to show a unit gaining gold. The header names the unit whose death earned the gold, as source does.

Definition.

In 1.0.0.130–1.0.0.143

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

A client only floats the amount as text: the gold the unit holds does not change. Where unit is the client’s own champion, amount is above 0.5 and source names a unit the client holds other than its own player, the text floats over source; otherwise it floats over unit, as a gain where amount is above zero and a loss where it is below.

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

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

It grants the unit gold.

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

ExperienceGained

What a server sends to say a unit gained experience. The header names no object: a server writes zero.

Definition.

In 1.0.0.130–1.0.0.143

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

A client floats the amount over the champion, except while watching a match. Where the unit is the client’s own champion below its highest level, it also shows the amount on its experience display.

FieldTypeWhat it is
unitu32The unit granted it. A server names a champion: a client fails for any other unit.
amountf32How much.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

Where the unit is the client’s own champion below its highest level, a client also shows the amount on its experience display.

FieldTypeWhat it is
unitu32The unit granted it.
amountf32How much.

GoldRedirect

What a server sends to send the gold a unit earns to another. The header names the unit.

Definition.

In every range of this book

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

FieldTypeWhat it is
targetu32The unit that receives the gold.

LevelUp

What a server sends when a unit gains a level. The header names the unit this is about. On its own, with no replication behind it, it is enough for a client to show the new level on the champion’s portrait and offer the unspent points.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.13169
1.0.0.132–1.0.0.14370
1.0.0.144–1.0.0.14965
1.0.0.150–3.1.0.062

A client applies it only to a champion, and ignores it for any other unit.

FieldTypeWhat it is
levelu8The level now reached.
pointsToSpendu8How many spell points are left unspent.
Vectors (3)

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

ChampionStats

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

Definition.

In 1.0.0.130–1.0.0.137

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

BuildsCommand
1.0.0.130–1.0.0.13175
1.0.0.132–1.0.0.13776
FieldTypeWhat it is
sizeu32The whole length of what follows the header, these four bytes included, as a whole 32-bit count. A mismatch has no effect, and does not limit what a client takes.
valuesbytes, sized by size minus 4One value per tally of the match’s mode, the tallies in ascending byte order of their names. An int takes 4 bytes, a float 4, a bool 1, a 64-bit int 8, and text a 16-bit length below 255 then that many bytes. Bytes left over have no effect. A nonzero count of champion kills marks first blood taken.
Vectors (2)

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

In 1.0.0.138–1.0.0.143

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

FieldTypeWhat it is
sizeu32The whole length of what follows the header, these four bytes included, as a whole 32-bit count. A mismatch has no effect, and does not limit what a client takes.
valuesbytes, sized by size minus 4One value per tally of the match’s mode, the tallies in ascending byte order of their names. An int takes 4 bytes, a float 4, a bool 1, a 64-bit int 8, and text a 16-bit length below 255 then that many bytes. Bytes left over have no effect. A count of champion kills above zero marks first blood taken.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

BuildsCommand
1.0.0.144–1.0.0.14971
1.0.0.150–3.1.0.068
FieldTypeWhat it is
sizeu32The whole length of what follows the header, these four bytes included, as a whole 32-bit count. A mismatch has no effect, and does not limit what a client takes.
valuesbytes, sized by size minus 4One value per tally of the match’s mode, the tallies in ascending byte order of their names. An int takes 4 bytes, a float 4, a bool 1, a 64-bit int 8, and text a 16-bit length below 255 then that many bytes. Bytes left over have no effect. A nonzero count of champion kills marks first blood taken.
Vectors (2)

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

ShieldAdded

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

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.131105
1.0.0.132–1.0.0.137106
1.0.0.138–1.0.0.143108
1.0.0.144–1.0.0.149102
1.0.0.150–3.1.0.099

Both physical and magical set adds amount to the shield that takes either kind of damage; one of them, to that kind’s shield; neither, to nothing. A negative amount lowers it, and any shield left below 0.001 becomes zero. noFade clear does not restart a fade already stopped.

FieldTypeWhat it is
flags1-byte bitsWhich shield.
flags.physicalbit 0Set where the shield turns aside physical damage.
flags.magicalbit 1Set where it turns aside magical damage. Both set means either.
flags.noFadebit 2Set where the shield does not fade.
flags.unusedbit 3 to 7Unused; a server writes zero.
amountf32How much is added.
Vectors (5)

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

HealthBar

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

Definition.

In 1.0.0.130–1.0.0.143

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

BuildsCommand
1.0.0.130–1.0.0.131215
1.0.0.132–1.0.0.134216
1.0.0.135218
1.0.0.136–1.0.0.137216
1.0.0.138218
1.0.0.139–1.0.0.140217
1.0.0.141–1.0.0.143219
FieldTypeWhat it is
showu8Set to show the bar, clear to hide it. Zero hides it, any other value shows it.
Vectors (7)

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

In 1.0.0.144–3.1.0.0

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

BuildsCommand
1.0.0.144–1.0.0.149206
1.0.0.150–3.1.0.0203
FieldTypePresent whenWhat it is
flags1-byte bitsWhat changes.
flags.showbit 0Set to show the bar, clear to hide it.
flags.changeTypebit 1Set where the bar’s type changes; the type and side below apply only then.
flags.unusedbit 2 to 7Unused; a server writes zero.
barTypeu8flags.changeType setWhich sort of bar, applying only where changeType is set and side is the client’s player’s side or zero: 1 a unit’s, 2 a champion’s; any other value only makes sure the unit has a bar.
sidei32flags.changeType setThe side that sees the change, or 0 for every side.
Vectors (4)

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

ScoreAdded

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

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.131226
1.0.0.132–1.0.0.134227
1.0.0.135229
1.0.0.136–1.0.0.137227
1.0.0.138229
1.0.0.139–1.0.0.140228
1.0.0.141–1.0.0.143230
1.0.0.144–1.0.0.149217
1.0.0.150–3.1.0.0214

A client ignores the message where player names no champion it holds.

FieldTypeWhat it is
championu32The champion whose score it is.
categoryu8Which part of the score. Values: 0 offense, 1 defense, 2 combat, 3 objective.
eventu8What earned it.
flags1-byte bitsHow it is shown.
flags.calloutbit 0Set where the client announces it.
flags.unusedbit 1 to 7Unused; a server writes zero.
pointsf32How much is added.
Vectors (9)

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

StatisticIncremented

What a server sends to add one to a champion’s count of a deed, as counted for the end of a match. Nothing shows at once. A client ignores it where the id names no champion. The header carries zero.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.131227
1.0.0.132–1.0.0.134228
1.0.0.135230
1.0.0.136–1.0.0.137228
1.0.0.138230
1.0.0.139–1.0.0.140229
1.0.0.141–1.0.0.143231
1.0.0.144–1.0.0.149218
1.0.0.150–3.1.0.0215
FieldTypeWhat it is
championu32The champion.
statisticu8Which count. A value past those named has no defined effect. Values: 0 pointCaptured, 1 pointNeutralised, 2 killWhileAttackingPoint, 3 teamObjective, 4 defendedPointNeutralised, 5 killWhileDefendingPoint, 6 timeDefendingPoint, 7 lastStand, 8 captureAssist, 9 neutraliseAssist.
Vectors (9)

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

GoldEarned

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

Definition.

In 1.0.0.130–1.0.0.131

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

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

one-on-1-0-0-131

In 1.0.0.132–1.0.0.138

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

BuildsCommand
1.0.0.132–1.0.0.134243
1.0.0.135240
1.0.0.136–1.0.0.137238
1.0.0.138240

A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold. 0.95 is what a champion earns for each step it stands still.
Vectors (4)

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

In 1.0.0.139–1.0.0.140

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

A client adds the amount to the champion’s tally of gold earned; the gold the champion holds does not change. It applies the message whether or not it is watching a match.

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

one-on-1-0-0-140

In 1.0.0.141–3.1.0.0

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

BuildsCommand
1.0.0.141–1.0.0.143241
1.0.0.144–1.0.0.149228
1.0.0.150–3.1.0.0225

A server sends it to clients watching a match. It credits the champion with the gold.

FieldTypeWhat it is
owneru32The champion credited.
amountf32How much gold. 0.95 is what a champion earns for each step it stands still.
Vectors (3)

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

ResourceColours

What a server sends to give a unit’s resource bar colours of its own, or to take them back. The header names the unit.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.131153
1.0.0.132–1.0.0.134154
1.0.0.135156
1.0.0.136–1.0.0.137154
1.0.0.138156
1.0.0.139–1.0.0.143155
1.0.0.144–1.0.0.149147
1.0.0.150–3.1.0.0144
FieldTypeWhat it is
unusedu32Unused; its bytes carry no meaning. The header names the unit.
onu8Nonzero gives the bar the two colours below; zero takes them back, and a client reads neither.
fillu32The colour the bar fills with up to the unit’s current amount, with its alpha in the top byte, which the bar’s own fading scales.
lostu32The colour of what the unit has just lost, drawn from its current amount up to a mark that falls back toward it over time; alpha as above.
Vectors (8)

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

StatTick

What a server sends to advance every unit’s stats by a span of time. The header carries zero.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.14342
1.0.0.144–3.1.0.039

A client takes it and changes nothing it shows.

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

one-on-1-0-0-143