Certification Tested XBOX Requirements for XBOX Console Games

Version 16.4 - 08/11/2026

XBOX Requirements (XRs) consist of the policies, technical requirements, and product component-related requirements to which all developers and publishers of XBOX console games must conform. XRs ensure that products created for XBOX consoles aren't only stable and reliable but also provide a user experience that's consistent, safe, secure, and enjoyable.

Unless noted, all XBOX Requirements apply to all games certified for XBOX across the devices they ship on, including the XBOX One and XBOX Series X|S console generations, PC (including handheld devices), and XBOX Cloud Gaming (xCloud).

Important

The Certification team conducts testing on retail hardware in the CERT sandbox for all Final submissions — retail XBOX consoles for console test cases, and the equivalent retail hardware (such as a retail PC or handheld device) for device-specific test cases. Previously, some test cases relied on GDK commands executed on XBOX development kits. These cases have been revised to use only steps available on retail hardware. Optional submissions are still tested on development kits in the CERT.DEBUG sandbox.

Testing suspend, sleep, and hibernate

Many test cases validate title behavior after a title resumes from a low-power or suspended state. Because these transitions can happen during normal play, titles must preserve progress, rewards, and achievements, and must resume without restarting, crashing, hanging, or losing progress. This section describes how to place a title into these states on each device. Test cases that suspend, sleep, or hibernate a title indicate which methods should be used and which apply to the device under test.

XBOX consoles

Refer to XBOX Game Life CycleAuthorization required for a detailed look at the concepts and events that make up the game life cycle. It demonstrates how to implement game state and state-change events in your game.

On XBOX consoles, a game is 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.

PC and handheld devices

To put a PC or handheld device into Sleep, open the Start menu and select Power → Sleep.

To Hibernate a PC or handheld device, open the Start menu and select Power → Hibernate. If Hibernate isn't visible, enable it via Control Panel → Power Options → Choose what the power buttons do → Change settings that are currently unavailable → Hibernate.

Base Requirements

The requirements in this category apply to the general rules for the standards of coding, behavior of titles, and submission of games.

XR-001: Title Stability *

Titles must be compliant with Microsoft Store policies regarding Title Stability. The following policy applies to this Requirement:

10.4.2
Products must start up promptly, continue to run, and remain responsive to user input. Products must shut down gracefully and not close unexpectedly. The product must handle exceptions raised by any of the managed or native system APIs and remain responsive to user input after the exception is handled.

001-01 Title Stability

Test Steps

  1. Sign in to an XBOX profile.
  2. Launch the game.
  3. Navigate all areas of the game, including but not limited to:
    • Gameplay
    • Menus and features
    • Downloadable content (DLC)
  4. Using a new XBOX profile with no previous save data, repeat steps 1-3 while disconnected from XBOX services.

Expected Result
game instability refers to any state where user input isn't recognized, or the user is blocked from progressing due to a software crash without any user notification.

Pass Examples

  1. The game is stable.
  2. The game doesn't cause unintended loss of user data.

Fail Examples

  1. The game crashes, becomes unresponsive, or causes a console reboot.
  2. The game causes the loss of user data.
  3. A non-interactive pause or static screen is presented lasting over twenty seconds.
  4. The game contains a loading screen that's more than two minutes with no indication of progress.
  5. The game contains a loading screen that's more than three minutes with a progress indicator.

001-02 Title Stability After Suspend, Sleep and Hibernate

This test validates title stability when resuming from suspend on XBOX consoles and from Sleep or Hibernate on PC and handheld devices. For how to suspend a game on a console and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate. For the purposes of this test case, verify every method available on the device under test at step 3.

Test Steps

  1. Sign in to a profile and launch the game. On XBOX consoles, set the console power mode to Instant-on.
  2. Progress into gameplay.
  3. At various points throughout the game, including menus and all game modes:
    • On XBOX consoles, suspend the game.
    • On PC and handheld devices, put the system into Sleep and then Hibernate.
  4. With the device powered back on, resume the game and verify the user can continue from their last gameplay location.
  5. Continue to the next save point, save the game, and return to the main menu.
  6. Reload the save made in step 5 and make sure all progress is still present.
  7. Repeat steps 3-6 throughout the game.

Expected Result
When the game resumes, the following occurs:

  1. The game doesn't crash, hang, or cause unintended loss of game progress.
  2. The game doesn't fully restart or require the user to restart the game.
  3. The game re-establishes online connections to XBOX and/or partner services.

Additionally, users must not lose any save progress after returning to gameplay.

Pass Examples

  1. The game doesn't crash, hang, or cause unintended loss of game progress.
  2. The game doesn't fully restart or require the user to restart the game.
  3. All menus and game modes are accessible, and the user can continue from their last gameplay location.
  4. The user is prompted whether they want to resume from their last gameplay location.
  5. The game returns to a previous menu or initial interactive state.
  6. After suspending on a console, or putting a PC or handheld device into Sleep or Hibernate, during online gameplay that requires online service connectivity, the game resumes and returns the user to a previous menu or initial interactive state.
  7. The game re-establishes online connections to XBOX and/or partner services.
  8. The game is terminated by the system because of connected storage de-synchronization.

Fail Examples

  1. The game crashes, hangs, or restarts.
  2. The game is terminated as a result of a failure to suspend, sleep, or hibernate, or is terminated unexpectedly after resuming.
  3. The user is unable to load their last save location.
  4. The game doesn't re-establish online connections to XBOX and/or partner services, or the user is unable to re-establish a connection to partner-hosted services.

XR-003: Title Quality for Submission *

XBOX games must meet XBOX quality standards and be fully functional and testable.

Functionally complete and testable

Titles must be fully functional and testable when submitted for certification. This includes all client code, submission artifacts, and downloadable content. Titles must be packaged cleanly with no failures using the current version of Submission Validator. Submission Validator logs must be included with the submission.

XBOX quality standards

XBOX games must function correctly across all game modes and scenarios to meet player expectations.

Title integrity

Titles must be free from severe issues such as crashes, freezes, unplayable frame rates, bugs causing major progression hindrances, or graphical corruption. Game settings, options, and controls must be applied correctly and respect default settings where appropriate. Navigation and content availability should be seamless, with no dead ends or inaccessible menus. Multiplayer functionality must be stable and functional, regardless of the number of players.

Save game compatibility

Game saves and player progress must continue to function following content updates. Additionally, permanent data loss must not occur when loading an updated save with the base disc version.

More information

Inaccurate and incomplete submissions will be rejected from Certification. Make sure to review the Submitting to XBOX Certification in Partner Center documentation prior to submitting for certification. For questions related to submitting to Certification, reach out to your Microsoft contacts.

Submission Validator

Submission Validator isn't a standalone tool that the developer uses. Rather, it's automatically called to check an app whenever the makepkg pack command is used. For more information about syntax and command-line use, see the makepkg reference page.

The types of problems that Submission Validator identifies grow and evolve over time to work toward the goal of smoothing the way from submission, through certification, and to market. For the current list of problems that Submission Validator detects, see Submission Validator quality checks.

Partner-hosted services

Partner services that are required for the game to run must be functioning and properly configured when submitting to Certification. These services are verified prior to scheduling the title for test and must remain functional throughout Certification.

Implementation guidance and best practices

Options and settings

Game settings, such as options, controls, and languages, apply correctly when updated in game and after terminating and launching the title again. Default settings are respected where appropriate.

All navigation commands must function as expected. On consoles, the game must be fully navigable with a controller. There are no dead ends in content, all game menus are navigable, and all content is available.

Localization support

There's no requirement on the amount of localization a title must support. In areas where localized text is supported, the text must be legible regardless of the display setup.

Leaderboards

Titles must allow users to post statistics to all available leaderboards and sort those leaderboards using the filters provided.

Headset state change on console

On console, audio must continue to be heard when a headset is connected, removed, and re-connected. Refer to Comparison of XBOX One Software Development Kit and Microsoft Game Development Kit Audio APIAuthorization required.

The following table shows which XR-003 test cases apply to your title on console or PC.

Test Case Applicable to console Applicable to PC
003-02 Title Integrity Yes Yes
003-16 Save-Game Compatibility Yes Yes
003-17 Headset State Change Yes No
003-18 Headset State Change After Suspend, Sleep and Hibernate Yes Yes
003-20 Streaming Install Initial Play Marker Yes Yes

003-02 Title Integrity

Configuration

Test Steps

  1. Sign into an XBOX profile and launch the title.

  2. Navigate through all menus, sub-menus, review all features, and complete all game modes.

    • Interact with and complete all menu UI, extra content, single player and multiplayer game modes, including any additional features in all supported languages.
    • Test offline, online, and split screen if applicable.
    • Test multiplayer game modes with the maximum number of players.
    • Post statistics to all supported leaderboards.

Expected Result
All titles must provide users with a reliable, fair, consistent, and complete XBOX entertainment experience.

Pass Examples

  1. The title can be completed in all game modes.
  2. Options set during gameplay are saved after terminating and re-launching the title.
  3. All areas of the title can be navigated as expected.
  4. Localized text displays correctly in all areas where supported.
  5. Users are able to post to leaderboards as expected.

Fail Examples

  1. The title crashes at the end of a level or the user is blocked from progressing in any area of the game.
  2. Areas of the title can't be navigated as expected.
  3. If the user inverts the horizontal or vertical camera controls with the pause menu, the camera controls don't change in-game.
  4. Users aren't able to post to leaderboards as expected.
  5. A particular game mode can't be completed if the user has already completed a different mode.
  6. Options set during gameplay are reset to default after terminating and re-launching the title.
  7. The title is unplayable due to frame rate issues.

003-16 Save-Game Compatibility

Test Steps

  1. Sign in to an XBOX profile and launch the game without connecting to XBOX.
  2. Play the game and save your progress and settings.
  3. Reboot the game and verify that you can load and resume the saved progress from step 2.
  4. Connect to XBOX and install the content update for the base title.
  5. Verify you can still load and continue your saved progress after the update.
  6. Reboot the title, start a new game, and save your progress again.
  7. Exit and uninstall the game.
  8. Re-install and launch the base game without a connection to the XBOX network.
  9. Verify that one of the following occurs:
    • You can load and continue your saved progress
    • The game displays a message indicating the save requires a content update to be installed
    • The game doesn't display the save made in step 6
  10. Reboot the title and install the content update.
  11. Verify you can still load and continue from your saved progress after the update.

Expected Result
A content-updated version of a game must be able to successfully load a save created using the non-content-updated version of the game.

Pass Examples

  1. All saves can be loaded successfully by a content-updated version of a title.
  2. When launching the base version to load an updated save, the user is notified of missing content and given a reason why the save file couldn't be loaded, or the saves made in the content-updated version aren't visible in the base version.

Fail Examples

  1. The content-updated version of the game is unable to load a game save created with a previous version of the title.
  2. The base version of the game crashes when loading a save made with the content-updated version of the game.

003-17 Headset State Change

Test Steps

  1. Attach a pair of headphones to the controller or attach a pair of headphones wirelessly to the gaming device.
  2. Boot the title and progress into gameplay.
  3. Verify audio is heard through TV and headphones.
  4. Unplug headphones, verify audio returns after a short amount of time.
  5. Re-plug headphones, verify audio is heard through TV and headphones.
  6. Repeat steps 4-5 throughout the title.

Expected Result
Audio continues to be heard without issue.

Pass Examples

  1. Audio returns without issue whenever the headset is removed.
  2. Audio returns without issue when headset is connected.

Fail Examples

  1. Audio is no longer heard after the headset state changes.
  2. Audio is distorted or corrupt after the headset state changes.

003-18 Headset State Change After Suspend, Sleep and Hibernate

For how to suspend a game on XBOX consoles and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

For the purposes of this test case, verify every suspend, sleep, and hibernate method available on the device under test at step 6.

Test steps

  1. Sign in to a profile. On XBOX consoles, set the console power mode to Instant-on.
  2. On XBOX consoles, enable Windows Sonic for Headphones as your headset format under XBOX Audio Settings.
  3. Attach a pair of headphones. On XBOX consoles, attach them to the controller or wirelessly to the console. On PC and handheld devices, attach them by USB, 3.5 mm, or Bluetooth.
  4. Launch the game and progress into gameplay.
  5. Verify audio is heard through TV and headphones.
  6. At various points throughout the game:
    • On XBOX consoles, suspend the game.
    • On PC and handheld devices, put the system into Sleep and then Hibernate.
  7. Resume the game and verify audio is heard through TV.
  8. Re-attach the headphones and verify audio is heard through TV and headphones.
  9. Repeat steps 6-8 throughout the game.

Expected result
Audio continues to be heard without issue.

Pass examples

  1. Audio returns without issue whenever the headset is removed.
  2. Audio returns without issue when the headset is connected.

Fail examples

  1. Audio is no longer heard after the headset state changes.
  2. Audio is distorted or corrupt after the headset state changes.

003-20 Streaming Install Initial Play Marker

Titles which include an initial play marker must provide a gameplay experience when launched from the initial play marker.

For more information on Streaming Install or Intelligent Delivery with the GDK, read the Streaming Install and Intelligent Delivery overview.

Test Steps

  1. Sign in to an XBOX profile.
  2. Install the title and launch it after the initial play marker has finished installing.
  3. Attempt to enter all areas of the title before it has finished the full installation.

Expected Result
Initial play marker installation must provide a gameplay experience (such as a tutorial, play of the first level, or a quick multiplayer match in one game mode).

Pass Examples

  1. The title provides a gameplay experience when launched from the initial play marker (such as a tutorial, play of the first level, or a quick multiplayer match in one game mode).

Fail Examples

  1. After the initial play marker is installed, the title doesn't provide a gameplay experience. Failing experiences include:
    • Just showing a progress bar
    • Playing videos and/or a sequence of images
    • Only providing access to the Main Menu
    • Any other non-interactive experience

XR-130: XBOX Series X|S Generation *

All game titles targeting a console generation must support the entire family of devices for that generation.

To maintain consistency across console generations, games must:

  • Ensure that saved games work across console types within the generation.
  • Ensure that online players aren't segmented based on console type within the generation.
  • Ensure that identical game modes are offered across console types within the generation.

130-02 Save Game Roaming

Tools Needed

  • 1 XBOX Series S
  • 1 XBOX Series X

Test Steps

  1. Sign into an XBOX profile on device A and launch the title.
  2. Begin gameplay and make save progress (if possible, create a settings save by changing or adding a new setting configuration).
  3. Exit the title.
  4. Sign in on a different device from the same generation with the same profile used in Step 1.
  5. Launch the same title from Step 1 and verify that all saved games and any settings and/or configuration files can be accessed and loaded correctly and they don't have any dependencies on a specific same generation device.
  6. Repeat all steps above across the same generation of devices.

