Articles on: Plugins

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


  1. Navigate to your server's dashboard.
  2. Select the Custom Commands plugin. If it's not enabled, you'll need to enable it.
  3. Follow the instructions below.




Command Variables


Click here to view the command variables page!


Command variables will bypass user restriction, thus making it able for anybody to use that command regardless of what permissions they have as Circle is looking for the Custom Command call only. You will need to utilize the required roles option to secure your commands when applicable.



Creating a Custom Command


  1. Click the "CREATE NEW" button on the top right.
  2. Complete the prompt that appears. ("Command Name" and "Command Response" are required, all other fields are optional!)
  3. Once you're happy with your Custom Command, scroll down and press "Save".
  4. 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.


When anyone runs c!pong, Circle will reply with PING!!!


BTW: You can only run one custom command every two seconds!


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 user variables 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!mute command. Since our arguments line up exactly with c!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!softban command. 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


This section is completely optional. It gives you the ability to lock certain Custom Commands behind roles or channels in your server. If you choose not to apply any command permissions, all users will be allowed to use your command.


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


This section is completely optional. It just gives you the ability to make it a little easier for your users or staff members to know how to use your Custom Commands.


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.


Circle will ONLY show Custom Command help information to users if they have permissions to use the Custom 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.


  1. Find the command that you want to export.
  2. 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.
  3. 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.
  4. Once you've got your export code, press "Close" to close the pop-up dialog.


Your command export codes will stay active forever, unless you delete the Custom Command.


Easily export a command


Importing a Command


If someone shares a command code with you, you can follow the below instructions to import it into your own server.


  1. Click the "IMPORT" button on the top right and a pop-up dialog will appear.
  2. In the "Custom Command Export Code" box, type or paste the export command that you have.
  3. Click the "Import" at the bottom of the pop-up dialog, and a new pop-up will appear.
  4. 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.
  5. If you're happy with your imported command, you can scroll down and press "Save" to finalise importing the command into your server.


Required/Ignored Roles & Channels will NOT be imported when you import a command from another server. This is because your server will not have the same roles & channels as the server which you imported the command from.


I imported the "test" command from one of my other servers


WARNING: Importing a command from an unknown user/server can be dangerous! Please double check the imported command before adding it to your server, to ensure there are no maliscious commands hidden within the imported command. NEVER, EVER, IMPORT A COMMAND FROM A USER WHO YOU DO NOT KNOW, WHEN YOU HAVE NO IDEA WHAT THE COMMAND DOES!



Want more than 10 custom commands? Check out Circle Premium!

Updated on: 09/11/2025

Was this article helpful?

Share your feedback

Cancel

Thank you!