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

Spells

Casting, levelling spells, cooldowns, and the missiles casts send out.

Casting

A client asks to cast from one of its champion’s slots with CastSpell, at a point or at a unit. A server answers with SpellCastAnswer, which says the unit is casting and carries the whole casting: the spell, its level, its target, its timings and the missile it will send. A client shows the cast from that answer; CastSpell alone shows nothing. A server then sets how long until the slot is ready with SpellCooldown, and, for a spell with uses, how many are left with SpellCharges. A client reports a cooldown it sets by itself with CooldownSet.

Which slots a client lets its player cast from at all is a value of the champion’s that replication carries.

In 1.0.0.58–1.0.0.129

A client casts nothing for a casting record whose length disagrees with its count of targets.

In 1.0.0.126–1.0.0.129

The casting record names the spell by the hash of its name, and a client casts nothing for a spell it has not loaded.

A spell held down before it is let go charges where the cast answer leaves its flags clear. While it charges, a client sends SpellCharge with the cursor’s position, and once more as the charge ends.

A server ends a spell’s aiming on a client with CancelTargeting, shows and takes away a spell’s targeter on a client’s own champion with SpellTargeterShown and SpellTargeterHidden, and sets which spells a unit casts by itself with Autocast.

Levelling

A client asks to put a point into a spell with UpgradeSpell. A server answers with SpellUpgraded, and a client shows the new level; SpellLevel sets a level outright. The spell points a champion has to spend are what LevelUp carries. A server can set how far each spell can be raised, and at which champion levels, with SpellRankLimits.

A client spends the point as it sends UpgradeSpell. LevelUp states the champion’s level and its points.

In 1.0.0.25–1.0.0.60

A command its player types sends UpgradeSpell without checking anything.

What a slot holds

SpellInSlot puts a spell in a slot. SpellSlotChanged changes one thing about a spell already there: how it is aimed, its name, its ranges, its icon, or the units it is cast from. SpellTargetingChanged, SpellNameChanged, SpellRangeChanged, SpellIconChanged and SpellOffsetTargetChanged each change one of these alone, and SpellSlotChangedForOwner changes a slot as SpellSlotChanged does, for the owner’s client alone. SpellToggled turns a spell on or off, SpellNumbers fills in the numbers a client shows beside a unit’s spells, and SpellCostChanged changes what a spell costs. A server can also draw rings around its player’s cursor with CursorRings.

A marker has no slots. A server MUST NOT send SpellInSlot naming a marker: a client fails on it, whatever the slot.

Missiles

A missile is named by its own id. MissileState says where one is and what it is doing, with the casting that sent it; MissileLaunched says the missile a swing or a cast prepared has left the unit. A server changes what a missile flies at with MissileRetarget and how fast with MissileSpeed, says what it struck with MissileHits, and is rid of it with DestroyMissile. A missile that bounces from unit to unit does so with BounceMissile, and a server can name in advance the units a chain missile will strike with ChainTargets. MissileCourse sets where a missile starts and how fast it flies, and restarts its flight. A client reports where a missile that flies straight is, and where it is going, with MissileReport, which a server MAY ignore.

In 1.0.0.25–1.0.0.96

Only a missile that flies straight acts on MissileHits.

Messages

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

CastSpell

What a client sends to cast something from a slot, at a point or at a unit. The header names the sender’s champion.

Definition.

In 1.0.0.25–1.0.0.57

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

FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from, from 0 to 44. A client still sends a larger slot, its low seven bits only.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.

In 1.0.0.58–1.0.0.95

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

FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from, from 0 to 48. A client still sends a larger slot, its low seven bits only.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (1)

one-on-1-0-0-75

In 1.0.0.96–1.0.0.102

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

FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from, from 0 to 48. A client sends nothing for a slot above 48.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (1)

one-on-1-0-0-99

In 1.0.0.103–1.0.0.123

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