Expected Result
Save games must work in their entirety across all console types within the same generation.

Pass Examples

  1. A game save made on an XBOX Series S works on an XBOX Series X, and vice versa across the whole family of XBOX Series devices.

Fail Examples

  1. A game save made within a generation doesn't fully load across all device types in that generation.

130-03 Online Segmentation

Tools Needed

  • 1 XBOX Series S
  • 1 XBOX Series X

Test Steps

  1. Sign into an XBOX profile and launch the title on all device types in the same generation.
  2. Complete an XBOX network multiplayer game session featuring all devices.
  3. Repeat step 2 across all XBOX network multiplayer modes supported by the title.

Expected Result
XBOX network players must be able to join other XBOX network players irrespective of which console type is being used from the same generation.

Pass Examples

  1. All consoles from the same generation of devices are able to play against each other in multiplayer gameplay.

Fail Examples

  1. XBOX network players are segmented within the same generation based on their console type.

Tools Needed

  • 1 XBOX Series S
  • 1 XBOX Series X

Test Steps

  1. Sign into an XBOX profile and launch the title.
  2. Locate and access all featured game modes.
  3. Repeat all steps above across the same generation of devices and ensure all game modes are identical on each device.

Expected Result
Identical game modes must be offered across the same generation of devices.

Pass Examples

  1. All consoles from the same generation of devices provide the same set of identical game modes.

Fail Examples

  1. One or more consoles from same generation of devices provides different game modes based on their same generation console type.

XR-022: Official Naming Standards *

Titles must use the naming standards defined in the latest release of the Terminology List when referring to XBOX platform features, services, hardware, or peripherals. These standards apply to every XBOX game, regardless of the device it runs on.

Titles must not display images of, or refer to, components of the device or its peripherals using terms that aren't included in the terminology list.

022-01 Official Naming Standards

Test Steps

  1. Launch the title.
  2. Visit all areas of the title.
  3. Navigate all menus and sub-menus.
  4. Change all available settings and options.
  5. If the title supports saves, save and load all possible game types.
  6. Watch all cinematics.
  7. Note all text and images shown.

Expected Result
All text adheres to the most recent terminology list. Images must not display components of the device or its peripherals using terms that aren't specifically included in the terminology list.

Pass Examples
None

Fail Examples

  1. The title uses a proprietary term or image from a competitive platform.
  2. A title refers to a component of the device or a peripheral using any term that isn't included in the terminology list.

XR-074: Loss of Connectivity to XBOX and Partner Services *

Titles must gracefully handle errors with XBOX and partner services connectivity. Titles must honor the retry policies set by XBOX when attempting to retry a request to the XBOX service after a failure occurs. Titles must appropriately manage messaging the user when services are unavailable. If a partner service isn't available, the game must not indicate that there's an issue with the XBOX network. Titles must not crash or hang if network services are slowed or intermittently available.

074-01 WAN Disconnection to XBOX Services

Test Steps

  1. Sign in to an XBOX profile.
  2. While performing the following actions, disconnect the WAN network. If you're using an Ethernet switch/hub disconnect the uplink cable from the network device. If the device is connected via Wi-Fi, disconnect the uplink cable from the wireless access point connection:
    • Creating a new save point
    • Loading a save point
    • Reaching an auto-save point
    • Enumerating a list of saved games
    • Searching for and joining an online session
    • Attempting to create an online session
    • Viewing a leaderboard (if applicable)
    • Playing offline

Expected Result
In the event that the console is unable to reach XBOX services, the title should respond with a user-friendly error message.

Pass Examples

  1. The title displays an error message indicating loss of network connection to XBOX services.
  2. The title doesn't display an error message while playing a local game mode that doesn't require XBOX services.
  3. A title with RequireXboxLive in AppX manifest suspends and then terminates when connectivity is lost.

Fail Examples

  1. The user is unable to complete a non-online XBOX game session.
  2. Title goes into an unresponsive or unstable state.

074-02 Direct Disconnection

Test Steps

  1. Launch the title and sign in to an XBOX profile.
  2. While performing the following actions in the title, pull the network cable from the device, or power off the WAP or wireless router:
    • Creating a new save point.
    • Loading a save point.
    • Reaching an auto-save point.
    • Enumerating a list of saved games.
    • Searching for and joining an online session.
    • Attempting to create an online session.
    • Viewing a leaderboard (if applicable).
    • Playing offline.

Expected Result
In the event the device loses connection to XBOX services, the title should respond with a user-friendly error message.

Pass Examples

  1. The title displays a user-friendly message while in online game mode.
  2. The title doesn't interrupt gameplay during offline game mode.
  3. A title with RequireXboxLive in AppX manifest suspends and then terminates when connectivity is lost.

Fail Examples

  1. An error message is displayed during offline game mode.
  2. The title goes into an unresponsive or unstable state.
  3. The user is able to view online menus or view buffered media after the network goes offline.

074-03 Disconnection to XBOX Services During Suspend, Sleep, or Hibernate

For how to suspend a game on XBOX consoles and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

For the purposes of this test case, verify every suspend, sleep, and hibernate method available on the device under test at step 3.

Test Steps

  1. Sign in to a profile. On XBOX consoles, set the console power mode to Instant-on.
  2. Launch the game and progress into gameplay.
  3. At various points throughout the game:
    • On XBOX consoles, suspend the game.
    • On PC and handheld devices, put the system into Sleep and then Hibernate.
  4. With the device powered back on, resume the game and verify the game handles the disconnection gracefully.
  5. Repeat Steps 3-4 throughout the game.

Expected Result
In the event that the device is unable to reach XBOX services after resuming from suspend, sleep, or hibernate, the title must resume successfully, handle the situation gracefully, and respond with a user-friendly error message where appropriate.

Pass Examples

  1. During an online XBOX multiplayer session, the title displays an error message indicating loss of network connection to XBOX services.
  2. The title doesn't display an error message while playing a local game mode that doesn't require XBOX services.

Fail Examples

  1. The user is unable to complete a non-online XBOX game session.
  2. The title goes into an unresponsive or unstable state.
  3. The title displays a misleading or incorrect error message after resuming.

074-04 XBOX Service Re-connection During Suspend, Sleep, or Hibernate

For how to suspend a game on XBOX consoles and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

For the purposes of this test case, verify every suspend, sleep, and hibernate method available on the device under test at step 3.

Test Steps

  1. Sign in to a profile and ensure the device is set to Home. On XBOX consoles, set the console power mode to Instant-on.
  2. With no connection to XBOX but retaining a local network connection, launch the title.
    • If utilizing a ethernet switch/hub disconnect the uplink cable from the network device.
    • If the device is connected via Wifi, disconnect the uplink cable from the wireless access point.
  3. At various points throughout the game:
    • On XBOX consoles, suspend the game.
    • On PC and handheld devices, put the system into Sleep and then Hibernate.
  4. Reconnect the uplink cable and wait for the device to reconnect to XBOX services.
  5. With the device powered back on, resume the game and verify the game handles the re-connection gracefully.
  6. Repeat Steps 2-5 throughout the game.

Expected Result
In the event that the device is unable to reach XBOX services after resuming from suspend, sleep, or hibernate, the title must resume successfully, handle the situation gracefully, and respond with a user-friendly error message where appropriate.

Pass Examples

  1. The user is able to resume the title and complete an offline XBOX game session without interruption.
  2. The title remains stable and doesn't crash.

Fail Examples

  1. The user is unable to complete a non-online XBOX game session.
  2. The title goes into an unresponsive or unstable state.
  3. The title displays a misleading or incorrect error message after resuming.

074-07 Dynamic Connectivity Loss

Tools Needed:

Configure XMAT to block partner services

