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.
In 3.10–3.15
A client shows how many lines
ChatAllowanceleaves its player.
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 3.10–3.15
A client shows no ping its server marks as throttled, and notes in its own chat that the player is pinging too often.
VoiceCommandandContextEmotechange nothing a client shows.
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 3.10
A client never answers a
VoiceEventfor a voice tied to a unit. Any other it answers withVoiceEventDoneonce it has played it, where it asks for an answer, and at once where it cannot play it, whether it asks or not.
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 3.01
Command 104 on chat, sent by either side, reliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the sender. |
| netId | u32 | The 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. |
| localized | u8 | Whether 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. |
| audience | i32 | Who the message reaches. Values: 0 everyone, 1 team. |
| textLength | u32 | The length of the text, counted in bytes and excluding the byte that ends it. A client shows the text to its first zero byte. |
| text | text, sized by textLength | The line, at most 127 characters. |
| terminator | bytes, 1 | A zero byte closing the text. |
Vectors (1)
In 3.02–3.15
Command 104 on chat, sent by either side, reliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the sender. |
| netId | u32 | The 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. |
| localized | u8 | Whether 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. |
| audience | i32 | Who the message reaches. Values: 0 everyone, 1 team. |
| paramsLength | u32 | How many bytes of the run that follows carry meaning. |
| textLength | u32 | The length of the text, counted in bytes and excluding the byte that ends it. A 4.17 client sends at most 255 bytes of text. A client shows the text to its first zero byte. |
| params | bytes, 32 | Thirty two bytes holding text that fills in a key, ended by a zero byte within them. The bytes after that zero byte carry no meaning, so two messages otherwise alike can differ in them. |
| text | text, sized by textLength | The text, textLength bytes of it. |
| terminator | bytes, 1 | A 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.
In every range of this book
Command 247 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| source | u32 | The unit the line is credited to, or zero where none is. |
| text | text, 512 bytes | The line itself. Written out in full and padded with zero bytes to the width above. |
Vectors (2)
ChatAllowance
What a server sends to limit a player’s chat, showing how many lines they have left. The header carries zero.
In 3.02–3.15
Command 249 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| linesLeft | i32 | How many lines are left. A client shows this number as sent. |
Vectors (1)
MapPing
What a client sends to mark a point on the map for the others. The header names no object: it carries zero.
In every range of this book
Command 86 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. |
| 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 every range of this book
Command 63 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. |
| 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.speak | bit 7 | Set where the unit says something about it. |
PlayEmote
What a client sends to play an emote. The header names the sender’s champion.
In every range of this book
Command 71 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| emote | u8 | Which emote, by the number the client knows it as. Its four emote keys send 3, 1, 0 and 2, the numbers EmotePlayed plays. |
EmotePlayed
What a server sends to say a unit played an emote. The header names the champion playing the emote.
In every range of this book
Command 65 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| emote | u8 | Which 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. |
VoiceCommand
What a server sends about a voice command a champion gave. The header names the champion.
In every range of this book
Command 67 on events, sent by the server, reliable.
A client accepts it on a champion only, and it has no effect.
| Field | Type | What it is |
|---|---|---|
| padding1 | u16 | Padding before call. Unused; a server writes zero. |
| padding2 | u8 | Padding before call. Unused; a server writes zero. |
| call | u32 | Which call. |
| target | u32 | The unit the call is about. |
| flags | 1-byte bits | How it is shown. |
| flags.highlight | bit 0 | Set where the player’s icon is highlighted. |
| flags.ping | bit 1 | Set where it marks a ping. |
| flags.unused | bit 2 to 7 | Unused; a server writes zero. |
| padding3 | u16 | Padding after flags. Unused; a server writes zero. |
| padding4 | u8 | Padding after flags. Unused; a server writes zero. |
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.
In every range of this book
Command 243 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| emote | u8 | Which emote. |
| parameter | u32 | A hashed parameter. |
| flags | u8 | Flags with no meaning given. |
Vectors (1)
SoundPlayed
What a server sends to play a sound once. The header carries zero.
In every range of this book
Command 66 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| sound | text, 1024 bytes | The sound event’s name. The text ends at its first zero byte, which falls within the field. |
| owner | u32 | The object to play it at, where a client knows one by this id; otherwise, or for zero, the sound has no place. |
VoiceEvent
What a server sends to play a voice event. The header carries zero.
In every range of this book
Command 121 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. |
| kind | u8 | What sort of event. A client does nothing for any other value. Values: 0 general, 1 champion. |
| handle | u32 | For kind 0, a number a client returns in VoiceEventDone; for kind 1, the champion. |
Vectors (1)
VoiceEventDone
What a client sends once a voice event (VoiceEvent) that asked for it has played. The header carries zero.
In every range of this book
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.
| Field | Type | What it is |
|---|---|---|
| handle | u32 | The number the VoiceEvent carried. |
MusicCue
What a server sends to drive the music a client plays.
In 3.01–3.5
Command 220 on events, sent by the server, reliable.
The header names the champion of the player it is sent to.
| 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 (1)
In 3.6–3.15
Command 220 on events, sent by the server, reliable.
The header names the champion of the player it is sent to.
| 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, 3 changeState. |
| event | u32 | Which cue or event. |
| parameter | u32 | Which state, where the state changes. |
Vectors (3)
VolumeMuted
What a server sends to mute or unmute one kind of sound. The header carries zero.
In every range of this book
Command 38 on events, sent by the server, reliable.
| 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. |
FadeSounds
What a server sends to fade a client’s sound effects out. The header carries zero.
In every range of this book
Command 94 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 3.01–3.11
Command 24 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 | A client writes zero. |
| unused | u8 | A client writes zero. |
| unusedToo | u32 | 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 (1)
In 3.12–3.14
Command 24 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 | u32 | A client writes 1073741824. |
| unknownToo | u32 | A client writes zero. |
| kind | u8 | A client writes zero. |
| unused | u8 | A client writes zero. |
| unusedToo | u32 | 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 (1)
In 3.15
Command 24 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| unknown | u32 | A client writes 1073741824. |
| unknownToo | u32 | A client writes zero. |
| kind | u8 | A client writes zero. |
| unused | u8 | A client writes zero. |
| unusedToo | u32 | A client writes zero. |
| length | u32 | The text’s length in bytes, counting its zero byte; at most 1024. |
| text | text, sized by length | What the unit says. |