The match
How a match runs once play has begun, apart from the field: its clock, holds, its end, and players leaving and coming back.
The clock
A server states how long the match has run with ClockSync, and a client
answers on the clock channel with ClockReply. Time says how the
match clock is kept, and which clock each time on the wire is measured
against.
GameSpeed sets how fast the match runs. StatTick hands every unit a span of
seconds.
A client shows the speed GameSpeed sets over its champion. A client changes
nothing it shows for StatTick.
In 1.0.0.25–1.0.0.96
The speed
GameSpeedsets takes effect at once: sent during a hold, it ends the hold, and aResumedafter it changes nothing.
In 1.0.0.58–1.0.0.129
StatTickasks every unit’s stats to advance by that span.
In 1.0.0.126–1.0.0.129
Sent during a hold,
GameSpeedtakes effect as the match resumes.
Holding and resuming
A client asks to hold the match with Pause, and to resume it with Resume. A
server MUST attribute each to the connection it arrived on (see Objects and
identifiers).
A server holds the match with Paused.
In 1.0.0.25–1.0.0.96
A client reads nothing from
Paused. It stops the match clock where the clock is running, keeping the speed it had, and shows nothing.
In 1.0.0.126–1.0.0.129
Pausedcarries how long the hold can last, in seconds.
In 1.0.0.126–1.0.0.129
A client begins a hold only where the time
Pausedcarries is above zero and the match is not already held.
In 1.0.0.126
Where the message’s flag asks it, a client announces in chat the player that held the match, unless the message names no one. Every hold shows a box with the time left.
A server ends the hold with Resumed.
In 1.0.0.25–1.0.0.96
A client reads nothing from
Resumed. Where the match is held, it goes on at once at the speed it had, with no countdown and no announcement.
In 1.0.0.126–1.0.0.129
Resumedends the hold either at once or after a countdown the client shows, during which the match stays held.
In 1.0.0.126
A client announces in chat who resumed the match only where it resumes at once, and does so even where the match was not held.
The end
A server ends the match with GameEnded, saying which side won, and takes the
interface down with HudDisabled. A client shows the win or loss for its
player’s side and sends ClientFinished.
A client sends ClientFinished every time GameEnded arrives in play, while
playing a replay too.
In 1.0.0.58–1.0.0.129
A client that receives
GameEndedwhile still loading leaves at once.
VictoryDance sets units moving as winners or losers do. It ends nothing.
In 1.0.0.126
VictoryDancemoves every unit.
Leaving and coming back
A client leaving as one abandoning the match sends Exit: as its player quits
or closes the window, as a reconnection fails, or on a server’s Shutdown,
which has it leave at once. A client also leaves at once on BotKick with the
action that means leave.
A client also leaves as one abandoning as its player declines to reconnect or cancels a reconnection under way, and as its player dismisses the notice that it was dropped for being away.
A server tells the others that a player’s client dropped with
PlayerDisconnected.
A client shows a notice in chat for PlayerDisconnected.
SoftReconnect rebuilds a client’s world without a new connection, as
Objects and identifiers describes.
A client started again for a match in progress knows nothing of it, and joins
as at the start: a server takes it through Joining a match
from registering to StartGame, with a spawn run that states the field as it
stands, and a ClockSync.
A client the server drops with the reason that means its player was away shows that, and does not connect again.
A client sends ReconnectedInMatch on every connection it makes, the first
included, with a byte that is 0 where the match is in play and 1 otherwise.
Reconnected announces that a player came back. A client shows it in chat for
any other player, ally or enemy.
In 1.0.0.25–1.0.0.126
A client dropped during play connects again only where its player agrees: for the reason 0 it asks, and on a yes connects again, showing that it is reconnecting until it is back or its player cancels. For any other reason but the one that means its player was away, it shows that the reconnection failed. One dropped while loading leaves.
Where
Reconnectednames the client’s own, the client resynchronises untilResyncEnded.
In 1.0.0.58–1.0.0.60
A client sends
ReconnectedInMatchright after the registration answer.
In 1.0.0.96–1.0.0.126
While it resynchronises, a client ignores any message creating a unit it already holds.
Staying connected
A client’s view report, Camera, goes out as its view moves at least 200
units, at most every tenth of a second, and never while its view is locked.
Where its last Camera goes unacknowledged, a client sends it again without
its view moving, once more than twice the round trip has passed.
In 1.0.0.25–1.0.0.126
A client gives up on a connection where a reliable message it sent goes unacknowledged for 30 seconds, while loading and in play alike.
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).
ClockSync
What a server sends to set a client’s idea of how long the match has run. The header names no object: a server writes zero.
In 1.0.0.25–1.0.0.62
Command 74 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| elapsed | f32 | How long the match has run, in seconds. A client sets its clock to this plus its own measure of the round trip, and answers at once with ClockReply. |
Vectors (1)
In 1.0.0.63–1.0.0.125
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.63–1.0.0.73 | 80 |
| 1.0.0.74–1.0.0.81 | 81 |
| 1.0.0.82–1.0.0.96 | 84 |
| 1.0.0.97–1.0.0.102 | 85 |
| 1.0.0.103–1.0.0.106 | 86 |
| 1.0.0.107–1.0.0.108 | 87 |
| 1.0.0.109 | 88 |
| 1.0.0.110 | 192 |
| 1.0.0.111–1.0.0.116 | 193 |
| 1.0.0.117–1.0.0.118 | 194 |
| 1.0.0.119–1.0.0.123 | 195 |
| 1.0.0.124 | 199 |
| 1.0.0.125 | 200 |
| Field | Type | What it is |
|---|---|---|
| elapsed | f32 | How long the match has run, in seconds. |
In 1.0.0.126–1.0.0.129
Command 201 on events, sent by the server, reliable.
A client sets its clock to elapsed plus the round trip it keeps from ClockConvergence, and answers at once with ClockReply. It drops the message where it has no game clock yet.
| Field | Type | What it is |
|---|---|---|
| elapsed | f32 | How long the match has run, in seconds. |
Vectors (1)
ClockReply
What a client sends back when a server states the match clock, carrying both readings so the server can tell how far apart they are. The header names no object: it carries zero.
In 1.0.0.25–1.0.0.119
Carried on clock, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.62 | 75 |
| 1.0.0.63–1.0.0.73 | 81 |
| 1.0.0.74–1.0.0.81 | 82 |
| 1.0.0.82–1.0.0.96 | 85 |
| 1.0.0.97–1.0.0.102 | 86 |
| 1.0.0.103–1.0.0.106 | 87 |
| 1.0.0.107–1.0.0.108 | 88 |
| 1.0.0.109 | 89 |
| 1.0.0.110–1.0.0.119 | 8 |
| Field | Type | What it is |
|---|---|---|
| value | u32 | The client id the sender holds. |
| serverSaid | f32 | The time the server last stated, in seconds, carried back as it arrived. |
| clientSaid | f32 | What the client’s own clock reads, in seconds, just after it set itself from that statement. |
In 1.0.0.120–1.0.0.127
Command 8 on clock, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| value | u32 | The client id the sender holds. |
| serverSaid | f32 | The time the server last stated, in seconds, carried back as it arrived. |
| clientSaid | f32 | What the client’s own clock reads, in seconds, just after it set itself from that statement. |
| check | bytes, 32 | The same thirty two bytes from every client of the build; they carry nothing a server needs. |
Vectors (1)
In 1.0.0.128–1.0.0.129
Command 8 on clock, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| value | u32 | The client id the sender holds, as it sends in clientId in Camera and CameraLock. |
| serverSaid | f32 | What the server last said the clock stood at, in seconds. |
| clientSaid | f32 | What the client’s own clock reads, in seconds, just after it set itself from that statement: elapsed plus its smoothed estimate of the delay. |
| check | bytes, 32 | Thirty-two bytes every client of this build sends alike; a server ignores them. |
GameSpeed
What a server sends to set how fast the game’s clock runs. A client shows the new speed over its champion. The header carries zero.
In 1.0.0.25–1.0.0.62
Command 135 on events, sent by the server, reliable.
It takes effect at once, so sent while paused it ends the pause.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | How fast, 1 being normal. A client applies it as given, with no limit. |
Vectors (1)
In 1.0.0.63–1.0.0.81
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.63–1.0.0.73 | 138 |
| 1.0.0.74–1.0.0.81 | 139 |
Sent while paused, it takes effect on resuming.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | How fast, 1 being normal. A client keeps it between 0 and 10. |
Vectors (3)
In 1.0.0.82–1.0.0.96
Command 143 on events, sent by the server, reliable.
It takes effect at once: a nonzero speed sent while paused resumes the game.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | How fast, 1 being normal; 0 pauses the game. |
Vectors (1)
In 1.0.0.97–1.0.0.109
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.97 | 144 |
| 1.0.0.98–1.0.0.102 | 145 |
| 1.0.0.103 | 147 |
| 1.0.0.104–1.0.0.106 | 152 |
| 1.0.0.107–1.0.0.108 | 153 |
| 1.0.0.109 | 154 |
Sent while paused, it takes effect on resuming.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | How fast, 1 being normal. A client keeps it between 0 and 10. |
In 1.0.0.110–1.0.0.125
Command 19 on events, sent by the server, reliable.
Sent while paused, it takes effect on resuming.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | How fast, 1 being normal. |
Vectors (1)
In 1.0.0.126–1.0.0.129
Command 19 on events, sent by the server, reliable.
Sent while paused, it takes effect on resuming.
| Field | Type | What it is |
|---|---|---|
| speed | f32 | How fast, 1 being normal. Zero stops the clock as a pause does, and a client then holds any later GameSpeed until the game resumes. |
Vectors (1)
Resumed
What a server sends to take the match off hold. The header names a champion: that of the player who resumed the match.
In 1.0.0.25–1.0.0.125
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.62 | 134 |
| 1.0.0.63–1.0.0.73 | 137 |
| 1.0.0.74–1.0.0.81 | 138 |
| 1.0.0.82–1.0.0.96 | 142 |
| 1.0.0.97 | 143 |
| 1.0.0.98–1.0.0.102 | 144 |
| 1.0.0.103 | 146 |
| 1.0.0.104–1.0.0.106 | 151 |
| 1.0.0.107–1.0.0.108 | 152 |
| 1.0.0.109 | 153 |
| 1.0.0.110–1.0.0.125 | 10 |
A client resumes the match at once where it is held, and announces no one.
No body.
In 1.0.0.126–1.0.0.128
Command 10 on events, sent by the server, reliable.
The header has no effect. Resuming after the countdown, it keeps input locked and the pause panel open until a countdown of its own ends; resuming at once, it unlocks input and closes the panel.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the player who resumed the match, announced in chat by the name the client’s list of players gives it, where afterCountdown is clear: to a player in the colour of an ally where the resumer is on its side and of an enemy otherwise, and to a client watching the match in the resumer’s side’s colour. 4294967295 announces no one. |
| how | 1-byte bits | |
| how.afterCountdown | bit 0 | Set where the match starts again after a countdown rather than at once. |
| how.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (2)
In 1.0.0.129
Command 10 on events, sent by the server, reliable.
The header has no effect. Resuming after the countdown, it keeps input locked and the pause panel open until a countdown of its own ends; resuming at once, it unlocks input and closes the panel.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the player who resumed the match, announced in chat in their side’s colour where their champion is known; 4294967295 announces no one. |
| how | 1-byte bits | |
| how.afterCountdown | bit 0 | Set where the match starts again after a countdown rather than at once. |
| how.unused | bit 1 to 7 | Unused; a server writes zero. |
Pause
What a client sends to hold a match. The header names no object: it carries zero.
In 1.0.0.124–1.0.0.125
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.124 | 167 |
| 1.0.0.125 | 168 |
A client sends it only where its own settings allow holding the match, and only while the match is not held.
No body.
Vectors (2)
In 1.0.0.126–1.0.0.129
Command 169 on requests, sent by the client, reliable.
A client sends the same values in every Pause, as each field states.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | A client writes 4294967295, the client id of no client. |
| timeLeft | i32 | A client leaves it unwritten; its bytes carry no meaning. |
| how | 1-byte bits | |
| how.tournament | bit 0 | A client sends it clear. |
| how.unused | bit 1 to 7 | A client leaves these bits unwritten; they carry no meaning. |
Vectors (1)
Resume
What a client sends to start a paused match again. The header names no object: it carries zero.
In 1.0.0.124–1.0.0.125
Command 10 on requests, sent by the client, reliable.
A client sends it only where its own settings allow holding the match, and only while the match is held.
No body.
Vectors (1)
In 1.0.0.126–1.0.0.129
Command 10 on requests, sent by the client, reliable.
A client clears delayed and leaves the other bits of how unwritten.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | A client writes 4294967295, the client id of no client. |
| how | 1-byte bits | |
| how.delayed | bit 0 | A client sends it clear. |
| how.unused | bit 1 to 7 | A client leaves these bits unwritten; they carry no meaning. |
Vectors (1)
Paused
What a server sends to put the match on hold. The header names no object: it carries zero.
In 1.0.0.25–1.0.0.125
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.62 | 133 |
| 1.0.0.63–1.0.0.73 | 136 |
| 1.0.0.74–1.0.0.81 | 137 |
| 1.0.0.82–1.0.0.96 | 141 |
| 1.0.0.97 | 142 |
| 1.0.0.98–1.0.0.102 | 143 |
| 1.0.0.103 | 145 |
| 1.0.0.104–1.0.0.106 | 150 |
| 1.0.0.107–1.0.0.108 | 151 |
| 1.0.0.109 | 152 |
| 1.0.0.110 | 160 |
| 1.0.0.111–1.0.0.116 | 161 |
| 1.0.0.117–1.0.0.118 | 162 |
| 1.0.0.119–1.0.0.123 | 163 |
| 1.0.0.124 | 167 |
| 1.0.0.125 | 168 |
A client holds the match at once where it is not already held.
No body.
Vectors (17)
one-on-1-0-0-61, one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81, one-on-1-0-0-96, one-on-1-0-0-97, one-on-1-0-0-99, one-on-1-0-0-103, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125
In 1.0.0.126–1.0.0.129
Command 169 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the client that asked for the hold; it applies only to a tournament’s hold. |
| timeLeft | i32 | The hold time left, in seconds, for any hold. A hold begins only where it is above zero and the match is not already held. |
| how | 1-byte bits | |
| how.tournament | bit 0 | Set for a tournament’s hold: as the hold begins, a client shows its tournament display, crediting seat. A hold still needs timeLeft above zero. |
| how.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (1)
GameEnded
What a server sends to end the match and say which side won. The header names no object: it carries zero.
In 1.0.0.25–1.0.0.57
Command 14 on events, sent by the server, reliable.
A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. It ends the match on its screen and sends ClientFinished. A client fails where its own player does not yet exist.
| Field | Type | What it is |
|---|---|---|
| result | u8 | Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won. |
In 1.0.0.58–1.0.0.95
Command 14 on events, sent by the server, reliable.
A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it shows an error and leaves as one abandoning the match. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.
| Field | Type | What it is |
|---|---|---|
| result | u8 | Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won. |
Vectors (1)
In 1.0.0.96–1.0.0.109
Command 14 on events, sent by the server, reliable.
A client counts a win where its own side is 100 and result is nonzero, or its side is 200 and result is zero, and a loss otherwise. Arriving while the match still loads, it records the result and the client leaves at once, sending nothing; where its own player does not yet exist, it first shows an error. Once the match runs, it ends the match on its screen and sends ClientFinished, counting a win where its own player does not exist.
| Field | Type | What it is |
|---|---|---|
| result | u8 | Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won. |
Vectors (1)
In 1.0.0.110–1.0.0.121
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.110 | 195 |
| 1.0.0.111–1.0.0.116 | 196 |
| 1.0.0.117–1.0.0.118 | 197 |
| 1.0.0.119–1.0.0.121 | 198 |
Arriving while the match still loads, it counts as a win or loss for the player’s side and the client leaves at once. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.
| Field | Type | What it is |
|---|---|---|
| result | u8 | Nonzero where side 100 won, zero where side 200 did; a client counts a win where its own side is the one that won. |
Vectors (4)
one-on-1-0-0-110, one-on-1-0-0-116, one-on-1-0-0-117, one-on-1-0-0-121
In 1.0.0.122–1.0.0.125
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.122 | 198 |
| 1.0.0.123 | 199 |
| 1.0.0.124 | 204 |
| 1.0.0.125 | 205 |
Arriving while the match still loads, it counts as a win or loss for the player’s side and the client leaves at once. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.
| Field | Type | What it is |
|---|---|---|
| result | 1-byte bits | |
| result.side100Won | bit 0 | Set where side 100 won, clear where side 200 did. A client counts a win where this names its own side, and a loss otherwise. |
| result.unused | bit 1 to 7 | A client does nothing with this bit. |
Vectors (4)
one-on-1-0-0-122, one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125
In 1.0.0.126–1.0.0.127
Command 206 on events, sent by the server, reliable.
Arriving while the match still loads, it counts as a win or loss for the player’s side, and the client hides its window and leaves at once; a client with no champion of its own first shows a message and counts neither. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.
| Field | Type | What it is |
|---|---|---|
| result | 1-byte bits | |
| result.side100Won | bit 0 | Set where side 100 won, clear where side 200 did. A client counts a win where this names its own side, and a loss otherwise. |
| result.unused | bit 1 to 7 | A client does nothing with this bit. |
Vectors (1)
In 1.0.0.128–1.0.0.129
Command 206 on events, sent by the server, reliable.
Arriving while the match still loads, it counts as a win or loss for the player’s side and the client leaves at once. Otherwise the client ends the match on its screen and sends ClientFinished, except while playing a replay.
| Field | Type | What it is |
|---|---|---|
| result | 1-byte bits | |
| result.side100Won | bit 0 | Set where side 100 won, clear where side 200 did. |
| result.unused | bit 1 to 7 | Unused; a server writes zero. |
ClientFinished
What a client sends when it has finished with the match.
In 1.0.0.25–1.0.0.95
Command 17 on requests, sent by the client, reliable.
A client sends it each time GameEnded arrives.
No body.
Vectors (1)
In 1.0.0.96–1.0.0.109
Command 17 on requests, sent by the client, reliable.
A client sends it each time GameEnded arrives once the match has started, and not for one that arrives while the match still loads.
No body.
Vectors (1)
In 1.0.0.110–1.0.0.129
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.110 | 137 |
| 1.0.0.111–1.0.0.116 | 138 |
| 1.0.0.117–1.0.0.118 | 139 |
| 1.0.0.119–1.0.0.123 | 140 |
| 1.0.0.124–1.0.0.125 | 144 |
| 1.0.0.126–1.0.0.129 | 145 |
It is sent once, at the end.
No body.
VictoryDance
What a server sends to set units moving as winners or losers do. It ends nothing and changes nothing else on screen. The header carries zero.
In 1.0.0.123–1.0.0.129
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.123 | 198 |
| 1.0.0.124 | 203 |
| 1.0.0.125 | 204 |
| 1.0.0.126–1.0.0.129 | 205 |
| Field | Type | What it is |
|---|---|---|
| orderWon | u8 | Nonzero where side 100 won, zero where side 200 won. |
Exit
What a client sends as it leaves. It carries nothing of its own.
In 1.0.0.25–1.0.0.57
Command 115 on requests, sent by the client, reliable.
A client sends it once, as it leaves without a result: as its player confirms quitting or the window is asked to close, or as its player gives up reconnecting after the connection is lost, or loses it where reconnecting is turned off. It sends none after GameEnded, and none on Shutdown or BotKick.
No body.
In 1.0.0.58–1.0.0.62
Command 115 on requests, sent by the client, reliable.
A client sends it once, as it leaves without a result while the match runs: as its player quits from the options menu or closes the window, gives up reconnecting after the connection is lost, or dismisses the notice that it was disconnected for being away. It sends none while the match still loads, none after GameEnded, and none on Shutdown or BotKick.
No body.
Vectors (1)
In 1.0.0.63–1.0.0.81
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.63–1.0.0.73 | 118 |
| 1.0.0.74–1.0.0.81 | 119 |
A client sends it as it leaves as one abandoning the match: as its player confirms quitting or closes the window, as a reconnection fails, or on Shutdown or BotKick.
No body.
Vectors (3)
In 1.0.0.82–1.0.0.96
Command 123 on requests, sent by the client, reliable.
A client sends it as it leaves as one abandoning the match: as its player confirms quitting or closes the window, or as a reconnection fails.
No body.
Vectors (1)
In 1.0.0.97–1.0.0.129
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.97–1.0.0.102 | 124 |
| 1.0.0.103–1.0.0.106 | 126 |
| 1.0.0.107–1.0.0.108 | 127 |
| 1.0.0.109 | 128 |
| 1.0.0.110 | 140 |
| 1.0.0.111–1.0.0.116 | 141 |
| 1.0.0.117–1.0.0.118 | 142 |
| 1.0.0.119–1.0.0.123 | 143 |
| 1.0.0.124–1.0.0.125 | 147 |
| 1.0.0.126–1.0.0.129 | 148 |
A client sends it as it leaves as one abandoning the match: as its player confirms quitting or closes the window, as a reconnection fails, or on Shutdown or BotKick.
No body.
PlayerDisconnected
What a server sends as a player’s client drops out. The header carries zero.
In 1.0.0.25–1.0.0.62
Command 116 on events, sent by the server, reliable.
A client shows a chat notice naming the player that client id belongs to, whenever its interface exists: in a neutral colour where it has no champion of its own, and otherwise coloured for whether that player is on its own side.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The player’s client id, matched against the client id CreateChampion gave each champion the client knows. |
Vectors (1)
In 1.0.0.63–1.0.0.81
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.63–1.0.0.73 | 119 |
| 1.0.0.74–1.0.0.81 | 120 |
A client shows a chat notice naming the player in their side’s colour, and nothing where player names no champion it knows, names its own champion, or the match is not under way.
| Field | Type | What it is |
|---|---|---|
| champion | u32 | The player’s champion, matched against the owner of each champion the client knows. |
Vectors (3)
In 1.0.0.82–1.0.0.96
Command 124 on events, sent by the server, reliable.
A client shows a chat notice naming the player that client id belongs to, whenever its interface exists: in a neutral colour where it has no champion of its own, and otherwise coloured for whether that player is on its own side.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The player’s client id, matched against the client id CreateChampion gave each champion the client knows. |
Vectors (1)
In 1.0.0.97–1.0.0.125
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.97–1.0.0.102 | 125 |
| 1.0.0.103–1.0.0.106 | 127 |
| 1.0.0.107–1.0.0.108 | 128 |
| 1.0.0.109 | 129 |
| 1.0.0.110 | 151 |
| 1.0.0.111–1.0.0.116 | 152 |
| 1.0.0.117–1.0.0.118 | 153 |
| 1.0.0.119–1.0.0.123 | 154 |
| 1.0.0.124 | 158 |
| 1.0.0.125 | 159 |
A client shows a chat notice naming the player in their side’s colour, and nothing where player names no champion it knows, names its own champion, or the match is not under way.
| Field | Type | What it is |
|---|---|---|
| champion | u32 | The player’s champion, matched against the owner of each champion the client knows. |
In 1.0.0.126–1.0.0.127
Command 160 on events, sent by the server, reliable.
A client shows a chat notice naming the player that client id belongs to, whenever its interface exists: coloured for whether that player is on its own side where it has a champion of its own and is not watching the match, and otherwise in that player’s side’s colour.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The player’s client id, matched against the client id CreateChampion gave each champion the client knows. |
Vectors (1)
In 1.0.0.128–1.0.0.129
Command 160 on events, sent by the server, reliable.
A client shows a chat notice naming the player in their side’s colour, and nothing where player names no champion it knows, names its own champion, or the match is not under way.
| Field | Type | What it is |
|---|---|---|
| champion | u32 | The player’s champion. |
ReconnectedInMatch
What a client sends right after the server answers its registration. The header carries zero.
In 1.0.0.25–1.0.0.62
Command 117 on requests, sent by the client, reliable.
A client dropped while playing asks its player whether to reconnect; where the drop gives inactivity or another reason, it only says it cannot reconnect. One dropped at any other time closes.
| Field | Type | What it is |
|---|---|---|
| loading | u8 | Zero while the client is playing, in the state StartGame puts it in; 1 at any other time, including after GameEnded. |
Vectors (1)
In 1.0.0.63–1.0.0.81
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.63–1.0.0.73 | 120 |
| 1.0.0.74–1.0.0.81 | 121 |
A client sends it once it has connected again to a match it was playing. A client dropped while playing reconnects by itself; one dropped while loading leaves instead.
| Field | Type | What it is |
|---|---|---|
| loading | u8 | Zero once the client has taken StartGame, 1 before it. |
Vectors (3)
In 1.0.0.82–1.0.0.96
Command 125 on requests, sent by the client, reliable.
A client sends it once it has connected again to a match it was playing. A client dropped while playing reconnects by itself; one dropped while loading leaves instead.
| Field | Type | What it is |
|---|---|---|
| loading | u8 | Zero while the match StartGame began is running, 1 otherwise: before StartGame, and once the match has ended. |
Vectors (1)
In 1.0.0.97–1.0.0.129
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.97–1.0.0.102 | 126 |
| 1.0.0.103–1.0.0.106 | 128 |
| 1.0.0.107–1.0.0.108 | 129 |
| 1.0.0.109 | 130 |
| 1.0.0.110 | 155 |
| 1.0.0.111–1.0.0.116 | 156 |
| 1.0.0.117–1.0.0.118 | 157 |
| 1.0.0.119–1.0.0.123 | 158 |
| 1.0.0.124 | 162 |
| 1.0.0.125 | 163 |
| 1.0.0.126–1.0.0.129 | 164 |
A client sends it once it has connected again to a match it was playing. A client dropped while playing reconnects by itself; one dropped while loading leaves instead.
| Field | Type | What it is |
|---|---|---|
| loading | u8 | Zero once the client has taken StartGame, 1 before it. |
Reconnected
What a server sends to say a client has reconnected. 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.25–1.0.0.62 | 118 |
| 1.0.0.63–1.0.0.73 | 121 |
| 1.0.0.74–1.0.0.81 | 122 |
| 1.0.0.82–1.0.0.96 | 126 |
| 1.0.0.97–1.0.0.102 | 127 |
| 1.0.0.103–1.0.0.106 | 129 |
| 1.0.0.107–1.0.0.108 | 130 |
| 1.0.0.109 | 131 |
| 1.0.0.110–1.0.0.129 | 16 |
| Field | Type | What it is |
|---|---|---|
| client | u32 | The client, by the seat it occupies. |
ClockConvergence
What a server sends about how its clock and a client’s are being brought together. The header carries zero.
In 1.0.0.25–1.0.0.127
Carried on clock, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 1.0.0.25–1.0.0.62 | 76 |
| 1.0.0.63–1.0.0.73 | 82 |
| 1.0.0.74–1.0.0.81 | 83 |
| 1.0.0.82–1.0.0.96 | 86 |
| 1.0.0.97–1.0.0.102 | 87 |
| 1.0.0.103–1.0.0.106 | 88 |
| 1.0.0.107–1.0.0.108 | 89 |
| 1.0.0.109 | 90 |
| 1.0.0.110 | 114 |
| 1.0.0.111–1.0.0.116 | 115 |
| 1.0.0.117–1.0.0.118 | 116 |
| 1.0.0.119–1.0.0.123 | 117 |
| 1.0.0.124–1.0.0.127 | 121 |
| Field | Type | What it is |
|---|---|---|
| clientTime | f32 | The client’s clock, in seconds, as the client reported it. A client sets its clock offset from it: its running round trip value, less half of its own clock’s reading less this value. |
| roundTrip | f32 | The round trip time the server measures, in seconds. A client blends it into a running value, keeping 0.8 of the old and adding 0.1 of this. |
In 1.0.0.128–1.0.0.129
Command 121 on clock, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| clientTime | f32 | The client’s clock, in seconds, as the client reported it. |
| roundTrip | f32 | The round trip time the server measures, in seconds. |