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

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.

In 0.9.25.24–1.0.0.24

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.

In 0.8.13.26–0.9.22.13

Result 0 of Damage is a notice a client shows for only one in every thirty it receives, and result 5 a miss, shown for its player’s own unit. Results 3, 4 and any above 5 show a figure, and for them a client lowers the hurt unit’s health by the amount itself, without waiting for replication.

In 0.9.25.24–1.0.0.24

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.

In 0.9.25.24–1.0.0.24

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.

TargetUnit draws a unit’s targeting beam at what it is attacking.

Only a turret takes TargetUnit; every other unit ignores it.

In 0.9.25.24–1.0.0.24

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.

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.

Nothing in UnitDied leaves the unit standing: every unit it puts down dies.

In 0.9.25.24–0.9.25.35

A server MUST NOT send BuildingDied for the nexus: a client removes the nexus some 4 seconds later while still using it, and fails.

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.

A client reads nothing from Revived or Respawned: each brings the champion back where it stands.

Using a unit

A client sends UseObject as its player right-clicks a unit that can be used.

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 0.8.13.26–0.9.22.13

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

one-on-0-8-13-26

In 0.9.22.14–1.0.0.24

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.

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 0.8.13.26–0.9.22.13

Command 58 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. Zero for a swing that throws none.
fromXf32Where the swinging unit stands, along one ground axis, in world units. A client stops the unit’s movement and places it at this point, height included, even where it does not know target and no swing follows.
fromYf32Where it stands, in height, in world units.
fromZf32Where it stands, along the other, in world units.
Vectors (1)

one-on-0-8-13-26

In 0.9.22.14–1.0.0.24

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

one-on-0-9-22-14

StopAttack

What a server sends to break off an attack a unit is making. The header names the unit acting.

Definition.

In 0.8.13.26–0.9.22.13

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

Whatever the flags, a client then clears the unit’s attack.

FieldTypeWhat it is
keepAnimatingu8Nonzero: set to let the attack’s animation play on after the stop.
forceCastu8Nonzero: set to make the attack land first where it has not already.
Vectors (1)

one-on-0-8-13-26

In 0.9.22.14–1.0.0.24

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.

Damage

What a server sends to say one unit hurt another. The header names the unit hurt, as target does.

Definition.

In 0.8.13.26–0.9.22.13

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

For results 3, 4 and any above 5, a client takes amount off the target’s health, held at its maximum, but leaves the health as it was where the new value would be zero or less. Where the header names the client’s own champion and the target is a champion, an amount above zero can bring up the low-health screen effect.

FieldTypeWhat it is
resultu8How the damage landed, and so what a client shows over the unit hurt, as one whole byte. 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. Values: 0 invulnerable, 1 silent, 2 dodge, 3 critical, 4 normal, 5 miss.
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 (1)

invulnerable-on-0-8-13-26

In 0.9.22.14–0.9.25.23

Command 23 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; any value above 5 shows as 4.
how.soundbit 7Set to play a sound made from the source’s and the target’s sound names, at the target. A client plays it only where it holds both and sees the target.
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 (1)

one-on-0-9-25-21

In 0.9.25.24–1.0.0.24

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.

TargetUnit

What a server sends to say what a unit is attacking, whatever the unit attacked is. A client takes down whatever it was drawing for that unit’s last target and draws for the new one where the target and the unit’s own settings allow. The header names the unit acting.

Definition.

In every range of this book

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

BuildsCommand
0.8.13.26–0.9.22.1373
0.9.22.14–1.0.0.2469

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

one-on-0-8-13-26

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 0.9.22.14–1.0.0.24

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.

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 0.8.13.26–0.9.22.13

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

A client does nothing more for a unit already dead, or where killer is zero. Otherwise, whether or not it knows killer, it puts the unit down for stayDown: dead, with no health, its movement, cast and attack stopped. For a minion whose killer, or the killer’s owner, is the player’s own champion, it then shows a kill notice.

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-0-8-13-26

In 0.9.22.14–1.0.0.24

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.

BuildingDied

What a server sends when a building is destroyed. The header names the unit this is about.

Definition.

In 0.8.13.26–0.9.22.13

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

A server sends it for no nexus. A client takes a building it names away four seconds later, turrets and the nexus included, and a nexus it takes away leaves the client failing at its next game event. An inhibitor stays: a client plays its destruction and raises a game event carrying attacker. A nexus falls with GameEnded.

FieldTypeWhat it is
attackeru32The unit that destroyed it. Only an inhibitor reads it; a client reads nothing here for any other building.
Vectors (1)

one-on-0-8-13-26

In 0.9.22.14–0.9.25.35

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

A server sends it for no nexus. A client takes a building it names away four seconds later, and a nexus it takes away leaves the client failing at its next game event. An inhibitor stays: a client plays its destruction and raises a game event carrying attacker. A nexus falls with GameEnded.

FieldTypeWhat it is
attackeru32The unit that destroyed it. Only an inhibitor reads it; a client reads nothing here for any other building.
Vectors (1)

one-on-0-9-25-24

In 0.9.25.36–1.0.0.24

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

FieldTypeWhat it is
attackeru32The unit that destroyed it. A client reads nothing here.

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 0.9.25.36–1.0.0.24

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

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.

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 0.9.22.14–0.9.22.15

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 62, 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.
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 = 20What 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[].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-0-9-22-14

In 0.9.22.16–0.9.25.20

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 70, 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[].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-0-9-22-16

In 0.9.25.21–0.9.25.23

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

one-on-0-9-25-21

In 0.9.25.24–1.0.0.24

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

one-on-0-9-25-24

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 0.8.13.26–0.9.22.13

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

FieldTypeWhat it is
stateu32What state the inhibitor takes. Any other value becomes the inhibitor’s state and changes nothing shown; a later 0 or 1 still applies. A state equal to the one held changes nothing but the duration. Values: 0 down, 1 restored.
durationu32How long the state lasts, in seconds. A client stores it whatever state the message holds.
Vectors (1)

down-on-0-8-13-26

In 0.9.22.14–1.0.0.24

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

down-on-0-9-22-14

Revived

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

Definition.

In 0.8.13.26–0.9.22.13

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

A client brings the champion back as Respawned does, at the nearest open ground to where it already stands, first ending its death where it is still dead.

FieldTypeWhat it is
atXf32A client reads nothing here.
atYf32A client reads nothing here.
atZf32A client reads nothing here.
Vectors (1)

one-on-0-8-13-26

In 0.9.22.14–1.0.0.24

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

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.

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 0.8.13.26–0.9.22.13

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

A client returns the champion to the nearest open ground to where it already stands.

FieldTypeWhat it is
xf32A client reads nothing here.
yf32A client reads nothing here.
zf32A client reads nothing here.
Vectors (1)

one-on-0-8-13-26

In 0.9.22.14–1.0.0.24

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

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.