5 min read
How to run scrims from your Discord server: bot setup to results
Add the bot, connect it to your organization, bind a channel, and let announcements, one-tap registration and room reveals run themselves.
Most scrim communities live in Discord, so the question is never whether to use it. It is how much of the job the server should do for you. The honest split is this: Discord is where players see things; the web dashboard is where the host decides things. Run the setup below once and the server handles announcements, registration and room details without you pasting anything.
This is the setup in order.
1. Add the bot
Open the Finalist bot's profile in Discord and press Add App, or run /help wherever
the bot already is and press Invite Me. Pick your server and confirm. You need
Manage Server on it; that is Discord's rule.
The install asks for very little: view channels, send messages, embed links, read message history. Anything that changes your server (roles, locking channels, the bot's nickname) is granted later, per feature, only if you turn it on.
You can stop here and the bot is already useful. /event list and /event view work with
no organization and no Finalist account, and show every public event on the platform.
2. Connect the server to an organization
Scrims belong to an organization, never to a person. Create one on the dashboard (app.finalist.live), then go to Settings → Discord → Connect Discord, pick the server and confirm. That one button links the server to your organization; there is nothing to claim or paste afterwards.
A server belongs to exactly one organization. One organization can have several servers, and every connected server gets the same announcements.
3. Choose where announcements go
By default the bot has nowhere to post. An organization owner or admin fixes that in the channel that should receive them:
/host bind
To give a single scrim its own channel instead, pass its share id:
/host bind scrim:x7Kq2mNp9wLd
The scrim option autocompletes by name and date. /host unbind stops it.
For finer control, Settings → Discord lets each bound channel take different jobs: status announcements, a message each time a team joins or leaves, and an option to make the channel read-only while registration is closed. You can also bind a role to be pinged on announcements. The page lists each permission those features need and has a Grant permissions button, so a missing one shows up there rather than failing in the middle of an event.
4. Create and publish a scrim
Scrims are created on the dashboard (/host create opens the page). You set the game and
mode, the times, max slots, and whether slots are assigned automatically in registration
order. Publish it and, if you set the times, Finalist opens and closes registration and
starts the scrim on schedule.
Hosting the same scrim every day? Make it a preset once and each instance is created for you.
5. What the server does from here
Once a channel is bound, every state change posts an embed that links back to the scrim: registration open, registration closed, live, completed, cancelled.
Registration happens in the announcement. The registration-open post carries a Register button. A captain presses it, sees exactly who would be entered (names and in-game names from the team's default lineup), and one more tap enters them. It confirms a lineup rather than building one, and it can only register the presser's own team, because the backend decides who they are from their linked Discord account. That makes it safe in a public channel.
Room details stay out of the channel. When you publish the lobby, the bot posts "Room details are live" with a Reveal room details button. Clicking it shows the room ID and password privately to the person who clicked, and only if they are the captain of a team holding a slot. Everyone else is told they are not. The check runs on the server at every click, so the button is safe to leave in a public channel. If you scheduled the reveal for a few minutes before start, an early click is told to check back closer to the time.
This is the part worth the setup on its own. A room ID pasted into a channel is a room everyone can join; see how room IDs actually leak.
6. Results and the waitlist
When you declare results, players can read them with /event results, and they appear on
the scrim page and in profile history. If a slot frees up, the first waitlisted team is
promoted automatically and its captain is told, so you are not chasing replies in a thread.
What players can do from Discord
| Command | What it does |
|---|---|
/link |
Link your Discord to a Finalist account, one tap |
/event list |
Live, open and upcoming events |
/event register |
Enter your team (captain only) |
/event lineup |
See your lineup and in-game names |
/event checkin |
Check in, on events where the host asked for it |
/event results |
Results or current standings |
Replies that show someone's own data are private to them. Room details are always private.
What stays on the web
Creating and editing scrims, the slot board, publishing room details, and declaring
results. /host commands mostly open the right dashboard page. The bot is deliberately the
player-facing half, which is why it needs so few permissions.
If something does not post
Check these in order: the channel is bound (/host bind in that channel), the bot can see
and send in it, and Settings → Discord shows no missing permissions. Delivery is
best-effort by design: if Discord is unreachable, the scrim itself carries on unaffected.
The full command list is in the command reference, and the setup page has the permission table: Connect your server.
Related reading