Integration

Discord Bot

Bring pairings, reminders, and match reporting into the Discord server you already use - no coding, a few clicks.

The MTGSL Discord bot posts your pairings, sends match reminders, and lets players report results, all inside the Discord server you already use. Setup is a few clicks - nobody needs to write any code or touch a developer portal.

This is different from the older Discord Webhook field (League Settings → Integrations), which just posts results to a channel and needs no bot. You can use either one, or both together - see Running a League for the webhook.

Get Started

Pick the option that matches you - each one takes a couple of minutes.

  1. Go to your Profile page (click your avatar, top right)
  2. Find the Discord card and click Connect
  3. Click Authorize on the Discord page that opens - you'll land back on MTGSL automatically
Done. You'll now get tagged when pairings go up, get match reminders, and can report your own results with /report in Discord. Nothing else to set up on your end.
  1. Open your league's Discord server and type /setup-league
  2. For the league option, paste your league's link (or its ID, if the league is private - see Advanced Details below)
  3. Press enter - Discord confirms the server is linked

That turns on pairing pings, reminders, and lets players use /join and /report.

Want players to automatically get a Discord role for your league? Skip the command above and instead go to your league's Settings → Integrations tab and click Add Bot to Server. One extra click, and it also links the server for you.
  1. Go to your store's page and open the Discord Bot section (under the Dashboard tab)
  2. Click Add Bot to Server
  3. Pick your Discord server and click Authorize
Done. Every league under your store now gets pairing pings, reminders, /join, and automatic Discord roles for participants - no per-league setup needed. (Prefer a lighter setup with no roles? Run /setup-store in your server instead.)

What Happens Automatically

Once you've connected your account and your server is linked, these all happen on their own - no commands needed:

Pairings
Posted the moment a new week (or pod, or draft round) goes live, tagging both players.
Match reminders
24 hours and 1 hour before a scheduled match (leagues with Match Scheduling on).
Schedule confirmations
When a match time is locked in, the when/where posts automatically, shown in each player's own timezone.

A player who hasn't connected their Discord account just doesn't get tagged - nothing breaks for anyone else.

Every Command

Slash commands are just messages you type into Discord starting with / - Discord will show you the options as you type, so you don't need to memorize the exact wording.

Command Who can use it What it does
/standings Anyone Posts current standings for a public league. Works in any server - no setup needed first.
/join Anyone Shows the league (or store's active leagues) this server is linked to, with a link to join.
/setup-store Store owner/staff Links this server to your store, once. Turns on /join and pairing/reminder pings for every league under that store.
/setup-league League manager/staff Links this server to one league that isn't part of a store. Works for private leagues too.
/report Either player in a match Reports your 1v1 match result without leaving Discord.

Common Tasks

My league is private - can I still connect it?

Yes. Your league never needs to be made public to use the bot. Open your league's Settings → Integrations tab - if the league is private, you'll see its ID there with a Copy ID button. Use that ID anywhere you'd normally use a league link, including in /setup-league and /report.

How do automatic Discord roles work?

Once you've clicked Add Bot to Server (league Settings, or the store page), MTGSL creates a Discord role for your league the first time it's needed. From then on:

  • A participant gets the role the moment they join
  • It's removed automatically when they drop
  • Both directions need that player to have connected their own Discord account first
How do I report a match from Discord?

Type /report, pick your league, and enter the games you and your opponent each won.

If your league requires both players to confirm the score, your report is posted with Confirm and Dispute buttons that only your opponent can click. Confirm locks in the result immediately; Dispute lets them know the score needs a second look (they can run /report themselves with the correct score, or reach out to the manager).

Advanced Details

Skip this section unless you're curious how something works, or you've hit one of these specific situations.

Why doesn't /setup-league alone turn on automatic roles?

That command only tells MTGSL which server to send pings to - it doesn't add the bot to your server as an actual member, so Discord never gives it permission to manage roles. Add Bot to Server is the one action that installs the bot with that permission. If a league or store already shows as "Linked" but roles still aren't appearing, this is almost always why - use Add Bot to Server (or Relink) to fix it.

Why can't /standings use a league ID for private leagues, like /setup-league and /report can?

/standings works for absolutely anyone, with no Discord account connection required - that's what makes it convenient, but it also means MTGSL has no way to confirm who's asking. Keeping it slug-based (public leagues only) prevents anyone who happens to obtain a private league's ID from pulling its standings into an unrelated server. /setup-league and /report don't have this problem since both already require the caller to be a specific, signed-in MTGSL account.

I banned a participant, but they still have their Discord role.

This is expected for now - banning someone doesn't currently trigger role removal. Remove the role manually in Discord if needed.

What can't the Discord bot do yet?

/report only covers 1v1 matches - pod/multiplayer results, no-shows, and suspected-cheating reports still need the website. Managers also can't report a result on someone else's behalf from Discord; that's website-only too.

Questions about setting up the bot for your league or store?

Contact Support Running a League