BuildsCommand
1.0.0.103–1.0.0.10636
1.0.0.107–1.0.0.10937
1.0.0.110153
1.0.0.111–1.0.0.116154
1.0.0.117–1.0.0.118155
1.0.0.119–1.0.0.123156
FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from, from 0 to 50. A client sends nothing for a slot above 50.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (6)

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

In 1.0.0.124–1.0.0.127

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

BuildsCommand
1.0.0.124160
1.0.0.125161
1.0.0.126–1.0.0.127162
FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from, from 0 to 51. A client sends nothing for a slot above 51.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The same point, in height, in world units: the height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell; for a spell that takes no aim it is the caster’s own position, the same as the first.
endYf32The second point, in height, in world units: the height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.
Vectors (3)

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

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
how1-byte bits
how.summonerSpellbit 0Set where the slot is a summoner spell’s.
how.slotbit 1 to 7Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells.
xf32A point on the ground the cast is described by, along one axis, in world units.
yf32The height of the place aimed at.
zf32The same point, along the other axis, in world units.
endXf32The second point of what aims the spell: the same as x and z for a point or a unit; for a line dragged out, its far end, cut to the spell’s length; for a cone, its far point.
endYf32The height of where the cast ends.
endZf32The second point, along the other axis, in world units.
targetu32The unit aimed at; for a spell that takes no aim, the caster itself, with its own position in both points. Zero only where no unit is aimed at.

SpellCastAnswer

What a server sends to say a unit is casting a spell. The header names the unit casting, as the casting inside does.

Definition.

In 1.0.0.25–1.0.0.57

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

There is no byte for ending a charge and no sync id: the casting follows the header at once.

FieldTypeWhat it is
castSpellCastThe casting.
Vectors (1)

one-on-1-0-0-25

In 1.0.0.58–1.0.0.60

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

There is no byte for ending a charge and no sync id: the casting is the whole body. A client fails where the casting’s size is wrong, for it then casts with no spell.

FieldTypeWhat it is
castSpellCastThe casting.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.80

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

There is no byte for ending a charge: the casting follows the sync id. A client fails where the casting’s size is wrong, for it then casts with no spell.

FieldTypeWhat it is
castSpellCastThe casting.
Vectors (3)

one-on-1-0-0-70, one-on-1-0-0-75, one-on-1-0-0-79

In 1.0.0.81–1.0.0.98

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

There is no byte for ending a charge: the casting follows the sync id. A client fails where the casting’s size is wrong, for it then casts with no spell.

FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.
Vectors (1)

one-on-1-0-0-98

In 1.0.0.99–1.0.0.127

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

BuildsCommand
1.0.0.99–1.0.0.10236
1.0.0.103–1.0.0.10637
1.0.0.107–1.0.0.10938
1.0.0.110180
1.0.0.111–1.0.0.116181
1.0.0.117–1.0.0.118182
1.0.0.119–1.0.0.123183
1.0.0.124187
1.0.0.125188
1.0.0.126–1.0.0.127189

There is no byte for ending a charge: the casting follows the sync id.

FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.
Vectors (10)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, a-cast-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
syncIdu32It settles whether a client brings the caster’s position in line for this cast, and nothing else.
castSpellCastThe casting.

SpellCooldown

What a server sends to set how long until one of a unit’s spells is ready. The header names the unit this is about.

Definition.

In 1.0.0.25–1.0.0.109

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

It carries no whole cooldown to show the time left against.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
timeLeftf32How long is left, in seconds.
Vectors (2)

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

In 1.0.0.110–1.0.0.123

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

BuildsCommand
1.0.0.110131
1.0.0.111–1.0.0.116132
1.0.0.117–1.0.0.118133
1.0.0.119–1.0.0.123134

It carries no whole cooldown to show the time left against.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
timeLeftf32How long is left, in seconds.
Vectors (4)

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

In 1.0.0.124–1.0.0.127

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

It carries no whole cooldown to show the time left against.

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
timeLeftf32How long is left, in seconds.
Vectors (1)

a-summoner-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
timeLeftf32How long is left, in seconds.

CooldownSet