For installation, capture setup, and scripting instructions, see Use XBOX Multiplayer Analysis Tool to inspect and modify network traffic.

  1. Start XMAT as an administrator and add a Web Proxy capture for the device under test.
    • On an XBOX development console, select Enable XBOX Proxy and wait for the console to restart.
    • On Windows, select Start Capture.
  2. With XMAT capturing, launch the title and navigate all menus, complete a multiplayer session, load every game mode, and navigate all areas of the title, including:
    • Menus.
    • Leaderboards.
    • Servers (create one and join someone else's).
    • Friends lists.
    • In-title stores.
    • Limited-time events.
  3. Use the Host filter to identify the partner service hosts contacted during normal gameplay. Confirm that the selected hosts don't belong to Microsoft, XBOX, or PlayFab before blocking them.
  4. Open the Script Editor, select the SSL Connection Request event, and create a script that sets Params.Continue to false for each partner service host.
  5. Enable the script and verify that it compiles successfully. Then disable the script so that partner services remain available when the test begins. Keep the XMAT capture running.

Test Steps

  1. With the XMAT blocking script disabled, sign in to an XBOX profile and launch the title.
  2. Navigate to a title feature that uses a partner-hosted service and confirm that the feature is available.
  3. Without closing the title, enable the XMAT blocking script.
  4. Continue through the title and exercise all applicable areas, including:
    • Menus
    • Leaderboards
    • Servers (create one and join someone else's)
    • Friends List
    • In-title Store
    • Limited time events
  5. Verify the title doesn't display an error message indicating an issue with the XBOX network.

Expected Result
The title gracefully handles disconnections to non-Microsoft services.

Pass Examples

  1. Title doesn't hang or crash upon loss of connectivity to partner-hosted services.

Fail Examples

  1. Message displayed implies issues with Microsoft services.
  2. Non-descriptive error message is displayed.
  3. Title crashes, becomes unstable, or causes console reboot.

074-08 Pre-Launch Downtime

Tools Needed:

Test Steps

  1. On consoles, create a broken network channel with xbstress.exe for non-Microsoft traffic using the command:

xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]

  1. Start the network simulation with the command: xbstress simulate network=channels.
  2. If testing on Windows, configure an XMAT web proxy capture and enable a script that blocks the applicable partner service hosts before launching the title.
  3. Sign in to an XBOX profile.
  4. Launch the title.
  5. Access non-Microsoft online feature.

Expected Result
Titles should provide a user-friendly error message indicating that there's a problem reaching the non-Microsoft service and should allow an opportunity to retry connection.

Pass Examples

  1. Title doesn't hang or crash upon loss of connectivity to the partner-hosted service.

Fail Examples

  1. Error displayed implies issues with Microsoft service.
  2. Non-descriptive error message is displayed.
  3. Title crashes, becomes unstable, or causes console reboot.

XR-132: Service Access Limitations *

Titles which exceed title and user based limits when calling XBOX network services or don't adhere to XBOX network service retry policies may be subjected to rate limiting, which may result in service interruption or deprecation. Failure to adhere to the specified limits may block a title from release, and in-production issues with released titles may result in XBOX network services suspension up to and including title removal.

132-01 Service Access Limitations

Tools Needed

Test Steps

Using Fiddler Classic

  1. Before launching the title, start Fiddler Classic and ensure it's configured to capture network traffic from the console or Windows 10 PC (wherever the title in question is running from).
  2. With Fiddler Classic running and capturing network traffic, launch the title and proceed to move through all areas, including, but not limited to, the following:
    • Create a game save, reboot the console and load the game save
    • Change rich presence states in quick succession (if possible)
    • Unlock and view achievements
    • Post to all leaderboards and view all leaderboards using all filters
    • View in-game Friends List (including a friend with presence blocked) and move between pages rapidly
    • Earn and view a Hero Stat
    • Match-make into all online modes, including being unable to find an available session (if possible) and generate voice traffic
    • Create, save and share a game clip
    • Access the in-game store (if applicable)
  3. Once testing has concluded, save the Fiddler capture to a local directory.
  4. In the GDK command prompt, run xbltraceAnalyzer -data filepath -outputdir filepath.
  5. Open the output directory from step 4 and open the 'index' file (select 'Allow blocked content' if prompted).

Using xbtrace.exe
xbtrace.exe can't start until the title is launched, but it should be started as quickly as possible in order to capture any XBOX service calls the title makes during start up. Due to this, the preferred method for capturing title traffic is Fiddler Classic as it can be started before launching the title.

  1. With the title running, run xbtrace start xboxliveservices and proceed to move through all areas of the title, including, but not limited to, the following:
    • Create a game save, reboot the console and load the game save
    • Change rich presence states in quick succession (if possible)
    • Unlock and view achievements
    • Post to all leaderboards and view all leaderboards using all filters
    • View in-game Friends List (including a friend with presence blocked) and move between pages rapidly
    • Earn and view a Hero Stat
    • Match-make into all online modes, including being unable to find an available session (if possible) and generate voice traffic
    • Create, save and share a game clip
    • Access the in-game store (if applicable)
  2. Once test has concluded, run xbtrace stop twice.
  3. Browse your console's files and in SystemScratch > xbtrace you'll find the csv. Check the time stamp to make sure it registers the time you stopped recording. Copy it locally.
  4. In the XDK command prompt, run Xbltraceanalyzer -data filepath -outputdir filepath.
  5. Open the output directory from step 4 and open the 'index' file (select 'Allow blocked content' if prompted).

Expected Result
Titles must ensure they keep their service calls to XBOX endpoints below the specified burst and sustain limits and not have any red results in their XBOX services Trace Analyzer report.

The XBOX services Trace Analyzer tool generates a report.txt file which indicates the rule(s) that found violations, along with the details of those violations.

Tip

Interpreting the XBOX services Trace Analyzer report

  • Red - Indicates an issue that's exceeding the point at which fine grained rate limiting takes effect by 10x. This is a serious issue in Certification.
  • Yellow - Indicates that the service is being rate limited because the title exceeds the frequency with which calls are allowed to the service but doesn't exceed the threshold that would be a serious issue in Certification. These are something titles should look to resolve.
  • Green - Indicates that the title is making calls to XBOX services below the frequency at which rate limiting would take effect.

Pass Examples

  1. The title doesn't exceed the sustain limit when calling XBOX services.
  2. The XBOX services Trace Analyzer report only contains yellow and/or green results.

Fail Examples

  1. The title exceeds the sustain limit (limit at which rate limiting takes effect) by 10x. For example, if the sustained limit at which Fine Grain Rate Limiting takes effect is set to 300 calls in 300 seconds, titles at or above 3000 calls in 300 seconds will fail.
  2. The XBOX services Trace Analyzer report contains one or more red result.

132-02 Game Event Limitations

Test Steps

  1. Install the title and with the title running, proceed to navigate through all areas of the title, including, but not limited to, the following:
    • Create a game save, reboot the console and load the game save
    • Change rich presence states in quick succession (if possible)
    • Unlock and view achievements
    • Post to all leaderboards and view all leaderboards using all filters
    • View in-game Friends List (including a friend with presence blocked) and move between pages rapidly
    • Earn and view a Hero Stat
    • Match-make into all online modes, including being unable to find an available session (if possible) and generate voice traffic
    • Create, save and share a game clip
    • Access the in-game store (if applicable)
  2. During test, observe the title to see if the Game Event Limitations system toast appears.

Image of Game Event Limitations system toast

Expected Result
Games must not trigger the Game Event Limitations system toast.

Pass Examples

  1. The title doesn't trigger the Game Event Limitations system toast.

Fail Examples

  1. The title triggers the Game Event Limitations system toast.

Online Safety and Privacy

The requirements in this category pertain to protecting the safety and privacy of users.

XR-013: Linking Microsoft Accounts with Publisher Accounts *

On XBOX, titles that use publisher-hosted services, publisher accounts, partner-hosted accounts, or other non-XBOX credentials must support a consistent, secure, and age-appropriate experience for XBOX users.

If publisher account sign-in, account creation, or account linking is required for gameplay or game features, the title must provide an age-appropriate access path for all users who are eligible to access the title or feature based on:

  • the title's age rating;
  • XBOX family, privacy, and safety settings;
  • supported regions where the title or feature is offered;
  • applicable local or regional laws; and
  • feature-specific privacy, safety, or moderation requirements.

Outside XBOX consoles, titles can choose whether to allow account linking to support their game experience.

Publisher account sign-in

If publisher account sign-in is enabled within the title, the following rules apply.

Accommodate eligible users

If a publisher account sign-in is required for game features, including single player, multiplayer, cross-network gameplay, leaderboards, cloud progression, user-generated content (UGC), or other advertised features, the title must support eligible user types, ages, and regions where the title is offered and where those features are allowed by local or regional law.

A publisher can choose not to support a particular region, age group, account type, or user group for its standard publisher account. However, if that group of users can't create, sign into, or link that account, the title must not require that account as the only path to gameplay or features that are otherwise available and legally permitted for those users.

An acceptable access path can include:

  1. A standard publisher account that supports the user's age group and region.
  2. A child or teen publisher account with age-appropriate defaults.
  3. A parental-consent or parent-authorized account creation flow.
  4. A cabined, limited, or privacy-preserving publisher account.
  5. A Microsoft or XBOX-authenticated access path that avoids unnecessary publisher account creation.
  6. A feature-specific fallback that lets eligible users access the feature without full publisher account linking.

If a particular account setting or user type isn't supported in an in-title sign-up experience, the title must gracefully handle that scenario by directing the user to a supported external or mobile-optimized experience, or by providing another compliant access path.

Disclosure alone isn't sufficient if the title blocks rating-eligible users from core gameplay or advertised features that are otherwise legally available to them.

Gain consent and provide terms for account information usage

Titles must request and obtain consent before using information from the player's Microsoft account to populate sign-up, account creation, or linking experiences. Users must be provided with all applicable terms of use, privacy statements, and other relevant policies within the title, or through a clear notice with a link to that information, during publisher account creation or linking.

Disclose requirements

If a publisher account is required for gameplay or additional features, that requirement must be disclosed in the title's product description and any physical packaging. The disclosure must include material restrictions, such as age, region, account type, or feature limitations. In title, the game must explain the reason and use of the publisher account before requiring sign-in or linking. If a publisher account limits or restricts the experience for child or teen accounts, add clear Store detail language for buyer awareness. Example:

Certain features of the game, including online multiplayer, communication, user-generated content, cross-network features, or other online features, may not be accessible by XBOX child or teen accounts, or by users who don't meet the publisher account requirements. Age and regional restrictions may apply.

Use title-specific wording when a known restriction applies. Example:

A [Publisher Account] age [X]+ is required for [feature]. Age restrictions apply.

Publisher account and Microsoft account linking

Authentication using the XBOX Secure Token Service (XSTS)

XSTS tokens must be used to provide identity information for authentication when linking a user's publisher account to the user's Microsoft account. For more information about XSTS token authentication, see XBOX services authentication for title services. Titles must authenticate both the Microsoft account and the publisher account before establishing the link, and must not link accounts using unauthenticated identifiers such as Gamertag alone. Use the Partner XUID (PXUID) or pairwise identifier for account linking. Don't use the XUID for account-linking storage unless it's explicitly required for an approved service-to-service scenario.

Gain consent and provide choice

Users must be notified when their publisher account is linked to their Microsoft account, and must be given a choice to opt out when account linking is optional. Users must have the ability to de-link accounts. Account unlinking can be provided in title, on the web, in a companion app, or through another dedicated account-management experience.

Accommodate eligible users for linking

If publisher account linking is required for gameplay or game features, linking must support eligible user types, ages, and regions where the title is offered and where those features are allowed by law. If a linked publisher account is required but the publisher can't support a user's age group, region, or account type, the title must provide an approved alternative access path or request an exception.

Age and account handling

Before offering account creation or linking features to a Microsoft account user, titles must validate the user's age group by calling XUserGetAgeGroup. Titles must handle the following account categories correctly:

Age group Value Description
Adult 3 User is an adult.
Teen 2 User is a teen.
Child 1 User is a child.
Unknown 0 User age is unknown.
  • When a user's Microsoft account age and publisher account age differ, the title or service should apply the more protective treatment, unless another legally compliant approach (such as an approved age verification platform) is used.
  • For child accounts, publishers must obtain parental consent before creating an account where required by law. Parental consent, including acceptance of publisher terms and privacy statements where required, must be provided through the publisher's compliant account flow, not assumed from XBOX network participation alone.
  • For teen accounts, publishers must provide clear information about social, UGC, communication, data-sharing, and privacy-impacting features. Where appropriate, publishers should ask teens to notify a parent or guardian that the account has been created.
  • If the publisher collects age during account setup and determines that the user doesn't meet the publisher account requirements, the publisher should stop account creation before collecting unnecessary personal information, inform the user that they can't continue, prevent immediate re-entry of different age information where appropriate, destroy personal information already collected that isn't necessary to retain, and avoid repeated failed sign-up or linking attempts.

Publishers are responsible for complying with all applicable privacy, child-safety, consumer-protection, and age-assurance laws in every country or region where their products and services are offered.

Feature-specific restrictions

Publishers can restrict, disable, or require additional consent for specific higher-risk features when necessary for safety, privacy, legal, moderation, or age-appropriate design reasons. Examples include:

  • voice or text chat;
  • friend systems or social graph features;
  • cross-network communication;
  • UGC upload or publication;
  • public profiles;
  • external forums or community features;
  • purchases, premium currency, or monetization; and
  • behavioral advertising, profiling, or optional data sharing.

Where possible, publishers should separate higher-risk features from lower-risk gameplay access. For example, requiring a publisher account for UGC upload can be acceptable while still allowing eligible users to browse, download, or use curated or moderated content without the same account requirement.

Unlinking

Users must have the ability to unlink publisher or service accounts from their Microsoft account. Titles should give users full control of account linking, unlinking, single sign-on, parental-consent status where applicable, and review of applicable terms and privacy policies. Unlinking options must not be hidden deep in the UI or require technical support as the only available method.

Single sign-on

Titles must implement single sign-on after an account link has been made. After linking, the title should automatically sign the user into the linked publisher account on XBOX consoles without requiring the user to repeatedly enter publisher credentials. Titles must not store non-XBOX account credentials or unnecessary personal information locally on the console.

Note

Publishers can implement additional fraud-prevention mechanisms, such as two-factor authentication when a linked account signs in from a new device for the first time. This behavior isn't a violation of this XR.

Exceptions

If a publisher can't provide an age-appropriate access path for rating-eligible users, the publisher must request a title-specific exception. Approval for one title doesn't create blanket approval for future titles. The exception request must include:

  1. The affected title, rating, platforms, regions, features, and user groups.
  2. Whether core gameplay remains available without a publisher account.
  3. Which features are blocked or limited, and why.
  4. The legal, privacy, safety, technical, or moderation basis for the restriction.
  5. The proposed Store, packaging, and in-title disclosure language.
  6. The user experience for blocked or limited users.
  7. The test plan for child, teen, adult, family-managed, and region-specific account cases.
  8. Any mitigation plan or roadmap to support age-appropriate access in the future.

Exceptions should be time-bound or reviewed for future releases when the restriction affects core gameplay, multiplayer, or prominently marketed features.

013-01 Linking Microsoft Accounts with Publisher Accounts

Test Steps

  1. Verify whether the title supports or requires non-XBOX accounts, publisher accounts, or publisher login for services or functionality.
  2. Using a newly created XBOX profile, link or create the publisher account during initial setup.
  3. Verify that the title allows the user to view terms of use and privacy information, or clearly informs the user how to view them, before completing account linking.
  4. Verify that the user isn't prompted to re-enter non-XBOX account credentials after initial setup.
  5. Sign out and sign back in while the title is running.
  6. Verify that single sign-on still works.
  7. Terminate and reactivate the title using the same profile.
  8. Verify that single sign-on still works.
  9. Launch the title on a different console using the same profile.
  10. Verify that single sign-on still works.
  11. Verify that the title doesn't store non-XBOX account credentials locally by deleting any saved files the title may have created.
  12. Verify that the user can unlink their XBOX profile from the non-XBOX account.
  13. Repeat the applicable steps with XBOX child and teen accounts that fall within the title's age rating.
  14. Repeat the applicable steps with family settings that allow or block multiplayer, communication, UGC, purchases, and cross-network play.
  15. Repeat the applicable steps with mismatched Microsoft account and publisher account ages.
  16. Repeat the applicable steps for supported regions with different age-of-consent thresholds, where applicable.
  17. If the publisher doesn't support a child, teen, region, or account type, verify that the title provides an approved alternative access path, graceful messaging, or an approved exception-backed restriction.

Expected Result
Titles must provide secure publisher account sign-in, account creation, linking, unlinking, and single sign-on wherever publisher accounts are used. If publisher account sign-in or linking is required for gameplay or game features, titles must provide an age-appropriate access path for all users who are eligible to access the title or feature under the title rating, XBOX family settings, regional law, and feature-specific safety or privacy requirements. Users must be able to view applicable terms and privacy information before linking, and must be able to unlink their XBOX profile from the publisher account.

Pass Examples

  1. The title authenticates both accounts, links by PXUID or pairwise identifier, and never asks the user to re-enter publisher credentials after initial linking.
  2. The title provides terms, privacy information, consent, unlinking, and single sign-on.
  3. The title supports child and teen users through a compliant child or teen publisher account, parental-consent flow, cabined account, XBOX-authenticated path, or approved feature-specific fallback.
  4. The title limits higher-risk features such as chat, UGC upload, purchases, or cross-network communication while preserving access to appropriately rated gameplay where legally permitted.
  5. The title clearly discloses publisher account requirements and any feature limitations in the Store, packaging, and in-title messaging.

Fail Examples

  1. The title requires publisher credentials every time the title is launched.
  2. The title requires publisher credentials again when running on another console.
  3. The title doesn't provide terms or privacy information during account creation or linking.
  4. The title doesn't provide a method to unlink the publisher account from the Microsoft account.
  5. The title requires a publisher account for gameplay or advertised features but doesn't provide an age-appropriate access path for eligible child or teen users.
  6. The title blocks rating-eligible users from core gameplay or advertised features solely because the publisher's standard account system doesn't support their age group, region, or account type.
  7. The title relies only on Store disclosure to block eligible users from required gameplay or advertised features without an approved exception.
  8. The title fails to handle mismatched Microsoft account and publisher account ages safely.

XR-014: Player Data and Personal Information *

Game publishers are solely responsible for collecting and processing end user data in accordance with applicable law especially when the user is a child.

Additionally, when a title has information about a player either acquired from XBOX or from their relationship with the player directly (such as a website or mobile app), titles must not display to other players:

  • Information that could be used to cause financial damage to a user (such as Social Security or credit card numbers).
  • Information that divulges a user's address beyond country/region.
  • Information that would allow a user to impersonate another user online, such as account credentials.

Handling Child Data

When collecting data from accounts in the Child or Teen Age Group, titles may only request personal data necessary to verify age, obtain parental consent or complete publisher account linking.

Important

The request for data must state what the data will be used for. For example, if a title asks for a user's birthdate it must state what the birthdate will be used for:

Good Examples:

  • Please provide your birthdate so we can verify your age
  • Please provide your birthdate so we can personalize your experience
  • We need your birthdate to offer age-appropriate content
  • We need your birthdate to comply with legal age restrictions

Bad Examples:

  • Please provide your birthdate
  • Enter your birthdate
  • We need your birthdate
  • Birthdate required

Definitions

Address is any information that can identify a user's location to the level of city or town. This includes, but isn't limited to, the following:

  • Physical address
  • Mailing address
  • Billing address
  • ZIP code
  • IP address or related information
  • Geographical location information

014-01 Personal Information

Test Steps

  1. Visit all areas of the title, including all possible XBOX multiplayer sessions.
  2. Visit all areas where content might be saved or otherwise sent across the XBOX network, or to a title server.

Expected Result
Titles must never display personal information about another user as detailed in the body of the XR.

Pass Examples

  1. The title displays and shares country of residence information with a user on another console.
  2. The title uses the user's IP address to define the user's general location (no more specific than state or country/region) and displays that location to other users on the leaderboards.

Fail Examples

  1. The title transmits and shares a user's personal information with users on other consoles. Examples: Email address, location (anything more specific than state/country/region), name, date of birth, profile passcode, secret question, password(s), credit card details.

014-02 Data Collection

Test Steps

  1. Launch the title using a Child or Teen account.
  2. Visit all areas of the title, including all possible single and XBOX multiplayer game modes.
  3. Check to see what data is being requested from the user.

Expected Result
Titles must not request data from a Child or Teen user beyond what is needed for:

  • Age verification
  • Acquiring parental consent (such as an email address for the parent)
  • Publisher account linking (such as an email address for the Parent, Child or Teen user)

Pass Examples

  1. The title doesn't request any data from the Child or Teen user.
  2. The title requests the birth date of the user and states what the data will be used for.
  3. The title requests an email address for a parent and states what the data will be used for.
  4. The title requests an email address for account linking and states what the data will be used for.

Fail Examples

  1. The title asks for data that could be used for purposes other than verifying age, acquiring parental consent or publisher account linking.
  2. The title requests the birth date of the user and doesn't state what the data will be used for.
  3. The title requests an email address for a parent and doesn't state what the data will be used for.
  4. The title requests an email address for account linking and doesn't state what the data will be used for.

XR-015: Managing Player Communication *

Titles must not allow communication over the XBOX network when the user's privacy settings don't allow it.

Titles meet this XR by retrieving data from XBOX network services. If the title uses its own services, it must check the user's privacy permissions at the beginning of a session or when a new user joins the session. For user-initiated scenarios outside of sessions, titles meet this requirement by checking privacy before displaying the user's data and before performing the action. The following permissions are available for titles to check:

Permission name Description
CommunicateUsingText Check whether the user can send text communications (for example, text chat, message, etc.) or an invite to the target user.
CommunicateUsingVoice Check whether the user can communicate using voice with the target user.

During the gameplay session, titles which offer communication between XBOX network and non-XBOX network players must offer the ability to mute any non-XBOX network players for the duration of the session.

Note

Refer to Privacy and permissions overview for details on how to check and resolve privacy and permissions issues in your title.

015-01 User Communication

Configuration:

  • Create a set of profiles with "Others can communicate with voice, text or invites" to Everyone, Friends and Blocked.
  • For titles that support communication outside of XBOX, create a set of profiles with "You can communicate outside of XBOX with voice & text" to Allow, In-game friends and Blocked.

Note

The difference between the "Allow" and "In-game friends" friends options are that "Allow" means you can talk to everyone cross network (including players you meet in random matchmaking). "In-game friends" are people you've explicitly chosen to play with by adding them to an in-game friends list.

Test Steps

  1. On Device 1, sign in to a profile that has been configured with the specific set of permissions per the Configuration.
  2. On Device 2, sign in to a profile that has no communication restrictions.
  3. On both devices, launch the title and attempt to communicate using text, voice (both via Kinect and via the headset), and video in every location supported and attempt to send multiplayer game invites.
  4. Repeat Steps 1-3 for all profiles from the Configuration step.

Expected Result
Titles must check the XBOX service for a user's permissions regarding privacy and online safety-related actions and must not transmit user data or allow communication over XBOX when the user's privacy & online safety settings don't allow it.

Pass Examples

  1. The title prevents the user from communicating via voice and text over XBOX when that specific method of communication is configured to be blocked.
  2. The title prevents the user from communicating via voice and text outside of XBOX when that specific method of communication is configured to be blocked.
  3. The title prevents the user from receiving multiplayer game invites on XBOX when that's blocked.

Fail Examples

  1. The user is able to communicate via voice and text over XBOX when that specific method of communication is configured to be blocked.
  2. The user is able to communicate via voice and text outside of XBOX when that specific method of communication is configured to be blocked.
  3. The title allows the user to receive multiplayer game invites on XBOX when that's blocked.

015-02 Muting Support

Test Steps

  1. As user A, mute user B.
  2. Have both users join an XBOX multiplayer session.
  3. Attempt to send voice communication from user B to user A.
  4. Ensure that user A is unable to receive any voice communication from user B.

Expected Result
User A must not be able to hear communication from user B.

Pass Examples

  1. Voice communication from the muted user can't be heard by the user who initiated the mute.

Fail Examples

  1. Voice communication from the muted user can be heard by the user who initiated the mute.

015-03 Blocked Users

Test Steps

  1. As user A, block user B.
  2. Have both users join an XBOX multiplayer session.
  3. Attempt to send voice and written communication from user B to user A.
  4. Attempt to send a multiplayer game invite from user B to user A.
  5. Ensure that user A is unable to receive any communication or multiplayer game invites from user B.

Expected Result
User A must not be able to hear or see communication from user B. User A must not receive multiplayer game invites from User B.

Pass Examples

  1. Communication from the blocked user can't be seen or heard by the user who initiated the block.
  2. Multiplayer game invitations from the blocked user aren't received by the user who initiated the block.

Fail Examples

  1. Communication from the blocked user can be seen or heard by the user who initiated the block.
  2. Multiplayer game invitations from the blocked user are received by the user who initiated the block.

XR-018: User-Generated Content *

User generated content (UGC) refers to any in-game digital content produced by a player and made visible or accessible to one or more other people in an online state.

If your product contains UGC, you must:

  • Provide an in-product means for users to report inappropriate or harmful UGC to the developer for review and removal/disablement (if in violation of content guidelines) and/or implement a method for proactive detection of inappropriate or harmful UGC (for example, text filtering).
  • Publish content guidelines for user generated content (such as a terms of use or code of conduct), available to users either in-product or on the title's website.
  • Be prepared to remove/disable high-risk illegal content at the request of Microsoft in the unlikely event that Microsoft becomes aware of illegal material on the XBOX network that hasn't been addressed via standard action mechanisms or processes.
  • Respect player UGC settings and gracefully handle scenarios in which a user doesn't have access to UGC in-game due to restricted privileges.

Additionally, if your product is integrated with a third-party game mod platform, you must:

  • Integrate with the platform's report/complaint API (if available) and moderate content if required by contractual agreement with the third party.
  • Present a disclaimer, dialog, or visual indicator to users when content isn't sourced from the developer.

018-01 Reporting Inappropriate Content and UGC Text-String Verification

Test Steps

  1. Identify any areas of the title where text can be entered between non friends and is then viewable by users on another device.

  2. Verify the title provides an in-product way to report other users' inappropriate or harmful UGC to the developer.

  3. If there's no way to report inappropriate content, in each area, enter a string, sub string, etc. that's in the Forbidden Terms List.

    • Enter the forbidden term directly (i.e. "ForbiddenTerm").
    • Enter a forbidden term with another non-forbidden term separated by a space i.e. ("Good ForbiddenTerm").
  4. If the title allows UGC to be created in an offline state, for example character names, disconnect the device from the network, enter forbidden term combinations and reconnect to the network.

  5. Verify that the forbidden term isn't visible to any other user on another device.

  6. Repeat Steps 3-5 in each language supported by the title using forbidden terms from the matching locale.

Expected Result
The title must provide an in-product way for users to report inappropriate or harmful UGC to the developer and/or implement a method for proactive detection of inappropriate or harmful UGC (for example, text filtering using the StringService API). Inappropriate or harmful content must either be blocked or obfuscated from non-local players on XBOX services.

XBOX gamertags are exempt from UGC requirements and shouldn't be subject to text filtration, title-managed report options, or obfuscation due to a restricted UGC privilege.

Guidelines for UGC, such as a terms of use or code of conduct, are available to users either in-product or on the title's website.

Titles must not block entire game modes or experiences for users with restricted UGC privileges.

Pass Examples

  1. XBOX gamertags aren't filtered, obfuscated or subject to in-title reporting.
  2. Cross-network usernames, publisher-managed usernames, custom character names or clan/squad/guild names aren't obfuscated.
  3. The title provides an in-product way for users to report inappropriate or harmful UGC to the developer.
  4. The title prevents posting of inappropriate or harmful UGC and notifies the user for the reason the posting failed.
  5. The title replaces inappropriate or harmful text with words or characters, such as Content Blocked, or $!*#&.
  6. User entered text which is shared real time in game, such as a lobby or in-game text overlay, or only between friends isn't filtered.
  7. Inappropriate or harmful text strings are visible to users on the local console but aren't transmitted to other non-friends beyond the local console.
  8. Guidelines for UGC, such as a terms of use or code of conduct, are available to users either in-product or on the title's website.
  9. The title doesn't block entire game modes or experiences for users with restricted UGC privileges.

Fail Examples

  1. XBOX gamertags are filtered or obfuscated.
  2. The title doesn't provide a way for users to report inappropriate or harmful UGC to the developer or allows inappropriate or harmful UGC to be visible to non-friends on other devices.
  3. The title allows the user to circumvent inappropriate or harmful UGC filtering by creating UGC in an offline state and subsequently sharing it online.
  4. Guidelines for UGC (such as a terms of use or code of conduct), aren't available to users either in-product or on the title's website.
  5. The title blocks entire game modes or experiences for users with restricted UGC privileges.

Content Packages and Updates

The requirements in this category specify how games must be packaged and how they must interact with add-on content packages.

XR-037: Dependencies on Content Packages *

Purchase of add-on content (durable or consumable) must not be required for users to complete any of the main features or content of the base game. Optional content packages must not have dependencies on other optional content packages. That is, a user must not be required to download additional content packages in order to use a content package. Game saves with unique content tied to add-on content must still load on the base game or provide clear messaging explaining why it can't be loaded.

More information

The key aspects of this requirement are:

  1. Users must not be required to purchase add-on content to complete the main features of the base game.
  2. Users must not be required to purchase additional add-on content to use another content package. Add-on content must be usable independently from other add-on content.
  3. Game saves with unique content tied to add-on content must still load on the base game or provide clear messaging explaining why it can't be loaded. As a best practice, the messaging should include a prompt to download the content if already owned or prompt the user for potential purchase if not owned.
  4. Titles that support add-on content required for multiplayer gameplay must provide clear messaging to users who don't have the content installed.

Implementation guidance and best practices

Ideally, games gracefully handle the situation where the user previously played with add-on content that's now removed and let the user load and continue from their game save. If this isn't possible, games must clearly message the user, indicating that the content needs to be installed to load the game save. Titles can query to see whether the user has an entitlement to that content and either:

  1. Prompt the user to download the specific content if already owned.
  2. Prompt the user for potential purchase of that content if not owned.

037-01 No Content Package Save-Game Dependencies for Base Title

Test Steps

  1. Sign in to an XBOX profile and launch the title.
  2. Attempt to access all features and content of the base title. Verify that the user isn't required to download any add-on content.
  3. Download an available content package that can be used within the title.
  4. Load and use the content package, progressing far enough to create a content-based game save.
  5. Return to Home and delete the content package.
  6. Launch the title again.
  7. Ensure that the game save can be loaded successfully and that gameplay can continue, or that the user is clearly informed why it can't continue.
  8. Messaging must be clear and inform the user specifically how to troubleshoot the issue.
  9. Repeat steps 1-8 with all other supported content packages.

Expected Result
Users must be able to complete any of the main features and/or content of the base title without needing to purchase add-on content. Titles must function correctly, or clearly inform the user why they can't function correctly, after a user deletes a content package.

Pass Examples

  1. The user is able to complete all features and content included with the base title without needing to purchase add-on content. All aspects of the title can be played without issue after the user deletes a content package.
  2. After creating a save within an area provided by the content package and then subsequently deleting the content package, the game clearly messages the user, indicating that content x needs to be installed to load the game save. Titles can also query to see whether the user has an entitlement to that content and either prompt the user to download the specific content if already owned, or prompt the user for potential purchase of that content if not owned.

Fail Examples

  1. The user is forced to purchase add-on content in order to complete features or content included in the base title. After the user downloads content package 1 and content package 2 during step 3, the ability to use content package 2 in-game is lost if content package 1 is then deleted.
  2. A content save-game dependency exists and the content isn't installed, and the game doesn't clearly message the user indicating that the content needs to be installed to load the game save.

037-02 No Dependencies on Other Content Packages

Test Steps

  1. Sign in to an XBOX profile.
  2. Launch the title.
  3. Download a single piece of add-on content that the title supports.
  4. Attempt to use the content within the title.
  5. Verify that the user isn't required to download additional content in order to make use of the content from step 3.
  6. Exit the title and delete the content from step 3.
  7. Repeat steps 2-6 for each piece of content supported by the title.

Expected Result
Users must not be required to download additional content packages in order to use a content package. Content packages must be usable in their own right.

Pass Examples

  1. The title doesn't require the user to download additional content in order to use a separate content package.

Fail Examples

  1. A user is required to download additional content in order to use a separate content package.

037-03 DLC Dependency

Test Steps

  1. Sign in to an XBOX profile.
  2. Download downloadable content (DLC) for the title.
  3. Progress into gameplay and save progress using the DLC.
  4. Exit the title.
  5. Remove the DLC from the gaming device (console, PC).
  6. Launch the title and attempt to access saved progress.

Expected Result
The title gracefully handles the presence of a game save that was created with DLC when that DLC is no longer installed.

Pass Examples

  1. The user is able to load their saved progress and interact with the title without issue.
  2. The user is notified that specific DLC is required to access their saved game.

Fail Examples

  1. The title becomes unusable when the DLC isn't present.
  2. The user is unable to access saved progress and doesn't receive notification as to the reason.

037-04 Multiplayer DLC

Test Steps

  1. Sign in to an XBOX profile.
  2. Launch the title.
  3. Gaming device A: Download all available downloadable content that's usable in multiplayer gameplay.
  4. Gaming device A: Host a game session using the downloadable content (levels, characters, cars, tracks, and so on).
  5. Gaming device B: Attempt to join the game session created by gaming device A using all possible methods.
  6. If it isn't possible to join the game session, verify that a clear indication is given explaining, or allowing the user to easily infer, why it isn't possible to join.
  7. Repeat steps 3-6 for all game modes.
  8. Repeat steps 3-6 with gaming device B as the host.

Expected Result
Titles that support downloadable content required for multiplayer gameplay must provide a clear indication to users who don't have the downloadable content installed.

Pass Examples

  1. Users are given proper messaging when attempting to join sessions with DLC requirements if they don't meet the requirements, and are provided information on how to resolve the issue (download, re-download, and so on).
  2. Through the use of icons and/or other on-screen elements, users are given clear notification when attempting to join sessions with DLC requirements if they don't meet the requirements, and are provided, or can easily infer, information on how to resolve the issue.
  3. Users who meet the DLC requirements for a multiplayer match are able to join the sessions and play.

Fail Examples

  1. Users who don't meet the DLC requirements of a multiplayer session aren't given clear visual indication of the DLC requirement and how to resolve it.
  2. Users who meet the DLC requirements of a multiplayer session aren't able to join together.

Purchasing from in-game stores and from the Microsoft Store

The requirements in this category specify how purchases are to be made from in-game stores and the Microsoft Store. For policies on pricing, metadata, and offers, see the Game Publishing Guide.

User Profiles

The requirements in this category apply to how a game interacts with the XBOX user models, profiles, and saving user data.

XR-112: Establishing a User and Controller During Initial Activation and Resume *

Titles must establish one or more active users to function as the primary user or users in the title, and handle the user or users when resuming from suspension, sleep, or hibernate. Titles do this with the GDK by using either the Simplified or Advanced User Model.

GDK Simplified User Model Titles

The Simplified User Model in the GDK handles default user acquisition on behalf of the title. The title is still responsible to ensure that a controller is assigned to the user and use that controller for game input. If no controller is assigned to the default user, the title should use XUserFindControllerForUserWithUiAsync to engage the system dialog to select a controller and begin accepting input from the player.

GDK Advanced User Model

On initial activation games can choose to determine the initial user based on their game design and preference using either the user who launched the title or by explicitly prompting for a user.

The title must indicate the active user(s) before the first profile-related action (such as saving progress or settings) is taken on that user's profile.

All Microsoft Game Development Kit (GDK) titles using the advanced user model must provide an entry point to the account picker to change the active user.

When a title is resumed from suspension, sleep, or hibernate, the title must validate the user/controller pairing and react accordingly by resuming the prior user's session or acquiring a new user or users.

Note

The following table shows which test cases for XR-112 apply to your title if using the GDK Simplified User Model or the GDK Advanced User Model.

Test Cases Applicable to GDK Simplified User Model Applicable to GDK Advanced User Model
112-02 Initial User and Controller No Yes
112-03 No signed in User No Yes
112-04 Active User Indication Yes Yes
112-05 Access to Account Picker No Yes
112-06 Handling Profile Change No Yes
112-08 User Change During Suspend, Sleep, or Hibernate No Yes

112-02 Initial User and Controller

Test Steps

  1. Sign into Profile A and launch the title.
  2. Verify the active user can control the title.
  3. Repeat step [1] with no signed in profile and verify the title prompts to establish an active user.
  4. Establish the active user and verify the user can control the title.

Expected Result
Titles must set the active user to the controller/user pairing which launched the title, or show an engagement prompt to identify the controller and user, or display the account picker to sign in.

Pass Examples

  1. The title sets the active user to the controller/user pairing which launched the title.
  2. The title shows an engagement prompt to identify the controller and user.
  3. The title displays the account picker to sign in.

Fail Examples

  1. The title doesn't allow the user to control the title with the first controller used.
  2. The title doesn't prompt the user to establish an active user when launched with no user signed in.

112-03 No Signed-In User

Test Steps

  1. Verify that no users are signed in.
  2. Launch the title and enter every mode that supports the saving of user data.
  3. Validate that each mode offers the user the opportunity to sign in before any data loss occurs.
  4. Cancel the opportunity to sign in, and verify that the title provides a warning indicating that progress won't be saved.

Expected Result
Titles must offer users the opportunity to sign in if the title is in a mode that would normally save user data or game state. Titles must notify users that their progress won't be saved if they continue with gameplay without signing in

Pass Examples

  1. A user who isn't signed in is prompted to sign in when accessing a title mode that would normally save user data or game state.
  2. The user is notified that progress won't be saved if he or she continues in mode without signing in.

Fail Examples

  1. While in a mode that normally saves user data or game state, users aren't notified that progress won't be saved if they continue in that mode without signing in.
  2. Users are notified that they won't be able to save their progress after data loss has already occurred.

112-04 Active User Indication

Test Steps

  1. Sign into a profile that hasn't seen the title before and has no associated save data.
  2. Launch the title.
  3. Verify that the title identifies the active user within the UI before performing any profile-related actions. Examples of "profile-related action" include altering a user's saved game or preferences, saving data to the user's profile, awarding achievements, writing statistics for a user, or any other local or cloud usage or manipulation of user data or state.
  4. Create a save.
  5. Re-launch the title and verify that the title identifies the active user within the UI before performing any profile-related actions.
  6. Disconnect from XBOX Live.
  7. Re-launch the title and verify that the title identifies the active user within the UI before performing any profile-related actions.

Expected Result
Titles must indicate the current user context before the first profile-related action.

Pass Examples

  1. The title displays the user's gamertag and/or gamerpic within the title before performing any profile-related actions.
  2. A title that doesn't use user profiles doesn't indicate the active user.
  3. A title displays multiple active users for game modes that support multiple users.

Fail Examples

  1. The title doesn't indicate the active user of the title before performing profile-related actions.

112-05 Access to Account Picker

Test Steps

  1. Sign into a profile and launch the title.
  2. Confirm that the title allows the active user to access the account picker in the title and select a different profile.

Expected Result
Titles must allow users to access the account picker in the title to change the active user.

Pass Examples

  1. The title allows the user to access the account picker in the title.

Fail Examples

  1. The title doesn't allow the user access to the account picker in the title.

112-06 Handling Profile Change

Test Steps

  1. Sign into a profile and launch the title.
  2. Access the account picker and select a different profile.
  3. Verify that the title reacts appropriately and switches the context of the active user to the new profile.
  4. Repeat steps 1-4 for every location in the title where there's access to the account picker.

Expected Result
Titles must allow users to seamlessly change to another user's context.

Pass Examples

  1. The title notifies the user that changing the active user could result in data loss and prompts the user for confirmation before proceeding to the account picker.
  2. The title updates appropriately to the context of the new active user.

Fail Examples

  1. The title doesn't appropriately update to the context of the new active user.

112-08 User Change During Suspend, Sleep, or Hibernate

For how to suspend a game on XBOX consoles and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

For the purposes of this test case, on XBOX consoles suspend the game at step 2 by launching the Settings app and keeping it in focus for ten minutes so the signed-in user can be changed. On PC and handheld devices, put the system into Sleep or Hibernate at step 2.

Test Steps

  1. Sign in to a profile and launch the game.
  2. At various locations throughout the game:
    • On XBOX consoles, suspend the game by launching the Settings app and keeping it in focus for ten minutes.
    • On PC and handheld devices, put the system into Sleep or Hibernate.
  3. While the game is in the suspended, sleep, or hibernate state, change the active user. On XBOX consoles, sign out of profile A and sign into profile B. On PC and handheld devices, switch to a different Windows user account.
  4. With the device powered back on, resume the game and verify the game reacts accordingly to the new active user.
  5. Enter gameplay with the new active user and verify the user is able to make progress.

Expected Result

  1. When a game is resumed from suspension, sleep, or hibernate, the game must verify if all previously engaged users are still signed into the gaming device.

Pass Examples

  1. The game automatically switches the active user context to profile B upon resuming.
  2. The game automatically removes profile A from the game or reestablishes a new user and uses that new user's state for gameplay.

Fail Examples

  1. The game doesn't update to remove profile A from the context as the active user.
  2. The game continues to use profile A's state for gameplay after a new profile is selected.

XR-115: Addition and Removal of Users or Controllers During Gameplay *

Titles which support multiple users must respond to the addition and removal of users or scenarios in which an active player has no controller assigned or a controller loss during gameplay as follows:

Controller Addition:
After the title selects or receives the initial user and controller, it can optionally accept input from other controllers. Titles that support multiplayer experiences should consider how an additional player or controller is added into game play and is bound to a user with XUserAddAsync. For example, 'Press A to join' or illustrating a controller silhouette on a player select screen.

Controller Removal:
If the player's controller that's driving gameplay is removed during gameplay, titles must allow reestablishment of a new active controller (for example, "Press A to continue" or receiving a ControllerPairingChanged in ERA or XUserDeviceAssociationChangedCallback event in the GDK for the active user with a valid controller). Titles can also invoke system UX using XUserFindControllerForUserWithUiAsync to prompt the user to pair a controller to their user and return to gameplay.

User Addition:
When using the GDK (using either Simplified or Advanced User Models), users are only added when the title calls XUserAddAsync.

Primary User Removal:
For titles using the GDK advanced user model, if the primary user is signed out (via the guide, SPOP or other means), the title must either remove the player from the game or reestablish a user and active controller.

For titles using the GDK Simplified User Model, the primary player being removed results in the title being suspended at the system level.

In all scenarios, titles handle removal/closure by placing their game in a good state. This includes writing to connected storage, notifying any relevant MPSD sessions that the user left, and bringing the user to an appropriate place for sign-in if no new user was added.

Additional/Secondary User Removal:
Titles can handle this event in their discretion, usually by removing the player from game play immediately or prompting the player to rejoin in the context of the multiplayer experience being used.

Note

The following table shows which test cases for XR-115 apply to your title if using the GDK Simplified User Model or the GDK Advanced User Model.

Test Cases Applicable to GDK Simplified User Model Applicable to GDK Advanced User Model
115-02 Removal of Controllers Yes Yes
115-03 Removal of Users No Yes

115-02 Removal of Controllers

Test Steps

  1. Sign into a profile and launch the title.
  2. At various points during the title's use, remove the batteries from the controller.
  3. Replace the batteries in the controller and verify that the user can continue to use the title.
  4. Repeat Steps 1-3 but connect a second controller rather than replacing the batteries.

Expected Result
Titles must respond to the removal and addition of controllers correctly.

Pass Examples

  1. The active user should be able to continue using the title following the removal or addition of a controller.
  2. The user is prompted to re-establish a new active controller (for example, "Press A to continue" or by invoking the system UX).

Fail Examples

  1. Users are unable to continue using a title following the removal of a controller.

115-03 Removal of Users

Test Steps

  1. Sign into Profile A and ensure no other profiles are signed in.
  2. Launch the title and progress into gameplay.
  3. At various points during the title's use, sign out of Profile A.
  4. Verify that the title either invokes the account picker or returns the user to the front end.
  5. Where possible, interact with the title in the following ways:
    • Sign into Profile A and ensure that the title doesn't further interrupt the user's experience.
    • Sign into Profile B and ensure that the title updates to the context of the new user.

Expected Result
The title must either remove the player from the game or re-establish a user and active controller. If the player is removed from the game, the title should be left in a good state. This includes writing to connected storage, notifying any relevant MPSD sessions that the user left, and bringing the user to an appropriate place for sign-in if no new user was added.

Pass Examples

  1. The title removes the player from the game and returns to the front end.
  2. The title allows the user to re-establish a new user and correctly updates to the relevant user context.

Fail Examples

  1. The title fails to react to the change in user state.
  2. The title continues to use Profile A's user state after a new profile is selected.

XR-045: XBOX network and Account Privileges *

XBOX network provides users with an expected level of privacy and online safety for themselves and their children. In order to deliver on that promise, titles must check the XBOX network service for privileges to complete certain actions on the XBOX network service or in a title experience.

While privilege checking and adherence applies to all accounts, it's important to note the experience and expectations for child accounts specifically. For child accounts, restrictions on certain activities may be blocked due to age-based defaults and/or configurations by the child's family organizer (parent or guardian). Children can't make changes themselves, however, with certain activities it's possible and expected the title invokes the necessary system UI to allow young players to request an exception via an approval flow for that associated activity. In such circumstances, for instance, a young player may be blocked from multiplayer globally, but the family parent or guardian could approve multiplayer for the specific title via the system UI; then the child would and should be able to access this game mode for that specific title.

Activity ID Privilege Name Notes
Playing in a multiplayer game session 254 XPRIVILEGE_MULTIPLAYER_SESSIONS Allows a user to join online multiplayer gameplay sessions with real-world users (not bots) in scenarios such as: Synchronous player-vs-player gameplay in the same session, asynchronous turn-based gameplay, Team-based gameplay, User-initiated matchmaking, Sending or accepting invitations, Join-in-progress sessions. Note this privilege doesn't pertain to local multiplayer games run on the same device.
Playing in a cross-network game play session 185 AuthPrivileges.CrossNetworkPlay Allows a user to participate in a gameplay session with other real-world players who aren't signed into XBOX services in scenarios such as: Synchronous player-vs-player gameplay in the same session, asynchronous turn-based gameplay, Team-based gameplay, User-initiated matchmaking, Sending or accepting invitations, Join-in-progress sessions.
Communication with anyone 252 XPRIVILEGE_COMMUNICATIONS Allows a user to communicate with any other XBOX network users through voice or text.
Shared gaming sessions 189 XPRIVILEGE_SESSIONS Allows a user to participate in connected single-player experiences in shared environments or in scenarios where a title is a hybrid free to play and paid multiplayer title and uses this privilege to gate those experiences XBOX consoles. Single player experiences must not have any features covered under privilege 252 or 254 (Communications and Multiplayer, respectively). Use of this privilege is a title capability that requires platform approval.
User-generated content (UGC) 247 XPRIVILEGE_USER_CREATED_CONTENT Allows a user to see other users' UGC online, download other users' UGC, or share their own UGC online. This doesn't restrict usage of previously downloaded UGC.
Sharing to a social network 220 XPRIVILEGE_SOCIAL_NETWORK_SHARING XBOX consoles Only: Allows a user to share information, including game progress, Kinect-generated content, game clips, and so on outside of the XBOX network.

Free to play titles, demos, or betas can be configured to allow multiplayer gameplay (ID 254) for players who aren't Game Pass subscribers. This is done via a service side configuration and can be initiated by contacting your Microsoft representative. These titles must continue to check for the multiplayer game privilege to ensure that parental controls and player choices are respected.

045-01 Respect User Privileges

Test Steps

  1. Sign in to an XBOX profile and launch the title.
  2. For each of the privileges identified in the XR Remarks, identify if the title supports the associated activity.
  3. For each possible setting of each applicable privilege identified in step 2, perform the following:
    • Exit the title and change the user's settings for the privilege.
    • Restart the console.
    • Sign into the same profile and launch the title.
    • Visit all relevant areas of the title, use all title features relevant to the privilege and verify that the title respects the user's current privilege setting.
    • Attempt to access all offline and online areas using a Silver XBOX profile.

Expected Result
Titles must honor the user's privilege settings.

Pass Examples

  1. The title respects the user's privilege settings.
  2. The title treats a partial-allow privilege setting as if the privilege is disabled / disallowed (for example when the User-generated content (UGC) privilege is set to Friends Only, the title behaves as if the privilege is set to Blocked).
  3. For titles using the XDK, the title invokes the system UI to alert the user of any privilege conflicts (titles must use the Store::Product::CheckPrivilegeAsync API). When the system UI can't be invoked (privileges 252, 189, 247) the title shows an informative message to let the user know they can't participate.
  4. For titles using the GDK, the title invokes the system UI to alert the user of any privilege conflicts (titles must use the XUserCheckPrivilege and XUserResolvePrivilegeWithUiAsync APIs). When the system UI can't be invoked (privileges 252, 189, 247) the title shows an informative message to let the user know they can't participate.
  5. For titles using XSAPI, the title shows an informative message to let the user know they can't participate.

Fail Examples

  1. The title persists a user's privilege settings and doesn't reflect the user's actual privileges after they have been changed.
  2. The title treats a partial-allow privilege setting as if the privilege is set to its least restrictive setting (for example when the User-generated content (UGC) privilege is set to Friends Only, the title behaves as if the privilege is set to Allowed).
  3. For titles using the XDK or GDK, the title uses in-game messaging to alert the user of any privilege conflicts and doesn't display the System UI.
  4. For titles using XSAPI, the title doesn't show an informative message to let the user know they can't participate.

045-02 Respect User Privileges - XBOX Family

Test Setup and Configuration

  • XBOX Family which includes the following Microsoft accounts:
  • Adult (greater than 18 years) designated as Organizer.
  • Child (less than 13 years) with the Child Default privilege settings:
Activity Child Default Privilege Setting
You can join multiplayer games Block
You can join cross-network play Block
You can communicate with voice, text, or invites Friends
You can communicate outside of XBOX network with voice & text Block
You can see and upload community creations Block
You can share outside of XBOX Block

References and Links

Test Steps

  1. Sign into the adult and child Microsoft accounts and launch the title with the child account.
  2. For each of the privileges identified in the XR Remarks, identify if the title supports the associated activity.
  3. For each possible setting of each applicable privilege identified in step 2, perform the following:
    • Verify the associated activity is allowed/not-allowed based on the account privileges. For example: the title supports multiplayer, and the child account has the multiplayer privilege blocked. Verify the title blocks all multiplayer activity for the child and the parental permission prompts (system TCUI) are displayed when the child attempts to participate in multiplayer activities.
    • Exit the title and change the user's child's privilege settings for the privilege activities the title supports; going from blocked to allowed. For example: changing multiplayer or user generated content from blocked to allowed.
    • Restart the console.
    • Sign into the same profile and launch the title.
    • Visit all relevant areas of the title, use all title features relevant to the privilege and verify that the title respects the user's current privilege setting. For example: the title supports multiplayer. The child was blocked but now has been granted multiplayer. The title properly allows the child to access multiplayer game mode(s).
  4. Repeat steps 2-3 with a parent account not signed into the console.

Expected Results
Titles must respect all XBOX Family member's privilege settings.

Pass Examples

  1. The title respects a child's privilege settings.
  2. The title allows a child to participate in an activity when the privilege for that activity is allowed.
  3. The title doesn't allow a child to participate in an activity when the privilege for that activity is blocked.
  4. The title allows a child to participate in an activity that's blocked after permission for that activity is allowed by the parent (via the parental permission UI).
  5. The title doesn't allow a child to participate in an activity that's blocked and permission for that activity isn't allowed by the parent (via the parental permission UI).
  6. The title treats a partial-allow privilege setting as if the privilege is disabled / disallowed (for example when the User-generated content (UGC) privilege is set to Friends Only, the title behaves as if the privilege is set to Blocked).
  7. For titles using the XDK, the title invokes the system UI to alert the user of any privilege conflicts (titles must use the Store::Product::CheckPrivilegeAsync API). When the system UI can't be invoked (privileges 252, 189, 247) the title shows an informative message to let the user know they can't participate.
  8. For titles using the GDK, the title invokes the system UI to alert the user of any privilege conflicts (titles must use the XUserCheckPrivilege and XUserResolvePrivilegeWithUiAsync APIs). When the system UI can't be invoked (privileges 252, 189, 247) the title shows an informative message to let the user know they can't participate.
  9. For titles using XSAPI, the title shows an informative message to let the user know they can't participate.

Fail Examples

  1. The title doesn't respect the child's privilege settings.
    • Example: The title supports multiplayer and allows the child with multiplayer blocked to access multiplayer game modes.
  2. The title doesn't invoke the proper UI to alert and inform the child of privilege conflicts.
    • Example: The title supports multiplayer, but the child is never prompted for parental permission when the privilege is blocked.
  3. The title allows a child to participate in an activity when the privilege for that activity is blocked.
  4. The title doesn't allow a child to participate in an activity when the privilege for that activity is allowed.
  5. The title allows a child to participate in an activity that's blocked and permission for that activity isn't allowed by the parent (via the parental permission UI).
  6. The title doesn't allow a child to participate in an activity that's blocked and permission for that activity is allowed by the parent (via the parental permission UI).
  7. The title persists a user's privilege settings and doesn't reflect the user's actual privileges after they have been changed.
    • Example: The title supports multiplayer. The child account has multiplayer blocked but is granted permission by the parent through the system UI. The title continues to block multiplayer even though the privilege has been granted.
  8. The title treats a partial-allow privilege setting as if the privilege is set to its least restrictive setting. For Example: When the user-generated content (UGC) privilege is set to Friends Only, the title behaves as if the privilege is set to Allowed.
  9. For titles using the XDK, the title doesn't invoke the system UI to alert the user of any privilege conflicts (titles must use the Store::Product::CheckPrivilegeAsync API). When the system UI can't be invoked (privileges 252, 189, 247) the title doesn't show an informative message to let the user know they can't participate.
  10. For titles using the GDK, the title doesn't invoke the system UI to alert the user of any privilege conflicts (titles must use the XUserCheckPrivilege and XUserResolvePrivilegeWithUiAsync APIs). When the system UI can't be invoked (privileges 252, 189, 247) the title doesn't show an informative message to let the user know they can't participate.
  11. For titles using XSAPI, the title doesn't show an informative message to let the user know they can't participate.

XR-046: Display Name and Gamerpic *

On XBOX consoles, titles must use the gamertag as their primary display name.

Based on design choice, titles can choose between the player's modern gamertag or their classic gamertag. Modern gamertag is available in the GDK and classic gamertag is available in both ERA and the GDK.

On non-console platforms, while not required, we recommend you use the XBOX network player's gamertag in the appropriate locations within the game title's experience.

The gamertag must be displayed correctly in the title based on the gamertag type used:

Modern Gamertag
Display all 16 characters of the unique modern gamertag, which includes up to 12 characters of the modern gamertag, followed by # and the suffix number (if present). For example: Major Nelson (no suffix present) or Major Nelson#881. If modern gamertags are used, all Unicode character ranges available for modern gamertags must be supported. For more modern gamertag information and best practices, visit the GDK development documentation article 'Overview of modern gamertags'.

Classic Gamertag
Correctly display all 15 characters of the classic gamertag. Classic gamertags include only ASCII characters a-z, A-Z, 0-9, comma (,), and space (ASCII character 0x20). For example: Major Nelson

In the GDK, these items are returned using the XUserGetGamertag API. In ERA, the gamertag is obtained using the GetUserProfileAsync API.

046-01 Display Name and Gamerpic

Tools Needed

  • XblTestAccountGui.exe from the GDK

Preparation
Create four test accounts for each of the following names and change the gamertag using XblTestAccountGui.exe for each test account to the following:

  • สฐ众нь컴퓨퓨
  • आथाώঙぁヺ
  • øÜêþЯЂў
  • gttest1

Test Steps

  1. Locate and view where gamertags are displayed within the title.
  2. Check to see how the users' gamertag is displayed in all areas identified in Step [1].
  3. If the title displays users' pictures, verify that the correct Microsoft account picture or gamerpic appears for each account.

Expected Result
The user's gamertag must be displayed correctly.

Pass Examples

  1. The gamertag correctly shows the Unicode characters (including the auto-generated suffix) when using Modern Gamertag.
  2. The gamertag is correctly shown when using Classic Gamertag.

Fail Examples

  1. The gamertag isn't rendered at all because the Unicode characters are shown as blank characters.
  2. The gamertag isn't correctly shown when using Classic Gamertag.

XR-047: User Profile Access *

Titles must give users the option to access other XBOX network users' gamercards (user profiles) wherever users' display names are enumerated.

047-01 User Profile Access

Test Steps

  1. Devices 1 and 2: Boot the title.
  2. Devices 1 and 2: Sign in to an XBOX profile.
  3. Device 1: Set up an XBOX multiplayer game session.
  4. Device 2: Find and join the game session created by console 1.
  5. Verify the following after device 2 has joined the game session:
    • From the pre-game lobby, access another XBOX user's gamercard by selecting the gamertag or username.
    • During gameplay, attempt to access another XBOX user's gamercard by selecting the user's username or gamertag (this may or may not be possible, depending on the title).
    • From the post-game statistics screen, access another XBOX user's gamercard by selecting the user's username or gamertag.
    • From the leaderboards area, access another XBOX user's gamercard by selecting the user's username or gamertag.
    • Find any other area where gamertags are listed, and attempt to access another XBOX user's gamercard by selecting the user's username or gamertag.

Expected Result
It's expected that the user will be able to view the other XBOX user's gamercard information.

Pass Examples

  1. A user is able to access another XBOX user's gamercard in all locations where gamertags are displayed and UI navigation is enabled.
  2. A user is able to access another XBOX user's gamercard in leaderboards, session lobbies, post-game statistics, and other in-game menus regardless if UI navigation is enabled.

Fail Example

  1. A user is unable to access another XBOX user's gamercard in any location where gamertags are displayed and UI navigation is available.

  2. A user is unable to access another XBOX user's gamercard in leaderboards, session lobbies, post-game statistics, and other in-game menus regardless if UI navigation is enabled.

  3. A user is unable to access another XBOX user's gamercard in any location where gamertags are displayed and UI navigation is enabled.

XR-048: Profile Settings Usage *

The XBOX network is the source of truth for XBOX user profile information. To support this, titles must not store users' information sourced from the XBOX network, such as profile data, preferences, or gamertags, beyond a locally stored cache intended to support scenarios of network disconnection. Any offline caches must be updated upon the next available connection to the service.

048-01 Profile Settings Usage

Configuration

  • 2 XBOX devices

Test Steps

  1. Select a profile and create a save.
  2. Change user profile data, including updating a gamertag or account name.
  3. Boot the title and load the save made in Step [2].
  4. Verify that the user-profile data visible during gameplay have changed and aren't stored in the save game.
  5. Verify that any reference to the gamertag (created automatically by the title) has been updated. This includes any reference on server-hosted functionality as well as any reference within the title.
  6. Boot the title on a second device and verify the updated gamertag is displayed correctly.

Expected Result
User-profile data must not be stored. For instance, if the title uses the gamertag in-game (like in a welcome message) or on a non-XBOX server (such as naming uploaded data), it must not persist if the user changes their gamertag. This doesn't apply if the user has manually entered the gamertag.

Pass Examples

  1. User-profile data and preference settings are updated in all displays after they have been changed.

Fail Examples

  1. The title doesn't display the user's updated gamertag or Microsoft account name either within the title or on XBOX Home for locally stored save data such as replays, saves, options, maps, and teams.
  2. The title doesn't update a user's gamertag for persistent posts, such as game clips, replays, leaderboards, or other custom posts, such as messages, bulletin posts, user challenges, costumes, themes, livery, tournaments, and league. Note: This applies to both new and previously created posts.
  3. The title stores the user's gamertag for the user's saved data, such as replays, saves, options, maps, and teams, resulting in the save data becoming unusable if the user changes their gamertag or account name.

XR-052: User State and Title-Save Location, Roaming and Dependencies *

Titles must associate progress, saved state, preferences, achievements, and other rewards with the user(s) who recorded that progress, chosen the preferences, or earned the rewards. Titles accomplish this by properly handling user-change notifications. Titles must avoid saving state for users who are no longer signed in. Game save data must not have any dependencies on shared content or local storage.

For games that use the same TitleID across platforms, devices and/or console generations, game save progress must roam when the user is signed into the XBOX network as follows:

  • Within the same platform (XBOX consoles).
  • Within devices on the same platform (for example, XBOX One and XBOX One S).
  • Across generations in the device platform (for example, XBOX One and XBOX Series X|S).
  • Across PCs in the Windows platform (for example, between two different PCs).
  • If the game is XPA, across PCs in the Windows platform and XBOX console platforms (for example, Windows and XBOX Series X|S).
  • For non-XPA games, roaming across PCs in the Windows platform and XBOX console platforms (for example, Windows and XBOX Series X|S) isn't required but is recommended to support the player's experience.
  • For non-Microsoft platforms (for example, iOS, Android, Switch, PlayStation®) game save roaming isn't required but is recommended to support the player's experience.

More information

Shared content is content that might not be present on a roamed console, such as a game add-on, when a game save is loaded. The content might not be available because it hasn't been downloaded by or isn't owned by the current signed-in user.

Developers using the GDK can use XGameSave, XGameSaveFiles, or PlayFab Game Saves as an easy way to implement these requirements.

A key aspect of this requirement pertains to handling situations in which the primary user of a title changes while the title is active, suspended, or terminated. The title's "primary user" changes when the title is activated from the Home screen of a user other than the one who activated the title last, and other users on the console can sign in or out at any point in the title's lifetime. Titles are required to provide an experience that's appropriate to the primary user and the other users on the console and to save title-state information for each user. Because users can sign in to (and out of) the XBOX network outside the context of any given title, titles must be robust in the case of users changing. For instance, titles should avoid using the tokens or identifiers of users who are no longer signed in.

Titles must not cause unintentional loss of user data.

Note

The following table shows which test cases apply to your title if using the GDK Simplified User Model or the GDK Advanced User Model. Refer to XR-112 for additional details regarding the use of the Simplified User Model versus the Advanced User Model.

Test Cases Applicable to GDK Simplified User Model Applicable to GDK Advanced User Model
052-01 User Sign-In and Sign-Out No Yes
052-02 User Change During Suspend, Sleep, and Hibernate No Yes
052-05 Correct User Association Yes Yes
052-06 Cloud Storage: Roaming Yes Yes

052-01 User Sign-In and Sign-Out

Test Steps

  1. Ensure that Profile A has save data including game progress and user preferences.
  2. Ensure that Profile B doesn't have any save data.
  3. Sign into Profile A and launch the title. Ensure all save data have been preserved by visiting all areas of the title, including but not limited to:
    • Single-player or multiplayer game sessions
    • Menus
    • Video or audio playback
  4. Sign out of Profile A and sign into Profile B.
  5. Verify that the title correctly updates the user progress, saved state, preferences, achievements, or other awards of Profile B by revisiting all areas of the title validated in step 3.
  6. Begin gameplay to create save progress, and alter user preferences for Profile B.
  7. Terminate and re-launch the title and verify that the save data from step 6 is reflected accurately.
  8. Sign out of Profile B.
  9. Delete save data 'Everywhere' from Profile A and repeat steps 3-7.

Expected Result
Changes to the primary user should be treated appropriately by the title.

Pass Examples

  1. User progress, saved state, preferences, achievements, or other awards are associated with the correct user following a user change.

Fail Examples

  1. The title incorrectly associates user progress, saved state, preferences, achievements, or other awards with a user following a user change.
  2. The title continues to award save data to the first user.
  3. A new user can alter a prior user's save data, state or profile after they have signed out.

052-02 User Change During Suspend, Sleep, and Hibernate

For how to suspend a game on XBOX consoles and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

For the purposes of this test case, on XBOX consoles suspend the game at step 2 by launching the Settings app and keeping it in focus for ten minutes so the signed-in user can be changed. On PC and handheld devices, put the system into Sleep or Hibernate at step 2.

Test Steps

  1. Sign in to a profile and launch the game.
  2. At various locations throughout the game:
    • On XBOX consoles, suspend the game by launching the Settings app and keeping it in focus for ten minutes.
    • On PC and handheld devices, put the system into Sleep or Hibernate.
  3. Change the active user. On XBOX consoles, sign out the primary user and sign in as a different user. On PC and handheld devices, switch to a different Windows user account.
  4. Launch the title using the new user and attempt to continue from the previous user's location.
  5. Repeat Steps 1-4 for all areas of the title.

Expected Result
Changes to the primary user should be treated appropriately by the title.

Pass Examples

  1. The title state upon launching with a different user is contextually appropriate for the type of title.
  2. User progress, saved state, preferences, achievements, or other awards are associated with the correct user following a user change.

Fail Examples

  1. The title incorrectly associates user progress, saved state, preferences, achievements, or other awards with a user following a user change.
  2. The title continues to award save data to the first user.
  3. A new user can alter a prior user's save data, state or profile after they have signed out.

052-05 Correct User Association

Test Steps

  1. Sign in to a profile and Launch the title.
  2. Progress into gameplay and save game progress.
  3. Terminate the title.
  4. Sign out of the profile from Step 1 and sign in to a new profile.
  5. Launch the title and attempt to access saved progress.

Expected Result
Progress saved for the original user must not be visible/accessible to the new profile.

Pass Examples

  1. Only saved progress associated with the new profile in step 4 is shown in step 5.

Fail Examples

  1. The title allows a new profile to load a different profile's saved progress.

052-06 Cloud Storage: Roaming

Devices Needed

  • XBOX One
  • XBOX One S
  • XBOX One X
  • XBOX Series X|S
  • 2 PCs

Test Steps

  1. Sign in to an XBOX profile on device A and launch the title.
  2. Begin gameplay and make save progress (if possible, create a settings save by changing or adding a new setting configuration).
  3. Exit the title.
  4. Sign in on a second device from the same platform/generation (for example, XBOX Series S and XBOX Series X, XBOX One and XBOX One S and a second PC) that was used in Step 1 with the same profile used in Step 1.
    • Launch the same title from Step 1 and verify that all saved games and any settings and/or configuration files can be accessed and loaded correctly and they don't have any dependencies on shared content.
  5. For games using the same TitleID on the same platform across generations (for example, XBOX One and XBOX Series X|S), repeat step 4.
  6. For PC games using the same TitleID on the Windows platform, repeat step 4.
  7. If supported, for games using the same TitleID across platforms (for example, Windows and XBOX Series X|S):
    • Launch the same title from Step 1 on the other supported platforms and verify that all saved games and any settings and/or configuration files can be accessed and loaded correctly and they don't have any dependencies on shared content.

Expected Result
Title-save progress must be associated with a user profile and must roam between like devices/platforms when the user is signed into XBOX services. For games using the same TitleID on the same platform across generations, game save data must roam between these platforms. For PC games using the same TitleID on the Windows platform, game save data must roam between different PCs. Game save data must not have any dependencies on shared content.

Pass Examples

  1. Game saves and associated settings files can be downloaded successfully on a second console on the same console platform/generation (for example, XBOX Series S and XBOX Series X or XBOX One and XBOX One S).
  2. Game saves and associated settings files can be downloaded successfully on a second PC on the Windows platform.
  3. For console games that share the same TitleID on the same platform across generations (for example XBOX One and XBOX Series X|S), saves and associated settings files can be roamed between these devices.
  4. Game save data doesn't have any dependencies on shared content.

Fail Examples

  1. Game saves and associated settings files can't be downloaded successfully on a second console on the same platform/generation (for example, XBOX Series S and XBOX Series X or XBOX One and XBOX One S).
  2. Game saves and associated settings files can't be downloaded successfully on a second PC on the Windows platform.
  3. For console games that share the same TitleID on the same platform across generations (for example XBOX One and XBOX Series X|S), saves and associated settings files can't be roamed between these devices.
  4. The saves in the cloud aren't recognized by the title on first launch, and through no user interaction, are subsequently overwritten on the second device.
  5. Game save data has dependencies on shared content.

Achievements and Awards

The following requirements apply to titles that offer achievements on the XBOX network. All games targeting XBOX consoles are required to have Achievements and meet the following requirements. Demos aren't allowed to have achievements; however, they have the option of supporting Hero Stats.

XR-055: Achievements and Gamerscore *

Titles must provide the required number (minimum and maximum) of achievements and their associated gamerscore at launch. Titles are permitted to add achievements or gamerscore at any time after launch, with or without corresponding new content, but they can't exceed title-based or calendar-based limits.

A single achievement can't exceed 200 gamerscore and all achievements in the title must be achievable.

Unlocking achievements in the base game or a content update must represent a thorough exploration of or engagement with game content.

Item Launch Semi-annual additions Lifetime limit
Minimum achievements 10 0 10
Maximum achievements 100 100 500
Gamerscore 1000 1000 5000

Note

"Semi-annual" means January-June, July-December. Base game achievements and Gamerscore don't count towards the semi-annual limits.

Achievements must not be shared across titles. When a single title is supported across different devices by using the same title ID, the title must share the same set of achievements and can, at its discretion, have device-specific achievements.

Achievement names and descriptions may contain only content that would merit a rating of PEGI 12, ESRB EVERYONE 10+, or lower. Achievement names and descriptions may not contain what is commonly considered profanity in a clear text or redacted form.

055-01 Achievements

Test Steps

  1. Review the amount of gamerscore and total number of achievements supported by the title.
  2. Play through the title and attempt to gain as many achievements as possible.
  3. Repeat step 2 after resuming from suspend on a console, and after resuming from Sleep and Hibernate on a PC or handheld device.
  4. Repeat step 2 while disconnected from XBOX services.

Expected Result
All achievements unlock according to their criteria and the maximum possible Gamerscore for the base game's launch is 1000G spread between 10-100 achievements. All achievements represent a thorough exploration of or engagement with game content.

Pass Examples

  1. All achievements can be gained.
  2. Achievements unlock as per their criteria.
  3. All achievements represent a thorough exploration of or engagement with game content.
  4. The launch version of the game has 1000 gamerscore spread across 10-100 achievements.

Fail Examples

  1. An achievement doesn't unlock when the criteria has been met.
  2. An achievement unlocks before the criteria has been met.
  3. Achievements don't represent a thorough exploration of or engagement with game content.
  4. All achievements can be unlocked within a few minutes of starting the game.
  5. Achievements can be unlocked without any (or minimal) user input unless required as part of the core gameplay loop.
  6. The launch version of the game doesn't have 1000G.
  7. The launch version of the game has more or fewer than 10-100 achievements.
  8. Achievements don't unlock after resuming from suspend on a console, or from Sleep or Hibernate on a PC or handheld device.
  9. A single achievement exceeds 200 gamerscore.
  10. Achievements don't unlock after reconnection to XBOX services.

XR-057: Unlocking Achievements *

Titles must provide a way for a user to earn all achievements defined by the base title without being required to purchase additional in-title content.

Achievements must be unlocked through in-game actions, gameplay, and/or experiences.

Titles must not provide players alternative options that unlock achievements directly without corresponding gameplay activity. A non-exhaustive list of disallowed options:

  • A real-money purchase
  • In-game cheat codes, consoles, or menu options

These options may be used to reduce the difficulty of the gameplay required to unlock achievements.

After an achievement has been published to users, it can't be removed, nor can its unlock rules or rewards be changed. Achievement text (name and description) and art (icons and background) can be modified.

057-01 No Additional Purchases Required for Base Achievements

Test Steps

  1. Review the achievement descriptions on the base title.
  2. Verify that they don't require additional purchases or content.
  3. Gain all achievements.

Expected Result
All achievements can be gained without being required to purchase additional in-title content.

Pass Examples

  1. All achievements can be gained without being required to purchase additional in-title content.
  2. No achievements require additional in-title content.

Fail Examples

  1. The user is required to purchase additional in-title content to unlock an achievement defined by the base title.

Multiplayer Sessions

The requirements in this category pertain to game titles that provide multiplayer sessions on XBOX. XBOX offers a consistent and simple way to find multiplayer sessions and to fine-tune the parameters used to find those sessions.

XR-064: Joinable Game Sessions and Online Play *

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 experience is any online session that another player could reasonably join, such as cooperative campaigns, drop-in multiplayer, or social spaces. When a title advertises a joinable activity through MPA, the XBOX shell surfaces the session so friends can join directly or be invited from the shell.

Titles must clear the advertised activity when the player is no longer joinable so that the shell doesn't present a session that can't be entered. When a join can't be completed, the title must message the player with the reason (for example, the session is full or requires downloadable content).

The XBOX shell doesn't enforce session capacity; 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. Titles may gate a join on prerequisites, such as required downloadable content, provided the player is clearly messaged.

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. 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.

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

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

For how to suspend a game on XBOX consoles and how to place a PC or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

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 and handheld devices, 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's 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 or handheld device.
  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 don't appear as joinable for Profile B, it's acceptable for invites to be the only mechanism to join Profile A. For multiplayer game sessions that only support joining the session via matchmaking (for example ranked matches), it's 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 doesn't 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 doesn't 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 (for example ranked matches).

Fail Examples

  1. User B isn't able to successfully join User A's game and isn't placed in the game experience.
  2. User A doesn't appear as joinable in the Friends List via the XBOX shell interface because the game only supports private multiplayer sessions, and user A can't 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's possible that some games may only support private multiplayer sessions and therefore don't 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 don't appear as joinable for Profile B, it's acceptable for invites to be the only mechanism to join Profile A. For multiplayer game sessions that only support joining the session via matchmaking (for example ranked matches), it's 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 doesn't 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 doesn't 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 (for example ranked matches).

Fail Examples

  1. User B isn't able to successfully join User A's game and isn't placed in the game experience.
  2. User A doesn't appear as joinable in the Friends List via the XBOX shell interface because the game only supports private multiplayer sessions, and user A can't 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 or handheld device into Sleep and Hibernate, see Testing suspend, sleep, and hibernate.

For the purposes of this test case, verify every suspend, sleep, and hibernate method available on the device under test at step 5.

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 or handheld device, 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 or handheld device, 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).

