Multiplayer API Reference
This section documents all Multiplayer Blueprint nodes provided by PloxTools: Steam Integration.
All functions require Steam to be initialized unless stated otherwise.
Managed Host, Start, Find, and Join operations automatically use Multiplayer Version from Edit → Project Settings → Plugins → PloxTools: Steam Integration → Multiplayer → Connection (default: 1). The version is configured once per project rather than passed to individual Blueprint nodes.
State
| Node | Parameters | Callbacks / Return | Description |
|---|---|---|---|
| Is Hosting Steam Game | WorldContextObject (UObject) |
bool | Returns true when this world is the host of an active managed Steam game. |
| Is Connected To Steam Game | WorldContextObject (UObject) |
bool | Returns true when the managed Steam multiplayer state is Connected. |
| Is Searching For Steam Games | WorldContextObject (UObject) |
bool | Returns true while Find Steam Games is in progress. A search may run while the multiplayer state remains Connected. |
| Is Steam Game Traveling | WorldContextObject (UObject) |
bool | Returns true while the managed Steam game is traveling to another map. |
| Get Steam Multiplayer State | WorldContextObject (UObject) |
ESteamMultiplayerState |
Returns the current high-level managed Steam multiplayer state. |
| Get Current Steam Game | WorldContextObject (UObject) |
FSteamCurrentGame |
Returns the current managed Steam game. Is Valid is false when no managed game is active. |
Multiplayer
| Node | Parameters | Callbacks / Return | Description |
|---|---|---|---|
| Host Steam Game | WorldContextObject (UObject)Map (TSoftObjectPtr<UWorld>)MaxPlayers (int32)LobbyType (ESteamLobbyType)LobbyData (map of string to string) |
On Success (Lobby ID: FSteamLobbyID)On Failure (Error: ESteamMultiplayerError, Error Message: string) |
Creates a joinable Steam lobby and starts a PloxTools Steam listen server on the selected map. |
| Start Steam Game From Current Lobby | WorldContextObject (UObject)Map (TSoftObjectPtr<UWorld>)bAllowJoinInProgress (bool) |
On Success (Lobby ID: FSteamLobbyID)On Failure (Error: ESteamMultiplayerError, Error Message: string) |
Starts a PloxTools Steam listen server from the current Steam Lobby without creating a new Lobby. Eligible players already in the Lobby automatically attempt to connect to the match; bAllowJoinInProgress controls whether additional players can join after the match starts. |
| Find Steam Games | WorldContextObject (UObject)MaxResults (int32)Distance (ESteamLobbyDistanceFilter)MinimumAvailableSlots (int32)SearchFilters (array of FSteamLobbySearchFilter) |
On Success (Results: array of FSteamGameSearchResult)On Failure (Error: ESteamMultiplayerError, Error Message: string) |
Finds compatible PloxTools managed Steam games using Steam lobby search. |
| Join Steam Game | WorldContextObject (UObject)LobbyID (FSteamLobbyID) |
On Success (Lobby ID: FSteamLobbyID)On Failure (Error: ESteamMultiplayerError, Error Message: string) |
Joins a managed Steam lobby and connects to its host through PloxTools Steam networking. |
| Leave Steam Game | WorldContextObject (UObject) |
On Success On Failure (Error: ESteamMultiplayerError, Error Message: string) |
Leaves the current managed Steam game, closes its Steam/Unreal network connection and cleans up Lobby membership. |
| Travel Steam Game | WorldContextObject (UObject)Map (TSoftObjectPtr<UWorld>)bSeamlessTravel (bool)TravelOptions (string) |
On Success On Failure (Error: ESteamMultiplayerError, Error Message: string) |
Travels the current hosted Steam game to another map while preserving the managed Steam Lobby and session. |
Version compatibility: Host and clients must use the same configured Multiplayer Version. The plugin uses it for game discovery and join validation, including automatic connections from an existing Steam Lobby. This setting is independent of Unreal Engine Project Version.
Invites
| Node | Parameters | Callbacks / Return | Description |
|---|---|---|---|
| Invite Player To Steam Game | UserID (FSteamUserID) |
bool | Sends a lobby invitation to the specified Steam user for the current connected, joinable managed game. The Lobby ID is resolved automatically. true means Steam accepted the send request, not that the friend joined. |
| Open Steam Invite Dialog For Current Game | – | bool | Requests the Steam Overlay invitation dialog for the current connected, joinable managed game. Requires Steam Overlay; true does not confirm invitation acceptance or connection. |
For choosing between managed game, pre-game lobby, and custom connect-string invites, see Steam Invitations and Join Requests.
Events
| Node | Parameters | Callbacks / Return | Description |
|---|---|---|---|
| Subscribe To Steam Player Joined | – | On Joined (User ID: FSteamUserID)FSteamMultiplayerListenerHandle |
Registers a persistent listener fired on the host after a remote Steam player completes Unreal gameplay login. |
| Subscribe To Steam Player Left | – | On Left (User ID: FSteamUserID)FSteamMultiplayerListenerHandle |
Registers a persistent listener fired on the host when a connected remote Steam player leaves the managed game. |
| Subscribe To Steam Game Invitation Received | – | On Received (From User: FSteamUserID, Lobby ID: FSteamLobbyID)FSteamMultiplayerListenerHandle |
Reports a Steam lobby invitation delivered while the game is running. Returns the inviting user and Lobby ID; does not join the lobby or game. |
| Subscribe To Steam Game Invitation Accepted | – | On Accepted (From User: FSteamUserID, Lobby ID: FSteamLobbyID)FSteamMultiplayerListenerHandle |
Reports an accepted Steam lobby invitation or supported Join Game request. Returns the source user when available and Lobby ID. The game must choose Join Steam Game for managed matches or Join Steam Lobby for pre-game lobbies; this callback does not connect automatically. |
| Subscribe To Steam Game Travel Started | – | On Started (From Map: string, To Map: string, Seamless Travel: bool)FSteamMultiplayerListenerHandle |
Registers a persistent listener fired when Travel Steam Game begins a managed server travel. |
| Subscribe To Steam Game Travel Completed | – | On Completed (Map: string, Seamless Travel: bool)FSteamMultiplayerListenerHandle |
Registers a persistent listener fired after the managed host successfully completes Travel Steam Game. |
| Subscribe To Steam Game Closed | – | On ClosedFSteamMultiplayerListenerHandle |
Registers a persistent listener fired after the local managed Steam game is intentionally closed by Leave Steam Game. |
| Subscribe To Steam Game Disconnected | – | On Disconnected (Error: ESteamMultiplayerError, Error Message: string)FSteamMultiplayerListenerHandle |
Registers a persistent listener fired when an active managed Steam game ends unexpectedly because its network/session was lost. |
| Subscribe To Steam Host Disconnected | – | On Disconnected (Host User ID: FSteamUserID, Error Message: string)FSteamMultiplayerListenerHandle |
Registers a persistent client listener fired when the connected Steam host is lost unexpectedly. |
| Subscribe To Steam Connection Failed | – | On Failed (Error: ESteamMultiplayerError, Error Message: string)FSteamMultiplayerListenerHandle |
Registers a persistent listener fired when Host Steam Game or Join Steam Game fails while establishing managed Steam networking. |
| Unsubscribe From Steam Player Joined | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Player Joined listener registered with Subscribe To Steam Player Joined. |
| Unsubscribe From Steam Player Left | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Player Left listener registered with Subscribe To Steam Player Left. |
| Unsubscribe From Steam Game Invitation Received | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Game Invitation Received listener. |
| Unsubscribe From Steam Game Invitation Accepted | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Game Invitation Accepted listener. |
| Unsubscribe From Steam Game Travel Started | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Game Travel Started listener. |
| Unsubscribe From Steam Game Travel Completed | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Game Travel Completed listener. |
| Unsubscribe From Steam Game Closed | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Game Closed listener. |
| Unsubscribe From Steam Game Disconnected | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Game Disconnected listener. |
| Unsubscribe From Steam Host Disconnected | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Host Disconnected listener. |
| Unsubscribe From Steam Connection Failed | Handle (FSteamMultiplayerListenerHandle) |
– | Removes a persistent Steam Connection Failed listener. |