How to Integrate EOS Kit with PlayFab in Unreal Engine

How to Integrate EOS Kit with PlayFab in Unreal Engine

If you’re building a multiplayer game in Unreal Engine and using both Epic Online Services (EOS) and PlayFab, it’s useful to understand how the two systems can work together.

EOS can be used for online authentication, sessions, lobbies, friends, presence, and other multiplayer services, while PlayFab can handle persistent player data, statistics, inventory, economy, progression, and backend functionality.

A typical architecture can look like:

Unreal Engine
      |
   EOS Kit
      |
   EOS Services
      |
 Authentication / Sessions / Lobbies
      |
      +-------- PlayFab --------+
               |
        Player Data / Stats
        Inventory / Economy
        Progression / Backend

The important part is maintaining a consistent player identity between EOS and PlayFab.

A basic login flow can be:

Game Launch
    ↓
Initialize EOS
    ↓
EOS Login
    ↓
Get Player Identity
    ↓
PlayFab Authentication
    ↓
Open Main Menu

Once the player is authenticated, EOS can handle the multiplayer session while PlayFab can be used to store persistent information such as XP, inventory, currency, statistics, and progression.

For example:

EOS
 ├── Authentication
 ├── Sessions
 ├── Lobbies
 ├── Friends
 └── Presence

PlayFab
 ├── Player Data
 ├── Inventory
 ├── Currency
 ├── Statistics
 └── Progression

One thing to avoid is creating completely independent authentication flows that result in multiple accounts being created for the same player. The identity mapping between the two services should be planned from the beginning.

For developers looking for a Blueprint-friendly way to work with EOS in Unreal Engine, I’ve been using EOS Kit, which provides access to EOS functionality without having to build the integration from scratch.

I’ve also put together a more detailed step-by-step guide covering the complete integration:

Hopefully this helps anyone working on an Unreal Engine multiplayer project with EOS and PlayFab.