XR-064: Joinable Game Sessions and Online Play *

Version 3.0, 7/27/2026

Titles that offer joinable multiplayer or cooperative experiences must advertise joinability through the XBOX shell interface by using the Multiplayer Activity (MPA) feature. Advertising a joinable activity enables players to join and to send and receive invitations through the XBOX shell (for example, the Friends List, gamercard, and Game Bar), including scenarios where cross-network players are present.

More Information

A joinable multiplayer experience is one where players can intentionally play together. Examples include, but aren't limited to, directly joining another player, sending and receiving invites, private lobbies, and password-protected experiences. If a user is no longer in an experience that supports joining, the user must not appear as available for joining, so titles must clear the advertised activity when the player is no longer joinable.

When a user joins a game session but the experience is no longer joinable by that user for any reason, the title must either:

  • Ask the user to wait until the next opportunity to jump in.
  • Give the user a clear message explaining the reason for the join failure.

For titles using the Multiplayer Activity feature to advertise joinability, keep the player counts, restrictions, and groupIds up to date throughout the joinable activity. The XBOX shell doesn't enforce session capacity, so the title is responsible for managing player counts and for rejecting or queuing joins when a session is full. Titles that only support joining through matchmaking (for example, ranked matches) aren't required to advertise joinability through the XBOX shell, and titles may gate a join on prerequisites such as required downloadable content, provided the player is clearly messaged.

For information on advertising joinable activities and sending invitations using the GDK, read the Multiplayer Activity overview.

Invitations

Platform invitations sent from the XBOX shell must always be available for joinable sessions. In-game invitations are recommended but aren't a hard requirement; a title isn't required to offer an in-game invite mechanism before a player can invite others through the shell.

When a title does provide an in-game invite mechanism, that mechanism must route the invitation through the XBOX platform so the recipient receives it through the XBOX shell notification. A title may restrict who can send invitations (for example, only the host or team captain) and may present a subset of the player's XBOX friends. Titles that are joinable only within a franchise, club, or clan may scope invitations accordingly.

Implementation Guidance and Best Practices

Use the Multiplayer Activity (MPA) feature to advertise joinable activities and to send and accept invitations, and keep the activity up to date with player counts, joinability state, and restrictions. Don't mix MPA with the legacy Multiplayer Session Directory (MPSD) for the same purpose, because maintaining both can create duplicate records and join conflicts. Clear the activity whenever the session becomes non-joinable, and use the XBOX platform invitation APIs so that platform and in-game invitations behave consistently.

Certification Test Cases

064-01 Joining a Game Session from Outside the Game

Configuration

  • Two XBOX Profiles
  • Device 1 Profile A - Friends with Profile B
  • Device 2 Profile B - Friends with Profile A

On retail consoles, a game will be suspended under the following conditions:

  • When the console enters Connected Standby by being turned off with the power mode set to Instant-on.
  • When the game remains out of focus for ten minutes. For example, launching an application such as Settings and keeping it in focus for ten minutes.

For the purposes of this test case, on XBOX consoles suspend the game at step 5 by launching the Settings app and keeping it in focus for ten minutes. On PC, put the system into Sleep or Hibernate at step 5.

Test Steps

  1. Using Profile A, create a joinable game session.
  2. Using Profile B not running the title, access the Friends List via the XBOX shell interface and verify that the Profile A is listed as joinable.
    • It is possible that some games may only support private multiplayer sessions and therefore not appear as joinable for Profile B, in which case please jump to step 6.
  3. Profile B join Profile A's game.
  4. Confirm that both profiles are placed into the game experience together.
  5. Repeat steps 1-4 with Profile B while the title is in a suspended state on a console, and while the system is in Sleep or Hibernate on a PC.
  6. Repeat steps 1-5 but this time, instead of Profile B joining through the Friends List, have Profile A send a game invite via the system shell to Profile B and make sure Profile B can receive, accept, and join Profile A.

Expected Result
User B must be able to join user A's game and progress into the game experience together. For games that only support private multiplayer sessions and therefore do not appear as joinable for Profile B, it is acceptable for invites to be the only mechanism to join Profile A. For multiplayer game sessions that only support joining the session via matchmaking (e.g. ranked matches), it is acceptable to not support joining via the XBOX shell interface. For titles that support cross-platform multiplayer, users must be able to join between an XBOX One Console and PC.

Pass Examples

  1. Both profiles are placed into the game experience together.
  2. User B is able to join user A's game and progress into the game experience together.
  3. User A does not appear as joinable in the Friends List via the XBOX shell interface because the game only supports private multiplayer sessions, however user A can send user B a game invitation via the system shell.
  4. User A does not appear as joinable and is unable to send game invites via the XBOX shell interface whilst participating in a session that only supports joining via matchmaking (e.g. ranked matches).

Fail Examples

  1. User B is not able to successfully join User A's game and is not placed in the game experience.
  2. User A does not appear as joinable in the Friends List via the XBOX shell interface because the game only supports private multiplayer sessions, and user A cannot send user B a game invitation via the system shell.

064-02 Joining a Game Session from the Same Game

Configuration

  • 2 XBOX Profiles
  • Device 1 Profile A - Friends with Profile B
  • Device 2 Profile B - Friends with Profile A

