Crossplay Integration Kit
Multiplayer

Crossplay Sessions

Create cross-platform sessions for dedicated server games with EOS backend

Crossplay Sessions

Sessions are designed for dedicated server games. Unlike lobbies, sessions:

  • Support dedicated servers (no player host required)
  • Scale beyond 64 players
  • Don't include voice chat or host migration (use separate voice solutions)
  • Work seamlessly cross-platform via EOS

Creating a Session

Use the Create Crossplay Session node with SessionType = Session.

Quick Setup (Dedicated Server)

SessionType = Session
Visibility = Public
MaxPlayers = 32
bAutoServerTravel = false
bAutoDetectSessionReady = true

For dedicated servers, you typically don't use auto server travel since the server is already running on the target map.

Parameters

Session Name

The internal session name identifier (e.g., "GameSession"). Must be unique per session.

Settings

Travel & Ready Detection:

ParameterTypeDescription
bAutoServerTravelBooleanUsually false for dedicated servers. Set true for listen servers.
MapNameStringMap to travel to. Only used if bAutoServerTravel is true.
bAutoDetectSessionReadyBooleanAuto-detect when server starts listening.

Session Configuration:

ParameterTypeDescription
SessionTypeEnumSet to Session for dedicated servers.
VisibilityEnumPublic: Anyone can find. Friends Only: Friends only. Private: Invite only.
MaxPlayersIntegerMaximum players (no 64 player limit like lobbies).
GameModeStringOptional game mode URL option.
RegionEnumRegion preference (Auto, NA, EU, Asia, etc.).

Visibility Options:

ParameterTypeDescription
bUsePresenceBooleanShow session in friends list. Usually false for dedicated servers.
bAllowJoinInProgressBooleanAllow joining after match starts.

Custom Attributes:

ParameterTypeDescription
CustomAttributesMapKey-value pairs (String, Boolean, Integer, Double) for filtering.

Output Delegates

DelegateDescription
OnSuccessSession created successfully. Returns FUCIK_SessionResult.
OnFailureSession creation failed. Returns error message.
OnSessionReadyChangedServer started/stopped listening.

Dedicated Server Flow

1. Server Startup

On your dedicated server:

// In your GameMode or server initialization
Create Crossplay Session
  SessionType = Session
  bAutoServerTravel = false
  bAutoDetectSessionReady = true

2. Session Registration

UCIK registers your server with EOS. The session becomes discoverable to clients.

3. Client Connection

Clients find the session via Find Sessions, then connect using the ConnectString from the session result.

Manual Ready State

For dedicated servers with custom initialization, use manual ready control:

bAutoDetectSessionReady = false

Then call SetSessionReady(true) when your server is fully initialized:

// After custom initialization completes
SetSessionReady(true)

This updates the session state so clients know the server is accepting connections.

Session vs Lobby Comparison

FeatureSessionLobby
Dedicated ServerYesNo
Player LimitUnlimited64
Voice ChatNo (use separate)Built-in
Host MigrationN/AYes
PresenceOptionalYes
Use CaseCompetitive, large scaleSocial, casual

Custom Attributes

Store server info for matchmaking and filtering:

Key: "ServerName"   → String "US East #1"
Key: "MapName"      → String "de_dust2"
Key: "GameMode"     → String "Competitive"
Key: "PlayerCount"  → Integer 24
Key: "IsRanked"     → Boolean true
Key: "AvgSkill"     → Double 1850.0

Clients use these to filter when finding sessions.

Session Result

The FUCIK_SessionResult returned contains:

FieldTypeDescription
bSuccessBooleanWhether creation succeeded.
SessionIdStringEOS Session ID.
ConnectStringStringAddress for clients to join.
bIsListeningBooleanServer accepting connections.
ErrorMessageStringError details if failed.

Note: PlatformLobbyId will be empty for dedicated servers (no shadow lobby needed).

Platform Support

PlatformEOS Session
WindowsYes
LinuxYes
All client platformsCan connect

Dedicated servers typically run on Windows or Linux. Clients on any platform (Steam, Epic, iOS, Android, consoles) can connect via EOS.

Backend Support

UCIK supports both online backends:

  • Online Subsystem (OSSv1): Works on all UE versions
  • Online Services (OSSv2): Stable in UE 5.7+

UCIK automatically detects and uses the available backend.

Shadow Lobbies on Dedicated Servers

Dedicated servers typically don't create Steam shadow lobbies because:

  1. There's no local Steam user on the server
  2. EOS handles all matchmaking
  3. Clients find servers via EOS session search

If you need Steam lobby browser integration with dedicated servers, consider a hybrid approach with a lobby service that lists your servers.

FAQs

When should I use Session vs Lobby?

Use Session for:

  • Dedicated server games
  • Competitive/ranked matches
  • Games with >64 players
  • When you don't need built-in voice chat

Use Lobby for listen server games. See Lobbies.

Do dedicated servers need Steam running?

No. Dedicated servers connect directly to EOS. Steam is only needed for client-side features like friends lists and invites.

How do clients find my dedicated server?

Clients use Find Sessions to search for available servers, then Join Session to connect.

Can I update session attributes while running?

Yes. Use the Update Session node to modify custom attributes (player count, map rotation, etc.) without destroying the session.


Next: Lobbies | Finding Sessions | Joining Sessions

On this page