Skip to content

Commit b1a8c5e

Browse files
foxfirecodesadvaith1markmandel
authored
Document new rich presence url & status display type fields (#7674)
* update embedded app sdk * add examples for social sdk * add to gateway events * add to rpc example * add changelog entry * split out social sdk changes into separate pr * re-add streaming disclaimer * clarify status text * clarify status text in changelog too * Update docs/events/gateway-events.mdx Co-authored-by: advaith <advaithj1@gmail.com> * Update docs/change-log/2025-07-10-clickable-links-and-customizable-statuses-in-activities.md Co-authored-by: advaith <advaithj1@gmail.com> * update changelog * Update docs/change-log/2025-07-17-clickable-links-and-customizable-statuses-in-rich-presence.md Co-authored-by: Mark Mandel <mark.mandel@discordapp.com> --------- Co-authored-by: advaith <advaithj1@gmail.com> Co-authored-by: Mark Mandel <mark.mandel@discordapp.com>
1 parent 4810d98 commit b1a8c5e

File tree

4 files changed

+56
-18
lines changed

4 files changed

+56
-18
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: "Clickable Links and Customizable Statuses in Rich Presence"
3+
date: "2025-07-17"
4+
topics:
5+
- "Activities"
6+
- "Embedded App SDK"
7+
---
8+
9+
We've added new functionality to Rich Presences to give users of your application a more interactive and flexible experience. There are two big changes as part of this:
10+
- You can now add clickable links to the state text, details text, large image & small image
11+
- You can now choose which field (name, state, or details) is used in users' status text in the member list (e.g. instead of "Listening to MyMusic" you can now have your status text show "Listening to Rick Astley")
12+
13+
All of these new fields are documented on the [Activity Object](/docs/events/gateway-events#activity-object) section of Gateway Events and also available through the Embedded App SDK.

docs/developer-tools/embedded-app-sdk.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,7 +1143,9 @@ Coming soon! Not available during Developer Preview
11431143
| timestamps? | [Timestamp](/docs/developer-tools/embedded-app-sdk#timestamp) \| null |
11441144
| application_id? | string \| null |
11451145
| details? | string \| null |
1146+
| details_url? | string \| null |
11461147
| state? | string \| null |
1148+
| state_url? | string \| null |
11471149
| emoji? | [Emoji](/docs/developer-tools/embedded-app-sdk#emoji) \| null |
11481150
| party? | [Party](/docs/developer-tools/embedded-app-sdk#party) \| null |
11491151
| assets? | [Assets](/docs/developer-tools/embedded-app-sdk#assets) \| null |
@@ -1157,8 +1159,10 @@ Coming soon! Not available during Developer Preview
11571159
|--------------|----------------|
11581160
| large_image? | string \| null |
11591161
| large_text? | string \| null |
1162+
| large_url? | string \| null |
11601163
| small_image? | string \| null |
11611164
| small_text? | string \| null |
1165+
| small_url? | string \| null |
11621166

11631167
#### Application
11641168

docs/events/gateway-events.mdx

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,23 +1133,26 @@ Active sessions are indicated with an "online", "idle", or "dnd" string per plat
11331133

11341134
###### Activity Structure
11351135

1136-
| Field | Type | Description |
1137-
|-----------------|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
1138-
| name | string | Activity's name |
1139-
| type | integer | [Activity type](/docs/events/gateway-events#activity-object-activity-types) |
1140-
| url? | ?string | Stream URL, is validated when type is 1 |
1141-
| created_at | integer | Unix timestamp (in milliseconds) of when the activity was added to the user's session |
1142-
| timestamps? | [timestamps](/docs/events/gateway-events#activity-object-activity-timestamps) object | Unix timestamps for start and/or end of the game |
1143-
| application_id? | snowflake | Application ID for the game |
1144-
| details? | ?string | What the player is currently doing |
1145-
| state? | ?string | User's current party status, or text used for a custom status |
1146-
| emoji? | ?[emoji](/docs/events/gateway-events#activity-object-activity-emoji) object | Emoji used for a custom status |
1147-
| party? | [party](/docs/events/gateway-events#activity-object-activity-party) object | Information for the current party of the player |
1148-
| assets? | [assets](/docs/events/gateway-events#activity-object-activity-assets) object | Images for the presence and their hover texts |
1149-
| secrets? | [secrets](/docs/events/gateway-events#activity-object-activity-secrets) object | Secrets for Rich Presence joining and spectating |
1150-
| instance? | boolean | Whether or not the activity is an instanced game session |
1151-
| flags? | integer | [Activity flags](/docs/events/gateway-events#activity-object-activity-flags) `OR`d together, describes what the payload includes |
1152-
| buttons? | array of [buttons](/docs/events/gateway-events#activity-object-activity-buttons) | Custom buttons shown in the Rich Presence (max 2) |
1136+
| Field | Type | Description |
1137+
|----------------------|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1138+
| name | string | Activity's name |
1139+
| type | integer | [Activity type](/docs/events/gateway-events#activity-object-activity-types) |
1140+
| url? | ?string | Stream URL, is validated when type is 1 |
1141+
| created_at | integer | Unix timestamp (in milliseconds) of when the activity was added to the user's session |
1142+
| timestamps? | [timestamps](/docs/events/gateway-events#activity-object-activity-timestamps) object | Unix timestamps for start and/or end of the game |
1143+
| application_id? | snowflake | Application ID for the game |
1144+
| status_display_type? | ?integer | [Status display type](/docs/events/gateway-events#activity-object-status-display-types); controls which field is displayed in the user's status text in the member list |
1145+
| details? | ?string | What the player is currently doing |
1146+
| details_url? | ?string | URL that is linked when clicking on the details text |
1147+
| state? | ?string | User's current party status, or text used for a custom status |
1148+
| state_url? | ?string | URL that is linked when clicking on the state text |
1149+
| emoji? | ?[emoji](/docs/events/gateway-events#activity-object-activity-emoji) object | Emoji used for a custom status |
1150+
| party? | [party](/docs/events/gateway-events#activity-object-activity-party) object | Information for the current party of the player |
1151+
| assets? | [assets](/docs/events/gateway-events#activity-object-activity-assets) object | Images for the presence and their hover texts |
1152+
| secrets? | [secrets](/docs/events/gateway-events#activity-object-activity-secrets) object | Secrets for Rich Presence joining and spectating |
1153+
| instance? | boolean | Whether or not the activity is an instanced game session |
1154+
| flags? | integer | [Activity flags](/docs/events/gateway-events#activity-object-activity-flags) `OR`d together, describes what the payload includes |
1155+
| buttons? | array of [buttons](/docs/events/gateway-events#activity-object-activity-buttons) | Custom buttons shown in the Rich Presence (max 2) |
11531156

11541157
:::info
11551158
Bot users are only able to set `name`, `state`, `type`, and `url`.
@@ -1170,6 +1173,18 @@ Bot users are only able to set `name`, `state`, `type`, and `url`.
11701173
The streaming type currently only supports Twitch and YouTube. Only `https://twitch.tv/` and `https://youtube.com/` urls will work.
11711174
:::
11721175

1176+
###### Status Display Types
1177+
1178+
| ID | Name | Example |
1179+
|----|---------|----------------------------------------|
1180+
| 0 | Name | "Listening to Spotify" |
1181+
| 1 | State | "Listening to Rick Astley" |
1182+
| 2 | Details | "Listening to Never Gonna Give You Up" |
1183+
1184+
:::info
1185+
This applies to all activity types. "Listening" was used to serve as a consistent example of what the different fields might be used for.
1186+
:::
1187+
11731188
###### Activity Timestamps
11741189

11751190
| Field | Type | Description |
@@ -1202,8 +1217,10 @@ For Listening and Watching activities, you can include both start and end timest
12021217
|--------------|--------|----------------------------------------------------------------------------------------------|
12031218
| large_image? | string | See [Activity Asset Image](/docs/events/gateway-events#activity-object-activity-asset-image) |
12041219
| large_text? | string | Text displayed when hovering over the large image of the activity |
1220+
| large_url? | string | URL that is opened when clicking on the large image |
12051221
| small_image? | string | See [Activity Asset Image](/docs/events/gateway-events#activity-object-activity-asset-image) |
12061222
| small_text? | string | Text displayed when hovering over the small image of the activity |
1223+
| small_url? | string | URL that is opened when clicking on the small image |
12071224

12081225
###### Activity Asset Image
12091226

docs/topics/rpc.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1004,16 +1004,20 @@ When using `SET_ACTIVITY`, the `activity` object is limited to a `type` of Playi
10041004
"pid": 9999,
10051005
"activity": {
10061006
"state": "In a Group",
1007+
"state_url": "https://example.com/groups/50335231-9d9d-4ebd-873b-984787ee4d1d",
10071008
"details": "Competitive | In a Match",
1009+
"details_url": "https://example.com/matches/42340203-2f25-4534-8ff6-2a6509e81207",
10081010
"timestamps": {
10091011
"start": time(nullptr),
10101012
"end": time(nullptr) + (60 * 5 + 23)
10111013
},
10121014
"assets": {
10131015
"large_image": "numbani_map",
10141016
"large_text": "Numbani",
1017+
"large_url": "https://example.wiki/maps/Numbani",
10151018
"small_image": "pharah_profile",
1016-
"small_text": "Pharah"
1019+
"small_text": "Pharah",
1020+
"small_url": "https://example.wiki/characters/Pharah"
10171021
},
10181022
"party": {
10191023
"id": GameEngine.GetPartyId(),

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy