Epic Games Store Testing Guide

Test cases to help you ensure a great player experience.

Are you a Closed Beta partner? If you are not participating in the Closed Beta release, you can access documentation by using your Epic Games account to sign in to the Knowledge Base.

While the Epic Games Store does not have a formal build certification process, we strongly recommend applying the test cases below to all games and updates released in the Store to ensure the best possible player experience.

Epic Online Services

Epic Account Services player consent

Games using Epic Account Services require player consent to share data. For games sold in the Epic Games Store, this consent is automatically granted during the purchase flow. However, players have the ability to revoke consent at any time from their Account Connections page. As long as games use the correct CredentialType, players should be directed to grant consent a single time when next launching the game.

Test steps

  1. Sign into an account that is not associated with your Dev Portal Organization

  2. Ensure the game is not listed on the Account Connections page

  3. Launch the game

  4. Complete the consent flow when prompted

  5. Exit and relaunch the game, confirming consent flow is not displayed

Expected Results

  • The account should be able to proceed into gameplay, without seeing the consent flow a second time; games on the Epic Games Store should use ExchangeCode rather than AccountPortal to ensure correct behavior.

  • The Epic Account Services application should be in a Verified state by the time your game launches; Unverified applications will prevent accounts outside your organization from granting consent.

Connect Interface access token renewal

The Connect Interface requires games to renew the player's access token on an hourly basis to maintain a connection to Epic Online Services. Games should use the AddNotifyAuthExpiration function to be notified when the access token is about to expire, and renew their login. Failure to carry out this renewal process will result in service calls failing once the token expires.

Test steps

  1. Launch the game and complete the initial sign-in flow

  2. Wait for 60 minutes

  3. Attempt to use the Epic Online Services functionality implemented by the game (achievements, multiplayer, Player Data Storage, etc.)

  4. Verify through your game application's local log file that the game client receives the OnAuthExpirationCallback notification from EOS SDK, and successfully refreshes the authentication using the EOS_Connect_Login API

Expected Results

  • Features of the game using Epic Online Services continue to function as expected after at least 60 minutes have passed.

Offline Mode support

The Epic Games Launcher allows users to opt into Offline Mode, which will pass the epicusername and epicuserid command-line arguments to the game process on launch, but no Exchange Code is provided, and no Epic Online Services functionality is available to the game, including entitlement checks. Developers may opt to restrict or allow access to any additional content gated by entitlements, or may implement a secure entitlement cache to allow players to proceed offline for a set period.

Test steps

  1. While connected to the Internet, select Enable Offline Mode Browsing in the Settings menu of the Epic Games Launcher

  2. Exit the Launcher, and remove the computer's Internet connection

  3. Restart the Launcher, entering your account's email address to proceed

  4. Launch the game

Expected Results

  • The game remains stable, and messages the lack of Internet connection to the player when attempting to enter areas of the game that require an active connection.

Sandbox/Deployment ID handling (Publishing Tool products only)

All products configured using the Publishing Tools (SPT) are equipped with a standard set of three sandboxes: Dev, Stage and Live. As static Sandbox ID and Deployment ID values are required to initialize Epic Online Services, we recommend the following implementation to ensure that the build is able to handle being downloaded and used within multiple sandboxes:

  • Sandbox ID can be obtained from the Epic Games Launcher at launch-time, in the form of the epicsandboxid launch argument provided to all games

  • Deployment ID can be set within your build in a custom if/switch statement block targeting the expected deployment for the sandbox in question

Test steps

  1. Promote the build from the Dev to Stage sandbox

  2. Sign into an account that owns the game in both the Dev and Stage sandboxes. Note: An upcoming Launcher improvement will add "Dev" and "Stage" labels within the Library; until this release, the two library tiles will appear identical.

  3. Launch the game in the Dev sandbox, and ensure implemented Epic Online Services features act as expected

  4. Exit and relaunch the game in the Stage sandbox, testing the same features

Expected Results

  • Game features should remain usable across different sandboxes.

  • Player state should be distinct between sandboxes; if achievements or add-on purchases have only been completed in a single sandbox, they should not be displayed in others.

Player Experience

Unicode character support

Both Windows and Epic Accounts allow players to use characters outside the Latin alphabet in their display names. Games should include users with this configuration in their test pass.

