Bifrost Bifrost

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

1

Trigger

The bot polls your server every 30 seconds. When a score threshold is reached or time is running low, it triggers a vote.

2

Vote

A vote message appears in your chosen Discord channel with map options as buttons. Members click to vote — one vote per person.

3

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 ID and Client 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

1

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.

2

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!

3

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.

4

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

Trigger fires — Score reaches threshold OR time remaining drops below limit. Only fires once per match.
Maps selected — Random maps from your active rotation (minus the current map) are chosen as vote options.
Voting open — An embed with buttons appears in your vote channel. One vote per Discord user. Live vote counts update on each click.
Vote closes — Timer expires, votes are tallied. Ties are broken randomly. The winning map is set via the Bifrost API.
Results shown — The embed updates to show final results with a progress bar per map and the winner highlighted.

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:

  1. Open your vote channel's settings in Discord
  2. Go to Permissions → click Add members or roles
  3. Add the Bifrost Map Vote role
  4. 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.

In partnership with

Brilliant game servers for communities large and small.

Get yours today!

Shrapnelworks Logo

A Shrapnelworks product