The title isn't required to take a confirmation of destructive actions approach to this situation. Because the title can't stop the invitation or join action from being taken, it isn't required to ask for confirmation, even if the action will have a destructive effect on the title.

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's 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 isn't asked to wait until the next opportunity to jump in and Profile C isn't messaged for the failure to join.

XR-067: Maintaining Recently Played With Interactions *

Titles with online multiplayer functionality must record meaningful player interactions on the XBOX network by using the Multiplayer Activity (MPA) Recent Players feature. Recording interactions lets the XBOX network know which players played together so the platform can surface the Recently Played With list, player feedback, and usage reporting.

For titles still using the legacy Multiplayer Session Directory (MPSD), session-state information may instead be maintained in the MPSD. Don't use both MPA Recent Players and MPSD for this purpose, because maintaining both can create duplicate records.

067-01 Recently Played With Interactions

Test Steps

  1. Sign into an XBOX profile and launch the title on multiple devices.
  2. Complete an XBOX game session with all players.
  3. Return Home and view the Recently Played With list to verify that all players from the game session are included.
  4. Repeat steps 1-3 several more times but this time using new accounts each time.
  5. Repeat steps 1-4 but this time have one or more player(s) leave during gameplay and ensure their profile(s) still appear in the Recently Played With list during step 2.

