How to Use Discord Social SDK in GameMaker - First Rich Presence Evening 2026

If you are searching discord social sdk gamemaker, you do not need another Unity Social SDK walkthrough. You need a Monday path: create a Discord Application ID, import GMEXT-Discord with ExtensionCore, respect the non-redistributable Discord Social SDK download rule, smoke Rich Presence against a running Discord desktop client, and decide keep or hold before you promise in-game voice, friends lists, or OAuth account linking on the Steam page.
On June 4, 2026, GameMaker published the Discord Social SDK Extension Update—the official Discord extension rebuilt around Discord’s Partner Social SDK, calling out Rich Presence, account linking, and later chat/invite power without you standing up a social backend. The shipping package is GMEXT-Discord v2.0.0 (May 13, 2026) from YoYoGames/GMEXT-Discord. Discord’s own docs still own getting started and setting Rich Presence—including the important note that presence can update without full OAuth when Discord desktop is running.
Who this is for: GameMaker creators who want friends to see “Playing …” with honest details; beginners who never touched Discord’s developer portal; leads who need secrets hygiene and Social-SDK-vs-deprecated-Game-SDK honesty before marketing “Discord integrated.”
Time: 90–150 minutes for Application ID + extension import + Rich Presence smoke on Windows/macOS with Discord desktop open.
Honest limit: tonight is Application ID + Rich Presence smoke. Full OAuth, lobbies, messaging, and voice are hold until presence is green and you have read Discord’s scope requirements.Rich Presence docs
Non-repetition: This is not the GameMaker Photon realtime room evening (Photon Cloud rooms). It is not the GameMaker rhythm music-sync evening. It is not Steam demo export or setlive dry-run. Same “first evening keep/hold” discipline—different social stack. For legacy Discord Game SDK Windows DLL crashes, start at the DLL/path help article—that is a different SDK generation.
Why this matters now
- Official Social SDK path, not a stale Game SDK paste. YoYo Games rebuilt the Discord extension against the Partner Social SDK and published it with ExtensionCore, multi-platform targets, and a public GitHub release train.GameMaker blog v2.0.0 release
- Discovery without a custom social server. Rich Presence puts your game in Discord profiles and friend lists; account linking unlocks deeper features later with no backend of your own—but only if you earn the scopes honestly.GameMaker blog Discord Rich Presence
- SERP is C++/Unity/Unreal heavy. Discord’s getting-started tree routes to C++, Unity, and Unreal first. GameMaker teams still need Application ID → GMEXT import → desktop Discord smoke language that engine essays skip.Getting started
Parent demand under GameMaker stays large (SiteStatsDB-class snapshots put gamemaker.io around ~193K monthly organic visitors). Discord itself still draws enormous monthly visits (Semrush-class Jun 2026 snapshots near ~940M for discord.com)—independent proof that social/presence search does not start and end with one engine binding.
What GMEXT-Discord is (and is not)
| Surface | What it does | Use tonight? |
|---|---|---|
| GMEXT-Discord / DiscordSocial | Native bridge wrapping Discord Social SDK for GameMaker | Yes |
| ExtensionCore | Required companion dependency—import beside DiscordSocial | Yes — do not skip |
| Rich Presence (RPC path) | Update activity details/state while Discord desktop is running, without full OAuth | Yes — start here |
| OAuth2 / account linking | Authenticate players; unlock friends, deeper social layer | Hold until presence green |
| Lobbies / messaging / voice | In-game social surfaces on top of Social SDK | Hold — second evening |
| Deprecated Discord Game SDK | Older Game SDK generation many tutorials still cite | Do not mix with Social SDK receipts |
| Photon / custom netcode | Multiplayer rooms and state sync | Separate stack—see Photon evening |
Platforms called out for v2.0.0: Windows, macOS, Linux, iOS, and Android. Requires GameMaker 2024.11 or later (LTS 2024 recommended in the release notes).v2.0.0 release
Non-redistributable SDK rule (read before you clone)
YoYo Games cannot ship Discord’s Social SDK binaries inside the public repo. You must download the SDK from Discord, agree to Discord’s terms, and place contents where the extension’s build instructions say (commonly source/discord_social_sdk/). If you skip this step, native bridge builds fail in ways that look like “GameMaker is broken.”GMEXT-Discord
Treat the Discord SDK folder like a license-gated dependency, not a casual zip you commit to a public GitHub. Prefer private artifact stores or documented local-only paths for studio machines.
Prerequisites
Confirm every line before you paste an Application ID into a project that also holds Steam and Photon secrets.
- [ ] GameMaker IDE 2024.11+ (LTS line preferred for extension work).v2.0.0
- [ ] Ability to create a free Discord application and copy its Application ID.
- [ ] Discord desktop client installed and logged in on the test machine (RPC Rich Presence assumes desktop).Rich Presence docs
- [ ] Access to download Discord Social SDK files for the native bridge (not redistributable in GMEXT).GMEXT-Discord
- [ ] Named session owner who files the receipt.
- [ ] Written rule: Application ID / client secrets never commit to public git.
If you only need a Steam “Community Discord” URL button with no in-client presence, you can skip the Social SDK tonight. If friends should see live activity while Discord desktop is open, continue.
For general GameMaker IDE literacy before extensions, use the GameMaker Studio guide hub.
Beginner path - first evening Rich Presence
Step 1 - Create the Discord application
- Open the Discord Developer Portal and sign in.
- Create a new application. Name it after the game, not your studio joke channel.
- Copy the Application ID (numeric). Store it in a password manager or private secrets note—not a Discord public channel.
- Optional tonight: open Rich Presence → Art Assets and upload one large image (Discord recommends 1024×1024). Asset keys become lowercase after save—write them down exactly.Rich Presence docs
You do not need OAuth redirect URIs for a pure RPC Rich Presence smoke. Add them when you graduate to account linking.
Step 2 - Import GMEXT-Discord the honest way
- Grab the current release package / repo from YoYoGames/GMEXT-Discord (prefer the v2.0.0 release notes for platform and IDE gates).
- Import DiscordSocial and ExtensionCore. Missing ExtensionCore is a classic “functions undefined” evening killer.v2.0.0
- Follow the repo’s native-bridge instructions: download Discord Social SDK yourself and place it where the README/wiki say. Do not invent a path from a 2023 Game SDK tutorial.
- Confirm the extension targets match your export plan (Windows desktop first for tonight).
If your IDE is older than 2024.11, stop and upgrade—v2.0.0 is explicit about the floor.v2.0.0
Step 3 - Wire Application ID without leaking it
Prefer extension options / config macros / a local ignored file over hardcoding the ID in shared GML that lands on GitHub.
Studio pattern that survives audits:
discord_application_idlives in a private config or CI secret.- Public sample projects ship with a placeholder and a README that says “paste your ID.”
- Marketing builds never print the ID to debug overlays in release.
Client secrets (if you later enable OAuth) are stricter than Application IDs—treat them like Steamworks web API keys.
Step 4 - Minimal Rich Presence smoke (RPC mental model)
Discord documents that Rich Presence can update without authentication by talking to a running Discord desktop client via RPC: set Application ID, configure an Activity, call update. Mobile/console/web clients are not that path.Rich Presence without auth
Conceptual sequence (map names to the current GMEXT wiki bindings—do not invent Unity C# APIs):
- Ensure Discord desktop is open and logged in.
- Create/init the Social SDK client binding exposed by GMEXT-Discord.
- Set Application ID on the client.
- Build an Activity with type Playing, plus
detailsandstatestrings you can recognize. - Call the update-rich-presence equivalent and wait for the success callback / async result.
- On a second Discord account (or a friend’s client), confirm your profile shows the activity. Buttons and some UI are invisible on your own profile—Discord says so explicitly for buttons; use a second viewer for honest QA.Rich Presence docs
Starter strings that prove the pipe:
| Field | Example tonight | Why |
|---|---|---|
details |
Vertical slice - hub |
Shows on line 2 |
state |
Solo smoke test |
Shows on line 3 context |
type |
Playing | Games should use Playing |
| timestamps | start = now | Elapsed timer proves refresh |
Clear presence on exit (or set a “In menus” idle state) so your QA account does not look forever stuck in a boss fight.
Step 5 - File the evening receipt
Write six lines before you close the laptop:
- IDE version + GMEXT-Discord version.
- Application ID last-four only (never full ID in public tickets).
- Discord desktop version / channel (stable vs PTB) if known.
- Screenshot of friend view of presence (not only your own client).
- Pass/fail on D1–D6 below.
- Keep or hold decision for OAuth/lobbies.
Developer path - gates, hygiene, and honest limits
D1–D6 keep/hold gates
| Gate | Pass if… | Fail mode |
|---|---|---|
| D1 Application | Discord app exists; Application ID stored privately | Using a teammate’s personal bot app “temporarily” |
| D2 IDE + ExtensionCore | GM 2024.11+; DiscordSocial and ExtensionCore imported | Partial import; old Game SDK leftover DLLs |
| D3 SDK placement | Discord Social SDK downloaded per license; native bridge builds | Committed forbidden SDK zip to public repo |
| D4 Desktop RPC | Discord desktop running; presence update succeeds | Testing only on mobile Discord; “SDK broken” false alarm |
| D5 Friend-visible smoke | Second account/friend sees details/state | Self-view only; buttons assumed visible to self |
| D6 Scope honesty | Marketing copy matches Rich Presence-only if OAuth not done | Store page claims “Discord friends chat in-game” tonight |
Latch discord_social_rich_presence_ok only when D1–D6 pass. Do not latch on “extension imported” alone.
Sample receipt JSON
{
"schema": "discord_social_sdk_gm_receipt_v1",
"session_date": "2026-07-24",
"gm_ide": "2024.11+",
"gmext_discord": "2.0.0",
"application_id_last4": "0000",
"path": "rich_presence_rpc",
"oauth_enabled": false,
"friend_visible_ok": true,
"gates": {
"D1": true,
"D2": true,
"D3": true,
"D4": true,
"D5": true,
"D6": true
},
"discord_social_rich_presence_ok": true,
"next_hold": ["oauth_account_linking", "lobbies", "messaging", "voice"]
}
Store receipts beside BUILD_RECEIPT-style notes for Steam weeks so Discord claims and depot claims do not drift.
Rich Presence field design (so friends understand the game)
Discord’s layout mental model:Rich Presence docs
- Line 1: game/application name (automatic unless you override name carefully).
- Line 2:
details— what the player is doing. - Line 3:
state+ optional party size — lobby/group context.
Keep strings human. Prefer Boss - Phase 2 over STATE_ENUM_7. Avoid leaking seed numbers, matchmaking tokens, or internal build hashes into public presence.
Party + join secrets power Game Invites—that is a second evening with invite UX, deep links, and supported-platform flags. Do not half-enable join buttons that 404.Game Invites note in docs
Assets and buttons without overbuilding
- Upload few assets; keys are lowercased.
- External URLs for art exist for scale, but tonight one uploaded large image is enough.
- Custom buttons (Steam page, Discord invite) are visible to others, not you—plan second-account QA.Rich Presence docs
Social SDK vs Photon vs Steam overlay (pick jobs)
| Job | Prefer | Do not pretend |
|---|---|---|
| Friends see what you are playing | Discord Rich Presence | Steam overlay alone “is Discord” |
| Online rooms / synced state | Photon in GameMaker | Discord presence as netcode |
| Store branch / demo export | Steam export evening | Discord Application ID as Steam App ID |
| Legacy Game SDK DLL crashes | Windows DLL help | Mixing Game SDK binaries into Social SDK project |
Company / diligence notes
Partners will ask:
- Which Discord SDK generation? Answer: Social SDK via GMEXT-Discord v2+, not Game SDK.
- Is the Discord SDK redistributed in your public repo? Answer: No—local/private artifact per Discord terms.
- What player data leaves the device? For RPC presence-only: activity strings you choose + Discord client mediation. Document OAuth scopes separately when enabled.
- Can we claim Discord chat? Only after messaging path is tested—not after presence smoke.
- Platform matrix? Cite v2.0.0’s Windows/macOS/Linux/iOS/Android list and your actual QA devices.v2.0.0
Privacy one-liner for wishlists: “Shows optional Discord Rich Presence while Discord desktop is running; no Discord account linking required for presence-only builds.”
Common mistakes (and the fix)
- Following a 2022 Discord Game SDK GML gist — APIs and packaging differ. Start from GMEXT-Discord v2 + Discord Social SDK docs.
- Skipping ExtensionCore — import both folders.v2.0.0
- Testing with Discord closed — RPC presence needs desktop client.Docs
- Self-QA only — friend view catches missing details and button visibility rules.
- Committing the Discord SDK zip — license failure waiting to happen.GMEXT-Discord
- Promising lobbies on day one — GameMaker’s blog sells the roadmap; your receipt sells tonight’s green gates.GameMaker blog
- Putting secrets in shared macros — rotate IDs if they leak; treat like Steamworks keys.
- Asset key case mismatch — Discord lowercases keys; your GML must match.Docs
Sample evening timeline (strict)
| Minute | Task | Exit criteria |
|---|---|---|
| 0–15 | Create Discord app; copy Application ID privately | ID stored |
| 15–45 | Import DiscordSocial + ExtensionCore; place Social SDK | Project compiles |
| 45–75 | Wire ID; implement Playing + details/state update | Callback success |
| 75–105 | Friend-visible screenshot; clear/idle on exit | D5 pass |
| 105–120 | File receipt; keep/hold for OAuth | D1–D6 written |
When to hold (do not force keep)
Hold OAuth and lobbies if:
- Presence update fails while Discord desktop is confirmed open.
- You cannot obtain Social SDK files under Discord’s terms this week.
- Marketing already printed “Discord voice in-game” without a voice smoke plan.
- The team is mid-Steam setlive and cannot afford a native extension rebuild risk tonight.
Keep Rich Presence if D1–D6 pass and the strings are honest. Schedule account linking as a second evening with scope review (openid / presence scopes per Discord’s OAuth guidance when you leave RPC-only).Docs
Forward path after a green evening
- Upload invite cover + meaningful large/small assets.
- Add one Steam store button + one community Discord button; verify on a second account.
- Enable OAuth with default presence scopes only; document data handling.
- Prototype lobbies/invites after Photon (or your netcode) already owns session join—Discord invites should deep-link into a real session, not a blank menu.
- Re-read GameMaker’s Social SDK post when planning wishlist copy so claims match shipped surfaces.GameMaker blog
Key takeaways
- discord social sdk gamemaker in 2026 means GMEXT-Discord v2 + Discord Social SDK, not the old Game SDK paste culture.
- Import ExtensionCore with DiscordSocial or expect undefined-binding pain.
- Discord’s Social SDK is not redistributable in the YoYo repo—download it yourself under Discord’s terms.
- Tonight’s win is Rich Presence smoke with Discord desktop running; OAuth/lobbies/voice are holds.
- RPC presence can work without full authentication; do not confuse that with “no Application ID needed.”
- Friend-visible QA beats staring at your own profile—especially for buttons.
- Keep presence strings human and non-leaky; party/join secrets are a second evening.
- Do not mix Photon rooms and Discord presence into one confused “multiplayer Discord” marketing sentence.
- File a receipt with D1–D6 before you change Steam copy.
- Legacy Game SDK DLL crashes are a different help path—link them, do not merge binaries.
- Application IDs and client secrets stay out of public git.
- Cite GameMaker’s Jun 4 update and Discord’s Rich Presence docs when partners ask what changed.
FAQ
Do I need OAuth for Rich Presence in GameMaker tonight?
Not for the RPC desktop path Discord documents: Application ID + running Discord desktop + update presence. OAuth becomes required when you want authenticated social features and the default presence scopes flow.Rich Presence docs
Which GameMaker version do I need?
GMEXT-Discord v2.0.0 requires GameMaker 2024.11 or later (LTS 2024 recommended in the release notes).v2.0.0
Can I commit the Discord Social SDK into GitHub?
No. YoYo Games states the SDK cannot be redistributed; download it from Discord and keep it out of public trees.GMEXT-Discord
Why does presence not show on my own client the way I expect?
Some elements (notably custom buttons) are intended for other users. Use a second Discord account or a teammate for verification.Rich Presence docs
Is this the same as Photon multiplayer?
No. Photon owns realtime rooms and synced gameplay state. Discord Social SDK owns social presence and related Discord social features. Use both with clear jobs—see the Photon GameMaker evening.
We still have Discord Game SDK DLLs in the project. Keep them?
Do not mix generations. Prefer a clean Social SDK / GMEXT-Discord v2 project. If Windows Game SDK load/overlay issues remain on an old branch, use the DLL compatibility help as a migration diagnostic—not as the target architecture.
Does Rich Presence work on mobile Discord alone?
The RPC-without-auth path Discord documents requires a running Discord desktop client. Plan mobile expectations separately.Docs
What should store page copy say after tonight?
If only D1–D6 pass: “Discord Rich Presence supported (Discord desktop).” Do not claim in-game Discord chat, voice, or friends list until those gates exist.
Where do I get official setup truth?
Start with GameMaker’s Discord Social SDK post, GMEXT-Discord, and Discord’s Social SDK getting started + Rich Presence guide. Prefer wiki bindings over random forum snippets.
How does this fit a fest week?
Ship presence before wishlist spam if Discord is part of your discovery story. Do not rebuild native extensions the same night as Steam setlive unless D1–D6 already passed on a freeze candidate.
Related reading
- How to Use Photon Multiplayer in GameMaker - First Realtime Room Evening 2026
- How to Use GameMaker GM-CLI with Claude Code - First Terminal Agent Evening 2026 — terminal agent/CI path after social smoke
- How to Make a Rhythm Game in GameMaker - First Music Sync Evening 2026
- Your First GameMaker Steam Demo Export Sanity Check
- Your First GameMaker Steam Setlive Branch Dry Run
- Discord Game SDK Request Fails or Overlay Crashes on Windows
- GameMaker Studio Guide Hub