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).
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).
Where a VoiceEvent asks for an answer, a client sends VoiceEventDone once
it has played the event.
In 1.0.0.25–1.0.0.96
A client never answers a
VoiceEventit cannot play.
In 1.0.0.126–1.0.0.129
A client answers a
VoiceEventit 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.
In every range of this book
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.
| Field | Type | What it is |
|---|---|---|
| speaker | u32 | The 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. |
| audience | u32 | 1 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. |
| textLength | u32 | The length of the text in bytes, without the byte that ends it. Its value changes nothing a client does. |
| text | text, sized by textLength | The line; a client sends at most 511 bytes of it, and reads it up to the zero byte that ends it. |
| terminator | bytes, 1 | A zero byte closing the text. |
Vectors (2)
MapPing
What a client sends to mark a point on the map for the others. The header names no object: it carries zero.
In 1.0.0.25–1.0.0.95
Command 25 on requests, sent by the client, reliable.
A client also sends it from the alert button on its HUD, naming its champion’s own place and writing nothing in particular where the target goes.
| Field | Type | What it is |
|---|---|---|
| x | f32 | Where on the map, along one ground axis, in world units. |
| y | f32 | The height of the place pinged, in world units. |
| z | f32 | Where on the map, along the other ground axis, in world units. |
| target | u32 | A network object the mark is on, or zero where it is on open ground. |
Vectors (2)
In 1.0.0.96–1.0.0.118
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.96–1.0.0.109 | 25 |
| 1.0.0.110–1.0.0.116 | 85 |
| 1.0.0.117–1.0.0.118 | 86 |
| Field | Type | What it is |
|---|---|---|
| x | f32 | Where on the map, along one ground axis, in world units. |
| y | f32 | The height of the place pinged, in world units. |
| z | f32 | Where on the map, along the other ground axis, in world units. |
| target | u32 | A network object the mark is on, or zero where it is on open ground. |
Vectors (3)
In 1.0.0.119–1.0.0.122
Command 87 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| x | f32 | Where on the map, along one ground axis, in world units. |
| y | f32 | The height of the place pinged, in world units. |
| z | f32 | Where on the map, along the other ground axis, in world units. |
| target | u32 | A network object the mark is on, or zero where it is on open ground. |
| unset | bytes, 1 | A client writes nothing in particular here. |
Vectors (2)
In 1.0.0.123
Command 87 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| x | f32 | Where on the map, along one ground axis, in world units. |
| y | f32 | The height of the place pinged, in world units. |
| z | f32 | Where on the map, along the other ground axis, in world units. |
| target | u32 | A network object the mark is on, or zero where it is on open ground. |
| how | 1-byte bits | Which mark it is. |
| how.kind | bit 0 to 3 | Which mark it is. A client sends any of the seven below, and 1 where the mark shows a direction of attack. |
| how.unset | bit 4 to 7 | A client writes nothing in particular here. |
Vectors (1)
In 1.0.0.124–1.0.0.127
Command 90 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| x | f32 | Where on the map, along one ground axis, in world units. |
| y | f32 | The height of the place pinged, in world units. |
| z | f32 | Where on the map, along the other ground axis, in world units. |
| target | u32 | A network object the mark is on, or zero where it is on open ground. |
| kind | u8 | Which 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 four bits; the high four carry no meaning. Values: 0 here, 1 attackDirection, 2 danger, 3 targetUnaccountedFor, 4 onMyWay, 5 fallBack, 6 comeHere. |
Vectors (1)
In 1.0.0.128–1.0.0.129
Command 90 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| x | f32 | Where on the map, along one ground axis, in world units. |
| y | f32 | The height of the place pinged. |
| z | f32 | Where on the map, along the other ground axis, in world units. |
| target | u32 | A network object the mark is on, or zero where it is on open ground. |
| kind | u8 | Which 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. |
PingPlaced
What a server sends to show a ping on the map to everyone meant to see it.
In 1.0.0.25–1.0.0.103
Command 26 on events, sent by the server, reliable.
Where target is a unit it holds, of a kind that takes notices, a client shows a notice for it, but not again for the next ping on the same target; it keeps the last target of each side apart. The header names the champion that placed the ping, as source does.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the ping sits, along one ground axis, in world units. |
| atY | f32 | Its height, in world units. A client does not use it to place the ping. |
| atZ | f32 | Where it sits, along the other, in world units. |
| target | u32 | The unit pinged, or zero where a place was pinged instead. |
| source | u32 | The unit that placed it. |
Vectors (2)
In 1.0.0.104–1.0.0.118
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.104–1.0.0.109 | 26 |
| 1.0.0.110–1.0.0.116 | 66 |
| 1.0.0.117–1.0.0.118 | 67 |
A client drops the message where the player who placed it is muted. Where target is a unit it can name, it shows a notice for it. The header names the champion that placed the ping, as source does.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the ping sits, along one ground axis, in world units. |
| atY | f32 | Its height, in world units. A client does not use it to place the ping. |
| atZ | f32 | Where it sits, along the other, in world units. |
| target | u32 | The unit pinged, or zero where a place was pinged instead. |
| source | u32 | The unit that placed it. |
| how | 1-byte bits | |
| how.playSound | bit 0 | Set where the client plays a sound for it. |
| how.showInChat | bit 1 | Set where the client writes a line about it. |
| how.unused | bit 2 to 7 | Unused; a server writes zero. |
Vectors (3)
In 1.0.0.119–1.0.0.122
Command 68 on events, sent by the server, reliable.
A client drops the message where the player who placed it is muted. Where target is a unit it can name, it shows a notice for it. The header names the champion that placed the ping, as source does.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the ping sits, along one ground axis, in world units. |
| atY | f32 | Its height, in world units. A client does not use it to place the ping. |
| atZ | f32 | Where it sits, along the other, in world units. |
| target | u32 | The unit pinged, or zero where a place was pinged instead. |
| source | u32 | The unit that placed it. |
| how | 1-byte bits | |
| how.unusedLow | bit 0 to 3 | A client reads nothing here. A server writes zero. |
| how.playSound | bit 4 | Set where the client plays a sound for it. |
| how.showInChat | bit 5 | Set where the client writes a line about it. |
| how.unused | bit 6 to 7 | Unused; a server writes zero. |
Vectors (1)
In 1.0.0.123–1.0.0.127
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.123 | 68 |
| 1.0.0.124–1.0.0.127 | 70 |
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.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the ping sits, along one ground axis, in world units. |
| atY | f32 | Its height, in world units. A client does not use it to place the ping. |
| atZ | f32 | Where it sits, along the other, in world units. |
| target | u32 | The unit pinged, or zero where a place was pinged instead. |
| source | u32 | The unit that placed it. |
| how | 1-byte bits | |
| how.category | bit 0 to 3 | Which sort of ping. |
| how.playSound | bit 4 | Set where the client plays a sound for it. A client plays one only where category is 0 or 1. |
| how.showInChat | bit 5 | Set where the client writes a line about it. |
| how.throttled | bit 6 | Set 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.unused | bit 7 | Unused; a server writes zero. |
Vectors (2)
In 1.0.0.128–1.0.0.129
Command 70 on events, sent by the server, reliable.
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.
| Field | Type | What it is |
|---|---|---|
| atX | f32 | Where the ping sits, along one ground axis, in world units. |
| atY | f32 | The height of the place, as a client shows it. |
| atZ | f32 | Where it sits, along the other, in world units. |
| target | u32 | The unit pinged, or zero where a place was pinged instead. |
| source | u32 | The unit that placed it. |
| how | 1-byte bits | |
| how.category | bit 0 to 3 | Which sort of ping. |
| how.playSound | bit 4 | Set where the client plays a sound for it. |
| how.showInChat | bit 5 | Set where the client writes a line about it. |
| how.throttled | bit 6 | Set 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.unused | bit 7 | Unused; a server writes zero. |
PlayEmote
What a client sends to play an emote. The header names the sender’s champion.
In 1.0.0.25–1.0.0.127
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.109 | 10 |
| 1.0.0.110–1.0.0.116 | 72 |
| 1.0.0.117–1.0.0.118 | 73 |
| 1.0.0.119–1.0.0.123 | 74 |
| 1.0.0.124–1.0.0.127 | 76 |
| Field | Type | What it is |
|---|---|---|
| emote | u32 | Which emote, by its place in the client’s list. A client sends nothing where no emote matches. |
In 1.0.0.128–1.0.0.129
Command 76 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| emote | u32 | Which emote, by its place in the client’s list; one past the list plays nothing. |
EmotePlayed
What a server sends to say a unit played an emote. The header names the champion playing the emote.
In 1.0.0.25–1.0.0.109
Command 11 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| emote | u32 | Which emote, by its place in the client’s list; any value at or past the end of the list plays nothing. |
Vectors (2)
In 1.0.0.110–1.0.0.123
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.110–1.0.0.116 | 68 |
| 1.0.0.117–1.0.0.118 | 69 |
| 1.0.0.119–1.0.0.123 | 70 |
| Field | Type | What it is |
|---|---|---|
| emote | u32 | Which emote, by its place in the client’s list; one past the list plays nothing. |
Vectors (3)
In 1.0.0.124–1.0.0.129
Command 72 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| emote | u32 | Which emote, by its place in the client’s list; a value at or past the end of the list plays nothing. |
Vectors (1)
VoiceEvent
What a server sends to play a voice event. The header carries zero.
In 1.0.0.25–1.0.0.97
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.62 | 131 |
| 1.0.0.63–1.0.0.73 | 134 |
| 1.0.0.74–1.0.0.81 | 135 |
| 1.0.0.82–1.0.0.96 | 139 |
| 1.0.0.97 | 140 |
| Field | Type | What it is |
|---|---|---|
| event | text, 64 bytes | The event’s name. A client sends no VoiceEventDone for a name that names no event it holds. |
| callback | u8 | Bit 0 set asks the client to send VoiceEventDone once the event has finished playing. |
In 1.0.0.98–1.0.0.103
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.98–1.0.0.102 | 141 |
| 1.0.0.103 | 143 |
| Field | Type | What it is |
|---|---|---|
| event | text, 64 bytes | The event’s name. A client sends no VoiceEventDone for a name that names no event it holds. |
| callback | u8 | Bit 0 set asks the client to send VoiceEventDone once the event has finished playing. A client sends it at once, whatever this holds, where its audio is not set up. |
Vectors (2)
In 1.0.0.104–1.0.0.123
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.104–1.0.0.106 | 148 |
| 1.0.0.107–1.0.0.108 | 149 |
| 1.0.0.109 | 150 |
| 1.0.0.110 | 118 |
| 1.0.0.111–1.0.0.116 | 119 |
| 1.0.0.117–1.0.0.118 | 120 |
| 1.0.0.119–1.0.0.123 | 121 |
| Field | Type | What it is |
|---|---|---|
| folder | text, 64 bytes | The event’s folder. It has no effect where kind is 1. |
| event | text, 64 bytes | The event’s name; for kind 1, the conversation’s. |
| callback | u8 | 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. |
| handle | u32 | A number a client returns in VoiceEventDone. |
In 1.0.0.124–1.0.0.127
Command 125 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| folder | text, 64 bytes | The event’s folder. |
| event | text, 64 bytes | The event’s name. |
| callback | u8 | 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. |
| handle | u32 | A number a client returns in VoiceEventDone. |
Vectors (1)
In 1.0.0.128–1.0.0.129
Command 125 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| folder | text, 64 bytes | The event’s folder. It has no effect where kind is 1. |
| event | text, 64 bytes | The event’s name; for kind 1, the conversation’s. |
| callback | u8 | For 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. |
| handle | u32 | For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion. |
VoiceEventDone
What a client sends once a voice event (VoiceEvent) that asked for it has played. The header carries zero.
In 1.0.0.25–1.0.0.73
Command 162 on requests, sent by the client, reliable.
A client names no event: the message is its header alone. It sends none for an event with an empty name or one it does not know.
No body.
Vectors (1)
In 1.0.0.74–1.0.0.81
Command 163 on requests, sent by the client, reliable.
A client names no event: the message is its header alone. It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.
No body.
Vectors (2)
In 1.0.0.82–1.0.0.96
Command 167 on requests, sent by the client, reliable.
A client names no event: the message is its header alone. A client sends it only once the event has finished playing; where it cannot find the event, or the name is empty, it sends nothing.
No body.
Vectors (1)
In 1.0.0.97–1.0.0.103
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.97 | 168 |
| 1.0.0.98–1.0.0.102 | 169 |
| 1.0.0.103 | 171 |
A client names no event: the message is its header alone. It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.
No body.
Vectors (3)
In 1.0.0.104–1.0.0.109
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.104–1.0.0.106 | 177 |
| 1.0.0.107–1.0.0.108 | 178 |
| 1.0.0.109 | 179 |
It answers only a voice event of kind 0, and a client sends it at once where it could not play the event.
| Field | Type | What it is |
|---|---|---|
| handle | u32 | The number the VoiceEvent carried. |
Vectors (3)
In 1.0.0.110–1.0.0.129
Command 5 on requests, sent by the client, reliable.
A client sends it at once where it could not play the event.
| Field | Type | What it is |
|---|---|---|
| handle | u32 | The number the VoiceEvent carried. |
Vectors (1)
MusicCue
What a server sends to drive the music a client plays.
In 1.0.0.124–1.0.0.129
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.124 | 227 |
| 1.0.0.125 | 228 |
| 1.0.0.126–1.0.0.129 | 229 |
| Field | Type | What it is |
|---|---|---|
| cue | u8 | What to do. A client takes any other value and does nothing. Values: 0 prepare, 1 begin, 2 end. |
| event | u32 | Which cue or event. |
Vectors (3)
VolumeMuted
What a server sends to mute or unmute one kind of sound. The header carries zero.
In 1.0.0.25–1.0.0.110
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.73 | 167 |
| 1.0.0.74–1.0.0.81 | 168 |
| 1.0.0.82–1.0.0.96 | 172 |
| 1.0.0.97 | 173 |
| 1.0.0.98–1.0.0.102 | 174 |
| 1.0.0.103 | 176 |
| 1.0.0.104–1.0.0.106 | 182 |
| 1.0.0.107–1.0.0.108 | 183 |
| 1.0.0.109 | 184 |
| 1.0.0.110 | 40 |
| Field | Type | What it is |
|---|---|---|
| category | u8 | Which kind. A larger value than 6 has no defined effect. Values: 0 all, 1 music, 2 effects, 3 announcer, 4 unitResponses, 5 environment, 6 mainEffects. |
| state | 1-byte bits | Whether it is muted. |
| state.muted | bit 0 | Set to mute, clear to unmute. |
| state.unused | bit 1 to 7 | Unused; a server writes zero. |
In 1.0.0.111–1.0.0.129
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.111–1.0.0.123 | 40 |
| 1.0.0.124–1.0.0.129 | 41 |
| Field | Type | What it is |
|---|---|---|
| category | u8 | Which kind. A client ignores the message from 7 up. Values: 0 all, 1 music, 2 effects, 3 announcer, 4 unitResponses, 5 environment, 6 mainEffects. |
| state | 1-byte bits | Whether it is muted. |
| state.muted | bit 0 | Set to mute, clear to unmute. |
| state.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (2)
FadeSounds
What a server sends to fade a client’s sound effects out. The header carries zero.
In 1.0.0.25–1.0.0.127
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.73 | 175 |
| 1.0.0.74–1.0.0.81 | 176 |
| 1.0.0.82–1.0.0.96 | 180 |
| 1.0.0.97 | 181 |
| 1.0.0.98–1.0.0.102 | 182 |
| 1.0.0.103 | 184 |
| 1.0.0.104–1.0.0.106 | 190 |
| 1.0.0.107–1.0.0.108 | 191 |
| 1.0.0.109 | 192 |
| 1.0.0.110–1.0.0.116 | 93 |
| 1.0.0.117–1.0.0.118 | 94 |
| 1.0.0.119–1.0.0.123 | 95 |
| 1.0.0.124–1.0.0.127 | 98 |
| Field | Type | What it is |
|---|---|---|
| time | f32 | How long the fade takes, in seconds on the match clock; a client fades its main sound effects out over that time. |
In 1.0.0.128–1.0.0.129
Command 98 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| time | f32 | How long the sounds take to fade; the unit is not recorded. |
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.
In 1.0.0.25–1.0.0.109
Command 30 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | A value the client takes from the unit that speaks; what it names is not recorded. |
| unknown | f32 | A client writes 1073741824. |
| unknownToo | u32 | A client writes zero. |
| kind | u8 | 0 for text a client sends on a script’s behalf. 1 for one of the client’s own error texts, each distinct text sent once per session. |
| unused | u8 | A client writes zero. |
| text | text, ended by a zero byte | What the unit says, ended by a zero byte; the two take at most 1024 bytes. |
Vectors (2)
In 1.0.0.110–1.0.0.129
Command 27 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | A value the client takes from the unit that speaks; what it names is not recorded. |
| unknown | f32 | A client writes 1073741824. |
| unknownToo | u32 | A client writes zero. |
| kind | u8 | 0 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. |
| unused | u8 | A client writes zero. |
| text | text, ended by a zero byte | What the unit says, ended by a zero byte; the two take at most 1024 bytes. |