Rich Presence
The Rich Presence feature allows the game to publish status information that Steam can display to the user's friends.
It supports Steam's standard Rich Presence keys, custom raw keys, join connect strings, locally cached presence data, and read-only Rich Presence queries for Steam friends.
Main Capabilities
- Set and remove standard Rich Presence values
- Set and remove raw custom key-value pairs
- Clear all local Rich Presence values
- Set or clear the Steam Join Game connect string
- Read the plugin's cached local Rich Presence state
- Check whether local presence keys are set
- Read Rich Presence keys and values for Steam friends
Basic Workflow
A typical Rich Presence workflow is:
- Configure the desired Rich Presence display rules in Steamworks when needed.
- Set one or more presence values when the player's state changes.
- Update those values as the player moves between menus, maps, modes, or parties.
- Clear values when they are no longer valid.
For Steamworks configuration, see Steamworks Setup.
For practical Blueprint workflows, see Examples.
Standard and Raw Keys
Common Steam keys are represented by ESteamPresenceKey.
Use the standard-key functions when working with those known Steam keys. Use the raw functions when your project needs a custom key string.
The current locally cached values are exposed through FSteamPresenceSnapshot.
Automatic Multiplayer Rich Presence
The plugin can automatically manage the Rich Presence values used by the built-in Multiplayer feature.
This behavior is controlled by Automatically Update Multiplayer Rich Presence under:
Edit → Project Settings → Plugins → PloxTools: Steam Integration → Multiplayer → Rich Presence
The option is enabled by default.
While a managed Steam game is active, the plugin automatically publishes the following Rich Presence keys:
| Key | Value |
|---|---|
ploxtools_map |
Current map name |
ploxtools_player_count |
Current number of players in the Steam Lobby |
ploxtools_max_players |
Maximum number of players configured for the managed game |
steam_player_group |
Current Steam Lobby ID |
steam_player_group_size |
Current number of players in the Steam Lobby |
For example, a managed game may publish values similar to:
ploxtools_map = ExampleMap
ploxtools_player_count = 2
ploxtools_max_players = 4
steam_player_group = 109775241234567890
steam_player_group_size = 2
These values are updated automatically while hosting, joining, and traveling between maps.
When the managed multiplayer game ends, the plugin removes the values it added. If one of these keys already contained a value before Multiplayer started, the previous value is restored instead.
The managed Multiplayer system also automatically manages Steam's connect Rich Presence value used by Steam's Join Game functionality.
The generated connect string contains the current managed Steam Lobby ID in the following format:
-PloxToolsSteamLobby=<LobbyID>
For example:
-PloxToolsSteamLobby=109775241234567890
This allows the plugin to resolve the correct Steam Lobby when the player accepts a Steam invitation or uses Join Game through Steam. The receiving game must still handle Steam Game Invitation Accepted and call Join Steam Game for a managed match; publishing a connect string does not automatically establish a gameplay connection. See Steam Invitations and Join Requests for the complete invitation flow.
Note
The automatic connect value is managed independently of Automatically Update Multiplayer Rich Presence.
Disabling Automatically Update Multiplayer Rich Presence disables the automatic ploxtools_map, player-count, and Steam player-group values, but the Multiplayer system continues to manage the connect value required for Steam Join Game.
You can still use the Rich Presence API to publish your own custom keys and values alongside the automatically managed Multiplayer values.
Join Game Connect String
Steam's Join Game flow uses the Rich Presence connect value.
Use Set Steam Connect String when your own networking flow needs to publish custom connection data.
If you are using managed Multiplayer, the plugin manages its multiplayer connect string automatically. Manual Rich Presence values can still be used for other status information.
Friend Presence
Read-only Rich Presence data for another Steam user is represented by FSteamFriendPresence.
Availability depends on what Steam exposes for that friend and on the friend's current application/presence state.
Important Notes
- Rich Presence values are string-based and are subject to Steam's limits.
- Steamworks display localization and presentation are separate from the raw values set by the game.
- Presence should be updated when game state changes and cleared when no longer valid.
- The managed Multiplayer system can automatically publish multiplayer-related presence values depending on plugin settings.
Related Documentation
- Steamworks Setup — configure Rich Presence display behavior in Steamworks
- Examples — common Rich Presence workflows
- API Reference — complete list of Rich Presence nodes
- Multiplayer — automatic multiplayer Rich Presence integration