Epic Games Store Testing Guide

Test cases to help you ensure a great player experience

19 mins to read

Overview

This guide aims to help partners promote an optimal experience for users while also ensuring compliance with Epic Games Store requirements. The sections below provide test cases and recommendations for cross-play multiplayer requirements, Epic Online Services (EOS), and a variety of player experience topics.

Before distributing your product or any updates on the Epic Games Store, it is strongly recommended that you review and verify these test cases to ensure a successful launch.

Epic Online Services

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

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 the consent flow does not display.

Expected Results

  • The account proceeds into gameplay without seeing the consent flow after providing initial consent. Games on the Epic Games Store should use ExchangeCode rather than AccountPortal to ensure correct behavior.
  • The Epic Account Services application has its Brand Settings in the Published state prior to game release. Applications that have yet to complete Brand Review cannot allow accounts outside your organization to sign in.

Pass Scenarios

  • Consent flow only displays on the initial game launch.
  • Epic Account Services application has completed Brand Review.

Fail Scenarios

  • Consent flow displays on subsequent game launches after initial consent was provided.
  • Epic Account Services application has not completed Brand Review. Brand Settings are set to Not Configured or Under Review.

Connect Interface Access Token Renewal

The Connect Interface requires games to renew players’ access tokens on an hourly basis to maintain a connection to Epic Online Services (EOS).

Games should use the AddNotifyAuthExpiration function to be notified when an access token is about to expire, and proceed to renew the log-in. Failure to carry out this renewal process results in service calls failing once the token expires.

