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

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 GameSpeed sets takes effect at once: sent during a hold, it ends the hold, and a Resumed after it changes nothing.

In 1.0.0.58–1.0.0.129

StatTick asks every unit’s stats to advance by that span.

In 1.0.0.126–1.0.0.129

Sent during a hold, GameSpeed takes 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).

In 1.0.0.126–1.0.0.129

A client names no one in Pause or Resume.

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

Paused carries 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 Paused carries 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

Resumed ends 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 GameEnded while still loading leaves at once.

VictoryDance sets units moving as winners or losers do. It ends nothing.

In 1.0.0.126

VictoryDance moves 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 Reconnected names the client’s own, the client resynchronises until ResyncEnded.

In 1.0.0.58–1.0.0.60

A client sends ReconnectedInMatch right 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.

Definition.

In 1.0.0.25–1.0.0.62

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

FieldTypeWhat it is
elapsedf32How 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)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.125

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

BuildsCommand
1.0.0.63–1.0.0.7380
1.0.0.74–1.0.0.8181
1.0.0.82–1.0.0.9684
1.0.0.97–1.0.0.10285
1.0.0.103–1.0.0.10686
1.0.0.107–1.0.0.10887
1.0.0.10988
1.0.0.110192
1.0.0.111–1.0.0.116193
1.0.0.117–1.0.0.118194
1.0.0.119–1.0.0.123195
1.0.0.124199
1.0.0.125200
FieldTypeWhat it is
elapsedf32How long the match has run, in seconds.
Vectors (14)

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-99, 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 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.

FieldTypeWhat it is
elapsedf32How long the match has run, in seconds.
Vectors (1)

one-on-1-0-0-126

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.

Definition.

In 1.0.0.25–1.0.0.119

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

BuildsCommand
1.0.0.25–1.0.0.6275
1.0.0.63–1.0.0.7381
1.0.0.74–1.0.0.8182
1.0.0.82–1.0.0.9685
1.0.0.97–1.0.0.10286
1.0.0.103–1.0.0.10687
1.0.0.107–1.0.0.10888
1.0.0.10989
1.0.0.110–1.0.0.1198
FieldTypeWhat it is
valueu32The client id the sender holds.
serverSaidf32The time the server last stated, in seconds, carried back as it arrived.
clientSaidf32What the client’s own clock reads, in seconds, just after it set itself from that statement.
Vectors (10)

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-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-119

In 1.0.0.120–1.0.0.127

Command 8 on clock, sent by the client, reliable.

FieldTypeWhat it is
valueu32The client id the sender holds.
serverSaidf32The time the server last stated, in seconds, carried back as it arrived.
clientSaidf32What the client’s own clock reads, in seconds, just after it set itself from that statement.
checkbytes, 32The same thirty two bytes from every client of the build; they carry nothing a server needs.
Vectors (1)

one-on-1-0-0-126

In 1.0.0.128–1.0.0.129

Command 8 on clock, sent by the client, reliable.

FieldTypeWhat it is
valueu32The client id the sender holds, as it sends in clientId in Camera and CameraLock.
serverSaidf32What the server last said the clock stood at, in seconds.
clientSaidf32What the client’s own clock reads, in seconds, just after it set itself from that statement: elapsed plus its smoothed estimate of the delay.
checkbytes, 32Thirty-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.

Definition.

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.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client applies it as given, with no limit.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73138
1.0.0.74–1.0.0.81139

Sent while paused, it takes effect on resuming.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client keeps it between 0 and 10.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

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.

FieldTypeWhat it is
speedf32How fast, 1 being normal; 0 pauses the game.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.109

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

BuildsCommand
1.0.0.97144
1.0.0.98–1.0.0.102145
1.0.0.103147
1.0.0.104–1.0.0.106152
1.0.0.107–1.0.0.108153
1.0.0.109154

Sent while paused, it takes effect on resuming.

FieldTypeWhat it is
speedf32How fast, 1 being normal. A client keeps it between 0 and 10.
Vectors (6)

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

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.

FieldTypeWhat it is
speedf32How fast, 1 being normal.
Vectors (1)

one-on-1-0-0-110

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.

FieldTypeWhat it is
speedf32How 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)

doubled-on-1-0-0-126

Resumed

What a server sends to take the match off hold. The header names a champion: that of the player who resumed the match.

Definition.

In 1.0.0.25–1.0.0.125

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

BuildsCommand
1.0.0.25–1.0.0.62134
1.0.0.63–1.0.0.73137
1.0.0.74–1.0.0.81138
1.0.0.82–1.0.0.96142
1.0.0.97143
1.0.0.98–1.0.0.102144
1.0.0.103146
1.0.0.104–1.0.0.106151
1.0.0.107–1.0.0.108152
1.0.0.109153
1.0.0.110–1.0.0.12510

A client resumes the match at once where it is held, and announces no one.

No body.

Vectors (12)

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-125

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.

