This simple library demonstrates how one may integrate Discord's rich presence to their application (e.g. for game Lineage 2).
- Microsoft Visual C++ Redistributable 2015-2022 x64
- in case you don't want your users to install this package you may statically link it:
- open
L2DiscordPresence (project) properties - select
Configuration -> Release&Platform -> Win32 - go to
C/C++ -> Code Generation - select
Runtime Library -> Multi-threaded (/MT) - press
Ok
- open
- in case you don't want your users to install this package you may statically link it:
- navigate to Discord Developer Portal - Application:
- if you've already created Discord app => open it there & skip other steps in this section
- otherwise create new discord application:
- press
New Applicationin the bottom right corner of the page - set some
Namefor your application (TestAppDemoin the preview). E.g. server name/website likesoverygoodserver.org - read & agree to their terms, press
Create - you'll be redirected to your new Discord app
- press
- open
OAuth2 -> General:- inside
Redirectssection pressAdd Redirect - fill new field with
http://127.0.0.1 - press
Save Changesin the bottom half of the page
- inside
- open
Rich Presence -> Art Assets(you may skip this step in case you don't need any pics for your application):- press
Add Image(s)& select some image(s) (minimum image resolution is 512x512) you wish to use for your application - set some name(s) for your image(s)
- press
Save Changesin the bottom half of the page - THERE'S A CATCH: due to caching on the Discord's servers your image(s) may disappear (e.g. if you refresh this page). Don't panic and try to add them again, it's okay. Wait for a while (~5 mins) and they'll appear on their own
- press
- now you are ready to go
- clone this repo
- open Visual Studio 2022 (v143 toolset; Win 10.0+ SDK) solution
L2DiscordPresence.sln - open
L2DiscordPresence/main.cpp- set
APP_IDto your Discord's application ID, which you may find in Discord Developer Portal - Application - customize acitivity message in function
updateActivity(you may comment outAssetsandTimestampssections if you don't want to display them):- look at the preview in the description
TestAppDemo= name of your Discord applicationvery details= first row of text (activity.details)such state= second row of text (activity.state)big pic= name of the Art Asset from your Discord application (assets.large_image)hover text for big pic= some additional text when you hover cursor over it (assets.large_text)small pic= name of the Art Asset from your Discord application (assets.small_image)hover text for small pic= some additional text when you hover cursor over it (assets.small_text)
- set
- build project
L2DiscordPresencewithReleaseconfiguration forx86platform - grab built
L2DiscordPresence.dll(from$(OutDir), e.g.bin/VS_L2DiscordPresence_Release-Win32) with its dependencydiscord_game_sdk.dll(usedv3.2.1from Discord Developer Portal - Docs) - inject/import
L2DiscordPresence.dllsomehow to the target application- if you have access to source code of the target application - simply link this dll & call
Anchorsomewhere - in case you don't (e.g. for game Lineage 2) - it's up to you how you manage to do it
- if you have access to source code of the target application - simply link this dll & call
- launch Discord app, then launch the target application & you should see customized activity message "Playing a game"
- you have to be online in Discord
Display currenct activity as a status messageinSettings -> Activity Privacy -> Activity Statusshould be enabled
In this repo for game Lineage 2 (tested on Essence 362p) you may find modified ogg.dll which imports Anchor function from L2DiscordPresence.dll, thus triggering DllMain. So you can copy ogg.dll, L2DiscordPresence.dll and discord_game_sdk.dll to your client's system folder (replace ogg.dll) and that's it.


