Skip to content

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_display key 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_display key to select a localization token
  • Optionally updates steam_display again to switch the active layout

In the example shown above:

  1. The Status presence key is set to a dynamic value (Casting Spells)
  2. steam_display is set to #Status_Default, which uses the placeholder-based layout
  3. steam_display is 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_Default displays the value provided via the status placeholder
  • #Status_InLobby ignores placeholders and displays static text
  • Changing steam_display switches 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_display is 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_display layout

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:

  • RemovePresence removes a single presence key
  • ClearPresence removes 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