Joining a match
What passes between a client and a server from connection until play begins, in order.
Starting a client
A client learns where to connect from its command line. It takes three arguments it needs nothing in, which can be empty, and then a fourth holding four words separated by single spaces: the server’s IPv4 address, its UDP port, the key (see Transport), and the player id the client registers as. The client connects to that address and port, registers as that player, and enciphers its proof under that key.
Registering
A client’s first payload is Register, on the registration channel. The note
on Registered says what a server answers with: one answer for every seat.
A client knows the answer meant for it by the player id it registered as, not by the client id, and takes the client id that answer carries as its own. Every other answer tells it which client id stands for which player.
A client waits 30 seconds for the answer naming its own player id. Then it offers its player to wait another 30 seconds or to give up, and leaves on giving up.
In 4.1–4.19
The first answer for a client id stands, and a later one for the same client id changes nothing. An answer for its own player id arriving during play has a client send
ReconnectedInMatch.
In 4.1–4.19
A client uses which client id stands for which player for names, sides and loading cards. It takes an answer whenever it arrives, while loading or in play, and one saying a client has dropped changes nothing it shows.
Asking whether a server is ready
A client then sends QueryStatus over and over. A server MUST answer each one
with QueryStatusAnswer, at least until it has answered that it is ready.
While the answers say the server is not ready, a client stays on a black screen
and keeps asking. A server that needs time before a match can begin answers
that it is not ready until it is.
A server MUST also answer each QueryStatus that comes after its first ready
answer.
Stating a build
Once an answer says the server is ready, a client sends ClientVersion once. A
server answers with VersionSync, and a client loads only where its
agreement says the builds agree.
VersionSync names the map to load and everyone at the match.
In 4.1–4.19
A client loads only where
VersionSyncsetsagreement.buildMatches. With it clear, the client shows its player its own version text beside the one the message carries, and ends.
In 4.1–4.19
A client never compares the two otherwise: the message’s build text appears only in that notice.
agreement.matchedchanges some of what chat and the options offer, and nothing about loading. A server leavesreportsToFileandreportingReadyclear, since they have a client write metrics to a file of its own and report to the addresses the message carries.No bit of
featuresis needed for a match to load, and a match with every bit clear has none of the features. A client’s own defaults for most of the bits are in its fileDATA/CFG/defaults/GameFeatures.cfg, one key each, though not in the order of the bits. A server MAY start from those defaults, and leaves the bits that report metrics clear.
Taking a seat
Straight after VersionSync, a client sends JoinSide on the roster channel.
A server answers with one Roster, then a SeatName and a SeatChampion for
each seat a player holds.
In 4.1–4.19
Every seat a player holds needs its place in
Roster, itsSeatNameand itsSeatChampion; a client shows a seat it lacks them for as an empty card. A laterSeatNamereplaces the one before it. A client whose own seatRosterleaves out knows no side for its player, and announcements meant for allies do not show.
Loading
A client reports how far loading has got with LoadingProgress, repeatedly
through loading. A server answers each report with SeatLoadProgress on the
transient channel, carrying the report’s figures under the seat that reported.
A client goes on reporting after its progress reaches 100, until play begins.
A client waits on no other seat. SpawnStart, SpawnEnd and StartGame are
what move a client on, and StartGame alone ends its loading. A server that
means its players to begin together sends StartGame to none of them until
every client has sent ClientReady.
A client writes all ones where its player id goes in LoadingProgress.
A server MUST put the seat’s player id in SeatLoadProgress: the loading
screen shows a seat’s card from the VersionSync seat with that id.
In 4.1–4.19
The loading screen
What a client draws while it loads comes from what it has been sent by then (see the spawn run below for what it takes before
CharacterSelected).A player’s card is built from several messages. Its place on the screen is that seat’s place in the
Roster, and its name is that player’sSeatName. The registration answers (Registered) pair each player with a client id, and the latestSeatLoadProgressfor that client gives the card its progress and, on the client’s own card only, its ping. The firstSeatLoadProgressafter the player’sSeatChampionsets the card up: its portrait and the champion’s name, from thatSeatChampion’s champion and skin, then everything else from theVersionSyncseat whose player id theSeatLoadProgressnames. A card with noSeatChampionyet shows a black portrait, and one with no registration or noSeatLoadProgressyet says it is not connected. A laterSeatChampiondoes not change a card already set up.
In 4.1–4.19
Each
SeatLoadProgressupdates the card of the seat it names, and a client draws its own card only as a server returns its own reports.From the
VersionSyncseat a card takes:
- the two summoner spells, as the name hashes of the spells, each drawn as its icon, or as a plain square for zero or a hash that names no spell;
- the profile icon, the art of icon 0 for a negative number or one with no art;
- the standing, drawn as a frame over the card where the client’s own images have one of that name (UNRANKED and BRONZE draw nothing);
- one badge: the ally badge for the card’s own side, otherwise the enemy badge, each drawn where it is one of the badges the client’s own data names;
- from the flags, bit 1, which shows the skin’s older portrait art where it has one.
A seat’s level is not drawn. A seat with flags bit 0 set is a bot’s, and the client draws its card from the seat alone, needing no other message: the client’s own name for a bot of that champion (not the seat’s bot name), the champion’s portrait in the bot’s skin with the skin’s name, summoner spells the client’s own data picks for the champion, mode and difficulty, and 100%. A seat on neither side 100 nor 200 has no card.
Between the two rows, where both have a card, a client shows the two sides’ team names, each as its tag in square brackets, a space and its name, and nothing for a side whose name is empty: names
Team 1andTeam 2under tagsT1andT2show as[T1] Team 1and[T2] Team 2either side of the versus emblem. A tip set inVersionSyncto show on the loading screen takes their place for its duration, and then they appear. The match’s variants can give the screen a background picture of their naming; with none, it has none.
The spawn run
Once a character is settled, a client sends CharacterSelected, once.
Until it sends CharacterSelected, a client drops every message but
VersionSync, QueryStatusAnswer, MatchIdentity, SeatLoadProgress and
GameEnded, apart from what arrives on the registration and roster channels,
and keeps nothing it drops for later. A server MUST NOT send any of the spawn
run before CharacterSelected arrives.
A client can send CharacterSelected before its progress reaches 100.
A server answers with SpawnStart, states everything on the field as play
opens, and closes the run with SpawnEnd. A run carries:
- for each seat,
CreateChampionfollowed byLoadout; - for each turret, a
CreateTurretand aReplicationbatch of its values; - for each inhibitor and nexus, an
EnterSight, and aReplicationbatch on a map whose buildings replicate (see Replication); - a
RegionAddedfor each region, and aMapPropfor each prop; - at a server’s choice, an
EnterLocalSightfor any of those units.
A turret’s CreateTurret can come on its own or inside the EnterSight that
brings the turret into view.
A client takes these in any order within the run.
A run MUST carry at least SpawnStart, the CreateChampion carrying the
client’s own client id, and SpawnEnd. Given only those, a client still enters play,
showing its champion’s portrait, health, resource and spells. It draws the
champion on the map only once an EnterSight places it there, with its name
and health bar over it.
A client’s shop stays empty until its own champion’s Loadout arrives (see
The shop).
A client answers each Replication batch with a TransientAck naming that
batch’s syncId. It sends one answer for each batch, in the order the batches
came, including a batch that repeats the syncId of the batch before it.
A client answers the batches the run carried once SpawnEnd arrives.
Starting play
A client sends ClientReady after SpawnEnd and after its answers to the
run’s batches, while it is still reporting its loading. A server MUST answer
with StartGame, and later sends MatchStarted, with other messages free to
come between them; MatchStarted carries 0 (see Time).
A client whose connection drops before play begins ends rather than connecting
again. A server follows StartGame with a ClockSync, and a client enters play once
it has both. The first ClockSync carries 0.
In 4.1–4.19
Between
ClientReadyandStartGamea client keeps its loading screen up with its own progress full, and sendsLoadingProgressagain about every half a second. It waits as long as it takes: nothing in it gives up on a server that is slow to start play.
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).
Register
What a client sends first. It arrives before the connection has a cipher state, so the payload travels in the clear apart from the proof.
In 4.1–4.17
Command 0 on registration, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| leading | bytes, 3 | Arbitrary; it carries no meaning. |
| clientId | u32 | A client writes zero here. |
| playerId | i64 | Who the sender claims to be. The proof is what settles the claim. |
| version | u32 | The build the client runs, with each part written out and run together, so 4.17.0.233 arrives as 41700233 and 4.17.0.267 as 41700267. A client always carries it, and the answer a server carries back repeats the same number. |
| proof | i64 | The player id enciphered with the 16-byte key; a plain copy where the client has no key. |
| trailing | bytes, 4 | Arbitrary; it carries no meaning. |
Vectors (1)
In 4.18–4.20
Command 0 on registration, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| leading | bytes, 3 | Arbitrary; it carries no meaning. |
| clientId | u32 | A client writes zero here. |
| playerId | i64 | Who the sender claims to be. The proof is what settles the claim. |
| version | u32 | The build the client runs, with each part written out and run together, so 4.20.0.315 arrives as 42000315. A client always carries it, and the answer a server carries back repeats the same number. |
| proof | i64 | The player identifier and nothing else, enciphered under the key both ends already hold. Deciphering it and finding the identifier beside it is what shows the sender holds the key. A client enciphers the player identifier the request carries. |
| trailing | bytes, 4 | Arbitrary; it carries no meaning. |
Vectors (1)
Registered
What a server answers a registration with, naming a player in the match and the seat they occupy. It shares its command value with the request it answers, which travels the other way, and it is one fixed size.
In 4.1–4.17
Command 0 on registration, sent by the server, reliable.
Straight after a request a server sends one answer for every seat, and every one of them carries that request’s build and proof back.
| Field | Type | What it is |
|---|---|---|
| leading | bytes, 3 | Unused; a server writes zero. |
| clientId | u32 | The client id playerId holds. Where playerId is the client’s own, the client takes this client id as its own and goes on. A watching client takes the champion of the player holding this client id as its own, so a server answers one with a client id no player in the streamed match holds (see Watching a match). |
| playerId | i64 | Who occupies that seat. |
| version | u32 | The build the client said it runs. Where the answer follows a request, a server writes the number that request carried, and otherwise the build itself. A client ignores it. |
| proof | bytes, 8 | The eight bytes a request fills with its proof. Where the answer follows a request, a server writes what that request carried, and otherwise zero. A client ignores them. |
| trailing | bytes, 4 | Unused; a server writes zero. |
Vectors (1)
In 4.18–4.20
Command 0 on registration, sent by the server, reliable.
Straight after a request a server sends one answer for every seat, and every one of them carries that request’s build and proof back.
| Field | Type | What it is |
|---|---|---|
| leading | bytes, 3 | Unused; a server writes zero. It occupies the same three bytes a request uses. |
| clientId | u32 | The client id the named player holds, counted from zero. A watching client takes the champion of the player holding this client id as its own, so a server answers one with a client id no player in the streamed match holds (see Watching a match). |
| playerId | i64 | Who occupies that seat. |
| version | u32 | The build the client said it runs. Where the answer follows a request, a server writes the number that request carried, and otherwise the build itself. A client ignores it. |
| proof | bytes, 8 | The eight bytes a request fills with its proof. Where the answer follows a request, a server writes what that request carried, and otherwise zero. A client ignores them. |
| trailing | bytes, 4 | Unused; a server writes zero. |
Vectors (1)
QueryStatus
What a client sends to ask a server for its state. It carries nothing of its own. The header names no object: it carries zero.
In every range of this book
Command 20 on requests, sent by the client, reliable.
No body.
Vectors (2)
QueryStatusAnswer
What a server returns when asked whether it is ready. The header names no object: a server writes zero.
In every range of this book
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.1–4.10 | 135 |
| 4.11–4.20 | 136 |
| Field | Type | What it is |
|---|---|---|
| ready | u8 | Whether the server is ready. While answers say it is not, a client keeps asking and goes no further, which Joining a match sets out. Values: 0 no, 1 yes. |
Vectors (5)
not-ready-on-4-10, one-on-4-10, one-on-4-17, not-ready-on-4-20, one-on-4-20
ClientVersion
What a client sends to state which build it is. 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 |
|---|---|
| 4.1–4.10 | 188 |
| 4.11–4.20 | 189 |
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the client reporting. |
| text | text, 256 bytes | The build, as text. The text ends at a zero byte. |
Vectors (4)
one-on-4-10, public-build-on-4-10, one-on-4-17, public-build-on-4-20
VersionSync
What a server sends once a client has said which build it runs, saying whether the two agree. The header names no object: it carries zero.
In 4.1
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own. |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 2 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.altControls | bit 7 | Some mouse commands are taken by the time since the click before; what that changes on screen is not recorded. |
| features.shopUndo | bit 8 | The shop’s undo; clear, it is never enabled. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.unused | bit 18 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
Vectors (1)
In 4.2
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own. |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. A client takes them from the first VersionSync alone and keeps them for the match. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.altControls | bit 7 | Some mouse commands are taken by the time since the click before; what that changes on screen is not recorded. |
| features.shopUndo | bit 8 | The shop’s undo; clear, it is never enabled. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 18 | Lag figures in the network report. |
| features.logServerAddress | bit 19 | It changes nothing a client shows. |
| features.unused | bit 20 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
Vectors (1)
In 4.3–4.4
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. A client takes them from the first VersionSync alone and keeps them for the match. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.altControls | bit 7 | Some mouse commands are taken by the time since the click before; what that changes on screen is not recorded. |
| features.shopUndo | bit 8 | The shop’s undo; clear, it is never enabled. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.bit18 | bit 18 | Unused; a server writes zero. |
| features.lagMetrics | bit 19 | Lag figures in the network report. |
| features.eventReports | bit 20 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 21 | It changes nothing a client shows. |
| features.particleOption | bit 22 | An extra option for drawing particles, in effect from the match’s start; what it changes on screen is not recorded. |
| features.unused | bit 23 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 8 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.5
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. A client takes them from the first VersionSync alone and keeps them for the match. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.altControls | bit 7 | Some mouse commands are taken by the time since the click before; what that changes on screen is not recorded. |
| features.shopUndo | bit 8 | The shop’s undo; clear, it is never enabled. |
| features.recommendedPages | bit 9 | Pages of recommended items in the shop for new players. |
| features.skillshotOutline | bit 10 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 11 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 12 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 13 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 14 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit15 | bit 15 | Unused; a server writes zero. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.networkMetrics | bit 17 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 18 | A report of hardware and frame rate at the end of the match. |
| features.bit19 | bit 19 | Unused; a server writes zero. |
| features.lagMetrics | bit 20 | Lag figures in the network report. |
| features.eventReports | bit 21 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 22 | It changes nothing a client shows. |
| features.particleOption | bit 23 | An extra option for drawing particles, in effect from the match’s start; what it changes on screen is not recorded. |
| features.unused | bit 24 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 10 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.6
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. A client takes them from the first VersionSync alone and keeps them for the match. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.altControls | bit 7 | Some mouse commands are taken by the time since the click before; what that changes on screen is not recorded. |
| features.shopUndo | bit 8 | The shop’s undo; clear, it is never enabled. |
| features.recommendedPages | bit 9 | Pages of recommended items in the shop for new players. |
| features.skillshotOutline | bit 10 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 11 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 12 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 13 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 14 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit15 | bit 15 | Unused; a server writes zero. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.networkMetrics | bit 17 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 18 | A report of hardware and frame rate at the end of the match. |
| features.bit19 | bit 19 | Unused; a server writes zero. |
| features.lagMetrics | bit 20 | Lag figures in the network report. |
| features.eventReports | bit 21 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 22 | It changes nothing a client shows. |
| features.particleOption | bit 23 | An extra option for drawing particles, in effect from the match’s start; what it changes on screen is not recorded. |
| features.unused | bit 24 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 11 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.7
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. A client takes them from the first VersionSync alone and keeps them for the match. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.altControls | bit 7 | Some mouse commands are taken by the time since the click before; what that changes on screen is not recorded. |
| features.shopUndo | bit 8 | The shop’s undo; clear, it is never enabled. |
| features.recommendedPages | bit 9 | Pages of recommended items in the shop for new players. |
| features.skillshotOutline | bit 10 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 11 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 12 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 13 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 14 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit15 | bit 15 | Unused; a server writes zero. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.networkMetrics | bit 17 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 18 | A report of hardware and frame rate at the end of the match. |
| features.bit19 | bit 19 | Unused; a server writes zero. |
| features.lagMetrics | bit 20 | Lag figures in the network report. |
| features.eventReports | bit 21 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 22 | It changes nothing a client shows. |
| features.unused | bit 23 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 11 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.8
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 4-byte bits | Which parts of the match are turned on, one bit each. A client takes them from the first VersionSync alone and keeps them for the match. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. It also has a client lower a hero’s bounty when the hero kills a minion. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 7 | The shop’s undo; clear, it is never enabled. |
| features.recommendedPages | bit 8 | Pages of recommended items in the shop for new players. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.bit16 | bit 16 | Unused; a server writes zero. |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.bit18 | bit 18 | Unused; a server writes zero. |
| features.lagMetrics | bit 19 | Lag figures in the network report. |
| features.eventReports | bit 20 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 21 | It changes nothing a client shows. |
| features.unused | bit 22 to 31 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 13 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.9
Command 83 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 7 | The shop’s undo; clear, it is never enabled. |
| features.recommendedPages | bit 8 | Pages of recommended items in the shop for new players. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 16 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 18 | Lag figures in the network report. |
| features.eventReports | bit 19 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 20 | It changes nothing a client shows. |
| features.bit21 | bit 21 | Unused; a server writes zero. |
| features.bit22 | bit 22 | Unused; a server writes zero. |
| features.traceroute | bit 23 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.unused | bit 24 to 55 | Unused; a server writes zero. |
| features.unusedHigh | bit 56 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 14 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.10–4.11
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.10 | 83 |
| 4.11 | 84 |
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 7 | The shop’s undo; clear, it is never enabled. |
| features.recommendedPages | bit 8 | Pages of recommended items in the shop for new players. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 16 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 18 | Lag figures in the network report. |
| features.eventReports | bit 19 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 20 | It changes nothing a client shows. |
| features.bit21 | bit 21 | Unused; a server writes zero. |
| features.jungleTimers | bit 22 | Timers for the jungle camps on the screen. |
| features.traceroute | bit 23 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.unused | bit 24 to 55 | Unused; a server writes zero. |
| features.unusedHigh | bit 56 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 14 × u8 | Which of the reports a client sends are wanted, one place each, in this order: ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (2)
In 4.12–4.13
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 7 | The shop’s undo; clear, it is never enabled. |
| features.bit8 | bit 8 | Unused; a server writes zero. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 16 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 18 | Lag figures in the network report. |
| features.eventReports | bit 19 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 20 | It changes nothing a client shows. |
| features.jungleTimers | bit 21 | Timers for the jungle camps on the screen. |
| features.traceroute | bit 22 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.unused | bit 23 to 54 | Unused; a server writes zero. |
| features.unusedHigh | bit 55 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 18 × u8 | Which of the reports a client sends are wanted, one place each, in this order: game start, game end, ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute, network instrumentation, peer network instrumentation. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.14
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.audioBackend | bit 5 | Which sound system the client uses; which setting picks which is not recorded. |
| features.animatedCursors | bit 6 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 7 | The shop’s undo; clear, it is never enabled. |
| features.bit8 | bit 8 | Unused; a server writes zero. |
| features.skillshotOutline | bit 9 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 10 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 11 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.waveOrder | bit 12 | Changes the order of the kinds of minion within a wave. |
| features.turretRange | bit 13 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit14 | bit 14 | Unused; a server writes zero. |
| features.skinParticles | bit 15 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 16 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 17 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 18 | Lag figures in the network report. |
| features.eventReports | bit 19 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 20 | It changes nothing a client shows. |
| features.jungleTimers | bit 21 | Timers for the jungle camps on the screen. |
| features.traceroute | bit 22 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.bit23 | bit 23 | Unused; a server writes zero. |
| features.bit24 | bit 24 | Unused; a server writes zero. |
| features.bit25 | bit 25 | Unused; a server writes zero. |
| features.clockSync | bit 26 | The game’s clock is nudged to keep with the system’s at normal speed; in a replay, play follows the game’s clock. |
| features.unused | bit 27 to 58 | Unused; a server writes zero. |
| features.unusedHigh | bit 59 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 18 × u8 | Which of the reports a client sends are wanted, one place each, in this order: game start, game end, ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute, network instrumentation, peer network instrumentation. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.15
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.animatedCursors | bit 5 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 6 | The shop’s undo; clear, it is never enabled. |
| features.bit7 | bit 7 | Unused; a server writes zero. |
| features.skillshotOutline | bit 8 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 9 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 10 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.bit11 | bit 11 | Unused; a server writes zero. |
| features.turretRange | bit 12 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit13 | bit 13 | Unused; a server writes zero. |
| features.skinParticles | bit 14 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 15 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 16 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 17 | Lag figures in the network report. |
| features.eventReports | bit 18 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 19 | It changes nothing a client shows. |
| features.jungleTimers | bit 20 | Timers for the jungle camps on the screen. |
| features.traceroute | bit 21 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.bit22 | bit 22 | Unused; a server writes zero. |
| features.bit23 | bit 23 | Unused; a server writes zero. |
| features.bit24 | bit 24 | Unused; a server writes zero. |
| features.clockSync | bit 25 | The game’s clock is nudged to keep with the system’s at normal speed; in a replay, play follows the game’s clock. |
| features.unused | bit 26 to 57 | Unused; a server writes zero. |
| features.unusedHigh | bit 58 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 18 × u8 | Which of the reports a client sends are wanted, one place each, in this order: game start, game end, ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute, network instrumentation, peer network instrumentation. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.16
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A client given it fails while loading. A server sends it clear. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.animatedCursors | bit 5 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 6 | The shop’s undo; clear, it is never enabled. |
| features.bit7 | bit 7 | Unused; a server writes zero. |
| features.skillshotOutline | bit 8 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 9 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 10 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.bit11 | bit 11 | Unused; a server writes zero. |
| features.turretRange | bit 12 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit13 | bit 13 | Unused; a server writes zero. |
| features.skinParticles | bit 14 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 15 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 16 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 17 | Lag figures in the network report. |
| features.eventReports | bit 18 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 19 | It changes nothing a client shows. |
| features.jungleTimers | bit 20 | Timers for the jungle camps on the screen. |
| features.traceroute | bit 21 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.bit22 | bit 22 | Unused; a server writes zero. |
| features.bit23 | bit 23 | Unused; a server writes zero. |
| features.bit24 | bit 24 | Unused; a server writes zero. |
| features.clockSync | bit 25 | The game’s clock is nudged to keep with the system’s at normal speed; in a replay, play follows the game’s clock. |
| features.bit26 | bit 26 | Unused; a server writes zero. |
| features.farmBounty | bit 27 | Kill gold also counts assists and minion gold, and a death scales runs down rather than clearing them. |
| features.turretsPersist | bit 28 | Turrets stay as objects after they are destroyed. |
| features.stateFlags | bit 29 | A unit’s can-move, can-attack, can-cast and like states are set on or off rather than counted up and down. |
| features.unused | bit 30 to 61 | Unused; a server writes zero. |
| features.unusedHigh | bit 62 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 18 × u8 | Which of the reports a client sends are wanted, one place each, in this order: game start, game end, ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute, network instrumentation, peer network instrumentation. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.17
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.reportsToFile | bit 1 | Set to have a client also write its reports to a file of its own, where it does not send them as event reports (features eventReports clear). |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. A client takes the scripted voice-over setting from its own settings. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second, test place to report to, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | Which display time to hold the note up for, applying only where tips are enabled and shown somewhere. tip, tipColour and tipDuration each select one of the notes, colourings and display times a client defines, tip counted modulo the number of notes. Where a value selects none, or the time is not above zero, a client shows no note. |
| tipFlags | 1-byte bits | How the note is shown. A client sends these four bytes back in ClientReady, as it has corrected them. |
| tipFlags.enabled | bit 0 | Set where there is a note. A client shows the note only where this and loadingScreen or inGame are set, and shows none where tip, tipColour or tipDuration names nothing. |
| tipFlags.replay | bit 1 | Of no effect; a client clears it, with enabled, while playing a replay. |
| tipFlags.loadingScreen | bit 2 | Set to show the note on the loading screen. |
| tipFlags.inGame | bit 3 | Set to show the note during play, in a box on the screen. |
| tipFlags.cycle | bit 4 | Set to have the box during play show every note in turn. |
| tipFlags.unused | bit 5 to 7 | Unused; a server writes zero. |
| features | 8-byte bits | Which parts of the match are turned on, one bit each. |
| features.balanceVoteCommands | bit 0 | The chat commands /equalize and /noequalize. A server sends it clear to a 4.17 client. |
| features.menuBack | bit 1 | With menuBack2, a second key that closes the pause and options menu. Alone, the minimap’s showing of neutral camps follows the player’s settings rather than the minimap’s own. |
| features.menuBack2 | bit 2 | Of use only with menuBack. |
| features.quickChat | bit 3 | Quick chat: its keys and its panel. A 4.17 client given it fails while loading. A server sends it clear to a 4.17 client. |
| features.missileWarning | bit 4 | A missile coming at the client’s side, or at no one, can show before it leaves the fog where it is near for its speed and heading that way. |
| features.animatedCursors | bit 5 | Cursors of several frames move on a frame every 0.15 seconds of play; clear, they show their first frame. |
| features.shopUndo | bit 6 | The shop’s undo; clear, it is never enabled. A server sends it set to a 4.17 client. |
| features.bit7 | bit 7 | Changes only which options the menu shows. |
| features.skillshotOutline | bit 8 | While aiming a line spell, the units it would hit are outlined. |
| features.championIndicator | bit 9 | The mark over the player’s champion, where their own setting also asks for it. |
| features.altBounty | bit 10 | Another reckoning of kill and assist gold: kill gold and the assist pool grow with time, a run of assists adds gold, and assists and minion gold shorten a run of deaths. |
| features.bit11 | bit 11 | Changes only which options the menu shows. |
| features.turretRange | bit 12 | Enemy turrets’ ranges, where the player’s setting also asks for them; clear, they are never drawn. |
| features.bit13 | bit 13 | Changes only which options the menu shows. |
| features.skinParticles | bit 14 | Skin-specific particle effects for units in a skin other than the first. |
| features.networkMetrics | bit 15 | Reports of network figures from time to time, where reporting is on (agreement’s reportingReady). |
| features.hardwareMetrics | bit 16 | A report of hardware and frame rate at the end of the match. |
| features.lagMetrics | bit 17 | Lag figures in the network report. |
| features.eventReports | bit 18 | Set, a client sends its reports as event reports; clear, it sends them otherwise, and agreement’s reportsToFile applies. |
| features.logServerAddress | bit 19 | It changes nothing a client shows. |
| features.jungleTimers | bit 20 | Timers for the jungle camps on the screen. |
| features.traceroute | bit 21 | A trace of the route to the server, begun after this message and reported later, where reporting is on. |
| features.bit22 | bit 22 | Changes only which options the menu shows. |
| features.bit23 | bit 23 | Changes only which options the menu shows. |
| features.bit24 | bit 24 | Changes only which options the menu shows. |
| features.clockSync | bit 25 | The game’s clock is nudged to keep with the system’s at normal speed; in a replay, play follows the game’s clock. |
| features.bit26 | bit 26 | Changes only which options the menu shows. |
| features.farmBounty | bit 27 | Kill gold also counts assists and minion gold, and a death scales runs down rather than clearing them. |
| features.turretsPersist | bit 28 | Turrets stay as objects after they are destroyed. |
| features.stateFlags | bit 29 | A unit’s can-move, can-attack, can-cast and like states are set on or off rather than counted up and down. |
| features.unused | bit 30 to 31 | Unused; a server writes zero. |
| features.unusedHigh | bit 32 to 63 | Unused; a server writes zero. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 19 × u8 | Which of the reports a client sends are wanted, one place each, in this order: game start, game end, ping use, chat filter, damage figures, active item figures, network figures, hardware figures, server debugging, client debugging, item shop, injected modules, suspicious behaviour, skin swaps, failure to connect, traceroute, network instrumentation, peer network instrumentation, and block builder logging. Any nonzero byte marks a report wanted. Zero has no effect. |
Vectors (1)
In 4.18–4.19
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.logMetrics | bit 1 | Set to have the client also write its figures about the match to a file of its own. |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second such place, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | How long the note shows: 1 is 10 seconds; no other value is defined. Any other value makes the note invalid; a client then clears the tips bit and returns the value negated in ClientReady, 0 as -128. |
| tipFlags | i8 | Bits from the lowest: 0 shows notes at all; 1 is only returned in ClientReady; 2 shows the note on the loading screen; 3 shows it in play; 4 cycles through every note. A note shows only where bit 0 and bit 2 or 3 are set. Bits 5 to 7 are unused. A client watching a recorded match clears bits 0 and 1. |
| features | u64 | Which parts of the match are turned on, one bit each from the lowest: 0 balancing votes, 1 the new options menu, 3 quick chat, 4 warning of missiles from unseen ground, 5 animated cursors, 6 shop undo, 8 marking the targets of line missiles, 9 marking a champion under another’s control, 10 the alternative bounty rules, 12 turret range indicators, 14 particles named per look, 15 network figures, 16 hardware figures, 17 lag figures, 18 a newer reporting library, 19 logging the server’s address, 20 jungle timers, 21 route figures, 24 keeping a recorded match’s clock in step, 26 the active-item display, 27 the minion farming bounty, 28 keeping destroyed lane turrets in the world and 29 unshared character states. Bits 2, 7, 11, 13, 22, 23, 25 and 30 to 63 change nothing. A server sets at least one bit. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 19 × u8 | Which of the reports a client sends are wanted, one place each. |
Vectors (1)
In 4.20
Command 84 on events, sent by the server, reliable.
It also says which map to load, who is at the match, and everything else settled before play.
| Field | Type | What it is |
|---|---|---|
| agreement | 1-byte bits | |
| agreement.buildMatches | bit 0 | Set where the client’s build is one the server serves. |
| agreement.logMetrics | bit 1 | Set to have the client also write its figures about the match to a file of its own. |
| agreement.matched | bit 2 | Set where the match was put together rather than made by hand. |
| agreement.reportingReady | bit 3 | Set where the reporting settings below are to be used. |
| agreement.unused | bit 4 to 7 | Unused; a server writes zero. |
| map | i32 | Which map to load. Space keys the path origins by the same maps. |
| seats | 12 × Seat | Every place at the match, held or empty. |
| build | text, 256 bytes | Which build the server serves. Written out in full and padded with zero bytes to the width above. |
| mode | text, 128 bytes | Which way the match is played, written and padded as above. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| variants | 8 × string | The variations the match is played under, one place each. A place stands empty where none applies. |
| variantCount | u8 | How many of the places above are filled. |
| teamName | text, 97 bytes | What one side is called where it plays as a standing team, written and padded as above. |
| teamTag | text, 25 bytes | The short form of that name, written and padded as above. |
| otherTeamName | text, 97 bytes | What the other side is called, under the same terms. |
| otherTeamTag | text, 25 bytes | The short form of that one. |
| metricsHost | text, 256 bytes | Where a client reports figures about the match, written and padded as above. |
| metricsPath | text, 256 bytes | What it asks for there, written and padded as above. |
| metricsPort | u16 | Which port it reaches that at. |
| reportingHost | text, 256 bytes | Where a client reports how the match went, written and padded as above. |
| reportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| reportingPort | u16 | Which port it reaches that at. |
| altReportingHost | text, 256 bytes | A second such place, written and padded as above. |
| altReportingPath | text, 256 bytes | What it asks for there, written and padded as above. |
| altReportingPort | u16 | Which port it reaches that at. |
| tip | i8 | Which note the client shows before play. |
| tipColour | i8 | Which colouring it shows it in. |
| tipDuration | i8 | How long the note shows: 1 is 10 seconds; no other value is defined. Any other value makes the note invalid; a client then clears the tips bit and returns the value negated in ClientReady, 0 as -128. |
| tipFlags | i8 | Bits from the lowest: 0 shows notes at all; 1 is only returned in ClientReady; 2 shows the note on the loading screen; 3 shows it in play; 4 cycles through every note. A note shows only where bit 0 and bit 2 or 3 are set. Bits 5 to 7 are unused. A client watching a recorded match clears bits 0 and 1. |
| features | u64 | Which parts of the match are turned on, one bit each from the lowest: 0 balancing votes, 1 the new options menu, 2 the old options menu, 3 quick chat, 4 warning of missiles from unseen ground, 5 animated cursors, 6 shop undo, 8 marking the targets of line missiles, 9 marking a champion under another’s control, 10 the alternative bounty rules, 12 turret range indicators, 14 particles named per look, 15 network figures, 16 hardware figures, 17 lag figures, 18 a newer reporting library, 19 logging the server’s address, 20 jungle timers, 21 route figures, 24 keeping a recorded match’s clock in step, 26 the active-item display, 27 the minion farming bounty, 28 teleporting to fallen turrets, 29 unshared character states, 30 sight between any units, 31 the old outline under the pointer, 32 the new inventory display. Bits 7, 11, 13, 22, 23, 25 and 33 to 63 change nothing. A server sets at least one bit. |
| disabledItems | 64 × u32 | Items nobody can buy in this match, one place each. A place holds zero where nothing is barred. |
| reportingMessages | 18 × u8 | Which of the reports a client sends are wanted, one place each. |
Vectors (1)
JoinSide
What a client sends to ask for a seat on one of the two sides while the match is being put together.
In every range of this book
Command 100 on roster, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the client asking. |
| side | u32 | The side it asks for. |
Vectors (2)
Roster
What a server sends to lay out both sides and who is on them, while the match is being put together.
In every range of this book
Command 103 on roster, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| sideRoom | u32 | How many seats the first side has room for. |
| otherSideRoom | u32 | How many the other has room for. |
| side | 24 × i64 | The players on one side, twenty four places. The count below says how many of the leading places carry a player; the rest hold zero. A place cannot be read on its own, because zero is an identifier a match gives out as well as what an unused place holds. It has a player identifier’s width. |
| otherSide | 24 × i64 | The players on the other, under the same reading and its own count. |
| sideTaken | u32 | How many of the leading places on the first side carry a player. |
| otherSideTaken | u32 | How many on the other. |
Vectors (2)
SeatName
What a server sends to say what a seat is called, while the match is being put together.
In every range of this book
Command 102 on roster, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| player | i64 | The player this is about. It has a player identifier’s width. |
| skin | i32 | Which look the seat’s champion wears. |
| nameLength | u32 | How many bytes the name below occupies, counting the byte that ends it. |
| name | text, sized by nameLength minus 1 | What the seat is called. It is not padded. |
| terminator | bytes, 1 | A zero byte closing the text, which the length above counts. |
Vectors (3)
SeatChampion
What a server sends to say which champion a seat is playing, while the match is being put together.
In every range of this book
Command 101 on roster, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| player | i64 | The player this is about. It has a player identifier’s width. |
| skin | i32 | Which look the champion wears. |
| assetLength | u32 | How many bytes the name below occupies, counting the byte that ends it. |
| asset | text, sized by assetLength minus 1 | The name the client loads the champion’s art and sound under. It is not padded. |
| terminator | bytes, 1 | A zero byte closing the text, which the length above counts. |
Vectors (3)
LoadingProgress
What a client sends while a match loads, saying how far it has got. The header names no object: it carries zero.
In 4.1–4.17
Command 22 on requests, sent by the client, unreliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the client reporting. |
| playerId | i64 | Who is reporting. A client sends every bit set, which names nobody. |
| percent | f32 | How far loading has got, from zero to one hundred. |
| eta | f32 | How long the client expects still to take, in seconds. |
| status | 4-byte bits | |
| status.count | bit 0 to 15 | It rises with each report, not always by one. |
| status.ping | bit 16 to 30 | Round trip time the client measures, in milliseconds. |
| status.loaded | bit 31 | Set in every report whose progress stands at one hundred, and in no other. |
Vectors (1)
In 4.18–4.20
Command 22 on requests, sent by the client, unreliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id of the client reporting. |
| playerId | i64 | Who is reporting. A client sends every bit set, which names nobody. |
| percent | f32 | How far loading has got, from zero to one hundred. |
| eta | f32 | How long the client expects still to take, in seconds. |
| status | 4-byte bits | |
| status.count | bit 0 to 15 | How many reports have been made. |
| status.ping | bit 16 to 31 | Round trip time the client measures, in milliseconds. |
| state | 1-byte bits | |
| state.loaded | bit 0 | A client sets it only in reports whose progress stands at one hundred. |
| state.unused | bit 1 to 7 | Unused; a client may leave any value here, and a server ignores it. |
Vectors (2)
SeatLoadProgress
What a server sends to tell everyone how far one seat has got through loading, and how it is holding up. A later report supersedes an earlier one, so losing one costs nothing. The header names no object: a server writes zero.
In 4.1–4.17
Carried on transient, sent by the server, unreliable, under these commands:
| Builds | Command |
|---|---|
| 4.1–4.10 | 148 |
| 4.11–4.17 | 149 |
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id this is about. |
| player | i64 | Who occupies it. |
| progress | f32 | How far through loading it is, from zero to one hundred. |
| secondsLeft | f32 | How much longer it is expected to take, in seconds. |
| status | 4-byte bits | |
| status.count | bit 0 to 15 | It rises with each report, not always by one. |
| status.ping | bit 16 to 30 | Round trip time the client measures, in milliseconds. |
| status.loaded | bit 31 | Set in every report whose progress stands at one hundred, and in no other. |
Vectors (2)
In 4.18–4.20
Command 149 on transient, sent by the server, unreliable.
| Field | Type | What it is |
|---|---|---|
| clientId | u32 | The client id this is about. |
| player | i64 | Who occupies it. |
| progress | f32 | How far through loading it is, from zero to one hundred. |
| secondsLeft | f32 | How much longer it is expected to take, in seconds. |
| count | u16 | How many times this has been reported for the seat. |
| ping | u16 | How long a message takes to reach the seat and come back, in milliseconds. |
| state | 1-byte bits | |
| state.ready | bit 0 | Set where the seat has finished loading. |
| state.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (2)
SpawnStart
What a server sends to open the run of units a client is about to be told about. The header names no object: a server writes zero.
In 4.1–4.17
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.1–4.10 | 97 |
| 4.11–4.17 | 98 |
| Field | Type | What it is |
|---|---|---|
| botsOnOneSide | u8 | How many bots play on side 100. A client adds it to that side’s head count, which picks the set of spawn positions and facings it places champions by (CreateChampion’s spawnIndex). |
| botsOnTheOther | u8 | The other. It shares the reading above. |
Vectors (2)
In 4.18–4.20
Command 98 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| firstCount | u8 | How many seats on side 100 nobody holds. Added to that side’s players, it chooses the layout of the side’s starting places. |
| secondCount | u8 | The same for side 200. |
Vectors (1)
SpawnEnd
What a server sends to close the run of units it opened with. The header names no object: a server writes zero.
In every range of this book
Command 17 on events, sent by the server, reliable.
No body.
Vectors (2)
StartGame
What a server sends to begin play. The header names no object: it carries zero.
In 4.1–4.3
Command 91 on events, sent by the server, reliable.
A client past spawning ignores it.
| Field | Type | What it is |
|---|---|---|
| rules | 1-byte bits | |
| rules.pausing | bit 0 | Set where holding the match is allowed. |
| rules.notice | bit 1 | Set to have a client show its own notice in chat and note the time the match stands at. |
| rules.unused | bit 2 to 7 | Unused; a server writes zero. |
Vectors (1)
In 4.4–4.17
Carried on events, sent by the server, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.4–4.10 | 91 |
| 4.11–4.17 | 92 |
A client past spawning ignores it.
| Field | Type | What it is |
|---|---|---|
| rules | 1-byte bits | |
| rules.pausing | bit 0 | Set where holding the match is allowed. |
| rules.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (2)
In 4.18–4.20
Command 92 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| rules | 1-byte bits | |
| rules.pausing | bit 0 | Set where holding the match is allowed. |
| rules.unused | bit 1 to 7 | Unused; a server writes zero. |
Vectors (1)
ClientReady
What a client sends once it has loaded and is ready to play. The header names no object: it carries zero.
In 4.1–4.4
Command 81 on requests, sent by the client, reliable.
The tip fields carry VersionSync’s tip bytes, each one outside its valid range negated (0 as -128), and tips cleared where any is. Playing a replay, a client sends all four as zero.
| Field | Type | What it is |
|---|---|---|
| maskedStatus | u32 | It varies from client to client; a server ignores it. |
| mask | u32 | A random value the client picks to mask the one above. |
| tipChosen | u8 | Which tip the client is set to show. |
| tipColour | u8 | How it is coloured. |
| tipDuration | u8 | How long it stays, as an entry among the display times in the client’s own settings rather than a length of time. |
| settings | 1-byte bits | |
| settings.tips | bit 0 | Set while tips are wanted at all. |
| settings.reporting | bit 1 | Set while the client reports on itself. |
| settings.loadingTips | bit 2 | Set while tips are wanted while loading. |
| settings.playingTips | bit 3 | Set while tips are wanted during play. |
| settings.debug | bit 4 | Set while the client runs in a debugging state. |
| settings.unused | bit 5 to 7 | A client returns them as the server sent them. |
Vectors (1)
In 4.5–4.12
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.5–4.10 | 81 |
| 4.11–4.12 | 82 |
The tip fields carry VersionSync’s tip bytes, each one outside its valid range negated (0 as -128), and tips cleared where any is. Playing a replay, a client sends all four as zero.
| Field | Type | What it is |
|---|---|---|
| tipChosen | u8 | Which tip the client is set to show. |
| tipColour | u8 | How it is coloured. |
| tipDuration | u8 | How long it stays, as an entry among the display times in the client’s own settings rather than a length of time. |
| settings | 1-byte bits | |
| settings.tips | bit 0 | Set while tips are wanted at all. |
| settings.reporting | bit 1 | Set while the client reports on itself. |
| settings.loadingTips | bit 2 | Set while tips are wanted while loading. |
| settings.playingTips | bit 3 | Set while tips are wanted during play. |
| settings.debug | bit 4 | Set while the client runs in a debugging state. |
| settings.unused | bit 5 to 7 | A client returns them as the server sent them. |
Vectors (2)
In 4.13–4.17
Command 82 on requests, sent by the client, reliable.
The tip fields carry VersionSync’s tip bytes, each one outside its valid range negated (0 as -128), and tips cleared where any is. Playing a replay, a client sends all four as zero. The three module fields are always zero.
| Field | Type | What it is |
|---|---|---|
| moduleOne | u32 | One of three values a client reports about software it has detected alongside itself. A client sends zero. |
| tipChosen | u8 | Which tip the client is set to show. |
| tipColour | u8 | How it is coloured. |
| tipDuration | u8 | How long it stays, as an entry among the display times in the client’s own settings rather than a length of time. |
| settings | 1-byte bits | |
| settings.tips | bit 0 | Set while tips are wanted at all. |
| settings.reporting | bit 1 | Set while the client reports on itself. |
| settings.loadingTips | bit 2 | Set while tips are wanted while loading. |
| settings.playingTips | bit 3 | Set while tips are wanted during play. |
| settings.debug | bit 4 | Set while the client runs in a debugging state. |
| settings.unused | bit 5 to 7 | A client returns them as the server sent them. |
| moduleTwo | u32 | The second of the three. A client sends zero. |
| moduleThree | u32 | The third. A client sends zero. |
Vectors (1)
In 4.18–4.20
Command 82 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| moduleOne | u32 | One of three values a client reports about software it has detected alongside itself. A client sends zero. |
| tipChosen | u8 | Which tip the client is set to show. |
| tipColour | u8 | How it is coloured. |
| tipDuration | u8 | How long it stays. |
| settings | 1-byte bits | |
| settings.tips | bit 0 | Set while tips are wanted at all. |
| settings.reporting | bit 1 | Set while the client reports on itself. |
| settings.loadingTips | bit 2 | Set while tips are wanted while loading. |
| settings.playingTips | bit 3 | Set while tips are wanted during play. |
| settings.debug | bit 4 | Set while the client runs in a debugging state. |
| settings.unused | bit 5 to 7 | Unused; a client may leave any value here, and a server ignores it. |
| moduleTwo | u32 | The second of the three. A client sends zero. |
| moduleThree | u32 | The third. A client sends zero. |
Vectors (2)
CharacterSelected
What a client sends once a character is settled on. It carries nothing of its own. 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 |
|---|---|
| 4.1–4.10 | 189 |
| 4.11–4.20 | 190 |
No body.
Vectors (3)
MatchIdentity
What a server sends to tell a client which match this is and what its player is called. The header carries zero.
In 4.1–4.10
Command 145 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| game | i64 | The match’s identifier. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
| name | text, 128 bytes | The player’s name, padded with zero bytes. |
Vectors (1)
In 4.11
Command 146 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| game | i64 | The match’s identifier. |
| label | text, 32 bytes | A text a client writes to its log and keeps, ended by a zero byte within the field. |
| platform | text, 32 bytes | Which platform the match belongs to, written and padded as above. |
Vectors (1)
In 4.12–4.20
Command 146 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| game | i64 | The match’s identifier. |
| name | text, 128 bytes | The player’s name, padded with zero bytes. |
Vectors (2)
MatchStarted
What a server sends to set when the match began. 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 |
|---|---|
| 4.1–4.10 | 193 |
| 4.11–4.20 | 194 |
| Field | Type | What it is |
|---|---|---|
| startedAt | f32 | When the match began, as a moment on the match clock, in seconds. |
Vectors (4)
GameOptions
What a client sends when a setting that a server needs to know about changes. The header names the sender’s champion.
In 4.1–4.17
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.1–4.10 | 70 |
| 4.11–4.17 | 71 |
| Field | Type | What it is |
|---|---|---|
| options | 1-byte bits | |
| options.autoAttack | bit 0 | Set while the client attacks without being told to. |
| options.unused | bit 1 to 7 | Always clear: a client writes the whole byte as 0 or 1. |
Vectors (2)
In 4.18–4.20
Command 71 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| options | 1-byte bits | |
| options.autoAttack | bit 0 | Set while the client attacks without being told to. |
| options.unused | bit 1 to 7 | Unused; a client writes zero. |
Vectors (1)
ModuleData
What a server sends to carry data to a module of the client’s own. A client takes it even before it is ready to play. With kind 4, or any kind other than 1 and 2, a client acts on what the data carries as on a message that had arrived. What kinds 1 and 2 do is not shown. A server need send none.
In 4.1–4.4
Command 220 on events, sent by the server, reliable.
| Field | Type | What it is |
|---|---|---|
| kind | u8 | What the data is for. |
| length | u16 | How many bytes of data follow; at most 1024. |
| data | bytes, sized by length | Data for a module of the client’s own, which the message only carries. |
Vectors (1)
ModulePacket
What a client sends to carry data from a module of its own, often a message of its own that the module has taken over. A server need do nothing with it. The header carries zero.
In 4.1–4.4
Command 222 on requests, sent by the client, reliable.
| Field | Type | What it is |
|---|---|---|
| kind | u8 | What the data is for. |
| length | u16 | How many bytes of data follow; at most 1024. |
| data | bytes, sized by length | Data for a module of the client’s own, which the message only carries. |
Vectors (1)
StatsRequest
What a client sends about itself. The header names the sender’s champion.
In 4.5–4.7
Command 85 on requests, sent by the client, reliable.
It says what the client has detected running alongside it.
| Field | Type | What it is |
|---|---|---|
| moduleOne | u32 | One of three values a client reports about software it has detected alongside itself. A client sends zero. |
Vectors (2)
In 4.8–4.11
Carried on requests, sent by the client, reliable, under these commands:
| Builds | Command |
|---|---|
| 4.8–4.10 | 85 |
| 4.11 | 86 |
It says what the client has detected running alongside it, and which appearance it believes it is wearing.
| Field | Type | What it is |
|---|---|---|
| moduleOne | u32 | One of three values a client reports about software it has detected alongside itself. A client sends zero. |
| appearance | u32 | The appearance the client believes it is wearing, by the number it knows it as. |
| appearanceCheck | u32 | A value standing for that appearance’s content. |
Vectors (4)
In 4.12–4.20
Command 86 on requests, sent by the client, reliable.
It says what the client has detected running alongside it, and which appearance it believes it is wearing.
| Field | Type | What it is |
|---|---|---|
| moduleOne | u32 | One of three values a client reports about software it has detected alongside itself. A client sends zero. |
| moduleTwo | u32 | The second of the three. A client sends zero. |
| moduleThree | u32 | The third. A client sends zero. |
| appearance | u32 | The appearance the client believes it is wearing, by the number it knows it as. |
| appearanceCheck | u32 | A value standing for that appearance’s content. |