What a client sends where a script of its own sets a spell slot’s cooldown. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.109

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. For a slot outside the unit’s range a client sends 0.
which.summonerSpellbit 7Set where the slot is one from 4 to 40; slot still carries that slot’s own number.
cooldownf32The cooldown set, in seconds.
Vectors (2)

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

In 1.0.0.110–1.0.0.129

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

BuildsCommand
1.0.0.110131
1.0.0.111–1.0.0.116132
1.0.0.117–1.0.0.118133
1.0.0.119–1.0.0.123134
1.0.0.124–1.0.0.129138
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
cooldownf32The cooldown set, in seconds.
Vectors (4)

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

CancelTargeting

What a server sends to end a spell’s targeting on a client. The header names the unit.

Definition.

In 1.0.0.126–1.0.0.127

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

A client cancels the aiming only where that slot, in the book named, is being aimed, and otherwise does nothing.

FieldTypeWhat it is
which1-byte bitsWhich spell.
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot is a summoner slot.
Vectors (1)

a-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

A client cancels the aiming only where that slot is being aimed, and otherwise does nothing. A server sends it to clients watching a match.

FieldTypeWhat it is
which1-byte bitsWhich spell.
which.slotbit 0 to 6Which slot.
which.summonerSpellbit 7Set where the slot is a summoner slot.

Autocast

What a server sends to set which spells a unit casts by itself. The header names the unit.

Definition.

In 1.0.0.25–1.0.0.57

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

It names one slot: there is no slot for a critical strike.

FieldTypeWhat it is
sloti8The slot cast by itself, from -1 to 44. A client takes a value outside that range as it stands. What -1 does is not recorded.

In 1.0.0.58–1.0.0.98

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

BuildsCommand
1.0.0.58–1.0.0.8140
1.0.0.82–1.0.0.9843

It names one slot: there is no slot for a critical strike.

FieldTypeWhat it is
sloti8The slot cast by itself, from -1 to 48. A client takes a value outside that range as it stands. What -1 does is not recorded.
Vectors (3)

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

In 1.0.0.99–1.0.0.127

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

BuildsCommand
1.0.0.99–1.0.0.10243
1.0.0.103–1.0.0.10644
1.0.0.107–1.0.0.10945
1.0.0.110–1.0.0.12333
1.0.0.124–1.0.0.12734

It names one slot: there is no slot for a critical strike.

FieldTypeWhat it is
sloti8The slot cast by itself, from -1 to 51. A client takes a value outside that range as it stands. What -1 does is not recorded.
Vectors (5)

one-on-1-0-0-99, one-on-1-0-0-106, one-on-1-0-0-109, one-on-1-0-0-123, a-slot-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
sloti8The slot cast by itself, from 0 to 51; -1 leaves none.

UpgradeSpell

What a client sends to put a point into a spell. The header names the sender’s champion.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.10918
1.0.0.110–1.0.0.11659
1.0.0.117–1.0.0.11860
1.0.0.119–1.0.0.12361
1.0.0.124–1.0.0.12762

A client takes the point off its own count before it sends this. There is no evolution point.

FieldTypeWhat it is
slotu8Which slot is being raised: 0 to 3, for the champion’s own spells, though a client does not hold itself to that range.
Vectors (6)

one-on-1-0-0-75, one-on-1-0-0-109, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, a-point-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
slotu8Which slot is being raised.

SpellUpgraded

What a server sends to confirm a unit’s spell went up a level. The header names the unit this is about.

Definition.

In 1.0.0.25–1.0.0.105

Command 19 on clock, sent by the server, reliable.

A client handles it the same on every channel: it sets the slot’s level and the points left. It does this only for a champion, and nothing for any other unit.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at. A client takes any level above 5 as 5.
pointsLeftu8How many spell points are left unspent.
Vectors (2)

one-on-1-0-0-75, one-on-1-0-0-105

In 1.0.0.106–1.0.0.109

Command 19 on clock, sent by the server, reliable.

