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

Communication

Chat, pings, emotes, and the sound and music a server can drive.

Chat

Players chat with Chat, which carries a line to everyone or to a side. A server puts a line of its own in a client’s chat with SystemMessage. A server can limit how many more lines a player can send with ChatAllowance.

Pings and emotes

A client marks a point on the map with MapPing, and a server shows the ping to everyone meant to see it with PingPlaced. A client asks to play an emote with PlayEmote, and a server shows it with EmotePlayed. A server can also tell clients of a voice command a champion gave (VoiceCommand) and of an emote a champion played for the moment (ContextEmote).

In 1.0.0.140

A client plays the voice line VoiceCommand names, unless its player has muted the champion’s player.

Sound and music

A server can play a sound once (SoundPlayed) or a voice event (VoiceEvent), which a client can report done with VoiceEventDone. A server can also set a champion’s skin music (ThemeMusic), drive the music (MusicCue), mute or unmute a kind of sound (VolumeMuted) and fade sound effects out (FadeSounds).

In 1.0.0.130–1.0.0.140

Where a VoiceEvent asks for an answer, a client sends VoiceEventDone once it has played the event.

In 1.0.0.130–1.0.0.140

A client answers a VoiceEvent it cannot play at once.

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

Chat

Text one player sends the others during a match. Messages players exchange outside a match do not travel on this connection at all.

Definition.

In 1.0.0.130–1.0.0.139

Command 0 on chat, sent by either side, reliable.

A line of chat. A client sends one as its player says something, and shows one a server sends in its chat box.

FieldTypeWhat it is
speakeru32The client id the line is from. A client sends its own. From a server, a client shows the line with the name of the player holding that client id, coloured for whether that player is on its own side, and with no name for a client id nobody holds; 4294967295 shows the whole line with no name and no tag. A client does not show a line from a player its own player has ignored or muted.
audienceu321 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise. Values: 0 everyone, 1 team.
textLengthu32The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does.
texttext, sized by textLengthThe line; a client sends at most 511 bytes of it, and reads it up to the zero byte that ends it.
terminatorbytes, 1A zero byte closing the text.

In 1.0.0.140–1.0.0.150

Command 0 on chat, sent by either side, reliable.

A line of chat. A client sends one as its player says something, and shows one a server sends in its chat box.

FieldTypeWhat it is
speakeru32The client id the line is from. A client sends its own. From a server, a client shows the line with the name and champion of the player holding that client id, coloured for their side, and with no name for a client id nobody holds; 4294967295 shows the line as said to everyone with no name, less its first three bytes.
audienceu321 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone, except that where VersionSync hides all chat and the player has not turned it back on, a client does not show the line unless speaker is 4294967295. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise. Values: 0 everyone, 1 team.
textLengthu32The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does.
texttext, sized by textLengthThe line; a client sends at most 511 bytes of it, and reads it up to the zero byte that ends it.
terminatorbytes, 1A zero byte closing the text.
Vectors (1)

everyone-on-1-0-0-150

In 1.0.0.151

Command 0 on chat, sent by either side, reliable.

A line of chat. A client sends one as its player says something, and shows one a server sends in its chat box.

FieldTypeWhat it is
speakeru32The client id the line is from. A client sends its own. From a server, a client shows the line with the name and champion of the player holding that client id, coloured for their side, and with no name for a client id nobody holds; 4294967295 shows the line as said to everyone with no name, less its first three bytes.
audienceu321 for the speaker’s side alone, which a client shows without a tag; any other value from a server is shown tagged as said to everyone. A client sends 0 where its player began the line with the all-chat prefix, which it leaves out of the text, and 1 otherwise. Values: 0 everyone, 1 team.
textLengthu32The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does.
texttext, sized by textLengthThe line; a client sends at most 127 bytes of it, and reads it up to the zero byte that ends it.
terminatorbytes, 1A zero byte closing the text.
Vectors (1)

everyone-on-1-0-0-151

In 1.0.0.152–3.1.0.0

Command 104 on chat, sent by either side, reliable.

FieldTypeWhat it is
clientIdu32The client id of the sender.
netIdu32The entity a receiving end attributes the text to where the seat does not name one. Where the seat names a speaker, that is what a receiving end uses instead.
localizedu8Whether the text is a phrase to show as it stands, or a key naming one the receiving end looks up and fills in from the parameters. Both ends send it clear.
audiencei32Who the message reaches. Values: 0 everyone, 1 team.
textLengthu32The length of the text, counted in bytes and excluding the byte that ends it. A client shows the text to its first zero byte.
texttext, sized by textLengthThe line, at most 127 characters.
terminatorbytes, 1A zero byte closing the text.