Test Steps

  1. Launch the game and complete the initial sign-in flow.
  2. Wait 60 minutes.
  3. Attempt to use any EOS functionality implemented in the game (e.g., 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 EOS functionality continue to function as expected after at least 60 minutes have passed.

Pass Scenarios

  • EOS functionality remains usable after 60 minutes of gameplay.

Fail Scenarios

  • EOS functionality becomes unusable after 60 minutes have passed from initial sign-in.

Offline Mode Support

The Epic Games Launcher allows users to opt in to Offline Mode, which passes the epicusername and epicuserid command line arguments to the game process upon launch.

However, an Exchange Code is not provided, and Epic Online Services (EOS) functionality, including entitlement checks, is not available to the game. You can choose to restrict or allow access to any additional content gated by entitlements, or you can implement a secure entitlement cache to allow players to proceed offline for a set period of time.

Test Steps

  1. While connected to the internet, access the Epic Games Launcher and select Enable Offline Mode Browsing in the Settings menu.
  2. Exit the launcher and disable the computer’s internet connection.
  3. Restart the launcher, entering your account’s email address to proceed.
  4. Launch the game.

Expected Results

  • Game remains stable, and player is alerted to the lack of internet connection when attempting to enter areas of the game that require an active connection.

Pass Scenarios

  • Game remains fully playable in Offline Mode.
  • Game remains playable in Offline Mode but restricts access to certain content.
  • Game informs player that game cannot be launched in Offline Mode.

Fail Scenarios

  • Game crashes when launched in Offline Mode.
  • Game displays misleading or uninformative messaging when launched in Offline Mode.

Sandbox/Deployment ID Handling (Epic Games Store publishing tools only)

All products configured using the Epic Games Store publishing tools in the Dev Portal 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 (EOS), the following implementation is recommended to ensure the build can handle being downloaded and used across multiple sandboxes:

  • Sandbox ID: This 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: This 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 in to an account that owns the game in both the Dev and Stage sandboxes.
  3. Launch the game in the Dev sandbox and ensure any implemented EOS features behave as expected.
  4. Exit the game and relaunch in the Stage sandbox, testing the same features.

Expected Results

  • EOS features 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 available in other sandboxes.

Pass Scenarios

  • Game handles the epicsandboxid launch argument and dynamically sets the correct Sandbox ID and Deployment ID.
  • Game dependencies require hard-coding Sandbox ID and Deployment ID values, and Live values are used for each.

Fail Scenarios

  • Game references Dev or Stage sandbox/deployment when downloaded from Live sandbox, blocking sign-in for players.
  • Live deployment is set to Private at time of game release, blocking sign-in for players outside the Dev Portal organization.

Player Experience

Epic Games Store Achievements

Games published to the Epic Games Store can leverage Epic Games Store achievements to enhance the player experience by rewarding users with experience points (XP) for various interactions with your game. These achievements utilize the Epic Online Services achievement functionality for in-game integration.

With Epic Online Services achievements implemented in the game, Epic Games Store achievements can be configured in the Dev Portal by specifying XP values for the achievements. Epic Games Store achievements require the use of Epic Account Services to authenticate the player and record their achievement progress and unlocks.

To optimize the player experience, we recommend enabling the Epic Games overlay to display achievements and achievement progress in game.

Test Steps

  1. Launch the game.
  2. Sign in to an Epic Games account in the game.
  3. Advance the gameplay to a point where an achievement is unlocked.

Expected Results

  • If the Epic Games overlay is enabled:
    • The overlay (opened with Shift+F3) displays the game’s available achievements on the Achievements tab.
    • An XP value displays for each achievement listed on the Achievements tab.
    • The achievement unlock notification displays at the top center of the screen along with an unlock sound and the proper tier (i.e., bronze, silver, gold, or platinum) for the achievement.

Pass Scenarios

  • Achievements are correctly shown and unlocked in the game using the Epic Games overlay.
  • Achievements are correctly unlocked in the game and displayed on the game’s product page in the Epic Games Store.
Epic Games overlay displaying Epic Games Store achievements
An example Epic Games overlay displaying Epic Games Store achievements

Epic Games Store product page displaying achievements
An example Epic Games Store product page displaying achievements

Fail Scenarios

  • Achievements in the Epic Games overlay only show Epic Online Services achievements (without XP, rarity, and tier)
Epic Games overlay displaying Epic Online Services achievements
An example Epic Games overlay displaying Epic Online Services achievements

Unicode Character Support

Both Windows and Epic Games 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 Games account with a display name including a non-Latin character.
  3. Install the game into a folder including a non-Latin character.
  4. Launch the game.
  5. Proceed into each game mode and create save data.
  6. Exit and relaunch the game.

Expected Results

  • All game modes should function as expected.
  • Save data should remain accessible after relaunching the game.

Pass Scenarios

  • Game remains fully functional when launched by a user with non-Latin characters included in their Windows user account and installation folder.
  • Display name of Epic Games account is depicted accurately in-game.

Fail Scenarios

  • Game fails to launch when installation folder includes non-Latin characters.
  • Game fails to save or load player data when installation folder or display name of Epic Games account includes non-Latin characters.
  • Game displays null characters in place of non-Latin characters in display name.

Redistributable Installation

The Epic Games Store does not currently handle automatic installation of common redistributables like DirectX or Visual C++. Partners are responsible for handling the installation of any prerequisites needed for their games. To learn more about the options available, review Game Prerequisite Installers.

The Epic Games Launcher installs prerequisite redistributables configured using the PrereqIds argument when uploading builds using the BuildPatch Tool. However, players may choose to uninstall these redistributables at any time. Games should alert players to the missing prerequisites and provide the information needed to address the issue.

Test Steps

  1. Install the game, including any configured redistributables.
    • Note: The Epic Games Launcher treats return codes 0, 1638, and 3010 as successes.
  2. Launch the game and proceed into gameplay.
  3. Uninstall the required redistributables.
  4. Attempt to launch the game.

Expected Results

  • Game informs player of any missing redistributables needed.

Pass Scenarios

  • Game installs the required redistributables upon initial launch.
  • Game informs player of any missing redistributables after they have been removed.

Fail Scenarios

  • Game fails to launch when redistributables have been removed.
  • Game does not inform player on how to resolve the issue.

Language and Locale Settings

Games have access to three key settings detailing a player’s location, language, and locale:

  • Account Region: Used by the Epic Games Store to determine which offers, prices, and age ratings are available to a player. 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: Used to determine which language is used when contacting the player through email. This language code can be obtained for a player through the PreferredLanguage property of EOS_UserInfo.
  • Launcher Language: Used to determine which language displays within the Epic Games Launcher. This language code is provided to all games via the epiclocale argument when launching a game (see table below).

Supported Launcher Languages

Launcher Languageepiclocale Argument
Arabicar
Englishen-US
Germande
Spanish (Spain)es-ES
Spanish (Latin America)es-MX
Frenchfr
Italianit
Japaneseja
Koreanko
Polishpl
Portuguesept-BR
Russianru
Thaith
Turkishtr
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

  • Game automatically sets the correct display language or allows the player to freely switch between supported languages via in-game options.
  • Game is able to handle and parse all command line parameters provided by the launcher without crashing.

Pass Scenarios

  • Game handles epiclocale argument and automatically sets in-game language.
  • Game launches in single default language but allows players to manually set language through in-game option.

Fail Scenarios

  • Game lists a Supported Language on the product page, but players are unable to apply this setting through use of the epiclocale argument or in-game option.

Build Update Size Optimization

As part of the build upload process, the BuildPatch Tool 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 BuildPatch Tool 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 the BuildPatch Tool 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 the BuildPatch Tool’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.

Pass Scenarios

  • Player is able to download updates between build versions without issue.

Fail Scenarios

  • Player re-downloads entire game when updating between build versions, due to use of outdated BuildPatch Tool for upload.

Launcher Cloud Saves

We encourage all games that save data locally to take advantage of the Cloud Saves feature supported by the Epic Games Launcher. For detailed test cases, review Cloud Saves.

Easy Anti-Cheat

All games that implement Easy Anti-Cheat should ensure the test cases outlined in the Anti-Cheat Integration Checklist have been verified prior to release.

Crossplay

At Epic Games, we want to ensure players can play with their friends, regardless of which store they use to purchase your game. As such, all titles coming to the Epic Games Store that offer online multiplayer must support cross-platform multiplayer with all other PC storefronts. Cross-play with other non-PC platforms (e.g., consoles) is optional but encouraged.

The Epic Games Store does not require crossplay to be implemented via any particular service or account system. Epic Online Services and Epic Games accounts are offered free of charge as one potential solution. Publisher-based or other third-party solutions are supported and welcomed. Where supported, multiplayer functionality on Epic Games Store must be at parity with other PC storefronts.

A crossplay-enabled build must be provided at least four weeks prior to any public launch to allow sufficient time for independent testing and verification. When initiating the testing process, provide the following details:


  • Artifact ID and Sandbox ID of Epic Games Store build
  • Two to three keys to redeem the build on other PC storefronts, as well as branch details if applicable
  • Any additional steps needed to grant access to specific accounts or machines

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 additional players on the Epic Games Store and other storefront join the game.
    • Repeat the two steps above with the player on the other storefront creating the game and the player on the Epic Games Store joining 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 games should be listed together.
  • An Epic Games Store player can join a game hosted via Epic Games Store or another PC platform via server browser/matchmaking.
  • A player on another PC platform can join a game hosted via Epic Games Store or another PC platform via server browser/matchmaking.

Pass Scenarios

  • Players across storefronts can create and join the same pool of multiplayer game sessions by default.

Fail Scenarios

  • Players do not join the same pool of multiplayer game sessions after completing account linking and must set additional options to enter gameplay.

Game Session Invites

If direct game session invites are supported, they 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 any means the game supports (ie. Epic Games accounts, Discord, custom accounts, etc.).
  4. Have one player send a game session invite to a player 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.
  • If the Friends list can be used to send a direct game invite on another PC platform, friends across storefront boundaries must be displayed in the same list.

Pass Scenarios

  • Game allows invites through a consistent mechanism (overlay, in-game menu, or invite codes) on each storefront.

Fail Scenarios

  • Game supports disparate invite mechanisms across storefronts (e.g., overlay and invite codes on Storefront A, and only invite codes on Storefront B).
  • Game supports direct game invites, but friends are displayed in separate per-storefront lists.

Epic Account Services

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

If a player who has not yet linked their Steam and Epic Games accounts chooses to authenticate to Epic Account Services using their Steam account, the game should prompt for account linking, then automatically proceed to the Epic Account Service (EAS) consent flow.

Test Steps

  1. Revoke any existing consent to the game on the Apps tab on the Connections page.
  2. Unlink any existing Steam account on the Accounts tab on the Connections page.
  3. Launch the game on Steam.
  4. Trigger the in-game Epic Games account linking flow.
    • Note: To ensure account linking is understood to be optional, account linking and EAS consent should be driven by explicit player action (e.g., through a Link Epic Games account menu option), rather than included as part of the default launch flow.
  5. Complete the subsequent Epic Account Services consent flow.
  6. Exit the game and repeat steps 2-4 to ensure the player is able to restore the account link without being prompted to complete the Epic Account Services consent flow a second time.

Expected Results

  • Steam account linking is requested. Once completed, the Epic Account Services consent flow is initiated.

Pass Scenarios

  • Game displays account linking flow, then proceeds to Epic Account Services consent flow.

Fail Scenarios

  • Game does not provide in-game UI to link Steam and Epic Games accounts; player must manually link accounts on epicgames.com.
  • Game skips account linking and proceeds directly to AccountPortal login flow.
  • Logging in fails after the player removes account link, and game does not provide opportunity to restore account linking.

If a player has previously connected their Steam and Epic Games accounts, but Epic Account Services (EAS) application consent for the game has not yet been provided, the EOS SDK automatically prompts the user for consent during the Auth Interface Login API call. Through the Epic Games 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. Ensure a Steam account has been linked on the Accounts tab on the Connections page.
  2. Revoke any existing consent to the game on the Apps tab on the Connections page.
  3. Launch the game on Steam.
  4. Trigger the in-game Epic Games account authentication flow.
    • Note: In cases where the use of Epic Account Services is optional, EAS consent and logging in should be driven by explicit player action (e.g., through a Link Epic Games account menu option), rather than included as part of the default launch flow.
  5. Complete the subsequent Epic Account Services consent flow.
  6. Restart the game and ensure that the player is able to sign into Epic Account Services without being prompted for consent.

Expected Results

  • The Epic Account Services consent flow is initiated using the linked Epic Games account, and the player is not prompted for consent on subsequent launches.

Pass Scenarios

  • Player is prompted for Epic Account Services application consent on initial launch and is able to proceed with login.

Fail Scenarios

  • Game skips account linking and proceeds directly to AccountPortal login flow.
  • Logging in fails if player has not provided Epic Account Services consent, and game does not provide opportunity to complete consent flow.
  • Epic Account Services consent flow displays on subsequent game launches after content has already been provided.

Epic Online Services Redistributable

Using Epic Online Services, you can integrate in-game user authentication through Epic Account Services and unify social experiences across any PC storefront. As an example of this implementation, users on Steam would be able to see and interact with both their Epic Games friends and Steam friends from a single list using the Epic Games overlay.

In order to enable the Epic Games overlay in your games on PC storefronts other than the Epic Games Store, the Epic Online Services redistributable must be installed by your game as part of its installation process. To learn more, review Redistributable Installer. Note that the redistributable installer is not needed for the Epic Games Store and should not be included with the Epic Games Store game build.

Test Steps

  1. Ensure EpicOnlineServicesInstaller.exe is included in your game’s build.
  2. Ensure your game’s installation is configured to install, and uninstall, the EpicOnlineServicesInstaller.exe as part of your game’s redistributable dependencies (i.e., via a Steam installscript.vdf ).
  3. Ensure the game is launched via the EOSBootstrapper.exe process.
  4. Launch the game for the first time after installation.
  5. Sign into an Epic Games account in the game.
  6. Open the Epic Games overlay using the Shift+F3 shortcut.
  7. Exit the game.
  8. Uninstall Epic Online Services via Windows Settings > Apps & Features.
  9. Launch the game. The game should detect that the redistributable installation is missing and instruct the player to verify the game file integrity.
  10. Exit the game. Then, in Steam, right-click the game and select Properties. Navigate to the Local Files tab and click Verify the integrity of game files…
  11. Relaunch the game.

Expected Results

  • Launching the game for the first time after installation triggers the Epic Online Services installer.
  • In game, the Epic Games overlay loads after Epic Account authentication.
  • In game, Shift+F3 brings up the Epic Games overlay.
  • Relaunching the game after uninstallation of Epic Online Services instructs players to verify game file integrity to reinstall Epic Online Services.
  • After game file integrity verification and relaunching the game, the Epic Games overlay and account linking function as expected.

Pass Scenarios

  • Game includes Epic Online Services redistributable as part of game installation flow and log-in occurs without issue.
  • Game informs users how to install the Epic Online Services redistributable when uninstalled.
    • On Steam, the recommended method is having the game use the EOS_Platform_GetDesktopCrossplayStatus SDK API at startup to detect if the service installation is missing. If missing, the game then informs the user to close the game and verify game file integrity in Steam.

Fail Scenarios

  • Game does not include Epic Online Services redistributable in installation flow.
  • Game does not inform user how to complete log-in if redistributable has been manually uninstalled.