Sessions
Sessions
A higher level layer over lobbies: host and travel in one node, with standard metadata.
The lobby pages give you the raw pieces. The session layer stacks a common arrangement of them into single nodes, so you do not have to design your own metadata keys or remember the order of the host steps.
A session is a lobby, with agreed keys on it. Everything on the lobby subsystem still works underneath.
Use sessions if you want a working host and join flow quickly. Use lobbies directly if you want full control over the metadata.
Hosting
Host Session And Travel does five things in the right order:
Missing step 3 is why invites often do nothing. Missing step 5 is why everyone sits in a lobby that never starts.
| Input | Meaning |
|---|---|
| Settings | The session settings struct, below |
| Travel | Uncheck to create the session and stay put, for a pre match lobby |
Session settings
| Field | Meaning |
|---|---|
| Session Name | Shown in the browser |
| Map Name | Where to travel. Required when Travel is on. |
| Game Mode | Free text, yours to interpret |
| Max Players | Including the host |
| Private | Friends only rather than publicly listed |
| Password | Optional. See passwords. |
| Build Id | Optional. Joiners with a different value are turned away. |
| Extra Data | Any other keys you want published and searchable |
Finding sessions
Find Sessions returns results with their metadata already read:
| Field | Meaning |
|---|---|
| Session Name, Map Name, Game Mode | As the host published them |
| Current Players, Max Players | Occupancy |
| Host Steam Id | Who is hosting |
| Password Protected | Whether a password is needed |
| Version Compatible | Whether the host's Build Id matches yours |
Joining
Join Session takes a session, an optional password, and whether to travel. It reports a full diagnosis rather than a bare true or false. See Join diagnostics.
Managing a live session
On the SteamForge Sessions subsystem:
| Node | What it does |
|---|---|
| Is In Session | Hosting or joined |
| Is Session Host | The local player is the host |
| Get Session Settings | What the session was created with |
| Update Session Settings | Change them. Host only. |
| Set Session Joinable | Stop accepting new players without ending the session |
| Destroy Session | Leave or end it |
On OnlineSubsystem
Sessions publish as ordinary Steam lobby metadata, so anything that reads Steam lobbies can see a SteamForge session, including code using OnlineSubsystemSteam.
They do not route through the engine's IOnlineSession interface. Doing that would make the plugin depend on the OnlineSubsystem plugin, and working without it is the property SteamForge is built around. Interop happens at the data level, which is where Steam actually defines it.