Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

discord/discord-rpc

Repository files navigation

Deprecation Notice

This library has been deprecated in favor of Discord's GameSDK.Learn more here


This is a library for interfacing your game with a locally running Discord desktop client. It's known to work on Windows, macOS, and Linux. You can use the lib directly if you like, or use it as a guide to writing your own if it doesn't suit your game as is. PRs/feedback welcome if you have an improvement everyone might want, or can describe how this doesn't meet your needs.

Included here are some quick demos that implement the very minimal subset to show current status, andhave callbacks for where a more complete game would do more things (joining, spectating, etc).

Documentation

The most up to date documentation for Rich Presence can always be found on ourdeveloper site! If you're interested in rolling your own native implementation of Rich Presence via IPC sockets instead of using our SDK—hey, you've got free time, right?—check out the"Hard Mode" documentation.

Basic Usage

Zeroith, you should be set up to build things because you are a game developer, right?

First, head on over to theDiscord developers site and make yourself an app. Keep track ofClient ID -- you'll need it here to pass to the init function.

Unreal Engine 4 Setup

To use the Rich Presense plugin with Unreal Engine Projects:

  1. Download the latestrelease for each operating system you are targeting and the zipped source code
  2. In the source code zip, copy the UE plugin—examples/unrealstatus/Plugins/discordrpc—to your project's plugin directory
  3. At[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/, create anInclude folder and copydiscord_rpc.h anddiscord_register.h to it from the zip
  4. Follow the steps below for each OS
  5. Build your UE4 project
  6. Launch the editor, and enable the Discord plugin.

Windows

  • At[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/, create aWin64 folder
  • Copylib/discord-rpc.lib andbin/discord-rpc.dll from[RELEASE_ZIP]/win64-dynamic to theWin64 folder

Mac

  • At[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/, create aMac folder
  • Copylibdiscord-rpc.dylib from[RELEASE_ZIP]/osx-dynamic/lib to theMac folder

Linux

  • At[YOUR_UE_PROJECT]/Plugins/discordrpc/source/ThirdParty/DiscordRpcLibrary/, create aLinux folder
  • Inside, create another folderx86_64-unknown-linux-gnu
  • Copylibdiscord-rpc.so from[RELEASE_ZIP]/linux-dynamic/lib toLinux/x86_64-unknown-linux-gnu

Unity Setup

If you're a Unity developer looking to integrate Rich Presence into your game, follow this simple guide to get started towards success:

  1. Download the DLLs for any platform that you need fromour releases
  2. In your Unity project, create aPlugins folder inside yourAssets folder if you don't already have one
  3. Copy the fileDiscordRpc.cs fromhere into yourAssets folder. This is basically your header file for the SDK

We've got ourPlugins folder ready, so let's get platform-specific!

Windows

  1. Createx86 andx86_64 folders insideAssets/Plugins/
  2. Copydiscord-rpc-win/win64-dynamic/bin/discord-rpc.dll toAssets/Plugins/x86_64/
  3. Copydiscord-rpc-win/win32-dynamic/bin/discord-rpc.dll toAssets/Plugins/x86/
  4. Click on both DLLs and make sure they are targetting the correct architectures in the Unity editor properties pane
  5. Done!

MacOS

  1. Copydiscord-rpc-osx/osx-dynamic/lib/libdiscord-rpc.dylib toAssets/Plugins/
  2. Renamelibdiscord-rpc.dylib todiscord-rpc.bundle
  3. Done!

Linux

  1. Copydiscord-rpc-linux/linux-dynamic-lib/libdiscord-rpc.so toAssets/Plugins/
  2. Done!

You're ready to roll! For code examples on how to interact with the SDK using theDiscordRpc.cs header file, check outour example

From package

Download a release package for your platform(s) -- they have subdirs with various prebuilt options, select the one you need add/include to your compile includes,/lib to your linker paths, and link withdiscord-rpc. For the dynamically linked builds, you'll need to ship the associated file along with your game.

From repo

First-eth, you'll wantCMake. There's a few different ways to install it on your system, and you should refer totheir website. Many package managers provide ways of installing CMake as well.

To make sure it's installed correctly, typecmake --version into your flavor of terminal/cmd. If you get a response with a version number, you're good to go!

There's aCMake file that should be able to generate the lib for you; Sometimes I use it like this:

cd<path to discord-rpc>    mkdir buildcd build    cmake .. -DCMAKE_INSTALL_PREFIX=<path to install discord-rpc to>    cmake --build. --config Release --target install

There is a wrapper build scriptbuild.py that runscmake with a few different options.

Usually, I runbuild.py to get things started, then use the generated project files as I work on things. It does depend onclick library, so do a quickpip install click to make sure you have it if you want to runbuild.py.

There are some CMake options you might care about:

flagdefaultdoes
ENABLE_IO_THREADONWhen enabled, we start up a thread to do io processing, if disabled you should callDiscord_UpdateConnection yourself.
USE_STATIC_CRTOFF(Windows) Enable to statically link the CRT, avoiding requiring users install the redistributable package. (The prebuilt binaries enable this option)
BUILD_SHARED_LIBSOFFBuild library as a DLL
WARNINGS_AS_ERRORSOFFWhen enabled, compiles with-Werror (on *nix platforms).

Continuous Builds

Why do we have three of these? Three times the fun!

CIbadge
TravisCIBuild status
AppVeyorBuild status
Buildkite (internal)Build status

Sample: send-presence

This is a text adventure "game" that inits/deinits the connection to Discord, and sends a presence update on each command.

Sample: button-clicker

This is a sampleUnity project that wraps a DLL version of the library, and sends presence updates when you click on a button. Runpython build.py unity in the root directory to build the correct library files and place them in their respective folders.

Sample: unrealstatus

This is a sampleUnreal project that wraps the DLL version of the library with an Unreal plugin, exposes a blueprint class for interacting with it, and uses that to make a very simple UI. Runpython build.py unreal in the root directory to build the correct library files and place them in their respective folders.

Wrappers and Implementations

Below is a table of unofficial, community-developed wrappers for and implementations of Rich Presence in various languages. If you would like to have yours added, please make a pull request adding your repository to the table. The repository should include:

  • The code
  • A brief ReadMe of how to use it
  • A working example
Rich Presence Wrappers and Implementations
NameLanguage
Discord RPC C#C#
Discord RPC DD
discord-rpc.jarJava
java-discord-rpcJava
Discord-IPCJava
Discord Rich PresenceJavaScript
drpc4kKotlin
lua-discordRPCLuaJIT (FFI)
pypresencePython
SwordRPCSwift

[8]ページ先頭

©2009-2025 Movatter.jp