Like many Discord bots, ZBot allows you to moderate your server in different ways. You will find the classic commands to delete messages, mute, kick out or ban a member, as well as being able to slow down or freeze a chat completely.

Among the features in preparation you will find the members’ records as well as the possibility of sending warnings, or a section on automatic moderation.


Like most of the features of this bot, the Moderation section is constantly being developed. Feel free to help us by offering suggestions, voting for the best ideas or reporting bugs at our Discord server!


Most of these commands are reserved for certain roles only. To allow roles to use a command, see the config command


Syntax: warn <user> <message>:

This command allows you to warn a member, without really sanctioning them. This member will receive this warning by personal message (if they have not disabled them), and the warning will be stored in his logs.



This section describes the use of the mute system when coupled with a “muted” role. As of Zbot 4.0.3, having a special role is no longer mandatory, and Zbot will use Discord’s “time out” feature when no role has been configured to mute.

If you have a role set to mute but wish to switch to the time out system, you can use the config reset muted_role command.

Syntax: mute <user> [duration] [reason]

This command mutes a member, preventing them from typing.

The principle is to assign the muted role to the member, in order to distinguish them from the others. Simply configure the permissions to have the “send messages” option disabled in your channels. And if configuring the role is too much work for you, you can ask the bot to try to setup it automatically with the mute-config command (see below).

The duration of the tempmute is quite flexible: use XXd for days, XXh for hours and XXm for minutes (replacing XX by the corresponding number, of course!)


The muted role must be placed below the bot role, and the bot must have “Manage roles” (to give the role) permission.


Zbot remembers when a member is muted in your server, and only delete this information when someone uses the !unmute command. So, if a member tries to lose his “muted” role by leaving and joining the server, Zbot will give them back his role, even if you removed it manually (without the command)!

Syntax: unmute <user>

This command unmutes a member, when they already have the muted role. Not necessary when you had specified a duration during the mute, unless you want to stop it prematurely.

Syntax: mute-config

With this command, Zbot will try to configure automatically the muted role (and create it if needed) with the correct permissions, both in your server and in your channels/categories. Basically, in Discord, the rule is “if a member has any role allowing them to do X, then they will be able to do X, no matter what other roles they have”. So Zbot will at first make the muted role disallowing members to send messages in the channels (with the red cross permission), then check every other roles and make sure they don’t allow muted members to send messages (so any green check will become a gray tick in the channels permissions).


Syntax: slowmode <seconds> or slowmode off

Slowmode keeps your text channel quiet when excited people have decided to talk a little too fast. More precisely, it prevents members from posting messages too often. The frequency between two consecutive messages from the same member is indicated in the command.


The system uses a brand new feature released on September 8th in Discord beta. It therefore is a completely new as in very few bots have it) feature and can be highly integrated into your applications. It is even better than just deleting messages.


Syntax: clear <number> [parameters]

This command allows you to efficiently delete messages, with a list of possible parameters for more accuracy. You can thus specify a list of members to check by mentioning them, +i to delete all messages containing files/images, +l for those containing links or Discord invitations, +p for pinned messages. By default, the bot will not delete pinned messages.

Be careful, all specified settings must be validated for the message to be deleted. For example, if you enter clear 10 @Z_runner#7515 +i, the bot will check in the last ten messages if the message comes from Z_runner#7515 AND if the message contains an image.

If you enter clear 25 -p +l, the bot will clear the last 25 messages if they contains a link AND if they’re not pinned, no matter the author.

If you enter clear 13 -p -i @Z_runner#7515, the bot will clear the last 13 messages if they are not pinned AND if they does not contain any file/image AND if the author is Z_runner#7515.

If you enter clear 1000 @Z_runner#7515 @ZBot beta#4940, the bot will delete all messages contained in the last 1000 messages of the channel AND written by Z_runner#7515 OR ZBot beta#4940


The permissions “Manage messages” and “Read messages history” are required.

Syntax: destop <message>

If you don’t know how many messages you want to delete, but instead want to delete all of them until a certain message, you can use this command. The “message” argument can be either a message ID (from the same channel) or a message url (from any channel of your server). Permissions needed for users and bot are the same as the clear command.


Syntax: kick <user> [reason]

The kick allows you to eject a member from your server. This member will receive a personal message from the bot to alert them of his expulsion, with the reason for the kick if it’s specified. It is not possible to cancel a kick. The only way to get a member back is to send them an invitation (see the invite command) via another server.


For the command to succeed, the bot must have “Kick members” permissions and be placed higher than the highest role of that member.


Syntax: softban <user> [reason]

This command allows you to expel a member from your server, such as kick. But in addition, it will delete all messages posted by this member during the last 7 days. This is what explains its name: the bot bans a member by asking Discord to delete the messages (which is not possible with a kick), then unban immediately the member.