Arriving on the events channel instead, it raises the spell as well, and a client shows the new level either way.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at. A client takes any level above 6 as 6.
pointsLeftu8How many spell points are left unspent.
Vectors (1)

one-on-1-0-0-109

In 1.0.0.110–1.0.0.127

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

On any channel a client sets the slot’s level to level, and the unspent spell points to pointsLeft; it raises the spell no further.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at. A client takes any level above 6 as 6.
pointsLeftu8How many spell points are left unspent.
Vectors (1)

a-second-level-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

A client takes it the same on every channel: it sets the slot’s level to level, at most 6, and keeps pointsLeft.

FieldTypeWhat it is
slotu8Which slot.
levelu8The level the spell now stands at.
pointsLeftu8How many spell points are left unspent.

SpellLevel

What a server sends to set the level of one of a unit’s spells. The header names the unit this is about.

Definition.

In 1.0.0.106–1.0.0.127

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

BuildsCommand
1.0.0.106201
1.0.0.107–1.0.0.108202
1.0.0.109203
1.0.0.110–1.0.0.11689
1.0.0.117–1.0.0.11890
1.0.0.119–1.0.0.12391
1.0.0.124–1.0.0.12794

It carries no level: a client raises the spell in the slot by one level each time, to at most 6.

FieldTypeWhat it is
slotu32Which slot. A client raises that slot’s level by one, to at most 6.
Vectors (7)

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

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
slotu32Which slot. A client raises that slot’s level by one, to at most 6.

SpellInSlot

What a server sends to put a spell in one of a unit’s slots. A server names in the header the unit this is about.

Definition.

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
unitu32The unit whose slot this is. A client ignores the message where it does not know the unit.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
slotu8Which slot.
Vectors (1)

a-spell-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
unitu32The unit whose slot this is.
spellu32Which spell, by the number its name gives, as Objects and identifiers works it out.
slotu8Which slot.

SpellTargetingChanged

What a server sends to change how a spell already in a unit’s slot is aimed. The header names the unit this is about.

Definition.

In 1.0.0.25–1.0.0.62

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
targetingu8How the spell is aimed, 0 to 6. For a larger value a client still writes it onto the slot but builds no aiming for it, which has no defined effect; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73135
1.0.0.74–1.0.0.81136
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
targetingu8How the spell is aimed, 0 to 7. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (3)

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

In 1.0.0.82–1.0.0.96

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
targetingu8How the spell is aimed, 0 to 7. A client knows no other value, so a server never sends a larger one; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.113

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

BuildsCommand
1.0.0.97141
1.0.0.98–1.0.0.102142
1.0.0.103144
1.0.0.104–1.0.0.106149
1.0.0.107–1.0.0.108150
1.0.0.109151
1.0.0.110–1.0.0.11326
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
targetingu8How the spell is aimed, 0 to 7. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (7)

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

In 1.0.0.114–1.0.0.118

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
targetingu8How the spell is aimed, 0 to 8. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-117

In 1.0.0.119–1.0.0.127

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
targetingu8How the spell is aimed, 0 to 10. A client keeps a larger value and reports it as an error, but builds no new aiming for it, so the slot keeps the aiming it had; no value asks for the spell’s own default.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
targetingu8How the spell is aimed.

SpellNameChanged

What a server sends to put another spell into a slot of a unit’s that already holds one. The header names the unit this is about.

Definition.

In 1.0.0.25–1.0.0.73

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. A client fails where it is set for a unit that is not a champion.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot, and treats a name it has no spell for as an error.
Vectors (1)

one-on-1-0-0-72

In 1.0.0.74–1.0.0.123

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

BuildsCommand
1.0.0.74–1.0.0.81173
1.0.0.82–1.0.0.96177
1.0.0.97178
1.0.0.98–1.0.0.102179
1.0.0.103181
1.0.0.104–1.0.0.106187
1.0.0.107–1.0.0.108188
1.0.0.109189
1.0.0.110–1.0.0.12352
FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot, and treats a name it has no spell for as an error.
Vectors (10)

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

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot, and treats a name it has no spell for as an error.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
nametext, ended by a zero byteThe name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot.