SystemMessage

What a server sends to put a line of its own in a client’s chat. The header names no object: it carries zero.

Definition.

In 1.0.0.154–3.1.0.0

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

FieldTypeWhat it is
sourceu32The unit the line is credited to, or zero where none is.
texttext, 512 bytesThe line itself. Written out in full and padded with zero bytes to the width above.
Vectors (1)

one-on-1-0-0-154

MapPing

What a client sends to mark a point on the map for the others. The header names no object: it carries zero.

Definition.

In 1.0.0.130–1.0.0.137

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

BuildsCommand
1.0.0.130–1.0.0.13190
1.0.0.132–1.0.0.13791
FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (2)

here-on-1-0-0-131, here-on-1-0-0-136

In 1.0.0.138–1.0.0.143

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

While watching a match, a client places the mark only on its own screen and sends nothing.

FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. It writes only the low 4 bits: the high 4 carry no meaning, and a server ignores them. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (1)

here-on-1-0-0-143

In 1.0.0.144–1.0.0.147

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

FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
yf32The height of the place pinged.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (1)

here-on-1-0-0-147

In 1.0.0.148–3.1.0.0

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

BuildsCommand
1.0.0.148–1.0.0.14987
1.0.0.150–3.1.0.084
FieldTypeWhat it is
xf32Where on the map, along one ground axis, in world units.
zf32Where on the map, along the other ground axis, in world units.
targetu32A network object the mark is on, or zero where it is on open ground.
kindu8Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere.
Vectors (2)

here-on-1-0-0-149, here-on-1-0-0-154

PingPlaced

What a server sends to show a ping on the map to everyone meant to see it.

Definition.

In 1.0.0.130–1.0.0.137

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

BuildsCommand
1.0.0.130–1.0.0.13170
1.0.0.132–1.0.0.13771

A client drops the whole message where category is past its own list of categories. The header names the champion that placed the ping, as source does.

FieldTypeWhat it is
atXf32Where the ping sits, along one ground axis, in world units.
atYf32The height of the place, as a client shows it.
atZf32Where it sits, along the other, in world units.
targetu32The unit pinged, or zero where a place was pinged instead.
sourceu32The unit that placed it.
how1-byte bits
how.categorybit 0 to 3Which sort of ping.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.throttledbit 6Set where the player is pinging too often: a client places no ping, plays nothing and announces nothing, and only writes a notice in its own chat.
how.unusedbit 7Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–1.0.0.147

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

BuildsCommand
1.0.0.138–1.0.0.14371
1.0.0.144–1.0.0.14766

A client drops the whole message where category is past its own list of categories. The header names the champion that placed the ping, as source does.

FieldTypeWhat it is
atXf32Where the ping sits, along one ground axis, in world units.
atYf32The height of the place, as a client shows it.
atZf32Where it sits, along the other, in world units.
targetu32The unit pinged, or zero where a place was pinged instead.
sourceu32The unit that placed it.
how1-byte bits
how.categorybit 0 to 3Which sort of ping.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.throttledbit 6Set where the player is pinging too often: a client places no ping, plays nothing and announces nothing, and only writes a notice in its own chat.
how.speakbit 7Set where the unit says something about it.
Vectors (2)

one-on-1-0-0-143, one-on-1-0-0-147

In 1.0.0.148–3.1.0.0

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

BuildsCommand
1.0.0.148–1.0.0.14966
1.0.0.150–3.1.0.063

A client drops the whole message where category is past its own list of categories. The header names the champion that placed the ping, as source does.

FieldTypeWhat it is
atXf32Where the ping sits, along one ground axis, in world units.
atZf32Where it sits, along the other, in world units.
targetu32The unit pinged, or zero where a place was pinged instead.
sourceu32The unit that placed it.
how1-byte bits
how.categorybit 0 to 3Which sort of ping.
how.playSoundbit 4Set where the client plays a sound for it.
how.showInChatbit 5Set where the client writes a line about it.
how.throttledbit 6Set where the player is pinging too often: a client places no ping, plays nothing and announces nothing, and only writes a notice in its own chat.
how.speakbit 7Set where the unit says something about it.
Vectors (1)

one-on-1-0-0-149

PlayEmote

What a client sends to play an emote. The header names the sender’s champion.

Definition.

In 1.0.0.130–1.0.0.134

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

BuildsCommand
1.0.0.130–1.0.0.13176
1.0.0.132–1.0.0.13477
FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; one past the list plays nothing.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-134

In 1.0.0.135–3.1.0.0

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

