Repository navigation
Messages MatchingGame
Every message in the MatchingGame area: its opcode, direction, how far it is verified, and its fields.
Note
Generated from the message declarations at dev 0f80589 by Tools/NexusTomorrow.ProtocolReference. Don't edit it by hand: change the declaration's documentation and regenerate.
Sets a group member's queue penalties, one per match type; the client raises MatchingPenaltyUpdated.
| Opcode | Direction | Verified to |
|---|---|---|
0x0436 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
GroupId |
64 | unsigned | The group, by group id. |
Unknown1 |
32 | unsigned | The client gives this value no meaning. |
MemberId |
the fields below | The member, by realm-scoped character id. | |
MemberId.RealmId |
14 | unsigned | The realm the id belongs to. |
MemberId.Id |
64 | unsigned | The id within its realm. What it identifies, a character or a residence, depends on the member that holds it. |
Penalties[0] |
32 | unsigned | The member's queue penalty for each match type, indexed by MatchType: a duration in milliseconds, 0 for none. |
Penalties[1] |
32 | unsigned | |
Penalties[2] |
32 | unsigned | |
Penalties[3] |
32 | unsigned | |
Penalties[4] |
32 | unsigned | |
Penalties[5] |
32 | unsigned | |
Penalties[6] |
32 | unsigned | |
Penalties[7] |
32 | unsigned | |
Penalties[8] |
32 | unsigned | |
Penalties[9] |
32 | unsigned | |
Penalties[10] |
32 | unsigned | |
Penalties[11] |
32 | unsigned | |
Penalties[12] |
32 | unsigned | |
Penalties[13] |
32 | unsigned | |
Penalties[14] |
32 | unsigned | |
Penalties[15] |
32 | unsigned |
Sets whether the player may queue for the prime-level dungeon and adventure without a full group.
| Opcode | Direction | Verified to |
|---|---|---|
0x05B0 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
PartialGroupAllowed |
1 | unsigned | Whether the player may queue for PrimeLevelDungeon and PrimeLevelAdventure without a full group. While it is false the client refuses a solo queue for them with NotInGroup, and a group short of the map's size with RequiresFullGroup. |
Sets the player's matching privileges, which decide the maps the player may queue for.
| Opcode | Direction | Verified to |
|---|---|---|
0x05B8 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Privileges |
32 | unsigned | The player's matching privileges, a mask. The client offers and queues a map only when the map requires none of these bits or the player holds one of those it requires, and otherwise refuses with PrivilegeRestricted; a group queue tests each member's privileges the same way, refusing with GroupMemberPrivilegeRestricted. |
Cancels the pending match; the client raises MatchingCancelPendingGame.
| Opcode | Direction | Verified to |
|---|---|---|
0x05BC |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Marks the match finished; the client raises MatchFinished.
| Opcode | Direction | Verified to |
|---|---|---|
0x05BE |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Tells the client the player is in the match's instance; the client raises MatchEntered.
| Opcode | Direction | Verified to |
|---|---|---|
0x05BF |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
GameMapId |
32 | unsigned | The match's map, as a MatchingGameMap id, which the client keeps as the current match's. |
Tells the client the player is out of the match's instance; the client raises MatchExited.
| Opcode | Direction | Verified to |
|---|---|---|
0x05C0 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Offers the player a place in a match already under way, with the allies' answers so far.
| Opcode | Direction | Verified to |
|---|---|---|
0x05C4 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The match's match type. |
PendingAllies |
32 | unsigned | How many allies have yet to accept. |
AcceptedAllies |
32 | unsigned | How many allies have accepted. |
The client stores it as the pending match and raises MatchingGameReady for a match in progress, or MatchingGamePendingUpdate when the player is in the match's instance.
Tells the client the player joined a match; the client clears the role check and the pending match and raises MatchJoined.
| Opcode | Direction | Verified to |
|---|---|---|
0x05C6 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
GameMapId |
14 | unsigned | The match's map, as a MatchingGameMap id, which the client keeps as the current match's. |
Tells the player a match is ready for them to accept.
| Opcode | Direction | Verified to |
|---|---|---|
0x05CA |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The match's match type. |
PendingAllies |
32 | unsigned | How many allies have yet to accept. |
PendingEnemies |
32 | unsigned | How many enemies have yet to accept. |
The client stores it as the pending match, starts the time the player has to answer and raises MatchingGameReady for a new match.
Counts one more player of the pending match as accepted; the client raises MatchingGamePendingUpdate.
| Opcode | Direction | Verified to |
|---|---|---|
0x05CC |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Ally |
1 | unsigned | Whether the player who accepted is an ally (true) or an enemy (false); the client moves one of that side from yet to answer to accepted. |
Sets the player's queue penalties, one per match type; the client raises MatchingPenaltyUpdated.
| Opcode | Direction | Verified to |
|---|---|---|
0x05D9 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Penalties[0] |
32 | unsigned | The player's queue penalty for each match type, indexed by MatchType: a duration in milliseconds, 0 for none. |
Penalties[1] |
32 | unsigned | |
Penalties[2] |
32 | unsigned | |
Penalties[3] |
32 | unsigned | |
Penalties[4] |
32 | unsigned | |
Penalties[5] |
32 | unsigned | |
Penalties[6] |
32 | unsigned | |
Penalties[7] |
32 | unsigned | |
Penalties[8] |
32 | unsigned | |
Penalties[9] |
32 | unsigned | |
Penalties[10] |
32 | unsigned | |
Penalties[11] |
32 | unsigned | |
Penalties[12] |
32 | unsigned | |
Penalties[13] |
32 | unsigned | |
Penalties[14] |
32 | unsigned | |
Penalties[15] |
32 | unsigned |
Tells the client the player left the match; the client resets its match state and raises MatchLeft.
| Opcode | Direction | Verified to |
|---|---|---|
0x05DC |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Unknown0 |
5 | unsigned | The client gives this value no meaning. |
Adds a matching queue entry, filed under MatchType.
| Opcode | Direction | Verified to |
|---|---|---|
0x05DF |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Request |
the fields below | The queue joined: its maps, game type and flags. The client takes the entry's match type from Entry, not from this record. |
|
Request.MatchType |
5 | unsigned | The queue's match type. |
Request.GameMapIds count |
32 | unsigned | |
Request.GameMapIds |
array, counted by Request.GameMapIds count
|
The maps queued for, as MatchingGameMap ids. | |
Request.GameMapIds[] |
32 | unsigned | |
Request.GameTypeId |
14 | unsigned | The game type, as a MatchingGameType id. |
Request.Flags |
32 | unsigned | The queue flags. The client sends 0x40 by default, or AsMercenary (0x20) in its place when queueing as a mercenary, adds FindOthers when it looks for others and Veteran for a veteran queue, and keeps each only where the match type allows it (only Warplot allows 0x20 and 0x40). On an entry it receives in MatchingQueueJoined it adds GroupIsQueued when AsGroup is set, takes bit 0 as the mark of a random queue, and compares Veteran with the entry's own veteran flag. |
Entry |
the fields below | The entry's match type, how it was joined, and its times. | |
Entry.MatchType |
5 | unsigned | The match type the entry is filed under. |
Entry.AsGroup |
1 | unsigned | Whether the entry was joined as a group; the client then sets GroupIsQueued in the entry's flags. |
Entry.TimeInQueueMs |
32 | unsigned | How long the entry has already waited, in milliseconds; the client counts its time in queue on from there. |
Entry.AverageWaitTimeMs |
32 | unsigned | The queue's average wait, in milliseconds. |
Roles |
32 | unsigned | The roles queued for, as a mask of Role. |
For an entry already in its match the client stores the fields and does nothing else. Otherwise it also prints the joined text, raises MatchingJoinQueue, ends any role check, and stops the player's cast of one spell a GameFormula row names.
Reports the result of a matching queue operation, with the queue state.
| Opcode | Direction | Verified to |
|---|---|---|
0x05E1 |
server to client | purpose |
| Field | Bits | Encoding |
|---|---|---|
Result |
6 | unsigned |
State |
4 | unsigned |
The client prints the result's text. On RemovedByServer it raises MatchLeft, on NotConfirmingRole MatchingRoleCheckCanceled, and on NotWaitingToAccept MatchingCancelPendingGame.
Sets which matching queues the player is in, the match type of the match they are in, and that of the role check under way.
| Opcode | Direction | Verified to |
|---|---|---|
0x05E3 |
server to client | purpose |
| Field | Bits | Encoding |
|---|---|---|
State |
4 | unsigned |
ActiveMatchType |
5 | unsigned |
RoleCheckMatchType |
5 | unsigned |
QueuedTypes[0] |
1 | unsigned |
QueuedTypes[1] |
1 | unsigned |
QueuedTypes[2] |
1 | unsigned |
QueuedTypes[3] |
1 | unsigned |
QueuedTypes[4] |
1 | unsigned |
QueuedTypes[5] |
1 | unsigned |
QueuedTypes[6] |
1 | unsigned |
QueuedTypes[7] |
1 | unsigned |
QueuedTypes[8] |
1 | unsigned |
QueuedTypes[9] |
1 | unsigned |
QueuedTypes[10] |
1 | unsigned |
QueuedTypes[11] |
1 | unsigned |
QueuedTypes[12] |
1 | unsigned |
QueuedTypes[13] |
1 | unsigned |
QueuedTypes[14] |
1 | unsigned |
QueuedTypes[15] |
1 | unsigned |
The client applies State and QueuedTypes first, then stores ActiveMatchType and RoleCheckMatchType. It raises MatchLeft first only when the stored active match type is not None and differs from the new one.
Warns the player of their inactivity in a PvP match; the client raises MatchingPvpInactivityAlert.
| Opcode | Direction | Verified to |
|---|---|---|
0x05E6 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
RemainingTimeMs |
32 | unsigned | The time remaining, in milliseconds. |
Reports a kill in PvP; the client raises PvpKillNotification with the victim's and the killer's names, the reason, the killer's class and the victim's team.
| Opcode | Direction | Verified to |
|---|---|---|
0x05E7 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
KillerType |
2 | unsigned; selects Killer
|
The kind of Killer, which picks its record: 0 a player, 1 a creature, 2 one the client has no name for. |
Killer |
union, selected by KillerType
|
The killer. | |
Killer(0) |
when KillerType is 0 |
A killer or a victim who is a player. | |
Killer(0).PlayerId |
the fields below | The player, by realm-scoped character id; the client asks the server for the name when it does not have it. | |
Killer(0).PlayerId.RealmId |
14 | unsigned | The realm the id belongs to. |
Killer(0).PlayerId.Id |
64 | unsigned | The id within its realm. What it identifies, a character or a residence, depends on the member that holds it. |
Killer(0).Class |
5 | unsigned | The player's class; the kill board uses it for the killer only. |
Killer(1) |
when KillerType is 1 |
A killer or a victim that is a creature. | |
Killer(1).UnitId |
32 | unsigned | The creature, by unit id; the client takes the name from the unit when it has it. |
Killer(1).CreatureId |
18 | unsigned | The creature, as a Creature2 id; the client takes the name from that record when it does not know the unit. |
Killer(2) |
when KillerType is 2 |
A killer or a victim the client has no name for. | |
Killer(2).Unknown0 |
1 | unsigned | The client gives this value no meaning. |
VictimType |
2 | unsigned; selects Victim
|
The kind of Victim, which picks its record: 0 a player, 1 a creature, 2 one the client has no name for. |
Victim |
union, selected by VictimType
|
The victim, in the same records as Killer. |
|
Victim(0) |
when VictimType is 0 |
A killer or a victim who is a player. | |
Victim(0).PlayerId |
the fields below | The player, by realm-scoped character id; the client asks the server for the name when it does not have it. | |
Victim(0).PlayerId.RealmId |
14 | unsigned | The realm the id belongs to. |
Victim(0).PlayerId.Id |
64 | unsigned | The id within its realm. What it identifies, a character or a residence, depends on the member that holds it. |
Victim(0).Class |
5 | unsigned | The player's class; the kill board uses it for the killer only. |
Victim(1) |
when VictimType is 1 |
A killer or a victim that is a creature. | |
Victim(1).UnitId |
32 | unsigned | The creature, by unit id; the client takes the name from the unit when it has it. |
Victim(1).CreatureId |
18 | unsigned | The creature, as a Creature2 id; the client takes the name from that record when it does not know the unit. |
Victim(2) |
when VictimType is 2 |
A killer or a victim the client has no name for. | |
Victim(2).Unknown0 |
1 | unsigned | The client gives this value no meaning. |
VictimTeam |
2 | unsigned | The victim's team. |
DeathReason |
3 | unsigned | How the victim died. |
Starts a role check; the client marks a role check active and raises MatchingRoleCheckStarted.
| Opcode | Direction | Verified to |
|---|---|---|
0x05F1 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
RolesRequired |
1 | unsigned | Whether the player must choose roles to answer the check. |
Tells the client the match is looking for replacements; the client marks it so and raises MatchLookingForReplacements.
| Opcode | Direction | Verified to |
|---|---|---|
0x05F2 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Tells the client the match stopped looking for replacements; the client raises MatchStoppedLookingForReplacements.
| Opcode | Direction | Verified to |
|---|---|---|
0x0604 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Lists the players queued for a map; the client prints the list in chat.
| Opcode | Direction | Verified to |
|---|---|---|
0x060A |
server to client | purpose |
| Field | Bits | Encoding |
|---|---|---|
GameMapId |
32 | unsigned |
Players count |
32 | unsigned |
Players |
array, counted by Players count
|
|
Players[].PlayerId |
the fields below | |
Players[].PlayerId.RealmId |
14 | unsigned |
Players[].PlayerId.Id |
64 | unsigned |
Players[].Name |
varies | wide string |
Players[].Faction |
14 | unsigned |
Players[].Unknown3 |
14 | unsigned |
Players[].Unknown4 |
14 | unsigned |
Players[].Unknown5 |
2 | unsigned |
Players[].Level |
32 | unsigned |
Players[].Unknown7 |
3 | unsigned |
Players[].Unknown8 |
32 | unsigned |
Players[].Unknown9 |
1 | unsigned |
Players[].Unknown10 |
32 | unsigned |
Players[].Unknown11 |
32 | float |
Players[].Unknown12[0] |
the fields below | |
Players[].Unknown12[0].Unknown0 |
16 | unsigned |
Players[].Unknown12[0].Unknown1 |
8 | unsigned |
Players[].Unknown12[1] |
the fields below | |
Players[].Unknown12[1].Unknown0 |
16 | unsigned |
Players[].Unknown12[1].Unknown1 |
8 | unsigned |
Players[].Unknown12[2] |
the fields below | |
Players[].Unknown12[2].Unknown0 |
16 | unsigned |
Players[].Unknown12[2].Unknown1 |
8 | unsigned |
Players[].Unknown12[3] |
the fields below | |
Players[].Unknown12[3].Unknown0 |
16 | unsigned |
Players[].Unknown12[3].Unknown1 |
8 | unsigned |
Players[].Unknown12[4] |
the fields below | |
Players[].Unknown12[4].Unknown0 |
16 | unsigned |
Players[].Unknown12[4].Unknown1 |
8 | unsigned |
Players[].Unknown13 count |
32 | unsigned |
Players[].Unknown13 |
array, counted by Players[].Unknown13 count
|
|
Players[].Unknown13[].Unknown0 |
15 | unsigned |
Players[].Unknown13[].Unknown1 |
16 | unsigned |
Ends the vote to kick as cancelled; the client clears the vote's target and raises MatchVoteKickEnd.
| Opcode | Direction | Verified to |
|---|---|---|
0x060D |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Ends the vote to kick as failed; the client clears the vote's target and raises MatchVoteKickEnd.
| Opcode | Direction | Verified to |
|---|---|---|
0x0612 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Starts a vote to kick a player from the match; unless the player started it, the client keeps the target and raises MatchVoteKickBegin with it.
| Opcode | Direction | Verified to |
|---|---|---|
0x0614 |
server to client | purpose |
| Field | Bits | Encoding |
|---|---|---|
InitiatorId |
the fields below | |
InitiatorId.RealmId |
14 | unsigned |
InitiatorId.Id |
64 | unsigned |
TargetId |
the fields below | |
TargetId.RealmId |
14 | unsigned |
TargetId.Id |
64 | unsigned |
Reports a vote to kick held back by a cooldown.
| Opcode | Direction | Verified to |
|---|---|---|
0x0616 |
server to client | purpose |
| Field | Bits | Encoding |
|---|---|---|
Result |
6 | unsigned |
Unknown1 |
32 | unsigned |
On PersonalKickCooldown or GlobalKickCooldown the client keeps the result and prints a time in the matching text.
Ends the vote to kick as passed; the client clears the vote's target and raises MatchVoteKickEnd.
| Opcode | Direction | Verified to |
|---|---|---|
0x061A |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Ends the vote to surrender as failed; the client marks no surrender vote running and raises MatchVoteSurrenderEnd.
| Opcode | Direction | Verified to |
|---|---|---|
0x061F |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Starts a vote to surrender the match; the client marks a surrender vote running and raises MatchVoteSurrenderBegin.
| Opcode | Direction | Verified to |
|---|---|---|
0x0621 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Reports the result of a match operation.
| Opcode | Direction | Verified to |
|---|---|---|
0x0623 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Result |
6 | unsigned | The result. |
CooldownMs |
32 | unsigned | With a surrender cooldown result, the cooldown in milliseconds, which the client counts from the message's arrival. |
On PersonalSurrenderCooldown or GlobalSurrenderCooldown the client keeps the result and the cooldown, and holds back MatchVoteSurrenderInitiate until the cooldown has run out; on any other result it prints that result's text.
Sets the average wait of one matching queue; for an entry not in its match the client also raises MatchingAverageWaitTimeUpdated.
| Opcode | Direction | Verified to |
|---|---|---|
0x0628 |
server to client | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The match type of the queue, the one its entry is filed under. |
AverageWaitTimeMs |
32 | unsigned | The queue's average wait, in milliseconds. |
The player's answer to a role check: the roles chosen, or a refusal.
| Opcode | Direction | Verified to |
|---|---|---|
0x05B2 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The match type of the role check answered, as RoleCheckMatchType last set it, so None when no role check's type is set. |
Roles |
32 | unsigned | The roles the player chose, as a mask of Role, limited to the roles the player's class can fill. |
Accepted |
1 | unsigned | Whether the player confirmed the role check (true) or declined it (false). |
Leaves every matching queue the player is in.
| Opcode | Direction | Verified to |
|---|---|---|
0x05B4 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Leaves one matching queue.
| Opcode | Direction | Verified to |
|---|---|---|
0x05B5 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The match type of the queue to leave, the one its entry is filed under. |
Leaves one matching queue the player joined as a group.
| Opcode | Direction | Verified to |
|---|---|---|
0x05B6 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The match type of the queue to leave, the one its entry is filed under. |
The player's answer to a ready match.
| Opcode | Direction | Verified to |
|---|---|---|
0x05C8 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Accepted |
1 | unsigned | Whether the player accepts the match (true) or declines it (false); on a refusal the client raises MatchingCancelPendingGame. |
Starts a vote to kick a player from the match; MatchingGameLib.InitiateVoteToKick sends it.
| Opcode | Direction | Verified to |
|---|---|---|
0x05D1 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
TargetId |
the fields below | The group member to kick, by realm-scoped character id; the client chooses the target among the group's members and never names the player themself. | |
TargetId.RealmId |
14 | unsigned | The realm the id belongs to. |
TargetId.Id |
64 | unsigned | The id within its realm. What it identifies, a character or a residence, depends on the member that holds it. |
Starts a vote to surrender the match.
| Opcode | Direction | Verified to |
|---|---|---|
0x05D3 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
The client sends it while no surrender vote runs and the active match type is a dungeon, an adventure, a warplot or a shiphand, unless a surrender cooldown MatchOperationResult set is still running.
Asks the match to look for players to fill the places it has open.
| Opcode | Direction | Verified to |
|---|---|---|
0x05D5 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Roles |
32 | unsigned | The roles to look for, as a mask of Role. |
Leaves the match; MatchingGameLib.LeaveGame sends it while the player is in one.
| Opcode | Direction | Verified to |
|---|---|---|
0x05DA |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Joins a matching queue; MatchMakingLib.Queue sends it.
| Opcode | Direction | Verified to |
|---|---|---|
0x05EF |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Request |
the fields below | The queue to join. | |
Request.MatchType |
5 | unsigned | The queue's match type. |
Request.GameMapIds count |
32 | unsigned | |
Request.GameMapIds |
array, counted by Request.GameMapIds count
|
The maps queued for, as MatchingGameMap ids. | |
Request.GameMapIds[] |
32 | unsigned | |
Request.GameTypeId |
14 | unsigned | The game type, as a MatchingGameType id. |
Request.Flags |
32 | unsigned | The queue flags. The client sends 0x40 by default, or AsMercenary (0x20) in its place when queueing as a mercenary, adds FindOthers when it looks for others and Veteran for a veteran queue, and keeps each only where the match type allows it (only Warplot allows 0x20 and 0x40). On an entry it receives in MatchingQueueJoined it adds GroupIsQueued when AsGroup is set, takes bit 0 as the mark of a random queue, and compares Veteran with the entry's own veteran flag. |
Roles |
32 | unsigned | The roles queued for, as a mask of Role. |
PrimeLevel |
32 | unsigned | The prime level asked for. The client lowers it to the smallest ceiling among the prime-level maps queued for, each the level the player has unlocked there less the map's offset, capped at the map's maximum; it sends 0 when it queues no prime-level map. |
Joins a matching queue as a group; MatchMakingLib.QueueAsGroup sends it.
| Opcode | Direction | Verified to |
|---|---|---|
0x05F3 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Request |
the fields below | The queue to join. | |
Request.MatchType |
5 | unsigned | The queue's match type. |
Request.GameMapIds count |
32 | unsigned | |
Request.GameMapIds |
array, counted by Request.GameMapIds count
|
The maps queued for, as MatchingGameMap ids. | |
Request.GameMapIds[] |
32 | unsigned | |
Request.GameTypeId |
14 | unsigned | The game type, as a MatchingGameType id. |
Request.Flags |
32 | unsigned | The queue flags. The client sends 0x40 by default, or AsMercenary (0x20) in its place when queueing as a mercenary, adds FindOthers when it looks for others and Veteran for a veteran queue, and keeps each only where the match type allows it (only Warplot allows 0x20 and 0x40). On an entry it receives in MatchingQueueJoined it adds GroupIsQueued when AsGroup is set, takes bit 0 as the mark of a random queue, and compares Veteran with the entry's own veteran flag. |
Roles |
32 | unsigned | The roles queued for, as a mask of Role. |
PrimeLevel |
32 | unsigned | The prime level asked for, as PrimeLevel gives it. |
Joins the random matching queue of a match type.
| Opcode | Direction | Verified to |
|---|---|---|
0x05F8 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The queue's match type. |
Flags |
32 | unsigned | The queue flags, as Flags carries them. |
Roles |
32 | unsigned | The roles queued for, as a mask of Role. For Dungeon and Adventure the client sends at least one, and refuses with Role instead of sending none. |
Joins the random matching queue of a match type as a group.
| Opcode | Direction | Verified to |
|---|---|---|
0x05F9 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
MatchType |
5 | unsigned | The queue's match type. |
Flags |
32 | unsigned | The queue flags, as Flags carries them. |
Roles |
32 | unsigned | The roles queued for, as a mask of Role. For Dungeon and Adventure the client sends at least one, and refuses with Role instead of sending none. |
Asks the match to stop looking for replacements; the client sends it from the group leader while the match is looking.
| Opcode | Direction | Verified to |
|---|---|---|
0x0602 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
Asks to be moved into the current match; the client sends it only when the match's type allows it.
| Opcode | Direction | Verified to |
|---|---|---|
0x0606 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
| (none) | 0 |
The player's vote on a vote to kick; the client clears the vote's target once it sends it.
| Opcode | Direction | Verified to |
|---|---|---|
0x0617 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
TargetId |
the fields below | The player the vote would kick, as TargetId gave it. |
|
TargetId.RealmId |
14 | unsigned | The realm the id belongs to. |
TargetId.Id |
64 | unsigned | The id within its realm. What it identifies, a character or a residence, depends on the member that holds it. |
Vote |
1 | unsigned | The player's vote on the kick. |
The player's vote on a vote to surrender; the client sends it while a surrender vote runs.
| Opcode | Direction | Verified to |
|---|---|---|
0x0624 |
client to server | fields |
| Field | Bits | Encoding | Meaning |
|---|---|---|---|
Vote |
1 | unsigned | The player's vote on the surrender. |
| Piece | Path |
|---|---|
| Message declarations | Source/NexusTomorrow.Network.World/Message/Model/MatchingGame/ |
| This page's generator | Tools/NexusTomorrow.ProtocolReference/ |
Start here
How the server works
The protocol
Working on it