SpellIconChanged

What a server sends to change which icon a spell already in a unit’s slot shows. The header names the unit this is about.

Definition.

In 1.0.0.117–1.0.0.123

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
iconu8Which icon the spell shows. Any value is accepted.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
iconu8Which icon the spell shows. Any value is accepted.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
iconu8Which icon the spell shows.

SpellOffsetTargetChanged

What a server sends to change the unit a spell already in a unit’s slot is cast from. The header names the unit this is about.

Definition.

In 1.0.0.119–1.0.0.123

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two.
targetu32The unit the slot’s targeting indicator works from instead of the caster. A client takes an id it does not hold as no unit.
Vectors (1)

one-on-1-0-0-123

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where the slot counts among the summoner slots, so that 0 and 1 name those two. Only a champion has them: for any other unit the bit set has no defined effect.
targetu32The unit the slot’s targeting indicator works from instead of the caster. A client takes an id it does not hold as no unit.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
which1-byte bits
which.slotbit 0 to 6Which slot. A champion’s own spells count from 0.
which.summonerSlotsbit 7Set where slot names a summoner spell’s slot, clear for the unit’s own spells. Only a champion has summoner slots: a server sets it only for a champion, and for any other unit a client fails.
targetu32The unit the slot’s targeting indicator works from instead of the caster, while the client holds it; one it does not hold resets this to none.

SpellNumbers

What a server sends to fill in the numbers a client shows beside a unit’s spells. The header names no object: a server writes zero.

Definition.

In 1.0.0.25–1.0.0.62

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

FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client reads every set it names.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values3 × f32The numbers themselves, one place each.

In 1.0.0.63–1.0.0.123

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

BuildsCommand
1.0.0.63–1.0.0.73166
1.0.0.74–1.0.0.81167
1.0.0.82–1.0.0.96171
1.0.0.97172
1.0.0.98–1.0.0.102173
1.0.0.103175
1.0.0.104–1.0.0.106181
1.0.0.107–1.0.0.108182
1.0.0.109183
1.0.0.110124
1.0.0.111–1.0.0.116125
1.0.0.117–1.0.0.118126
1.0.0.119–1.0.0.123127
FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client ignores the whole message where they do not all fit in it.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values3 × f32The numbers themselves, one place each.
Vectors (14)

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

In 1.0.0.124–1.0.0.127

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

FieldTypeWhat it is
entryCountu16How many sets of numbers follow. A client ignores the whole message where they do not all fit in it.
entriescount in entryCount × recordThe sets themselves. A client skips a set naming a unit it does not hold.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot: 60 to 119 name the unit’s own spell slot, less 60, and 120 and up a summoner slot, less 120, the set skipped for a unit that has none. What 0 to 59 name is not recorded.
entries[].values3 × f32The numbers themselves, one place each.
Vectors (2)

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

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
entryCountu16How many sets of numbers follow.
entriescount in entryCount × recordThe sets themselves.
entries[].unitu32The unit whose spell this is.
entries[].slotu8Which slot.
entries[].values3 × f32The numbers themselves, one place each.

MissileState

What a server sends to say where a missile is and what it is doing.

Definition.

In 1.0.0.25–1.0.0.57

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

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. A client tests the whole byte, so any set bit counts. For a missile it already holds that flies in a straight line, a client then starts the line again from the caster’s position, raised by the missile’s height above the ground, aiming it from where the missile now is.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-25

In 1.0.0.58–1.0.0.60

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

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. Where the casting names a second unit the client holds, a client aims the casting at that unit’s position; it moves no unit. For a missile that flies straight, casterAt becomes its start point, end and facing are taken as sent, and its velocity is set to carry it from its position to its end at the spell’s own missile speed; for any other missile, a client keeps the velocity as sent, and casterAt, facing, end and bounced have no effect. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. For a missile that flies straight, a client then sets its end to casterAt raised by the missile’s height above the ground, so it heads back to where the thrower stood; for any other missile it has no effect.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-58

