Request Reference¶
Table of Contents¶
async.proto¶
Messages¶
ActionCommitedRequest¶
Sent back to acknowledge a client sent CommitActionRequest.
More information can be found in Standard Game Turn and Simultaneous Game Turn sections.
S -> C
request_number: 523
field_name: action_commited_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
turn_index |
Monotonically incremented turn index after each round by the server, this should allow
the client to know which request it should act on.
It has the same value as provided in last CommitActionRequest, if correct
|
|
pause_time |
Next player’s clock will start after this delay (in seconds) |
ActionInterruptedRequest¶
Sent by the server to confirm the reception of an interruption.
More information can be found in Interruptions section.
S -> C
request_number: 571
field_name: action_interrupted_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
The game id where this event happened
|
|
player_id |
Local player id of the interrupting player
|
|
turn_index |
Turn index at which the interruption occurred
|
|
interruption_data |
The player interrupted with these data
|
|
no_more_interruption |
If
true , the server has stopped the interruption phase after receiving the last interruption. |
ActionRequiredRequest¶
Ask a given player to perform a game action. This makes the player the “active player”.
More information can be found in Standard Game Turn and Simultaneous Game Turn sections.
S -> C
request_number: 500
field_name: action_required_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
state |
Client created game state |
|
players |
List of players in this game
(in no particular order)
|
|
next_player_ids |
List of the next player local ids in turn
(the receiving player will be the first one)
|
|
turn_index |
Monotonically incremented turn index after each round by the server.
This should allow the client to know which request it should act on.
Provide this value when sending a CommitActionRequest
|
|
invited_by |
This will be present if the game resulted from
an invitation from this player.
If the game resulted from an invitation, will be filled with the player’s id.
Is 0 if the game was not an invitation.
Combined with
turn_index == 1 , this can bea way to let the user know that she has been invited
|
|
player_clock |
Current player clock status |
|
user_data |
Optionally sent user data.
This data comes from the
LobbyCreateGame andLobbyJoinGame request, or can alsobe updated independently by users
with an UpdateUserDataRequest
|
|
interruption_data |
Optionally sent interruption data.
This data comes from the interruption done by users
with an InterruptActionRequest during an interruption turn
|
|
pause_time |
The player’s clock will start after this delay (in seconds). This can be used to
give time to play animations of previous actions before starting decreasing clock.
|
AnswerInvitationRequest¶
Sent by the client to accept or decline an invitation. The result is immutable and any other accept/decline for the same user in the game after the first one will be discarded.
More information can be found in Invitation section.
C -> S
request_number: 540
field_name: answer_invitation_request
In response to:
Possible Responses:
ErrorRequest: INVITATION_DENIED (13)
Field |
Type |
Description |
---|---|---|
game_id |
Game id of the accepted/declined invitation |
|
accept |
|
|
user_data |
Optional user data to send this player capabilities |
AskAnyPlayerInfoRequest¶
Sent by the client when more details are needed for a given connected player. This is used for instance when clicking on a player in the buddy/ignore player list.
C -> S
request_number: 630
field_name: ask_any_player_info_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
player_id |
The player to ask information for |
AskPlayerInfoRequest¶
Sent by the client when more details are needed for a given player. This is used for instance when clicking on a player in the lobby player list.
More information can be found in Player Information section.
C -> S
request_number: 605
field_name: ask_player_info_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
player_id |
The player to ask information for |
AskServerStatisticsRequest¶
Sent by the client when it wants to have some statistics about the server (like number of hosted games, connected clients…).
When subscribe
is true
, the server sends a continuous stream of statistics updates.
More information can be found in Server Statistics section.
C -> S
request_number: 408
field_name: ask_server_statistics_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
subscribe |
If
false , the server will return statistics only once.If
true , the server will send a stream of statistics message, and will stoponly when the client sends an ask request with
subscribe == false |
AsyncAuthRequest¶
Used to:
either authentify a player for a given connection (should be the first packet to be sent)
or resume a session from an existing session
You must connect using the OAuth2 Access Token provided by the REST API as described in the protocol documentation.
This Access Token must have the private
scope, of course.
Note : If a user logs out from her client and logs in with a different DoW account, we would have the same device token id pointing to different accounts. Thus it is possible that a given device receive notification for a different user, which is bad. Please send an AsyncUnlinkDeviceRequest before connecting with a different account / session.
More information can be found in Authentication section.
C -> S
request_number: 400
field_name: async_auth_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
name |
Player login name |
|
partner_token |
Set this to authenticate with an access_token coming from the API |
|
user_agent |
Client user agent |
|
session |
If sent, then that means we want to resume a given session
|
|
game_type |
This is required - multi game protocol requires a distinct authentication
per player per game.
Game types are enforced on the server, by example SW and TT are valid
|
|
device |
An optional device token.
If sent, this will be used for push notifications.
Devices are kept on the server, if the client already sent this device token it is not needed
to send it at every authentication attempt (to spare some resources on the server)
|
AsyncAuthRequest.UserAgent¶
Field |
Type |
Description |
---|---|---|
user_agent |
This contains the codified User Agent
(Downloadable, Steam, iPad, MacOSX, Pocket…)
|
|
full_user_agent |
This would contain the full string
obeying the following format: *platform*/*ua*/*version*
|
AsyncBuddy¶
This represents a buddy.
More information can be found in Buddy List section.
Field |
Type |
Description |
---|---|---|
player_id |
Unique global id |
|
activity |
This buddy’s current activity |
AsyncBuddyAddedRequest¶
Sent by the server when a buddy has been added.
More information can be found in Buddy List section.
S -> C
request_number: 519
field_name: async_buddy_added_request
In response to:
Field |
Type |
Description |
---|---|---|
added_buddy |
The full player information of the added buddy |
AsyncBuddyList¶
This represents a list of buddy.
More information can be found in Buddy List section.
Field |
Type |
Description |
---|---|---|
buddy |
Buddies information, contains the activities
|
|
player |
Buddies’ Player information, order is not guaranteed to be the same as the
buddy field |
|
present |
Buddies whose global id are listed here are connected - note this is optional and
this list might be empty (especially during the phase where
the server doesn’t yet support presence)
|
AsyncBuddyListContentRequest¶
Sent in response to a given AsyncBuddyListRequest.
S -> C
request_number: 516
field_name: async_buddy_list_content_request
In response to:
Field |
Type |
Description |
---|---|---|
buddies |
The current full buddy list (filtered if asked to) |
AsyncBuddyListRequest¶
Sent by the client to ask the connected user buddy list.
C -> S
request_number: 515
field_name: async_buddy_list_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
webcard_filter |
Pass an optional array of webcards to filter out users that don’t have this webcard in their account |
AsyncBuddyManagementRequest¶
Sent by the client to add or remove a buddy. A player cannot add herself to her own buddy list.
More information can be found in Buddy List section.
C -> S
request_number: 518
field_name: async_buddy_management_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
operation |
Whether to add or remove a buddy |
|
buddy |
The buddy to be added or removed |
AsyncBuddyPresencePartialUpdateRequest¶
Despite its name, this request is sent by the server when the presence of some monitored players change.
More information can be found in Presence section.
S -> C
request_number: 517
field_name: async_buddy_presence_partial_update_request
Field |
Type |
Description |
---|---|---|
present |
List of present players global id, including buddies. Players not mentioned in this request have not
changed.
Note: due to the asynchronicity of the system, it is possible that some players id referenced
in those two lists are unknown to the client (for instance, if you don’t know yet who are your buddies).
|
|
absent |
List of absent players global id |
AsyncBuddyRemovedRequest¶
Sent by the server when a buddy has been removed.
More information can be found in Buddy List section.
S -> C
request_number: 520
field_name: async_buddy_removed_request
In response to:
Field |
Type |
Description |
---|---|---|
removed_buddy |
The removed buddy |
AsyncConnectedRequest¶
Returned by the server after a successful AsyncAuthRequest.
More information can be found in Authentication section.
S -> C
request_number: 406
field_name: async_connected_request
In response to:
Field |
Type |
Description |
---|---|---|
session |
The current player session |
|
player |
The current player information |
AsyncConnectionErrorRequest¶
Returned from an AsyncAuthRequest if there is a failure.
More information can be found in Authentication section.
S -> C
request_number: 407
field_name: async_connection_error_request
In response to:
Field |
Type |
Description |
---|---|---|
code |
Connection error code |
AsyncDeviceUnlinkedRequest¶
Sent by the server to the client in response to a successful AsyncUnlinkDeviceRequest.
S -> C
request_number: 413
field_name: async_device_unlinked_request
In response to:
Field |
Type |
Description |
---|---|---|
device |
Device to unlink |
AsyncDisconnectRequest¶
When a player wants to disconnect.
More information can be found in Logging out section.
C -> S
request_number: 401
field_name: async_disconnect_request
AsyncIgnore¶
This represents an ignored player.
Field |
Type |
Description |
---|---|---|
player_id |
Unique global id |
AsyncIgnoreAddedRequest¶
Sent by the server when an ignore have been added.
More information can be found in Ignore List section.
S -> C
request_number: 563
field_name: async_ignore_added_request
In response to:
Field |
Type |
Description |
---|---|---|
added_ignore |
The |
AsyncIgnoreList¶
This represents a list of ignored players.
Field |
Type |
Description |
---|---|---|
ignore |
AsyncIgnore information list of the players being ignored |
|
player |
Player information of the ignored users, order is not guaranteed to be the same as the |
AsyncIgnoreListContentRequest¶
Sent in response to a given AsyncIgnoreListRequest.
More information can be found in Ignore List section.
S -> C
request_number: 561
field_name: async_ignore_list_content_request
In response to:
Field |
Type |
Description |
---|---|---|
ignores |
The current full ignore list (filtered if asked to) |
AsyncIgnoreListRequest¶
Sent by the client to fetch the user ignore list.
More information can be found in Ignore List section.
C -> S
request_number: 560
field_name: async_ignore_list_request
Possible Responses:
AsyncIgnoreManagementRequest¶
Sent by the client to add or remove a buddy. A player cannot add herself to her own ignore list.
More information can be found in Ignore List section.
C -> S
request_number: 562
field_name: async_ignore_management_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
operation |
Operation to perform |
|
ignore |
Ignored player the operation applies to |
AsyncIgnoreRemovedRequest¶
Sent by the server when an ignore has been removed.
More information can be found in Ignore List section.
S -> C
request_number: 564
field_name: async_ignore_removed_request
In response to:
Field |
Type |
Description |
---|---|---|
removed_ignore |
The |
AsyncUnlinkDeviceRequest¶
Sent by the client to unlink a device from the current active session. The idea is that if a user logs out from her client and logs in with a different DoW account, we would have the same device token id pointing to different accounts. Thus it is possible that a given device receive notification for a different user, which is bad.
More information can be found in Logging out section.
C -> S
request_number: 412
field_name: async_unlink_device_request
Possible Responses:
ErrorRequest: UNKNOWN_DEVICE_TOKEN (6)
Field |
Type |
Description |
---|---|---|
device |
The device to unlink from the player session |
ChatHistoryEntry¶
An entry of a chat history.
More information about the chat can be found in Chat section.
Field |
Type |
Description |
---|---|---|
from |
Sender name |
|
text |
Chat message |
|
player_id |
For in game chat history it’s the local game id, if from the lobby it’s the global id |
|
timestamp |
Unix epoch in millis when the server received the message. |
|
code |
Message code when using premade messages. |
ClientChatBlockedRequest¶
Sent to the MulticastChatRequest sender if her message has been blocked or if she’s been muted.
More information can be found in Chat section.
S -> C
request_number: 526
field_name: client_chat_blocked_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id (might be 0 if coming from the lobby) |
|
text |
Text chat |
|
sender |
The sender player |
|
muted |
After sending profanities, the sender might be muted
for an arbitrary time. If
muted is true , the client has been muted.Note: the server never tells a given client it has been unmuted
|
|
blocked |
This sender can be administratively blocked (prevented to chat) (community management), in this case
if she’s blocked (check the blocked and banned field in the PBGame.Player message after authentication)
|
|
code |
Code of the premade message sent (if multicast a code) |
|
recipient_ids |
Recipient of the message (if specified by the original multicast chat) |
ClientChatHistoryRequest¶
Sent to in response to GetChatHistoryRequest
More information about the chat can be found in Chat section.
S -> C
request_number: 536
field_name: client_chat_history_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id (might be |
|
entry |
Chat entries in chronological order |
ClientChatRequest¶
Sent by the server in response to a MulticastChatRequest to the players of the game game_id
as long as they were listed in MulticastChatRequest.recipient_ids
(or to all players if recipient_ids
is empty).
More information can be found in Chat section.
S -> C
request_number: 525
field_name: client_chat_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id (might be |
|
text |
Text chat |
|
sender |
The sender player |
|
profanity |
|
|
code |
Code of the premade message sent (if multicast a code) |
|
recipient_ids |
Recipient of the message (if specified by the original multicast chat) |
ClientDataRequest¶
When one of the player sent a MulticastDataRequest the server will send back a ClientDataRequest to the multicast clients.
More information can be found in Multicast section.
S -> C
request_number: 503
field_name: client_data_request
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
data |
Any data that was sent by the sender |
|
sender |
Sender player |
ClockPausedRequest¶
Sent by the server when the clock has been paused.
S -> C
request_number: 543
field_name: clock_paused_request
Field |
Type |
Description |
---|---|---|
game_id |
Game id |
|
clock |
Optional list of all player clocks |
|
error |
If an error occurs, this field is set. Otherwise it’s not |
ClockResumedRequest¶
Sent by the server when the player clock is resumed
S -> C
request_number: 545
field_name: clock_resumed_request
Field |
Type |
Description |
---|---|---|
game_id |
Game id |
|
clock |
Optional list of all player clocks |
|
error |
If an error occurs, this field is set. Otherwise it’s not |
ClocksStatusRequest¶
Sent by the server in response to the GetClocksRequest.
More information can be found in Player Clocks Status section.
S -> C
request_number: 547
field_name: clocks_status_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
Game id the clocks are running in |
|
clock |
List of all player clocks in the game |
CommitActionRequest¶
When a player has finished her action, she sends a CommitActionRequest with the current game state and the list of next active players in turn.
More information can be found in Standard Game Turn, Simultaneous Game Turn or Interruptions sections.
C -> S
request_number: 501
field_name: commit_action_request
In response to:
Possible Responses:
ErrorRequest: NOT_YOUR_TURN (1)
ErrorRequest: UNKNOWN_PLAYER (2)
ErrorRequest: UNKNOWN_GAME (3)
ErrorRequest: YOU_FORFEITED (7)
ErrorRequest: YOU_RAN_OUT_OF_TIME (8)
ErrorRequest: YOU_LEFT (9)
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
player_id |
Local player id of the acting player.
In case of a robot hosted on a different
player device, this should be the robot
impersonating local player id
|
|
next_state |
The next game state |
|
next_player_ids |
The ordered list (in action order) of the next player ids.
Please provide as much players as possible for robot hotswap to work correctly
|
|
next_summary_data |
Summary data of the
next_state field.Will end up in the
StatusReport.summary_data of this game.If not provided (or with empty bytes), the next
StatusReport.summary_data won’t be provided(this can be used to clear the summary data if needed)
|
|
turn_index |
The turn index this action is supposed to played in.
It is recommended to provide it, the correct value is given by the last ActionRequiredRequest / PlayerTimeoutRequest and others
|
|
next_simultaneous |
Is the next turn a simultaneous turn? |
|
simultaneous_players |
List of players required to play for the simultaneous turn |
|
broadcast |
Set to |
|
interruption_window_duration |
Duration (in ms) for which the previous action can be interrupted by the players defined in
interruption_player array.If 0, the action is not interruptible
|
|
interruption_player |
Which players are authorized to interrupt the previous action |
|
pause_time |
Next player’s clock will start after this delay (in seconds) |
|
idle_time |
Set a duration in seconds to override the game configuration
idle_time (for this action see GameConfiguration).Set zero to use default timer if enabled in game configuration; this field has no impact if there is no game configuration
idle_time defined. |
EngageGameWithFriendsRequest¶
Start an invitation to a list of friends. In return a GameCreatedRequest is sent back.
More information can be found in Invitation section.
C -> S
request_number: 405
field_name: engage_game_with_friends_request
Possible Responses:
ErrorRequest: INVITATION_DENIED (13)
Field |
Type |
Description |
---|---|---|
friends |
Friends global id (add
0 to invite robots).Unless specified the server doesn’t accept an empty list or a list with only robots
|
|
configuration |
Game configuration.
Note: not all settings in configuration are valid for an invitation game
(like for instance
private or name ) |
|
user_data |
This specific user data for this game.
This can be used to encode this player capabilities
|
|
initial_state |
In case you need to have an initial state
(ie game data) when the first player
has to play, fill this field
|
|
initial_summary_data |
If you need to have an initial summary, for display purposes |
EnterLobbyRequest¶
Sent by the client when it wants to enter the lobby. This automatically subscribes the client to the following streams:
chat messages
player list updates
games offer updates
More information can be found in Entering section.
C -> S
request_number: 600
field_name: enter_lobby_request
Possible Responses:
ErrorRequest: PLAYER_ALREADY_IN_LOBBY (10)
ErrorRequest¶
Sent in response to a client request that generated an error.
S -> C
request_number: 505
field_name: error_request
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id.
Might be
0 for errors not pertaining to a game |
|
code |
Error code. If |
|
msg |
Error message if any |
|
turn_index |
The current turn index if in a game |
|
player_id |
The player who sent the original request when in a game |
ExitLobbyRequest¶
Sent by the client when it wants to exit the lobby. This automatically unsubscribes the client from all the streams of lobby updates.
More information can be found in Exiting section.
C -> S
request_number: 602
field_name: exit_lobby_request
Possible Responses:
GameAbortedConfirmationRequest¶
Sent by a client to validate it showed the abort to the players.
Once all players sent this, the game will go from ABORTING
state to ABORTED
.
C -> S
request_number: 531
field_name: game_aborted_confirmation_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
player_id |
The local player id that confirms the game outcome |
GameAbortedRequest¶
Sent by the server if there’s no player (all timed out, or all withdrawn) to keep the game alive.
The server goes in ABORTING
state, and players will all have to send GameAbortedConfirmationRequest.
More information can be found in Abort section.
S -> C
request_number: 530
field_name: game_aborted_request
In response to:
A player timed out, and no human active players left in the game
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
aborting_player_ids |
List of local player ids of the offenders |
|
ranking_update |
This contains the ranking change for the players |
|
karma_update |
Contains the increase/decrease of karma of a given player global id |
|
data |
Custom game data to be sent to other players |
GameClock¶
Represents a given in game player clock.
Field |
Type |
Description |
---|---|---|
started_at |
When the player first turn started (in milliseconds since unix epoch) |
|
last_started_at |
When this player clocks started last (in milliseconds since unix epoch) |
|
remaining |
How many milliseconds this player has before the clock exhausts |
|
duration |
How many milliseconds players are allowed to play for a full game |
|
armed |
Is the clock ticking? |
|
timestamp |
Timestamp of the message in number of milliseconds since the Unix epoch |
|
paused |
True when this clock has been paused |
GameConfiguration¶
Represents a given game configuration.
Field |
Type |
Description |
---|---|---|
name |
Valid only for lobby games |
|
private |
Private games must have a password filled - valid only for lobby games |
|
lurkable |
Is this game observable? Who can observe this game
is defined in the
observable_by field |
|
rated |
Ranked game or not |
|
min_players |
Minimum number of players for this game.
It’s best to put
min and max at the same valueValid only for lobby games
|
|
max_players |
Maximum number of players for this game.
It’s best to put
min and max at the same valueValid only for lobby games
|
|
min_karma |
Minimum karma to be able to join this game |
|
first_player |
This will contain the human player seat number 1-based robot excluded.
If 0, that means choose randomly
|
|
game_mode |
Type of game.
Note: for invitation game, this mode is ignored
as the game will default to
ASYNCHRONOUS |
|
timeout |
The player timer (in seconds) |
|
data |
Specific game data
(to support options specific to a given game, like SW auto-redeploy)
|
|
require_first_user_data_round |
If
true , this game type requires that the server initiates a first round where all playershave to send their own user-data; aka a first simultaneous turn
and the merger will be the
first_player . |
|
observable_by |
Who is allowed to observe this game |
|
min_rankscore |
Minimum of rank score to be able to join this game |
|
main_variant |
Contains the main variant of this game for computing ranking, you can pass an empty string if you want (if you have no variant).
Please note that the underscore (‘_’) character is not allowed in variant names. If variant contains this character, it will be treated as the overall variant
|
|
extra_ranking_variants |
Contains the extra variants for computing additional rankings.
Even if there are some entries here,
we’ll still compute the default variant ranking (ie ‘TT’ or ‘SW’).
This field is optional for games without any variant.
Please note that the underscore (‘_’) character is not allowed in variant names. If a variant contains this character, it will be treated as the overall variant
|
|
rules_engine_version |
Rules engine version, used to manage multiple versions of the game client.
The server does not enforce version checks: it is the responsibility of the client to
ensure it supports this given version before allowing the player to join this game
|
|
idle_time |
Set a duration in seconds for which the player is allowed to play her turn before being replaced by a robot (for this action).
Set zero to disable this timer, in which case only the player clock will be used.
|
GameCreatedRequest¶
Confirmation that a game has been created.
If the game is an invitation, all clients need to accept or decline it by sending an AnswerInvitationRequest.
An invitation game can be detected by having invited_by
containing the local_id
of the inviter (usually first entry of the players list).
Note also that you can access the game configuration through the details field.
More information can be found in Starting the Game section.
S -> C
request_number: 404
field_name: game_created_request
In response to:
LobbyJoinGameRequest: when last player joins
LobbyStartGameRequest: early start
Field |
Type |
Description |
---|---|---|
local_player_id |
Your local player id |
|
invited_by |
This will the local id if the game resulted from an invitation from this player.
This will be 0 if the game is a lobby game
|
|
details |
Full details about this created game |
GameDetails¶
Represents a given Game
.
Field |
Type |
Description |
---|---|---|
game_id |
The game reference |
|
players |
Players in the game |
|
configuration |
Original game configuration |
|
user_data |
Contains all the players user data sent in LobbyJoinGameRequest or LobbyCreateGameRequest |
GameForfeitRequest¶
Sent by the player when she wants to withdraw definitely from the current game. This might abort the whole game if all players have timed out, forfeited or left, in which case the clients will receive a GameAbortedRequest after receiving a GameForfeitedRequest.
More information can be found in Forfeit section.
C -> S
request_number: 513
field_name: game_forfeit_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
ErrorRequest: NOT_YOUR_INVITATION (11)
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
GameForfeitedRequest¶
Sent by the server upon reception of a GameForfeitRequest to all the connected players, or if all players in a game have timed out.
More information can be found in Forfeit section.
S -> C
request_number: 514
field_name: game_forfeited_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
player_id |
The player that forfeited or aborted the game |
|
aborted |
|
GameList¶
List of Games, as used in the LobbyGameListRequest and ObservableGameListRequest.
Field |
Type |
Description |
---|---|---|
games |
List of games |
GameNotification¶
This is the message that will be sent to the async players (ie players not connected to the server) as the payload
parameter
of the push notification when something happens in the game.
Note: the actionKey
, localizedKey
and localized
arguments of a notification are configured in the server configuration file.
Field |
Type |
Description |
---|---|---|
game_id |
The ID of the game this notification was sent for |
|
event |
Type of notification |
|
turn_index |
The current turn index if in a game |
|
recipientDowId |
Global player id of the recipient (to discard misplaced notifications) |
GameObservedRequest¶
Sent by the server after receiving a StartObserveGameRequest or a StopObserveGameRequest.
More information can be found in Observing a Game or Game Observation section.
S -> C
request_number: 652
field_name: game_observed_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
The game to observe / stop observing |
|
status |
If OK, the observe starts (or stops),
otherwise it fails with this status
|
|
game_status |
The latest known game status,
this contains all the information about this game.
This is valid only if
status == OK |
GameOutcomeConfirmationRequest¶
Sent by a client to validate it displayed the outcome to the player.
More information can be found in Game Over section.
C -> S
request_number: 522
field_name: game_outcome_confirmation_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
player_id |
The local player id that confirms the game outcome |
GameOutcomeRequest¶
Sent by the server to all present players after receiving a GameOverRequest. It allows the client to display ranking updates, achievements earned, final scores. Non present players can get access to the same information in the game status report from a WhatsNewPussycatRequest.
More information can be found in Game Over section.
S -> C
request_number: 508
field_name: game_outcome_request
In response to:
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
ranking_update |
This contains the ranking change for the players,
note there can be more than one entry per player
if you submitted more than one variant in the GameOverRequest
|
|
achievements_awarded |
This contains the list of awarded achievements per player |
|
karma_update |
Contains the increase/decrease in karma of a given player global id |
|
data |
Custom game data to be sent to other players |
GameOverRequest¶
Sent by the last playing player to the server with the game results to signal that the game is over.
The game will then be in state Outcome
and send back GameOutcomeRequest.
Upon a timeout or reception of GameOutcomeConfirmationRequest of all players, then
the game will be in GameOver
state and won’t be reported to WhatsNewPussycatRequest anymore.
More information can be found in Game Over section.
C -> S
request_number: 507
field_name: game_over_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
achievements_awarded |
This contains the list of awarded achievements per player |
|
data |
Custom game data to be sent to other players |
|
finalScores |
Winners.
This field is mandatory for all players
|
|
is_ranked |
Is that game ranked finally?
This member is deprecated: please use
GameConfiguration.rated instead |
|
variants |
Contains the extra variants
for computing additional rankings, even if there are some entries here,
we’ll still compute the default variant ranking (ie ‘TT’ or ‘SW’).
You can still pass it as an empty string if you want.
This member is deprecated, please provide variants directly in GameConfiguration
|
GameStateUpdatedRequest¶
Sent by the server when it receives a CommitActionRequest
from a player when the broadcast parameter is set to true
.
It is sent to all the present players and observers.
S -> C
request_number: 568
field_name: game_state_updated_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id
|
|
player_id |
Local player id of the acting player.
In case of a robot hosted on a different
player device, this should be the robot
impersonating local player id
|
|
turn_index |
Monotonically incremented turn index after each round by the server, this should allow
the client to know which request it should act on.
It has the same value as provided in last CommitActionRequest, if correct
|
|
state |
Current state of the game after last action |
|
interruption_window_duration |
Define interruption window time frame (ms) of the interruptible turn for the previous action |
|
interruption_player |
Which players are authorized to interrupt the previous action |
|
clock |
List of all player clocks |
GameStatusReportRequest¶
Sent by the server in response to a WhatsNewPussycatRequest
More information can be found in Current Games Information section.
S -> C
request_number: 512
field_name: game_status_report_request
In response to:
Field |
Type |
Description |
---|---|---|
reports |
All the game statuses |
GameUserDataUpdatedRequest¶
Sent by the server when it receives an UpdateUserDataRequest
from a player when the broadcast parameter is set to true
.
It is sent to all the present players and observers.
More information can be found in Simultaneous Game Turn section.
S -> C
request_number: 569
field_name: game_user_data_updated_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id
|
|
player_id |
Local player id of the acting player.
In case of a robot hosted on a different
player device, this should be the robot
impersonating local player id
|
|
turn_index |
Monotonically incremented turn index after each round by the server, this should allow
the client to know which request it should act on.
It has the same value as provided in last CommitActionRequest, if correct
|
|
user_data |
Current user data if in simultaneous turn
|
GetChatHistoryRequest¶
Sent to retrieve the chat history of the lobby or of a game.
More information about the chat can be found in Chat section.
C -> S
request_number: 535
field_name: get_chat_history_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id (set |
GetClocksRequest¶
Sent by the client when one client wants to get the values of the player clocks.
More information can be found in Player Clocks Status section.
C -> S
request_number: 546
field_name: get_clocks_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
Game id to retrieve clocks from |
InterruptActionErrorRequest¶
Sent by the server when an error occurred during the interruption.
S -> C
request_number: 573
field_name: interrupt_action_error_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
The game in which this interruption has failed |
|
error_code |
The error type |
InterruptActionRequest¶
Sent by the client during interrupted turn.
More information can be found in Interruptions section.
C -> S
request_number: 570
field_name: interrupt_action_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id
|
|
player_id |
Local id of the player interrupting the action
|
|
turn_index |
Turn index, as provided by ActionCommitedRequest
|
|
interruption_data |
Interruption is done with this data. It will be relayed by ActionInterruptedRequest, and when asking to merge with an ActionRequiredRequest
|
|
no_more_interruption |
If
true , the server will stop the interruption phase after receiving this interruption. |
InterruptionOverRequest¶
Sent by the server to inform the end of the interruption period for this turn.
More information can be found in Interruptions section.
S -> C
request_number: 572
field_name: interruption_over_request
Field |
Type |
Description |
---|---|---|
game_id |
The game id where this event happened |
|
turn_index |
The turn index at which the interruption turn ends |
InvitationAnsweredRequest¶
Sent by the server to all participants in the invitation each time one of the players sends an AnswerInvitationRequest.
More information can be found in Invitation section.
S -> C
request_number: 541
field_name: invitation_answered_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
Game id of the accepted/declined invitation |
|
accept |
|
|
invitee |
Player that accepted or refused this invitation |
InvitationDetails¶
Information about an invitation.
Field |
Type |
Description |
---|---|---|
invited_by |
Player local id of the inviter (in the list of the players of the game) |
|
confirmation |
List of players that accepted (or declined) the invitation.
A player not listed means that she didn’t yet confirm or decline
|
|
timeout |
How long this invitation is valid for (in seconds).
Add this to
game_started_at to know if it’s expired or not |
InvitationDetails.Confirmation¶
Field |
Type |
Description |
---|---|---|
player_id |
Local ID of the player who answered the invitation |
|
accepted |
|
KarmaUpdate¶
Give the change in karma of a given player_id
at the end of game.
Field |
Type |
Description |
---|---|---|
player_id |
Global ID of the player whose karma has been updated |
|
old_karma |
The previous value of the karma |
|
new_karma |
The current value of the karma, according to game outcome and player behavior during the game |
LeaveSyncGameRequest¶
Sent by the client to leave a synchronous game. This will allow the server to schedule a robot for this player. In response the server will broadcast a PlayerReplacedRequest.
C -> S
request_number: 538
field_name: leave_sync_game_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
The game where this event happened |
LobbyCreateGameRequest¶
Create an open game in the lobby for other players to join.
The player must be in the lobby first.
Note: this request might fail if the player has too many games in progress, in which case
the server will return an ErrorRequest with error TOO_MANY_OFFERS
.
More information can be found in Creating an Open Game section.
C -> S
request_number: 607
field_name: lobby_create_game_request
Possible Responses:
ErrorRequest: TOO_MANY_OFFERS (5)
Field |
Type |
Description |
---|---|---|
configuration |
Game configuration where to specify
number of players, private data, etc…
|
|
password |
Optional password to be used only when the game is private.
A blank password is considered as ‘no password’
|
|
user_data |
This specific user data for this game.
This can be used to encode this player capabilities
|
|
initial_state |
In case you need to have an initial state (ie game data) when the first player
has to play, fill this field
|
|
initial_summary_data |
If you need to have an initial summary, for display purposes |
LobbyEnteredRequest¶
Sent by the server to confirm that the client entered the lobby in response to EnterLobbyRequest.
More information can be found in Entering section.
S -> C
request_number: 601
field_name: lobby_entered_request
In response to:
LobbyExitedRequest¶
Sent by the server to confirm that the client has exited the lobby.
More information can be found in Exiting section.
S -> C
request_number: 603
field_name: lobby_exited_request
In response to:
LobbyGameCreatedRequest¶
Sent by the server after receiving a LobbyCreateGameRequest for confirmation that the operation succeeded.
More information can be found in Creating an Open Game section.
S -> C
request_number: 608
field_name: lobby_game_created_request
In response to:
Field |
Type |
Description |
---|---|---|
game |
All the information about the given created game |
LobbyGameListRequest¶
Sent by the server from time to time to send the currently open game list.
More information can be found in Open Game List section.
S -> C
request_number: 609
field_name: lobby_game_list_request
Field |
Type |
Description |
---|---|---|
game_list |
This is a ‘Deflate’ compressed version of the GameList message,
check zlib for a native deflate implementation
|
LobbyJoinDeniedRequest¶
Sent to the joining player if the server denies the join.
More information can be found in Joining an Open Game section.
S -> C
request_number: 612
field_name: lobby_join_denied_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
Game to join |
|
cause |
Cause of the denial |
LobbyJoinGameRequest¶
Join an open game in the lobby. The player must be in the lobby first. This request can return a LobbyJoinDeniedRequest if joining is denied for instance if:
player hasn’t enough Karma
game is full
player gave an incorrect private game password
player is in the game creator ignore list
player hasn’t enough rank score
More information can be found in Joining an Open Game section.
C -> S
request_number: 610
field_name: lobby_join_game_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
Game to join |
|
password |
Optional password to be used only when the game is private |
|
user_data |
This specific user data for this game. This can be used to encode this player capabilities |
LobbyLeaveGameRequest¶
Sent by the client to leave a waiting open game.
More information can be found in Leaving an Open Game section.
C -> S
request_number: 613
field_name: lobby_leave_game_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
Game to leave |
LobbyNewPlayerRequest¶
Sent to all the players present in the game (and the joining player) when a player joins a given game and she succeeds.
More information can be found in Joining an Open Game section.
S -> C
request_number: 611
field_name: lobby_new_player_request
In response to:
Field |
Type |
Description |
---|---|---|
game |
Joined game (includes all the players) |
|
joining_player |
Unique global id of the player that just joined the game (it should normally be always the last player of |
LobbyPlayerInfoRequest¶
Sent by the server in response of the AskPlayerInfoRequest when in the lobby. It contains the full details of a given player.
More information can be found in Player Information section.
S -> C
request_number: 606
field_name: lobby_player_info_request
In response to:
Field |
Type |
Description |
---|---|---|
player |
The player information asked from AskPlayerInfoRequest in the lobby.
This field can be omitted if the given player is not in the lobby
|
LobbyPlayerLeftGameRequest¶
Sent by the server in response to the LobbyLeaveGameRequest to all the players in the game and the leaving player.
More information can be found in Leaving an Open Game section.
S -> C
request_number: 614
field_name: lobby_player_left_game_request
In response to:
Field |
Type |
Description |
---|---|---|
game |
Game the player just left |
|
leaving_player |
Leaving player |
LobbyPlayerListRequest¶
Sent by the server from time to time to send the whole list of Players in the lobby.
Note that the player_list
field is a byte array resulting of the compression
of the PlayerList
message.
More information can be found in Player List section.
S -> C
request_number: 604
field_name: lobby_player_list_request
Field |
Type |
Description |
---|---|---|
player_list |
This is a ‘Deflate’ compressed version of the LobbyPlayerListRequest.PlayerList message,
check zlib for a native deflate implementation
|
LobbyPlayerListRequest.PlayerList¶
List of players
Field |
Type |
Description |
---|---|---|
players |
Simplified players |
LobbyStartGameDeniedRequest¶
Sent to the player if the server denies the start of the game.
More information can be found in Starting the Game section.
S -> C
request_number: 616
field_name: lobby_start_game_denied_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
Game to start |
|
cause |
Cause of the denial |
LobbyStartGameRequest¶
Sent by the client to start early a game irrespective of the
GameConfiguration.max_players
(this means that one can start
a lobby game before this one is complete).
Only the game creator can start the game. It is not possible to start a game containing only the creator.
This request can return a LobbyStartGameDeniedRequest if starting is denied for instance if:
not enough player
game is unknown
another player tries to start the game instead of creator
More information can be found in Starting the Game section.
C -> S
request_number: 615
field_name: lobby_start_game_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
Game to start |
|
fillWithRobots |
Fill with robot, you can choose to add to the max the remaining spot with a robot |
|
data |
Override game configuration data (specify which bot level, color, …) |
MulticastChatRequest¶
Sends a chat to the server, the server will then multicast the text to the other players in
the given game. If no game_id
is given, then the chat message is sent to the lobby (provided the connected user
entered the lobby).
The code parameter indicates a premade message id. When using codes, please also
provide a text value in default locale so that older clients can display something. Codes
between 1 and 255 are reserved, use a higher value. The code 0
means the message was not
a premade message.
More information can be found in Chat section.
C -> S
request_number: 524
field_name: multicast_chat_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id (do not fill to send to the lobby) |
|
text |
Text chat |
|
recipient_ids |
List of local player ids that will receive the data for non empty
game_id .List of global player ids that will receive the data for empty
game_id (ie lobby)If empty, then the chat is broadcast to all the players present
|
|
code |
Code for premade messages, please also provide the text in default locale.
Codes between 0 and 255 are reserved
|
MulticastDataRequest¶
A player can decide to send arbitrary data to a set or subset of the players in the same game.
More information can be found in Multicast section.
C -> S
request_number: 502
field_name: multicast_data_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
data |
Any data that will be sent verbatim to the recipient_ids |
|
recipient_ids |
List of local player ids that will receive the data |
|
present_players_only |
Filter out people that are not ‘present’ at the moment.
If
false , then absent users will be notified by a push notification |
ObservableGameListRequest¶
Sent by the server on a regular basis to client that subscribed to it.
More information can be found in Observable Game List section.
S -> C
request_number: 622
field_name: observable_game_list_request
Field |
Type |
Description |
---|---|---|
game_list |
This is a ‘Deflate’ compressed version of the GameList message,
check zlib for a native deflate implementation
|
PlayerIdleProgressRequest¶
If an idle timer was set in game configuration, the server will send this request regularly to inform of the idle timer progress.
S -> C
request_number: 509
field_name: player_idle_progress_request
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
player_ids |
Local ids of players that should play and still made no action |
|
progress |
Percentage of the timer that has been consumed (between 0 and 100) |
|
initial |
Current idle timer configured from New game or CommitRequest |
|
remaining |
Approximate time remaining for this idle timer: initial * (100 - progress) / 100 |
PlayerInfoRequest¶
Sent by the server in response of the AskAnyPlayerInfoRequest when not in lobby. It contains the full details of a given player.
S -> C
request_number: 631
field_name: player_info_request
In response to:
Field |
Type |
Description |
---|---|---|
player |
The player information asked from AskAnyPlayerInfoRequest outside of lobby |
PlayerPregameData¶
Contains specific opaque data per player (like capabilities) that can be sent when joining/starting a game or accepting an invitation.
Field |
Type |
Description |
---|---|---|
player_id |
Global player id |
|
data |
This player opaque data |
PlayerPresenceUpdateRequest¶
Sent by the server when one or more player presence status changes. In the current implementation, this message will contain only one presence status change (ie for only one given player).
The presence mechanism is a best effort system, so it can happen that presence/absence messages are sent while in fact the player is indeed absent/present. The client needs to keep presence information, and update presence or absence indicators based on this message (and also if it receives multicast data from a given sender).
All present/absent ids are local id to the game Presence update time resolution is 5s by default, so presence won’t be noticed until this delay.
More information can be found in Presence section.
S -> C
request_number: 506
field_name: player_presence_update_request
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
present |
Those players local-game-id are now present |
|
absent |
Those players local-game-id are now absent |
|
in_game |
Valid when
game_id is set, contains the set of players that declared being inside this game_id by sending a SwitchedToGameRequest
|
PlayerReplacedRequest¶
Sent by the server when a player has been replaced by a robot, or when the player comes back (in Synchronous games).
More information can be found in Robots section.
S -> C
request_number: 537
field_name: player_replaced_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
The game where this event happened |
|
player_id |
Local id of the player that has been replaced or replaces |
|
become_robot |
|
|
status |
Does this player timed out or forfeited?
Valid only when
become_robot is true |
PlayerTimeoutRequest¶
If the server never got a CommitActionRequest from the “active player” in the required time, or this player forfeited, this message is sent to the next player in turn with the hope that it could ever implement a bot that could take this player’s turn.
More information can be found in Robots section.
S -> C
request_number: 504
field_name: player_timeout_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
state |
Last game state before timeout |
|
offender_id |
Local player id of the player that timed out |
|
players |
List of players (in no particular order) in this game |
|
next_player_ids |
List of the next player local ids in turn
(the receiving player will be the first one)
|
|
status |
Does this player timed out or forfeited? |
|
turn_index |
Monotonically incremented turn index after each round by the server, this should allow
the client to know which request it should act on.
It has the same value as provided in last CommitActionRequest, if correct
|
|
game_status |
Whether we’re |
|
user_data |
User-data sent during simultaneous turn:
in case the ActionRequiredRequest merger did not respond,
a robot will have to perform the merge of all user data
in the latest state
|
|
interruption_data |
Interruption-data sent during interruption turn,
in case the ActionRequiredRequest merger did not respond,
a robot will have to perform the merge of all interruption data
in the latest state
|
RegisterPresenceRequest¶
Sent by the client to monitor the presence of a set of players. Once sent and when subscribed to the presence system, the client will receive presence changes for those players.
More information can be found in Presence section.
C -> S
request_number: 527
field_name: register_presence_request
Field |
Type |
Description |
---|---|---|
player_ids |
List of global player ids to monitor presence of |
ResumeSyncGameRequest¶
Sent by the client to rejoin a left game. In response the server will broadcast a PlayerReplacedRequest.
C -> S
request_number: 539
field_name: resume_sync_game_request
Possible Responses:
ErrorRequest: UNKNOWN_GAME (3)
Field |
Type |
Description |
---|---|---|
game_id |
The game where this event happened |
ServerStatisticsRequest¶
Sent by the server during statistics broadcast, or after an initial AskServerStatisticsRequest
More information can be found in Server Statistics section.
S -> C
request_number: 409
field_name: server_statistics_request
In response to:
Field |
Type |
Description |
---|---|---|
hosted_games |
Total number of games running |
|
players |
Total number of players engaged into those games |
|
connected_players |
Total number of players currently connected |
Session¶
Documentation can be found in Session section.
Field |
Type |
Description |
---|---|---|
id |
Server-assigned ID of a client session |
SmallPlayer¶
This is a smaller player structure than the regular Game.Player
,
this is used in the streaming of player lists.
If you want more information about a player, use AskPlayerInfoRequest.
Field |
Type |
Description |
---|---|---|
w_w_w_id |
Unique global id |
|
name |
Player name |
|
karma |
Player current karma |
|
rank_score |
Player current rank score (ex: 1500.00) |
|
rank |
Player current rank (ex: #1) |
|
nb_games |
Number of games played |
|
language |
Language code of this player |
|
partner_user |
Player’s partner information given at auth |
|
avatar |
Player avatar |
StartObserveGameRequest¶
Send this to observe a specific game. In return the server will send the GameObservedRequest, and if successful the stream of observed events as if the player was part of the game. To stop observing a game, send a StopObserveGameRequest.
More information can be found in Observing a Game or Game Observation section.
C -> S
request_number: 650
field_name: start_observe_game_request
Possible Responses:
GameObservedRequest: OK (1)
GameObservedRequest: IN_GAME_ERROR (2)
GameObservedRequest: NO_SUCH_GAME_ERROR (3)
GameObservedRequest: FORBIDDEN_ERROR (4)
GameObservedRequest: GAME_NOT_STARTED (5)
Field |
Type |
Description |
---|---|---|
game_id |
The game to observe |
StatusReport¶
Game full state.
More information can be found in Current Games Information section.
Field |
Type |
Description |
---|---|---|
game_id |
ID of the game this report describes |
|
status |
Game status |
|
data |
Current data of the game as last committed |
|
turn_id |
Local id of the player that must now play: ‘whose turn it is’.
turn_id might refer to a player in the timed_out_players list, in which case another player might play for her (see active_player ).The server has no preferences on the player that will play (anyone)
|
|
next_player_ids |
The ordered list (in action order) of the next player ids
as sent by the last commit action message (the first one should be
turn_id ) |
|
players |
List of players (in no particular order) in this game |
|
ranking_update |
This contains the ranking change for the players
if the game is over (for karma updates, see below)
|
|
achievements_awarded |
This contains the list of awarded achievements
per players if the game is over
|
|
turn_timeout |
A timeout for this turn - this is be the clamped value (in seconds)
sent during game creation
|
|
start_turn_time |
When the turn started for this player (in milliseconds unix timestamp).
This is in fact at which time we decided to send this message
|
|
turn_index |
Monotonically incremented turn index after each round by the server.
This should allow the client to know which request it should act on.
It has the same value as provided in last CommitActionRequest, if correct
|
|
forfeiters |
Local ids of the player that forfeited (ie withdrawn) |
|
timed_out_players |
All those players that have timed out in |
|
configuration |
This game configuration |
|
clock |
List of all player clocks |
|
active_player |
The player we actually expect an action from.
Usually it is the same as
turn_id , butthis ‘active player’ is requested to play for her in case she has :
* timed out (and thus is in
timed_out_players list)* forfeited (and thus is in
forfeiters list)* left (and thus is in
left_players list) |
|
left_players |
Local id of players that left a synchronous game
and that have been replaced by a robot
|
|
user_data |
Optionally sent user pre-game data. Each chunk of data comes from the respective user
LobbyCreateGame and LobbyJoinGame requests.Note that this list might be filled only during the first turn of the game
|
|
invitation |
Details about the invitation status. This is valid only when status is |
|
game_created_at |
Milliseconds since epoch time at which this game was created |
|
player_user_data_updated |
List of the local player id of players that already updated their user data,
in case of a game that has
require_first_user_data_round at true or SIMULTANEOUS turn |
|
summary_data |
The last published summary data. This data should be kept small and should be a public summary
of the data field to be displayed in things like game lists or small game summaries
To publish a summary data, fill in the
summary_data field in the CommitActionRequest |
|
outcome_not_seen |
List of the players that have not yet confirmed the outcome. The UI shouldn’t
present this game if the player is not in this list
|
|
karma_update |
Contains the increase/decrease of karma of a given player global id |
|
interruption_window_duration |
Interruption window time frame (ms) |
|
interruption_player |
Players authorized to do interruption action |
|
interruption_remaining_duration |
Estimated remaining duration time of the interruption window |
|
interruption_data |
When in an interruption turn: data already sent by interrupting players |
|
player_user_data_required |
List of the local player id of players that are required to update their user data,
with all players in case of a game that has
require_first_user_data_round at true or this list is coming from CommitActionRequest.simultaneous_players when the simultaneous turn started.
|
|
idle_players |
Local ids of the players that are considered idle (ie players that haven’t yet sent their response after the idle timer expired) |
StatusReport.PlayerClock¶
A given player clock. The player_id
is the local player id
Field |
Type |
Description |
---|---|---|
player_id |
Local id of the player |
|
clock |
Clock status of the player |
StopObserveGameRequest¶
Stop observing a game that the connected user was observing. This stops the stream of this game event.
More information can be found in Observing a Game or Game Observation section.
C -> S
request_number: 651
field_name: stop_observe_game_request
Possible Responses:
GameObservedRequest: OK (1)
GameObservedRequest: NO_SUCH_GAME_ERROR (3)
Field |
Type |
Description |
---|---|---|
game_id |
The game to observe |
SubscribePresenceServiceRequest¶
Sent by the client to start monitoring the presence of players given by RegisterPresenceRequest. Once sent, the client will receive AsyncBuddyPresencePartialUpdateRequest whenever the presence of one or more player changes.
More information can be found in Presence section.
C -> S
request_number: 532
field_name: subscribe_presence_service_request
SubscribeToObservableGameListRequest¶
Sent by the client to start receiving the observable game list stream.
More information can be found in Observable Game List section.
C -> S
request_number: 620
field_name: subscribe_to_observable_game_list_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
subscribe |
|
SubscribedToObservableGameListRequest¶
Sent by the server to confirm subscription or unsubscription.
More information can be found in Observable Game List section.
S -> C
request_number: 621
field_name: subscribed_to_observable_game_list_request
In response to:
Field |
Type |
Description |
---|---|---|
subscribed |
|
SwitchedToGameRequest¶
Sent by the client to inform the server presence system that the connected player just entered a specific game interface. Note: the server makes sure that the player can be only in one game at a time.
More information can be found in Switching to a Game section.
C -> S
request_number: 534
field_name: switched_to_game_request
Field |
Type |
Description |
---|---|---|
game_id |
The game id the player is switching to.
In the case where the player doesn’t enter a given game
but exits to another kind of UI, do not fill this value
|
UnregisterPresenceRequest¶
Sent by the client to stop monitoring the presence of a player.
More information can be found in Presence section.
C -> S
request_number: 528
field_name: unregister_presence_request
Field |
Type |
Description |
---|---|---|
player_ids |
List of global player ids to stop monitoring presence |
UnsubscribePresenceServiceRequest¶
Sent by the client to stop monitoring the presence of players given by RegisterPresenceRequest.
More information can be found in Presence section.
C -> S
request_number: 533
field_name: unsubscribe_presence_service_request
UpdateUserDataRequest¶
Sent by the client during Simultaneous turns to send data to the server.
More information can be found in Simultaneous Game Turn section.
C -> S
request_number: 566
field_name: update_user_data_request
Possible Responses:
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
user_data |
This specific user data for this game |
|
player_id |
Who to play for (in case of hotswap) |
|
expect_more_data |
Is this the last update?
If
true , then the player can send again a new user data which will replace the previously one sent.If
false , this concludes the user data round for this user.The default (
false ) is to conclude the transaction for this player |
|
broadcast |
Set to |
UserDataUpdateRequiredRequest¶
Sent by the server during Simultaneous turns to require user-data from players.
This happens during simultaneous turns, or a first user data round:
the server configuration for a game type specifies it (see reference.conf: first_user_data_round
).
Note that at this stage the game is in the state SIMULTANEOUS
or FIRST_USER_DATA_ROUND
.
More information can be found in Simultaneous Game Turn section.
S -> C
request_number: 565
field_name: user_update_data_required_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
System assigned game id |
|
turn_index |
The turn index this action is supposed to be played in. It is recommended to provide it. The correct value is passed in ActionRequiredRequest / PlayerTimeoutRequest / others |
|
participant |
Ids of players supposed to provide UserData during this simultaneous turn |
|
state |
Last game state |
|
pause_time |
The player’s clock will start after this delay (in seconds). This can be used to
give time to play animations of previous actions before starting decreasing clock.
|
UserDataUpdatedRequest¶
Sent by the server during Simultaneous turns to confirm user-data has been updated.
More information can be found in Simultaneous Game Turn section.
S -> C
request_number: 567
field_name: user_data_updated_request
In response to:
Field |
Type |
Description |
---|---|---|
game_id |
The game id where this event happened |
|
user_data |
This specific user data for this game |
|
player_id |
Who updated |
WhatsNewPussycatRequest¶
Sent by the client to get an up-to-date status of all data of either a given game or for all games this player is part of.
More information can be found in Current Games Information section.
C -> S
request_number: 511
field_name: whats_new_pussycat_request
Possible Responses:
Field |
Type |
Description |
---|---|---|
game_id |
If not transmitted (or 0) returns messages for all current games |
|
summary_data_only |
If
true (defaults to false ), the returned StatusReport will not provide data of the last CommitActionRequest, but only the summary_data .This is useful when you don’t need the whole data so you can request a smaller packet (for instance, for display purposes)
|
Enums¶
AsyncBuddyManagementRequest.Operation¶
Buddy management operation type
Name |
Number |
Description |
---|---|---|
NOOP |
0 |
Do not use |
ADD |
1 |
Add a player to the buddy list |
REMOVE |
2 |
Remove a player from the buddy list |
AsyncConnectionErrorRequest.ConnectionError¶
List of possible errors during connection/authentication
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
ACCESS_DENIED |
1 |
Wrong password or login |
SERVERFULL_ERROR |
2 |
Service is over-capacity, not accepting new connections |
MAINTENANCE_MODE |
3 |
Maintenance mode, not accepting new connections |
NEED_AUTHENTICATION |
4 |
No credentials provided |
UNKNOWN_GAME_TYPE |
5 |
This service doesn’t run this game |
SERVER_ERROR |
6 |
Unknown error from the server |
BANNED |
7 |
This player has been either temporarily or definitely banned |
AsyncIgnoreManagementRequest.Operation¶
Ignore list management operations
Name |
Number |
Description |
---|---|---|
NOOP |
0 |
Do not use |
ADD |
1 |
Add a player to the ignore list |
REMOVE |
2 |
Remove a player from the ignore list |
ErrorCode¶
List of possible errors.
Name |
Number |
Description |
---|---|---|
NO_ERROR |
0 |
No error was encountered, but the error field was mandatory |
NOT_YOUR_TURN |
1 |
Player tried to play but it was not her turn (or she was not in the list of possible players) |
UNKNOWN_PLAYER |
2 |
An invalid player local ID has been provided in a field |
UNKNOWN_GAME |
3 |
The provided game ID does not exist, or the player is not part of this game |
MAINTENANCE_MODE |
4 |
The server cannot respond due to temporary maintenance operation |
TOO_MANY_OFFERS |
5 |
The current player reached the maximum number of games concurrently running |
UNKNOWN_DEVICE_TOKEN |
6 |
Tried to perform an action on an unknown Token (or the Token is not bound to the current player) |
YOU_FORFEITED |
7 |
Sent in response to CommitActionRequest when player has already forfeited |
YOU_RAN_OUT_OF_TIME |
8 |
Sent in response to CommitActionRequest when player has no time left to play |
YOU_LEFT |
9 |
Sent in response to CommitActionRequest when player has left the game |
PLAYER_ALREADY_IN_LOBBY |
10 |
Sent in response to EnterLobbyRequest when sent multiple times |
NOT_YOUR_INVITATION |
11 |
Sent in response to a GameForfeitRequest of an invitation if sender is not inviter |
INVITATION_DENIED |
13 |
One of the invited player has the game creator in his ignore list - the invitation is automatically cancelled |
BAD_REQUEST |
14 |
The request had invalid parameters |
WRONG_STATE |
15 |
The request was sent while the game is in a different state that doesn’t know how to process it |
DUPLICATE_SESSION |
16 |
We’re aborting this connection because another session from a different device has opened for the same user |
PLAYER_NOT_IN_LOBBY |
17 |
The current request meant something if the player was in the lobby, but she’s not anymore, request is ignored |
INDEX_CONFLICT |
18 |
The provided turn index doesn’t match the current turn index |
GameConfiguration.GameMode¶
Type of game
Name |
Number |
Description |
---|---|---|
DEFAULT_MODE |
0 |
Do not use |
SYNCHRONOUS |
1 |
Synchronous game: leaving players are replaced by a robot |
ASYNCHRONOUS |
2 |
Asynchronous game: leaving players will not be replaced, active players’ clocks will keep running |
GameConfiguration.Observers¶
Type of observers
Name |
Number |
Description |
---|---|---|
DEFAULT_OBSERVERS |
0 |
Default is |
ALL |
1 |
Game is observable by every user not in a creator’s ignore list |
BUDDIES |
2 |
Game is only observable by creator’s buddies |
TOURNAMENT |
3 |
Not implemented - same as |
GameNotification.Event¶
Name |
Number |
Description |
---|---|---|
NO_EVENT |
0 |
Do not use |
YOUR_TURN |
1 |
Sent to the current player in a game |
GAME_OVER |
2 |
Sent to a player to inform her that the game ended. When all players saw the outcome, the game can be deleted |
YOUR_TURN_INVITE |
3 |
Sent to the current player of an invitation game |
YOUR_TURN_ROBOT |
4 |
Sent to the player selected to play a robot for another player |
CONFIRM_INVITATION |
5 |
Sent to a player that has been invited to a game so that she can confirm or deny the invitation |
INVITEE_ACCEPTED |
6 |
Sent to a player to inform her that an invitee confirmed the invitation |
INVITEE_DECLINED |
7 |
Sent to a player to inform her that an invitee denied the invitation |
GameObservedRequest.Status¶
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
OK |
1 |
Everything is ok |
IN_GAME_ERROR |
2 |
You’re already playing in this game |
NO_SUCH_GAME_ERROR |
3 |
There’s no game with this id |
FORBIDDEN_ERROR |
4 |
This game prevented observer to observe |
GAME_NOT_STARTED |
5 |
Game has been created, but is not yet started |
GAME_OVER |
6 |
Game is now over |
NOT_IN_LOBBY |
7 |
Cannot observe a game if not in lobby |
GameStatus¶
Game internal status.
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
IN_PROGRESS |
1 |
Game is running |
OVER |
2 |
Game is now over |
NOT_STARTED |
3 |
Game hasn’t started yet |
ABORTED |
4 |
Cause is player forfeited |
OUTCOME |
5 |
Game is not over yet, waiting for players to see the outcome |
PLAYER_TIMEOUT |
6 |
One (or more) player has timed out, someone needs to do something |
ABORTING |
7 |
Game is not over yet, waiting for player to see the abort notification |
WAITING_INVITATION |
8 |
Game still waits for some player confirmation |
FIRST_USER_DATA_ROUND |
9 |
For game that requires a special first user data round, it is the first state after |
SIMULTANEOUS |
10 |
Game is in a simultaneous turn |
INTERRUPTIBLE |
11 |
Game is in an interruption turn |
InterruptActionErrorRequest.Error¶
Possible errors returned by the server when failing to perform an interruption
Name |
Number |
Description |
---|---|---|
UNKNOWN |
0 |
An unknown error occurred |
BAD_STATE |
1 |
Provided empty interruption data |
INDEX_CONFLICT |
2 |
Wrong |
FORBIDDEN |
3 |
Player is not allowed to interrupt the previous action |
LobbyJoinDeniedRequest.JoinError¶
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
SERVER_ERROR |
1 |
The server experienced an unexpected error |
NOT_ENOUGH_KARMA |
2 |
The minimum karma requirement as defined in configuration is not fulfilled |
TOO_MANY_GAMES |
3 |
The joining player already has the maximum number of games concurrently running for a single player |
GAME_FULL |
4 |
The game’s maximum number of player has already been reached |
IGNORED |
5 |
Tried to join a game where a player ignores the joining user |
PASSWORD_MISMATCH |
6 |
The provided password does not match the game password |
UNKNOWN_GAME |
7 |
There is no such open game ID in the Lobby |
PLAYER_DUPLICATE |
8 |
The joining player already is in the game’s player list |
ACCESS_DENIED |
9 |
Player is not authorized to join this game |
NOT_ENOUGH_RANKSCORE |
10 |
The minimum rankscore requirement as defined in configuration is not fulfilled |
NOT_ENOUGH_RANKED_GAMES_PLAYED |
11 |
The minimum number of ranked games played required required by the configuration is not reached |
LobbyStartGameDeniedRequest.StartError¶
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
SERVER_ERROR |
1 |
The server experienced an unexpected error |
UNKNOWN_GAME |
2 |
Tried to start a game ID unknown to the server |
NOT_ENOUGH_PLAYER |
3 |
Not enough players to start the game (check GameConfiguration.min_players) |
ACCESS_DENIED |
4 |
If another player tries to start instead of creator |
PlayerTimeoutRequest.PlayerStatus¶
Status of an hot-swapped player
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
TIMEOUT |
1 |
Player ran out of time |
FORFEIT |
2 |
Player withdrew from the game |
LEFT |
3 |
Player left the game |
ROBOT |
4 |
Player is in fact a robot |
IDLE |
5 |
Player was inactive during her last turn |
common.proto¶
Messages¶
PartnerToken¶
Session token authentication.
More information can be found in Authentication with an OAuth2 access token section.
Field |
Type |
Description |
---|---|---|
sessionToken |
Use to authenticate with an |
|
partner_user |
User information relative to partner account |
game.proto¶
Messages¶
AccessRights¶
Field |
Type |
Description |
---|---|---|
rights |
Specific rights relative to a player |
AccessRights.Right¶
Field |
Type |
Description |
---|---|---|
name |
Name of the right |
|
feature |
Content of the right for the player |
Achievement¶
Field |
Type |
Description |
---|---|---|
id |
Unique ID of the achievement |
|
name |
Title of the achievement |
|
description |
Description of the achievement |
|
type |
Kind of achievement |
|
status |
Current usage of the achievement |
|
secret |
If the description should be hidden |
|
tag |
Alphanumerical unique identifier |
AchievementUpdate¶
Field |
Type |
Description |
---|---|---|
achievement_updates |
List of awarded achievements |
Activity¶
Represents a type of activity.
Avatar¶
A player avatar description. In the order:
if an
image
is provided, the avatar url is https://uploads.asmodee.net/builtin/<image>else, if a
location
is provided, then it is the avatar urlelse, if an
id
(strictly positive) is provided, the avatar url is https://uploads.asmodee.net/avatars/<id>else (nothing is provided), then a default avatar is used: https://uploads.asmodee.net/builtin/avatar-neutral.jpg
Field |
Type |
Description |
---|---|---|
id |
Identifier for uploaded avatar (if no |
|
location |
Avatar full url (if no |
|
image |
Built-in avatar image name (with extension) |
FinalScore¶
Player position as indicated by the client at the end of a game. The rank computation uses this to order players.
Field |
Type |
Description |
---|---|---|
player_id |
Local player id |
|
game_rank |
The game rank is used to compute global rankings. The lowest rank is the winner. More than one player can have the same game_rank |
|
game_score |
The game score is used to keep track of the user score in their game history. |
PartnerUser¶
Contains the information of a Player for a specific partner.
Field |
Type |
Description |
---|---|---|
partner_id |
ID of the partner |
|
partner_display_name |
User name in the partner’s system |
|
partner_user_id |
Unique ID of the user, in the partner’s system |
Player¶
Player record. More information can be found in Player section.
Field |
Type |
Description |
---|---|---|
name |
Player name |
|
id |
Local player id |
|
karma |
Player karma (0-100) |
|
rank_score |
Player ELO rank score |
|
w_w_w_id |
Player unique global id |
|
rank |
Player main rank |
|
nb_games |
Player number of ranked games played |
|
banned |
True if this player has been administratively banned for offense |
|
blocked |
True if this player has been administratively prevented to chat |
|
avatar |
Player avatar |
|
language |
Player language (0- English, 1- French, 2- German) |
|
tz |
Player time zone |
|
ranks |
Player list of game variants ranks/rankscore |
|
rights |
Player list of online features |
|
partner_user |
Player’s partner information given at auth |
PlayerAchievement¶
Player achievement.
Field |
Type |
Description |
---|---|---|
achievement |
Awarded achievement |
|
date |
Date at which the achievement was awarded |
|
game |
Game the achievement belongs to |
PlayerAchievementUpdate¶
Field |
Type |
Description |
---|---|---|
player_id |
The global id of the player whose achievements have been updated |
|
achievements |
List of awarded achievements |
PlayerActivity¶
This represents an activity for a given player.
Field |
Type |
Description |
---|---|---|
user_id |
Global id of the user performing the activity |
|
last_use |
Last time we detected this activity, timestamp in seconds since UNIX epoch |
|
activity |
Activity integer code |
|
client_id |
Client used when activity changed |
|
game_type |
Game type (‘TT’, ‘SW’) |
|
payload |
String providing more information |
PlayerRankingUpdate¶
Rank evolution for a given player global id, usually given at the end of a game.
Field |
Type |
Description |
---|---|---|
player_id |
Global ID of the player whose ranking has been updated |
|
delta |
Difference in rankscore |
|
old_rank_score |
Rankscore before this update |
|
new_rank_score |
Rankscore now, after this update (should be |
|
variant |
Game variant in which the ranking has been updated, if relevant |
|
old_nb_games |
Number of ranked games before this update |
|
new_nb_games |
Number of ranked games now, after this update |
Rank¶
A player game variant rank information.
Field |
Type |
Description |
---|---|---|
rank |
Player’s rank position (lower is better, #1 is the best) |
|
rank_score |
Player’s ELO rankscore (higher is better, default is 1500) |
|
name |
Game (or variant) this ranking is from |
|
nb_games |
Number of ranked games played |
RankingUpdate¶
List of ranking updates (one per player in a game usually).
Field |
Type |
Description |
---|---|---|
update |
Ranking changes for players, at the outcome game |
Enums¶
Achievement.Status¶
Name |
Number |
Description |
---|---|---|
NEW |
0 |
Achievement is in preparation and not visible/usable yet |
ACTIVE |
1 |
Achievement is valid and usable |
RETIRED |
2 |
Achievement is not awardable, but still visible in the profile |
Achievement.Type¶
Name |
Number |
Description |
---|---|---|
NORMAL |
0 |
Regular achievement, most of them belong to this type |
OFFICER |
1 |
Related to Memoir’44 |
EVENT |
3 |
Related to a special event (contest, tournament…) |
COMMUNITY |
4 |
Related to the Asmodee community, used by some websites |
Activity.Code¶
Name |
Number |
Description |
---|---|---|
UNKNOWN |
0 |
The server doesn’t know what the player is doing |
DISCONNECTED |
1 |
Player disconnected and did not update activity since then |
IDLE |
2 |
Player is connected to the server but not playing or in lobby or in any other state |
LOBBY |
3 |
Player is in the lobby |
PLAYING_OFFLINE |
4 |
Player is playing a game |
PLAYING_ONLINE |
5 |
Player is playing an online game |
WAITING |
6 |
Player is waiting for other players to start a game |
OTHER |
7 |
User is in an other app |
BROWSING |
8 |
User is browsing some page of forum, website… |
OBSERVING |
9 |
User is observing a game |
request.proto¶
Messages¶
Message¶
Network message
Field |
Type |
Description |
---|---|---|
request_number |
id the underlying request |
|
ping_request |
777 |
|
async_auth_request |
400 |
|
async_disconnect_request |
401 |
|
game_created_request |
404 |
|
engage_game_with_friends_request |
405 |
|
async_connected_request |
406 |
|
async_connection_error_request |
407 |
|
ask_server_statistics_request |
408 |
|
server_statistics_request |
409 |
|
async_unlink_device_request |
412 |
|
async_device_unlinked_request |
413 |
|
action_required_request |
500 |
|
commit_action_request |
501 |
|
multicast_data_request |
502 |
|
client_data_request |
503 |
|
player_timeout_request |
504 |
|
error_request |
505 |
|
player_presence_update_request |
506 |
|
game_over_request |
507 |
|
game_outcome_request |
508 |
|
player_idle_progress_request |
509 |
|
whats_new_pussycat_request |
511 |
|
game_status_report_request |
512 |
|
game_forfeit_request |
513 |
|
game_forfeited_request |
514 |
|
async_buddy_list_request |
515 |
|
async_buddy_list_content_request |
516 |
|
async_buddy_presence_partial_update_request |
com.daysofwonder.async.AsyncBuddyPresencePartialUpdateRequest |
517 |
async_buddy_management_request |
518 |
|
async_buddy_added_request |
519 |
|
async_buddy_removed_request |
520 |
|
game_outcome_confirmation_request |
522 |
|
action_commited_request |
523 |
|
multicast_chat_request |
524 |
|
client_chat_request |
525 |
|
client_chat_blocked_request |
526 |
|
register_presence_request |
527 |
|
unregister_presence_request |
528 |
|
game_aborted_request |
530 |
|
game_aborted_confirmation_request |
531 |
|
subscribe_presence_request |
532 |
|
unsubscribe_presence_request |
533 |
|
switched_to_game_request |
534 |
|
get_chat_history_request |
535 |
|
client_chat_history_request |
536 |
|
player_replaced_request |
537 |
|
leave_sync_game_request |
538 |
|
resume_sync_game_request |
539 |
|
answer_invitation_request |
540 |
|
invitation_answered_request |
541 |
|
clock_paused_request |
543 |
|
clock_resumed_request |
545 |
|
get_clocks_request |
546 |
|
clocks_status_request |
547 |
|
async_ignore_list_request |
560 |
|
async_ignore_list_content_request |
561 |
|
async_ignore_management_request |
562 |
|
async_ignore_added_request |
563 |
|
async_ignore_removed_request |
564 |
|
user_update_data_required_request |
565 |
|
update_user_data_request |
566 |
|
user_data_updated_request |
567 |
|
game_state_updated_request |
568 |
|
game_user_data_updated_request |
569 |
|
interrupt_action_request |
||
action_interrupted_request |
||
interruption_over_request |
||
interrupt_action_error_request |
||
enter_lobby_request |
600 |
|
lobby_entered_request |
601 |
|
exit_lobby_request |
602 |
|
lobby_exited_request |
603 |
|
lobby_player_list_request |
604 |
|
ask_player_info_request |
605 |
|
lobby_player_info_request |
606 |
|
lobby_create_game_request |
607 |
|
lobby_game_created_request |
608 |
|
lobby_game_list_request |
609 |
|
lobby_join_game_request |
610 |
|
lobby_new_player_request |
611 |
|
lobby_join_denied_request |
612 |
|
lobby_leave_game_request |
613 |
|
lobby_player_left_game_request |
614 |
|
lobby_start_game_request |
615 |
|
lobby_start_game_denied_request |
616 |
|
subscribe_to_observable_game_list_request |
620 |
|
subscribed_to_observable_game_list_request |
com.daysofwonder.async.SubscribedToObservableGameListRequest |
621 |
observable_game_list_request |
622 |
|
ask_any_player_info_request |
630 |
|
player_info_request |
631 |
|
start_observe_game_request |
650 |
|
stop_observe_game_request |
651 |
|
game_observed_request |
652 |
Packet¶
Field |
Type |
Description |
---|---|---|
id |
Unique client-filled identifier of the packet, returned by the server in the response if possible - it is recommended to used a monotonically incrementing integer |
|
payload |
Embedded message |
PingRequest¶
Heartbeat request. Send this request regularly to the server, which will echo it back (default max heartbeat timeout is 15 seconds on the server-side). This allows the server to notice when a client is disconnected (and the reverse). This also allows to measure the round-trip time between the client and the server, and possibly alert the player if it is too large.
More information can be found in Heartbeat section.
request_number: 777
field_name: ping_request
Field |
Type |
Description |
---|---|---|
timestamp |
Timestamp at which the request has been sent |
push.proto¶
Messages¶
Device¶
A device token as given by the platform
Field |
Type |
Description |
---|---|---|
token |
Device Token |
DeviceType¶
A device token and its platform identifier
Field |
Type |
Description |
---|---|---|
token |
Device Token |
|
type |
Platform unique identifier |
Devices¶
Enums¶
Devices.Type¶
Type of device token
Name |
Number |
Description |
---|---|---|
RESERVED |
0 |
Do not use |
IOS |
1 |
|
GCM |
2 |
|
IOS_SANDBOX |
4 |
Development mode for IOS |
STEAM |
5 |
|
OSX |
10 |
|
OSX_SANDBOX |
11 |
Development mode for OSX |
FCM |
12 |
Scalar Value Types¶
Standard protobuf types
.proto Type |
Notes |
C++ Type |
C# Type |
Java Type |
---|---|---|---|---|
double |
double |
double |
double |
|
float |
float |
float |
float |
|
int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
long |
uint32 |
Uses variable-length encoding. |
uint32 |
uint |
int |
uint64 |
Uses variable-length encoding. |
uint64 |
ulong |
long |
sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
long |
fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
uint |
int |
fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
ulong |
long |
sfixed32 |
Always four bytes. |
int32 |
int |
int |
sfixed64 |
Always eight bytes. |
int64 |
long |
long |
bool |
bool |
bool |
boolean |
|
string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
string |
String |
bytes |
May contain any arbitrary sequence of bytes. |
string |
ByteString |
ByteString |