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

Units

How a server puts objects on the field and takes them away: champions, minions, neutral monsters, turrets, pets, markers and props. What a unit then does is in Movement, Combat and Spells, and what it is worth in Replication.

Every object is named by a net id, and Objects and identifiers says what removes each kind of object.

Creating

Each kind of object has its own message:

Several of these arrive on their own or inside the EnterSight that brings the unit into view (see Vision): a client takes either.

CharacterPreload has a client load a character’s art ahead of need.

In 4.1–4.19

A client drops a CreateChampion or a CreateNeutral that arrives before it sends CharacterSelected, reconnecting included. A server MUST send them after it receives CharacterSelected.

Changing and removing

TeamChanged moves a unit to another side, and ChampionRemoved takes a champion out of the world. A unit’s death is in Combat.

Bots

A server can tell a client what a bot is thinking (BotDebug), weighing (BotTargets) or doing (BotState). None of them changes what a player sees.

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).

CreateChampion

What a server sends to put a champion on the field. The header carries zero or names the object this is about; a client accepts either.

Definition.

In 4.1–4.17

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

BuildsCommand
4.1–4.1075
4.11–4.1776

The champion takes the id in champion, not the header’s; a client first removes any object holding that id. For the client’s own seat, name also becomes its own player’s name. A client drops the message while its map’s navigation data is unloaded, as early in a reconnection. It arrives on its own and also inside EnterSight.

FieldTypeWhat it is
championu32The name the champion answers to, so later messages can name it.
clientIdu32The client id of the player the champion belongs to, or 4294967295 where it belongs to none, as a bot’s does. A client takes the champion carrying its own client id as its own.
nodeu8Which network node the object belongs to, in a field of its own.
skillLevelu8It has no effect.
sideu8Nonzero for side 100, zero for side 200.
botu8Nonzero where a bot plays the seat; its shown name is then the client’s own bot name for asset, and name has no effect.
ranku8It has no effect.
spawnIndexu8Where the champion first stands and faces. From 0 to 5, its side’s base position plus the offset the map sets for the side’s head count (players and bots) and this index plus one, facing as the map sets for them. A client works out the head count itself, counting SpawnStart’s bots in it. From 6 up, the base position itself, facing along +X. Movement or sight data replaces it.
skini32Which look it wears.
nametext, 128 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 40 bytesThe name the client loads its art and sound under, written and padded as above.
stayDownf32How long it stays down, in seconds, where it is already down.
downForf32How long it has already been down, in seconds.
how1-byte bits
how.downbit 0 to 20 alive; 1 dead but acting on (the state a champion that keeps acting after death is in), where stayDown and downFor have no effect; 2 down, having been down for downFor with stayDown left. A client takes 3 to 7 as 0.
how.swapbit 3Set where the champion replaces another. Of no effect otherwise.
how.unusedbit 4 to 7Unused; a server writes zero.
Vectors (2)

one-on-4-10, one-on-4-17

In 4.18–4.20

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

It arrives on its own and also inside EnterSight.

FieldTypeWhat it is
championu32The name the champion answers to, so later messages can name it.
clientIdu32The client id of the player the champion belongs to, or 4294967295 where it belongs to none, as a bot’s does. A client takes the champion carrying its own client id as its own.
nodeu8Which network node the object belongs to, in a field of its own.
skillLevelu8What level the champion’s own spells stand at.
who1-byte bits
who.sidebit 0Which of the two sides the champion is on. A server sets it.
who.botbit 1Set where nobody holds it.
who.unusedbit 2 to 7Unused; a server writes zero.
ranku8How well it plays where nobody holds it.
spawnIndexu8Which of its side’s starting places the champion begins at, counted from zero. Where a champion first stands travels in EnterSight. A server can send 0 for every champion; where a champion stands is settled by the movement or sight data that follows.
skini32Which look it wears.
nametext, 128 bytesWhat the seat holding it is called. Written out in full and padded with zero bytes to the width above.
assettext, 40 bytesThe name the client loads its art and sound under, written and padded as above.
stayDownf32How long it stays down, in seconds, where it is already down.
downForf32How long it has already been down, in seconds.
deathKindu32What sort of death it is already in, where it is already down.
how1-byte bits
how.swapbit 0Set where the champion replaces another; a client whose champion it is resets every script’s state.
how.hiddenbit 1Set to fade the champion’s model out at once.
how.unusedbit 2 to 7Unused; a server writes zero.
Vectors (2)

