Technical Details

Player Ident

When a session is initiated via the Ident: Send Token route, players will be forcefully required to sign the game consent documents. This will include Nodecraft and platform consents, too, as defined above.

  • This endpoint may return a 409 error with consents.game_missing if no previous consent has been made, or consents.game_outdated if the consent is out of date.
  • If this occurs, it will also include the type that is missing, which might be legal, or rules.
  • At this point, you should make a request using a game access token to the Get Game Legal/Rules consents endpoint, passing the previously retrieved type.
  • This will provide a list of consents that include the page_id, page_content_id, and type, as well as a single content string which should be rendered to the player to read.
  • Once the player has read and accepted this consent, you can re-send the Ident: Send Token route, but this time, including an additional payload for the consents they’ve read and signed, such as the following:
{
  "type": "steam",
  "data": {
    "ticket": "abc",
    "identity": "abc"
  },
  "consents": [
    {
      "type": "legal",
      "page_id": "00000000-0000-0000-0000-000000000000",
      "page_content_id": "00000000-0000-0000-0000-000000000000"
    },
    {
      "type": "legal",
      "page_id": "00000000-0000-0000-0000-000000000000",
      "page_content_id": "00000000-0000-0000-0000-000000000000"
    }
  ]
}
  • After this is sent, the Player Ident should succeed, and the player can now continue to explore the platform.

Server Join

When a server join is initiated via the Join Server route, players will be forcefully required to sign the server’s rules, as well as any game or platform rules that have been set for the game/platform.

  • This endpoint may return a 409 error with consents.game_missing if no previous game consent has been made, or consents.game_outdated if the game consent is out of date. It may also return a 409 error with consents.server_missing if no previous server consent has been made, or consents.server_outdated if the server consent is outdated.
    • NOTE: This may happen multiple times when joining the server, depending on which consents the player has or previously hasn’t signed. Be sure that you can initiate this flow multiple times.
  • If this occurs, it will also include the type that is missing, which might be legal, or rules.
  • At this point, you should either:
    • If the type is legal
      • make a request to the Get Player Legal/Rules Consents endpoint, specifying the type as previously received
      • render the consent for the player
      • once the player has read and accepted, send a request to the Sign Consents endpoint specifying legal for the {type} param in the URL, and using the player access token, with a payload like the following:
      [
        {
          "page_id": "00000000-0000-0000-0000-000000000000",
          "page_content_id": "00000000-0000-0000-0000-000000000000"
        },
        {
          "page_id": "00000000-0000-0000-0000-000000000000",
          "page_content_id": "00000000-0000-0000-0000-000000000000"
        }
      ]
      
    • if the type is rules
      • render the server rules consent content as previously retrieved in the Get Server endpoint. This will exist under the rules.content section of the server response
      • once the player has read and accepted, send a request to the Sign Consents endpoint specifying rules for the {type} param in the URL, and using the player access token, with a payload like the following:
      [
        {
          "page_id": "00000000-0000-0000-0000-000000000000",
          "page_content_id": "00000000-0000-0000-0000-000000000000"
        },
        {
          "page_id": "00000000-0000-0000-0000-000000000000",
          "page_content_id": "00000000-0000-0000-0000-000000000000"
        }
      ]
      

What’s Next