Get desktop application:
View/edit binary Protocol Buffers messages
Update the account login email address.
Change the e-mail address for this account.
Provide 2 forms of authentication.
Update the account password.
Change the password for this account.
Provide the correct existing account password.
Provide a new password that adheres to the password requirements.
Check if a user handle is valid and available for use.
Get the secret question for sending a password reset code mail.
Fetch basic account information
Fetch current account preferences.
Apply a registration or access code.
Redeem an access code to grant the account additional roles or objects.
Apply for an account.
Request to create an account.
Registration key (if required)
For unverified accounts, send a new validation e-mail.
Reset the account password using a validation code.
Account to reset.
String from the email sent by SendPasswordResetRequest.
New password to set. Must obey password restrictions.
Send a password reset mail with a temporary validation code. Must provide valid secondary authentication.
Secret question message ID for the account.
Answer to secret question.
Update the user's contact address fields. A new account has no contact address; but once set it cannot be removed.
Change the user's locale. Fails of the given locale string is not supported.
Request to change the default locale of the account.
Update account preferences. Only set fields will be updated.
Validate a pending account using the secret key.
Validate a pending account or e-mail address change.
Checks a reset code for validity.
Account to verify.
String from the email sent by SendPasswordResetRequest.
Unique Windows identifier for the machine that crashed.
Zip of crash report contents
No-op ping method for client to (re-)establish connectivity.
Get any pending events matching the current filter, or wait for new events.
Create a new lobby and join it, with the creator as owner. Fails if user is already in a lobby. Success confirmed by LobbyJoin event.
Get the secret code for joining this lobby. Only members marked as owner may request the code.
Join a lobby using a secret code provided by a lobby owner. Fail if user is already joined to another lobby. Success confirmed by LobbyJoin event.
Leave the currently joined lobby. If the player is the last owner, another owner is assigned at random. If player is last member, lobby is destroyed. Success confirmed by LobbyLeave event.
Remove a user from the lobby and permanently restrict them from re-entering.
Remove a user from the lobby.
ID of the lobby.
Account ID of the user to kick.
Set the global options for matches generated by this lobby -- owner only.
Any set fields will be updated in the lobby GameConfig template.
Grant or revoke owner status to another member of the lobby -- owner only.
Set ourselves ready or not-ready for a match in the joined lobby if the lobby state allows it.
If ready == true, layer network and character data for the next match.
Cancel an outstanding match request.
Report a desync.
Get the full GameProfile to bootstrap after a successful login.
Everything the RT client needs at startup.
Player and character experience
Saved preferences for the player
Server capabilities enabled for this session.
Fetch saved replay data for a given game that the calling player participated in. Old games may be not be available after a while.
Match to fetch replay for.
Game number of the replay.
Request to be matched with another player.
Type of match requested.
If MT_TOURNAMENT, arena ID.
Client's claimed network address.
Client's desired character loadout for the match.
Client's approximation of their skill. Only taken into account after first login/first match.
Request a server ping test. This must be done before queuing for a match, and every so often afterward. Returns a server and port awaiting a brief ping test session.
Server to use for an immediate latency test.
Resets the character layout of a training match in progress. If successful, results in a GameOverEvent, GameBeginEvent with the requested GameOptions and updated character for the given slot.
The in-progress match to reset.
The new character spec to use for the next game.
Proposed training game options for the next game.
Request to be matched with another player; attempt to resume old spot in match queue.
New preferences. If setting character preferences, set the entire state (spec and all variants).
Get a ticket for the indicated game type. May only be granted if the corresponding game access bit is held by the user.
Build number of the client. If set, checks that the build is allowed.
Establish an authenticated session.
Either handle or e-mail address can be used.
Client build. May require certain version to login.
Remote IP now passed via XFF header by TBFE
Invalidate session.
Redeem a game session ticket. The resulting session is distinct from the launcher session but enforced max one per account.
Client build. Server may require a certain version to login.
********************** Stored Payment Methods *************************
Add a stored payment method used to make in-game purchases. Also makes it the default method.
Get the current account balance.
Currency of the balance to retreive. If not given, uses the user's default currency.
Get order records that affected the account balance. Server-enforced limit on time range and result size.
Currency of the balance. If not specified, will use the account's default currency.
Creation date time range. Server may impose limit; will return last 30 days if not set.
Sort order to sort the orders in short order.
Skip past this many records in the result.
Currency of the affected balance.
Summaries of orders that affected the balance.
True when the included results reached the end of the query result.
Get order records belonging to the calling account. Server-enforced result size limit per-call.
Get the account's purchase order history. Result size limit controlled by server configuration.
Order sorting
Skip past this many records in the result.
Orders that matched the criteria.
True when the included results reached the end of the query result.
Get an existing purchase order. For a non-admin user, the query will be restricted to those orders belonging to the account.
Load a specific purchase order.
Get the current stored payment method. Returns msg.shop.paymentMethod.notExist if none has been set.
List of all stored payment methods.
Which method is set as the default.
Remove the stored payment method from the account. If the default method is removed, no method will be marked as default; the user must elect a new one.
Set the payment method as the default.
Submit a new purchase order.
Submit a purchase order. Provide minimum required fields in PurchaseOrder, and specify a funding source.
Generated order number.
Current status of the order.
This overwrites all existing values. method_id must be set. Masked values returned by GetStoredPaymentInfo will keep their original values.
Summary of an order that affected the account balance
Used in:
Order number.
True for balance load events.
Amount of the balance change. Balance loads will be positive, deductions will be negative.
Status of the order.
Creation time of the order.
Used in:
Sort-by column.
Set to true for highest values first.
Used in:
Used in:
AuthNet customerAddressType
50
50
50
Obscured on fetch. Submit obscured value to leave unchanged.
60
40
40
20
60
Obscured on fetch. Submit obscured value to leave unchanged.
255
Definition of the character the user intends to play in the next available match.
Used in: , , , , , , , ,
Type name of character, e.g. "atl"
Selected option for secondary meter (defensive or offensive)
Special move variants selection
Used in:
Type name of the game character.
Experience level.
Total experience points.
Total wins & losses.
Total experience point thresholds for the current and subsequent levels.
A single chat stream event.
Unix time the chat was generated.
Handle of the originating player. If unset, system-generated message.
Chat text.
Which optional client features the server has instructed to enable.
Used in: , ,
List of enabled features and config values.
User's contact address fields.
Used as request type in: AccountService.SetContactAddress
Used as field type in: ,
Internal-only type for tracking pending desyncs.
Used in:
Event container union. Returned in GetEvent.
Used in: ,
Unique ID for the event.
Type of the event.
Time the event was generated.
Event fields based on type.
Used in:
Used in:
Feature's unique tag.
Config value set for the feature, if any.
The event filter has been updated; any pending GetEvent call should reload the filter. Target: q_user_N
Used in:
(message has no fields)
Used in:
When using a stored method, use this CVV value for validation.
Used in:
None indicated.
Use available account balance for the order's currency.
Use the current default stored payment method.
Use the stored payment method identified by stored_method_id.
Use a custom payment method described by custom_method.
The next game is beginning in this match. Target queue: match
Used in:
Populated from the sequenceId field in Redis under the match's key. Should be used by the client, if present, to determine whether to process this event.
Configuration for a single game in a match, suitable for sending to one of the participating clients.
Used in: , , , , , , , , , ,
Each player's character info.
Global options for this game.
The server-assigned unique ID of the match.
deprecated
Used in:
Server-side record of the game in progress.
Used in:
Game being played.
Extra details for each player slot.
Portal session in use.
For source == MATCH_MAKER, queue this match was generated by. MT_LOBBY indicates a lobby match.
Build version of the matched clients.
For source == LOBBY, lobby ID of the owning lobby.
Used in:
GameEndpointConfig player is using to connect to Portal.
Remote IP of the player.
Rating used to create the match.
How long waiting in the match queue, in seconds.
The ping score to the opponent in the match. 0 if no existing ping score.
Ranking values used to make the match.
Used in:
Match by blind-queue rating match-maker.
Matched by user lobby.
Connection information for one of the players.
Used in: , , , ,
Which player slot to control (0 = one, 1 = two)
Server address.
64-bit secret to gain access to the match.
Ping threshold for the handshake between peers.
The 128-bit shared key used to hash client packets
Batch of compressed inputs. Target queue: match
Used in:
First frame number of input stored in bits.
Number of bits to read from bits.
Encoded frame inputs.
True if this is the last set of inputs for a game.
Used in: , , , ,
Stage etc.
Used in:
Fight to the finish -- best of N games, etc.
No one dies -- client exit completes the match.
Player-specific outcome enum of a particular game.
Used in:
Game reached a valid outcome. Target queue: match
Used in:
Information about a previously played game.
Used in:
Type of match the game belonged to.
Match start conditions.
Which slot won the match.
Game start time (RFC3339 string).
Game duration in seconds.
Is replay data available?
The GameReplayRecord allows us to replay the game.
Used in:
Initial config
P1 and P2 inputs for all the frames that matter (between GGPO Ready and confirmed last hit)
Game number
The GameReport is serialized in the Goodbye packet send to portal immediately upon determination of the game outcome. Iff both players sent the same GameReport, the game outcome is considered valid and the match will proceed. The serialized size of this proto should not exceed PORTAL_MAX_OUTCOME_SIZE.
Used in: ,
Player slot (0, 1) that won the match.
Was match a draw?
Outcome of a game within a match.
Match ID.
Game number in the match.
Resolution of the game.
Number of games in the match each player slot has won.
Game duration in seconds.
Used in: , ,
Rising Thunder.
The InputRecord is a serialized version of both player's inputs
Used in: ,
Input record blob. Engine knows how to decode it.
Used in: ,
Unique identifier for this lobby.
Style of gameplay conducted in the lobby.
Name given by creator.
Current state of the lobby. Updated by LobbyStatusEvent.
People currently in the lobby. Updated by LobbyMemberUpdateEvent.
Options included for the next match generated by this lobby.
For state == LS_MATCH, start config of the game being played.
For type == LT_QUEUED, this is the current queue order of account IDs. Updated by LobbyMemberUpdateEvent.
Player has now joined a lobby.
Used in:
Current state of the joined lobby.
Player has left the current lobby, either voluntarily, because they were banned, or because the last owner left.
Used in:
Used in:
Left lobby voluntarily.
Banned from the lobby.
Removed by owner, but not banned permanently
An idle lobby has two ready players. New match started, and the recipient is involved.
Used in:
The ID of the newly created match.
Game config for first game of the match.
Player slot and connection.
Used in: ,
Lobby owner?
Ready for next match?
Used in: ,
Waiting for 2 ready players.
Match is ready to start.
A match is in progress.
Used in: ,
Sent to current members about changes in the lobby state. Notifies users joining and leaving, change of ready states, queue order, and other lobby states. Any fields not set should be left at their previous state.
Used in:
Members added or whose state changed.
Members who left.
Current state of the lobby.
For state == LS_MATCH, GameConfig that started the running match.
Order of queued members by account_id.
Options for games generated by this lobby.
This represents a single log message generated by an application pertaining to some entity. e.g.: One log message from Portal for a given Match.
The timestamp at which this message was generated.
The log or debug message.
The log level of the message.
The source of the log message.
The type of entity to which the log message pertains
An online match
The various possible log levels
Used in:
The application will probably terminate after this message is logged.
An error was encountered, but the application will resume.
Something unexpected or noteworthy occurred that didn't break anything.
Verbose log entries, debug information, etc.
Information about the originator of the log message
Used in:
The name of the application that generated the message.
The IP address or hostname of the machine from which the message originated.
Used in: , , ,
Account accepts logins with a valid password.
Account is permanently frozen and can only be enabled by an administrator.
Account uses an e-mail address that has not yet been confirmed.
A match user was playing has been abandoned, because players sent conflicting goodbye packets (either intentionally or because the p2p connection got broken) Stop playing the match and exit back to the menu. Target queue: user
Used in:
Observed match has successfully established player connection and loading has begun. Target queue: match
Used in:
A new match was created. Target queue: match
Used in:
Used in:
Starting player total XP.
Starting player level.
Experience thresholds for current player level (index 0), plus a few more in case the player levels up.
XP earned from the match.
XP bonus for winning.
Optional XP boost.
Original character XP.
XP earned by character from the match.
Character XP bonus for winning.
Optional character XP boost.
Starting character level.
Experience thresholds for current character level (index 0), plus a few more in case the character levels up.
Ranking tier points awarded. Could be 0 or negative.
Player-specific outcome enum of a complete match.
Used in:
Match completed that user participated in. Notify about what the server recorded. This event could arrive anywhere along the game sequence, since it may also indicate early disconnection of the opponent.
Used in:
What happened in the match.
Spoils of war.
Updates to user stats.
Observed match has completed. Target queue: match
Used in:
if status==VALID, player slot that won if any.
if status==VALID, true iff the result was a draw.
Used in:
Match did not complete due to a server error, desync or a network problem that affected both players.
Match ended because one player disconnected.
Match ended with a valid outcome.
Used in:
String must equal the match value exactly.
String begins with the match value.
String contains the match value.
The MatchReport is sent from portal to TBMatch.
Used in:
Did the players have the same reported results?
Player slot (0, 1) that won the match.
Was match a draw?
The game reports for the individual games
Used in:
Match ID.
Type of match played.
Character played.
Won or lost?
True if we won because the opponent disconnected.
Match start time (RFC3339 string).
Match duration in seconds.
Number of games played and won.
Opponent.
Deprecated fields.
Used in: , , , , , , , , , ,
Earn experience, but not ranking points.
Earn experience, ranking points adjusted from outcome.
Join elimination tournament.
Custom lobby match.
How the meter refills in training mode
Used in:
Same as in online mode
Increase at constant rate
Max out on reset
Used in: , , ,
Host name or IP address where the client or server can be reached.
UDP port on which the client will be listening for a match.
Configuration for the next game in a match, allowing for users to change their character specs.
Used in: ,
The new character specs to use for the next game.
Proposed game options for the next game. May only be specified during a training match.
Used in: ,
First sort-by column.
Secondary sort-by column.
Set to true for highest values first.
Used in:
Used in: , , , ,
New order that has not been processed yet.
Order accepted and is pending settlement.
Order payment method failed.
Payment has been accepted and goods delivered. For item orders, this state occurs on approval. For balance loads, after settlement has been observed.
Order canceled before payment settled. Any goods that delivered in advance have been returned.
Item return / refund requested; pending settlement.
Refund was approved but failed to settle. Items not returned.
Refund settled and items returned.
Used as request type in: ShopService.CreateStoredPaymentMethod, ShopService.UpdateStoredPaymentMethod
Used as field type in: , ,
Unique ID provided by server. Leave unset during creation.
13-16 digits, no dashes or spaces. Obscured on fetch. Submit obscured value to leave unchanged.
YYYY-MM Obscured on fetch. Submit obscured value to leave unchanged.
3 or 4 digit CCV numeric value. Not stored in AuthNet, but used during validation of create stored method, update stored method, and for transactions with a custom payment method.
Observed card issuer type (Visa, Discover, etc). This field is ignored for stored payment methods, but may be returned for processed orders.
The billing address. Unset indicates this payment method should use the account's first and last name, country, and current contact address. It is an error to leave unset when the contact address has not yet been stored.
Payment label, used to easily identify the card to the user.
Used as request type in: ShopService.RemoveStoredPaymentMethod, ShopService.SetDefaultStoredPaymentMethod
The requested ping test has completed - now eligible to join a matching queue.
Used in:
Average measured round-trip time.
Max round-trip time.
Fraction of packets lost.
Was the ping successful or not?
Used in: ,
The last character the player selected
Serialized tbui LocalPlayerPreferences proto for local information that the server doesn't care about.
Character-specific preferences
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in: , , ,
Experience level.
Total experience points.
Total wins & losses.
Stats for each character. Any not present are assumed to be level 1 with 0 exp.
Total experience point thresholds for the current and subsequent levels.
Number of consecutive wins.
Echelon index (0=Carbon, etc.) Display: "msg.rank.echelon.%d"
Tier index within echelon (0=I, 1=II, etc.) Display: "msg.rank.tier.%d"
Points within tier.
Number of points required before next tier can be reached.
Player's standing in the echelon (only valid for highest echelon)
The report sent from portal to TBMatch to record information about a game. It's a superset of GameReport
Used in:
Used as response type in: ShopService.GetPurchaseOrder
Used as field type in: , ,
System-generated order number. Unset in new requests.
Currency used for all items and amounts in this order. For game currency, account balance funding source is required.
List of items requested for purchase. Minimum 1, max 30.
Amount of tax and shipping included in the total.
Total amount to charge the customer for this order. Must be equal to the sum of each item unit price times quantity, plus tax.
Status of the order.
Was account balance used?
If not drawn from account balance, snapshot of the payment method used.
Creation and last modification time (RFC3339).
Account that created the order.
Used in:
Catalog item ID of the item.
Quantity of this item to be purchased.
Unit price for the item.
Wrapper for server-stored events.
The event queued for delivery.
If set, only return the event if the requesting session matches this ID.
If set, discard the event after this time is reached.
Used in:
The frame before the rollback
The frame to roll back to
Used in:
Both players inputs, including for frames that we later rolled back from.
Information about rollbacks
Rollbacks count, so P1 and P2 need their own RollbackInputRecord since their rollback histories are different.
Initial config for each game in a match
P1 and P2's inputs with rollbacks.
Self-estimate of user's familiarity with/skills at fighting games.
Used in:
Matches a string value in a search criteria.
Used in: , ,
Possible limits for a time range.
Used in: , , ,
Beginning of the allowed time range (RFC3339)
End of the allowed time range (RFC3339)
How the dummy opponent blocks
Used in:
Same as in online mode
Increase at constant rate
Max out on reset
Training mode configurable options
Training mode configurable options that are also part of GameConfig
Used in: , ,
How the dummy opponent moves
Used in:
Same as in online mode
Increase at constant rate
Max out on reset
Max out on reset
Max out on reset
State of a merchant gateway transaction.
Used in:
External payment transaction ID.
Payment processor generated authorization code.
Last observed external transaction state. See http://www.authorize.net/support/ReportingGuide_XML.pdf page 26.
Used to create or update accounts.
Used in: , , ,
E-mail address. Required.
Desired password. Required for CreateUser and Register; existing accounts must use ResetPassword.
Username as seen by other users.
Given (first) name. Required.
Family (last) name. Required.
Salutation, optional.
Date of birth (RFC3339 string). Required.
3-letter code for country of residence.
Locale for messages, currency format, etc.
Secret question message ID. Required.
Answer to the secret question. Required.
User failed to handshake during a match, check network settings.
Used in:
(message has no fields)
Full details and status of a user account. Can be returned both for the active session, and for account administration.
Used as response type in: tbadmin.AccountAdminService.LookupUser, AccountService.GetUserInfo, AccountService.ValidateUser
Used as field type in:
When account was created (RFC 3339 string).
Last time account was modified (RFC 3339 string).
Last login time, if any (RFC3339 string).
User settable options and preferences for the website.
Used as request type in: AccountService.SetUserPrefs
Used as response type in: AccountService.GetUserPrefs
Used as field type in: , , ,
Allow using account balance for in-game purchases.
Elect to receive special offers and promotional e-mail.
Currency last used/selected.
The session is being forcibly closed. Could be due to login on another session, terminated by an administrator.
Used in:
Definition of variants selected for a character's moves
Used in:
4-element array for variant ids for special 1, 2, 3 and super
Progress updates from the GetMatch method. Target: q_user_N
Used in:
The ID of the newly created match.
Game config to run for game 0 (when status == MATCH).
Player slot and connection for game 0 (when status == MATCH).
Some extra stats for a WAITING progress.
DEPRECATED FIELDS
Used in:
Waiting for an available match.
Gave up waiting.
Match found.
Request canceled by user.
Failed to enter queue. A ping test must be performed before re-queuing for a match.
The build version is not allowed to enter the queue. A client update is required.
The match-making server is down for maintenance. Try again later.