another-on-4-20, one-on-4-20

SpawnBot

What a server sends to create a champion played by a bot. The header names no object: a server writes zero.

Definition.

In 4.1–4.19

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

BuildsCommand
4.1–4.10206
4.11–4.19207

A client first deletes any object it holds under the same id.

FieldTypeWhat it is
unitu32The id the bot’s champion takes.
nodeu8The network node it belongs to.
xf32Where it appears, in world units.
yf32Its height, in world units.
zf32Where it appears, in world units.
ranku8The bot’s rank.
sides2-byte bitsIts side.
sides.sidebit 0 to 8Its side: 100, 200 or 300.
sides.unusedbit 9 to 15Unused; a server writes zero.
skini32Which skin.
nametext, 64 bytesThe name shown for it. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesThe champion’s character name, which is also its unique name.
Vectors (2)

one-on-4-10, one-on-4-17

SpawnFromBarracks

What a server sends to put a unit on the field from the place its side sends them out of.

Definition.

In 4.1–4.17

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

It arrives on its own and also inside EnterSight. The header names the unit this is about.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the unit belongs to, in a field of its own rather than as part of the name that follows.
barracksu32The place it came out of, by the identifier its name gives as Objects and identifiers works it out. On map 1 that is a spawn point such as __P_Order_Spawn_Barracks__C01, not the inhibitor named Barracks_T1_C1: named by the inhibitor, a client creates nothing.
waveu8Which run of units it belongs to.
kindu8What sort of unit it is.
damageBonusi16What is added to the damage it deals.
healthBonusi16What is added to the health it holds.
levelu8The level it starts at.
Vectors (1)

one-on-4-17

In 4.18–4.20

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

It arrives on its own and also inside EnterSight. The header names the unit this is about.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the unit belongs to, in a field of its own rather than as part of the name that follows.
barracksu32The place it came out of.
waveu8Which run of units it belongs to.
kindu8What sort of unit it is.
damageBonusu16What is added to the damage it deals.
healthBonusu16What is added to the health it holds.
levelu8The level it starts at.
Vectors (1)

one-on-4-18

SpawnUnit

What a server sends to put a minion-like unit on the field, such as a ward.

Definition.

In 4.1–4.16

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

BuildsCommand
4.1–4.10123
4.11–4.16124

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. owner is only who gets the gold the unit earns; clone, where nonzero, is copied, state and inventory. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
owneru32The unit that owns it.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
flags2-byte bitsWhat sort of unit it is.
flags.teambit 0 to 8Which side, as a team number.
flags.ignoreCollisionbit 9Set where it does not block the way.
flags.wardbit 10Set where it is a ward.
flags.laneMinionbit 11Set where it is a lane minion.
flags.botbit 12Set where it is driven by the client’s own decisions.
flags.unusedbit 13 to 15Unused; a server writes zero.
targetableToTeamu32Which sides can aim at it, as a set of bits.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
levelu16The level it starts at.
Vectors (2)

one-on-4-1, one-on-4-11

In 4.17

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

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. owner is only who gets the gold the unit earns; clone, where nonzero, is copied, state and inventory; onlyVisibleTo, zero or unknown, restricts nothing. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
owneru32The unit that owns it.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
flags2-byte bitsWhat sort of unit it is.
flags.teambit 0 to 8Which side, as a team number.
flags.ignoreCollisionbit 9Set where it does not block the way.
flags.wardbit 10Set where it is a ward.
flags.laneMinionbit 11Set where it is a lane minion.
flags.botbit 12Set where it is driven by the client’s own decisions.
flags.unusedbit 13 to 15Unused; a server writes zero.
targetableToTeamu32Which sides can aim at it, as a set of bits.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
levelu16The level it starts at.
onlyVisibleTou32The unit that alone can see it, or zero.
Vectors (1)

one-on-4-17

In 4.18–4.20

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

A client deletes any object holding the new unit’s id first, and does nothing more where it cannot make the unit. owner is only who gets the gold the unit earns; clone, where nonzero, is copied, state and inventory; onlyVisibleTo, zero or unknown, restricts nothing. The header names the unit that put it there.