FieldTypeWhat it is
clientIdu32The 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.
how1-byte bits
how.afterCountdownbit 0Set where the match starts again after a countdown rather than at once.
how.unusedbit 1 to 7Unused; a server writes zero.
Vectors (2)

after-a-countdown-on-1-0-0-126, one-on-1-0-0-128

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.

FieldTypeWhat it is
clientIdu32The 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.
how1-byte bits
how.afterCountdownbit 0Set where the match starts again after a countdown rather than at once.
how.unusedbit 1 to 7Unused; a server writes zero.

Pause

What a client sends to hold a match. The header names no object: it carries zero.

Definition.

In 1.0.0.124–1.0.0.125

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

BuildsCommand
1.0.0.124167
1.0.0.125168

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)

one-on-1-0-0-124, one-on-1-0-0-125

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.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
timeLefti32A client leaves it unwritten; its bytes carry no meaning.
how1-byte bits
how.tournamentbit 0A client sends it clear.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning.
Vectors (1)

one-on-1-0-0-126

Resume

What a client sends to start a paused match again. The header names no object: it carries zero.

Definition.

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)

one-on-1-0-0-125

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.

FieldTypeWhat it is
clientIdu32A client writes 4294967295, the client id of no client.
how1-byte bits
how.delayedbit 0A client sends it clear.
how.unusedbit 1 to 7A client leaves these bits unwritten; they carry no meaning.
Vectors (1)

from-a-client-on-1-0-0-126

Paused

What a server sends to put the match on hold. The header names no object: it carries zero.

Definition.

In 1.0.0.25–1.0.0.125

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

BuildsCommand
1.0.0.25–1.0.0.62133
1.0.0.63–1.0.0.73136
1.0.0.74–1.0.0.81137
1.0.0.82–1.0.0.96141
1.0.0.97142
1.0.0.98–1.0.0.102143
1.0.0.103145
1.0.0.104–1.0.0.106150
1.0.0.107–1.0.0.108151
1.0.0.109152
1.0.0.110160
1.0.0.111–1.0.0.116161
1.0.0.117–1.0.0.118162
1.0.0.119–1.0.0.123163
1.0.0.124167
1.0.0.125168

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.

FieldTypeWhat it is
clientIdu32The client id of the client that asked for the hold; it applies only to a tournament’s hold.
timeLefti32The hold time left, in seconds, for any hold. A hold begins only where it is above zero and the match is not already held.
how1-byte bits
how.tournamentbit 0Set 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.unusedbit 1 to 7Unused; a server writes zero.
Vectors (1)

a-tournament-hold-on-1-0-0-126

GameEnded

What a server sends to end the match and say which side won. The header names no object: it carries zero.

Definition.

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.

FieldTypeWhat it is
resultu8Nonzero 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.

FieldTypeWhat it is
resultu8Nonzero 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)

one-on-1-0-0-75

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.

FieldTypeWhat it is
resultu8Nonzero 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)

one-on-1-0-0-109

In 1.0.0.110–1.0.0.121

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

BuildsCommand
1.0.0.110195
1.0.0.111–1.0.0.116196
1.0.0.117–1.0.0.118197
1.0.0.119–1.0.0.121198

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.

FieldTypeWhat it is
resultu8Nonzero 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:

BuildsCommand
1.0.0.122198
1.0.0.123199
1.0.0.124204
1.0.0.125205

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.

FieldTypeWhat it is
result1-byte bits
result.side100Wonbit 0Set 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.unusedbit 1 to 7A 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.

FieldTypeWhat it is
result1-byte bits
result.side100Wonbit 0Set 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.unusedbit 1 to 7A client does nothing with this bit.
Vectors (1)

side-100-won-on-1-0-0-126

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.

FieldTypeWhat it is
result1-byte bits
result.side100Wonbit 0Set where side 100 won, clear where side 200 did.
result.unusedbit 1 to 7Unused; a server writes zero.

ClientFinished

What a client sends when it has finished with the match.

Definition.

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)

one-on-1-0-0-75

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)

one-on-1-0-0-109

In 1.0.0.110–1.0.0.129

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

BuildsCommand
1.0.0.110137
1.0.0.111–1.0.0.116138
1.0.0.117–1.0.0.118139
1.0.0.119–1.0.0.123140
1.0.0.124–1.0.0.125144
1.0.0.126–1.0.0.129145

It is sent once, at the end.

No body.

Vectors (6)

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-125, empty-on-1-0-0-126

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.

Definition.

In 1.0.0.123–1.0.0.129

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

BuildsCommand
1.0.0.123198
1.0.0.124203
1.0.0.125204
1.0.0.126–1.0.0.129205
FieldTypeWhat it is
orderWonu8Nonzero where side 100 won, zero where side 200 won.
Vectors (4)

one-on-1-0-0-123, one-on-1-0-0-124, one-on-1-0-0-125, side-100-won-on-1-0-0-126

Exit

What a client sends as it leaves. It carries nothing of its own.

Definition.

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)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73118
1.0.0.74–1.0.0.81119

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)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

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)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.129

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