In 1.0.0.61–1.0.0.81

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

BuildsCommand
1.0.0.61–1.0.0.7163
1.0.0.72–1.0.0.7363
1.0.0.74–1.0.0.7864
1.0.0.79–1.0.0.8164

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (4)

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

In 1.0.0.82–1.0.0.96

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

A client reads no single speed and no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. For a missile the client holds that flies straight, a client then sets its end to casterAt raised by the missile’s height above the ground, and its travel to that end less its position; for any other missile the client holds it has no effect.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.103

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

BuildsCommand
1.0.0.97–1.0.0.10268
1.0.0.10369

A client reads neither a speed nor a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (2)

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

In 1.0.0.104–1.0.0.105

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

A client reads a speed but no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. A client places the casting’s second unit, where it holds that unit, where the thrower stood rather than with the casting unit. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
speedf32How fast the missile travels, in world units a second. A client uses it only for a missile that flies in a straight line.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

one-on-1-0-0-105

In 1.0.0.106–1.0.0.110

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

BuildsCommand
1.0.0.10669
1.0.0.107–1.0.0.10970
1.0.0.11061

A client reads a speed but no part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
speedf32How fast the missile travels, in world units a second. A client uses it only for a missile that flies in a straight line.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (3)

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

In 1.0.0.111–1.0.0.123

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

BuildsCommand
1.0.0.111–1.0.0.11661
1.0.0.117–1.0.0.11862
1.0.0.119–1.0.0.12363

A client reads both a speed and a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
startXf32Where the missile began, along one ground axis, in world units.
startYf32Where the missile began, in height, in world units.
startZf32Where the missile began, along the other ground axis, in world units.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
speedf32How fast the missile travels, in world units a second. A client uses it only for a missile that flies in a straight line.
lifeSpentf32How far through the spell’s fixed travel time the missile is, as a part of one. A missile aimed at a unit, or bouncing, paces itself to arrive as that time runs out; with no fixed travel time it has no effect.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (3)

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

In 1.0.0.124–1.0.0.127

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

A client reads both a speed and a part of the missile’s life spent. Neither the ground-height rule for endY nor a trail moved on by an age is confirmed. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
startXf32Where the missile began, along one ground axis, in world units.
startYf32Where the missile began, in height, in world units.
startZf32Where the missile began, along the other ground axis, in world units.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
speedf32How fast the missile travels, in world units a second. A client uses it only for a missile that flies in a straight line.
lifeSpentf32How far through the spell’s fixed travel time the missile is, as a part of one. A missile aimed at a unit, or bouncing, paces itself to arrive as that time runs out; with no fixed travel time it has no effect.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced; a client takes any nonzero byte as set. Only a missile that flies straight uses it; any other missile ignores it, with casterAt, end and facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.
Vectors (1)

in-flight-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

Where the end lies on walkable ground, a client takes the ground’s height there for endY. Where age is not zero, it moves the missile’s trail on by age seconds. The header names the unit casting, as the casting inside does.

FieldTypeWhat it is
atXf32Where the missile is, along one ground axis, in world units.
atYf32Where the missile is, in height, in world units.
atZf32Where the missile is, along the other ground axis, in world units.
casterAtXf32Where the unit that threw it stood when it left, along one ground axis, in world units.
casterAtYf32Where the unit that threw it stood when it left, in height, in world units.
casterAtZf32Where the unit that threw it stood when it left, along the other ground axis, in world units.
facingXf32Which way the missile points, along one ground axis.
facingYf32Which way the missile points, in height.
facingZf32Which way the missile points, along the other ground axis.
velocityXf32How fast the missile travels, along one ground axis, in world units a second.
velocityYf32How fast the missile travels, in height, in world units a second.
velocityZf32How fast the missile travels, along the other ground axis, in world units a second.
startXf32Where the missile began, along one ground axis, in world units.
startYf32Where the missile began, in height, in world units.
startZf32Where the missile began, along the other ground axis, in world units.
endXf32Where the missile is bound for, along one ground axis, in world units.
endYf32Where the missile is bound for, in height, in world units.
endZf32Where the missile is bound for, along the other ground axis, in world units.
unitAtXf32Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it.
unitAtYf32Its height, in world units.
unitAtZf32Where to place the casting unit, along the other ground axis, in world units.
speedf32How fast the missile travels, in world units a second.
lifeSpentf32How much of its life is gone, as a part of one.
how1-byte bits
how.bouncedbit 0Set where the missile has bounced. It applies only where age is above zero: a client then moves the missile to its position and places it again from the caster’s position, the end and the facing.
how.unusedbit 1 to 7Unused; a server writes zero.
castSpellCastThe casting that threw it.

