---
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