EOS Reference

UOS exposes 24 EOS subsystems. The core subsystem brings up EOS_Initialize + EOS_Platform_Create and ticks the platform; everything else is a thin BlueprintCallable wrapper around a single EOS Interface, with C-style callbacks marshalled back to the game thread.

Quick jump

Note
EOS has two identity types: EpicAccountId for auth / friends / presence, and ProductUserId for everything gameplay-facing (lobbies, achievements, stats, P2P). Sign in with Auth first, then exchange that for a ProductUserId via Connect. UOS exposes both types as Blueprint structs (FUOSEpicAccountId and FUOSProductUserId).

UOSEOSSubsystem - Core lifecycle

Calls EOS_Initialize and EOS_Platform_Create on Game Instance startup using the credentials from Project Settings. Ticks the platform every frame (EOS_Platform_Tick) so async results surface.

Key Blueprint nodes

  • -Is Platform Ready - true once the EOS platform handle is valid.
  • -Get Platform Handle - returns an opaque handle; rarely needed in BP.

UOSEOSAuthSubsystem - Epic account login

Sign-in using one of six credential types: AccountPortal, PersistentAuth, ExchangeCode, DeviceCode, Developer, or ExternalAuth. The result is an EpicAccountId.

Key Blueprint nodes

  • -Login (AuthType, IdString, TokenString, ScopeFlags).
  • -Logout (LocalUser).
  • -Get Logged In Account.

Events

  • -OnLoginComplete (Success, EpicAccountId).
  • -OnLogoutComplete.
  • -OnAuthExpiration - re-login required.

Auth type cheatsheet

  • -AccountPortal - opens a system browser; works in dev/release client builds.
  • -PersistentAuth - silent re-login using stored refresh token.
  • -ExchangeCode - launched-from-Epic-Launcher flow.
  • -DeviceCode - console / TV-style code flow.
  • -Developer - Developer Auth Tool (EpicGames.exe dev tool).
  • -ExternalAuth - Steam, PSN, Xbox tickets.

UOSEOSConnectSubsystem - ProductUserId

Trades an external credential (Epic, Steam, Discord, Apple, Google, Nintendo, OpenID, etc.) for a ProductUserId. This is the identity used by every gameplay-facing EOS service.

Key Blueprint nodes

  • -Login (Token, AccountType, Credentials) - fires OnLoginComplete.
  • -Create User (ContinuanceToken) - first-time players.
  • -Login With Device ID - anonymous device-bound account; great for tutorials before forcing sign-in.
  • -Query External Account Mappings / Query Product User Id Mappings - turn one ID type into the other.

UOSEOSUserInfoSubsystem

Display name, country, preferred language for an EpicAccountId.

Key Blueprint nodes

  • -Query User Info - issues a server fetch.
  • -Copy User Info - returns cached FUOSEOSUserInfo.
  • -Copy Best Display Name - the user's preferred display string.

UOSEOSFriendsSubsystem

Epic friends list - query, send / accept / reject invites.

Key Blueprint nodes

  • -Query Friends -> OnQueryComplete.
  • -Get Friends - cached array.
  • -Send Invite, Accept Invite, Reject Invite.

UOSEOSPresenceSubsystem

Set / query rich presence; the "X is doing Y" line under a friend in the Epic overlay.

Key Blueprint nodes

  • -Query Presence, Get Presence.
  • -Set Presence (Status, RichText, JoinInfo, KeyValuePairs) - opens a PresenceModification, applies, releases.
Tip
The JoinInfo field is read by the "Join Game" button in the Epic overlay. Put your lobby ID or session join string here.

UOSEOSAchievementsSubsystem

Key Blueprint nodes

  • -Query Definitions - downloads achievement metadata.
  • -Get Achievement Definitions - cached array of FUOSEOSAchievementDefinition.
  • -Query Player Achievements + Get Player Achievements.
  • -Unlock Achievements (LocalUser, AchievementIds).

UOSEOSStatsSubsystem

Per-user numeric stats. Stats can drive achievements via the Dev Portal.

Key Blueprint nodes

  • -Ingest Stat (StatName, Amount) - adds delta.
  • -Query Stats + Get All Stats.

UOSEOSLeaderboardsSubsystem

Key Blueprint nodes

  • -Query Definitions + Get Definitions.
  • -Query Ranks (LeaderboardId) - top N.
  • -Query User Scores (LeaderboardId, Users[]).

UOSEOSPlayerDataStorageSubsystem

Per-user cloud storage. Files are read in chunks via streaming callbacks; UOS aggregates the chunks for you.

Key Blueprint nodes

  • -Query File List -> OnFileListComplete.
  • -Read File -> OnReadComplete (Success, Filename, Bytes).
  • -Write File (Filename, Bytes) -> OnWriteComplete.
  • -Delete File, Duplicate File.

UOSEOSTitleStorageSubsystem

Read-only files published per-title by the developer (motd, hotfix configs, etc.).

Key Blueprint nodes

  • -Query File List (LocalUser, Tags) - empty tags = everything.
  • -Read File -> OnReadComplete.

UOSEOSLobbySubsystem

EOS Lobbies - the lighter-weight matchmaking primitive. State is replicated automatically across members; chat / member attributes come for free.

Key Blueprint nodes

  • -Create Lobby (LocalUser, MaxMembers, Permission, BucketId, PresenceEnabled, Attributes).
  • -Join Lobby By Id, Join Lobby By Invite Id.
  • -Leave Lobby, Destroy Lobby.
  • -Update Lobby Attributes, Update Member Attributes.
  • -Send Invite, Reject Invite.
  • -Kick Member, Promote Member.
  • -Search By Bucket Id, Search By Attribute.
  • -Copy Lobby Info By Id - cached snapshot.

