Crossplay Integration Kit
Multiplayer

Finding Sessions

Search for cross-platform sessions and lobbies with unified results

Finding Sessions

The Find Crossplay Sessions node searches for available sessions across platforms. It queries EOS for cross-platform sessions and can optionally search Steam lobbies to find games hosted by Steam friends.

Basic Usage

Quick Setup

MaxResults = 50
bIncludePlatformLobbies = true
bOnlyFriendsOnPlatform = false

This searches for all public sessions/lobbies on EOS and Steam shadow lobbies.

Parameters

Search Settings

ParameterTypeDescription
MaxResultsIntegerMaximum number of results to return (default: 50).
bIncludePlatformLobbiesBooleanAlso search Steam lobbies (to find friends' games).
bOnlyFriendsOnPlatformBooleanOnly show sessions from platform friends.

Filtering

ParameterTypeDescription
FiltersArrayCustom attribute filters (see below).
RegionEnumFilter by region (Auto, NA, EU, Asia, etc.).

Custom Attribute Filters

Filter sessions based on custom attributes set during creation:

Filter Types

TypeExample
String EqualGameMode == "Deathmatch"
String Not EqualMapName != "Tutorial"
Integer Greater ThanMinLevel > 10
Integer Less ThanPlayerCount < 16
BooleanIsRanked == true

Setting Up Filters

Filter 1:
  Key: "GameMode"
  Type: String
  Comparison: EqualTo
  Value: "TeamDeathmatch"

Filter 2:
  Key: "MinLevel"
  Type: Integer
  Comparison: LessThanOrEqual
  Value: 50

Output

Delegates

DelegateDescription
OnSuccessSearch completed. Returns array of FUCIK_SessionInfo.
OnFailureSearch failed. Returns error message.

Session Info

Each result contains:

FieldTypeDescription
SessionIdStringUnique session identifier.
OwnerDisplayNameStringHost's display name.
CurrentPlayersIntegerCurrent player count.
MaxPlayersIntegerMaximum allowed players.
bIsListeningBooleanServer is accepting connections.
bIsDedicatedServerBooleanIs a dedicated server (vs listen server).
FoundOnPlatformEnumWhere found (EOS, Steam, etc.).
CustomAttributesMapAll custom attributes from the session.

Platform Lobbies

When bIncludePlatformLobbies is enabled on Steam:

  1. EOS Search - Finds cross-platform EOS sessions/lobbies
  2. Steam Search - Finds Steam lobbies with EOS linking data

Steam lobbies with IsEosSession = true are UCIK shadow lobbies. The node extracts the EOS connection info automatically.

Why Search Both?

  • EOS only: Finds all cross-platform games
  • Steam included: Also finds friends' games via Steam friends list

Steam friends who haven't linked EOS accounts won't appear in EOS searches, but will appear in Steam lobby searches.

Set bOnlyFriendsOnPlatform = true to only show sessions hosted by platform friends.

This is useful for "Join Friend" functionality in your UI.

Search Flow

1. Node activated
2. Query EOS for sessions/lobbies
3. If bIncludePlatformLobbies:
   - Query Steam lobbies
   - Merge results (deduplicate by EOS ID)
4. Apply filters
5. Fire OnSuccess with results

Displaying Results

Use the session info to build your server browser:

For each SessionInfo:
  Display: OwnerDisplayName
  Display: CurrentPlayers / MaxPlayers
  Display: CustomAttributes["MapName"]
  Display: CustomAttributes["GameMode"]

  On Click: JoinCrossplaySession(SessionInfo)

Joining a Session

Pass the FUCIK_SessionInfo directly to Join Session:

JoinCrossplaySession
  SessionToJoin = [Selected SessionInfo]
  bAutoTravel = true

The SessionInfo contains the native search result needed for joining.

Platform Support

PlatformEOS SearchPlatform Lobbies
Windows (Steam)YesSteam Lobbies
Windows (Epic)Yes-
Mac (Steam)YesSteam Lobbies
Linux (Steam)YesSteam Lobbies
iOSYes-
AndroidYes-

Backend Support

UCIK automatically uses the appropriate backend:

  • Online Services (OSSv2): UE 5.7+ with Online Services enabled
  • Online Subsystem (OSSv1): All UE versions with EIK

You don't need to handle this - the node works identically on both backends.

Common Patterns

Server Browser

Find Crossplay Sessions
  MaxResults = 100
  bIncludePlatformLobbies = true

On Success:
  Populate ListView with SessionInfo array

On Item Selected:
  JoinCrossplaySession(SelectedSession)

Quick Match

Find Crossplay Sessions
  MaxResults = 1
  Filters: [GameMode == "Casual"]

On Success (1+ results):
  JoinCrossplaySession(Results[0])

On Success (0 results):
  CreateCrossplaySession(...)  // Host instead

Join Friend

Find Crossplay Sessions
  bOnlyFriendsOnPlatform = true

On Success:
  Show "Friends Playing" list

FAQs

Why don't I see my friend's session?

  1. Private/Invite-Only: Session may not be public
  2. Different Region: Check region filter isn't excluding them
  3. Not Ready: Session may not be marked as listening yet
  4. EOS Not Linked: Steam friend without EOS linking won't appear in EOS search (enable bIncludePlatformLobbies)

How do I refresh the list?

Call Find Crossplay Sessions again. There's no built-in auto-refresh - implement a timer in your UI if needed.

Can I search while in a session?

Yes, but you should leave your current session before joining a new one.


Next: Joining Sessions | Lobbies | Sessions

On this page