Skip to content
UCIK Docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Set up EOS

Connect your game to the correct EOS product, sandbox, and deployment.

Enter your EOS credentials in Project Settings → Betide → Crossplay → EOS. Use SDK credentials from your product in the Epic Developer Portal.

Field Where it comes from
Product ID Product Settings → General
Sandbox ID The sandbox this build targets
Deployment ID A deployment inside that sandbox
Client ID and Client Secret Product Settings → Clients; an SDK client
Encryption Key Your own random 64 hexadecimal characters for storage encryption

Replace the shared default encryption key before storing player data. Keep the same project key available to builds that must read those files.

Allow the services you use

Assign the client a client policy with the required service permissions. An Epic-account login also needs an Epic Account Services application, linked client, and matching permissions. Unreleased environments must allow your test accounts access.

Select Verify in the EOS settings. It checks whether EOS accepts the credentials; it does not prove that every service is permitted. A result mentioning a blocked Device ID login means the credentials were accepted but that login method is disallowed by the client policy.

Restart the editor after changing the active credentials, then test sign-in.

Choose one login owner

For a game using Login With Crossplay or a manual EOS login, set EOS Auto Login Type to None. If EOS settings own startup login, wait for it before requesting services. The Blueprint wait node has no failure-message pin; check the EOS log for details. Its disabled output means manual sign-in can be shown.

Wait for configured EOS startup login
Preparing your graph…

Loading the interactive viewer.

Game module dependencies: EIKBlueprints, EIKCore, BetideCore.

#include "Auth/EIK_WaitForAutoLogin_AsyncFunction.h"

void WaitForEosStartup(UObject *WorldContext, const FScriptDelegate &OnReady,
                       const FScriptDelegate &OnFailed, const FScriptDelegate &OnDisabled)
{
    auto *Request = UEIK_WaitForAutoLogin_AsyncFunction::WaitForAutoLogin(WorldContext);
    if (!Request)
        return;
    Request->OnSuccess.Add(OnReady);
    Request->OnFailure.Add(OnFailed);
    Request->OnDisabled.Add(OnDisabled);
    Request->Activate();
}

Bind UFUNCTION handlers: ready takes (const FEIKAccountId&, const FEIKLoginResult&), failure takes const FString&, and disabled takes no arguments.

Developer Authentication Tool and multiple PIE players

Run Epic’s Developer Authentication Tool, sign in each test account, and name credentials Context_1, Context_2, and so on. Set Developer Tool Url to the tool’s host and port, such as localhost:6300, and select Developer Tool auto-login.

Each active PIE instance uses its own credential. Do not also call manual login in that flow. The tool’s credential names are unrelated to Unreal’s world-context names. Use Account Portal, persistent auth, launcher exchange codes, or a supported platform credential for shipping.

Artifacts, servers, and packaged builds

The main credential fields serve Default Artifact Name. Add entries under Artifacts for additional environments. -EpicApp= selects a named artifact; -epicsandboxid= and -epicdeploymentid= override those environment IDs. Set Dedicated Server Artifact Name when servers need a separate credential set and policy.

The SDK Client Secret is runtime configuration and ships with the client. Restrict its client policy accordingly. BuildPatchTool credentials are separate: enter them under Betide → Tools for uploads. Its client secret uses per-developer storage or EIK_ONECLICK_CLIENT_SECRET and does not belong in game configuration.

The plugin stages its EOS runtime into the EIK folder. Test the packaged build against the intended sandbox and deployment, not just PIE.

Was this page helpful?