Events

  • -OnLobbyCreated / OnLobbyJoined / OnLobbyLeft.
  • -OnSearchComplete (Success, Lobbies[]).
  • -OnLobbyUpdated - lobby-level data change.
  • -OnMemberStatusChanged - join / leave / kick / promote / disconnect.
  • -OnInviteReceived (Inviter, InviteId, LobbyId).
Tip
BucketId is the "match type" key. Use distinct values for each game mode (4v4_ranked, ffa_casual) so searches partition cleanly.

UOSEOSSessionsSubsystem

Sessions are the "named session" primitive - typically owned by a host or dedicated server, advertised to clients via search, joined with a JoinInfo string.

Key Blueprint nodes

  • -Create Session (LocalUser, SessionName, BucketId, MaxPlayers, Permission, StringAttributes).
  • -Update Session (Name, NewMax, NewAttributes).
  • -Start Session / End Session / Destroy Session.
  • -Register Players / Unregister Players.
  • -Send Invite.
  • -Search By Bucket Id -> OnSearchComplete.
  • -Copy Session Info - cached snapshot for the local active session.

UOSEOSP2PSubsystem

EOS P2P transport. Send arbitrary byte arrays addressed to a remote ProductUserId on a named socket.

Key Blueprint nodes

  • -Send Packet (LocalUser, RemoteUser, SocketName, Data, Reliability, AllowDelayedDelivery).
  • -Receive Packet - poll once per tick; returns true if a packet was drained.
  • -Accept Connection, Close Connection, Close Connections.
  • -Query NAT Type, Get NAT Type.
  • -Event: OnPeerConnectionRequest (RemoteUser, SocketName).

UOSEOSRTCSubsystem - Voice rooms

Join an EOS RTC voice room. The ClientBaseUrl + ParticipantToken come from your backend (you mint them via the EOS RTC Web API).

Key Blueprint nodes

  • -Join Room (LocalUser, RoomName, ClientBaseUrl, ParticipantId, Token).
  • -Leave Room.
  • -Block Participant.
  • -Events: OnJoinComplete, OnLeaveComplete, OnParticipantJoined, OnParticipantLeft.

UOSEOSRTCAudioSubsystem - Audio devices / volume

Key Blueprint nodes

  • -Update Sending (mute / unmute mic in a room).
  • -Update Receiving (mute a specific peer).
  • -Get Input Devices / Get Output Devices.
  • -Set Input Device / Set Output Device.
  • -Set Input Volume / Set Output Volume / Set Participant Volume (0-100).

UOSEOSEcomSubsystem - Entitlements / Offers / Checkout

EGS purchases, entitlements, redemption.

Key Blueprint nodes

  • -Query Entitlements (LocalUser, EntitlementNames[]).
  • -Get Entitlements - cached array of FUOSEOSEntitlement.
  • -Query Offers, returns offers via OnOffersComplete.
  • -Checkout (LocalUser, NamespaceOverride, OfferIds[]) - opens overlay.
  • -Redeem Entitlements.
Heads up
OnCheckoutComplete firing means the overlay closed, not that the user paid. Always re-query entitlements before granting an item.

UOSEOSModsSubsystem

Key Blueprint nodes

  • -Enumerate Mods (LocalUser, ModType).
  • -Install Mod / Uninstall Mod / Update Mod.

UOSEOSProgressionSnapshotsSubsystem

Lets you snapshot a player's progression at a point in time so the EOS dashboard can render history charts.

Key Blueprint nodes

  • -Begin Snapshot, Add Progression, Submit Snapshot.

UOSEOSSanctionsSubsystem

Read active bans / warnings on a player.

  • -Query Active Player Sanctions -> OnQueryComplete with sanctions array.

UOSEOSReportsSubsystem

  • -Send Player Behavior Report (Reporter, ReportedUser, Category, Message).

UOSEOSMetricsSubsystem

Begin / End Player Session, account-link telemetry. Surface varies between SDK minor versions; UOS exposes a stable subset.

UOSEOSCustomInvitesSubsystem

Free-form invites whose payload is your own string. Useful for game-mode-specific lobby links.

  • -Set Custom Invite (LocalUser, Payload).
  • -Send Custom Invite (LocalUser, Targets[]).
  • -Finalize Invite (LocalUser, TargetUser, ProcessingResult).
  • -Events: OnCustomInviteReceived, OnCustomInviteAccepted, OnCustomInviteRejected.

UOSEOSUISubsystem - Friends overlay

  • -Show Friends / Hide Friends.
  • -Set Display Preference.

UOSEOSAntiCheatClientSubsystem

Easy Anti-Cheat client integration. Real shipping requires a signed executable + EAC bootstrapper + per-title config registered with Epic; this subsystem exposes the runtime API surface.

  • -Begin Session (Mode = ClientServer | PeerToPeer).
  • -End Session.
  • -Poll Status.
  • -Event: OnClientIntegrityViolated (ViolationType, Message).

UOSEOSAntiCheatServerSubsystem

Use on dedicated-server builds.

  • -Begin Session (RegisterTimeoutSeconds = 10..120, ServerName, EnableGameplayData).
  • -End Session.
Note
Per-tick player-event logging (LogPlayerTick / LogPlayerSpawn / etc.) is not surfaced here. Titles need to wire that into their gameplay loop in C++ - the surface is too high-frequency to be Blueprint-friendly.

UOSEOSKWSSubsystem

Kid Web Services - parental-consent flows. Stubbed surface; titles that need it should extend in C++.

UOSEOSVersionSubsystem

  • -Get Version - SDK version string for diagnostics.