BuildsCommand
1.0.0.135–1.0.0.13777
1.0.0.138–1.0.0.14378
1.0.0.144–1.0.0.14972
1.0.0.150–3.1.0.069
FieldTypeWhat it is
emoteu8Which emote, by the number the client knows it as. Its four emote keys send 3, 1, 0 and 2, the numbers EmotePlayed plays.
Vectors (4)

one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

EmotePlayed

What a server sends to say a unit played an emote. The header names the champion playing the emote.

Definition.

In 1.0.0.130–1.0.0.131

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

FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; a value at or past the end of the list plays nothing.
Vectors (1)

one-on-1-0-0-131

In 1.0.0.132–1.0.0.134

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

FieldTypeWhat it is
emoteu32Which emote, by its place in the client’s list; one past the list plays nothing.
Vectors (1)

one-on-1-0-0-134

In 1.0.0.135–1.0.0.143

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

A client ignores the message while the champion is dead.

FieldTypeWhat it is
emoteu8Which emote, by the number the client knows it as. A client plays an animation on the champion for each of 0, 1, 2 and 3, a different one each, and none for any higher value.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

BuildsCommand
1.0.0.144–1.0.0.14968
1.0.0.150–3.1.0.065
FieldTypeWhat it is
emoteu8Which emote, by the number the client knows it as. A client plays an animation on the champion for 0, 1 and 2, a different one each, and none for 3.
Vectors (1)

one-on-1-0-0-149

VoiceCommand

What a server sends about a voice command a champion gave. The header names the champion.

Definition.

In 1.0.0.138–1.0.0.143

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

A client plays the champion’s voice line that call names, about target, passing on highlight and ping. It does nothing where it has no champion of its own or the player behind the champion is muted.

FieldTypeWhat it is
padding1u16Padding before call. Unused; a server writes zero.
padding2u8Padding before call. Unused; a server writes zero.
callu32Which call.
targetu32The unit the call is about.
flags1-byte bitsHow it is shown.
flags.highlightbit 0Set where the player’s icon is highlighted.
flags.pingbit 1Set where it marks a ping.
flags.unusedbit 2 to 7Unused; a server writes zero.
padding3u16Padding after flags. Unused; a server writes zero.
padding4u8Padding after flags. Unused; a server writes zero.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

BuildsCommand
1.0.0.144–1.0.0.14969
1.0.0.150–3.1.0.066

A client accepts it on a champion only, and it has no effect.

FieldTypeWhat it is
padding1u16Padding before call. Unused; a server writes zero.
padding2u8Padding before call. Unused; a server writes zero.
callu32Which call.
targetu32The unit the call is about.
flags1-byte bitsHow it is shown.
flags.highlightbit 0Set where the player’s icon is highlighted.
flags.pingbit 1Set where it marks a ping.
flags.unusedbit 2 to 7Unused; a server writes zero.
padding3u16Padding after flags. Unused; a server writes zero.
padding4u8Padding after flags. Unused; a server writes zero.
Vectors (2)

one-on-1-0-0-149, one-on-1-0-0-154

ContextEmote

What a server sends about an emote a champion played for the moment. It changes nothing a client shows. The header names the champion.

Definition.

In 1.0.0.154–3.1.0.0

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

FieldTypeWhat it is
emoteu8Which emote.
parameteru32A hashed parameter.
flagsu8Flags with no meaning given.
Vectors (1)

one-on-1-0-0-154

VoiceEvent

What a server sends to play a voice event. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.137

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

BuildsCommand
1.0.0.130–1.0.0.131125
1.0.0.132–1.0.0.137126
FieldTypeWhat it is
foldertext, 64 bytesThe event’s folder. It has no effect where kind is 1.
eventtext, 64 bytesThe event’s name; for kind 1, the conversation’s.
callbacku8For kind 0, nonzero asks the client to send VoiceEventDone once the event has played. A client sends it at once where it cannot play the event, whatever this holds.
handleu32For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion.
Vectors (2)

one-on-1-0-0-131, one-on-1-0-0-136

In 1.0.0.138–3.1.0.0

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

BuildsCommand
1.0.0.138–1.0.0.143128
1.0.0.144–1.0.0.149122
1.0.0.150–3.1.0.0119
FieldTypeWhat it is
foldertext, 64 bytesThe event’s folder. It has no effect where kind is 1.
eventtext, 64 bytesThe event’s name; for kind 1, the conversation’s.
callbacku8For kind 0, nonzero asks the client to send VoiceEventDone once the event has played. A client sends it at once where it cannot play the event, whatever this holds.
kindu8What sort of event. A client does nothing for any other value. Values: 0 general, 1 champion.
handleu32For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion.
Vectors (3)