Test Steps

  1. Using Profile A, launch the title and create a joinable game session within the title.
  2. Using Profile B, launch the same title and enter some experience within the title.
  3. Using Profile B, access the Friends List via the XBOX shell interface and select to join Profile A's game.
    • It is possible that some games may only support private multiplayer sessions and therefore do not appear as joinable for Profile B, in which case please jump to step 5.
  4. Confirm that both profiles are placed into the game experience together.
  5. Repeat steps 1-4 but this time instead of Profile B joining through the Friends List via the XBOX shell interface, have Profile A send a game invite via the system shell to Profile B and make sure Profile B can receive, accept, and join Profile A.

Expected Result
User B must be able to join user A's game and progress into the game experience together. For games that only support private multiplayer sessions and therefore do not appear as joinable for Profile B, it is acceptable for invites to be the only mechanism to join Profile A. For multiplayer game sessions that only support joining the session via matchmaking (e.g. ranked matches), it is acceptable to not support joining via the XBOX shell interface. For titles that support cross-platform multiplayer, users must be able to join between an XBOX One Console and PC.

Pass Examples

  1. Both profiles are placed into the game experience together.
  2. User B is able to join user A's game and progress into the game experience together.
  3. User A does not appear as joinable in the Friends List via the XBOX shell interface because the game only supports private multiplayer sessions, however user A can send user B a game invitation via the system shell.
  4. User A does not appear as joinable and is unable to send game invites via the XBOX shell interface whilst participating in a session that only supports joining via matchmaking (e.g. ranked matches).

Fail Examples

  1. User B is not able to successfully join User A's game and is not placed in the game experience.
  2. User A does not appear as joinable in the Friends List via the XBOX shell interface because the game only supports private multiplayer sessions, and user A cannot send user B a game invitation via the system shell.

064-03 In-Game Invitations

This test case applies only to titles that provide an in-game invite mechanism.

Configuration

  • Two XBOX profiles each signed into a different device
  • Device 1 profile A - friends with profile B
  • Device 2 profile B - friends with profile A

For how to suspend a game on XBOX consoles and how to place a PC into Sleep and Hibernate, see the console XR and Test Cases page.

Test Steps

  1. Sign Users A and B into their respective devices.
  2. Both users launch the title.
  3. User A creates a game session and locates the in-game option to send invitations.
  4. User A sends a game invite to User B.
  5. Profile B accepts an invite from each of the following areas to join Profile A's game session.
    • Anywhere from the initial boot sequence to the initial interactive state
    • The main menu (if featured)
    • During single player gameplay (if featured)
    • During multiplayer gameplay (if featured)
    • While the title is in a suspended state on a console, or in Sleep or Hibernate on a PC, on the main menu (if featured)
    • While the title is in a suspended state on a console, or in Sleep or Hibernate on a PC, during single player gameplay (if featured)
    • While the title is in a constrained state on the main menu (if featured)
    • While the title is in a constrained state during any gameplay (if featured)
  6. Confirm that both profiles are placed into the game experience together after each invite.

Expected Result
When a title offers an in-game invite mechanism, that mechanism must route the invitation through the XBOX platform so that Profile B receives it through the XBOX shell notification and can join the session hosted by Profile A. It's acceptable for the title to restrict who can send invites to the session (for example, only team captains in a team game). Because the title can't stop the invitation or join action from being taken, it isn't required to ask for confirmation of destructive actions. For titles that support cross-platform multiplayer, users must be able to join sessions via invites between an XBOX One Console and PC.

Pass Examples

  1. The in-game invite option routes the invitation through the XBOX platform, and Profile B receives and accepts it through the XBOX shell.
  2. The player doesn't receive a confirmation of destructive action message when accepting a game invitation while in-game.
  3. The invite completes but the session can't be started/launched when required DLC isn't present on the device. This is clearly messaged to the player.
  4. Only the host of the game session can send invitations, if it's clear who the host is.

Fail Examples

  1. The in-game invite mechanism doesn't route the invitation through the XBOX platform, so Profile B doesn't receive it through the XBOX shell.
  2. After accepting a game invitation the active player isn't taken into the game session to which they were invited.
  3. The invite doesn't complete when required DLC isn't present on the device, and this isn't messaged to the player.

064-04 Non-Joinable Game

Configuration

  • 3 XBOX profiles each signed into a different device
  • Device 1 Profile A - Friends with Profiles B & C
  • Device 2 Profile B - Friends with Profile A
  • Device 3 Profile C - Friends with Profile A

Test Steps

  1. Using Profile A, launch the title and create a joinable game session.
  2. Using Profile A, invite profiles B and C to the game.
  3. Using Profile A, enter a game session so there is only one remaining slot after A joins.
  4. Using Profile B, accept the invite.
  5. Confirm Profiles A & B are playing together.
  6. Using Profile C, accept the invite and attempt to join the game session.

Expected Result
Profile C is asked to wait until the next opportunity to jump in or Profile C is messaged the reason for the failure to join the game session.

Pass Examples

  1. Profile C is asked to wait until the next opportunity to jump in.
  2. Profile C is messaged the reason for the failure to join the game session.

Fail Examples

  1. Profile C is not asked to wait until the next opportunity to jump in and Profile C is not messaged for the failure to join.