Donut Bot Donut Bot Documentation
Commands

Commands

Every slash command, its arguments, required permissions and a usage example.

Moderation

/ban

Ban Members
Args user: User, reason: String, delete-days: Integer (0-7, optional)
/ban @spammer Repeated scam DMs delete-days:7
Permanently bans a user from the server. Optional message-history purge between 0 and 7 days. Discord requires the bot to have the **Ban Members** permission and the executor to have a higher role than the target.

/kick

Kick Members
Args user: User, reason: String (optional)
/kick @troll Reason: Disruptive behaviour
Kicks the user from the server. They can rejoin with a valid invite.

/mute

Moderate Members
Args user: User, duration: String (e.g. 10m, 2h, 1d), reason: String (optional)
/mute @spammer duration:1h reason:Spam
Timeouts (Discord's native *Moderate Members* feature). Maximum duration is 28 days. The command accepts human-readable strings: `30s`, `10m`, `2h`, `1d`.

/unmute

Moderate Members
Args user: User, reason: String (optional)
/unmute @user
Removes an active timeout from a user.

/warn

Manage Messages
Args user: User, reason: String
/warn @user reason:Inappropriate language
Adds a warning to a user's moderation record. Warnings are visible to staff in the dashboard under **Moderation → Log**.

/warnings

Manage Messages
Args user: User
/warnings @user
Lists all warnings for the given user, including the moderator, reason and timestamp.

/clear-warnings

Manage Messages
Args user: User
/clear-warnings @user
Removes every warning from a user's record. The action is logged.

/purge

Manage Messages
Args amount: Integer (1-100), user: User (optional)
/purge amount:50 user:@spammer
Bulk-deletes messages. Defaults to the last 100 messages in the current channel. If `user` is provided, only messages authored by that user are deleted.

/slowmode

Manage Channels
Args seconds: Integer (0-21600)
/slowmode seconds:5
Sets the channel slow-mode in seconds. `0` disables it.

/lock

Manage Channels
Args channel: Channel (optional, defaults to current)
/lock
Locks a channel by removing the `@everyone` *Send Messages* permission. The bot records the previous state so `/unlock` restores it.

/unlock

Manage Channels
Args channel: Channel (optional)
/unlock
Restores the channel's previous *Send Messages* permission for `@everyone`.

Utility

/userinfo

None
Args user: User (optional)
/userinfo user:@member
Shows account age, join date, roles, highest role and warning count for a user.

/serverinfo

None
Args —
/serverinfo
Displays server stats: member count, online count, channel breakdown, boost level, creation date and verification level.

/avatar

None
Args user: User (optional)
/avatar @user
Sends the user's global and server avatar at full resolution with a download link.

/roleinfo

None
Args role: Role
/roleinfo role:@Member
Displays member count, colour, hoist status, mentionable state and position of a role.

/channelinfo

None
Args channel: Channel (optional)
/channelinfo
Lists channel ID, type, topic, position, slow-mode and NSFW setting.

/invites

None
Args user: User (optional)
/invites @user
Shows how many members a user has invited, the valid invite codes they used and how many are still redeemable.

/ping

None
Args —
/ping
Returns the bot's gateway and REST latency in milliseconds.

Levels

/rank

None
Args user: User (optional)
/rank
Shows the user's current level, XP, progress to the next level and server rank.

/leaderboard

None
Args scope: Choice (server | global)
/leaderboard scope:global
Top 10 users by XP. `scope:global` aggregates XP across every server using Donut Bot.

/setxp

Administrator
Args user: User, amount: Integer
/setxp @user amount:5000
Sets a user's XP to an exact value. Useful for corrections or events.

/addxp

Administrator
Args user: User, amount: Integer
/addxp @user amount:500
Adds XP to a user without overwriting their existing total.

/resetlevel

Administrator
Args user: User
/resetlevel @user
Resets a user's XP and level for the current server.

Counting

/countsetup

Manage Channels
Args channel: Channel, mode: Choice (linear | custom), min-step: Integer (optional)
/countsetup channel:#counting mode:custom min-step:1
Configures a counting channel. *Linear* counts up by 1 every message. *Custom* lets users pick the step.

/countreset

Manage Messages
Args channel: Channel
/countreset channel:#counting
Resets the counter to 0 (linear) or to the configured minimum (custom).

/countstats

None
Args channel: Channel (optional)
/countstats
Displays the current count, fails, highest streak and last contributor.

Tickets

/ticket-setup

Administrator
Args category: Channel, log-channel: Channel, support-role: Role
/ticket-setup category:#tickets log-channel:#ticket-logs support-role:@Support
Initialises the ticket system. Creates a panel message that members click to open a ticket.

/ticket-add

Manage Channels
Args user: User
/ticket-add @helper
Adds a user to the current ticket channel.

/ticket-remove

Manage Channels
Args user: User
/ticket-remove @user
Removes a user from the current ticket and revokes their view permission.

/ticket-close

Manage Channels
Args reason: String (optional)
/ticket-close reason:Resolved
Closes the current ticket, archives the transcript to the log channel and deletes the channel.

/ticket-rename

Manage Channels
Args name: String
/ticket-rename name:billing-question
Renames the current ticket channel.

Community

/welcome-setup

Administrator
Args channel: Channel, message: String, role: Role (optional)
/welcome-setup channel:#welcome message:Welcome {user} to {server}!
Configures the welcome message. Placeholders: `{user}`, `{username}`, `{server}`, `{membercount}`.

/farewell-setup

Administrator
Args channel: Channel, message: String
/farewell-setup channel:#goodbye message:{username} just left.
Same placeholders as `/welcome-setup`, fired when a member leaves.

/joinrole-setup

Administrator
Args role: Role, delay: Integer (seconds, optional)
/joinrole-setup role:@Member delay:30
Auto-assigns the role to every new member. Optional delay helps pass anti-raid checks.

/poll

None
Args question: String, options: String (comma-separated, 2-10)
/poll question:Pizza tonight? options:Yes,No,Maybe
Creates a reaction-poll message. Each option becomes a clickable reaction.

Configuration

/settings

Administrator
Args key: String, value: String
/settings key:language value:DE
Edits a server setting from chat. Full list of keys available in **Settings** in the dashboard.

/setlog

Administrator
Args event: Choice (mod|joins|leaves|tickets|economy), channel: Channel
/setlog event:mod channel:#mod-log
Routes a log category to a channel. Available events: `mod`, `joins`, `leaves`, `tickets`, `economy`, `games`, `level`, `ai`.

/toggle

Administrator
Args module: Choice (counting|welcome|farewell|games|ai|economy)
/toggle module:games
Toggles a whole module on or off without losing its configuration.

/donutbot

None
Args —
/donutbot
Shows bot info: uptime, version, shard, server count and a link to this documentation.