Party
Last updated
Last updated
Steam Parties is a feature provided by Steam that allows players to form temporary groups (called parties) through the Steam UI, which can then join multiplayer games together. Unlike Steam Lobbies, which manage peer-to-peer connections directly, Steam Parties is a party discovery and reservation system meant to complement your game’s existing networking solution.
Steam Parties handles the social layer—showing party beacons in the Steam Overlay, allowing players to express interest in joining, and coordinating "join game" actions.
Use Steam Parties if:
Your game supports group play, and you want to make it easy for players to invite friends before they enter the game.
You want to allow players to advertise open party slots via Steam’s built-in UI (overlay, friends list, etc.).
You want to handle party joining via a clean "join game" string (e.g., Steam Lobby ID, IP:Port, etc.) that your game can process.
Do not use Steam Parties if:
You already use Steam Lobbies exclusively for player discovery and matchmaking.
Your game requires complex matchmaking, ranked queues, or large-scale persistent sessions.
You don’t want players joining each other from the Steam UI (e.g., single-player or private game setups).
Steam Parties is not a networking layer. It doesn’t manage connections, replication, or matchmaking logic. It only provides a way for users to find and join a party from Steam’s social interface.
Steam Parties revolves around these key components:
Beacon Locations: Places where a party can be advertised (e.g., a region, game mode, or custom area). The game provides these when requested by Steam.
Party Beacons: Advertisements created by a player to indicate they are hosting a party and looking for others to join. These beacons appear in the Steam Overlay.
Join Requests: When a user clicks to join a party via a beacon, Steam notifies the host. The host can accept and provide a join string (like a server IP or lobby ID).
Join Game Strings: These are opaque connection details returned to Steam after a successful join. Your game uses this string to connect the joining user to the session.
Steam Parties is designed to be a lightweight, session-based tool that works in tandem with your game's connection system.
When using Steam Parties, Steam provides you with a list of available beacon locations. These locations indicate where your party beacon can be advertised within Steam’s ecosystem. Currently, Steam defines these locations as chat groups. For example, you might see your own chat group during a stream or a specific "Clan" group that your game supports.
When your game queries for available beacon locations, it receives a list of structures that tell you exactly where your party beacon can be displayed. You then select the most appropriate location for your session, and Steam will advertise your beacon within that specific chat context.
When a user clicks on a beacon in a Steam Chat, it’s known that the host will receive a notification via the Reservation Notification Callback—this part is documented by Steam. This callback informs the creator of the beacon that someone has shown interest by clicking it. Once the callback fires, it’s up to the host’s game logic to process and respond to the join attempt.
The behavior after that click is not documented by Valve, and we haven’t had the opportunity to test it in depth. However, the common consensus is that the same workflow used for Join Game is likely triggered. In other words, if the user is not already playing the game, Steam will launch the game while passing the beacon ID through the command line. If the game is already running, Steam should raise a Rich Presence Join Requested callback. Once the player successfully connects, it’s then the host’s responsibility to call OnReservationCompleted to update the number of open slots for the beacon. If this isn’t done in time, the reserved slot may be released, though the precise timeout is not documented.
You can review to understand how the player who clicks a beacon will be notified in-game what to connect to. That is, we believe (it's not documented) that when a user clicks a beacon that it works the same as clicking Join Game from the friends list or being invited to a game directly.