Overview
Rich Presence allows you to display detailed information about what players are doing in your game. Users can see this information in their Discord profile and friends list and use it to join their friends’ games with Game Invites.Prerequisites
Before you begin, make sure you have:- Set up the Discord Social SDK
- Connected to Discord with a valid client instance
Understanding Rich Presence
Rich Presence allows you to display detailed information about players’ actions in your game. Users can see this information in various places in Discord, including:- User profiles
- Friend lists
- Server member lists
Let’s talk about the naming of some Discord primitives first. Rich Presence, aka “Activity”, can be thought of as the “current activity of a user” and is represented by the 
Activity class in the SDK and in our gateway events. This is not to be confused with Discord Activities, which are embedded games that can also set and display rich presence.Activity contains fields that describe the following:
| Field | Description | Purpose | 
|---|---|---|
| name | Game or app name | Displayed in the user’s profile | 
| type | Activity type | What the player is doing (e.g., “Playing”, “Watching”, “Listening”) | 
| details | What the player is doing | Main activity description (e.g., “Playing Capture the Flag”) | 
| state | Their current status | Secondary status (e.g., “In Queue”, “In Match, “In a group”) | 
| party | Party information | Shows party size and capacity (e.g., “2 of 4”) | 
| timestamps | Activity duration | Shows elapsed or remaining time | 
| assets | Custom artwork | Game/map thumbnails and character icons | 
| secrets | Join/spectate tokens | Enable Game Invite functionality | 
| supportedPlatforms | Platform flags | Control where join buttons appear | 
While we support multiple 
ActivityTypes, games should use ActivityTypes::Playing for type. The SDK automatically associates activity with your game, so fields like name will always show your game’s name.Customizing Rich Presence
When displayed in Discord, Rich Presence has three main components:- Line 1, Playing "game name"is powered by the name of your game (or application) on Discord.
- Line 2, Capture the flag | 2 - 1is powered by thedetailsfield in the activity, and this should generally try to describe what the player is currently doing. You can even include dynamic data such as a match score here.
- Line 3, In a group (2 of 3)describes the party the player is in. “Party” is used to refer to a group of players in a shared context, such as a lobby, server, team, etc. The first half,In a groupis powered by the state field in the activity, and the second half,(2 of 3)is powered by the party field in the activity and describes how many people are in the current party and how big the party can get.

For tips on designing Rich Presence, take a look at the Rich Presence best practices guide.
Setting an Invite Image
The Rich Presence invite image appears when invites are sent for a 3rd party game or app using the Discord Social SDK. After uploading an invite image for your app, you can see a preview of it to the right (under “IRL Invite Image Example”).
Uploading Assets
While integrating Rich Presence, you’ll likely want to upload custom art assets for your app. For all Rich Presence assets, it’s highly recommended to make them 1024 x 1024. To add custom assets for Rich Presence, navigate to your app’s settings and click Rich Presence on the left-hand sidebar. On the Art Assets page, you can upload two different types of assets.
For tips on choosing assets, take a look at the Rich Presence best practices guide.

Setting Details and State
Here’s a simple example setting the details and state of a Rich Presence activity:Setting Timestamps
You can also include timestamps in your Rich Presence to show how long the player has been in their current activity or how long until their current match ends if it is a timed activity. Here’s an example:Setting Assets
Once you’ve uploaded assets to your app, you can reference them using their asset key in your code to set custom artwork in Rich Presence. Here’s an example of an asset with the key of “map-mainframe” and “tank-avatar”:If you need more than 300 custom assets or want to use images stored somewhere else, you can also specify an external URL as long it still has the proper dimensions and size.
Setting Field URLs
You can set URLs fordetails, state, assets.large_image and assets.small_image in Rich Presence. When present, these URLs will make the corresponding image/text into clickable links.
Configuring Status Text
By default, Rich Presence will display the game’s name in the user’s status text. You can override this behavior by setting a status display type.Setting Party and Join Secret
You can also include party details and a join secret in your Rich Presence to power Game Invites. Check out the Game Invites guide for more information.Setting Supported Platforms
You can set the supported platforms for your game in Rich Presence. This will control where the join buttons appear in Discord. If you only want the join button to appear on desktop, you can set the supported platforms like this:ActivityGamePlatforms enum for all supported platforms.
Rich Presence Without Authentication
Rich Presence via RPC (Remote Procedure Call) will only work with a running Discord desktop client. It does not support mobile, console or web clients.
Client::Connect to authenticate with Discord, you can use Rich Presence functionality by directly communicating
with a running Discord desktop client through RPC (Remote Procedure Call).
Requirements
- Discord desktop client must be running on the user’s machine
- Your application must be registered with Discord and have a valid Application ID
Setting Up Direct Rich Presence
To use Rich Presence without authentication, simply:- Set your application ID using Client::SetApplicationId
- Configure your activity details
- Call Client::UpdateRichPresence
Next Steps
Now that you’ve set up Rich Presence, you might want to explore:Managing Game Invites
Allow players to invite friends to join their game session or party.
Managing Lobbies
Bring players together in a shared lobby with invites, text chat, and voice comms.
Design Guidelines for Rich Presence
Best practices for Rich Presence UI/UX.
#social-sdk-dev-help channel for support from the community.
If you encounter a bug while working with the Social SDK, please report it here:  https://dis.gd/social-sdk-bug-report
Change Log
| Date | Changes | 
|---|---|
| March 17, 2025 | Initial release |