Expected Result
Users must be able to review all players from each and every recently played game session.

Pass Examples

  1. All profiles are included in the device's Recently Played With list.

Fail Examples

  1. Not all the profiles are included in the device's Recently Played With list.
  2. Users who quit during multiplayer gameplay don't appear in the Recently Played With list.

XR-070: Friends Lists *

Titles must use the XBOX network friends list as the primary list of friends. Titles must obtain the friends list from XBOX APIs and must not store the friends list in a permanent nature on game servers.

Titles can display a secondary list of friends from a central title account for players not on the XBOX network or not on the user's XBOX network friends list. Based on design, titles may create a blended friends list experience containing both XBOX network and publisher account friends in a central location; iconography or other clarifying marks must be used to disambiguate XBOX friends from those on other networks.

For information on using the friends list using the GDK, read the People System (Friends List) overview

070-01 XBOX Friends List

Test Steps

  1. Locate any lists of people that are displayed within the title and verify they contain the XBOX network Friends list.
  2. If the title supports a blended friends list containing both XBOX network and publisher account friends, verify they're disambiguated with iconography or other clarifying marks.

Expected Result
Titles must use the XBOX network Friends list as the primary list of friends using XBOX APIs and must not store them in a permanent nature on game servers. The title must disambiguate friends when showing a blended friends list containing both XBOX network and publisher account friends.

