client) {
If we build and run our application, we should now see a list of friends separated into three categories: `Online - GameTitle`, `Online - Elsewhere`, and `Offline`.
-## Step 3: Monitor Changes to Users
+### Step 3: Monitor Changes to Users
To monitor for user changes, we're going using the [`Client::SetUserUpdatedCallback`] function.
@@ -242,7 +378,7 @@ user list, or similar operations.
:::
---
-## Step 4: Monitor Changes in Relationships
+### Step 4: Monitor Changes in Relationships
Let us setup two callbacks to handle relationship updates.
@@ -251,7 +387,7 @@ These examples rebuild the friends list from scratch every time a relationship c
recommend maintaining a collection of [`UserHandle`] objects and adding and removing them appropriately.
:::
-### Relationship Created Callback
+#### Relationship Created Callback
This can happen when a user sends or accepts a friend invite, or blocks a user.
@@ -266,7 +402,7 @@ client->SetRelationshipCreatedCallback([&client](uint64_t userId, bool isDiscord
});
```
-### Relationship Deleted Callback
+#### Relationship Deleted Callback
This can happen when a user rejects a friend request or removes a friend.
@@ -303,11 +439,15 @@ Now that you have a unified friends list, you can build on your social features
## Change Log
-| Date | Changes |
-|----------------|-----------------|
-| March 17, 2025 | Initial release |
+| Date | Changes |
+|----------------|------------------------|
+| March 17, 2025 | Initial release |
+| July 17, 2025 | Add UFL helper methods |
{/* Autogenerated Reference Links */}
[`Client::GetRelationships`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ad481849835cd570f0e03adafcf90125d
+[`Client::GetRelationshipsByGroup`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a9f7898d3f3d1ec92b06c662df70746d5
+[`Client::SetRelationshipGroupsUpdatedCallback`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#af12441ef091298f968075b7190851098
[`Client::SetUserUpdatedCallback`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a3559f375165acedc6d6677ef599b3a4a
+[`RelationshipGroupType`]: https://discord.com/developers/docs/social-sdk/namespacediscordpp.html#a503ed2f7b0bfbd435321a0e8b1dfba35
[`UserHandle`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1UserHandle.html#a587bcc838e42dc5c56f840a350070707
\ No newline at end of file
diff --git a/docs/discord-social-sdk/development-guides/linked-channels.mdx b/docs/discord-social-sdk/development-guides/linked-channels.mdx
index 944fc7c583..dbc3e43341 100644
--- a/docs/discord-social-sdk/development-guides/linked-channels.mdx
+++ b/docs/discord-social-sdk/development-guides/linked-channels.mdx
@@ -13,7 +13,7 @@ import CommsScopeWarning from '../partials/callouts/oauth-comms-scopes.mdx';
## Overview
-Linked Channels let players connect in-game lobbies with Discord text channels, enabling cross-platform chat between your game and Discord servers.
+Linked Channels let players connect in-game lobbies with Discord text channels, enabling chat between your game and Discord servers.
When linked:
- In-game messages appear in the Discord channel
diff --git a/docs/discord-social-sdk/development-guides/managing-relationships.mdx b/docs/discord-social-sdk/development-guides/managing-relationships.mdx
index 5f7efb8309..c2ab9a09b5 100644
--- a/docs/discord-social-sdk/development-guides/managing-relationships.mdx
+++ b/docs/discord-social-sdk/development-guides/managing-relationships.mdx
@@ -29,9 +29,9 @@ Before you begin, make sure you have:
## Understanding Relationship Types
Discord models the relationship between two users using the Relationship entity in the SDK. Relationships are not just for friends. They are also used to send and receive friend requests and block other users.
-
-Note: While the SDK allows you to manage a user's relationships, you should never act without their explicit consent. You should not automatically send or accept friend requests. Only invoke APIs to manage relationships in response to a user action such as clicking a "Send Friend Request" button.
-
+:::warn
+While the SDK allows you to manage a user's relationships, you should never act without their explicit consent. You should not automatically send or accept friend requests. Only invoke APIs to manage relationships in response to a user action such as clicking a "Send Friend Request" button.
+:::
### Relationship Types
We know that sometimes users will want to be friends with each other across all their games. If they start playing a new game, they can see all of their previous friends and don't start from scratch. But sometimes, they don't want to give out that access and only want to be friends in the current game they are playing.
diff --git a/docs/discord-social-sdk/development-guides/sending-direct-messages.mdx b/docs/discord-social-sdk/development-guides/sending-direct-messages.mdx
index 22a0b79f9a..2e62e59957 100644
--- a/docs/discord-social-sdk/development-guides/sending-direct-messages.mdx
+++ b/docs/discord-social-sdk/development-guides/sending-direct-messages.mdx
@@ -141,7 +141,7 @@ Now that you know how to send and receive messages, check out these other Discor
Bring players together in a shared lobby with invites, text chat, and voice comms.
- Enable cross-platform text chat between a Discord channel and your game.
+ Enable text chat between a Discord channel and your game.
diff --git a/docs/discord-social-sdk/getting-started.mdx b/docs/discord-social-sdk/getting-started.mdx
index 386d808169..a07acc1858 100644
--- a/docs/discord-social-sdk/getting-started.mdx
+++ b/docs/discord-social-sdk/getting-started.mdx
@@ -33,7 +33,7 @@ If you are unsure which platform to choose, we recommend starting with the C++ g
:::info
-To see a complete list of currently compatible platforms, check out our [Platform Compatibility](/docs/discord-social-sdk/core-concepts#sdk-platform-compatibility) section.
+To see a complete list of currently compatible platforms, check out our [Platform Compatibility](/docs/discord-social-sdk/core-concepts/platform-compatibility) section.
:::
---
diff --git a/docs/discord-social-sdk/getting-started/partials/getting-started.mdx b/docs/discord-social-sdk/getting-started/partials/getting-started.mdx
index 6f2dc6925a..07806bc4ab 100644
--- a/docs/discord-social-sdk/getting-started/partials/getting-started.mdx
+++ b/docs/discord-social-sdk/getting-started/partials/getting-started.mdx
@@ -19,7 +19,7 @@ Later, you can invite your team members to your new team to collaborate on your
4. Enable the `Public Client` toggle in the `OAuth2` tab.
:::warn
-**Note:** This guide requires enabling **Public Client** to allow you to get started with the SDK quickly. Most games will not want to ship as a public client. This setting should be reviewed by your team prior to releasing your game. [Learn more about public clients](/docs/discord-social-sdk/core-concepts#oauth2-client-types).
+**Note:** This guide requires enabling **Public Client** to allow you to get started with the SDK quickly. Most games will not want to ship as a public client. This setting should be reviewed by your team prior to releasing your game. [Learn more about public clients](/docs/discord-social-sdk/core-concepts/oauth2-scopes#oauth2-client-types).
:::
---
diff --git a/docs/discord-social-sdk/overview.mdx b/docs/discord-social-sdk/overview.mdx
index 6b376f9b85..e866c63fe8 100644
--- a/docs/discord-social-sdk/overview.mdx
+++ b/docs/discord-social-sdk/overview.mdx
@@ -36,21 +36,27 @@ Start integrating the SDK into your game with our getting started guides, design
+
+
---
## Limited Access Features
-Discord Social SDK features for text and voice communication are available but have limited access.
+Discord Social SDK features for text and voice communication are available but have limited access.
:::preview
-For more information on how to access these features, please see [Core Concepts: Limited Access Features](/docs/discord-social-sdk/core-concepts#limited-access-features).
+For more information on how to access these features, please see [Core Concepts: Communication Features](/docs/discord-social-sdk/core-concepts/communication-features).
:::
---
## Get Help & Join the Community
-Need support or looking to connect with other game developers?
+Need support or looking to connect with other game developers?
- Join our [DDevs Discord Server](https://discord.gg/discord-developers) and get help from the community, share best practices, and discover new ways to enhance your game. Find us in the `#social-sdk-dev-help` channel!
- For additional support, you can [file a ticket with Developer Support](https://dis.gd/social-sdk) to report issues.
\ No newline at end of file
diff --git a/docs/discord-social-sdk/partials/callouts/limited-access.mdx b/docs/discord-social-sdk/partials/callouts/limited-access.mdx
index 5d08228a0b..1d7ae843d2 100644
--- a/docs/discord-social-sdk/partials/callouts/limited-access.mdx
+++ b/docs/discord-social-sdk/partials/callouts/limited-access.mdx
@@ -1,3 +1,6 @@
:::preview
-This feature is currently available with [limited access](/docs/discord-social-sdk/core-concepts#limited-access-features). To apply for full access to closed beta features, or to reach out to Discord directly to discuss your game, please fill out [this form](https://discord.com/developers/social-sdk-closed-beta-access-request-form).
+This feature is currently available with
+[limited access](/docs/discord-social-sdk/core-concepts/communication-features#limited-access). To apply for full access
+to closed beta features, or to reach out to Discord directly to discuss your game, please fill out
+[this form](https://discord.com/developers/social-sdk-closed-beta-access-request-form).
:::
\ No newline at end of file
diff --git a/docs/discord-social-sdk/partials/callouts/oauth-comms-scopes.mdx b/docs/discord-social-sdk/partials/callouts/oauth-comms-scopes.mdx
index 8eda262266..e8d003ea33 100644
--- a/docs/discord-social-sdk/partials/callouts/oauth-comms-scopes.mdx
+++ b/docs/discord-social-sdk/partials/callouts/oauth-comms-scopes.mdx
@@ -1,6 +1,6 @@
:::warn
To utilize this communication feature, you must enable [`Client::GetDefaultCommunicationScopes`] in your OAuth Scope configuration.
-See the [OAuth Scopes Core Concepts Guide](/docs/discord-social-sdk/core-concepts#oauth2-scopes) for more details.
+See the [OAuth Scopes Core Concepts Guide](/docs/discord-social-sdk/core-concepts/oauth2-scopes) for more details.
:::
{/* Autogenerated Reference Links */}
diff --git a/docs/discord-social-sdk/partials/callouts/public-client.mdx b/docs/discord-social-sdk/partials/callouts/public-client.mdx
index 3c6adebda4..60b5c2c979 100644
--- a/docs/discord-social-sdk/partials/callouts/public-client.mdx
+++ b/docs/discord-social-sdk/partials/callouts/public-client.mdx
@@ -1,3 +1,3 @@
:::warn
-This method requires enabling **Public Client** for your app. Most games will not want to ship with this enabled. [Learn more](/docs/discord-social-sdk/core-concepts#oauth2-client-types)
+This method requires enabling **Public Client** for your app. Most games will not want to ship with this enabled. [Learn more](/docs/discord-social-sdk/core-concepts/oauth2-scopes#oauth2-client-types)
:::
\ No newline at end of file
diff --git a/docs/discord-social-sdk/partials/callouts/support.mdx b/docs/discord-social-sdk/partials/callouts/support.mdx
index e3b89f4387..c8f9c6c069 100644
--- a/docs/discord-social-sdk/partials/callouts/support.mdx
+++ b/docs/discord-social-sdk/partials/callouts/support.mdx
@@ -1 +1,3 @@
Need help? Join the [Discord Developers Server](https://discord.gg/discord-developers) and share questions in the `#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
diff --git a/docs/events/gateway-events.mdx b/docs/events/gateway-events.mdx
index d46320ede7..ae4fc94d71 100644
--- a/docs/events/gateway-events.mdx
+++ b/docs/events/gateway-events.mdx
@@ -1133,23 +1133,26 @@ Active sessions are indicated with an "online", "idle", or "dnd" string per plat
###### Activity Structure
-| Field | Type | Description |
-|-----------------|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
-| name | string | Activity's name |
-| type | integer | [Activity type](/docs/events/gateway-events#activity-object-activity-types) |
-| url? | ?string | Stream URL, is validated when type is 1 |
-| created_at | integer | Unix timestamp (in milliseconds) of when the activity was added to the user's session |
-| timestamps? | [timestamps](/docs/events/gateway-events#activity-object-activity-timestamps) object | Unix timestamps for start and/or end of the game |
-| application_id? | snowflake | Application ID for the game |
-| details? | ?string | What the player is currently doing |
-| state? | ?string | User's current party status, or text used for a custom status |
-| emoji? | ?[emoji](/docs/events/gateway-events#activity-object-activity-emoji) object | Emoji used for a custom status |
-| party? | [party](/docs/events/gateway-events#activity-object-activity-party) object | Information for the current party of the player |
-| assets? | [assets](/docs/events/gateway-events#activity-object-activity-assets) object | Images for the presence and their hover texts |
-| secrets? | [secrets](/docs/events/gateway-events#activity-object-activity-secrets) object | Secrets for Rich Presence joining and spectating |
-| instance? | boolean | Whether or not the activity is an instanced game session |
-| flags? | integer | [Activity flags](/docs/events/gateway-events#activity-object-activity-flags) `OR`d together, describes what the payload includes |
-| buttons? | array of [buttons](/docs/events/gateway-events#activity-object-activity-buttons) | Custom buttons shown in the Rich Presence (max 2) |
+| Field | Type | Description |
+|----------------------|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| name | string | Activity's name |
+| type | integer | [Activity type](/docs/events/gateway-events#activity-object-activity-types) |
+| url? | ?string | Stream URL, is validated when type is 1 |
+| created_at | integer | Unix timestamp (in milliseconds) of when the activity was added to the user's session |
+| timestamps? | [timestamps](/docs/events/gateway-events#activity-object-activity-timestamps) object | Unix timestamps for start and/or end of the game |
+| application_id? | snowflake | Application ID for the game |
+| 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 |
+| details? | ?string | What the player is currently doing |
+| details_url? | ?string | URL that is linked when clicking on the details text |
+| state? | ?string | User's current party status, or text used for a custom status |
+| state_url? | ?string | URL that is linked when clicking on the state text |
+| emoji? | ?[emoji](/docs/events/gateway-events#activity-object-activity-emoji) object | Emoji used for a custom status |
+| party? | [party](/docs/events/gateway-events#activity-object-activity-party) object | Information for the current party of the player |
+| assets? | [assets](/docs/events/gateway-events#activity-object-activity-assets) object | Images for the presence and their hover texts |
+| secrets? | [secrets](/docs/events/gateway-events#activity-object-activity-secrets) object | Secrets for Rich Presence joining and spectating |
+| instance? | boolean | Whether or not the activity is an instanced game session |
+| flags? | integer | [Activity flags](/docs/events/gateway-events#activity-object-activity-flags) `OR`d together, describes what the payload includes |
+| buttons? | array of [buttons](/docs/events/gateway-events#activity-object-activity-buttons) | Custom buttons shown in the Rich Presence (max 2) |
:::info
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`.
The streaming type currently only supports Twitch and YouTube. Only `https://twitch.tv/` and `https://youtube.com/` urls will work.
:::
+###### Status Display Types
+
+| ID | Name | Example |
+|----|---------|----------------------------------------|
+| 0 | Name | "Listening to Spotify" |
+| 1 | State | "Listening to Rick Astley" |
+| 2 | Details | "Listening to Never Gonna Give You Up" |
+
+:::info
+This applies to all activity types. "Listening" was used to serve as a consistent example of what the different fields might be used for.
+:::
+
###### Activity Timestamps
| Field | Type | Description |
@@ -1202,8 +1217,10 @@ For Listening and Watching activities, you can include both start and end timest
|--------------|--------|----------------------------------------------------------------------------------------------|
| large_image? | string | See [Activity Asset Image](/docs/events/gateway-events#activity-object-activity-asset-image) |
| large_text? | string | Text displayed when hovering over the large image of the activity |
+| large_url? | string | URL that is opened when clicking on the large image |
| small_image? | string | See [Activity Asset Image](/docs/events/gateway-events#activity-object-activity-asset-image) |
| small_text? | string | Text displayed when hovering over the small image of the activity |
+| small_url? | string | URL that is opened when clicking on the small image |
###### Activity Asset Image
diff --git a/docs/monetization/implementing-one-time-purchases.md b/docs/monetization/implementing-one-time-purchases.md
index 6e3a6aace3..c051061267 100644
--- a/docs/monetization/implementing-one-time-purchases.md
+++ b/docs/monetization/implementing-one-time-purchases.md
@@ -29,7 +29,8 @@ When creating items for one-time purchase, you can choose between durable and co
- You will receive an `ENTITLEMENT_CREATE` event via the Gateway.
- This entitlement is now available via the `LIST Entitlements` API endpoint.
- This entitlement will be available on `Interaction Payloads` initiated from the entitled user or users in a guild (for guild subscriptions).
-- The purchasing user is unable to make another purchase of this specific SKU until you consume the entitlement using the [Consume Entitlement API](/docs/resources/entitlement#consume-an-entitlement) endpoint.
+- Users cannot repurchase this SKU until you consume the entitlement using the [Consume Entitlement API](/docs/resources/entitlement#consume-an-entitlement) endpoint.
+ - In [Test Mode](/docs/monetization/implementing-one-time-purchases#using-application-test-mode), repeated purchases are permitted without consumption for developer convenience.
- When you receive an `ENTITLEMENT_CREATE` event for a consumable SKU, you should process the item purchase in your app and consume the entitlement as soon as possible.
---
diff --git a/docs/resources/audit-log.mdx b/docs/resources/audit-log.mdx
index ccbb74e52c..c111cd472c 100644
--- a/docs/resources/audit-log.mdx
+++ b/docs/resources/audit-log.mdx
@@ -137,6 +137,7 @@ You should assume that your app may run into any field for the changed object, t
| AUTO_MODERATION_BLOCK_MESSAGE | 143 | Message was blocked by Auto Moderation | |
| AUTO_MODERATION_FLAG_TO_CHANNEL | 144 | Message was flagged by Auto Moderation | |
| AUTO_MODERATION_USER_COMMUNICATION_DISABLED | 145 | Member was timed out by Auto Moderation | |
+| AUTO_MODERATION_QUARANTINE_USER | 146 | Member was quarantined by Auto Moderation | |
| CREATOR_MONETIZATION_REQUEST_CREATED | 150 | Creator monetization request was created | |
| CREATOR_MONETIZATION_TERMS_ACCEPTED | 151 | Creator monetization terms were accepted | |
| ONBOARDING_PROMPT_CREATE | 163 | Guild Onboarding Question was created | [Onboarding Prompt Structure](/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure) |
@@ -152,20 +153,20 @@ You should assume that your app may run into any field for the changed object, t
###### Optional Audit Entry Info
-| Field | Type | Description | Event Types |
-|-----------------------------------|-----------|------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| application_id | snowflake | ID of the app whose permissions were targeted | APPLICATION_COMMAND_PERMISSION_UPDATE |
-| auto_moderation_rule_name | string | Name of the Auto Moderation rule that was triggered | AUTO_MODERATION_BLOCK_MESSAGE & AUTO_MODERATION_FLAG_TO_CHANNEL & AUTO_MODERATION_USER_COMMUNICATION_DISABLED |
-| auto_moderation_rule_trigger_type | string | Trigger type of the Auto Moderation rule that was triggered | AUTO_MODERATION_BLOCK_MESSAGE & AUTO_MODERATION_FLAG_TO_CHANNEL & AUTO_MODERATION_USER_COMMUNICATION_DISABLED |
-| channel_id | snowflake | Channel in which the entities were targeted | MEMBER_MOVE & MESSAGE_PIN & MESSAGE_UNPIN & MESSAGE_DELETE & STAGE_INSTANCE_CREATE & STAGE_INSTANCE_UPDATE & STAGE_INSTANCE_DELETE & AUTO_MODERATION_BLOCK_MESSAGE & AUTO_MODERATION_FLAG_TO_CHANNEL & AUTO_MODERATION_USER_COMMUNICATION_DISABLED |
-| count | string | Number of entities that were targeted | MESSAGE_DELETE & MESSAGE_BULK_DELETE & MEMBER_DISCONNECT & MEMBER_MOVE |
-| delete_member_days | string | Number of days after which inactive members were kicked | MEMBER_PRUNE |
-| id | snowflake | ID of the overwritten entity | CHANNEL_OVERWRITE_CREATE & CHANNEL_OVERWRITE_UPDATE & CHANNEL_OVERWRITE_DELETE |
-| members_removed | string | Number of members removed by the prune | MEMBER_PRUNE |
-| message_id | snowflake | ID of the message that was targeted | MESSAGE_PIN & MESSAGE_UNPIN |
-| role_name | string | Name of the role if type is `"0"` (not present if type is `"1"`) | CHANNEL_OVERWRITE_CREATE & CHANNEL_OVERWRITE_UPDATE & CHANNEL_OVERWRITE_DELETE |
-| type | string | Type of overwritten entity - role (`"0"`) or member (`"1"`) | CHANNEL_OVERWRITE_CREATE & CHANNEL_OVERWRITE_UPDATE & CHANNEL_OVERWRITE_DELETE |
-| integration_type | string | The type of integration which performed the action | MEMBER_KICK & MEMBER_ROLE_UPDATE |
+| Field | Type | Description | Event Types |
+|-----------------------------------|-----------|------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| application_id | snowflake | ID of the app whose permissions were targeted | APPLICATION_COMMAND_PERMISSION_UPDATE |
+| auto_moderation_rule_name | string | Name of the Auto Moderation rule that was triggered | AUTO_MODERATION_BLOCK_MESSAGE & AUTO_MODERATION_FLAG_TO_CHANNEL & AUTO_MODERATION_USER_COMMUNICATION_DISABLED & AUTO_MODERATION_QUARANTINE_USER |
+| auto_moderation_rule_trigger_type | string | Trigger type of the Auto Moderation rule that was triggered | AUTO_MODERATION_BLOCK_MESSAGE & AUTO_MODERATION_FLAG_TO_CHANNEL & AUTO_MODERATION_USER_COMMUNICATION_DISABLED & AUTO_MODERATION_QUARANTINE_USER |
+| channel_id | snowflake | Channel in which the entities were targeted | MEMBER_MOVE & MESSAGE_PIN & MESSAGE_UNPIN & MESSAGE_DELETE & STAGE_INSTANCE_CREATE & STAGE_INSTANCE_UPDATE & STAGE_INSTANCE_DELETE & AUTO_MODERATION_BLOCK_MESSAGE & AUTO_MODERATION_FLAG_TO_CHANNEL & AUTO_MODERATION_USER_COMMUNICATION_DISABLED & AUTO_MODERATION_QUARANTINE_USER |
+| count | string | Number of entities that were targeted | MESSAGE_DELETE & MESSAGE_BULK_DELETE & MEMBER_DISCONNECT & MEMBER_MOVE |
+| delete_member_days | string | Number of days after which inactive members were kicked | MEMBER_PRUNE |
+| id | snowflake | ID of the overwritten entity | CHANNEL_OVERWRITE_CREATE & CHANNEL_OVERWRITE_UPDATE & CHANNEL_OVERWRITE_DELETE |
+| members_removed | string | Number of members removed by the prune | MEMBER_PRUNE |
+| message_id | snowflake | ID of the message that was targeted | MESSAGE_PIN & MESSAGE_UNPIN |
+| role_name | string | Name of the role if type is `"0"` (not present if type is `"1"`) | CHANNEL_OVERWRITE_CREATE & CHANNEL_OVERWRITE_UPDATE & CHANNEL_OVERWRITE_DELETE |
+| type | string | Type of overwritten entity - role (`"0"`) or member (`"1"`) | CHANNEL_OVERWRITE_CREATE & CHANNEL_OVERWRITE_UPDATE & CHANNEL_OVERWRITE_DELETE |
+| integration_type | string | The type of integration which performed the action | MEMBER_KICK & MEMBER_ROLE_UPDATE |
### Audit Log Change Object
diff --git a/docs/resources/guild.mdx b/docs/resources/guild.mdx
index 1339574d15..761a1551fd 100644
--- a/docs/resources/guild.mdx
+++ b/docs/resources/guild.mdx
@@ -398,17 +398,18 @@ In `GUILD_` events, `pending` will always be included as true or false. In non `
###### Guild Member Flags
-| Flag | Value | Description | Editable |
-|---------------------------------|----------|------------------------------------------------------------------------------|----------|
-| DID_REJOIN | `1 << 0` | Member has left and rejoined the guild | false |
-| COMPLETED_ONBOARDING | `1 << 1` | Member has completed onboarding | false |
-| BYPASSES_VERIFICATION | `1 << 2` | Member is exempt from guild verification requirements | true |
-| STARTED_ONBOARDING | `1 << 3` | Member has started onboarding | false |
-| IS_GUEST | `1 << 4` | Member is a guest and can only access the voice channel they were invited to | false |
-| STARTED_HOME_ACTIONS | `1 << 5` | Member has started Server Guide new member actions | false |
-| COMPLETED_HOME_ACTIONS | `1 << 6` | Member has completed Server Guide new member actions | false |
-| AUTOMOD_QUARANTINED_USERNAME | `1 << 7` | Member's username, display name, or nickname is blocked by AutoMod | false |
-| DM_SETTINGS_UPSELL_ACKNOWLEDGED | `1 << 9` | Member has dismissed the DM settings upsell | false |
+| Flag | Value | Description | Editable |
+|---------------------------------|-----------|------------------------------------------------------------------------------|----------|
+| DID_REJOIN | `1 << 0` | Member has left and rejoined the guild | false |
+| COMPLETED_ONBOARDING | `1 << 1` | Member has completed onboarding | false |
+| BYPASSES_VERIFICATION | `1 << 2` | Member is exempt from guild verification requirements | true |
+| STARTED_ONBOARDING | `1 << 3` | Member has started onboarding | false |
+| IS_GUEST | `1 << 4` | Member is a guest and can only access the voice channel they were invited to | false |
+| STARTED_HOME_ACTIONS | `1 << 5` | Member has started Server Guide new member actions | false |
+| COMPLETED_HOME_ACTIONS | `1 << 6` | Member has completed Server Guide new member actions | false |
+| AUTOMOD_QUARANTINED_USERNAME | `1 << 7` | Member's username, display name, or nickname is blocked by AutoMod | false |
+| DM_SETTINGS_UPSELL_ACKNOWLEDGED | `1 << 9` | Member has dismissed the DM settings upsell | false |
+| AUTOMOD_QUARANTINED_GUILD_TAG | `1 << 10` | Member's guild tag is blocked by AutoMod | false |
:::info
BYPASSES_VERIFICATION allows a member who does not meet verification requirements to participate in a server.
diff --git a/docs/resources/message.mdx b/docs/resources/message.mdx
index e4b9778ed1..d1aadc9309 100644
--- a/docs/resources/message.mdx
+++ b/docs/resources/message.mdx
@@ -824,22 +824,22 @@ Files must be attached using a `multipart/form-data` body as described in [Uploa
When creating a message, apps must provide a value for **at least one of** `content`, `embeds`, `sticker_ids`, `components`, `files[n]`, or `poll`.
:::
-| Field | Type | Description |
-|--------------------|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| content?\* | string | Message contents (up to 2000 characters) |
-| nonce? | integer or string | Can be used to verify a message was sent (up to 25 characters). Value will appear in the [Message Create event](/docs/events/gateway-events#message-create). |
-| tts? | boolean | `true` if this is a TTS message |
-| embeds?\* | array of [embed](/docs/resources/message#embed-object) objects | Up to 10 `rich` embeds (up to 6000 characters) |
-| allowed_mentions? | [allowed mention object](/docs/resources/message#allowed-mentions-object) | Allowed mentions for the message |
-| message_reference? | [message reference](/docs/resources/message#message-reference-structure) | Include to make your message a reply or a forward |
-| components?\* | array of [message component](/docs/components/reference#component-object) objects | Components to include with the message |
-| sticker_ids?\* | array of snowflakes | IDs of up to 3 [stickers](/docs/resources/sticker#sticker-object) in the server to send in the message |
-| files[n]?\* | file contents | Contents of the file being sent. See [Uploading Files](/docs/reference#uploading-files) |
-| payload_json? | string | JSON-encoded body of non-file params, only for `multipart/form-data` requests. See [Uploading Files](/docs/reference#uploading-files) |
-| attachments? | array of partial [attachment](/docs/resources/message#attachment-object) objects | Attachment objects with filename and description. See [Uploading Files](/docs/reference#uploading-files) |
-| flags?\*\* | integer | [Message flags](/docs/resources/message#message-object-message-flags) combined as a [bitfield](https://en.wikipedia.org/wiki/Bit_field) (only `SUPPRESS_EMBEDS`, `SUPPRESS_NOTIFICATIONS` and `IS_COMPONENTS_V2` can be set) |
-| enforce_nonce? | boolean | If true and nonce is present, it will be checked for uniqueness in the past few minutes. If another message was created by the same author with the same nonce, that message will be returned and no new message will be created. |
-| poll? | [poll](/docs/resources/poll#poll-create-request-object) request object | A poll! |
+| Field | Type | Description |
+|--------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| content?\* | string | Message contents (up to 2000 characters) |
+| nonce? | integer or string | Can be used to verify a message was sent (up to 25 characters). Value will appear in the [Message Create event](/docs/events/gateway-events#message-create). |
+| tts? | boolean | `true` if this is a TTS message |
+| embeds?\* | array of [embed](/docs/resources/message#embed-object) objects | Up to 10 `rich` embeds (up to 6000 characters) |
+| allowed_mentions? | [allowed mention object](/docs/resources/message#allowed-mentions-object) | Allowed mentions for the message |
+| message_reference? | [message reference](/docs/resources/message#message-reference-structure) | Include to make your message a reply or a forward |
+| components?\* | array of [message component](/docs/components/reference#component-object) objects | Components to include with the message |
+| sticker_ids?\* | array of snowflakes | IDs of up to 3 [stickers](/docs/resources/sticker#sticker-object) in the server to send in the message |
+| files[n]?\* | file contents | Contents of the file being sent. See [Uploading Files](/docs/reference#uploading-files) |
+| payload_json? | string | JSON-encoded body of non-file params, only for `multipart/form-data` requests. See [Uploading Files](/docs/reference#uploading-files) |
+| attachments? | array of partial [attachment](/docs/resources/message#attachment-object) objects | Attachment objects with filename and description. See [Uploading Files](/docs/reference#uploading-files) |
+| flags?\*\* | integer | [Message flags](/docs/resources/message#message-object-message-flags) combined as a [bitfield](https://en.wikipedia.org/wiki/Bit_field) (only `SUPPRESS_EMBEDS`, `SUPPRESS_NOTIFICATIONS`, `IS_VOICE_MESSAGE`, and `IS_COMPONENTS_V2` can be set) |
+| enforce_nonce? | boolean | If true and nonce is present, it will be checked for uniqueness in the past few minutes. If another message was created by the same author with the same nonce, that message will be returned and no new message will be created. |
+| poll? | [poll](/docs/resources/poll#poll-create-request-object) request object | A poll! |
\* At least one of `content`, `embeds`, `sticker_ids`, `components`, `files[n]`, or `poll` is required.
diff --git a/docs/resources/user.mdx b/docs/resources/user.mdx
index f31d414156..5d630aabdb 100644
--- a/docs/resources/user.mdx
+++ b/docs/resources/user.mdx
@@ -119,12 +119,12 @@ Premium types denote the level of premium a user has. Visit the [Nitro](https://
###### User Primary Guild
-| Field | Type | Description |
-|-------------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| identity_guild_id | ?snowflake | the id of the user's primary guild |
-| identity_enabled | ?boolean | whether the user is displaying the primary guild's server tag. This can be `null` if the system clears the identity, e.g. because the server no longer supports tags. |
-| tag | ?string | the text of the user's server tag. Limited to 4 characters |
-| badge | ?string | the [server tag badge hash](/docs/reference#image-formatting) |
+| Field | Type | Description |
+|-------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| identity_guild_id | ?snowflake | the id of the user's primary guild |
+| identity_enabled | ?boolean | whether the user is displaying the primary guild's server tag. This can be `null` if the system clears the identity, e.g. the server no longer supports tags. This will be `false` if the user manually removes their tag. |
+| tag | ?string | the text of the user's server tag. Limited to 4 characters |
+| badge | ?string | the [server tag badge hash](/docs/reference#image-formatting) |
### Avatar Decoration Data Object
diff --git a/docs/topics/rpc.md b/docs/topics/rpc.md
index 64b0608eee..bd9f3cb4ae 100644
--- a/docs/topics/rpc.md
+++ b/docs/topics/rpc.md
@@ -1004,7 +1004,9 @@ When using `SET_ACTIVITY`, the `activity` object is limited to a `type` of Playi
"pid": 9999,
"activity": {
"state": "In a Group",
+ "state_url": "https://example.com/groups/50335231-9d9d-4ebd-873b-984787ee4d1d",
"details": "Competitive | In a Match",
+ "details_url": "https://example.com/matches/42340203-2f25-4534-8ff6-2a6509e81207",
"timestamps": {
"start": time(nullptr),
"end": time(nullptr) + (60 * 5 + 23)
@@ -1012,8 +1014,10 @@ When using `SET_ACTIVITY`, the `activity` object is limited to a `type` of Playi
"assets": {
"large_image": "numbani_map",
"large_text": "Numbani",
+ "large_url": "https://example.wiki/maps/Numbani",
"small_image": "pharah_profile",
- "small_text": "Pharah"
+ "small_text": "Pharah",
+ "small_url": "https://example.wiki/characters/Pharah"
},
"party": {
"id": GameEngine.GetPartyId(),
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