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 = falseThis searches for all public sessions/lobbies on EOS and Steam shadow lobbies.
Parameters
Search Settings
| Parameter | Type | Description |
|---|---|---|
MaxResults | Integer | Maximum number of results to return (default: 50). |
bIncludePlatformLobbies | Boolean | Also search Steam lobbies (to find friends' games). |
bOnlyFriendsOnPlatform | Boolean | Only show sessions from platform friends. |
Filtering
| Parameter | Type | Description |
|---|---|---|
Filters | Array | Custom attribute filters (see below). |
Region | Enum | Filter by region (Auto, NA, EU, Asia, etc.). |
Custom Attribute Filters
Filter sessions based on custom attributes set during creation:
Filter Types
| Type | Example |
|---|---|
| String Equal | GameMode == "Deathmatch" |
| String Not Equal | MapName != "Tutorial" |
| Integer Greater Than | MinLevel > 10 |
| Integer Less Than | PlayerCount < 16 |
| Boolean | IsRanked == true |
Setting Up Filters
Filter 1:
Key: "GameMode"
Type: String
Comparison: EqualTo
Value: "TeamDeathmatch"
Filter 2:
Key: "MinLevel"
Type: Integer
Comparison: LessThanOrEqual
Value: 50Output
Delegates
| Delegate | Description |
|---|---|
OnSuccess | Search completed. Returns array of FUCIK_SessionInfo. |
OnFailure | Search failed. Returns error message. |
Session Info
Each result contains:
| Field | Type | Description |
|---|---|---|
SessionId | String | Unique session identifier. |
OwnerDisplayName | String | Host's display name. |
CurrentPlayers | Integer | Current player count. |
MaxPlayers | Integer | Maximum allowed players. |
bIsListening | Boolean | Server is accepting connections. |
bIsDedicatedServer | Boolean | Is a dedicated server (vs listen server). |
FoundOnPlatform | Enum | Where found (EOS, Steam, etc.). |
CustomAttributes | Map | All custom attributes from the session. |
Platform Lobbies
When bIncludePlatformLobbies is enabled on Steam:
- EOS Search - Finds cross-platform EOS sessions/lobbies
- 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.
Friends-Only Search
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 resultsDisplaying 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 = trueThe SessionInfo contains the native search result needed for joining.
Platform Support
| Platform | EOS Search | Platform Lobbies |
|---|---|---|
| Windows (Steam) | Yes | Steam Lobbies |
| Windows (Epic) | Yes | - |
| Mac (Steam) | Yes | Steam Lobbies |
| Linux (Steam) | Yes | Steam Lobbies |
| iOS | Yes | - |
| Android | Yes | - |
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 insteadJoin Friend
Find Crossplay Sessions
bOnlyFriendsOnPlatform = true
On Success:
Show "Friends Playing" listFAQs
Why don't I see my friend's session?
- Private/Invite-Only: Session may not be public
- Different Region: Check region filter isn't excluding them
- Not Ready: Session may not be marked as listening yet
- 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