Let players sign in with Discord, and show what they're doing in your desktop game on their Discord profile.
Discord for Your Players
Two ways your players meet Discord in your game:
- Sign in with Discord on your login screen. Players skip the email and password, and your world learns which Discord account each player is (your Discord bot uses that for roles).
- Discord status in your desktop game. While it runs, a player's Discord profile shows your game, for example "Lv 12 · Highfire", under your game's name and art.
To post game news to your Discord server, see Discord Announcements.
Sign in with Discord#
Where to author it#
- Settings → Auth decides which sign-in your world uses: ED5 Managed Auth or Bring Your Own Supabase.
- UI Editor → Login Screen → Show or hide → Discord sign-in shows or hides the button.
Setting it up on your own Supabase#
- In the Discord Developer Portal, click New Application and name it after your game. Players see this name and icon when they approve the sign-in.
- Open OAuth2. Copy the Client ID, then Reset Secret and copy the Client Secret.
- In your Supabase project, open Authentication → Sign In / Providers → Discord. Turn it on and paste the Client ID and Client Secret.
- Supabase shows a Callback URL on that page. In the Discord portal, under OAuth2 → Redirects, add that URL and save.
- Still in Supabase, open Authentication → URL Configuration and add your game client's address (your play link or client URL) followed by
/auth/callbackto Redirect URLs. - Open your login screen. The Discord button appears in the social sign-in row. Sign in once to check it.
On ED5 Managed Auth#
The Discord button appears when Discord sign-in is switched on for ED5's managed sign-in. Players approve ED5 MMO Studio, not your game, on Discord's consent screen. For a consent screen with your own game's name and art, use Bring Your Own Supabase and follow the steps above.
What players see#
- They click Discord on your login screen.
- Discord asks them to allow the app (yours, or ED5 MMO Studio on managed auth) to see their username, avatar and email. They click Authorize.
- They're back in your game, signed in. The first time, they make a character as usual.
The fields#
| Field | What it does |
|---|---|
| Show or hide → Social sign-in row | The whole row of Discord, Google and GitHub buttons. |
| Show or hide → Discord sign-in | Just the Discord button. Hide it to keep Google and GitHub only. |
Discord status in your desktop game#
Where to author it#
UI Editor → Launcher → Discord status → Discord Application ID, then a new desktop export.
Setting it up#
- In the Discord Developer Portal, make an application named after your game (or reuse the one from sign-in). Its name is what players' profiles show: "Playing your game".
- Open Rich Presence → Art Assets and upload your game's icon (at least 512 × 512) with the name logo.
- Open General Information and copy the Application ID.
- In Studio, open UI Editor → Launcher, paste it into Discord Application ID and save.
- Export your desktop game (Build → Export Game) once, so players get a launcher that knows about Discord. After that the id comes from your game server each time the game opens, so changing it later needs no new export.
What players' profiles show#
| The player is… | Their profile shows |
|---|---|
| In the launcher | In the launcher |
| Out in your world | The zone name, then "Lv 12" |
| In a party | "Lv 12 · In a party" |
| In a dungeon | "In a dungeon: Sunken Crypt" |
| In the arena | "In the arena" |
| In a scenario | "In a scenario: Siege" |
The card also shows how long they've been playing, and your logo art with your game's name.
The field#
| Field | What it does |
|---|---|
| Discord Application ID | Your Discord application's id, a long number. Empty = no Discord status at all. |
Gotchas#
- No Discord button on your login screen? Discord sign-in isn't switched on in your world's Supabase (Authentication → Sign In / Providers → Discord), or Discord sign-in is hidden in the Login Screen tab. The button only shows when both are on.
- "Invalid OAuth2 redirect_uri" from Discord means step 4 was missed: the Supabase callback URL must be in the Discord app's OAuth2 → Redirects.
- Back on the login screen after Discord means your game client's address is missing from Supabase's Redirect URLs (step 5).
- Discord status needs the desktop game and the Discord desktop app on the same computer. The browser version of your game and Discord in a web browser can't show it.
- The status updates every 15 seconds at most. That's Discord's own limit, so a zone change can take a few seconds to show.
- A blank square instead of your art? The art asset must be named exactly logo.
- Players turn it off in Discord, under User Settings → Activity Privacy → Share your detected activities with others.
- No character names are shown, only the zone, level, party and instance type.
- There is no feature flag for either. Sign-in follows your Supabase providers, and the status follows the Application ID.