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.
Get Started
Pick the option that matches you - each one takes a couple of minutes.
- Go to your Profile page (click your avatar, top right)
- Find the Discord card and click Connect
- Click Authorize on the Discord page that opens - you'll land back on MTGSL automatically
/report in Discord. Nothing else to set up on your end.- Open your league's Discord server and type
/setup-league - For the
leagueoption, paste your league's link (or its ID, if the league is private - see Advanced Details below) - Press enter - Discord confirms the server is linked
That turns on pairing pings, reminders, and lets players use /join and /report.
- Go to your store's page and open the Discord Bot section (under the Dashboard tab)
- Click Add Bot to Server
- Pick your Discord server and click Authorize
/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:
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.
/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.
/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.
This is expected for now - banning someone doesn't currently trigger role removal. Remove the role manually in Discord if needed.
/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.