Functions
Overview
All nodes are async Blueprint actions — they return immediately and fire their output pins when the operation completes (via EOS server callbacks). You connect your logic to OnSuccess and OnFailure pins exactly like other async Unreal nodes.
Blueprint Node Preview
Core Subsystem
UEOSCoreLeaderboardSubsystem is a GameInstanceSubsystem — you access it via Get EOS Core Leaderboard Subsystem or from C++ with GameInstance->GetSubsystem<UEOSCoreLeaderboardSubsystem>().
Initialize EOS
Initialize EOS → bool
Initializes the EOS platform. Must be called once before any other EOS node.
- If
OnlineSubsystemEOSis active and has a valid handle → borrows it (no double init). - Otherwise → reads credentials from
DefaultEngine.ini [EOSCore]and creates its own handle.
| Output | Type | Description |
|---|---|---|
| Return Value | bool | true if the platform handle is valid and ready |
Shutdown EOS
Shutdown EOS → void
Shuts down EOS cleanly. If the plugin owns the handle, it calls EOS_Platform_Release. If the handle was borrowed from the OSS, it only clears the internal pointer.
You rarely need to call this manually — the subsystem calls it automatically on
Deinitialize.
Is Initialized
Is Initialized → bool
Returns true if InitializeEOS has succeeded and the platform handle is still valid.
Is Player Logged In
Is Player Logged In → bool
Returns true if a player has successfully completed both Auth Login and Connect Login.
Get Local Epic Account Id
Get Local Epic Account Id → FString
Returns the Epic Account ID of the logged-in player as a string, or empty if not logged in.
Get Local Product User Id
Get Local Product User Id → FString
Returns the Product User ID (used for all game services) as a string, or empty if Connect Login has not completed.
Get User Info
Get User Info → FS_PlayerInfo
Returns cached player info populated after Auth Login:
| Field | Type | Description |
|---|---|---|
DisplayName | FString | Player's Epic display name |
Nickname | FString | Player's nickname if set |
Country | FString | Player's country code |
PreferredLanguage | FString | Player's preferred language code |
Authentication
EOS Auth Login (Epic Account)
EOS Auth Login (Epic Account)
├─ WorldContext
├─ PrimaryLoginType [AccountPortal / ExchangeCode / PersistentAuth]
├─ Policy [PersistentThenPortal / PersistentThenExchangeCode / NeverFallback]
├─ bDeletePersistentAuthBeforeFallback [bool]
├─► OnSuccess → FEOSAuthResult
└─► OnFailure → FEOSAuthResult
Logs the player in with their Epic Games account.
Login Types:
| Value | Use case |
|---|---|
AccountPortal | Opens the Epic browser portal. Best for testing without the launcher. |
ExchangeCode | Game launched from Epic Games Launcher (production). Requires -AUTH_PASSWORD= argument. |
PersistentAuth | Reuses a locally saved token (silent re-login). |
Policies:
| Value | Behavior |
|---|---|
PersistentThenPortal | Try PersistentAuth first, fall back to AccountPortal. Recommended for dev/testing. |
PersistentThenExchangeCode | Try PersistentAuth first, fall back to ExchangeCode. Recommended for production. |
NeverFallback | Only tries the PrimaryLoginType. No automatic retry. |
Output — FEOSAuthResult:
| Field | Type | Description |
|---|---|---|
EpicAccountId | FString | Epic Account ID on success |
ErrorMessage | FString | EOS error code on failure |
EOS Connect Login (ProductUserId)
EOS Connect Login (ProductUserId)
├─ WorldContext
├─► OnSuccess → FEOSConnectResult
└─► OnFailure → FEOSConnectResult
Exchanges the Epic Account token for a Product User ID — the player identity used by all game services.
- New players are created automatically —
OnSuccessfires in both cases. - Must be called after a successful Auth Login.
Output — FEOSConnectResult:
| Field | Type | Description |
|---|---|---|
ProductUserId | FString | Product User ID on success |
ErrorMessage | FString | EOS error code on failure |
EOS Auth Logout
EOS Auth Logout
├─ WorldContext
├─► OnSuccess → FString (empty)
└─► OnFailure → FString (ErrorMessage)
Logs the current player out from their Epic Account. Clears the logged-in flag on the subsystem.
Leaderboards
EOS Get Leaderboard List
EOS Get Leaderboard List
├─ WorldContext
├─► OnSuccess → ErrorMessage (FString), Result (TArray<FEOSLeaderboardDefinition>)
└─► OnFailure → ErrorMessage (FString), Result (TArray<FEOSLeaderboardDefinition>)
Fetches the list of all leaderboards configured in the EOS Dev Portal for this deployment.
Use the returned LeaderboardId values to call EOS Query Leaderboard or EOS Query Leaderboard Range.
Output — FEOSLeaderboardDefinition:
| Field | Type | Description |
|---|---|---|
LeaderboardId | FString | Unique ID to pass to Query nodes |
StatName | FString | EOS stat that drives this leaderboard |
StartDate | FEOSDateTime | Start of the leaderboard window (if set) |
EndDate | FEOSDateTime | End of the leaderboard window (if set) |
LeaderboardId and skip this node.EOS Query Leaderboard
EOS Query Leaderboard
├─ WorldContext
├─ LeaderboardId [FString]
├─► OnSuccess → ErrorMessage (FString), Result (TArray<FEOSLeaderboardEntry>)
└─► OnFailure → ErrorMessage (FString), Result (TArray<FEOSLeaderboardEntry>)
Fetches all entries of a leaderboard, sorted by rank.
Internally:
QueryLeaderboardRanks— fetches rank data from EOS serversCopyLeaderboardRecordByIndex— reads entries from the local cache
Output — FEOSLeaderboardEntry:
| Field | Type | Description |
|---|---|---|
UserId | FString | Product User ID of the player |
UserDisplayName | FString | Player's display name (may be empty) |
Rank | int32 | Position in the leaderboard (starts at 1) |
Score | int64 | Raw stat value stored in EOS |
RankFrom / RankTo window to avoid fetching unnecessary data.EOS Query Leaderboard Range
EOS Query Leaderboard Range
├─ WorldContext
├─ LeaderboardId [FString]
├─ RankFrom [int32, default: 1]
├─ RankTo [int32, default: 10]
├─► OnSuccess → ErrorMessage (FString), Result (TArray<FEOSLeaderboardEntry>)
└─► OnFailure → ErrorMessage (FString), Result (TArray<FEOSLeaderboardEntry>)
Fetches a slice of the leaderboard between two rank positions (inclusive).
Parameters:
| Parameter | Type | Description |
|---|---|---|
LeaderboardId | FString | Leaderboard ID from the Dev Portal |
RankFrom | int32 | First rank to include (minimum: 1) |
RankTo | int32 | Last rank to include (0 = no upper limit) |
Range examples:
| RankFrom | RankTo | Result |
|---|---|---|
1 | 10 | Top 10 |
1 | 5 | Top 5 |
10 | 20 | Ranks 10 to 20 |
50 | 0 | Rank 50 and above (no limit) |
The node reads all EOS records internally and filters client-side by rank. EOS rows are sorted in ascending rank order, so the loop exits early once RankTo is exceeded.
Output: same TArray<FEOSLeaderboardEntry> as EOS Query Leaderboard, restricted to the requested range.
EOS Ingest Stat (Leaderboard)
EOS Ingest Stat (Leaderboard)
├─ WorldContext
├─ StatName [FString]
├─ Amount [int32, default: 1]
├─► OnSuccess → ErrorMessage (FString)
└─► OnFailure → ErrorMessage (FString)
Submits a stat value to EOS. The leaderboard linked to that stat is updated automatically — no separate leaderboard call needed.
Parameters:
| Parameter | Type | Description |
|---|---|---|
StatName | FString | Exact stat name from the Dev Portal (e.g. score) |
Amount | int32 | Value to ingest (combined with existing value per the aggregation method) |
How amount interacts with aggregation method:
| Dev Portal Aggregation | Amount = 50 | Effect |
|---|---|---|
SUM | Previous: 100 | New total: 150 |
MAX | Previous: 200 | No change (200 > 150) |
MAX | Previous: 30 | New value: 50 |
LATEST | Any | Always replaced with 50 |
Utility Functions (C++ only)
These inline helpers are available in the EOSHelpers namespace and used internally. They can also be used in C++ code.
| Function | Returns | Description |
|---|---|---|
EOSHelpers::GetEOS(WorldContext) | UEOSCoreLeaderboardSubsystem* | Gets the subsystem from any UObject |
EOSHelpers::IsEOSReady(WorldContext) | bool | True if initialized |
EOSHelpers::IsEpicLoggedIn(WorldContext) | bool | True if player is logged in |
EOSHelpers::GetProductUserId(WorldContext) | FString | Returns PUID as string |
EOSHelpers::PuidToStr(EOS_ProductUserId) | FString | Converts EOS PUID to string |
EOSHelpers::TimestampToEOSDate(int64) | FEOSDateTime | Converts EOS timestamp to date struct |
Error Codes
Common EOS error codes you may see in ErrorMessage fields:
| Code | Meaning |
|---|---|
EOS_NotFound | LeaderboardId or StatName does not exist in the Dev Portal |
EOS_InvalidUser | ProductUserId is invalid or missing (auto-handled internally) |
EOS_NoConnection | No internet connection |
EOS_TimedOut | EOS servers not reachable |
EOS_Auth_InvalidToken | Persistent token expired — retry with Account Portal |
EOS_InvalidCredentials | Wrong ClientId / ClientSecret in .ini |
For a full list, see the EOS SDK Result Codes reference.