Discord Map Vote Bot
Let your community vote on the next map directly in Discord. The Bifrost Discord bot monitors your game server, automatically triggers map votes when conditions are met, and sets the winning map — no coding required.
How It Works
Trigger
The bot polls your server every 30 seconds. When a score threshold is reached or time is running low, it triggers a vote.
Vote
A vote message appears in your chosen Discord channel with map options as buttons. Members click to vote — one vote per person.
Set Map
After 2 minutes, the bot tallies votes and automatically sets the winning map as the next map on your server.
Before You Start
- 1. Generate API credentials — In the Bifrost control panel, go to Data Access and generate OAuth client credentials. You'll need your
Client IDandClient Secret. - 2. Enable Discord votemap mode — In the Bifrost control panel, go to Map Management → Votemap and set the mode to
Discord via API. - 3. Set up a map rotation — Make sure you have an active map rotation configured for your server in the control panel under Map Management → Rotations. The bot picks vote options from this rotation.
Setup Guide
Invite the bot to your Discord server
Click the invite link below to add the Bifrost Map Vote bot to your Discord server. You need the Manage Server permission in your Discord server to do this.
Role-based access: All commands require the Discord Manage Server permission by default. If you create a Discord role named BIFROST_VOTE_ADMIN, only members with that role will be able to use the bot commands — this lets you delegate vote management without granting full server permissions.
Connect your Bifrost credentials
In your Discord server, run the /bifrost-vote-setup slash command. A form will appear asking for your OAuth Client ID and Client Secret. The bot validates them immediately — if they work, you're connected.
Discord slash command
/bifrost-vote-setup Opens a modal → Enter Client ID and Client Secret → Bot validates → Connected!
Add a server and pick a vote channel
Run /bifrost-vote-server add. The bot fetches your servers from the Bifrost API and presents them in a dropdown. After selecting a server, pick the Discord text channel where vote messages should appear. You can add multiple servers — each gets its own vote channel and independent trigger settings.
Discord slash command
/bifrost-vote-server add Select server from dropdown → Pick vote channel → Polling starts automatically
Channel permissions: The bot needs Send Messages and Embed Links permissions in the vote channel you select. If your channel has restricted permissions (e.g. only certain roles can post), you must add the Bifrost Map Vote bot role to the channel's permission overrides. See Troubleshooting below if votes aren't appearing.
Customize triggers (optional)
Use /bifrost-vote-config to fine-tune when votes are triggered and how they run.
| Option | Default | Description |
|---|---|---|
| score-trigger | 4 | Score threshold (0 to disable, 1-5) |
| time-trigger | 15 min | Minutes remaining (0 to disable, 8-60) |
| num-options | 6 | Number of map choices in each vote (2-25) |
| vote-duration | 120s | How long the vote stays open (30-300s) |
| channel | — | Override the vote channel |
Example: set score trigger to 3 and vote duration to 90 seconds
/bifrost-vote-config server:My Server score-trigger:3 vote-duration:90 All Slash Commands
| Command | Permission | Description |
|---|---|---|
| /bifrost-vote-setup | Manage Server | Enter Bifrost API credentials |
| /bifrost-vote-server add | Manage Server | Add a game server for map voting |
| /bifrost-vote-server remove | Manage Server | Remove a server from map voting |
| /bifrost-vote-server list | Manage Server | Show all configured servers and their settings |
| /bifrost-vote-config | Manage Server | Change vote triggers, duration, options, channel |
| /bifrost-vote-status | Manage Server | Show connection status, polling state, active votes |
| /bifrost-vote-start | Manage Server | Manually trigger a map vote right now |
| /bifrost-vote-disconnect | Manage Server | Remove all bot configuration from this server |
Vote Lifecycle
Troubleshooting
Votes are triggering but no message appears in the channel
This is almost always a channel permissions issue. The bot has the correct role-level permissions from the invite link, but many Discord channels have overrides that restrict who can post (e.g. only specific roles are allowed to send messages). When this happens, the bot's role-level permissions are overridden and it silently fails to post.
To fix:
- Open your vote channel's settings in Discord
- Go to Permissions → click Add members or roles
- Add the Bifrost Map Vote role
- Enable: View Channel, Send Messages, and Embed Links
Alternatively, pick a channel where @everyone is already allowed to send messages — the bot will work there without any extra configuration.
Vote triggers but "Set votemap mode to Discord via API"
In the Bifrost control panel, go to Map Management → Votemap and change the mode from "Bifrost Automated" to "Discord via API".
Bot says "Match ending too soon, vote cancelled"
The Bifrost API rejects map changes with 5 minutes or less remaining. Set your time trigger higher (e.g., 8-15 minutes) to give enough buffer.
"A next map is already set for this match"
Only one vote can set the next map per match. The trigger only fires once per match — this is working as intended.
No vote is triggering
Check /bifrost-vote-status to see if polling is active (green dot). Make sure at least one trigger (score or time) is enabled via /bifrost-vote-config.
Related API Endpoints
The Discord bot uses these Bifrost API endpoints under the hood. If you're building your own integration, these are the endpoints you need.