MissileHits

What a server sends to say which units a missile struck. The header names the missile.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.73161
1.0.0.74–1.0.0.81162
1.0.0.82–1.0.0.96166
1.0.0.97167
1.0.0.98–1.0.0.102168
1.0.0.103170
1.0.0.104–1.0.0.106176
1.0.0.107–1.0.0.108177
1.0.0.109178
1.0.0.110–1.0.0.12339
1.0.0.124–1.0.0.12740
FieldTypeWhat it is
countu16How many units follow. A client reads it as signed, so a count of zero or above 32767 carries no units, and a server sends at most 32767.
targetscount in count × u32The units struck, in order. A client still takes a unit it does not know, with nothing shown on it, and nothing after the hit that destroys the missile shows.
Vectors (12)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-123, two-units-on-1-0-0-126

In 1.0.0.128–1.0.0.129

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

FieldTypeWhat it is
countu16How many units follow. A client reads it as signed, so a count above 32767 carries none.
targetscount in count × u32The units struck, in order.

DestroyMissile

What a server sends to be rid of a missile a client is drawing. The header names the missile.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.25–1.0.0.62102
1.0.0.63–1.0.0.73105
1.0.0.74–1.0.0.81106
1.0.0.82–1.0.0.96110
1.0.0.97–1.0.0.102111
1.0.0.103–1.0.0.106113
1.0.0.107–1.0.0.108114
1.0.0.109115
1.0.0.110–1.0.0.11688
1.0.0.117–1.0.0.11889
1.0.0.119–1.0.0.12390
1.0.0.124–1.0.0.12993

No body.

Vectors (13)

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

ChainTargets

What a server sends to name the units a chain missile will strike in turn. The header names the missile.

Definition.

In 1.0.0.25–1.0.0.62

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

Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32; 0 clears every target the client holds, and a count below zero names no targets and clears nothing. A count above 32 has no defined effect.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect. A slot naming a unit the client does not know is left empty.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73106
1.0.0.74–1.0.0.81107

Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32; 0 clears every target the client holds. A client given more than 32 fails.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (3)

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

In 1.0.0.82–1.0.0.96

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

Where the client holds the caster, the caster’s current cast takes the list, whether or not the client holds the missile. A missile the client holds under the header’s name takes the list as well. A client drops the message while the match is still loading.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32. 0 clears every target the client holds; a negative value sets none and clears none. Any other count sets that many targets and leaves the rest as they were. A client given more than 32 fails.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.127

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

BuildsCommand
1.0.0.97–1.0.0.102112
1.0.0.103–1.0.0.106114
1.0.0.107–1.0.0.108115
1.0.0.109116
1.0.0.110105
1.0.0.111–1.0.0.116106
1.0.0.117–1.0.0.118107
1.0.0.119–1.0.0.123108
1.0.0.124–1.0.0.127111

Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32; 0 clears every target the client holds. A client given more than 32 fails.
casteru32The unit casting the missile. Where a client does not hold it, the client starts no missile, though a missile it already holds under the header’s name still takes the targets.
targets32 × u32Always 32 slots; those past count have no effect.
Vectors (9)

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

In 1.0.0.128–1.0.0.129

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

Where the client already holds the missile, the missile takes the list; otherwise the list waits for the caster’s next chain missile.

