Create voice & text channel queues. Queue Bot provides live queue displays in chat, assists in removing users in order, and allows for customization.
Example of Queue Bot usage
/help setup
and follow the instructions Most commands will be hidden until you have at least one queue.
/display
- Display the users in a queue. These messages stay updated
/help
- Display help messages
/join
- Join a text queue / Update queue message after joining
/leave
- Leave a text queue
/positions
- Display a member's queue positions
Privileged commands are restricted to the server owner, administrators, and users with any of the following roles: mod
, moderator
, admin
, administrator
. Users or roles can be granted permission to use privileged commands with /permission add
.
If a command that expects a channel name is not given one, the current text channel will be used.
Queue Management
/autopull
- Get/Set automatic pull from a voice queue
/blacklist
- Add/Delete/List/Clear users or roles from a queue blacklist
/button
- Get/Set whether a "Join / Leave" button appears under a text queue display
/clear
- Clear a queue
/color
- Get/Set color of queue displays
/dequeue
- Dequeue a user
/enqueue
- Add a specified user or role to a text queue / Update queue message
/graceperiod
- Get/Set how long users can leave a queue before losing their position
/header
- Get/Set a header on display messages
/lock
- Lock or unlock a queue. Locked queues can still be left
/logging
- Get/Set a dedicated logging channel for bot messages
/mentions
- Get/Set whether users are displayed as mentions (on), or normal text (off). Normal text helps avoid the @invalid-user issue
/move
- Move a user to a new position in a queue
/mute
- Server mute users in queue and unmute them when they are pulled
/next
- Pull the next user(s) from a queue and display their name(s)
/pullnum
- Get/Set the default # of users to pull when autopull is off or when using the /next
command
/queues
- Add/Delete/List queues
/roles
- Get/Set whether queue members are assigned a role named In queue: ...
/schedule
- Add/Delete/List scheduled commands
/shuffle
- Shuffle a queue
/size
- Get/Set size limit of a queue
/target
- Get/Set voice queue target channels
/timestamps
- Get/Set whether to display timestamps next to users
/to-me
- Pull user(s) from a voice queue to you and display their name(s)
/whitelist
- Add/Delete/List/Clear users or roles from a queue whitelist
Bot Management
/mode
- Get/Set display mode
/notifications
- Get/Set notification status (on = DM users when they are pulled out. off = no DMS)
/permission
- Add/Delete/List/Clear users and roles with bot permissions
/priority
- Add/Delete/List/Clear users and roles with queue priority
/start
- Add the bot to a voice queue
CREATE DATABASE queue;
config/config.json
(see the configuration section below).cmd
, and hit enter).
npm ci
npm i -g npm@7
npm run build
npm start
CLIENT_ID
with your own client id:npm install pm2 -g
pm2 start build/bot.js --time
pm2 stop bot
Require fields must be set before starting the bot.
REQUIRED Config Fields | Description | Default | Required? |
---|---|---|---|
clientId | Bot clientId. Found in the Discord Developer Portal for the bot you created in Step 1 | Y | |
token | Bot token. Found in the Discord Developer Portal for the bot you created in Step 1. (See image of token location below this table) | Y | |
databasePassword | Database login password | Y | |
color | The color of bot messages | N | |
databaseUsername | Database login username | postgres |
N |
databaseName | Database name | queue |
N |
databaseHost | Database host url | localhost |
N |
databaseType | Type of database for queue storage | postgresql |
N |
gracePeriod | Default number of seconds a user can leave the queue without being removed | 0 |
N |
permissionsRegexp | What server roles can use bot commands. Uses RegExp. Accepts "mod" and "mods" by default | N | |
topGgToken | Token for updating top.gg server count. This should be left blank | N | |
announcementChannelId | Channel to send announcements about bot patches | N |
Token location in Discord Developer Portal
A docker-compose definition file is provided in the root directory which will prepare a postgresql instance for bot development.
To create a postgres instance open a terminal instance to the root directory of this repository and run
docker-compose up
To configure this bot for the docker-composed instance of postgres simply alter config.json values for databaseUsername
and databasePassword
to docker
while keeping the repository defaults for the other database configuration values.
Note - The token
configuration must still be set based on your own discord bot token obtained through the setup instructions.
To clean up the docker-composed postgres instance open a terminal instance to the root directory of this repository and run
docker-compose down