FieldTypeWhat it is
unitu32The name the new unit answers to.
owneru32The unit that owns it.
nodeu8Which network node the unit belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32Where it stands, in height, in world units.
atZf32Where it stands, along the other ground axis, in world units.
skini32Which look it wears.
cloneu32The unit it copies, or zero.
teamu16Which side, as a team number.
flags1-byte bitsWhat sort of unit it is.
flags.ignoreCollisionbit 0Set where it does not block the way.
flags.wardbit 1Set where it is a ward.
flags.laneMinionbit 2Set where it is a lane minion.
flags.botbit 3Set where it is driven by the client’s own decisions.
flags.unusedbit 4 to 7Unused; a server writes zero.
unusedu32Unused; a server writes zero.
visibilitySizef32How large it counts as for sight, in world units.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
levelu16The level it starts at.
onlyVisibleTou32The unit that alone can see it, or zero.
Vectors (1)

one-on-4-20

CreateNeutral

What a server sends to put a unit that belongs to no side on the field. The header names the unit this is about.

Definition.

In 4.1

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

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. A client drops the message while its map’s navigation data is unloaded. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
campIcontext, 64 bytesThe name of the icon the minimap shows at the camp, written in full and padded with zero bytes to the width above; empty shows none. A client uses it only where it creates the camp.
proximityAnimationstext, 64 bytesThe name of a set of animations the camp plays as units come near, written and padded as above; empty means none. A client uses it only where it creates the camp.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first, and to no camp otherwise.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
leveli32The level it starts at.
Vectors (1)

inactive-on-4-1

In 4.2–4.8

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

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. Its spawnAnimation plays only where named and time is left to spawn, and it cannot be targeted while it plays. A client drops the message while its map’s navigation data is unloaded. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
campIcontext, 64 bytesThe name of the icon the minimap shows at the camp, written in full and padded with zero bytes to the width above; empty shows none. A client uses it only where it creates the camp.
spawnAnimationtext, 64 bytesThe name the client loads what it does on arriving under, written and padded as above.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first, and to no camp otherwise.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
leveli32The level it starts at.
spawnDurationf32How long its arrival takes, in seconds.
spawnElapsedf32How much of its arrival has already passed, in seconds.
Vectors (1)

inactive-on-4-2

In 4.9–4.11

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

BuildsCommand
4.9–4.1098
4.1199

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. Its spawnAnimation plays only where named and time is left to spawn, and it cannot be targeted while it plays. A client drops the message while its map’s navigation data is unloaded. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
spawnAnimationtext, 64 bytesThe name the client loads what it does on arriving under, written and padded as above.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first, and to no camp otherwise.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
leveli32The level it starts at.
spawnDurationf32How long its arrival takes, in seconds.
spawnAtf32When it arrives, as a moment on the match clock, in seconds.
Vectors (2)

inactive-on-4-9, inactive-on-4-11

In 4.12–4.17

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

The monster faces from where it stands toward the facing point, or along +Z where the two are the same. Its spawnAnimation plays only where named and time is left to spawn, and it cannot be targeted while it plays. A client drops the message while its map’s navigation data is unloaded. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
spawnAnimationtext, 64 bytesThe name the client loads what it does on arriving under, written and padded as above.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How the monster wanders. It has no effect. Values: 0 inactive, 1 hostile, 2 fleeing.
campu32Which camp the unit belongs to. A client adds the unit to that camp where a CampMarker has placed it first, and to no camp otherwise.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
leveli32The level it starts at.
spawnDurationf32How long its arrival takes, in seconds.
spawnAtf32When it arrives, as a moment on the match clock, in seconds.
behaviouru8It has no effect.
Vectors (1)

inactive-on-4-12

In 4.18–4.20

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

A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
unitu32The name the unit answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
atXf32Where the unit stands, along one ground axis, in world units.
atYf32Where the unit stands, in height, in world units.
atZf32Where the unit stands, along the other ground axis, in world units.
campAtXf32Where the camp it belongs to sits, along one ground axis, in world units.
campAtYf32Where the camp it belongs to sits, in height, in world units.
campAtZf32Where the camp it belongs to sits, along the other ground axis, in world units.
facingXf32A point the unit faces toward, along one ground axis, in world units.
facingYf32That point, in height.
facingZf32That point, along the other ground axis.
nametext, 64 bytesWhat this unit is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
uniqueNametext, 64 bytesA further name the unit answers to, written and padded as above.
spawnAnimationtext, 64 bytesThe name the client loads what it does on arriving under, written and padded as above.
sideu32The side it belongs to, or zero where it belongs to none.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to the health it holds.
roamingu32How it roams, which changes nothing a client shows. Values: 0 still, 1 hostile, 2 fleeing.
campu32Which camp it belongs to.
effectSideu32The side that gains what killing it grants.
revealEventi32What makes the unit known to a side that cannot see it.
leveli32The level it starts at.
spawnDurationf32How long its arrival takes, in seconds.
spawnAtf32When it arrives, as a moment on the match clock, in seconds.
Vectors (1)

