EOS Integration KitAlpha
v5.0.1

Online Services

Understanding Online Subsystem v1 vs Online Services v2 and the EIKCore abstraction layer

Unreal Engine has two frameworks for online functionality. EIK supports both, giving you flexibility in how you integrate EOS.

Online Subsystem v1 (Legacy)

The original Online Subsystem (OSS) has been in Unreal Engine since UE3. It uses an interface-based design.

Characteristics

  • Mature & Stable - Battle-tested over many years
  • Wide Compatibility - Works with all UE versions
  • Interface-based - IOnlineSubsystem, IOnlineSession, etc.
  • Synchronous callbacks - Delegate-based async operations

Code Example

IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get();
IOnlineSessionPtr Sessions = OnlineSub->GetSessionInterface();
Sessions->CreateSession(0, NAME_GameSession, SessionSettings);

When to Use

  • Projects that need to support older UE versions
  • Existing projects already using OSS v1
  • Maximum stability and documentation

Online Services v2 (Modern)

Online Services is Epic's modern replacement, introduced in UE 5.2. It uses a service-based architecture.

Characteristics

  • Modern Design - Built for current and future UE versions
  • Service-based - IAuthService, ILobbiesService, etc.
  • Async/Await Style - Promise-based operations
  • Better PIE Support - Improved Play-In-Editor testing

Code Example

UE::Online::IOnlineServicesPtr OnlineServices = GetServices();
UE::Online::ILobbiesPtr Lobbies = OnlineServices->GetLobbiesInterface();
Lobbies->CreateLobby(MoveTemp(Params)).OnComplete(this, &UMyClass::OnLobbyCreated);

When to Use

  • New projects on UE 5.2+
  • Projects that need improved PIE testing
  • Forward-looking architecture

EIK Support

EIK provides full support for both through separate modules:

ModuleFrameworkDescription
OnlineSubsystemEIKOSS v1Legacy interface implementation
OnlineServicesEIKOSS v2Modern services implementation
EIKCoreBothAbstraction layer

EIKCore Abstraction

EIKCore provides a unified abstraction that works with both frameworks:

┌─────────────────────────────────────┐
│            Your Game                │
├─────────────────────────────────────┤
│            EIKCore                  │
│   (Unified API for both OSS v1/v2) │
├────────────────┬────────────────────┤
│ OnlineSubsystem│  OnlineServices    │
│     EIK        │       EIK          │
└────────────────┴────────────────────┘

This means:

  • Blueprint nodes work the same regardless of which framework you use
  • Switching frameworks doesn't require code changes
  • Runtime detection automatically uses the appropriate implementation

Choosing a Framework

Use Online Subsystem v1 if:

  • You're on UE 5.1 or earlier
  • You have existing OSS v1 code
  • You need maximum stability
  • You're following older tutorials/documentation

Use Online Services v2 if:

  • You're starting a new project on UE 5.2+
  • You want improved PIE testing
  • You prefer modern async patterns
  • You want the forward-looking architecture

Configuration

See the Configuration guide for setup instructions. The automatic setup option handles this for you, or you can manually configure for either framework.

PIE Testing

One of the biggest advantages of Online Services v2 is improved Play-In-Editor (PIE) testing:

  • Multiple clients in a single editor session
  • Each PIE instance gets its own online context
  • Faster iteration during development

To test with multiple clients:

  1. Go to Play → Advanced Settings
  2. Set Number of Players to 2 or more
  3. Each client can login and interact independently

On this page