FieldTypeWhat it is
counti32How many of the slots are used, 0 to 32.
casteru32The unit casting the missile.
targets32 × u32Always 32 slots; those past count have no effect.

MissileReport

What a client sends to report where a missile that flies straight is and where it is going. A server need do nothing with it. The header names the missile.

Definition.

In 1.0.0.25–1.0.0.62

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

A client also sends it 209 bytes long, header included, from a missile of its own. That form writes only atX to atZ, velocityX to velocityZ and the cast, and leaves every other byte unwritten.

FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32What this holds is not recorded.
unknownAYf32What this holds is not recorded.
unknownAZf32What this holds is not recorded.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
flagu8Zero or one; what it means is not recorded.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.103

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

BuildsCommand
1.0.0.63–1.0.0.7363
1.0.0.74–1.0.0.8164
1.0.0.82–1.0.0.9667
1.0.0.97–1.0.0.10268
1.0.0.10369
FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32What this holds is not recorded.
unknownAYf32What this holds is not recorded.
unknownAZf32What this holds is not recorded.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
flagu8Zero or one; what it means is not recorded.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (6)

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

In 1.0.0.104–1.0.0.110

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

BuildsCommand
1.0.0.104–1.0.0.10669
1.0.0.107–1.0.0.10970
1.0.0.11061
FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32What this holds is not recorded.
unknownAYf32What this holds is not recorded.
unknownAZf32What this holds is not recorded.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
agef32How long since it was launched, in seconds.
flagu8Zero or one; what it means is not recorded.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (3)

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

In 1.0.0.111–1.0.0.125

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

BuildsCommand
1.0.0.111–1.0.0.11661
1.0.0.117–1.0.0.11862
1.0.0.119–1.0.0.12363
1.0.0.124–1.0.0.12565
FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32What this holds is not recorded.
unknownAYf32What this holds is not recorded.
unknownAZf32What this holds is not recorded.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
unknownBXf32What this holds is not recorded.
unknownBYf32What this holds is not recorded.
unknownBZf32What this holds is not recorded.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
agef32How long since it was launched, in seconds.
unsetbytes, 4A client writes nothing in particular here.
flagu8Zero or one; what it means is not recorded.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.
Vectors (4)

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

In 1.0.0.126–1.0.0.129

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

FieldTypeWhat it is
atXf32Where the missile is, in world units, along one ground axis.
atYf32Where the missile is, in world units, in height.
atZf32Where the missile is, in world units, along the other ground axis.
unknownAXf32casterAt from the last MissileState the client took for this missile, returned as it came.
unknownAYf32casterAt from the last MissileState the client took for this missile, returned as it came.
unknownAZf32casterAt from the last MissileState the client took for this missile, returned as it came.
travelXf32Its end less its start, in world units, along one ground axis.
travelYf32Its end less its start, in world units, in height.
travelZf32Its end less its start, in world units, along the other ground axis.
velocityXf32How fast it travels, in world units a second, along one ground axis.
velocityYf32How fast it travels, in world units a second, in height.
velocityZf32How fast it travels, in world units a second, along the other ground axis.
unknownBXf32A client leaves it unwritten; its bytes carry no meaning.
unknownBYf32A client leaves it unwritten; its bytes carry no meaning.
unknownBZf32A client leaves it unwritten; its bytes carry no meaning.
endXf32Where it ends, in world units, along one ground axis.
endYf32Where it ends, in world units, in height.
endZf32Where it ends, in world units, along the other ground axis.
targetXf32Where its target is, or the point it aims at, in world units, along one ground axis.
targetYf32Where its target is, or the point it aims at, in world units, in height.
targetZf32Where its target is, or the point it aims at, in world units, along the other ground axis.
agef32How long since it was launched, in seconds.
unsetbytes, 4A client writes nothing in particular here.
flagu8The whole how byte of the last MissileState the client took for this missile, returned as it came.
castbytes, sized by remainingA description of the cast the missile belongs to, at most 512 bytes.