still-on-4-18

SpawnPet

What a server sends to put a pet on the field.

Definition.

In 4.1–4.19

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

BuildsCommand
4.1–4.1054
4.11–4.1955

A client deletes any object holding the header’s id; spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat, its gold going to the owner; and registers it under the header’s id and node. spellLevel, duration and effect have no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The unit it belongs to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one.
durationf32How long it lasts, in seconds.
sideu32Which side.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.minimapIconbit 2Set where it shows on the minimap.
flags.unusedbit 3 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
Vectors (3)

another-on-4-10, one-on-4-10, one-on-4-17

In 4.20

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

A client deletes any object holding the header’s id; spawns nothing where it does not know the owner; kills the owner’s earlier pet if it lives; makes the pet, replacing its script with script; gives it the owner’s seat, its gold going to the owner; and registers it under the header’s id and node. spellLevel, duration and effect have no effect. The header names the pet. A server sends it to clients watching a match.

FieldTypeWhat it is
owneru32The unit it belongs to.
nodeu8Which network node it belongs to.
atXf32Where it stands, along one ground axis, in world units.
atYf32In height, in world units.
atZf32Along the other ground axis, in world units.
spellLeveli32The level of the spell that summoned it, plus one.
durationf32How long it lasts, in seconds.
sideu32Which side.
damageBonusi32What is added to the damage it deals.
healthBonusi32What is added to its health.
nametext, 128 bytesIts name, padded with zero bytes.
assettext, 32 bytesThe name the client loads its art under, padded with zero bytes.
skini32Which look it wears.
effecttext, 64 bytesAn effect it carries, padded with zero bytes.
cloneu32The unit it copies, or zero.
flags1-byte bitsHow it behaves.
flags.copyInventorybit 0Set where it copies its owner’s items.
flags.clearOwnerTargetbit 1Set where its owner’s target is cleared.
flags.minimapIconbit 2Set where it shows on the minimap, should it be a clone.
flags.startFadedbit 3Set where it starts fully faded out, as though faded to nothing at once; a later fade can bring it back.
flags.unusedbit 4 to 7Unused; a server writes zero.
scripttext, 32 bytesThe script that drives it, padded with zero bytes.
Vectors (1)

one-on-4-20

CreateTurret

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

Definition.

In 4.1–4.17

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

BuildsCommand
4.1–4.10156
4.11–4.17157

A client matches name exactly against the map’s turrets. With no match it only removes any object holding the id; a matched turret missing or dead is rebuilt before it takes the id. A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
turretu32The name the turret answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
nametext, 64 bytesWhat this turret is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
how1-byte bits
how.targetablebit 0It has no effect: a turret’s targetability comes by replication.
how.unusedbit 1 to 7Unused; a server writes zero.
targetableByu32Who can target the turret. A server writes the value replication carries for the turret: 8388608 not its own side, 16777216 not the other side, 25165824 nobody, 33554432 everyone, anything else both sides. A client takes the turret’s targetability from replication alone.
Vectors (2)

one-on-4-10, one-on-4-17

In 4.18–4.20

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

A server sends it only inside EnterSight, and the channel and delivery given here are those of the message carrying it.

FieldTypeWhat it is
turretu32The name the turret answers to, so later messages can name it.
nodeu8Which network node the object belongs to, in a field of its own.
nametext, 64 bytesWhat this turret is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
how1-byte bitsUnused; a server writes zero.
how.targetablebit 0Unused; a server writes zero.
how.unknownbit 1 to 7Unused; a server writes zero.
targetableByu32Unused; a server writes zero.
Vectors (2)

another-on-4-20, one-on-4-20

SpawnTurret

What a server sends to create a turret of its own choosing. A client first deletes any object it holds under the same id, and does nothing more where it cannot make the character. The header carries zero.