Test steps

  1. Sign into a Windows user account including a non-Latin character

  2. Sign into an Epic Account with a display name including a non-Latin character

  3. Launch the game

  4. Proceed into each game mode and create save data

  5. Exit and relaunch the game

Expected Results

  • All game modes should function as expected

  • Save data should remain accessible after relaunching the game

Redistributable installation

The Epic Games Store does not currently handle automatic installation of common redistributables like DirectX or Visual C++; partners must handle the installation of any prerequisites needed for their games. Refer to the Game Prerequisites Installer Options documentation for more information around the options available. The Epic Games Launcher will install prerequisite redistributables configured using the PrereqIds argument when uploading builds using the BuildPatchTool. However, players may choose to uninstall these redistributables at any time; games should message the missing prerequisites and provide players with the information needed to address the issue.

Test steps

  1. Install the game, including any configured redistributables. Note: The Launcher will treat return codes 0, 1638 and 3010 as success.

  2. Launch the game, and proceed into gameplay

  3. Uninstall the required redistributables

  4. Attempt to launch the game

Expected Results

  • The game should inform the player of the missing redistributable(s) needed

  • After successful installation in Step 1, the Launcher will not reattempt installation of the same redistributable with later installations of the game; to retest the full flow, you will need to remove the row(s) containing installed prerequisites from the following file: C:\ProgramData\Epic\EpicGamesLauncher\BuildPatchServicesLocal.ini

Language and locale settings

  • Games have access to three key settings detailing a player's location, language, and locale: Account region is used by the store to determine which offers, prices and age ratings a player sees. For games using regional builds and launch times tied to local time zones, account region is also used to drive these features. This region code can be obtained for a player through the Country property of EOS_UserInfo.

  • Preferred communication language is used to determine which language to use when contacting the player over email. This language code can be obtained for a player through the PreferredLanguage property of EOS_UserInfo.

  • Launcher language is used to determine which language to display within the Epic Games Launcher. This language code is provided to all games via the epiclocale argument when launching a game:

Launcher Language

epiclocale argument

Arabic

ar

English

en-US

German

de

Spanish (Spain)

es-ES

Spanish (Latin America)

es-MX

French

fr

Italian

it

Japanese

ja

Korean

ko

Polish

pl

Portuguese

pt-BR

Russian

ru

Thai

th

Turkish

tr

Chinese (Simplified)

zh-Hans

Chinese (Traditional)

zh-Hant

Test steps

  1. Set the Epic Games Launcher Language setting to a language supported by the game

  2. Launch the game

Expected Results

  • The game automatically sets the correct display language, or allows the player to freely switch between supported languages via in-game options

  • The game is able to handle and parse all command line parameters provided by the Launcher without crashing

Build update size optimization

As part of the build upload process, BuildPatchTool automatically compares the data in the build to previous uploads, and optimizes the generated patches to reduce the download size for existing players.

This process has been improved with BuildPatchTool v1.5.0 , and data is now compared across all artifacts tied to a product, rather than the single artifact of original upload. We strongly recommend using the latest version of BuildPatchTool available for download in Dev Portal.

Test steps

  1. Install the current version of the game using a staging artifact or private sandbox. Note: The ability to download from a private sandbox is only available to partners participating in the Self-Publishing Tools Closed Beta.

  2. Set the next update of the game live in the test environment

  3. Restart the Launcher, and observe the download size of the update

Expected Results

  • The update should result in a download size roughly representative of the binary delta between the builds, rather than a full redownload of the game

  • The download size for the update between two specific build versions can be further optimized by using BuildPatchTool's BinaryOptimiseDelta mode; this command should be run with an empty CloudDir folder, and may take additional time to complete processing compared to previous uploads for the game

Launcher Cloud Saves

We encourage all games that save data locally to take advantage of the Launcher Cloud Saves feature. For detailed test cases, please refer to the Cloud Save Setup and Testing page.

Crossplay

At Epic Games we want to ensure players can play with their friends, regardless of which store they use to purchase a game. Therefore, all titles coming to the Epic Games Store that have online multiplayer must support cross-platform multiplayer with all other PC storefronts. Cross-play with other non-PC platforms, like consoles, is optional, but encouraged. Learn more: Multiplayer Cross-platform Functionality.