Pass Examples

  1. The title uses the XBOX network Friends list as the primary list of friends using XBOX APIs.
  2. The title has an alternate list of people, such as recent players or guild members, who aren't positioned as the user's core list.
  3. The title displays a friends list that's filtered to show only friends who have played the title, and, in some situations, to show only friends who are currently online or are currently online and active in the title.
  4. The title displays a blended friends list containing both XBOX network and publisher account friends and disambiguates them with iconography or other clarifying marks.

Fail Examples

  1. The title doesn't use XBOX APIs to display a list of friends.
  2. The title stores the friends list in a permanent nature on game servers.
  3. The title displays a blended friends list containing both XBOX network and publisher account friends and doesn't disambiguate them.

Betas and Game Previews

The requirements in this category apply only to titles classified as betas or Game Previews. For other store policies and for program-specific definitions of open and closed betas, size limitations, duration, pricing, metadata, and offers, reach out to your Microsoft contacts.

Beta and Game Preview titles are subject to a subset of the XRs presented in this document. The scope of this subset is detailed in the XBOX Requirements for Game Previews and Betas page.

XR-117: Beta/Game Preview Notification *

Titles that are in beta stage must have a splash screen or message that's displayed within the experience, after it's launched but before gameplay or application usage, communicating that:

  • The title is beta/pre-release software.
  • Some platform features might not work correctly.
  • Some game features might not work correctly and might crash.

