Plugins

Introduction

EOS Stats is a Blueprint-first plugin for Unreal Engine 5.4+ that integrates Epic Online Services Stats into your game — value ingestion, queries, client-side caching, and a local stat schema included.
EOS STATS (FAB Listing)

Overview

EOS Stats is an Unreal Engine plugin that gives you a clean, Blueprint-first integration of Epic Online Services (EOS) Stats — without writing any C++ or dealing with the raw EOS SDK.

It handles the full flow:

  • EOS initialization (auto-detect OnlineSubsystemEOS or create its own handle)
  • Epic Account authentication (Auth Login with persistent token, fallback support, Dev Auth Tool)
  • Product User identity (Connect Login required by EOS for game services)
  • Ingesting stats (send increments — kills, revives, playtime, currency, anything numeric)
  • Querying stats (read player stat values back, with automatic client-side caching)
  • Local stat schema (declare your stats in Project Settings with a default value, since EOS has no server-side "list all stats" API)
  • Player identity (display name, nickname, country, preferred language)


Requirements

Engine versionUE 5.4 and above
PlatformsWindows, Mac, Linux, Android, iOS
EOS AccountEpic Developer Portal project with Stats configured

Plugin Architecture

The plugin is split into two modules:

ModuleRole
EOSCoreStatsCore subsystem — EOS init, Auth Login, Connect Login, identity
EOS_StatsStats-specific logic — Query Stats, Ingest Stat, stat definitions, client-side cache

The central object is UEOSCoreStatsSubsystem, a GameInstanceSubsystem that lives for the entire game session and holds the EOS platform handle, the Epic Account ID, and the Product User ID. UEOSStatsSubsystem (also a GameInstanceSubsystem) owns the Stats-specific caches (queried values + local schema).


Blueprint Flow (Overview)

InitializeEOS
     │
     ▼
EOS Auth Login (Epic Account)
     │ OnSuccess
     ▼
EOS Connect Login (ProductUserId)          ← auto-handled internally
     │ OnSuccess
     ▼
EOS Query Stat Definitions ──────────────► Load your local stat schema
     │
     ▼
EOS Query Stats ──────────────────────────► Read real values from Epic's servers
     │ OnSuccess
     ▼
EOS Get All Stats (With Defaults) ────────► Display a full stat sheet (0 for stats never ingested)
     │
     ▼
EOS Ingest Stat ───────────────────────────► On game event (kill, revive, match end, ...)

Each async step is a Blueprint node with OnSuccess/OnFailure pins — no manual callback wiring required.

Auto-login: Both EOS Query Stats and EOS Ingest Stat detect a missing Product User ID and trigger Connect Login automatically. In most cases you only need to call Auth Login once, then use the Stats nodes directly.


What This Plugin Solves

The raw EOS SDK requires:

  • Manual EOS_Initialize / EOS_Platform_Create calls
  • Two separate login steps (Auth + Connect) with error handling
  • Manually iterating CopyStatByIndex to read query results
  • Managing SDK memory (EOS_Stats_Stat_Release)
  • No built-in way to know which stats exist before the player has any value for them

EOS Stats abstracts all of this — including a local stat schema (declared in Project Settings) so you can display a complete stat sheet with sensible defaults before a single value has ever been ingested.


Dependencies

The following Unreal Engine plugins must be enabled in your .uproject:

  • OnlineSubsystem
  • EOSShared

OnlineSubsystemEOS and OnlineSubsystemUtils are optional — if active, the plugin borrows the existing EOS handle automatically. If not, the plugin creates its own from DefaultEngine.ini.


  1. Setup — configure your EOS credentials and declare your stat schema
  2. Functions — reference for every Blueprint node
  3. Example Project — a step-by-step integration walkthrough

Need Help?

Join the community Discord:

Join the Discord

When asking for support, include:

  • Unreal Engine version
  • Plugin version
  • Your platform (Editor / Windows / etc.)
  • Logs or screenshots of the issue