Command reference
Every slash command the bot registers. Options marked with * are required. "Needs" is what the handler checks, not just what Discord shows in its menu. Commands that need a server cannot be used in DMs.
This page is written by hand from the command definitions in internal/commands/*/public. If you change a command, update it here and in /help (internal/commands/help/help.go). The Features page explains the behaviour behind them.
Fun
Anyone can use these. /rps, /rpsstats and /rpsleaderboard work in servers only.
| Command |
Options |
What it does |
/ping |
|
Replies "Pong!" |
/joke |
type |
A random joke, optionally of a type |
/coinflip |
|
Heads or tails |
/dice |
expr* |
Rolls a dice expression: d20, 2d20+1, 2#d20+1 |
/rps |
hand* |
Rock paper scissors against the bot |
/rpsstats |
|
Your rock-paper-scissors record |
/rpsleaderboard |
|
The server's leaderboard |
Help
| Command |
What it does |
/help |
DMs you a command reference, or shows it to you in the channel if DMs are off |
Leveling
| Command |
Options |
Needs |
What it does |
/slvl toggle |
|
Manage Server |
Turns leveling on or off |
/slvl set |
user, level |
Manage Server, leveling on |
Sets a member's level |
/slvl set-channel |
channel* |
Manage Server, leveling on |
Where level-up messages go |
/slvl set-message |
message* |
Manage Server, leveling on |
The level-up message. Variables: {user}, {level} |
/slvl set-reward |
level, role |
Manage Server, leveling on |
Role granted at a level |
/slvl remove-reward |
level* |
Manage Server, leveling on |
Removes a level's role reward |
/slvl status |
|
Manage Server |
Shows the leveling settings |
/rank |
user |
Leveling on |
A rank card for you or another member |
/leaderboard |
|
Leveling on |
Top 10 in the server |
/rewards |
|
Leveling on |
The role rewards |
Music
| Command |
Options |
Needs |
What it does |
/play |
query* |
DJ role |
Plays a song by name or URL |
/queue |
|
DJ role |
Shows the queue |
/volume |
value* (0 to 150) |
DJ role |
Sets the volume |
/music toggle |
|
Manage Server |
Turns music on or off in this server |
/music skip |
|
DJ role |
Skips the current song |
/music pause, /music resume |
|
DJ role |
Pauses or resumes |
/music stop |
|
DJ role |
Stops and clears the queue |
/music repeat |
mode* (off, song, queue) |
DJ role |
Repeats the song, the queue, or nothing |
/music remove |
position* (its number in /queue) |
DJ role |
Removes a queued song |
/music move |
from, to |
DJ role |
Moves a queued song |
Requires Lavalink. See Getting started.
Meeting rooms
Every subcommand needs Manage Server and works in servers only.
| Command |
Options |
What it does |
/meeting add-lobby |
channel* (voice) |
Makes a voice channel a lobby (up to 10 per server) |
/meeting remove-lobby |
channel* (voice) |
Stops using it as a lobby |
/meeting lobbies |
|
Lists the lobbies |
/meeting lock |
|
Locks the room you are in |
/meeting lock-private |
|
Locks it and hides it |
/meeting unlock |
|
Unlocks it |
/meeting invite |
user* |
Lets a user into a locked room |
/meeting uninvite |
user* |
Removes that access |
Moderation
Each subcommand checks the Discord permission in its "Needs" column.
| Command |
Options |
Needs |
What it does |
/moderation purge |
amount* (1 to 100) |
Manage Messages |
Deletes recent messages in the channel |
/moderation timeout |
user, duration (10m, 1h, 2h30m, up to 28d), reason |
Moderate Members |
Times a member out |
/moderation untimeout |
user*, reason |
Moderate Members |
Removes a timeout |
/moderation kick |
user*, reason |
Kick Members |
Kicks a member |
/moderation ban |
user*, delete_days (0 to 7), reason |
Ban Members |
Bans a member |
/moderation unban |
user_id*, reason |
Ban Members |
Unbans by ID |
/moderation slowmode |
channel, seconds (0 to 21600) |
Manage Channels |
Sets slowmode, 0 turns it off |
/moderation bans |
|
Ban Members |
Lists banned users, with their IDs |
/moderation timeouts |
|
Moderate Members |
Lists members who are timed out now |
Timezone and scheduling
Anyone can use these.
| Command |
Options |
What it does |
/timezone set |
zone* (IANA name, such as Europe/Lisbon) |
Saves your timezone |
/timezone show |
|
Shows it |
/schedule create |
|
Opens a form (date, time, description) to request a session with a member |
/schedule list |
|
Your upcoming sessions |
/schedule reschedule |
id* (from /schedule list), datetime* (UTC, 2006-01-02 15:04) |
Proposes a new time |
Projects
| Command |
Needs |
What it does |
/projects list |
|
Active projects with creators and helpers |
/projects create |
Manage Server |
Opens a form to create a project |
/projects add-helper |
Manage Server |
Adds a helper to a project |
/projects close |
Manage Server |
Closes a project |
Server setup (/config)
Every subcommand needs Manage Server.
| Command |
Options |
What it does |
/config setwelcomechannel |
channel* |
Where welcome messages go |
/config setwelcomemessage |
message* |
Welcome template. {user} is a mention, {server} the server name |
/config setwelcomedm |
message* |
The welcome DM template |
/config setwelcomegif |
url* |
Image or GIF for the welcome embed |
/config setdefaultrole |
role* |
Role given on join |
/config setlogchannel |
channel* |
Where logs go |
/config enablelogging |
|
Turns logging on |
/config disablelogging |
|
Turns it off |
/config view |
|
Shows the welcome, default role, logging and Twitch settings |
/config clear |
setting* (welcome-channel, welcome-message, welcome-dm, welcome-gif, default-role, log-channel) |
Clears one |
/config toggletwitch |
enabled* |
Turns Twitch live notifications on or off |
/config streamers |
|
Lists the watched streamers |
/config beta-features |
enabled |
Lets testers use beta features here. Only the server owner can change it. Leave out enabled to see the state |
/config addstreamer |
username* |
Adds a Twitch streamer to watch |
/config removestreamer |
username* |
Removes one |
/config settwitchnotificationchannel |
channel* |
Where live alerts go |
Tickets
| Command |
Options |
Needs |
What it does |
/tickets setup |
channel*, log-channel, staff-role |
Manage Server |
Where tickets open and where closed ones are logged. staff-role creates a Support category if there are none yet |
/tickets category add |
name*, staff-role, emoji, description |
Manage Server |
Adds a category to the panel's dropdown |
/tickets category remove |
name* |
Manage Server |
Removes a category |
/tickets category list |
|
Manage Server |
Lists categories |
/tickets category edit |
name*, new-name, staff-role, clear-staff-role, emoji, description |
Manage Server |
Changes a category (- removes the emoji or description) |
/tickets panel |
|
Manage Server |
Posts the panel, or updates it after changing categories |
/tickets settings |
enabled, panel-title, panel-description, max-open |
Manage Server |
Shows the settings, or changes the ones you give |
/tickets list |
status (open or closed) |
Manage Server |
Lists recent tickets |
/ticket add |
user* |
The opener or staff |
Adds someone to the ticket |
/ticket remove |
user* |
Staff |
Removes someone |
/ticket claim |
|
Staff |
Takes the ticket |
/ticket close |
reason |
The opener or staff |
Closes it and posts a transcript |
Security
All of these are hidden from members without Manage Server (and /lockdown from those without Manage Channels), but hiding is not the check. The handlers check again, and some need the server owner or someone on the trusted list whatever Discord permissions a person has.
In this table "Manage Server" also lets Administrators and trusted members through.
| Command |
Options |
Needs |
What it does |
/security status |
|
Manage Server |
What is on, and who is trusted |
/security toggle |
feature* (Join Gate, Raid mode, Anti-nuke, Heat), on* |
Manage Server to turn on; owner or trusted to turn off |
Turns a protection on or off |
/security alerts |
channel*, role |
Owner or trusted |
Alert channel and the role to ping |
/security quarantine-role |
role |
Owner or trusted |
Role given to quarantined members (empty for none) |
/security trust add |
user or role |
Owner only |
Exempts a user or role from anti-nuke |
/security trust remove |
user or role |
Owner only |
Removes that exemption |
/security quarantined |
|
Manage Server |
Lists quarantined members |
/security release |
user* |
Owner or trusted |
Releases a member and gives their roles back |
/security end-raid |
|
Owner or trusted |
Ends raid mode now |
/security settings |
|
Manage Server |
Shows every setting |
/security history |
|
Manage Server |
Shows the latest security events |
/security joingate check |
check* (no-avatar, new-account, invite-in-name, blocked-names, unverified-bot, unauthorized-bot), action* |
Owner or trusted |
What happens when a check catches a new member |
/security joingate account-age |
days* (1 to 365) |
Owner or trusted |
How old an account must be |
/security words add, remove |
list* (username or chat), word* |
Owner or trusted |
Blocked words for new members' names (Join Gate) or messages (heat) |
/security words list |
list* |
Manage Server |
Shows a list |
/security raid |
join-count, join-seconds, action, pause-invites, quiet-minutes |
Owner or trusted |
Tunes raid mode |
/security antinuke set |
window-seconds, lock-server, auto-restore |
Owner or trusted |
Tunes anti-nuke |
/security antinuke limit |
action, count (0 to 100) |
Owner or trusted |
How many times someone may do an action in the window (0: never) |
/security heat |
strictness, action, timeout-minutes, escalate, panic-members, mention-lockdown |
Owner or trusted |
Tunes the spam heat system |
/security alert-dms |
on* |
Owner or trusted |
DM critical alerts to the owner and trusted users |
/security snapshot |
|
Manage Server |
Saves roles and channels |
/security restore |
|
Owner or trusted |
Recreates deleted roles and channels from the latest snapshot |
/lockdown channel |
channel (default: this one) |
Manage Channels |
Locks a channel |
/lockdown server |
|
Manage Channels |
Locks every channel |
/lockdown joins |
action* (Kick or Ban) |
Manage Channels |
Kicks or bans new members until unlocked |
/unlock channel |
channel |
Owner or trusted |
Unlocks a channel |
/unlock server |
|
Owner or trusted |
Unlocks every channel |
/unlock joins |
|
Owner or trusted |
Lets people join again |
Beta
| Command |
Needs |
What it does |
/beta status |
The bot's owner, in a DM with the bot |
Shows how beta access is set up |
/beta set |
The bot's owner, in a DM |
server-id* and role-id*: chooses the beta server and the Beta Tester role |
/beta off |
The bot's owner, in a DM |
Turns beta features off for everyone |
/beta servers |
The bot's owner, in a DM |
Lists the servers that opted in |
/beta remove-server |
The bot's owner, in a DM |
server-id*: takes a server out of the beta |
/beta is registered globally but only works in a direct message with the bot, so it is in no server's menu. A server opts itself in with /config beta-features (its owner). Other beta commands appear only in the beta server and in servers that opted in, and only testers can run them. See Beta features.