general-on-1-0-0-143, general-on-1-0-0-149, general-on-1-0-0-154

VoiceEventDone

What a client sends once a voice event (VoiceEvent) that asked for it has played. The header carries zero.

Definition.

In 1.0.0.130–1.0.0.137

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

A client sends it at once where it could not play the event.

FieldTypeWhat it is
handleu32The number the VoiceEvent carried.

In 1.0.0.138–3.1.0.0

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

It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.

FieldTypeWhat it is
handleu32The number the VoiceEvent carried.

MusicCue

What a server sends to drive the music a client plays.

Definition.

In 1.0.0.130–1.0.0.138

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

BuildsCommand
1.0.0.130–1.0.0.131229
1.0.0.132–1.0.0.134230
1.0.0.135232
1.0.0.136–1.0.0.137230
1.0.0.138232
FieldTypeWhat it is
cueu8What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end.
eventu32Which cue or event.
Vectors (5)

begin-on-1-0-0-131, begin-on-1-0-0-134, begin-on-1-0-0-135, begin-on-1-0-0-136, begin-on-1-0-0-138

In 1.0.0.139–1.0.0.140

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

The header names a champion: a client acts on the message for any champion it holds, not only its own.

FieldTypeWhat it is
cueu8What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end.
eventu32Which cue or event.
Vectors (1)

begin-on-1-0-0-140

In 1.0.0.141–3.1.0.0

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

BuildsCommand
1.0.0.141–1.0.0.143233
1.0.0.144–1.0.0.149220
1.0.0.150–3.1.0.0217

The header names the champion of the player it is sent to.

FieldTypeWhat it is
cueu8What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end.
eventu32Which cue or event.
Vectors (3)

begin-on-1-0-0-143, begin-on-1-0-0-149, begin-on-1-0-0-154

VolumeMuted

What a server sends to mute or unmute one kind of sound. The header carries zero.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.14341
1.0.0.144–3.1.0.038
FieldTypeWhat it is
categoryu8Which kind. A client ignores the message from 7 up. Values: 0 all, 1 music, 2 effects, 3 announcer, 4 unitResponses, 5 environment, 6 mainEffects.
state1-byte bitsWhether it is muted.
state.mutedbit 0Set to mute, clear to unmute.
state.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

music-on-1-0-0-143

FadeSounds

What a server sends to fade a client’s sound effects out. The header carries zero.

Definition.

In every range of this book

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

BuildsCommand
1.0.0.130–1.0.0.13198
1.0.0.132–1.0.0.13799
1.0.0.138–1.0.0.143101
1.0.0.144–1.0.0.14995
1.0.0.150–3.1.0.092
FieldTypeWhat it is
timef32How long the sounds take to fade; the unit is not recorded.
Vectors (5)

one-on-1-0-0-131, one-on-1-0-0-136, one-on-1-0-0-143, one-on-1-0-0-149, one-on-1-0-0-154

UnitSpoke

What a client sends when a unit says something on its screen. A server need do nothing with it. The header names the unit speaking.

Definition.

In 1.0.0.130–1.0.0.137

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

FieldTypeWhat it is
unitu32A value the client takes from the unit that speaks; what it names is not recorded.
unknownf32A client writes 1073741824.
unknownToou32A client writes zero.
kindu80 for a unit’s speech; a client writes 1 where it sends the text of a script error it caught, under the first unit it holds that can carry it.
unusedu8A client writes zero.
texttext, ended by a zero byteWhat the unit says, ended by a zero byte; the two take at most 1024 bytes.
Vectors (1)

one-on-1-0-0-136

In 1.0.0.138–1.0.0.143

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

FieldTypeWhat it is
unitu32A value the client takes from the unit that speaks; what it names is not recorded.
unknownf32A client writes 1073741824.
unknownToou32A client writes zero.
kindu8A client writes 1 where the line reports an error in a script, and 0 otherwise.
unusedu8A client writes zero.
unusedToou32Where a level script makes a unit speak, a client writes the third value that script gave; otherwise zero.
texttext, ended by a zero byteWhat the unit says, ended by a zero byte; the two take at most 1024 bytes.
Vectors (1)

one-on-1-0-0-143

In 1.0.0.144–3.1.0.0

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

FieldTypeWhat it is
unitu32A value the client takes from the unit that speaks; what it names is not recorded.
unknownf32A client writes 1073741824.
unknownToou32A client writes zero.
kindu8A client writes zero.
unusedu8A client writes zero.
unusedToou32A client writes zero.
texttext, ended by a zero byteWhat the unit says, ended by a zero byte; the two take at most 1024 bytes.