Definition.

In 4.12–4.14

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

FieldTypeWhat it is
unitu32The id the turret takes.
owneru32The unit credited with the gold for its kills, or zero for none.
nodeu8The network node it belongs to.
nametext, 64 bytesThe turret’s object name. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesIts character, that is, its model.
xf32Where it stands, in world units.
yf32Its height, in world units.
zf32Where it stands, in world units.
flags2-byte bitsIts side and state.
flags.sidebit 0 to 8Its side.
flags.invulnerablebit 9Set where it takes no damage.
flags.unusedbit 10 to 15Unused; a server writes zero.
Vectors (1)

one-on-4-12

In 4.15

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

FieldTypeWhat it is
unitu32The id the turret takes.
owneru32The unit credited with the gold for its kills, or zero for none.
nodeu8The network node it belongs to.
nametext, 64 bytesThe turret’s object name. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesIts character, that is, its model.
skini32Which skin.
xf32Where it stands, in world units.
yf32Its height, in world units.
zf32Where it stands, in world units.
flags2-byte bitsIts side and state.
flags.sidebit 0 to 8Its side.
flags.invulnerablebit 9Set where it takes no damage.
flags.unusedbit 10 to 15Unused; a server writes zero.
Vectors (1)

one-on-4-15

In 4.16–4.17

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

FieldTypeWhat it is
unitu32The id the turret takes.
owneru32The unit credited with the gold for its kills, or zero for none.
nodeu8The network node it belongs to.
nametext, 64 bytesThe turret’s object name. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesIts character, that is, its model.
skini32Which skin.
xf32Where it stands, in world units.
yf32Its height, in world units.
zf32Where it stands, in world units.
deathDelayf32Seconds after it dies before its model is changed or taken away.
flags2-byte bitsIts side and state.
flags.sidebit 0 to 8Its side.
flags.invulnerablebit 9Set where it takes no damage.
flags.unusedbit 10 to 15Unused; a server writes zero.
Vectors (1)

one-on-4-16

In 4.18–4.20

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

FieldTypeWhat it is
unitu32The id the turret takes.
owneru32The unit credited with the gold for its kills, or zero for none.
nodeu8The network node it belongs to.
nametext, 64 bytesThe turret’s object name. The text ends at its first zero byte, which falls within the field.
charactertext, 64 bytesIts character, that is, its model.
skini32Which skin.
xf32Where it stands, in world units.
yf32Its height, in world units.
zf32Where it stands, in world units.
deathDelayf32Seconds after it dies before its model is changed or taken away.
flags1-byte bitsIts side and state.
flags.unusedLowbit 0Unused; a server writes zero.
flags.invulnerablebit 1Set where it takes no damage.
flags.unusedbit 2 to 7Unused; a server writes zero.
sideu16Its side.
Vectors (1)

one-on-4-18

CreateFollower

What a server sends to put an object on the field that follows a unit. The header names the unit followed.

Definition.

In every range of this book

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

BuildsCommand
4.1–4.10240
4.11–4.20241
FieldTypeWhat it is
followeru32The name the new object answers to.
nodeu8Which network node it belongs to.
skini32Which look it wears.
nametext, 64 bytesIts name, padded with zero bytes.
assettext, 64 bytesThe name the client loads its art under, padded with zero bytes.
Vectors (4)

another-on-4-10, one-on-4-10, one-on-4-17, one-on-4-20

FollowerMaster

What a server sends to change which unit a following object follows. The header names the follower.

Definition.

In every range of this book

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

BuildsCommand
4.1–4.10241
4.11–4.20242
FieldTypeWhat it is
masteru32The unit it now follows; one no unit answers to leaves it following none.
Vectors (4)

another-on-4-10, one-on-4-10, one-on-4-17, one-on-4-20

SpawnMarker

What a server sends to create an unseen object at a place, which other messages can then name. A client first deletes any object it holds under the same id. The header carries zero.

Definition.

In every range of this book

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

FieldTypeWhat it is
unitu32The id the marker takes.
nodeu8The network node it belongs to.
xf32Where it stands, in world units.
yf32Its height, in world units.
zf32Where it stands, in world units.
Vectors (1)

one-on-4-20

MarkerMoved

What a server sends to move a marker (SpawnMarker) from one place toward another. The header names the marker. A client sets it at the start at once.

