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.

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.