Combat
Attacks, damage, death and coming back. Spells are in Spells.
Attacking
A server says a unit is swinging at another with Attack, or with
AttackFrom, which also says where the swinging unit stands. StopAttack
breaks an attack off. AttackSpeedBounds puts a ceiling or a floor on how fast a
unit attacks.
After StopAttack, a client clears the unit’s attack whatever the message’s
flags ask besides.
In 0.9.25.24–1.0.0.24
A client moves the attacker to the place
AttackFromgives only where it stands more than 400 units from it.
A client asks its champion to attack with a MoveOrder naming the unit (see
Movement). What the player then sees is what a server sends: the
champion walking into range along a WaypointGroup, a swing for each Attack,
and what each Damage shows.
How long a swing takes comes from the champion’s data and its attack speed.
A client ignores an Attack whose target it does not hold.
In 0.8.13.26–0.9.22.13
Result 0 of
Damageis a notice a client shows for only one in every thirty it receives, and result 5 a miss, shown for its player’s own unit. Results 3, 4 and any above 5 show a figure, and for them a client lowers the hurt unit’s health by the amount itself, without waiting for replication.
In 0.9.25.24–1.0.0.24
Damageshows a figure for the results that carry one, normal and critical; zero is the result that shows the unit as invulnerable, not a plain hit.
In 0.9.25.24–1.0.0.24
Of the other results of
Damage, 1 shows nothing, 2 a dodge and 5 a miss; 3 is critical, and 4 and any above 5 are normal.
TargetUnit draws a unit’s targeting beam at what it is attacking.
Only a turret takes TargetUnit; every other unit ignores it.
In 0.9.25.24–1.0.0.24
TargetHeldChampionmarks 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 fromTargetUnit.
HoverTarget and HoverIndicator set and show the unit a unit’s hover
indicator points at, and AttackIndicators shows or hides a unit’s attack
indicators.
A champion’s clicks can be made to attack the ground with GroundAttackMode.
Damage
A server reports damage with Damage.
A client shows nothing for Damage unless it holds the unit hurt; it need not
hold the unit dealing it.
Death
A unit’s death is UnitDied, a champion’s ChampionDied, a building’s
BuildingDied, and an inhibitor’s InhibitorDied. ForceDeath puts a unit
into its death.
A client ignores UnitDied or ChampionDied naming a unit already dead, and
puts a unit down only where a killer is named.
A killer a client does not hold still puts the unit down.
Nothing in UnitDied leaves the unit standing: every unit it puts down dies.
In 0.9.25.24–0.9.25.35
A server MUST NOT send
BuildingDiedfor the nexus: a client removes the nexus some 4 seconds later while still using it, and fails.
How long a champion stays down is DeathTimer. Whether a client draws the world
without colour while its champion is down is GreyscaleWhenDead. What led to a
death is DeathHistory, which a client lays out for its player. An inhibitor’s
state, and how long it lasts, is InhibitorState.
Coming back
Revived puts a champion back on the field.
A client reads nothing from Revived or Respawned: each brings the champion
back where it stands.
Using a unit
A client sends UseObject as its player right-clicks a unit that can be used.
Messages
Each message of this system in this book, with each layout it has across the book’s patches and every note its definition carries. A layout is the message’s body, after the header its channel’s family puts in front (see Messages).
Attack
What a server sends to say a unit is swinging at another. The header names the unit acting.
In 0.8.13.26–0.9.22.13
Command 57 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit swung at. A client throws the swing at it. |
| timing | f32 | A 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. |
| missile | u32 | The name the missile this swing throws will answer to. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 53 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit swung at. A client throws the swing at it, and drops the whole message where it does not know this unit. |
| timing | f32 | A 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. |
| missile | u32 | The name the missile this swing throws will answer to. |
| slot | u8 | Which of the unit’s attacks this is. |
AttackFrom
What a server sends to say a unit is swinging at another, carrying where the swinging unit stands as well as what it swings at. The header names the unit acting.
In 0.8.13.26–0.9.22.13
Command 58 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit swung at. A client throws the swing at it. |
| timing | f32 | A 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. |
| missile | u32 | The name the missile this swing throws will answer to. Zero for a swing that throws none. |
| fromX | f32 | Where the swinging unit stands, along one ground axis, in world units. A client stops the unit’s movement and places it at this point, height included, even where it does not know target and no swing follows. |
| fromY | f32 | Where it stands, in height, in world units. |
| fromZ | f32 | Where it stands, along the other, in world units. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 54 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit swung at. A client throws the swing at it. |
| timing | f32 | A 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. |
| missile | u32 | The name the missile this swing throws will answer to. |
| slot | u8 | Which of the unit’s attacks this is. |
| fromX | f32 | Where the swinging unit stands, along one ground axis, in world units. Where the unit stands more than 400 units from this point, measured along the ground alone, a client first moves it there; nearer, the point has no effect. |
| fromY | f32 | Where it stands, in height, in world units. |
| fromZ | f32 | Where it stands, along the other, in world units. |
Vectors (1)
StopAttack
What a server sends to break off an attack a unit is making. The header names the unit acting.
In 0.8.13.26–0.9.22.13
Command 48 on events, sent by the server, reliable.
Whatever the flags, a client then clears the unit’s attack.
| Field | Type | What it is |
|---|---|---|
| keepAnimating | u8 | Nonzero: set to let the attack’s animation play on after the stop. |
| forceCast | u8 | Nonzero: set to make the attack land first where it has not already. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 48 on events, sent by the server, reliable.
Whatever the flags, a client then clears the unit’s attack.
| Field | Type | What it is |
|---|---|---|
| how | 1-byte bits | |
| how.keepAnimating | bit 0 | Set to let the attack’s animation play on after the stop. It applies only where forceStop is clear. |
| how.forceCast | bit 1 | Set to make the attack land first where it has not already. |
| how.forceStop | bit 2 | Set to stop the current cast outright; clear, a client stops the attack the ordinary way. |
| how.summonerSpell | bit 3 | Picks which spells the stop applies to: set, the summoner spells; clear, the unit’s own. A unit with no summoner spells, such as any unit that is not a champion, stops nothing when this is set. |
| how.destroyMissile | bit 4 | Set to destroy the attack’s missile, where it has one. It applies only where forceStop is set and a cast is under way. |
| how.unused | bit 5 to 7 | Unused; a server writes zero. |
Damage
What a server sends to say one unit hurt another. The header names the unit hurt, as target does.
In 0.8.13.26–0.9.22.13
Command 23 on events, sent by the server, reliable.
For results 3, 4 and any above 5, a client takes amount off the target’s health, held at its maximum, but leaves the health as it was where the new value would be zero or less. Where the header names the client’s own champion and the target is a champion, an amount above zero can bring up the low-health screen effect.
| Field | Type | What it is |
|---|---|---|
| result | u8 | How the damage landed, and so what a client shows over the unit hurt, as one whole byte. 4 shows the amount, 3 shows it as a critical strike, and 2 shows the word for a dodge in place of an amount; any value above 5 shows as 4. Values: 0 invulnerable, 1 silent, 2 dodge, 3 critical, 4 normal, 5 miss. |
| target | u32 | The unit hurt. |
| source | u32 | The unit dealing it. A client shows nothing, notices included, unless it holds target and target can be attacked; it does not need to hold source, and a champion source has the amount added to its damage dealt. |
| amount | f32 | How much. |
Vectors (1)
In 0.9.22.14–0.9.25.23
Command 23 on events, sent by the server, reliable.
A client shows the figure and nothing more: the health it shows for the unit is what replication carries, and this message leaves it as it was.
| Field | Type | What it is |
|---|---|---|
| how | 1-byte bits | |
| how.result | bit 0 to 6 | How the damage landed, and so what a client shows over the unit hurt. 4 shows the amount, 3 shows it as a critical strike, and 2 shows the word for a dodge in place of an amount; any value above 5 shows as 4. |
| how.sound | bit 7 | Set to play a sound made from the source’s and the target’s sound names, at the target. A client plays it only where it holds both and sees the target. |
| target | u32 | The unit hurt. |
| source | u32 | The unit dealing it. A client shows nothing, notices included, unless it holds target and target can be attacked; it does not need to hold source, and a champion source has the amount added to its damage dealt. |
| amount | f32 | How much. |
Vectors (1)
In 0.9.25.24–1.0.0.24
Command 23 on events, sent by the server, reliable.
A client shows the figure, but the health it shows for the unit is what replication carries, and this message leaves it as it was.
| Field | Type | What it is |
|---|---|---|
| how | 1-byte bits | |
| how.result | bit 0 to 6 | How 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.unused | bit 7 | Unused; a server writes zero. |
| target | u32 | The unit hurt. |
| source | u32 | The unit dealing it. A client shows nothing, notices included, unless it holds target and target can be attacked; it does not need to hold source, and a champion source has the amount added to its damage dealt where result is 3, 4 or above 5. |
| amount | f32 | How 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.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 0.8.13.26–0.9.22.13 | 73 |
| 0.9.22.14–1.0.0.24 | 69 |
Only a turret takes it, drawing its beam to target.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit being attacked, or zero where it is attacking nothing. |
Vectors (1)
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.
In 0.9.22.14–1.0.0.24
Command 70 on events, sent by the server, reliable.
A client marks the unit where target is its own champion, drawing an indicator on the unit’s health bar unless the unit’s data turns it off; any other target clears the mark. A client fails on a nonzero target where it has no player of its own.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The champion being attacked. |
UnitDied
What a server sends to say a unit died, to everyone who can see it. The header names the unit this is about.
In 0.8.13.26–0.9.22.13
Command 34 on events, sent by the server, reliable.
A client does nothing more for a unit already dead, or where killer is zero. Otherwise, whether or not it knows killer, it puts the unit down for stayDown: dead, with no health, its movement, cast and attack stopped. For a minion whose killer, or the killer’s owner, is the player’s own champion, it then shows a kill notice.
| Field | Type | What it is |
|---|---|---|
| killer | u32 | The unit credited with the death. |
| damageType | u8 | Unused; a server writes zero. |
| damageSource | u8 | Unused; a server writes zero. |
| stayDown | f32 | How long the unit stays down, in seconds. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 34 on events, sent by the server, reliable.
A client does nothing for a unit already dead. Otherwise it stops the unit’s cast and attack and, where killer is nonzero, puts the unit down for stayDown, whether or not it knows killer, and shows what that kind of unit shows for a kill, for a minion only where killer is on another side.
| Field | Type | What it is |
|---|---|---|
| killer | u32 | The unit credited with the death. |
| damageType | u8 | Unused; a server writes zero. |
| damageSource | u8 | Unused; a server writes zero. |
| stayDown | f32 | How long the unit stays down, in seconds. |
BuildingDied
What a server sends when a building is destroyed. The header names the unit this is about.
In 0.8.13.26–0.9.22.13
Command 76 on events, sent by the server, reliable.
A server sends it for no nexus. A client takes a building it names away four seconds later, turrets and the nexus included, and a nexus it takes away leaves the client failing at its next game event. An inhibitor stays: a client plays its destruction and raises a game event carrying attacker. A nexus falls with GameEnded.
| Field | Type | What it is |
|---|---|---|
| attacker | u32 | The unit that destroyed it. Only an inhibitor reads it; a client reads nothing here for any other building. |
Vectors (1)
In 0.9.22.14–0.9.25.35
Command 73 on events, sent by the server, reliable.
A server sends it for no nexus. A client takes a building it names away four seconds later, and a nexus it takes away leaves the client failing at its next game event. An inhibitor stays: a client plays its destruction and raises a game event carrying attacker. A nexus falls with GameEnded.
| Field | Type | What it is |
|---|---|---|
| attacker | u32 | The unit that destroyed it. Only an inhibitor reads it; a client reads nothing here for any other building. |
Vectors (1)
In 0.9.25.36–1.0.0.24
Command 73 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| attacker | u32 | The unit that destroyed it. A client reads nothing here. |
GreyscaleWhenDead
What a server sends to say whether a client draws the world without colour while its champion is down. The header names a champion: that of the player it is sent to.
In 0.9.25.36–1.0.0.24
Command 170 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| state | 1-byte bits | |
| state.enabled | bit 0 | Set 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.unused | bit 1 to 7 | Unused; a server writes zero. |
DeathHistory
What a server sends to say what led to a death, so the client can lay it out. The header names the unit this is about.
In 0.9.22.14–0.9.22.15
Command 112 on events, sent by the server, reliable.
A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.
| Field | Type | Present when | What it is |
|---|---|---|---|
| killer | u32 | The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit. | |
| sourceType | u32 | What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer. | |
| blobLength | u32 | How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more. | |
| entryCount | u32 | How many entries follow. Read as signed: from 2147483648 up it parses no entries. | |
| entries | count in entryCount × record | What happened to the unit before it died, packed one after another. | |
| entries[].time | f32 | When it happened, in match seconds. | |
| entries[].count | u16 | How many times. | |
| entries[].event | u8 | Which event, from 0 to 62, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought. | |
| entries[].source | u32 | The unit that did it. | |
| entries[].target | u32 | The unit it was done to. A client fails where it holds the source but not this unit. | |
| entries[].damage | record | event = 10 or 11 | How much harm, and from what. |
| entries[].damage.physical | f32 | Physical damage. | |
| entries[].damage.magical | f32 | Magical damage. | |
| entries[].damage.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].damage.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].damage.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].damage.parentCaster | u32 | Unused; a client reads nothing here. | |
| entries[].damage.parent | 4-byte bits | Where the spell or effect came from. | |
| entries[].damage.parent.source | bit 0 to 3 | What sort of source the parent spell or effect is, numbered as sourceKind is. | |
| entries[].damage.parent.side | bit 4 to 7 | What it means is not recorded for this range; a server writes zero. | |
| entries[].damage.parent.category | bit 8 to 11 | A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too. | |
| entries[].damage.parent.spellLevel | bit 12 to 14 | The rank of the spell, as shown. | |
| entries[].damage.parent.unused | bit 15 to 31 | Unused; a server writes zero. | |
| entries[].spent | u32 | event = 18 | How much gold, as shown. |
| entries[].value | u32 | event = 20 | What it carries is not recorded for this range; a client does not show it. |
| entries[].critical | f32 | event = 21 | The critical strike’s damage, as shown. |
| entries[].spree | u32 | event = 39 | How many kills in a row, as shown. |
| entries[].earned | record | event = 19 | Gold earned. |
| entries[].earned.gold | f32 | How much gold, as shown. | |
| entries[].heal | record | event = 36 or 37 | How much health, and from what. |
| entries[].heal.amount | f32 | How much health, as shown. | |
| entries[].heal.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].heal.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].heal.spellLevel | u32 | The level of the spell it came from. | |
| entries[].heal.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].heal.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].heal.unused | u32 | Unused; a client reads nothing here. | |
| entries[].heal.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].effect | record | event = 38 | The effect, and where it came from. |
| entries[].effect.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].effect.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].effect.spellLevel | u32 | The level of the spell it came from. | |
| entries[].effect.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].effect.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].effect.unused | u32 | Unused; a client reads nothing here. | |
| entries[].effect.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].assist | record | event = 53 | What one unit did toward a death. |
| entries[].assist.lastHit | f32 | When it last dealt damage, in match seconds. | |
| entries[].assist.physical | f32 | Physical damage it dealt. | |
| entries[].assist.magical | f32 | Magical damage it dealt. | |
| entries[].assist.share | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].assist.gold | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].kill | record | event = 0 | Nothing a client shows; the unit before it names the killer. |
| entries[].kill.unused | f32 | A client reads nothing here, and writes zero where it raises the event itself. A server writes zero. |
Vectors (1)
In 0.9.22.16–0.9.25.20
Command 112 on events, sent by the server, reliable.
A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.
| Field | Type | Present when | What it is |
|---|---|---|---|
| killer | u32 | The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit. | |
| sourceType | u32 | What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer. | |
| blobLength | u32 | How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more. | |
| entryCount | u32 | How many entries follow. Read as signed: from 2147483648 up it parses no entries. | |
| entries | count in entryCount × record | What happened to the unit before it died, packed one after another. | |
| entries[].time | f32 | When it happened, in match seconds. | |
| entries[].count | u16 | How many times. | |
| entries[].event | u8 | Which event, from 0 to 70, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo. | |
| entries[].source | u32 | The unit that did it. | |
| entries[].target | u32 | The unit it was done to. A client fails where it holds the source but not this unit. | |
| entries[].damage | record | event = 10 or 11 | How much harm, and from what. |
| entries[].damage.physical | f32 | Physical damage. | |
| entries[].damage.magical | f32 | Magical damage. | |
| entries[].damage.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].damage.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].damage.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].damage.parentCaster | u32 | Unused; a client reads nothing here. | |
| entries[].damage.parent | 4-byte bits | Where the spell or effect came from. | |
| entries[].damage.parent.source | bit 0 to 3 | What sort of source the parent spell or effect is, numbered as sourceKind is. | |
| entries[].damage.parent.side | bit 4 to 7 | What it means is not recorded for this range; a server writes zero. | |
| entries[].damage.parent.category | bit 8 to 11 | A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too. | |
| entries[].damage.parent.spellLevel | bit 12 to 14 | The rank of the spell, as shown. | |
| entries[].damage.parent.unused | bit 15 to 31 | Unused; a server writes zero. | |
| entries[].spent | u32 | event = 18 | How much gold, as shown. |
| entries[].value | u32 | event = 20 or 62 | What it carries is not recorded for this range; a client does not show it. |
| entries[].critical | f32 | event = 21 | The critical strike’s damage, as shown. |
| entries[].spree | u32 | event = 39 | How many kills in a row, as shown. |
| entries[].earned | record | event = 19 | Gold earned. |
| entries[].earned.gold | f32 | How much gold, as shown. | |
| entries[].heal | record | event = 36 or 37 | How much health, and from what. |
| entries[].heal.amount | f32 | How much health, as shown. | |
| entries[].heal.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].heal.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].heal.spellLevel | u32 | The level of the spell it came from. | |
| entries[].heal.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].heal.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].heal.unused | u32 | Unused; a client reads nothing here. | |
| entries[].heal.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].effect | record | event = 38 | The effect, and where it came from. |
| entries[].effect.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].effect.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].effect.spellLevel | u32 | The level of the spell it came from. | |
| entries[].effect.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].effect.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].effect.unused | u32 | Unused; a client reads nothing here. | |
| entries[].effect.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].assist | record | event = 53 | What one unit did toward a death. |
| entries[].assist.lastHit | f32 | When it last dealt damage, in match seconds. | |
| entries[].assist.physical | f32 | Physical damage it dealt. | |
| entries[].assist.magical | f32 | Magical damage it dealt. | |
| entries[].assist.share | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].assist.gold | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].kill | record | event = 0 | Nothing a client shows; the unit before it names the killer. |
| entries[].kill.unused | f32 | A client reads nothing here, and writes zero where it raises the event itself. A server writes zero. |
Vectors (1)
In 0.9.25.21–0.9.25.23
Command 112 on events, sent by the server, reliable.
A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.
| Field | Type | Present when | What it is |
|---|---|---|---|
| killer | u32 | The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit. | |
| sourceType | u32 | What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer. | |
| blobLength | u32 | How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more. | |
| entryCount | u32 | How many entries follow. Read as signed: from 2147483648 up it parses no entries. | |
| entries | count in entryCount × record | What happened to the unit before it died, packed one after another. | |
| entries[].time | f32 | When it happened, in match seconds. | |
| entries[].count | u16 | How many times. | |
| entries[].event | u8 | Which event, from 0 to 70, and so which fields follow. Values: 0 died, 2 championDied, 3 championKill, 4 doubleKill, 10 damageTaken, 11 damageDealt, 18 goldSpent, 19 goldEarned, 20 consumableBought, 21 criticalStrike, 24 inhibitorKilled, 25 inhibitorDied, 26 inhibitorRespawningSoon, 28 turretKilled, 29 turretDied, 30 minionKilled, 31 minionDenied, 32 monsterKilled, 33 largeMonsterKilled, 34 nexusKilled, 35 nexusDied, 36 heal, 37 healCast, 38 buff, 39 killingSpree, 46 killDuringSpree, 53 deathAssist, 54 playerQuit, 55 playerLeft, 56 playerReconnected, 62 itemBought, 66 surrenderCountdown, 71 minionsSpawned, 72 welcome, 73 startNoticeTwo. | |
| entries[].source | u32 | The unit that did it. | |
| entries[].target | u32 | The unit it was done to. A client fails where it holds the source but not this unit. | |
| entries[].damage | record | event = 10 or 11 | How much harm, and from what. |
| entries[].damage.physical | f32 | Physical damage. | |
| entries[].damage.magical | f32 | Magical damage. | |
| entries[].damage.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].damage.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].damage.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].damage.parentCaster | u32 | Unused; a client reads nothing here. | |
| entries[].damage.parent | 4-byte bits | Where the spell or effect came from. | |
| entries[].damage.parent.source | bit 0 to 3 | What sort of source the parent spell or effect is, numbered as sourceKind is. | |
| entries[].damage.parent.side | bit 4 to 7 | What it means is not recorded for this range; a server writes zero. | |
| entries[].damage.parent.category | bit 8 to 11 | A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too. | |
| entries[].damage.parent.spellLevel | bit 12 to 14 | The rank of the spell, as shown. | |
| entries[].damage.parent.unused | bit 15 to 31 | Unused; a server writes zero. | |
| entries[].spent | u32 | event = 18 | How much gold, as shown. |
| entries[].value | u32 | event = 20 or 62 | What it carries is not recorded for this range; a client does not show it. |
| entries[].critical | f32 | event = 21 | The critical strike’s damage, as shown. |
| entries[].spree | u32 | event = 39 | How many kills in a row, as shown. |
| entries[].earned | record | event = 19 | Gold earned. |
| entries[].earned.gold | f32 | How much gold, as shown. | |
| entries[].heal | record | event = 36 or 37 | How much health, and from what. |
| entries[].heal.amount | f32 | How much health, as shown. | |
| entries[].heal.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].heal.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].heal.spellLevel | u32 | The level of the spell it came from. | |
| entries[].heal.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].heal.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].heal.unused | u32 | Unused; a client reads nothing here. | |
| entries[].heal.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].effect | record | event = 38 | The effect, and where it came from. |
| entries[].effect.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].effect.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].effect.spellLevel | u32 | The level of the spell it came from. | |
| entries[].effect.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].effect.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].effect.unused | u32 | Unused; a client reads nothing here. | |
| entries[].effect.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].assist | record | event = 53 | What one unit did toward a death. |
| entries[].assist.lastHit | f32 | When it last dealt damage, in match seconds. | |
| entries[].assist.physical | f32 | Physical damage it dealt. | |
| entries[].assist.magical | f32 | Magical damage it dealt. | |
| entries[].assist.share | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].assist.gold | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].assist.credited | u32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].kill | record | event = 0 | Nothing a client shows; the unit before it names the killer. |
| entries[].kill.unused | f32 | A client reads nothing here, and writes zero where it raises the event itself. A server writes zero. |
Vectors (1)
In 0.9.25.24–1.0.0.24
Command 112 on events, sent by the server, reliable.
A client ignores the whole message where killer is zero; a killer it does not hold brings it down. Each entry’s size after source follows from event alone.
| Field | Type | Present when | What it is |
|---|---|---|---|
| killer | u32 | The unit credited with the death. A client ignores the whole message where this is zero, and fails where it does not hold this unit. | |
| sourceType | u32 | What sort of source the killer was. A client keeps only the low 4 bits, signed, and acts on them only where it holds killer. | |
| blobLength | u32 | How many bytes the entries below take together. A client reads exactly that many; zero, or a value above 2147483647, carries no entries. A client reads it as signed: from 2147483648 up it reads nothing more. | |
| entryCount | u32 | How many entries follow. Read as signed: from 2147483648 up it parses no entries. | |
| entries | count in entryCount × record | What happened to the unit before it died, packed one after another. | |
| entries[].time | f32 | When it happened, in match seconds. | |
| entries[].count | u16 | How many times. | |
| entries[].event | u8 | Which 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[].source | u32 | The unit that did it. | |
| entries[].target | u32 | The unit it was done to. A client fails where it holds the source but not this unit. | |
| entries[].damage | record | event = 10 or 11 | How much harm, and from what. |
| entries[].damage.physical | f32 | Physical damage. | |
| entries[].damage.magical | f32 | Magical damage. | |
| entries[].damage.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].damage.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].damage.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].damage.parentCaster | u32 | Unused; a client reads nothing here. | |
| entries[].damage.parent | 4-byte bits | Where the spell or effect came from. | |
| entries[].damage.parent.source | bit 0 to 3 | What sort of source the parent spell or effect is, numbered as sourceKind is. | |
| entries[].damage.parent.side | bit 4 to 7 | What it means is not recorded for this range; a server writes zero. | |
| entries[].damage.parent.category | bit 8 to 11 | A client sums two entries of this sort where this, the source kinds and both spells match, and, where this is zero, the subjects match too. | |
| entries[].damage.parent.spellLevel | bit 12 to 14 | The rank of the spell, as shown. | |
| entries[].damage.parent.unused | bit 15 to 31 | Unused; a server writes zero. | |
| entries[].spent | u32 | event = 18 | How much gold, as shown. |
| entries[].value | u32 | event = 20 or 62 | What it carries is not recorded for this range; a client does not show it. |
| entries[].critical | f32 | event = 21 | The critical strike’s damage, as shown. |
| entries[].spree | u32 | event = 39 | How many kills in a row, as shown. |
| entries[].earned | record | event = 19 | Gold earned. |
| entries[].earned.gold | f32 | How much gold, as shown. | |
| entries[].heal | record | event = 36 or 37 | How much health, and from what. |
| entries[].heal.amount | f32 | How much health, as shown. | |
| entries[].heal.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].heal.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].heal.spellLevel | u32 | The level of the spell it came from. | |
| entries[].heal.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].heal.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].heal.unused | u32 | Unused; a client reads nothing here. | |
| entries[].heal.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].effect | record | event = 38 | The effect, and where it came from. |
| entries[].effect.sourceKind | u32 | What sort of source it was. Values: 0 spell, 1 item, 2 buff, 3 passive, 4 basicAttack. | |
| entries[].effect.script | u32 | The spell or effect, by the number its name gives, shown by name. | |
| entries[].effect.spellLevel | u32 | The level of the spell it came from. | |
| entries[].effect.parentSource | u32 | What sort of source the parent script is, as sourceKind. | |
| entries[].effect.parentScript | u32 | The spell or effect it came from, by the number its name gives, shown by name. | |
| entries[].effect.unused | u32 | Unused; a client reads nothing here. | |
| entries[].effect.unusedToo | u32 | Unused; a client reads nothing here. | |
| entries[].assist | record | event = 53 | What one unit did toward a death. |
| entries[].assist.lastHit | f32 | When it last dealt damage, in match seconds. | |
| entries[].assist.physical | f32 | Physical damage it dealt. | |
| entries[].assist.magical | f32 | Magical damage it dealt. | |
| entries[].assist.share | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].assist.gold | f32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].assist.credited | u32 | What it carries is not recorded for this range; a server writes zero. | |
| entries[].kill | record | event = 0 | Nothing a client shows; the unit before it names the killer. |
| entries[].kill.unused | f32 | A client reads nothing here, and writes zero where it raises the event itself. A server writes zero. |
Vectors (1)
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.
In 0.8.13.26–0.9.22.13
Command 69 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| state | u32 | What state the inhibitor takes. Any other value becomes the inhibitor’s state and changes nothing shown; a later 0 or 1 still applies. A state equal to the one held changes nothing but the duration. Values: 0 down, 1 restored. |
| duration | u32 | How long the state lasts, in seconds. A client stores it whatever state the message holds. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 65 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| state | u32 | What state the inhibitor takes. A client ignores any other value. Values: 0 down, 1 restored. |
| duration | i32 | How long the state lasts, in whole seconds. |
Vectors (1)
Revived
What a server sends to put a champion back on the field. The header names the unit this is about.
In 0.8.13.26–0.9.22.13
Command 74 on events, sent by the server, reliable.
A client brings the champion back as Respawned does, at the nearest open ground to where it already stands, first ending its death where it is still dead.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | A client reads nothing here. |
| atY | f32 | A client reads nothing here. |
| atZ | f32 | A client reads nothing here. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 71 on events, sent by the server, reliable.
A client returns the champion where it already stands.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | A client reads nothing here. |
| atY | f32 | A client reads nothing here. |
| atZ | f32 | A client reads nothing here. |
Respawned
What a server sends to bring a dead champion back at a place. The header names the champion. A client keeps the champion’s level, experience, gold, maxima and spell ranks, and plays the coming back.
In 0.8.13.26–0.9.22.13
Command 75 on events, sent by the server, reliable.
A client returns the champion to the nearest open ground to where it already stands.
| Field | Type | What it is |
|---|---|---|
| x | f32 | A client reads nothing here. |
| y | f32 | A client reads nothing here. |
| z | f32 | A client reads nothing here. |
Vectors (1)
In 0.9.22.14–1.0.0.24
Command 72 on events, sent by the server, reliable.
A client returns the champion where it already stands. The champion comes back with full health, and for its own champion a client moves the camera onto it where the player asked for that.
| Field | Type | What it is |
|---|---|---|
| x | f32 | A client reads nothing here. |
| y | f32 | A client reads nothing here. |
| z | f32 | A client reads nothing here. |