Setup
Prerequisites
Before configuring the plugin, make sure you have:
- An Epic Developer Portal account — dev.epicgames.com
- A Product created in the portal with at least one Deployment
- At least one Achievement configured in
Dev Portal → [Your Product] → Achievements
Step 1 — Enable the Plugin
In Unreal Engine:
- Open Edit → Plugins
- Search for EOS Achievements
- 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:
| Field | Where to find it |
|---|---|
ProductId | Product Settings → Product ID |
SandboxId | Product Settings → Sandbox ID (use your Dev sandbox) |
DeploymentId | Product Settings → Deployment ID |
ClientId | SDK Credentials → Client ID |
ClientSecret | SDK 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:
- Go to
Dev Portal → [Your Sandbox] → Achievements - Create an achievement and note its Achievement ID (e.g.
ACH_FIRST_WIN) - Set a Display Name, Locked Description, and Unlocked Description
- Optionally link a Stat if you want progress-based unlocking
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.iniare correct (no trailing spaces) - The
EOSCoresection 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.
Introduction
EOS Achievements is a Blueprint-first plugin for Unreal Engine 5.4+ that integrates Epic Online Services Achievements into your game — authentication, progress tracking, unlock, and real-time listeners included.
Functions
Complete reference for every Blueprint node and utility function provided by EOS Achievements.