Documentation

Everything you need to know about setting up and using MidnightBot features.

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

  1. Click the Add to Server button on the landing page.
  2. Select the server you want to add MidnightBot to.
  3. Review the required permissions and authorize the bot.
  4. 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.

Permissions: The bot requires standard permissions like 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

  1. Click Sign in in the top-right corner of any page.
  2. Authorize MidnightBot to access your Discord account.
  3. After logging in, click your avatar and select Dashboard.
  4. 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.
Important: You must have Manage Server permission in a Discord server to access its dashboard settings. Users without this permission will not see the server in their dashboard list.

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).

Requirement: MidnightBot's role must be higher in the role hierarchy than the roles it manages. Place the MidnightBot role above any roles it needs to assign.

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

  1. Go to your server's Games dashboard tab.
  2. Select a notification channel and optionally a ping role.
  3. 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)
  • dateoptional, in DD, MM-DD, or YYYY-MM-DD format
  • timeoptional, in HH:mm format
  • dailyoptional, set to true for a daily recurring reminder
  • monthlyoptional, 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.

Privacy: Reminders are private. Only you receive the DM notification. Other server members cannot see your reminders.

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 play
  • slots — 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

  1. Create a voice channel in your server — this will be the mother channel.
  2. In the dashboard, go to Temp Channels settings.
  3. Select the mother channel from the dropdown.
  4. 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 limit
  • limit — 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

  1. Get a DeepSeek API key from the DeepSeek Platform.
  2. Go to your server's dashboard, open the AI tab.
  3. Select the channel where the bot should respond.
  4. Enter your DeepSeek API key (stored encrypted).
  5. Configure AI behavior:
    • Mode — choose the AI personality (Sarcastic or Formal)
    • Trigger modedefault (AI responds to every message) or custom (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
  6. 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:

  1. Sends the message (with conversation history) to the DeepSeek API.
  2. The API returns a response matching the configured personality and prompt.
  3. 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.

API Costs: You are responsible for DeepSeek API usage costs. MidnightBot does not include API credits. Usage is billed directly by DeepSeek.

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

  1. A user clicks the Create Ticket button (generated by /ticket_generator) to open a ticket.
  2. A private text channel is created automatically under the same category.
  3. Only the ticket creator and the configured support role can see the channel.
  4. When the issue is resolved, the ticket can be cancelled — the channel is deleted.

Setup

  1. In the dashboard, go to the Tickets tab.
  2. Ticket channels are created in the same category as the button message.
  3. Assign support roles — users with these roles can see and manage tickets.
  4. 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.

Permission Setup: Make sure the MidnightBot role has 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