Definition.

In every range of this book

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

FieldTypeWhat it is
fromXf32Where it starts, in world units.
fromZf32Where it starts, in world units.
toXf32Where it goes, in world units.
toZf32Where it goes, in world units.
speedf32How fast it goes, in world units a second. Below zero it jumps to the goal; zero leaves it at the start.
faceGoalu8One to turn it the way it moves, zero not to.
Vectors (2)

one-on-4-17, one-on-4-20

MapProp

What a server sends to place a prop on the map: a thing that stands there and is looked at rather than one that acts. The header carries zero or names the object this is about, and a client accepts either.

Definition.

In 4.1–4.17

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

BuildsCommand
4.1–4.10207
4.11–4.17208

A client takes the prop’s id from prop, not from the header. A scenery prop is turned by pitch, then yaw, then roll, each about the fixed world axes; none is negated or wrapped. An active prop only turns about the up axis, to face the ground direction its x and z give, and faces +z where both are zero.

FieldTypeWhat it is
propu32The name the prop answers to, so later messages can name it.
nodeu8Which network node the object belongs to. It is a field of its own, not the leading byte of the name beside it.
skini32Which look the prop wears.
atXf32Where the prop stands, along one ground axis, in world units.
atYf32Where the prop stands, in height, in world units.
atZf32Where the prop stands, along the other ground axis, in world units.
rotationXf32For scenery, the pitch in degrees: a turn about the x axis, positive turning +y toward +z. For an active prop, x of the direction it faces.
rotationYf32For scenery, the yaw in degrees: a turn about the up axis, positive turning +z toward +x, so yaw 0 faces +z and 90 faces +x. For an active prop, y of its facing, which does not turn it.
rotationZf32For scenery, the roll in degrees: a turn about the z axis, positive turning +x toward +y. For an active prop, z of the direction it faces.
offsetXf32What is added to where it stands, along one ground axis, in world units.
offsetYf32What is added to where it stands, in height, in world units.
offsetZf32What is added to where it stands, along the other ground axis, in world units.
scaleXf32What its drawn size is scaled by, along one ground axis.
scaleYf32What its drawn size is scaled by, in height.
scaleZf32What its drawn size is scaled by, along the other ground axis.
side2-byte bitsThe side the prop belongs to. A server sends 300, the neutral side.
side.sidebit 0 to 8The prop’s side.
side.unusedbit 9 to 15Unused; a server writes zero.
skillLevelu8Unused; a server writes zero.
ranku8How far it is advanced.
kindu8What sort of prop it is; a client makes nothing for any other value. A client first deletes any object holding the prop’s id, whatever the kind. Values: 0 active, 1 scenery.
nametext, 64 bytesWhat this prop is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (2)

one-on-4-10, one-on-4-17

In 4.18–4.20

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

FieldTypeWhat it is
propu32The name the prop answers to, so later messages can name it.
nodeu8Which network node the object belongs to. It is a field of its own, not the leading byte of the name beside it.
skini32Which look the prop wears.
atXf32Where the prop stands, along one ground axis, in world units.
atYf32Where the prop stands, in height, in world units.
atZf32Where the prop stands, along the other ground axis, in world units.
rotationXf32An angle the prop is turned by about a ground axis, in degrees, from zero up to but not reaching 360.
rotationYf32An angle the prop is turned by about the upright axis, in degrees, from zero up to but not reaching 360.
rotationZf32An angle the prop is turned by about the other ground axis, in degrees, from zero up to but not reaching 360.
offsetXf32What is added to where it stands, along one ground axis, in world units.
offsetYf32What is added to where it stands, in height, in world units.
offsetZf32What is added to where it stands, along the other ground axis, in world units.
scaleXf32What its drawn size is scaled by, along one ground axis.
scaleYf32What its drawn size is scaled by, in height.
scaleZf32What its drawn size is scaled by, along the other ground axis.
sideu16The side it belongs to, or zero where it belongs to none.
ranku8How far it is advanced.
skillLevelu8What level the prop’s own doings stand at.
kindu32What sort of prop it is.
nametext, 64 bytesWhat this prop is called, so a client can tell one from another. Written out in full and padded with zero bytes to the width above.
assettext, 64 bytesThe name the client loads its art and sound under, written and padded as above.
Vectors (2)

