Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions docs/change-log/2025-06-26-discord-social-sdk-1.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: "Discord Social SDK Release 1.4"
date: "2025-06-26"
topics:
- "Discord Social SDK"
---

A new release of the Discord Social SDK is now available, with the following updates:

### Lobby Chat History

- Added [`Client::GetLobbyMessagesWithLimit`] to retrieve lobby message histories based on a provided lobby ID, with a
maximum of 200 messages and up to 72 hours.
- Only messages from lobbies the user is currently a member of can be retrieved.
- DM history will be coming soon too!

### Unified Friends List

- Added [`Client::GetRelationshipsByGroup`] which both logically groups a user’s relationships for the purpose of
rendering a friends list and sorts users based on
our [Unified Friends List design guidelines](/docs/discord-social-sdk/design-guidelines/unified-friends-list).
Before, it was necessary to call [`Client::GetRelationships`] and manually partition each relationship into the
appropriate friend group, as well as write your own sorting operations.
- Added [`Client::SetRelationshipGroupsUpdatedCallback`] which fires whenever a user change occurs which could invalidate
a previously sorted friends list retrieved from [`Client::GetRelationshipsByGroup`]. Call
[`Client::GetRelationshipsByGroup`] again to maintain an up-to-date friends list.
- Added `IsSpamRequest` to [`RelationshipHandle`], returns `true` if Discord believes the request to be spam.

### Audio Changes

- A new experimental audio mode has been added for mobile devices which uses standard media audio streams instead of
voice-specific processing. On iOS this causes the voice engine to use the Remote I/O Audio Unit instead of Voice
Processing I/O and likewise on Android, media stream types are used instead of voice communication types. This mode
may be enabled by creating a Client with a [`ClientCreateOptions`] parameter whose `experimentalAudioSystem`
property is
set to `AudioSystem::Game`. In this case, you should also set [`Client::SetEngineManagedAudioSession`] to true. **We do
not recommend using this for production** - however, if you are interested in trying it out, we are looking for
feedback!
- Added [`Client::SetAecDump`] to enable recording of audio diagnostic information.

### Auth

- Publisher Auth
- Publisher Auth is a new feature which makes authorization easier for publishers with multiple games. This is an
early release of this feature and only available to a limited number of partners for now.
- Added [`Client::ExchangeChildToken`] to facilitate child token exchange for public clients. Confidential clients
will require a server to server implementation, but this method may be useful for development.
- Invites from sibling applications will be visible to the SDK. They can be identified by the `applicationId` field
on the [`ActivityInvite`] payload.
- Messages sent from other sibling applications will be visible to the SDK. They can be identified by the
`ApplicationId` method on the [`MessageHandle`].
- Added [`Client::RevokeToken`] and [`Client::UnmergeIntoProvisionalAccount`] to allow games leveraging Public Clients to
perform token revocation or unmerge operations directly from clients.

### Android

- The SDK is now compatible with 16KB page size.

### Misc

- Improved activity serialization, avoiding including null/empty keys in the JSON payload.

<!-- Autogenerated Reference Links -->
[`ActivityInvite`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#af980f140c1459e1cd8f6ef3f3c07547c
[`Client::ExchangeChildToken`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a59f5d9d14f79eb318bf4d57f4e87a5c1
[`Client::GetLobbyMessagesWithLimit`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a0586192e85caf548b8b321f1cb21301f
[`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::RevokeToken`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a30ccea6366efaf0b884efcdcc28a6f2d
[`Client::SetAecDump`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a3a05b2cafaa546d915a5249c63f4059f
[`Client::SetEngineManagedAudioSession`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ade08897214152b9acfa79c263e77e366
[`Client::SetRelationshipGroupsUpdatedCallback`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#af12441ef091298f968075b7190851098
[`Client::UnmergeIntoProvisionalAccount`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a2da21ae8a3015e0e5e42c1a7226b256f
[`ClientCreateOptions`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#ae655ad66ba64f443496c158307cc77b4
[`MessageHandle`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1MessageHandle.html#ae25595b43bc74b0c4c92c5165d16382f
[`RelationshipHandle`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1RelationshipHandle.html#a7da36b15ad0b7d38ba658a622e9ded77
5 changes: 3 additions & 2 deletions tools/doxygen/social-sdk-mappings.json
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@
"discordpp::Client::GetOutputVolume": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a7a6696f8d4a101f45bfd41e55d221333",
"discordpp::Client::GetSelfDeafAll": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ac1e26e0b769557da89a7f1d7c09f1487",
"discordpp::Client::GetSelfMuteAll": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#adf4c02ceb03ab34f2c1c621bfc407cda",
"discordpp::Client::SetAecDump": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a3a05b2cafaa546d915a5249c63f4059f",
"discordpp::Client::SetAutomaticGainControl": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a818ae7f46b5bd3873dcd51dd3d9fa64d",
"discordpp::Client::SetDeviceChangeCallback": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a31f683bd8df9f6fdcc384e4678301ef0",
"discordpp::Client::SetEchoCancellation": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a1def244b7ecd388902ba5256ce506ca3",
Expand Down Expand Up @@ -342,8 +343,8 @@
"discordpp::ClientCreateOptions::SetWebBase": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#aef30d2e0aaae55cf363ce22606b6b857",
"discordpp::ClientCreateOptions::ApiBase": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#ab75bc5cb2fba2679be638eaa77d33b53",
"discordpp::ClientCreateOptions::SetApiBase": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#ab8ea2ea26aafb92ebd54b443ae839595",
"discordpp::ClientCreateOptions::AudioSystem": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#a2965c481492c574a5e21a367e088763f",
"discordpp::ClientCreateOptions::SetAudioSystem": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#a893772a868a6df65203d842aa80dc5d3",
"discordpp::ClientCreateOptions::ExperimentalAudioSystem": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#a4a5859333e09347aef91f9bbda4ca08b",
"discordpp::ClientCreateOptions::SetExperimentalAudioSystem": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientCreateOptions.html#adfd12e55eff0ae99f54b336f8d256770",
"discordpp::ClientResult::ClientResult": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientResult.html#a685015ca8d29a50d47fd1ed5d469ac2e",
"discordpp::ClientResult::operator=": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientResult.html#ab04a08a811079846f4c963d733e806de",
"discordpp::ClientResult::operator bool": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ClientResult.html#ad719dc037d1c61b9b33499f85af9e884",
Expand Down