Functions
EOS Advanced Session — Functions
This page describes every Blueprint node and utility function included with EOS Advanced Session, with beginner-friendly explanations and practical examples.
If you're new to EOS sessions, follow the nodes in this order: Login → Create Session (host) or Find + Join Session (client)
Understanding the Basics
Before diving into individual nodes, here are a few key concepts:
What is a Session?
A session is an online game room. The host creates it, and other players search for and join it. EOS manages the discovery and connection for you.
What is a Lobby?
A lobby is a special type of session with extra features like voice chat and easier invite systems. Enable bUse Lobbies If Available to use them.
What are Extra Settings?
Extra settings are custom key/value pairs you attach to a session, like MapName = "Desert" or GameMode = "Deathmatch". Other players can search and filter by these values.
Typical Flow
[Player opens game]
↓
EOS Login Async ← authenticate with Epic
↓
┌────────────────────────────────────┐
│ HOST │ CLIENT │
│ EOS Create │ EOS Find │
│ Advanced Session │ Advanced │
│ │ Sessions │
│ │ ↓ │
│ │ EOS Join │
│ │ Session │
└────────────────────────────────────┘
Blueprint Node Preview
Asynchronous Nodes — How They Work
All major nodes (Login, Create, Find, Join) are asynchronous: they launch a network operation and call an output pin when finished, without freezing your game.
WorldContextObject input — Unreal Engine supplies it automatically behind the scenes.Always wire your game logic to the OnSuccess or OnFailure output pins, never assume the operation finishes instantly.
Authentication
EOS Login Async
Logs in the local player using the Epic Games Store (default on PC). This is the standard login for shipped games.
When to use: At game startup, before any session action.
Inputs
| Name | Type | Description |
|---|---|---|
UserId | String | Leave empty — Epic fills this automatically |
Token | String | Leave empty — Epic fills this automatically |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Player is logged in, you can now create or find sessions |
OnFailure | Login failed (e.g. no internet, EOS service down) |
EOS Login With Dev Auth Async
Logs in via the EOS Dev Auth Tool. Use this during development to simulate multiple players on a single machine (e.g. two PIE windows).
When to use: Editor/testing only. Do not ship this to players.
Inputs
| Name | Type | Example |
|---|---|---|
UserId | String | localhost:8081 |
Token | String | PlayerOne (name you set in the Dev Auth Tool) |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Logged in with dev credentials |
OnFailure | Check that the Dev Auth Tool is running and the port matches |
EOS Logout
Logs out the local player from EOS.
Inputs
| Name | Type | Description |
|---|---|---|
Player Controller | APlayerController | The local player to log out |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Returns a confirmation string message |
OnFailed | Logout failed |
Session Management
EOS Create Advanced Session
Creates a new online session. Call this on the host's machine after a successful login.
When to use: When a player clicks "Host Game" in your menu.
Inputs
| Name | Type | Description | Example |
|---|---|---|---|
Extra Settings | S_SessionPropertyKeyPair[] | Custom properties other players can search by | MapName = "Forest", GameMode = "CTF" |
Player Controller | APlayerController | The hosting player | — |
Num Public Connections | Integer | Max number of players (including host) | 4 |
Num Private Connections | Integer | Reserved slots (usually 0) | 0 |
bIs LAN Match | Boolean | LAN only, no internet | false |
bAllow Invites | Boolean | Players can invite friends | true |
bIs Dedicated Server | Boolean | Running on a dedicated server | false |
bUses Presence | Boolean | Visible in friends lists — recommended ON | true |
bUse Lobbies If Available | Boolean | Use EOS Lobby system if available (recommended) | true |
bAllow Join Via Presence | Boolean | Friends can join from their friends list | true |
bAllow Join Via Presence Friends Only | Boolean | Restrict presence join to friends only | false |
bAnti-Cheat Protected | Boolean | Enable EAC anti-cheat | false |
bUses Stats | Boolean | Record EOS stats for this session | false |
bShould Advertise | Boolean | Make session visible in search results | true |
bUse Lobbies Voice Chat If Available | Boolean | Enable voice chat in lobby | false |
bAllow Join In Progress | Boolean | Allow joining after the match has started | false |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Session created — you can now travel to the game map |
OnFailure | Creation failed (check your EOS configuration) |
OnSuccess, call Server Travel to your game map. Use ?listen in the URL so clients can connect.EOS Find Advanced Sessions
Searches for available sessions matching your criteria.
When to use: When a player clicks "Find Game" or "Browse Servers".
Inputs
| Name | Type | Description | Example |
|---|---|---|---|
Player Controller | APlayerController | The searching player | — |
Max Results | Integer | Maximum sessions to return | 50 |
bUse LAN | Boolean | Search LAN only | false |
Server Type To Search | E_ServerTypeToSearch | Filter by server type | All |
Filters | S_SessionPropertyKeyPair[] | Only return sessions matching these properties | GameMode = "CTF" |
bEmpty Servers Only | Boolean | Only return empty sessions | false |
bNon-Empty Servers Only | Boolean | Only return sessions with players | false |
bSecure Servers Only | Boolean | Anti-cheat sessions only | false |
bSearch Lobbies | Boolean | Include EOS Lobbies in results | true |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Returns an array of FBlueprintSessionResult — pass each result to a UI list |
OnFailure | Search failed |
Filters array uses the same keys as Extra Settings in Create Session. If the host set MapName = "Forest", you can filter by MapName = "Forest" to find only those sessions.EOS Join Session Advanced
Joins a session selected by the player from search results.
When to use: When a player clicks a server in your server browser list.
Inputs
| Name | Type | Description |
|---|---|---|
Player Controller | APlayerController | The joining player |
Session Result | FBlueprintSessionResult | The session picked from EOS Find Advanced Sessions results |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Returns a message string — the client will automatically travel to the host's map |
OnFailure | Join failed (session may be full or no longer available) |
EOS Update Session
Updates an already existing session while it is running. Use this to change the number of available slots, toggle advertising, or update custom properties.
When to use: When the host changes map, game mode, or wants to open/close the session to new players.
Inputs
| Name | Type | Default | Description |
|---|---|---|---|
Extra Settings | S_SessionPropertyKeyPair[] | — | New custom properties |
Public Connections | Integer | 2 | New max player count |
Private Connections | Integer | 0 | Reserved slots |
bUse LAN | Boolean | false | — |
bAllow Invites | Boolean | false | — |
bAllow Join In Progress | Boolean | false | — |
bRefresh Online Data | Boolean | true | Push changes to EOS servers |
bIs Dedicated Server | Boolean | false | — |
bShould Advertise | Boolean | true | Keep session visible in search |
Outputs
| Pin | Description |
|---|---|
OnSuccess | Returns a confirmation string |
OnFailure | Update failed |
Utility Functions
These are simple helper functions you can call anywhere in your Blueprints. They return a value instantly (no async pins).
Login Utilities
EOS Get Player Name
Returns the display name of the logged-in local player as shown on Epic Games.
- Output:
String(e.g."PlayerOne")
EOS Player Is Connected
Checks whether the local player is currently connected to EOS.
- Output:
Boolean—trueif connected,falseotherwise
Use this before calling any session node to avoid errors.
EOS Get Unique Net ID
Returns the EOS unique network identifier for a player. Used to identify players across sessions.
- Input:
Player Controller - Output:
FUniqueNetIdRepl
EOS Get Unique Net ID From Player State
Same as above, but reads the ID from the player's PlayerState (useful server-side or for remote players).
- Input:
Player Controller - Output:
FUniqueNetIdRepl
EOS Get Unique Net ID To String
Converts a FUniqueNetIdRepl to a plain string so you can display or log it.
- Input:
UniqueNetId(FUniqueNetIdRepl) - Output:
String
Session Utilities
EOS Make Literal Session Property String
Creates a single S_SessionPropertyKeyPair from a key and a string value. Use this to build your Extra Settings array.
- Inputs:
Key(FName),Value(String) - Output:
S_SessionPropertyKeyPair
Example: Key = "MapName", Value = "Desert" → attach to the Extra Settings array of EOS Create Advanced Session.
EOS Get Session Property Setting
Reads a specific property value from an Extra Settings array by key name.
- Inputs:
ExtraSettings Input(S_SessionPropertyKeyPair[]),SettingsName(FName) - Outputs:
Result(Found/Not Found),String(the value)
Example: Pass a session's extra settings and key "MapName" → get back "Desert".
EOS Filter Session Results
Filters an array of session results client-side by matching custom property values.
- Inputs:
Session Results(FBlueprintSessionResult[]),Filters(S_SessionPropertyKeyPair[]) - Output: Filtered
FBlueprintSessionResult[]
Use this after
EOS Find Advanced Sessionsto refine results locally (e.g. only show sessions whereGameMode = "Deathmatch").
EOS Get Extra Settings
Extracts the Extra Settings array from a session result (e.g. to read the map name or game mode of a found session).
- Input:
Session Result(FBlueprintSessionResult) - Output:
Extra Settings(S_SessionPropertyKeyPair[])
EOS Get Session Settings
Returns the full settings of the currently active session on the local machine.
Outputs
| Name | Type |
|---|---|
Public Connections | Integer |
Private Connections | Integer |
bIsLANMatch | Boolean |
bIsDedicatedServer | Boolean |
bAllowInvites | Boolean |
bAntiCheatProtected | Boolean |
Build Unique ID | Integer |
Extra Settings | S_SessionPropertyKeyPair[] |
EOS Get Session State
Returns the lifecycle state of the current session.
- Output:
EEOSSessionState
| State | Meaning |
|---|---|
NoSession | No session exists |
Creating | Session is being created |
Pending | Session created but not started |
Starting | Session is starting |
InProgress | Match is running |
Ending | Session is ending |
Ended | Session has ended |
Destroying | Session is being destroyed |
Data Structures & Enums
S_SessionPropertyKeyPair
A simple key/value pair used to attach custom data to a session.
| Field | Type | Example |
|---|---|---|
Key | FName | "MapName" |
Value | String | "Forest" |
Use EOS Make Literal Session Property String to create these in Blueprints.
S_PlayerData
Holds basic info about a player.
| Field | Type |
|---|---|
Player Name | String |
UniqueNetId | FUniqueNetIdRepl |
E_ServerTypeToSearch
Used in EOS Find Advanced Sessions to filter by server type.
| Value | Description |
|---|---|
All | Return all session types |
Dedicated Servers Only | Only dedicated server sessions |
Player Hosted Servers Only | Only listen-server sessions |
EEOSSessionState
Represents the current state of a session (see EOS Get Session State above).
EResult
A simple enum returned by lookup functions.
| Value | Meaning |
|---|---|
Found | The requested item was found |
Not Found | The requested item does not exist |