Rich Presence Examples
This section provides practical examples of using Steam Rich Presence in Unreal Engine projects to display player activity, update presence state during gameplay, enable Join Game, and read Rich Presence data.
All examples below are shown using Blueprint nodes, with equivalent functionality available through the C++ API.
Prerequisites
Before using any Rich Presence–related nodes, the following conditions must be met:
- A Rich Presence localization file must be created and published in Steamworks
- Localization tokens and placeholders must be correctly defined
Important:
- If the
steam_displaykey is not set, Rich Presence will not appear at all
Setting Basic Rich Presence
This example demonstrates a basic Rich Presence setup where the game first provides a placeholder value and then selects different Rich Presence layouts by updating steam_display.
In this flow, the game:
- Sets a presence key used as a placeholder value
- Sets the
steam_displaykey to select a localization token - Optionally updates
steam_displayagain to switch the active layout
In the example shown above:
- The
Statuspresence key is set to a dynamic value (Casting Spells) steam_displayis set to#Status_Default, which uses the placeholder-based layoutsteam_displayis then updated to#Status_InLobby, switching the Rich Presence layout
Steam immediately rebuilds the visible Rich Presence text each time steam_display changes.
This setup relies on the following Rich Presence localization file uploaded and published in Steamworks:
"lang"
{
"english"
{
"tokens"
{
"#Status_Default" "%status%"
"#Status_InGame" "Playing %mode%"
"#Status_InLobby" "In Lobby"
}
}
}
How this works together:
#Status_Defaultdisplays the value provided via thestatusplaceholder#Status_InLobbyignores placeholders and displays static text- Changing
steam_displayswitches between these layouts without changing placeholder values
Notes:
- Rich Presence updates are applied immediately
- Placeholder values can be updated independently from
steam_display - Re-setting
steam_displayis only required when the layout needs to change
Using Set Presence Raw
Set Presence Raw is used to set custom Rich Presence keys that can be referenced as placeholders in localization templates.
Use this node when you need placeholders that are not covered by ESteamPresenceKey, such as game mode, map name, or difficulty.
Raw presence keys:
- Are not displayed directly in the Steam client
- Are used only through localization placeholders (for example
%mode%) - Become visible only if referenced by the active
steam_displaylayout
If a raw key is set but not used in any localization template, it has no visible effect.
Clearing Rich Presence
Rich Presence values can be removed individually or cleared entirely.
Available options:
RemovePresenceremoves a single presence keyClearPresenceremoves all currently set Rich Presence values
Clearing Rich Presence is typically performed when returning to the main menu or exiting gameplay.
Enabling Join Game via Rich Presence
Steam allows players to join a game directly through Rich Presence using a connect string.
In this example:
- A connect string is set using
SetConnectString - Steam uses this value to enable the Join Game action
Important notes:
- The connect string is not displayed as text
- It operates independently from localization tokens and placeholders
- Clearing the connect string disables Join Game
Important Notes
- Rich Presence values are not persistent and must be set every session
- All Rich Presence text is generated by Steam using localization templates
- Localization changes do not require uploading a new game build
- Rich Presence reflects the current state only and is cleared when the game exits