EOS Achievements

Setup

Configure your EOS credentials, DefaultEngine.ini, and Unreal project settings to get EOS Achievements running.

Prerequisites

Before configuring the plugin, make sure you have:

  1. An Epic Developer Portal account — dev.epicgames.com
  2. A Product created in the portal with at least one Deployment
  3. At least one Achievement configured in Dev Portal → [Your Product] → Achievements
EOS ADVANCED SESSION SETUP GUIDE

Step 1 — Enable the Plugin

In Unreal Engine:

  1. Open Edit → Plugins
  2. Search for EOS Achievements
  3. Enable the plugin and restart the Editor

Step 2 — Get Your EOS Credentials

In the Epic Developer Portal, navigate to:

Your Product → Product Settings → SDK Credentials

Collect the following values:

FieldWhere to find it
ProductIdProduct Settings → Product ID
SandboxIdProduct Settings → Sandbox ID (use your Dev sandbox)
DeploymentIdProduct Settings → Deployment ID
ClientIdSDK Credentials → Client ID
ClientSecretSDK Credentials → Client Secret

Step 3 — Configure DefaultEngine.ini

Add the [EOSCore] section to your project's Config/DefaultEngine.ini:

[EOSCore]
ProductId=your-product-id
SandboxId=your-sandbox-id
DeploymentId=your-deployment-id
ClientId=your-client-id
ClientSecret=your-client-secret

; Optional settings (defaults shown)
bAutoInitialize=true
bTickEOS=true
bEnableOverlay=true
bEnableSocialOverlay=true

Tip: If you already use [OnlineSubsystemEOS] or [/Script/OnlineSubsystemEOS.EOSSettings], the plugin will read credentials from those sections as a fallback. You do not need to duplicate your credentials.


Step 4 — (Optional) OnlineSubsystemEOS Co-existence

If your project already has OnlineSubsystemEOS enabled and set as the default platform service, the plugin will automatically detect and borrow its EOS platform handle.

[OnlineSubsystem]
DefaultPlatformService=EOS

In this case:

  • No second EOS handle is created — the plugin reuses the existing one safely.
  • No ticker is started — the OSS already ticks EOS.
  • You do not need the [EOSCore] section (though it is harmless to have it).

If OnlineSubsystemEOS is not active, the plugin creates its own handle from [EOSCore] and manages its own tick loop.


Step 5 — Configure Achievements in the Dev Portal

For each achievement you want to use:

  1. Go to Dev Portal → [Your Sandbox] → Achievements
  2. Create an achievement and note its Achievement ID (e.g. ACH_FIRST_WIN)
  3. Set a Display Name, Locked Description, and Unlocked Description
  4. Optionally link a Stat if you want progress-based unlocking
The Achievement ID you set in the Dev Portal is the exact string you will pass to the EOS Unlock Achievement Blueprint node.

Step 6 — Verify Setup

In your game's BeginPlay (or GameInstance Init), call InitializeEOS and check the return value:

Event BeginPlay
  └─► InitializeEOS ──► (returns true) ──► Continue to Auth Login
                     └─► (returns false) ──► Log error / show error screen

If InitializeEOS returns false, check:

  • Your credentials in DefaultEngine.ini are correct (no trailing spaces)
  • The EOSCore section name is exactly [EOSCore]
  • Your Sandbox and Deployment IDs match your Dev Portal environment
  • You are not in a Shipping build without valid production credentials

Subsystem Persistence

UEOSCoreSubsystem lives as long as the GameInstance. It persists across level changes automatically — you do not need to re-initialize EOS on each level load.


Log Category

All plugin logs use the LogEOSCore category. To see verbose logs, add to DefaultEngine.ini:

[Core.Log]
LogEOSCore=Verbose

Next Step

Once InitializeEOS returns true, follow the Example Project guide for the complete login → query → unlock flow.