Custom Commands
What are Custom Commands?
Circle's Custom Command plugin allows you to be the developer and create just about any command you want; from a simple message response, to multi-channel automation, to bulk-command usage, Circle can do it all.
Getting Started
- Navigate to your server's dashboard.
- Select the
Custom Commandsplugin. If it's not enabled, you'll need to enable it. - Follow the instructions below.

Command Variables
Click here to view the command variables page!
Creating a Custom Command
- Click the "CREATE NEW" button on the top right.
- Complete the prompt that appears. ("Command Name" and "Command Response" are required, all other fields are optional!)
- Once you're happy with your Custom Command, scroll down and press "Save".
- The new Custom Command will now appear in your list of commands. You can press "Edit" to make changes to it, press "Duplicate" to duplicate it, or press "Delete" to delete it.
Custom Commands have varying complexity and difficulty, all will be explained further in this article.

Basic Custom Command
This command will say someone was banned, but not actually ban them.
Name: fakeban
Usage: c!fakeban <@user>
Response:
<:circleCheck:597928247455514624> **{1.user.tag}** has been banned.
Breakdown:
- The first line of this custom command is simply a message response, it's using the
uservariables to get the mentioned user's tag.{1.user.tag}will check to see if the first argument is a user, and if so, will get their tag (aaron#5115).
Complex Custom Command
This command will mute a user, but also softban them from the server to purge their messages.
Name: softmute
Usage: c!softmute <@user> <duration> <reason>
Response:
{c!mute {1+}}
{c!softban {1} {3+}}
<:circleCheck:597928247455514624> **{1.user.tag}** has been softmuted.
Breakdown:
- The first line of this custom command is invoking the
c!mutecommand. Since our arguments line up exactly withc!mute's, we're using the{1+}variable.{1+}is providing every argument after the first argument to the command. - The second line of this custom command is invoking the
c!softbancommand. Unlike the mute command, our arguments don't align perfectly so we need to alienate the first argument, then everything after the third argument. The{1}is specifying the user we wish to softban,{3+}is providing the reason for the softban. We have to ignore the second argument since it's a duration, and not needed in our softban reason. - The third line is simply what Circle will say when the two commands have finished running.
Fields Breakdown
- NAME - The name of the command (you don't need to include your prefix, just type the command name and then you can run it in your server with your prefix, for example:
c!<name>). - RESPONSE CHANNEL - Where Circle should send the response message.
- RESPONSE - The "code" for the custom command. You can even make Circle send an embed, just click the "Edit Embed" button to open the embed editor.
- DELETE RESPONSE AFTER - How long, in seconds, Circle should wait before deleting the response messages. You can keep this box empty if you don't want Circle to automatically delete its response after it has been sent
- # OF REQUIRED ARGUMENTS - How many arguments must be provided in the Custom Command for it to run.
- ALLOW RESPONSE TO MENTION @EVERYONE, @HERE, AND ALL ROLES - This determines if Circle should allow the responses to mention
@everyone,@here, and all roles. If you add an @everyone, @here, or role ping into your response, and do NOT enable this option, Circle will not ping anyone. - REQUIRED CHANNELS/ROLES - The user must either be in one of these channels, or have at least one required role, for the response to fire.
- IGNORED CHANNELS/ROLES - The user cannot be in any of these channels, or have any of the ignored roles, for the response to fire.
- DELETE TRIGGER - This determines if Circle should delete the message that triggered the response.
Command Permissions
Each command has a "Command Permissions" option. You can click on this to expand the panel and reveal additional permission options. You can change these permissions to choose what users can use your command, and in which channels.

To find a better guide on command permissions, it's recommended that you read this guide to make sure that you completely understand how Circle's command permission system works.
Command Information
Each command has a "Command Information" option. You can click on this to expand the panel and reveal some extra options. You can change these options to set a description and/or usages & examples, so that you can run c!help <cmd> on the Custom Command. This is useful if you have a lot of commands, so users or moderators can easily get details about your Custom Command via the help command.
You can edit:
- DESCRIPTION - The description of the command (aka, what the command does, or what it's for)
- USAGES - How users/moderators can use your command. You don't need to add your command prefix or command name in front of any of your usages, Circle will do that for you.
- EXAMPLES - Examples of how users/moderators can use your command. You don't need to add your command prefix or command name in front of any of your usages, Circle will do that for you.
You can also run c!help custom in your server for a full list of Custom Commands in your server. This will list each Custom Command in your server, along with the description for each command.
Enabling/Disabling a Custom Command
Custom Commands are enabled by default, when you first create them. However, if you want to simply disable one temporarily, you don't need to delete it! You can easily disable it so that you can re-enable it later on when you want it to be active again. Follow the below gif to find out how to enable or disable a Custom Command.
When a Custom Command is disabled, the command will no longer work for anyone in your server, until it's re-enabled again.

Importing & Exporting Custom Commands
Circle also allows you to import and export commands. This allows for you to share your commands with other servers! Each command will have an "Export" button next to it, which will generate you an export code whenever you click it. You can then copy this code and share it with another server, or even re-use it yourself in another one of your own servers.
Exporting a Command
Exporting a command is easy! Follow the below instructions to export one of your commands.
- Find the command that you want to export.
- Near the command, you will see an "Export" button. Click that button, and a pop-up dialog will appear, showing you the export code for that command.
- You can press "Copy Code" to copy that code to your clipboard, so you can easily paste it anywhere you want, or share it with another server.
- Once you've got your export code, press "Close" to close the pop-up dialog.

Importing a Command
If someone shares a command code with you, you can follow the below instructions to import it into your own server.
- Click the "IMPORT" button on the top right and a pop-up dialog will appear.
- In the "Custom Command Export Code" box, type or paste the export command that you have.
- Click the "Import" at the bottom of the pop-up dialog, and a new pop-up will appear.
- This second pop-up will allow you to change anything in the command BEFORE you import it. You can make any changes here before the command is imported into your server, or scroll down and press "Cancel" to cancel importing the command.
- If you're happy with your imported command, you can scroll down and press "Save" to finalise importing the command into your server.

Updated on: 09/11/2025
Thank you!