The notification must also outline the support boundaries for the title.

117-01 Beta/Game Preview Notification to Users

Test Steps

  1. Sign in to an XBOX profile and launch the title.
  2. Verify that before the user being able to participate in gameplay or application usage that the a message is displayed communicating at a minimum:
    • The title is beta/pre-release software.
    • Some platform features might not work correctly.
    • Some game features might not work correctly and might crash.
    • The notification must also outline the support boundaries for the title.

Expected Result
Titles must communicate to users that the title is a beta/pre-release and might not function entirely as expected.

Pass Examples

  1. The user is notified of the title's beta/pre-release status before the user being able to engage with functionality within the title.

Fail Examples

  1. The title doesn't display a message notifying the user of the title's beta/pre-release status.
  2. The user is able to access title functionality before seeing a notification from the title regarding beta/pre-release status.

BVTs: Pre-certification testing of the build

The following tests are used to check a title's readiness for XBOX Certification testing.

BVT-01 Build Stability

Test Steps

  1. Launch the title, navigate all menus and enter gameplay
  2. Attempt to reproduce stability issues found while performing other BVTs

Expected Result
The title must not have stability issues or long load times that would block full XR testing of the title.

BVT-02 Matchmaking

Test Steps

  1. Console 1: Select the most basic XBOX game mode and host an XBOX game session.
  2. Console 2: Join Console 1's XBOX game session using quick match. (Repeat this step until the minimum number of consoles has joined in order to start the game session.)
  3. Console 1 and 2: Start and complete the XBOX game session.
  4. Verify matchmaking works and users can enter gameplay in all other supported game modes.

