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.
A client casts nothing for a casting record whose length disagrees with its count of targets.
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 3.10–3.15
A client asks only where the champion has a point to spend, is of the level the slot requires, and the spell is below its highest level. A request a server never answers leaves the level as it was and the point spent, until the next
SpellUpgradedorLevelUp.
In 3.10
A client also sends
UpgradeSpellfor a point of a separate kind the champion holds, and spends no spell point for it.
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.
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.
In every range of this book
Command 154 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| how | 1-byte bits | |
| how.slot | bit 0 to 5 | Which slot is being cast from. A client sends 0, 1 or 2, for the champion’s first three spells. |
| how.summonerSpell | bit 6 | Set where the slot is a summoner spell’s. |
| how.clicked | bit 7 | Set where the cast began with a click on the spell’s button rather than its key. |
| x | f32 | A point on the ground the cast is described by, along one axis, in world units. |
| z | f32 | The same point, along the other axis, in world units. |
| endX | f32 | The 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. |
| endZ | f32 | The second point, along the other axis, in world units. |
| target | u32 | The 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)
SpellCastAnswer
What a server sends to say a unit is casting a spell. The header names the unit casting, as the casting inside does.
In every range of this book
Command 181 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| syncId | u32 | It settles whether a client brings the caster’s position in line for this cast, and nothing else. |
| how | 1-byte bits | |
| how.endCharge | bit 0 | Set where the cast ends a charge: a client drops the message unless the caster is charging that same spell. Clear lets a client charge a spell that charges, sending SpellCharge as it does. |
| how.unused | bit 1 to 7 | Unused; a server writes zero. |
| cast | SpellCast | The casting. |
Vectors (4)
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.
In 3.01–3.11
Command 133 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| which | 1-byte bits | |
| which.slot | bit 0 to 5 | Which slot. |
| which.summonerSpell | bit 6 | Set where the slot counts among the summoner slots, so that 0 and 1 name those two. |
| which.speakWhenReady | bit 7 | Set where the champion says something once the wait is over; a client does so for its own champion’s fourth slot. |
| timeLeft | f32 | How long is left, in seconds. |
Vectors (1)
In 3.12–3.13
Command 133 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| which | 1-byte bits | |
| which.slot | bit 0 to 5 | Which slot. |
| which.summonerSpell | bit 6 | Set where the slot counts among the summoner slots, so that 0 and 1 name those two. |
| which.unused | bit 7 | Unused; a server writes zero. |
| timeLeft | f32 | How long is left, in seconds. |
Vectors (1)
In 3.14–3.15
Command 133 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| which | 1-byte bits | |
| which.slot | bit 0 to 5 | Which slot. |
| which.summonerSpell | bit 6 | Set where the slot counts among the summoner slots, so that 0 and 1 name those two. |
| which.unused | bit 7 | Unused; a server writes zero. |
| timeLeft | f32 | How long is left, in seconds. |
| outOf | f32 | The whole cooldown the time left is shown against, taken only where above zero and above timeLeft; otherwise, as for -1, a client keeps its own, replacing it with timeLeft only where that is larger or the spell was not cooling down. |
Vectors (1)
SpellCharges
What a server sends to say how many uses one of a unit’s spells has left and when the next returns. The header names the unit this is about.
In 3.8–3.15
Command 263 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| summonerSpell | u8 | Whether the slot is a summoner slot rather than one of the unit’s own. Values: 0 no, 1 yes. |
| slot | u32 | Which slot. |
| charges | i32 | How many uses are left. |
| mostCharges | i32 | How many charges the slot can hold: any value below zero, -1 among them, keeps the spell’s own figure for its level; 0 has the slot use no charges; anything above zero is that many. |
| rechargeFor | f32 | How long the next use has been coming back, in seconds. |
| rechargeTime | f32 | How long a use takes to come back, in seconds. |
SpellCharge
What a client sends while its player charges a spell, and as the charge ends. A spell charges where its cast answer (SpellCastAnswer) leaves the end-of-charge flag clear. A client sends updates at the spell’s own interval, at least 0.1 seconds, where the spell has one; it ends the charge as the key is pressed again, or released where casting on release, or as the window loses focus. The header names the sender’s champion.
In every range of this book
Command 230 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| flags | 1-byte bits | Which spell, and whether the charge ends. |
| flags.slot | bit 0 to 5 | The spell’s slot. |
| flags.summonerSpell | bit 6 | Set where the slot is a summoner spell’s. |
| flags.end | bit 7 | Set as the charge ends, clear for an update. |
| x | f32 | Where the cursor points on the ground, in world units. |
| y | f32 | Its height, in world units. |
| z | f32 | Where the cursor points on the ground, in world units. |
Vectors (1)
CancelTargeting
What a server sends to end a spell’s targeting on a client. The header names the unit.
In every range of this book
Command 134 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.
| Field | Type | What it is |
|---|---|---|
| which | 1-byte bits | Which spell. |
| which.slot | bit 0 to 5 | Which slot. |
| which.summonerSpell | bit 6 | Set where the slot is a summoner slot. |
| which.unused | bit 7 | Unused; a server writes zero. |
Vectors (1)
Autocast
What a server sends to set which spells a unit casts by itself. The header names the unit.
In every range of this book
Command 31 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| slot | i8 | The slot cast by itself, from 0 to 62; any other value leaves it unset. |
| criticalSlot | i8 | The slot cast by itself on a critical strike, under the same terms. |
UpgradeSpell
What a client sends to put a point into a spell. The header names the sender’s champion.
In every range of this book
Command 56 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| slot | u8 | Which slot is being raised. |
| how | 1-byte bits | |
| how.evolve | bit 0 | Set where the player spends an evolution point on the slot rather than levelling it. |
| how.unused | bit 1 to 7 | Always clear. |
SpellUpgraded
What a server sends to confirm a unit’s spell went up a level. The header names the unit this is about.
In every range of this book
Command 21 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.
| Field | Type | What it is |
|---|---|---|
| slot | u8 | Which slot. |
| level | u8 | The level the spell now stands at. |
| pointsLeft | u8 | How 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.
In every range of this book
Command 90 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| slot | u32 | Which slot. A client raises that slot’s level by one, to at most 6. |
SpellRankLimits
What a server sends its player’s champion to set how far each spell can be raised, and at which levels. The header names the champion. In the tutorial they have no effect.
In 3.10–3.15
Command 273 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| maxRanks | 4 × u8 | Each spell’s highest rank. |
| levels | 24 × u8 | Six per slot, slot 0 first: the level a champion needs to raise that spell from rank 0, 1, 2, 3, 4 and 5 in turn. |
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.
In every range of this book
Command 111 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | The unit whose slot this is. |
| spell | u32 | Which spell, by the number its name gives, as Objects and identifiers works it out. |
| slot | u8 | Which slot. |
SpellSlotChanged
What a server sends to change one thing about a spell already in a unit’s slot. The kind settles what follows it. The header names the unit this is about.
In 3.01–3.7
Command 23 on events, sent by the server, reliable.
| Field | Type | Present when | What it is |
|---|---|---|---|
| which | 1-byte bits | ||
| which.slot | bit 0 to 5 | Which slot. A champion’s own spells count from 0. | |
| which.summonerSlots | bit 6 | Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it. | |
| which.unused | bit 7 | Unused; a server writes zero. | |
| kind | u8 | What changes. A client does nothing for any other value. Values: 0 targeting, 1 name, 2 range, 3 icon, 4 offsetTargets. | |
| name | text, ended by a zero byte | kind = 1 | The name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot. |
| targeting | u8 | kind = 0 | How the spell is aimed. |
| range | f32 | kind = 2 | How far the spell is cast, in world units. |
| icon | u8 | kind = 3 | Which icon the spell shows. |
| targetCount | u8 | kind = 4 | How many units follow. |
| targets | count in targetCount × u32 | kind = 4 | The units the spell is cast from. |
Vectors (6)
icon-on-3-7, name-on-3-7, offset-targets-on-3-7, one-on-3-7, range-on-3-7, targeting-on-3-7
In 3.8–3.15
Command 23 on events, sent by the server, reliable.
| Field | Type | Present when | What it is |
|---|---|---|---|
| which | 1-byte bits | ||
| which.slot | bit 0 to 5 | Which slot. A champion’s own spells count from 0. | |
| which.summonerSlots | bit 6 | Set where slot names a summoner spell’s slot, clear for the unit’s own spells; every kind obeys it. | |
| which.unused | bit 7 | Unused; a server writes zero. | |
| kind | u8 | What changes. A client does nothing for any other value. Values: 0 targeting, 1 name, 2 range, 3 maxRange, 4 shownRange, 5 icon, 6 offsetTargets. | |
| name | text, ended by a zero byte | kind = 1 | The name the client loads the spell under, ended by a zero byte. A client shows the named spell’s icon in the slot. |
| targeting | u8 | kind = 0 | How the spell is aimed. |
| range | f32 | kind = 2 | How far the spell is cast, in world units. |
| maxRange | f32 | kind = 3 | The farthest the spell’s cast range can grow to, in world units. |
| shownRange | f32 | kind = 4 | The range its range indicator shows, in world units. |
| icon | u8 | kind = 5 | Which icon the spell shows. |
| targetCount | u8 | kind = 6 | How many units follow. |
| targets | count in targetCount × u32 | kind = 6 | The units the spell is cast from. |
SpellToggled
What a server sends to turn one of a unit’s spells on or off. The header names the unit this is about.
In 3.13–3.15
Command 280 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| slot | u32 | Which of the champion’s own spells, 0 to 62; a client ignores any other value. Summoner spells are never toggled by it. |
| state | u8 | Nonzero to toggle the spell on, zero off. |
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.
In 3.01–3.14
Command 127 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| entryCount | u16 | How many sets of numbers follow. |
| entries | count in entryCount × record | The sets themselves. |
| entries[].unit | u32 | The unit whose spell this is. |
| entries[].slot | u8 | Which slot. |
| entries[].values | 5 × f32 | The numbers themselves, one place each. |
Vectors (3)
In 3.15
Command 127 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| entryCount | u16 | How many sets of numbers follow. |
| entries | count in entryCount × record | The sets themselves. |
| entries[].unit | u32 | The unit whose spell this is. |
| entries[].slot | u8 | Which slot. |
| entries[].values | 5 × f32 | The numbers themselves, one place each. |
| entries[].hidden | 5 × u8 | Which of those places the other side is not shown, one for each. |
Vectors (3)
SpellCostChanged
What a server sends to change what a spell costs the player it is sent to. The header names that player’s champion.
In 3.7
Command 260 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| costType | u32 | How the amount applies. Values: 0 flat, 1 multiplier. |
| slot | i32 | Which spell slot. |
| amount | f32 | The amount. |
Vectors (1)
In 3.8–3.15
Command 260 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| costType | u8 | How the amount applies. Values: 0 flat, 1 multiplier. |
| slot | i32 | Which spell slot. |
| amount | f32 | The amount. |
CursorRings
What a server sends its player’s champion to draw rings around the cursor while no spell is being aimed. The header names the champion.
In 3.9–3.15
Command 264 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| radius | f32 | The ring’s radius, in world units. Zero or less draws neither ring. |
| secondRadius | f32 | A second ring’s radius, in world units, drawn where above zero. |
MissileState
What a server sends to say where a missile is and what it is doing.
In 3.01–3.8
Command 58 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.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the missile is, along one ground axis, in world units. |
| atY | f32 | Where the missile is, in height, in world units. |
| atZ | f32 | Where the missile is, along the other ground axis, in world units. |
| casterAtX | f32 | Where the unit that threw it stood when it left, along one ground axis, in world units. |
| casterAtY | f32 | Where the unit that threw it stood when it left, in height, in world units. |
| casterAtZ | f32 | Where the unit that threw it stood when it left, along the other ground axis, in world units. |
| facingX | f32 | Which way the missile points, along one ground axis. |
| facingY | f32 | Which way the missile points, in height. |
| facingZ | f32 | Which way the missile points, along the other ground axis. |
| velocityX | f32 | How fast the missile travels, along one ground axis, in world units a second. |
| velocityY | f32 | How fast the missile travels, in height, in world units a second. |
| velocityZ | f32 | How fast the missile travels, along the other ground axis, in world units a second. |
| startX | f32 | Where the missile began, along one ground axis, in world units. |
| startY | f32 | Where the missile began, in height, in world units. |
| startZ | f32 | Where the missile began, along the other ground axis, in world units. |
| endX | f32 | Where the missile is bound for, along one ground axis, in world units. |
| endY | f32 | Where the missile is bound for, in height, in world units. |
| endZ | f32 | Where the missile is bound for, along the other ground axis, in world units. |
| unitAtX | f32 | Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it. |
| unitAtY | f32 | Its height, in world units. |
| unitAtZ | f32 | Where to place the casting unit, along the other ground axis, in world units. |
| age | f32 | How long the missile has existed, in seconds. |
| speed | f32 | How fast the missile travels, in world units a second. |
| lifeSpent | f32 | How much of its life is gone, as a part of one. |
| how | 1-byte bits | |
| how.bounced | bit 0 | Set 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.unused | bit 1 to 7 | Unused; a server writes zero. |
| cast | SpellCast | The casting that threw it. |
Vectors (2)
In 3.9–3.15
Command 58 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.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the missile is, along one ground axis, in world units. |
| atY | f32 | Where the missile is, in height, in world units. |
| atZ | f32 | Where the missile is, along the other ground axis, in world units. |
| casterAtX | f32 | Where the unit that threw it stood when it left, along one ground axis, in world units. |
| casterAtY | f32 | Where the unit that threw it stood when it left, in height, in world units. |
| casterAtZ | f32 | Where the unit that threw it stood when it left, along the other ground axis, in world units. |
| facingX | f32 | Which way the missile points, along one ground axis. |
| facingY | f32 | Which way the missile points, in height. |
| facingZ | f32 | Which way the missile points, along the other ground axis. |
| velocityX | f32 | How fast the missile travels, along one ground axis, in world units a second. |
| velocityY | f32 | How fast the missile travels, in height, in world units a second. |
| velocityZ | f32 | How fast the missile travels, along the other ground axis, in world units a second. |
| startX | f32 | Where the missile began, along one ground axis, in world units. |
| startY | f32 | Where the missile began, in height, in world units. |
| startZ | f32 | Where the missile began, along the other ground axis, in world units. |
| endX | f32 | Where the missile is bound for, along one ground axis, in world units. |
| endY | f32 | Where the missile is bound for, in height, in world units. |
| endZ | f32 | Where the missile is bound for, along the other ground axis, in world units. |
| unitAtX | f32 | Where to place the casting unit, along one ground axis, in world units, unless the casting itself places it. |
| unitAtY | f32 | Its height, in world units. |
| unitAtZ | f32 | Where to place the casting unit, along the other ground axis, in world units. |
| age | f32 | How long the missile has existed, in seconds. |
| speed | f32 | How fast the missile travels, in world units a second. |
| lifeSpent | f32 | How much of its life is gone, as a part of one. |
| speedChange | f32 | What is added to that speed over the time below, in world units a second. |
| speedChangeTime | f32 | When the speed changes, in seconds from when the client creates the missile: once that much time has passed, a client adds the change to the speed, once. Where the speed never changes, a server sends the largest finite float, 340282346638528859811704183484516925440; zero or less takes effect at once. |
| how | 1-byte bits | |
| how.bounced | bit 0 | Set 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.unused | bit 1 to 7 | Unused; a server writes zero. |
| cast | SpellCast | The casting that threw it. |
Vectors (3)
MissileLaunched
What a server sends as the missile a swing or a cast prepared leaves the unit. The header names the unit swinging or casting.
In every range of this book
Command 109 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| missile | u32 | The missile, by the name the swing or cast that prepared it gave it. |
MissileRetarget
What a server sends to change what a missile flies at. The header names the missile.
In every range of this book
Command 238 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit it now flies at, or a name no unit answers to for none. |
| x | f32 | Where it now flies to, along one ground axis, in world units. |
| y | f32 | In height, in world units. |
| z | f32 | Along the other ground axis, in world units. |
Vectors (2)
MissileSpeed
What a server sends to change how fast a missile flies. The header names the missile.
In 3.9–3.15
Command 269 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | The new speed, in world units a second. |
| delay | f32 | How long before it applies, in seconds. |
MissileHits
What a server sends to say which units a missile struck. The header names the missile.
In every range of this book
Command 37 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| count | u16 | How many units follow. A client reads it as signed, so a count above 32767 carries none. |
| targets | count in count × u32 | The units struck, in order. |
Vectors (2)
DestroyMissile
What a server sends to be rid of a missile a client is drawing. The header names the missile.
BounceMissile
What a server sends as a missile bounces on to another unit. The header names the missile.
In 3.14–3.15
Command 281 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| target | u32 | The unit it now flies at. |
| fromX | f32 | Where it bounces from, along one ground axis, in world units. |
| fromY | f32 | Where it bounces from, in height, in world units. |
| fromZ | f32 | Where it bounces from, along the other ground axis, in world units. |
ChainTargets
What a server sends to name the units a chain missile will strike in turn. The header names the missile.
In every range of this book
Command 107 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.
| Field | Type | What it is |
|---|---|---|
| count | i32 | How many of the slots are used, 0 to 32. |
| caster | u32 | The unit casting the missile. |
| targets | 32 × u32 | Always 32 slots; those past count have no effect. |
MissileCourse
What a server sends to set where a missile starts from and how fast it travels, which restarts its flight. The header names the missile.
In every range of this book
Command 59 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| unused | u8 | Unused; a server writes zero. |
| fromX | f32 | Where the missile starts, in world units, along one ground axis. |
| fromY | f32 | Where the missile starts, in world units, in height. |
| fromZ | f32 | Where the missile starts, in world units, along the other ground axis. |
| velocityX | f32 | How fast it travels, in world units a second, along one ground axis. |
| velocityY | f32 | How fast it travels, in world units a second, in height. |
| velocityZ | f32 | How fast it travels, in world units a second, along the other ground axis. |
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.
In 3.01–3.8
Command 58 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the missile is, in world units, along one ground axis. |
| atY | f32 | Where the missile is, in world units, in height. |
| atZ | f32 | Where the missile is, in world units, along the other ground axis. |
| unknownAX | f32 | What this holds is not recorded. |
| unknownAY | f32 | What this holds is not recorded. |
| unknownAZ | f32 | What this holds is not recorded. |
| travelX | f32 | Its end less its start, in world units, along one ground axis. |
| travelY | f32 | Its end less its start, in world units, in height. |
| travelZ | f32 | Its end less its start, in world units, along the other ground axis. |
| velocityX | f32 | How fast it travels, in world units a second, along one ground axis. |
| velocityY | f32 | How fast it travels, in world units a second, in height. |
| velocityZ | f32 | How fast it travels, in world units a second, along the other ground axis. |
| unknownBX | f32 | What this holds is not recorded. |
| unknownBY | f32 | What this holds is not recorded. |
| unknownBZ | f32 | What this holds is not recorded. |
| endX | f32 | Where it ends, in world units, along one ground axis. |
| endY | f32 | Where it ends, in world units, in height. |
| endZ | f32 | Where it ends, in world units, along the other ground axis. |
| targetX | f32 | Where its target is, or the point it aims at, in world units, along one ground axis. |
| targetY | f32 | Where its target is, or the point it aims at, in world units, in height. |
| targetZ | f32 | Where its target is, or the point it aims at, in world units, along the other ground axis. |
| age | f32 | How long since it was launched, in seconds. |
| speed | f32 | How fast it travels, in world units a second. |
| unset | bytes, 4 | A client writes nothing in particular here. |
| flag | u8 | Zero or one; what it means is not recorded. |
| cast | bytes, sized by remaining | A description of the cast the missile belongs to, at most 512 bytes. |
Vectors (1)
In 3.9–3.15
Command 58 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the missile is, in world units, along one ground axis. |
| atY | f32 | Where the missile is, in world units, in height. |
| atZ | f32 | Where the missile is, in world units, along the other ground axis. |
| unknownAX | f32 | What this holds is not recorded. |
| unknownAY | f32 | What this holds is not recorded. |
| unknownAZ | f32 | What this holds is not recorded. |
| travelX | f32 | Its end less its start, in world units, along one ground axis. |
| travelY | f32 | Its end less its start, in world units, in height. |
| travelZ | f32 | Its end less its start, in world units, along the other ground axis. |
| velocityX | f32 | How fast it travels, in world units a second, along one ground axis. |
| velocityY | f32 | How fast it travels, in world units a second, in height. |
| velocityZ | f32 | How fast it travels, in world units a second, along the other ground axis. |
| unknownBX | f32 | What this holds is not recorded. |
| unknownBY | f32 | What this holds is not recorded. |
| unknownBZ | f32 | What this holds is not recorded. |
| endX | f32 | Where it ends, in world units, along one ground axis. |
| endY | f32 | Where it ends, in world units, in height. |
| endZ | f32 | Where it ends, in world units, along the other ground axis. |
| targetX | f32 | Where its target is, or the point it aims at, in world units, along one ground axis. |
| targetY | f32 | Where its target is, or the point it aims at, in world units, in height. |
| targetZ | f32 | Where its target is, or the point it aims at, in world units, along the other ground axis. |
| age | f32 | How long since it was launched, in seconds. |
| speed | f32 | How fast it travels, in world units a second. |
| unset | bytes, 4 | A client writes nothing in particular here. |
| unknownC | f32 | What this holds is not recorded; a server ignores it. |
| unknownD | f32 | What this holds is not recorded; a server ignores it. |
| flag | u8 | Zero or one; what it means is not recorded. |
| cast | bytes, sized by remaining | A description of the cast the missile belongs to, at most 512 bytes. |