Skip to main content

Epic Account Services Authentication

The epic provider uses the Epic Game Account Services (which is a subservice of Epic Online Services). You do not need to use any other part of EOS to use this provider. This provider can be used to manually prompt the user to login with Epic or to automatically login with Epic if they launched the game via the Epic Games Launcher.

Configuration

There's no specific configuration for this provider.

Setup

I'd love to give you instructions on how to set up

  1. Sign in to the Epic Dev Portal

  2. Create or select an organization

  3. Under the Dashboard for that organization, click + Create Product

    Create Product button is in the main view to the side of Your Products

  4. Under the dashboard for the product, click Product Settings

    Product Settings button is in the sidebar view when viewing the product

  5. Click on the Clients tab

    Product Settings Clients tab

  6. Scroll down and click Add new client

  7. Give it a Client Name (e.g. YourGame Game Client)

  8. Under Client Policy dropdown, click Create a new client policy

  9. Give the policy a name (e.g. YourGame Client Policy)

  10. Select GameClient for the Client policy type

  11. Click Add new client policy

  12. You should be back in the Add new client modal; make sure the new client policy is selected in the dropdown

  13. You can leave Trusted Server IP allow list empty

  14. You can leave the Redirect URL empty

  15. Click Add new client to save the changes

  16. Edit the client you just created

    Edit the secret by clicking the ...

  17. Go to the Product Settings page and copy the Product ID, Client ID, Client Secret, Sandbox ID, and Deployment ID and paste the values as a new Artifact in the online Subsystem EOS section in UE's Project Settings.

    Client ID and secret

    Unreal Engine Project Settings for Online Subsystem EOS

  18. The Artifact should also have a name (like your game name), the Product ID

  19. Click Epic Account Services in the sidebar

    Epic Account Services button is in the sidebar view when viewing the product

  20. Click + Create Application

    Create Application button is in the main view to the side of Applications

  21. I'm not going to go into every detail here, but note that under Permissions you only need Basic Profile enabled (it's required anyway). Linked Clients should have the dropdown selected for the client you just created.

  22. Click Save changes

  23. Enable the RedwoodEOS plugin by manually adding it to your .uproject file or via Edit > Plugins

  24. Prior to calling the Redwood backend function to login, you'll need to ensure the player is logged in with EOS first. The plugin provides a few options for you (both BP and C++):

    • Login EOS Dev Auth Tool or URedwoodEOSClientInterface::LoginEOS_DevAuthTool
      • As part of the EOS SDK download found under your organization Dashboard via Downloads & Release notes (historically in SDK/Tools after unzipping), there is a developer authentication tool. You start it up, pick a port (defaults to 6300), then click Login to add a credential. You then login with a real Epic Games account and then are prompted for a credential name. Redwood defaults to using Context_1, but you can use something else. While this application is running, calling this function will automatically authenticate you with EOS.
    • Login EOS Prompt Account Portal or URedwoodEOSClientInterface::LoginEOS_PromptAccountPortal
      • This is the most cross-platform supported method. Calling this function will open the browser to login with Epic Games.
    • Login EOS Epic Games Launcher or URedwoodEOSClientInterface::LoginEOS_PromptAccountPortal
      • This only works if you are launching the game via the Epic Games Launcher in production.
    • You can "auto login" without calling any of these functions for packaged games by following the official docs.
    note

    I've sometimes noticed these functions not behaving as I'd expect (e.g. returning false even though the auth was successful) for the initial auth; subsequent auths would succeed. If you're seeing similar behavior and this is blocking you (e.g. in a non-development scenario), reach out.

  25. Update your project to use the Login with EOS function instead of the normal Login function.

    • This function has the same auth update callback/delegate as the normal Login function.
    • You can use the Login with EOS latent Blueprint node that uses RedwoodClientGameSubsystem
    • You can also use the C++ function:
      1. Add the RedwoodEOS module to your .Build.cs file
      2. Include RedwoodClientInterface.h, RedwoodClientGameSubsystem.h, and RedwoodEOSClientInterface
      3. Get a reference to the active Redwood Client interface:
        URedwoodClientInterface *ClientInterface = GetGameInstance()->GetSubsystem<URedwoodClientGameSubsystem>()->GetClientInterface();
      4. Call LoginWithEOS; be sure to replace OnUpdate below as applicable to handle the auth callback:
        URedwoodEOSClientInterface::LoginWithEOS(ClientInterface, FRedwoodAuthUpdateDelegate OnUpdate);
  26. Update your UE project's Config/DefaultEngine.ini to enable the EOS online subsystem, but making sure that you don't enable the EOS networking settings found in other EOS setup guides. Here is what a basic config may look like (as of Jan 2026):

    [/Script/OnlineSubsystemEOS.EOSSettings]
    CacheDir=CacheDir
    DefaultArtifactName=GameName
    RTCBackgroundMode=
    TickBudgetInMilliseconds=0
    bEnableOverlay=False
    bEnableSocialOverlay=False
    bEnableEditorOverlay=False
    bPreferPersistentAuth=False
    TitleStorageReadChunkLength=0
    +Artifacts=(ArtifactName="GameName",ClientId="***",ClientSecret="***",ProductId="***",SandboxId="***",DeploymentId="***",ClientEncryptionKey="")
    -AuthScopeFlags=BasicProfile
    -AuthScopeFlags=FriendsList
    -AuthScopeFlags=Presence
    bUseEAS=True
    bUseEOSConnect=False
    bMirrorStatsToEOS=False
    bMirrorAchievementsToEOS=False
    bUseEOSSessions=False
    bMirrorPresenceToEAS=False
    SteamTokenType=Session

    [OnlineSubsystemEOS]
    bEnabled=true

    [OnlineSubsystem]
    DefaultPlatformService=EOS
    warning

    DO NOT change the NetDriver that you might find in other guides on setting up Steam with Unreal.