BuildsCommand
1.0.0.97–1.0.0.102124
1.0.0.103–1.0.0.106126
1.0.0.107–1.0.0.108127
1.0.0.109128
1.0.0.110140
1.0.0.111–1.0.0.116141
1.0.0.117–1.0.0.118142
1.0.0.119–1.0.0.123143
1.0.0.124–1.0.0.125147
1.0.0.126–1.0.0.129148

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 (10)

one-on-1-0-0-99, 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-125, empty-on-1-0-0-126

PlayerDisconnected

What a server sends as a player’s client drops out. The header carries zero.

Definition.

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.

FieldTypeWhat it is
clientIdu32The player’s client id, matched against the client id CreateChampion gave each champion the client knows.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73119
1.0.0.74–1.0.0.81120

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.

FieldTypeWhat it is
championu32The player’s champion, matched against the owner of each champion the client knows.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

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.

FieldTypeWhat it is
clientIdu32The player’s client id, matched against the client id CreateChampion gave each champion the client knows.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.125

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

BuildsCommand
1.0.0.97–1.0.0.102125
1.0.0.103–1.0.0.106127
1.0.0.107–1.0.0.108128
1.0.0.109129
1.0.0.110151
1.0.0.111–1.0.0.116152
1.0.0.117–1.0.0.118153
1.0.0.119–1.0.0.123154
1.0.0.124158
1.0.0.125159

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.

FieldTypeWhat it is
championu32The player’s champion, matched against the owner of each champion the client knows.
Vectors (10)

one-on-1-0-0-99, 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.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.

FieldTypeWhat it is
clientIdu32The player’s client id, matched against the client id CreateChampion gave each champion the client knows.
Vectors (1)

one-on-1-0-0-126

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.

FieldTypeWhat it is
championu32The player’s champion.

ReconnectedInMatch

What a client sends right after the server answers its registration. The header carries zero.

Definition.

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.

FieldTypeWhat it is
loadingu8Zero while the client is playing, in the state StartGame puts it in; 1 at any other time, including after GameEnded.
Vectors (1)

one-on-1-0-0-61

In 1.0.0.63–1.0.0.81

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

BuildsCommand
1.0.0.63–1.0.0.73120
1.0.0.74–1.0.0.81121

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.

FieldTypeWhat it is
loadingu8Zero once the client has taken StartGame, 1 before it.
Vectors (3)

one-on-1-0-0-72, one-on-1-0-0-75, one-on-1-0-0-81

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.

FieldTypeWhat it is
loadingu8Zero while the match StartGame began is running, 1 otherwise: before StartGame, and once the match has ended.
Vectors (1)

one-on-1-0-0-96

In 1.0.0.97–1.0.0.129

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

BuildsCommand
1.0.0.97–1.0.0.102126
1.0.0.103–1.0.0.106128
1.0.0.107–1.0.0.108129
1.0.0.109130
1.0.0.110155
1.0.0.111–1.0.0.116156
1.0.0.117–1.0.0.118157
1.0.0.119–1.0.0.123158
1.0.0.124162
1.0.0.125163
1.0.0.126–1.0.0.129164

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.

FieldTypeWhat it is
loadingu8Zero once the client has taken StartGame, 1 before it.
Vectors (10)

one-on-1-0-0-99, 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

Reconnected

What a server sends to say a client has reconnected. 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.25–1.0.0.62118
1.0.0.63–1.0.0.73121
1.0.0.74–1.0.0.81122
1.0.0.82–1.0.0.96126
1.0.0.97–1.0.0.102127
1.0.0.103–1.0.0.106129
1.0.0.107–1.0.0.108130
1.0.0.109131
1.0.0.110–1.0.0.12916
FieldTypeWhat it is
clientu32The client, by the seat it occupies.
Vectors (10)

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-99, one-on-1-0-0-106, one-on-1-0-0-108, one-on-1-0-0-109, one-on-1-0-0-126

ClockConvergence

What a server sends about how its clock and a client’s are being brought together. The header carries zero.

Definition.

In 1.0.0.25–1.0.0.127

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

BuildsCommand
1.0.0.25–1.0.0.6276
1.0.0.63–1.0.0.7382
1.0.0.74–1.0.0.8183
1.0.0.82–1.0.0.9686
1.0.0.97–1.0.0.10287
1.0.0.103–1.0.0.10688
1.0.0.107–1.0.0.10889
1.0.0.10990
1.0.0.110114
1.0.0.111–1.0.0.116115
1.0.0.117–1.0.0.118116
1.0.0.119–1.0.0.123117
1.0.0.124–1.0.0.127121
FieldTypeWhat it is
clientTimef32The 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.
roundTripf32The 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.
Vectors (14)

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-99, 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-126

In 1.0.0.128–1.0.0.129

Command 121 on clock, sent by the server, reliable.

FieldTypeWhat it is
clientTimef32The client’s clock, in seconds, as the client reported it.
roundTripf32The round trip time the server measures, in seconds.