The interface
What a client shows its player besides the field: the view and camera, input locks, the minimap and text over the screen. Tips, quests, highlights and the tutorial are in Tutorial and guidance.
The view
A client reports where its view sits and which way it faces with Camera,
which a server answers (see Ordering). A client tells a server what it has
selected with SelectObject, and as it locks its view to its champion or
releases it with CameraLock.
A server carries a client’s view from one place to another with MoveCamera. A
server can also lock or free a client’s camera with CameraLockSet, which the
client answers with CameraLock except while it holds its camera itself, and
set a point a player’s view keeps to with CameraBehaviour.
A client sends no Camera while its camera is locked: a server that needs a
client’s view reports frees its camera with CameraLockSet.
In 1.0.0.130–1.0.0.140
A client keeps a
CameraLockSetthat arrives while it holds its camera itself, and applies and answers it once the hold ends.
Input
A server locks or unlocks kinds of input, such as movement, spells or the
shop, with InputLock or InputLockToggled.
A client keeps every lock a message sets or clears, and later input obeys them, but it acts on a lock at once only where the message’s mask is exactly one of 1, 4, 8, 16, 32 or 128.
The minimap and text on screen
MinimapIcon changes what a client draws for a unit on its map. A server can
float text over a unit (FloatingText, UnitText), warn a player who seems
to be away (AfkWarning), and take the interface down (HudDisabled).
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).
Camera
What a client sends to say where its view sits and which way it faces. Each report is sent once where a server answers it, and again and again where a server does not. The header names no object: it carries zero.
In every range of this book
Carried on requests, sent by the client, unreliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.143 | 48 |
| 1.0.0.144–3.1.0.0 | 45 |
| Field | Type | What it is |
|---|---|---|
| positionX | f32 | |
| positionY | f32 | |
| positionZ | f32 | |
| directionX | f32 | |
| directionY | f32 | |
| directionZ | f32 | |
| clientId | u32 | The client id of the client the view belongs to. |
| syncId | u8 | Names this report, counting up as the view moves. A client sends the report again until a server returns the name. |
Vectors (1)
SelectObject
What a client sends as the object it has selected changes. The header names no object: it carries zero.
In every range of this book
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 183 |
| 1.0.0.132–1.0.0.134 | 184 |
| 1.0.0.135 | 186 |
| 1.0.0.136–1.0.0.137 | 184 |
| 1.0.0.138 | 186 |
| 1.0.0.139–1.0.0.140 | 185 |
| 1.0.0.141–1.0.0.143 | 187 |
| 1.0.0.144–1.0.0.149 | 175 |
| 1.0.0.150–3.1.0.0 | 172 |
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the client selecting: the one its Registered gave it. Zero is a client id like any other rather than an absence. |
| selected | u32 | The network object now selected, or zero where none is. |
CameraLock
What a client sends as it locks its view to a unit or releases it. The header names no object: it carries zero.
In 1.0.0.130–1.0.0.138
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 134 |
| 1.0.0.132–1.0.0.137 | 135 |
| 1.0.0.138 | 137 |
A client sends it whenever its lock changes: by the player, or as the game forces a lock or lifts one. It sends none while playing a replay.
| Field | Type | What it is |
|---|---|---|
| state | 1-byte bits | |
| state.locked | bit 0 | Set while the view follows a unit. |
| state.unused | bit 1 to 7 | Unused; a client writes zero. |
| clientId | u32 | The client id of the client locking. Zero is a client id like any other rather than an absence. |
Vectors (3)
In 1.0.0.139–1.0.0.143
Command 136 on requests, sent by the client, reliable.
A client sends it every time its lock is set, even to the same value: by the player, by CameraLockSet, or as the game forces a lock or lifts one.
| Field | Type | What it is |
|---|---|---|
| state | 1-byte bits | |
| state.locked | bit 0 | Set while the view follows a unit. |
| state.unused | bit 1 to 7 | A client sends back the whole byte it holds: after CameraLockSet, the byte it received, unchanged. |
| clientId | u32 | The client id of the client locking. Zero is a client id like any other rather than an absence. |
Vectors (1)
In 1.0.0.144–3.1.0.0
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.144–1.0.0.149 | 130 |
| 1.0.0.150–3.1.0.0 | 127 |
A client sends it whenever its lock changes: by the player, or as the game forces a lock or lifts one. It sends none while playing a replay.
| Field | Type | What it is |
|---|---|---|
| state | 1-byte bits | |
| state.locked | bit 0 | Set while the view follows a unit. |
| state.unused | bit 1 to 7 | Unused; a client writes zero. |
| clientId | u32 | The client id of the client locking. Zero is a client id like any other rather than an absence. |
Vectors (2)
MoveCamera
What a server sends to carry a client’s view from one place to another. The header names the champion of the player it is sent to.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.143 | 39 |
| 1.0.0.144–3.1.0.0 | 36 |
Where the header names a champion, only the client whose own champion it is moves its view; others take the message and do nothing. Where the header carries zero, a client moves its view to to over travelTime, how and from having no effect.
| Field | Type | What it is |
|---|---|---|
| how | 1-byte bits | |
| how.fromWhereItIs | bit 0 | Set to start from where the camera stands, fromX, fromY and fromZ having no effect; clear to start from them. |
| how.unused1 | bit 1 | Unused; a server writes zero. |
| how.unused | bit 2 to 7 | Unused; a server writes zero. |
| fromX | f32 | Where the view starts, along one ground axis, in world units. |
| fromY | f32 | Where the view starts, in height, in world units. |
| fromZ | f32 | Where the view starts, along the other ground axis, in world units. |
| toX | f32 | Where the view ends, along one ground axis, in world units. |
| toY | f32 | Where the view ends, in height, in world units. |
| toZ | f32 | Where the view ends, along the other ground axis, in world units. |
| travelTime | f32 | How long the view takes to get there, in seconds. The view moves at an even speed over the distance along the ground. |
Vectors (1)
CameraLockSet
What a server sends to lock the camera to the champion or free it. A client answers with CameraLock. The header names no object: a server writes zero.
In 1.0.0.130–1.0.0.137
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 124 |
| 1.0.0.132–1.0.0.137 | 125 |
A client ignores the message while something of its own holds the camera.
| Field | Type | What it is |
|---|---|---|
| locked | u8 | Set to lock the camera, clear to free it. Any nonzero value sets it. |
Vectors (2)
In 1.0.0.138–1.0.0.143
Command 127 on events, sent by the server, reliable.
A client answers at once with CameraLock, returning the byte as it arrived. While the game holds the camera itself, it keeps the byte, and applies it and sends CameraLock only as that hold ends.
| Field | Type | What it is |
|---|---|---|
| locked | u8 | Set to lock the camera, clear to free it. Any nonzero value sets it. |
Vectors (1)
In 1.0.0.144–1.0.0.146
Command 121 on events, sent by the server, reliable.
A client ignores the message while something of its own holds the camera. It sends no CameraLock while playing a replay.
| Field | Type | What it is |
|---|---|---|
| locked | u8 | Set to lock the camera, clear to free it. Any nonzero value sets it. |
Vectors (1)
In 1.0.0.147–3.1.0.0
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.147–1.0.0.149 | 121 |
| 1.0.0.150–3.1.0.0 | 118 |
A client ignores the message while something of its own holds the camera. It sends no CameraLock while playing a replay.
| Field | Type | What it is |
|---|---|---|
| state | 1-byte bits | Whether the camera is locked. |
| state.locked | bit 0 | Set to lock the camera, clear to free it. |
| state.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (2)
CameraBehaviour
What a server sends to set a point a champion’s player’s view keeps to. The header names the champion.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 118 |
| 1.0.0.132–1.0.0.137 | 119 |
| 1.0.0.138–1.0.0.143 | 121 |
| 1.0.0.144–1.0.0.149 | 115 |
| 1.0.0.150–3.1.0.0 | 112 |
| Field | Type | What it is |
|---|---|---|
| x | f32 | Along one ground axis, in world units. |
| y | f32 | In height, in world units. |
| z | f32 | Along the other ground axis, in world units. |
Vectors (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
InputLock
What a server sends to lock or unlock a kind of input on a client. The header carries zero.
In 1.0.0.130–1.0.0.146
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 137 |
| 1.0.0.132–1.0.0.137 | 138 |
| 1.0.0.138 | 140 |
| 1.0.0.139–1.0.0.143 | 139 |
| 1.0.0.144–1.0.0.146 | 133 |
A client ignores it while playing a replay.
| Field | Type | What it is |
|---|---|---|
| category | u32 | Which input, as a set of bits. Values: 1 cameraLocking, 2 movement, 4 abilities, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement. |
| locked | u8 | Set to lock, clear to unlock. Any nonzero value sets it. |
In 1.0.0.147–3.1.0.0
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.147–1.0.0.149 | 133 |
| 1.0.0.150–3.1.0.0 | 130 |
A client ignores it while playing a replay.
| Field | Type | What it is |
|---|---|---|
| category | u32 | Which input, as a set of bits. Values: 1 cameraLocking, 2 movement, 4 abilities, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement. |
| state | 1-byte bits | Whether to lock. |
| state.locked | bit 0 | Set to lock, clear to unlock. |
| state.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (2)
InputLockToggled
What a server sends to turn kinds of input off where they are on, or on where they are off. The header carries zero.
In 1.0.0.130–1.0.0.131
Command 163 on events, sent by the server, reliable.
A client acts on the change at once only where locks is 1, 4, 8, 16, 32 or 128; any other value still changes what is locked, and takes effect as the player next tries.
| Field | Type | What it is |
|---|---|---|
| locks | u32 | Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement. |
Vectors (1)
In 1.0.0.132–1.0.0.138
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.132–1.0.0.134 | 164 |
| 1.0.0.135 | 166 |
| 1.0.0.136–1.0.0.137 | 164 |
| 1.0.0.138 | 166 |
A client acts on the change at once only where exactly one lock is set; any other value still changes what is locked, and takes effect as the player next tries.
| Field | Type | What it is |
|---|---|---|
| locks | u32 | Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement. |
Vectors (4)
shop-on-1-0-0-134, shop-on-1-0-0-135, shop-on-1-0-0-136, shop-on-1-0-0-138
In 1.0.0.139–1.0.0.143
Command 165 on events, sent by the server, reliable.
A client acts on the change at once only where the value is exactly one of 1, 4, 8, 16, 32 and 128; any other value, 2 and 64 among them, still changes what is locked, and takes effect as the player next tries.
| Field | Type | What it is |
|---|---|---|
| locks | u32 | Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement. |
Vectors (1)
In 1.0.0.144–3.1.0.0
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.144–1.0.0.149 | 155 |
| 1.0.0.150–3.1.0.0 | 152 |
A client acts on the change at once only where exactly one lock is set; any other value still changes what is locked, and takes effect as the player next tries.
| Field | Type | What it is |
|---|---|---|
| locks | u32 | Each lock set flips. Values: 1 cameraLock, 2 movement, 4 spells, 8 summonerSpells, 16 shop, 32 chat, 64 minimapMovement, 128 cameraMovement. |
Vectors (2)
MinimapIcon
What a server sends to change what a client draws for a unit on its map. The header names no object: it carries zero.
In 1.0.0.130–1.0.0.153
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 225 |
| 1.0.0.132–1.0.0.134 | 226 |
| 1.0.0.135 | 228 |
| 1.0.0.136–1.0.0.137 | 226 |
| 1.0.0.138 | 228 |
| 1.0.0.139–1.0.0.140 | 227 |
| 1.0.0.141–1.0.0.143 | 229 |
| 1.0.0.144–1.0.0.149 | 216 |
| 1.0.0.150–1.0.0.153 | 213 |
A client does nothing unless unit is a unit it holds that can be attacked.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | The unit this is about. |
| icon | text, 64 bytes | The name the client loads the unit’s minimap mark under, which it changes only where the name differs from the one it shows. Written out in full and padded with zero bytes to the width above. |
In 1.0.0.154–3.1.0.0
Command 213 on events, sent by the server, reliable.
A client does nothing unless unit is a unit it holds that can be attacked.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | The unit this is about. |
| changeIcon | u8 | 1 to replace the unit’s minimap icon with icon; 0 leaves it, and icon has no effect. |
| icon | text, 64 bytes | The name the client loads the mark under. Written out in full and padded with zero bytes to the width above. |
| changeBorder | u8 | 1 to replace the unit’s ring with border, and what it does with borderScript; 0 leaves both, and neither has any effect. |
| border | text, 64 bytes | The name the client loads the ring around the mark under, written and padded as above. |
Vectors (1)
FloatingText
What a server sends to show text floating over a unit. The header names the unit.
In 1.0.0.130–1.0.0.137
Command 27 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| unused | u32 | Unused; a server writes zero. |
| delay | f32 | Unused; a server writes 2. |
| slot | i32 | Where the text goes. 0 floats it over the unit while the unit is in the client’s own view, the text looked up as a key into the client’s own text. 1 to 50 writes it, in colour, to that line of a debugging display, only where the unit is the one the player has selected. A client does nothing for any other value. |
| error | u8 | Nonzero has a client ignore the whole message. |
| colour | u8 | The text’s colour on the debugging display; it has no effect for slot 0. |
| text | text, ended by a zero byte | The text, ended by a zero byte; the two take at most 1024 bytes. |
Vectors (1)
In 1.0.0.138–1.0.0.143
Command 27 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| unused | u32 | Unused; a server writes zero. |
| delay | f32 | Unused; a server writes 2. |
| slot | i32 | Where the text goes. 0 floats it over the unit while the unit is in the client’s own view. 1 to 50 writes it, in colour, to that line of a debugging display, only where the unit is the one the player has selected. A client does nothing for any other value. |
| error | u8 | Nonzero has a client put the text on its list of on-screen messages for 10 seconds; slot, colour and style then have no effect. |
| colour | u8 | The text’s colour on the debugging display; it has no effect for slot 0. |
| style | u32 | Which style of floating text. |
| text | text, ended by a zero byte | The text, ended by a zero byte; the two take at most 1024 bytes. |
Vectors (1)
In 1.0.0.144–3.1.0.0
Command 24 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| unused | u32 | Unused; a server writes zero. |
| delay | f32 | Unused; a server writes 2. |
| slot | i32 | Where the text goes. 0 floats it over the unit while the unit is in the client’s own view, the text looked up as a key into the client’s own text. 1 to 50 writes it, in colour, to that line of a debugging display, only where the unit is the one the player has selected. A client does nothing for any other value. |
| error | u8 | Nonzero has a client ignore the whole message. |
| colour | u8 | The text’s colour on the debugging display; it has no effect for slot 0. |
| style | u32 | Which style of floating text. |
| text | text, ended by a zero byte | The text, ended by a zero byte; the two take at most 1024 bytes. |
UnitText
What a server sends to float a line of the client’s own text over a unit, as combat text floats. A client shows it only where the unit is in its sight, and not while playing a replay. The header carries zero.
In 1.0.0.130–1.0.0.143
Command 28 on events, sent by the server, reliable.
A client ignores it whenever it is watching a match.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | The unit to float it over: one that can be damaged. |
| style | u8 | How the line looks, from 0 to 24. A client shows debug lines to nobody. Values: 0 invulnerable, 1 special, 2 heal, 3 manaHeal, 4 manaDamage, 5 dodge, 6 physicalCritical, 7 experience, 8 gold, 9 level, 10 disable, 11 questReceived, 12 questComplete, 13 score, 14 physicalDamage, 15 magicDamage, 16 trueDamage, 17 enemyPhysicalDamage, 18 enemyMagicDamage, 19 enemyTrueDamage, 20 enemyPhysicalCritical, 21 countdown, 22 damage, 23 critical, 24 debug. |
| number | i32 | A number put into the text where it asks for one. |
| text | text, 128 bytes | A key into the client’s own text. The text ends at its first zero byte, which falls within the field. |
Vectors (1)
In 1.0.0.144–3.1.0.0
Command 25 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| unit | u32 | The unit to float it over: one that can be damaged. |
| style | u8 | How the line looks, from 0 to 24. A client shows debug lines to nobody. Values: 0 invulnerable, 1 special, 2 heal, 3 manaHeal, 4 manaDamage, 5 dodge, 6 physicalCritical, 7 experience, 8 gold, 9 level, 10 disable, 11 questReceived, 12 questComplete, 13 score, 14 physicalDamage, 15 magicDamage, 16 trueDamage, 17 enemyPhysicalDamage, 18 enemyMagicDamage, 19 enemyTrueDamage, 20 enemyPhysicalCritical, 21 countdown, 22 damage, 23 critical, 24 debug. |
| number | i32 | A number put into the text where it asks for one. |
| text | text, 128 bytes | A key into the client’s own text. The text ends at its first zero byte, which falls within the field. |
AfkWarning
What a server sends to warn the player that they seem to be away, in a popup with one button that only closes it. It carries nothing of its own. The header carries zero.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 192 |
| 1.0.0.132–1.0.0.134 | 193 |
| 1.0.0.135 | 195 |
| 1.0.0.136–1.0.0.137 | 193 |
| 1.0.0.138 | 195 |
| 1.0.0.139–1.0.0.140 | 194 |
| 1.0.0.141–1.0.0.143 | 196 |
| 1.0.0.144–1.0.0.149 | 184 |
| 1.0.0.150–3.1.0.0 | 181 |
No body.
HudDisabled
What a server sends to take down a client’s interface as the match ends. The header names no object: it carries zero.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.131 | 196 |
| 1.0.0.132–1.0.0.134 | 197 |
| 1.0.0.135 | 199 |
| 1.0.0.136–1.0.0.137 | 197 |
| 1.0.0.138 | 199 |
| 1.0.0.139–1.0.0.140 | 198 |
| 1.0.0.141–1.0.0.143 | 200 |
| 1.0.0.144–1.0.0.149 | 188 |
| 1.0.0.150–3.1.0.0 | 185 |
No body.
Announcement
What a server sends to show one of a client’s own fixed announcements for five seconds.
In 1.0.0.130–1.0.0.131
Command 133 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| announcement | u32 | Which of the client’s 28 announcements, 0 to 27. The text of each is the client’s own and is not recorded here. 4294967295 shows a fixed text of the client’s own that is none of them; any other value has no defined effect. |
| unit | u32 | A unit whose name the announcement carries, or zero for an announcement that names none. A client shows nothing where it does not know the unit. |
Vectors (1)
In 1.0.0.132–1.0.0.138
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.132–1.0.0.137 | 134 |
| 1.0.0.138 | 136 |
| Field | Type | What it is |
|---|---|---|
| announcement | u32 | Which of the client’s 28 announcements, 0 to 27. The text of each is the client’s own and is not recorded here; a client fails on any other value. |
| unit | u32 | A unit whose name the announcement carries, or zero for an announcement that names none. A client shows nothing where it does not know the unit. |
Vectors (2)
CameraAck
What a server returns for a view report, naming the report it answers. A server names in the header the champion of the player it is sent to.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.130–1.0.0.143 | 46 |
| 1.0.0.144–3.1.0.0 | 43 |
| Field | Type | What it is |
|---|---|---|
| syncId | u8 | The name the report carried. A client sends the report again until this comes back. |