Getting Started
MidnightBot is a feature-rich Discord bot that helps you manage your server with welcome messages, button roles, temporary voice channels, AI chat, and much more.
Adding the Bot to Your Server
- Click the Add to Server button on the landing page.
- Select the server you want to add MidnightBot to.
- Review the required permissions and authorize the bot.
- The bot will join your server — you're ready to go!
Using Commands
MidnightBot uses slash commands. Type / in any text channel to see
all available commands for your permission level. Commands marked with
Admin require the configured admin role.
Commands marked with Premium require
an active premium subscription.
Use /help to see all user commands and /help_admin for admin-only commands.
Manage Channels, Manage Roles, Send Messages,
and Embed Links. You can review and adjust these in your server's
integration settings.
Dashboard
The web dashboard lets you configure MidnightBot settings per-server through a clean graphical interface. Sign in with your Discord account to get started. Open the dashboard anytime with /dashboard.
Accessing the Dashboard
- Click Sign in in the top-right corner of any page.
- Authorize MidnightBot to access your Discord account.
- After logging in, click your avatar and select Dashboard.
- Choose a server from the list where you have admin permissions.
Dashboard Tabs
The dashboard has 11 configuration tabs for each server:
| Tab | Settings |
|---|---|
| General | Admin role — which role can use admin commands |
| Welcome / Farewell | Welcome channel and goodbye channel selection |
| AI Premium | AI mode, trigger mode (default/custom), trigger word, custom prompt, API keys, daily message limit, cooldown |
| Tickets Premium | Notification channel, support role assignment |
| Panel Premium | Channel panel customization — button labels, title, description for temp channels |
| Info Channels | Auto-updating voice channels: member count, online count, new member count |
| Temp Channels | Mother channel — the voice channel that spawns temporary channels |
| Games | Free games notification channel, ping role for game alerts |
| Streamers | Add or remove watched Discord users for live stream notifications |
| Message Limits | Add or remove users with restricted daily message limits |
| Button Roles | View configured role buttons. Use /button_role to add interactive role buttons to messages. |
Free Features
All features below are available completely free. No premium subscription required.
Welcome & Goodbye Messages
Automatically greet new members when they join your server and say goodbye when they leave.
Configuration
- Set a dedicated welcome channel in the dashboard where join messages appear.
- Set a dedicated farewell channel in the dashboard where leave messages appear.
- Messages are rich embeds that include the member's avatar, join date, member count, and account age.
Note: Welcome and goodbye messages use a fixed embed template.
Custom message text and placeholders (like {user}) are not supported.
Configure the channel selection in the Welcome / Farewell dashboard tab.
Button Roles
Set up interactive role buttons that let members self-assign (or remove) roles with a single click. You can also set a role to be automatically assigned when a member joins the server — configure this in the General dashboard tab.
How It Works
Use /button_role to add a role button to an existing bot message. When a member clicks the button, the role is toggled on or off. This works great for notification roles, game preferences, or pronoun selection.
Related Commands
/button_role Admin
Adds an interactive role button to an existing message. Parameters: name (button label), message_id (target message), role (role to toggle), and optional color (GREEN/RED/BLUE/GRAY).
Free Games
Automatic notifications about free game giveaways sourced from Reddit.
How It Works
MidnightBot monitors relevant subreddits for free game promotions. When a new free game deal is found, the bot sends a notification to your designated channel with the game title, link, and platform information.
Setup
- Go to your server's Games dashboard tab.
- Select a notification channel and optionally a ping role.
- The bot will begin posting new deals as they appear.
Related Commands
/check_games Admin
Manually triggers a free games check. Useful for testing or forcing an immediate scan.
Reminders
Set personal reminders for specific dates and times. The bot sends you a DM when the reminder is due. All reminder commands are flat commands — not subcommands.
Slash Commands
/reminder
Creates a new reminder. Parameters:
title— short name for the reminder (max 35 characters)text— description of what to be reminded about (max 255 characters)date— optional, in DD, MM-DD, or YYYY-MM-DD formattime— optional, in HH:mm formatdaily— optional, set to true for a daily recurring remindermonthly— optional, set to true for a monthly recurring reminder
/reminder_list
Shows all your active reminders with their IDs.
/reminder_edit
Edits an existing reminder by its title. You can change the date or time.
/reminder_remove
Deletes a specific reminder by its title.
Game Invitations
Create game invitations to quickly gather friends for multiplayer sessions.
Slash Command
/letsplay
Creates a game invitation with the following options:
game— the name of the game you want to playslots— how many players can join (including you)
How It Works
When you use /letsplay, the bot posts an interactive message. Other members can click a button to join your game session. The invitation tracks who has joined and shows remaining spots.
Temporary Voice Channels
Automatic voice channel creation: when a user joins a designated mother channel, a new temporary voice channel is created just for them. The channel is automatically deleted when empty.
Setup
- Create a voice channel in your server — this will be the mother channel.
- In the dashboard, go to Temp Channels settings.
- Select the mother channel from the dropdown.
- Optionally configure:
- Temp channel name — channels are named after the user (e.g. 🎧 ⟩ username)
Behavior
- A user joins the mother channel → a new temporary voice channel is created.
- The user is automatically moved into the new channel.
- A control panel message is sent to the new voice channel with management buttons (lock, rename, user limit, invite).
- When the temporary channel becomes empty → it is deleted after a short delay.
Message Limits (Babysitter)
Restrict how many messages specific users can send per day. Useful for managing overly active or spammy members without banning them.
How It Works
When a user is added to the babysitter list with a daily limit, the bot tracks their message count. Once they reach their limit, the bot deletes any further messages they send for the rest of the day. The counter resets daily.
Slash Commands
/babysitter Admin
Adds a user to the message limits list. Options:
user— the member to limitlimit— maximum messages per day
/babysitter_limit Admin
Changes the daily message limit for a user already on the list.
/babysitter_remove Admin
Removes a user from the message limits list, restoring normal permissions.
/babysitter_list Admin
Shows all users currently subject to message limits and their daily caps.
Stream Notifications
Get automatic notifications when your watched Discord users start streaming.
How It Works
The bot monitors Discord presence updates in real time. When a watched user starts streaming, MidnightBot sends a notification to a configured channel with the stream title, game, and a link to watch.
Slash Commands
/streamer Admin
Adds a Discord user to the watch list. Parameters: streamer (the Discord user to watch) and channel (where to send notifications).
/remove_streamer Admin
Removes a user from the watch list, stopping notifications for that user.
Dashboard Setup
Use the Streamers dashboard tab to manage watched streamers and configure the notification channel.
Lucky Draw
Run random giveaways where members enter a draw and a winner is randomly selected.
How It Works
An admin creates a lucky draw with /luckydraw and a description text. Members enter by clicking the Join button on the draw message. When the admin runs /luckydraw_start, the bot randomly picks a winner from all participants and announces the result.
Slash Commands
/luckydraw Admin
Creates a new lucky draw with a custom description. Requires Administrator permission.
/luckydraw_start Admin
Picks a random winner from the active lucky draw. Requires Administrator permission.
Voice Channel Invites
Quickly invite members to join your voice channel without copy-pasting channel links.
Slash Commands
/invite_user
Sends a DM invite to a specific user, asking them to join your voice channel.
/invite_button Admin
Sends a message with an interactive button that shows a user selection menu. Anyone can click the button, pick a user from the list, and an invite is sent to that user to join your voice channel. Works like the channel panel's invite button.
Features Premium
The following features require a premium subscription. Check your status with /premium. See the Pricing page for details.
AI Chat Premium
An AI assistant that responds to messages in a designated channel, powered by the DeepSeek API.
Setup
- Get a DeepSeek API key from the DeepSeek Platform.
- Go to your server's dashboard, open the AI tab.
- Select the channel where the bot should respond.
- Enter your DeepSeek API key (stored encrypted).
- Configure AI behavior:
- Mode — choose the AI personality (Sarcastic or Formal)
- Trigger mode —
default(AI responds to every message) orcustom(AI only responds when the message starts with the configured trigger word) - Trigger word — the word that triggers AI responses in custom trigger mode (e.g.
!ask) - Custom prompt — give the AI specific instructions or context
- Daily limit — cap messages per user per day
- Cooldown — seconds between AI responses
- Add a server description so the AI gives context-aware answers.
How It Works
When a user sends a message in the designated AI channel, the bot:
- Sends the message (with conversation history) to the DeepSeek API.
- The API returns a response matching the configured personality and prompt.
- The bot posts the response in the same channel.
Trigger mode behavior: In default mode, the AI responds to
every message in the designated channel. In custom mode, the AI only responds
when the message starts with the configured trigger word (e.g. !ask).
Configure this in the AI dashboard tab.
Channel Panel Premium
An interactive panel that lets users manage their temporary voice channel with buttons — no commands needed.
Available Controls
- Invite — select a user to invite to your channel
- Lock / Unlock — prevent or allow other users to join
- Change name — rename the channel (up to 4 renames)
- User limit — set the maximum number of members (0–99)
Setup
Configure the panel in the Panel dashboard tab. You can customize the button labels, title, description, and footer text that appear in the panel message sent to each temporary voice channel.
How It Works
When a temporary voice channel is created (see Temporary Channels), the bot sends a panel message directly into the voice channel. The channel owner can click these buttons to manage their voice channel. On non-premium servers, a locked preview of the panel is shown instead.
Ticket System Premium
A professional support ticket system with automatic channel creation and role-based access control.
How It Works
- A user clicks the Create Ticket button (generated by /ticket_generator) to open a ticket.
- A private text channel is created automatically under the same category.
- Only the ticket creator and the configured support role can see the channel.
- When the issue is resolved, the ticket can be cancelled — the channel is deleted.
Setup
- In the dashboard, go to the Tickets tab.
- Ticket channels are created in the same category as the button message.
- Assign support roles — users with these roles can see and manage tickets.
- Optionally configure the notification channel.
Related Commands
/ticket_generator Admin Premium
Sends a ticket creation button message to the current channel. Users click it to open a new support ticket.
Manage Channels permission in the ticket category so it can
create and delete channels.
All Slash Commands
Complete reference of all MidnightBot slash commands. Type /
in Discord to browse available commands for your permission level.
General Commands
Available to all server members:
| Command | Description |
|---|---|
| /help | List all user features and commands available to you |
| /coinflip | Flip a coin — randomly returns heads or tails |
| /dashboard | Get a link to the web dashboard |
| /premium | Check your premium subscription status |
| /invite_user | Invite a user to your current voice channel |
| /letsplay | Create a game invite — params: game, slots |
| /reminder | Set a new personal reminder |
| /reminder_list | List all your active reminders |
| /reminder_edit | Edit an existing reminder by its title |
| /reminder_remove | Delete a specific reminder by its title |
Admin Commands Admin
Require the configured admin role in your server:
| Command | Description |
|---|---|
| /help_admin | List all admin-only commands |
| /button_role | Send interactive role assignment buttons to a channel |
| /simple_embed | Send a rich embed message to a channel |
| /check_games | Manually trigger a free games check |
| /invite_button | Send a button that lets anyone pick a user to invite to your voice channel |
| /babysitter | Add a user to message limits — params: user, limit |
| /babysitter_limit | Change the daily message limit for a user |
| /babysitter_remove | Remove a user from message limits |
| /babysitter_list | List all users with message limits |
| /streamer | Watch a Discord user for streaming — params: streamer, channel |
| /remove_streamer | Stop watching a Discord user for streaming |
| /luckydraw_start | Pick a random winner from the active lucky draw |
| /luckydraw | Create a lucky draw — params: description |
| /clear | Delete 1–30 messages from the current channel |
| /lock | Lock the current channel — only admins can send messages |
| /unlock | Unlock the current channel — restore sending for everyone |
Premium Commands Premium
Require both an active premium subscription and the admin role (or Administrator permission):
| Command | Description |
|---|---|
| /ticket_generator | Send a ticket creation button message to the current channel |