For this command, the bot needs “Ban members” permission, and you need to have a role to use the “kick” command


Syntax: ban <user> [duration] [days_to_delete] [reason]

The ban allows you to instantly ban a member from your server. This means that the member will be ejected, and will not be able to return before being unbanned by a moderator. The ‘days_to_delete’ option represents the number of days worth of messages to delete from the user in the guild, bewteen 0 and 7 (0 by default)

The duration of the tempban is the same as for the tempmute: use XXd for days, XXh for hours and XXm for minutes (replacing XX by the corresponding number, of course!)

To cancel this action, use the Discord interface or the unban command. The member will nevertheless have to decide for themselves if he wishes to return to your server.

Syntax: unban <user> [reason]

This command allows you to revoke a ban, whether it was made via this bot or not. Just fill in the exact name or the identifier of the member you wish to be unbanned so that the bot can find the member you choose in the list of banned members for the member in question.

The persons authorized to use this command are the same as for the ban command(see the config command).


For both commands to succeed, the bot must have “Ban members” permissions (as well as be placed higher than the highest role of the member to ban).


Syntax: banlist or mutelist

If you mute and ban so many people that you don’t remember the exact list, and you have the laziness to look in your server options, this command will be happy to refresh your memory without too much effort.

The ‘reasons’ argument allows you to display or not the reasons for the sanction.


Note that this command is only available for your server administrators for banlist and your moderators for mutelist. Ah, and Discord also likes privacy, so the bot can’t read this list if he doesn’t have permission to “ban people”.

Handling cases

View list

Syntax: cases list <user>

If you want to know the list of cases/logs that a member has in this server, you can use this command. Note that to select a member, you must either notify them, retrieve their ID or write their full name.

The persons authorized to use this command are the same as for the warn command.


The list of cases is returned in an embed, which means that the bot must have “Embed Links” permission.

Search for a case

Syntax: cases search <case ID>

This command allows you to search for a case from its identifier. The identifiers are unique for the whole bot, so you can’t see them all. However, the ZBot support team has access to all the cases (without being able to modify them)


The case is returned in an embed, which means that the bot must have “Embed Links” permission to send it correctly.

Edit Reason

Syntax: cases reason <case ID> <new reason>

If you want to edit the reason for a case after creating it, you will need to use this command. Simply retrieve the case ID and enter the new reason. There is no way to go back, so be sure to make no mistake!

The persons authorized to use this command are the same as for the warn command.

Remove case

Syntax: cases (remove|clear|delete) <case ID>

This is the only way to delete a case from the logs for a user. Just to make sure you don’t forget the command name, there are three aliases for the same command.

The locker will be deleted forever, and forever can be very, very long. So be sure you’re not mistaken, there’s no backup!

The persons authorized to use this command are the same as for the warn command.


Not a command, but a server option.

This option allows you to moderate the entry of your server, with several levels of security. Here is the list of levels:

  • 0 (None): no filter

  • 1 (Smooth): kick members with invitations in their nickname

  • 2 (Careful): kick accounts created less than 2 hours before

  • 3 (High): ban members with invitations in their nickname for a week, and kick accounts created less than 12h before

  • 4 ((╯°□°)╯︵ ┻━┻): ban accounts created less than 3 hours before for a week, ban accounts created less than 1h before for 2 weeks, and simply kick those created less than 24h before


Note that the levels are cumulative: level 3 will also have the specificities of levels 1 and 2


The bot must have access to “Kick members” and “Ban members” permissions


How does it work?

Zbot has an advanced scam message detection system, involving a highly trained AI that has been conscientiously built over several months. This allows you to automatically filter and remove any messages that are dangerous to your members, such as Nitro scams or other suspicious links.

When Zbot is certain that a message is dangerous, it will delete the message immediately and send a log to the logs channel if you have configured it. If Zbot detects a “probably dangerous” message, it will not take any action but will send you an alert in this same logs channel. So make sure you have configured an antiscam logs channel if you enable this feature.


Messages that are too short, or sent by moderators (members with “manage messages” or “manage server” permissions) or bots will not be monitored by this system.

List of commands: antiscam enable or antiscam disable to enable/disable the system (require “manage server” permission) modlogs enable antiscam to enable antiscam logs in a channel (require “manage server” permission) antiscam test followed by any text to test how dangerous this text may be antiscam report followed by any text or message link to report a malicious message to the bot team


By enabling this feature, you allow Zbot to read and analyze all messages on your server, and messages considered suspicious may be anonymized and stored in our database for better detection. You are solely responsible for notifying your community of this.

Server logs

