NOTE: Most Discord GameSDK features are going deprecated. This repo will get updated if there's any major GameSDK updates
This is not a module (for an installable module, check out LennyPhoenix's fork). This was made for Python >= 3.5 and Discord Game SDK 3.2.0
This is a Work In Progress: it might not work as expected or not work at all. This was made for testing purposes.
-
Download:
-
Grab the DLL from
discord_game_sdk.zip
in thelib
directory and put it in your project directory -
Grab the
discord
directory frommaster.zip
and put it in your project directory
If you need documentation, look at the official Game SDK docs ; this was made following the official documentation.
-
Should be working:
- ActivityManager
- ImageManager
- NetworkManager
- RelationshipManager
- StorageManager
- UserManager
-
Should be working, but need more testing:
- AchievementManager (not tested at all)
- ApplicationManager (especially the functions
GetTicket
andValidateOrExit
) - LobbyManager
- OverlayManager (especially the new functions)
- StoreManager (not tested at all)
- VoiceManager
The code needs more comments, type hinting. You can also implement the missing features, or add more tests. Feel free to open a pull request!
You can also report issues. Just open an issue and I will look into it!
You can find more examples in the examples/
directory.
Create a Discord instance
from discord import Discord
from discord.enum import CreateFlags
import time
app = Discord(APPLICATION_ID, CreateFlags.Default)
# Don't forget to call RunCallbacks
while 1:
time.sleep(1/10)
app.RunCallbacks()
Get current user
from discord import Discord
from discord.enum import CreateFlags
import time
app = Discord(APPLICATION_ID, CreateFlags.Default)
userManager = app.GetUserManager()
def onCurrUserUpdate():
user = userManager.GetCurrentUser()
print(f"Current user : {user.Username}#{user.Discriminator}")
userManager.OnCurrentUserUpdate = onCurrUserUpdate
# Don't forget to call RunCallbacks
while 1:
time.sleep(1/10)
app.RunCallbacks()
Set activity
from discord import Discord
from discord.model import Activity
from discord.enum import Result, CreateFlags
import time
app = Discord(APPLICATION_ID, CreateFlags.Default)
activityManager = app.GetActivityManager()
activity = Activity()
activity.State = "Testing Game SDK"
activity.Party.Id = "my_super_party_id"
activity.Party.Size.CurrentSize = 4
activity.Party.Size.MaxSize = 8
activity.Secrets.Join = "my_super_secret"
def callback(result):
if result == Result.Ok:
print("Successfully set the activity!")
else:
raise Exception(result)
activityManager.UpdateActivity(activity, callback)
# Don't forget to call RunCallbacks
while 1:
time.sleep(1/10)
app.RunCallbacks()