Expected Result
Console 2 should always be able to locate and join Console 1's game session. Both consoles should be able to complete the XBOX game session without being disconnected or encountering stability issues.

BVT-03 DLC

Test Steps

  1. Verify that the downloadable content submitted with the game is downloadable using XBOX Store or an in-game mechanic.
  2. Once downloaded, verify that the content can be easily identified in the game. (A detailed downloadable content description provided with the submission materials helps the certification team to find the downloadable content.)

Expected Result
The downloadable content submitted with the title must be downloadable using XBOX Store or an in-game UI and once downloaded, should be easily identifiable in the game.

BVT-05 Languages

Test Steps

  1. Via the XBOX device Settings application, set the language to English.
  2. Progress into the title.
  3. Verify that the title:
    • Doesn't crash or enter an unresponsive state.
    • Doesn't output any debug on screen.
    • Implements localization in all intended areas.
  4. Repeat steps 1-4 for all languages supported by the title.

Expected Result
The title contains all supported languages. The title should also not contain stability issues or debug that are language specific.

BVT-07 Basic Configuration

Test Steps

  1. Launch the title and ensure all BVT feature checks don't require changes to the consoles settings such as Time/Date to work.
  2. Verify that a workaround isn't required to reach the main menu of the title.

Expected Result
Basic functionality is expected to be working when a title is entering Certification.

BVT-08 XBOX Store Availability

Tools Needed:

  • Game published to your developer sandbox.
  • Game published to the CERT and CERT.DEBUG sandboxes.

Test Steps

  1. Publish game to your developer sandbox.
  2. Install the title from the Store.
  3. Launch title and enter gameplay.

Important

When submitting to Certification, publish the game to the CERT and CERT.DEBUG sandboxes.

Expected Result
Titles must be able to be installed from the CERT and CERT.DEBUG sandboxes.

BVT-09 Conditions for Resubmission

Test Steps

  1. Reproduce all issues logged as CFRs in the most recent Certification report for the title.
  2. Verify all issues logged as CFRs have been fixed. Any of the issues that reproduce must have an approved exception.

Expected Result
Issues marked as CFR in previous reports must be fixed unless an exception has been granted.

Reach out to your Microsoft contancts for the steps to file Exceptions.

BVT-10 Version Check

Test Steps

  1. Install the title.
  2. Enter My games & apps, highlight the title, press the Menu button and select 'Manage game and add-ons'.
  3. Select File info.
  4. Compare the FullName of the installed product with the Package name listed in the submission documents/kick-off mail.

Expected Result
The FullName of the installed XVC matches exactly with what is documented in the kick-off mail/submission documents.

BVT-12 Partner-Hosted Services

Test Steps

  1. Sign into an XBOX profile and launch the title.
  2. Verify all partner-hosted services are accessible.

Expected Result
All partner-hosted services are configured for testing and all features dependent on them are accessible.

BVT-13 Age Rating Validation

Configuration:

  1. Title must be Final (Base or Content Update).
    • Final (Base/Content Update) - Certificates are required for all locales that require a certificate.
    • Out of Scope - DLC, In game Content - no testing required.
  2. Submission Materials are available for review.
  3. Access to the product age ratings in Microsoft Partner Center.

Test Steps

  1. Verify the following documents/information is available:
    • Submission Validator log for the submission's XVC.
    • Age rating declarations in Partner Center.
    • Age Rating certificates.
  2. Open the Submission Validator log file and ensure that no warnings or failures for the <component>Manifest-Ratings</component> test are displayed.
    • For all titles certified after May 11, 2020: A ratings element must not be present within the AppxManifest.
    • For titles certified before May 11, 2020: A ratings element is allowed to be present within the AppxManifest.
  3. Open Partner Center to review the product's age rating information
    • For each value displayed verify a corresponding rating certificate has been provided which matches the age rating exactly.

Expected Result

  1. All these files must be supplied and must be relevant to this submission type.
  2. All ratings must have a corresponding certificate supplied.
  3. Base final submissions in certification after May 11, 2020, must not have an age ratings element defined in the AppxManifest.
  4. Content updates for titles certified before May 11, 2020, must not add or remove ratings from the AppxManifest except to completely remove the ratings element.

BVT-14 UWP Service Config Validation

Configuration

Title must be a UWP submission.

Test Steps

  1. Sign into an XBOX profile that hasn't previously accessed the title.
  2. Launch the title.
  3. Ensure that the user is prompted to accept the XBOX account permissions.
  4. At the main menu or front-end menu, run the following command xbdir "XS:\Program Files\WindowsApps\{XVC}\" and search for the 'xboxservices.config' file.

Expected Result
The title's service config must be configured for test.

Pass Examples

  1. The title contains a service config file and new users are prompted to accept the XBOX account permissions.

Fail Examples

  1. A service config file isn't present.
  2. A service config file is present but is 0 bytes.
  3. New users aren't prompted to accept the XBOX account permissions.

BVT-15 Intelligent Delivery

Test Steps

  1. Obtain the XVC for the title and generate a Chunkinfo.xml file using the packageutil chunkinfo [XVC] > chunkinfo.xml command.
  2. Using the generated chunkinfo.xml establish whether the title supports Intelligent Delivery.
  3. If Intelligent Delivery is supported, begin a fresh installation for one of each of the following using the xbapp install /[Chunk Parameter] [XVC] command:
    • Language Packs using the parameter /Languages= (switch to another supported language chunk and download an additional Language Pack using the either the system settings or in-title language option)
    • Device Specific Content using the parameter /Devices=
    • Content Type using the parameter /ContentTypes=
    • On Demand Content using the parameter /Tags=

Expected Result
The title correctly installs the expected Intelligent Delivery chunk and no adverse effects are encountered.

Console test bench layout

The console test bench layout includes devices from all XBOX console platforms and generations. This comprehensive setup ensures testing covers a wide range of configurations to maintain compatibility and performance standards. For detailed requirements on console platforms and generations, please refer to XR-130: XBOX Series X|S Generation.

The table below provides an overview of the various console settings and configurations utilized in a test bench.

Setting Console 1 Console 2 Console 3 Console 4 Console 5
Device XBOX One / XBOX Series X XBOX One X / XBOX Series S XBOX One S / XBOX Series X XBOX Series S XBOX Series X
Console Type Retail Retail Retail Retail Retail
Display Resolution Settings 720p 4k 1080p 1080p 720p
Color Depth 24 Bits 36 Bits 30 Bits 24 Bits 30 Bits
HDR N/A Alternate after 4 hours N/A N/A N/A
Color Space PC Standard PC Standard Standard
Audio Stereo 5.1 Bitstream Stereo Headset - Windows Sonic for Headphones Stereo
Controllers 1 Wireless Controller 1 Wireless Controller 4 Wireless Controllers 1 Wireless Controller 2 Wireless Controllers
Console Language Language 1 English Language 2 Language 3 Language 4
Power Setting Instant-On Instant-on Energy Saving Instant-On Energy Saving
Storage Device Internal HDD Internal HDD Internal HDD USB HDD USB HDD
Installation Method Digital download Digital download Disc (If Available) Digital download Digital download
Account Type Game Pass Core - My Home XBOX Game Pass Core - My Home XBOX Non-Game Pass Core - My Home XBOX Game Pass Core - My Home XBOX Game Pass Core - My Home XBOX
Game Settings Opposite to default settings Default game settings Change the settings every 30 minutes or after each level Options should be set to the first quartile Options should be set to the third quartile

PC test bench layout

Testing a game on various PC hardware configurations is essential for ensuring compatibility, identifying potential issues, and providing an optimal user experience. By testing different display resolutions, video cards, GPUs, and CPUs, developers can ensure that the game performs well across a wide range of setups, leading to a better gaming experience for all players.

The table below provides an overview of the various PC configurations utilized in a test bench.

Setting PC 1 PC 2 PC 3 PC 4 PC 5
CPU AMD high-end CPU AMD high-end CPU Intel high-end CPU Intel mid-range CPU AMD/Intel high or mid-range CPU
GPU AMD Radeon high-end GPU Nvidia GeForce RTX high-end GPU Nvidia GeForce RTX high-end GPU AMD Radeon mid-range GPU Integrated iGPU/APU
Resolution 4K UHD (3840x2160) 2K QHD (2560x1440) 4K UHD (3840x2160) HD 1080p HD 1080p
Language Language 1 English Language 2 Language 3 Language 4
Game settings Opposite to default settings Default game settings Change the settings every 30 minutes or after each level Options should be set to the first quartile Options should be set to the third quartile

Changes in this Release

Date Version of the document Description of changes
August 11, 2026 Console: 16.4 Replaced Fiddler Classic with XMAT in test cases 074-07 Dynamic Connectivity Loss and 074-08 Pre-Launch Downtime. Certification now uses XMAT web proxy captures and scripts to identify and block partner service hosts.
August 6, 2026 Console: 16.4 Removed XR-017 Title Ratings and its test case 017-01 Age Rating Validation. Age rating declarations continue to be validated at submission by BVT-13 Age Rating Validation.
August 6, 2026 Console: 16.4 Updated XR-074 Loss of Connectivity to XBOX and Partner Services so its suspend test cases also cover sleep and hibernate on PC and handheld devices. Renamed 074-03 to Disconnection to XBOX Services During Suspend, Sleep, or Hibernate and 074-04 to XBOX Service Re-connection During Suspend, Sleep, or Hibernate. Retired test cases 074-05 Constant Low Bandwidth and 074-06 Variable Low Bandwidth.
July 27, 2026 Console: 16.4 Scoped XR-130 to within-generation parity across the XBOX Series S and XBOX Series X consoles and retitled it to XBOX Series X|S Generation. Retired test cases 130-01 Controller Input and 130-05 Compatibility Mode, and retargeted 130-02, 130-03, and 130-04 to the XBOX Series S and XBOX Series X development kits.
July 27, 2026 Console: 16.4 Rewrote XR-013 Linking Microsoft Accounts with Publisher Accounts as a device-neutral requirement centered on the Microsoft account (MPA), age-appropriate access paths, XSTS authentication with pairwise identifiers (PXUID), XUserGetAgeGroup age handling, feature-specific restrictions, and an exceptions process. Rewrote test case 013-01 with updated pass and fail conditions.
July 27, 2026 Console: 16.4 Folded the retired XR-124 Game Invitations requirement into XR-064 Joinable Game Sessions and Online Play: rewrote the requirement around the Multiplayer Activity (MPA) feature, added More information, Invitations, and Implementation guidance and best practices sections, added the conditional test case 064-03 In-Game Invitations, and renumbered the former 064-05 Non-Joinable Game to 064-04. Retitled XR-067 to Maintaining Recently Played With Interactions, updated the requirement to record interactions through MPA Recent Players (with MPSD as a legacy fallback), and renamed test case 067-01 and its steps to reference the Recently Played With list.
July 10, 2026 Console: 16.3 Updated XR-052 User State and Title-Save Location, Roaming and Dependencies to apply to the GDK user models only (removed ERA and UWP Multiple User Application references) and clarified that cross-platform PC and XBOX console game-save roaming is required for XPA titles and recommended for non-XPA titles. Added a More information section. Renamed 052-02 to User Change During Suspend, Sleep, and Hibernate, streamlined the 052-01 steps, and updated the 052-06 device list to retail hardware.
July 10, 2026 Console: 16.3 Updated XR-112 Establishing a User and Controller During Initial Activation and Resume to apply to the GDK user models only (removed ERA and UWP Multiple User Application references). The resume requirement now covers suspend, sleep, and hibernate; retired test case 112-07 User Change During Constrained Mode; and renamed 112-08 to User Change During Suspend, Sleep, or Hibernate.
July 10, 2026 Console: 16.3 Updated XR-115 Addition and Removal of Users or Controllers During Gameplay to apply to the GDK user models only (removed ERA and UWP Multiple User Application references) and retired test case 115-01 Addition of Users.
July 10, 2026 Console: 16.3 Added XR-037 Dependencies on Content Packages and its test cases (037-01 No Content Package Save-Game Dependencies for Base Title, 037-02 No Dependencies on Other Content Packages, 037-03 DLC Dependency, and 037-04 Multiplayer DLC) to the console XR and Test Cases page, with device-agnostic More information and Implementation guidance and best practices sections.
July 10, 2026 Console: 16.3 Updated XR-003 Title Quality for Submission to apply across devices. Added More information (Submission Validator and Partner-hosted services) and Implementation guidance and best practices sections. Added a PC test bench reference to 003-02 Title Integrity, simplified 003-17 Headset State Change, renamed 003-18 to Headset State Change After Suspend, Sleep and Hibernate and made it applicable to PC, and added a new test case 003-20 Streaming Install Initial Play Marker. Added a PC test bench layout section.
July 10, 2026 Console: 16.3 Expanded test case 001-02 Title Stability After Suspend, Sleep and Hibernate to cover PC Sleep and Hibernate in addition to XBOX console suspend, consolidated the suspend/sleep/hibernate setup steps into a shared Testing suspend, sleep, and hibernate section, and added PC and handheld device steps to the affected suspend test cases (003-18, 074-03, 074-04, 052-02, 112-08, 055-01, 064-01, and 124-01).
July 1, 2026 Console: 16.2 Removed XR-083 Submission Validator and moved the requirement to XR-003 Title Quality for Submission. There's no test case for it as a non-tested XR. If an Exception is required for a Submission Validator fail, log it under XR-003.

Re-added test case 052-05 Correct User Association to the console XR and Test Cases page as it was accidentally removed in the last update.