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:
| Module | Framework | Description |
|---|---|---|
OnlineSubsystemEIK | OSS v1 | Legacy interface implementation |
OnlineServicesEIK | OSS v2 | Modern services implementation |
EIKCore | Both | Abstraction 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:
- Go to Play → Advanced Settings
- Set Number of Players to 2 or more
- Each client can login and interact independently