The Epic Games Store does not require that you implement crossplay via any particular service nor account system. Epic provides Epic Online Services and Epic accounts free of charge as one potential solution. Other third party solutions or publisher-based solutions are supported and welcomed. Where supported, multiplayer functionality on Epic Games Store must be at parity with other PC storefronts. Please use the checklist below to verify you meet the crossplay criteria and contact your Business Development Manager or Technical Account Manager in a timely fashion if you have any questions or concerns about these criteria. They can also share more detailed guidance on how you can implement crossplay functionality across PC storefronts.

Please be aware that you must provide a crossplay enabled build at least four weeks prior to any public launch to allow sufficient time for independent testing and verification.

Server browser / matchmaking

If server browser or matchmaking is supported, players must be able to connect across storefront boundaries by default (e.g. without having to manually opt-in through a menu option).

Test steps

  1. Have one or more players launch the game on the Epic Games Store

  2. Have one or more players launch the game on another storefront (e.g. Steam)

  3. If the game has a server browser:

    • Have one player on the Epic Games Store create a game

    • Have the other players on the Epic Games Store and other storefront join the game

  4. If the game has matchmaking:

    • Have all players across both storefronts look for a match at the same time

Expected Results

  • All Epic Games Store and other PC store (e.g. Steam) games should be listed together

  • An Epic Games Store player can join a game hosted via an Epic Games Store or another PC platform via server browser / matchmaking

  • A player on another PC platform can join game hosted via an Epic Games Store or another PC platform via server browser / matchmaking

Game session invites

If direct game session invites are supported, invites must be supported across storefront boundaries. Where supported, in-game friend functionality on Epic Games Store must be at parity with other PC storefronts. These invites should work bi-directionally.

Test steps

  1. Have one or more players launch the game on the Epic Games Store

  2. Have one or more players launch the game on another storefront (e.g. Steam)

  3. Create friend relationships between two or more players across storefronts through whatever means the game supports (ie. Epic accounts, Discord, custom accounts, etc.)

  4. Have one player send a game session invite to another player playing on another storefront

Expected Results

  • An Epic Games Store player has a way to send a direct game invite to a friend playing on another PC platform

  • A player on another PC platform has a way to send a direct game invite to a friend playing on the Epic Games Store

Epic Account Services

If your game uses Epic Account Services to provide crossplay functionality, please use the following checklist to validate all required scenarios are covered. Note that while this is one of the ways you can implement crossplay, it is not required and you are welcome to implement any other solution of your choice.

Steam account linking

If a player has never linked their Steam and Epic accounts, the game should prompt for account linking if a player chooses to authenticate to Epic Account Services using their Steam account.

Test steps

  1. Launch the game on Steam

  2. Trigger the in-game Epic Account linking flow (e.g. through a menu option)

Expected Results

  • Steam account linking is requested if not already linked

Steam account re-linking

If a Steam account is unlinked from a player's Epic account, the game should offer players in-game UI to reconnect their Steam and Epic accounts (for example, through a "Link Epic Games Account" button).

Test steps

  1. Unlink an existing Steam account on the Accounts tab at https://www.epicgames.com/account/connections

  2. Launch the game on Steam

  3. Trigger the in-game Epic Account linking flow (e.g. through a menu option)

Expected Results

  • Steam account linking is re-requested

Epic Account Services consent on Steam

As part of the Epic Account Services login flow, users will be prompted for consent to share their account information with your game/application. This prompt happens as part of the Auth Interface login. If a player has previously connected their Steam and Epic accounts, but Epic Account Services application consent for the game has not been provided yet, the EOS SDK will automatically prompt the user for consent during the Auth Interface Login API call.

Test steps

  1. Launch the game on Steam

  2. Trigger the in-game Epic Account authentication flow

Expected Results

  • Epic Account Services application consent requested if not already provided

Epic Account Services re-consent on Steam

Through the Epic account management page, users can review the list of applications they have given data sharing consent to. On this page, users may also revoke access to any of the applications. If application consent is revoked, the user will be prompted for consent the next time they attempt login within your game application.

Test steps

  1. Revoke consent to the game on the Apps tab at https://www.epicgames.com/account/connections

  2. Launch the game on Steam

  3. Trigger the in-game Epic Account authentication flow

Expected Results

  • Epic Account Services application consent re-requested