Skip to main content
The Discord Social SDK allows you to build social features into your game, including friend lists, messaging, voice chat, and rich presence. Unlike a traditional SDK with built-in UI components, the Discord Social SDK provides access to raw data, allowing you to create a fully customized experience that aligns with your game’s aesthetic.

Core features

Account linking

Account linking allows a game to authenticate users with their Discord credentials, gaining access to social features like friends, chat, and presence. This process uses OAuth2 authentication.

Provisional accounts

Provisional accounts let players use social features in your game without linking a Discord account, so all players can have a consistent gameplay experience. Players with provisional accounts can access game-specific social features, and they can upgrade to a full Discord account at any time by completing the account linking flow.

Friend system and relationships

The SDK models friendships and relationships in two ways:
  • Discord friends — Persistent across all games.
  • Game-specific friends — Limited to the current game.

Presence and rich presence

Presence refers to a user’s online status, while rich presence provides game-specific activity data:
  • Displays if a user is online, idle, or offline
  • Shows detailed game stats (e.g., what level they’re playing and time played)
  • Allows users to send game invites through Discord and in-game
Development guides
Setting rich presence

Communication features

The following communication features are available for development and testing, but their usage is capped with a rate limit. You must apply for increased rate limits before using these features in a production release.

Messaging and communication

Users can communicate via direct messages (DMs) and voice calls:
  • DMs — One-on-one private chat using MessageHandle.
  • Calls — Real-time voice communication inside a game lobby using Call.
Development guides
Managing voice chat

Lobbies and in-game chat

A lobby is a virtual space where players can interact through voice and text chat.
  • Your game controls lobbies, which can have different membership rules (up to 1,000 members).
  • Integrated voice chat allows real-time communication among players in a session.
  • Lobby secrets can be shared or embedded in rich presence for game invite flows.
Development guides
Managing lobbies

Linked channels

Games can link in-game chat with Discord’s server-based text channels, allowing players to chat in a Discord server without leaving the game. Messages flow bidirectionally between the game and Discord.

OAuth2 scopes

OAuth2 scopes define the level of access your app has to a user’s Discord account. The Discord Social SDK provides two scope sets for the most common use cases:
Helper methodScopes requestedFeatures enabled
Client::GetDefaultPresenceScopesopenid sdk.social_layer_presenceAccount linking, friends list, rich presence
Client::GetDefaultCommunicationScopesopenid sdk.social_layerAll of the above, plus lobbies, voice chat, direct messaging, and linked channels
With only the default presence scopes, your game cannot use any of the limited-access communication features.

OAuth2 client types

OAuth2 has two client types: Confidential and Public. Most games will not want to ship with Public Client enabled. Some SDK methods require your Discord application to be a Public Client. These methods also have server-side alternatives you can use with a Confidential Client.
  • Using confidential clients with proper secret management is recommended for production applications.
  • Public clients cannot securely store client secrets.
  • Your security team should review this setting and authentication flows before releasing your game.

Platform compatibility

The Discord Social SDK is available for the following platforms:
PlatformMin versionSupport levelStandalone C++Unreal EngineUnity
Windows (x64)10Generally AvailableYesYesYes
Windows (ARM64)11Generally AvailableYesNoNo
macOS (x64)10.5Generally AvailableYesNoYes
macOS (ARM64)11Generally AvailableYesNoYes
Linuxglibc 2.31+ExperimentalYesYesYes
Android7.0Generally AvailableYesYesYes
iOS15.1Generally AvailableYesYesYes
Xbox OneExperimentalYesYesNo
Xbox Series X|SGenerally AvailableYesYesYes
PlayStation 4ExperimentalYesYesNo
PlayStation 5Generally AvailableYesYesYes
Console platform access requires additional approval. Contact Developer Support to request access.
Discord Account Linking entry points are prohibited on Sony platforms.

Integration overview

To implement the Discord Social SDK, developers for all platforms generally follow these steps:
1

Import the SDK

Add the SDK library to your project following the Getting Started guide for your platform.
2

Initialize the SDK

Create a Client instance and set up event listeners to monitor SDK events and callbacks.
3

Authenticate users

Link an existing Discord account via OAuth using Client::Authorize, or create provisional accounts using Client::GetProvisionalToken for players without Discord.
4

Implement social features

Build out your unified friends list and relationships, set up rich presence for game activity updates, configure lobbies for multiplayer interaction and game invites, and manage direct messages and voice communication.
5

Handle events and API calls

Listen for changes in friend lists, presence updates, and chat messages. Use Discord’s APIs to update statuses, send messages, and manage connections.

Next steps

After exploring these core concepts, start implementing the Discord Social SDK:

Getting started

Follow step-by-step setup instructions for your platform.

Account linking

Implement user authentication with Discord OAuth2.

Development guides

Step-by-step guides for implementing each social feature.

Change log

DateChanges
July 21, 2025Restructured core concepts and OAuth scopes
March 17, 2025Initial release