Lobbies
The Lobbies feature provides direct access to Steam matchmaking lobbies.
It is a lower-level API for projects that need explicit control over lobby discovery, membership, visibility, metadata, ownership, and lobby events.
Steam Lobbies coordinate players, but they do not create Unreal Engine gameplay connections by themselves.
When to Use Lobbies
Use Lobbies directly when you want to build your own session or networking flow and only need Steam for:
- Lobby discovery
- Membership
- Invites
- Shared lobby metadata
- Per-member metadata
- Ownership and lifecycle events
If you want the plugin to manage Steam Lobby creation together with Steam networking and Unreal listen-server/client travel, use Multiplayer instead.
Main Capabilities
- Create and join Steam lobbies
- Search for lobbies using filters
- Leave the current lobby
- Invite Steam users to a lobby
- Change lobby type, joinability, and member limit
- Set, read, and delete lobby key-value data
- Set and read per-member data
- Query lobby members and ownership
- Subscribe to lobby lifecycle and membership events
Basic Workflow
A typical custom lobby flow is:
- The host calls Create Steam Lobby.
- The host writes game-specific metadata with Set Steam Lobby Data.
- Clients call Find Steam Lobbies and choose a
FSteamLobbyID. - Clients call Join Steam Lobby.
- The game reacts to lobby member and data events.
- Your own networking/session layer establishes the actual gameplay connection.
For practical Blueprint workflows, see Examples.
Searching for Lobbies
Lobby search supports:
- Maximum result count
- Geographic distance filtering through
ESteamLobbyDistanceFilter - Minimum available slots
- Custom
FSteamLobbySearchFiltervalues
Search filters can compare lobby metadata using the comparison/filter behavior represented in the Technical Reference.
Lobby Types and Ownership
Lobby visibility is controlled by ESteamLobbyType.
Only the lobby owner can perform owner-restricted operations such as changing certain lobby settings. Ownership can change while a lobby exists, and the plugin exposes an owner-changed event for that case.
Lobby members are represented by FSteamLobbyMember.
Inviting Friends to a Lobby
Invite a specific user with Invite Friend To Steam Lobby and the target Lobby ID, or open Steam's friend picker with Open Steam Invite Dialog To Lobby (Overlay feature). When an invited user accepts, their game can receive Subscribe To Steam Join Requested with the lobby ID and call Join Steam Lobby. This adds them to the Steam lobby; it does not connect them to an Unreal multiplayer session.
When the lobby owner later calls Start Steam Game From Current Lobby, players already present in the lobby automatically attempt to connect to the managed game. The Multiplayer Version is taken from Project Settings, not a Blueprint pin.
See Steam Invitations and Join Requests for the exact invitation and acceptance flow.
Persistent Events
The feature exposes persistent subscriptions for:
- Lobby entered
- Lobby left
- Lobby data changed
- Member joined
- Member left
- Owner changed
Subscriptions return FSteamLobbyListenerHandle and should be unsubscribed when no longer needed.
Important Notes
- Steam Lobbies are not an Unreal Engine transport or replication system.
- Lobby metadata is string-based key-value data and should be kept compact.
- The game defines the meaning of custom lobby and member data.
- Lobby callbacks are asynchronous and should be treated as the authoritative lifecycle notifications.
- The managed Multiplayer feature also uses Steam Lobbies internally; avoid mixing both APIs for the same responsibility unless your flow explicitly requires it.
Related Documentation
- Examples — common lobby workflows
- API Reference — complete list of Lobbies nodes
- Multiplayer — managed Steam multiplayer built on top of lobbies and Steam networking