another-on-4-20, one-on-4-20

MapPropChanged

What a server sends to change something about a prop already on the map. The kind of change is named inside it, and the fields around the kind keep one layout whatever it is. The header names no object: it carries zero.

Definition.

In 4.1–4.17

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

BuildsCommand
4.1–4.10208
4.11–4.17209
FieldTypeWhat it is
nametext, 64 bytesA name: an animation’s, a particle’s or a look’s, by the change below. The name ends at its first zero byte; the bytes after it carry no meaning.
firstf32For animate, when the animation starts, in seconds of match time.
secondf32For animate, how long the animation runs, in seconds.
propu32The object changed.
valueu32A value the change uses: for animate, the animation’s flags; for linkEffect, the particle effect value; for look, the look’s number.
changeu8What changes. A client does nothing for any other value, nor where prop names no prop it holds. Values: 0 animate, 1 linkEffect, 2 look.
optionu8For animate, nonzero to remove the prop after the animation; for linkEffect, zero.
effectu8For linkEffect, which of the prop’s effect values to drive.
pointu8For linkEffect, which capture point drives it.
Vectors (2)

one-on-4-10, one-on-4-17

In 4.18–4.20

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

FieldTypeWhat it is
nametext, 64 bytesThe name the change loads, such as a set of movements the prop plays. Written out in full and padded with zero bytes to the width above.
startsAtf32When the change begins, in milliseconds of match time.
lastsf32How long the change runs, in seconds.
propu32The prop changed, by the name MapProp gave it.
flagsu32For kind 1, passed to the movements: 2 holds the last pose where they do not repeat. For kind 3, the look’s number. Not read for kind 2.
kindu32What sort of change it is. A client ignores any value but 1, 2 and 3, and a prop it does not know. Values: 1 animate, 2 captureEffect, 3 look.
byteAu8For kind 1, not zero to remove the prop once the movements end. For kind 2, the change applies only where it is zero.
byteBu8For kind 2, which of the prop’s particle values to drive. Otherwise unused.
byteCu8For kind 2, the capture point whose state drives it. Otherwise unused.
Vectors (2)

another-on-4-20, one-on-4-20

CharacterPreload

What a server sends to have a character and a skin of it loaded ahead of need. Nothing shows. The header carries zero.

Definition.

In 4.6–4.20

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

BuildsCommand
4.6–4.10137
4.11–4.20138
FieldTypeWhat it is
skini32Which skin.
charactertext, 64 bytesThe character’s name. It ends at its first zero byte.
Vectors (3)

one-on-4-10, one-on-4-17, one-on-4-20

TeamChanged

What a server sends to move a unit to another side. The header names the unit.

Definition.

In every range of this book

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

BuildsCommand
4.1–4.10214
4.11–4.20215
FieldTypeWhat it is
unitu32The unit.
sideu32Its new side.
Vectors (4)

another-on-4-10, one-on-4-10, one-on-4-17, one-on-4-20

ChampionRemoved

What a server sends to take a champion out of the world. It carries nothing of its own. The header names the champion.

Definition.

In every range of this book

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

No body.

Vectors (2)

one-on-4-17, one-on-4-20

BotDebug

What a server sends describing what a bot is thinking. It changes nothing a client shows. The header names the unit.

Definition.

In every range of this book

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

FieldTypeWhat it is
nametext, 64 bytesThe bot’s name.
strategytext, 64 bytesIts strategy.
behaviourtext, 64 bytesIts behaviour.
tasktext, 64 bytesIts task.
state1text, 64 bytesA line of its state.
state2text, 64 bytesA line of its state.
state3text, 64 bytesA line of its state.
Vectors (2)

one-on-4-17, one-on-4-20

BotTargets

What a server sends naming the units a bot is weighing. It changes nothing a client shows. The header names the unit.

Definition.

In every range of this book

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

BuildsCommand
4.1–4.10104
4.11–4.20105
FieldTypeWhat it is
targets5 × u32Five units.
Vectors (3)

one-on-4-10, one-on-4-17, one-on-4-20

BotState

What a server sends naming a bot’s state. It changes nothing a client shows. The header names the unit.

Definition.

In every range of this book

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

BuildsCommand
4.1–4.10169
4.11–4.20170
FieldTypeWhat it is
statei32The state.
Vectors (3)

one-on-4-10, one-on-4-17, one-on-4-20