To help you moderate your server and keep track of what’s going on, Zbot has a logging system somewhat similar to the Discord one. You can decide to track one or more types of “events” in a channel, and Zbot will send a message there whenever something new happens. For example, it is possible to have a log at every ban or unban, or when a member changes role, etc.


The bot has very few different types of logs at the moment, but there are plans to add many more in the next updates!

How to setup logs

You can enable one or more logs types in a channel by using the modlogs enable <logs> in the channel you want them to appear in. In the same way, use modlogs disable <logs> to disable a kind of logs in the current channel. Please note that you can use the keyword “all” as a log type to enable or disable all at the same time.

To see in Discord which logs exists and which ones you have enabled in your server, use the command modlogs list. You can also use this command followed by a channel mention or ID to see which logs are enabled in a specific channel.

Types of logs

  • antiraid: A new member is kicked or banned by the raid detection system

  • antiscan: A message is flagged as a potential scam by the antiscam AI

  • bot_warnings: Zbot couldn’t do its job due to an external factor (like a missing permission)

  • discord_invite: A member just sent a message containing one or more Discord server invite link

  • ghost_ping: A member deleted a message containing a user mention right after sending it

  • member_avatar: A member changes its guild avatar

  • member_ban: A user is banned from your server

  • member_join: A member joins your server

  • member_kick: A member is kicked from your server

  • member_leave: A member leaves your server

  • member_nick: A member has its nickname changed

  • member_roles: A member gets or loses roles

  • member_timeout: A member is set on timeout by one of your moderators

  • member_unban: A user is unbanned from your server

  • member_verification: A user has been verified by the Discord community rules screen (if enabled in your server)

  • message_update: A message is edited

  • message_delete: A message is deleted

  • role_creation: A role is created

  • ticket_creation: A ticket has been opened


Emoji Manager

With this command, you can become the undisputed master of the Emojis and handle them all as you please. You can even do something that no one has ever done before, a beta exclusivity straight out of the Discord labs: restrict the use of certain emojis to certain roles! YES! It’s possible! Come on, let’s not waste any time, here’s the list of commands currently available :

  • emoji rename <emoji> <new name> : renames your emoji, without going through the Discord interface. No more complicated thing.

  • emoji restrict <emoji> <roles> : restrict the use of an emoji to certain roles. Members who do not have this role will simply not see the emoji in the list. Note that there is no need to mention, just put the identifier or the name.

  • emoji clear <message ID> [emoji] : instantly removes reactions from a message. This message must be indicated via its identifier, and belong to the same chat as the one where the command is used. If no emoji is specified, every reaction will be deleted. The bot must have “Manage Messages” and “Read Message History” permissions.

  • emojis list [page=1] : lists all the server’s emojis (each page has max 50 emojis), in an embed, and indicates if some of them are restricted to certain roles. The bot must have “Embed Links” permission.


The bot needs the Manage Emojis permission to edit these pretty little pictures. And you, you need the “Manage emojis” permission to use these commands.

Role Manager

Nice command that allows you to do different things with the server roles (other subcommands will be created later). The permissions required to execute them depend on the subcommands, ranging from anyone to the administrator. If you have any ideas or other suggestions, feel free to contact us via our Discord server, or in PM at the bot!

  • role color <role> <colour> (alias role colour): Changes the color of the given role. The color must be in hexadecimal form, although some common names are accepted (red, blue, gold…). To remove the color, use the name default. Please check notes 1. and 2.

  • role give <role> <user(s) | role(s)>: Give a role to a list of people. You can target as many users or roles as you want, so for example to target your friends Joe and Jack, plus the Admin role, use role give superRole Joe Jack Admin. Please check note 2. To avoid spamming the Discord API, Zbot also limit how many users you can affect by this command, and will tell you if this limit is reached.

  • role remove <role> <user(s) | role(s)>: Same as above, but instead of giving them, it takes them away. Please check note 2.

  • role list <role>: List every members who are in a specific role, if this number is under 200. The bot must have “Embed Links” permission to display the result. Please check note 2.

  • role server-list: Liste every role of your server, with the members count. The bot must have “Embed Links” permission to display the result. Please check note 2.


  1. The bot need the “Manage roles” permission, also his highest role need to be higher than the role he’s trying to edit.

  2. You need to have the “Manage roles” permission (or be an administrator) to use this command. Else, Zbot won’t react.

Unhoist members

People like to put strange characters in their nicknames to appear at the top of the membership list. With this command you will be able to put an end to this habit. Simply type the command without argument to remove all non-alphabetic characters (a-z A-Z 0-9) at the beginning of the nickname, and you can give your own characters via an argument. Easy, isn’t it?

Syntax: unhoist [characters]


It is necessary that the bot has “Manage nicknames” permission, and that its role is above the roles of the members to be renamed.