Variable Reference
These are some advanced variables that you will be able to use within Custom Commands and Auto Replies! This allows you to make your creations more advanced, and gives you the chance to explore many different possibilities with Circle!
These emojis are used in Circle's default replies. You can use them in custom replies, too!
Circle Logo: <:circle:962300635770945606>
Circle Premium Logo: <:premium:991756570050441308>
Check Mark: <:circleCheck:597928247455514624>
X Mark: <:circleX:597927874854387752>
The user is the person who invoked the bot to reply.
{user}: Responds with the users mention.
Example: @Flatbird
You can also use {user.mention} as an alias! When using argument variables, you must use {N.user.mention}.
{user.tag}: Responds with the users tag.
Example: Flatbird#0001
{user.username}: Responds with the users username.
Example: Flatbird
{user.discriminator}: Responds with the users discriminator.
Example: 0001
You can also use {user.discrim} as an alias!
{user.id}: Responds with the users ID.
Example: 282586181856657409
{user.nickname}: Responds with the users nickname. If none is set, it will respond with "Nothing".
Example: Conor™
You can also use {user.nick} as an alias!
{user.avatar}: Responds with the users avatar URL.
Example: https://cdn.discordapp.com/avatars/497196352866877441/24d24970bc39861e1920150de0cd85a4.png
You can also use {user.avatarURL} as an alias, or {user.staticAvatarURL} to always get a static version of the avatar (even if it's a GIF).
{user.joinedAt}: Responds with a formatted version of when the user joined your server.
Example: Thu, Aug 29, 2019 5:56 PM
{user.createdAt}: Responds with a formatted version of when the user created their account.
Example: Sat, Feb 18, 2017 6:56 PM
{user.premiumSince}: Responds with a formatted version of when the user started boosting your server.
Example: not yet
The channel is the channel that the bot was invoked in.
{channel}: Responds with the channels mention.
Example: #commands
You can also use {channel.mention} as an alias! When using argument variables, you must use {N.channel.mention}.
{channel.name}: Responds with the channels name.
Example: commands
{channel.id}: Responds with the channels ID.
Example: 681689241469976642
{channel.position}: Responds with the channels position (according to Discord) in your channel list.
Example: 69
{channel.type}: Responds with the type of the channel (in number form).
Example: 1
{channel.typeName}: Responds with the type of the channel (in text form).
Example: category, text, voice, news, store
{channel.parentName}: Responds with the name of the category that the channel is apart of (if none, it will not display anything).
Example: Community
{channel.parentID}: Responds with the ID of the category that the channel is apart of (if none, it will not display anything).
Example: 567944505173606400
{channel.createdAt}: Responds with a formatted version of when the channel was created
Example: Tue, Feb 25, 2020 2:29 AM
The following variables will not work for categories or voice channels!
{channel.topic}: Responds with the channels topic.
Example: Run Circle commands here!
{channel.rateLimitPerUser}: Responds with the current slowmode of the channel (in seconds).
Example: 420 seconds
The following variables will ONLY work for voice channels!
{channel.bitrate}: Responds with the bitrate of the channel.
Example: 64000
{channel.userLimit}: Responds with the user limit of the channel.
Example: 99
You cannot use argument variables with server variables.
{server}: Responds with the servers name.
Example: Circle Support
You can also use {server.name} as an alias!
{server.id}: Responds with the servers ID.
Example: 369305238030778378
{server.icon}: Responds with the servers icon URL.
Example: https://cdn.discordapp.com/icons/369305238030778378/efc0bad2ee8fc66d3be38fff2936c3e5.png
You can also use {server.iconURL} as an alias!
{server.banner}: Responds with the servers banner URL.
Example: https://cdn.discordapp.com/banners/369305238030778378/3e6a20f130088a32e1d58ff55fc688d1.png
You can also use {server.bannerURL} as an alias!
{server.splash}: Responds with the servers splash URL.
Example: https://cdn.discordapp.com/splashes/369305238030778378/22a247f1fb95c2459af464d9e2d6553a.png
You can also use {server.splashURL} as an alias!
{server.prefix}: Responds with the prefix of the server.
Example: c!
{server.shard}: Responds with the shard ID of the server.
Example: 18
{server.memberCount}: Responds with the servers membercount.
Example: 69420
{server.description}: Responds with the servers description .
Example: The official support server for Circle.
{server.defaultNotifications}: Responds with the servers default notifications settings.
Example: All Messages, @Mentions Only
{server.owner}: Responds with the tag of the server owner.
Example: Flatbird#0001
{server.ownerID}: Responds with the ID of the server owner.
Example: 282586181856657409
{server.premiumSubscriptionCount}: Responds with the amount of users boosting the server.
Example: 5
You can also use {server.boosterCount} as an alias!
{server.premiumTier}: Responds with the Nitro boost level of the server.
Example: 3
You can also use {server.boosterLevel} as an alias!
{server.joinedAt}: Responds with a formatted version of when Circle joined your server.
Example: Sun, Sep 8, 2019 3:04 AM
{server.createdAt}: Responds with a formatted version of when the server was created.
Example: Mon, Oct 16, 2017 2:07 AM
{server.maxEmojis}: Responds with the amount of emojis lots the server has.
Example: 100
{time} - Short date and time: March 8, 2022 9:41 AM
{time:f} - Short date and time: March 8, 2022 9:41 AM
{time:F} - Long date time: Tuesday, March 8, 2022 9:41 AM
{time:d} - Short date: 03/08/2022
{time:D} - Long date: March 8, 2022
{time:t} - Short time: 9:41 AM
{time:T} - Long time: 9:41:14 AM
{time:R} - Relative time: X minutes ago
The {react} variable allows you to make Circle react to a Custom Command response with the chosen emoji!
The {react} variable is currently limited to Custom Commands only. You can have a maximum of 3 reactions.
{react:unicodeEmoji} - React to the response with a default Discord emoji. (ex: 😄)
{react:customEmojiID} - React to the response with one of your servers custom emojis!
To react with a default Discord emoji, you need to get the unicode version of the emoji first. To do this, type the emoji into your chat box, and then put a \ before it (for example, \:smile:), and then send the message. Copy the unicode emoji and put it into your react variable (for example, {react:😄}).
To react with a custom emoji, you can use the name or ID of the emoji. If you choose to use the name of the emoji, please note that if you ever change the name of the emoji you'll need to edit the Custom Command to match the new name. To get the ID of a custom emoji, you need to type the emoji into your chat box, and then put a \ before it (for example, \:circle:), and then send the message. Copy the emoji ID and put it into your react variable (for example, {react:962300635770945606}).
You can only make Circle react with your servers custom emojis!
An "argument" refers to simply a word inside of your command message. Each word after the command name is called an "argument".
For example purposes, we'll use c!hi Hi Circle as the command. In this command, "Hi" would be the first argument and "Circle" would be the second argument. Circle parses arguments as {N}, where "N" is the argument number. So, to get the first argument, you can use {1}. For example, using {1} in this command would output "Hi" because "Hi" is our first argument, remember? Then of course, {2} in this command would output "Circle" because "Circle" is our second argument.
Circle also allows you to specify users or channels to parse when using argument variables. You need to simply tell Circle whether you're trying to resolve a user or a channel (which is all explained below).
When using arguments, Circle will need to understand what you are trying to parse when you are using arguments with regular variables. For example, instead of doing {user.username}, you would do {1.user.username}. Or instead of {channel.name}, you would do {1.channel.name}
For example purposes, we'll use c!view @Circle #general as the command, where the response is:
Circle would output the following response in your channel:
This is because Circle will resolve @Circle (which is {1} in your command) as "Circle" (because that is her username), and Circle will resolve #general (which is {2} in your command) as "general" (because that is the channels name).
Joining an argument is easy to do and allows you to easily output all arguments that a user provides without typing out each and every one.
Joining an argument works by simply putting a + after the argument number inside of the argument variable, and then Circle will join all arguments after the argument you chose to join.
For example purposes, we'll use c!hello I'm Circle, the best bot ever! as the command. If we used {2+} here, Circle will start joining arguments on the 2nd argument, "Circle", therefore the {2+} argument will output "Circle, the best bot ever!". Then {3+} would output "the best bot ever!", and so on.
Here's an example command below, and it will explain each part of what the command will do.
Command Name: c!give
Command Response:
Command Usage: c!give Flatbird presents and hugs
The {1} represents the first argument, "Flatbird", in the command message.
The {2+} variable represents the second argument and all arguments after it ("presents and hugs") in the command message. If you used just {2}, however, it would simply represent the second argument on it's own, "presents".
Circle allows you to run any default command in your Custom Commands. To use a command, simply add the command in brackets like so: {c!<command> <arguments>}
If you wanted to run the kick command for example: {c!kick {1+}}
This will perform the kick command with the arguments you provided.
Command variables will bypass the command permissions for the command that you use, even if they're not meant to be able to use it. This is because Circle will ignore these permissions and only listen for your Custom Command permissions instead.
You can only use a max of five command variables per Custom Command. You cannot execute Custom Commands with command variables.
Circle Emojis
These emojis are used in Circle's default replies. You can use them in custom replies, too!
Circle Logo: <:circle:962300635770945606>
Circle Premium Logo: <:premium:991756570050441308>
Check Mark: <:circleCheck:597928247455514624>
X Mark: <:circleX:597927874854387752>
User Variables
The user is the person who invoked the bot to reply.
{user}: Responds with the users mention.
Example: @Flatbird
You can also use {user.mention} as an alias! When using argument variables, you must use {N.user.mention}.
{user.tag}: Responds with the users tag.
Example: Flatbird#0001
{user.username}: Responds with the users username.
Example: Flatbird
{user.discriminator}: Responds with the users discriminator.
Example: 0001
You can also use {user.discrim} as an alias!
{user.id}: Responds with the users ID.
Example: 282586181856657409
{user.nickname}: Responds with the users nickname. If none is set, it will respond with "Nothing".
Example: Conor™
You can also use {user.nick} as an alias!
{user.avatar}: Responds with the users avatar URL.
Example: https://cdn.discordapp.com/avatars/497196352866877441/24d24970bc39861e1920150de0cd85a4.png
You can also use {user.avatarURL} as an alias, or {user.staticAvatarURL} to always get a static version of the avatar (even if it's a GIF).
{user.joinedAt}: Responds with a formatted version of when the user joined your server.
Example: Thu, Aug 29, 2019 5:56 PM
{user.createdAt}: Responds with a formatted version of when the user created their account.
Example: Sat, Feb 18, 2017 6:56 PM
{user.premiumSince}: Responds with a formatted version of when the user started boosting your server.
Example: not yet
Channel Variables
The channel is the channel that the bot was invoked in.
{channel}: Responds with the channels mention.
Example: #commands
You can also use {channel.mention} as an alias! When using argument variables, you must use {N.channel.mention}.
{channel.name}: Responds with the channels name.
Example: commands
{channel.id}: Responds with the channels ID.
Example: 681689241469976642
{channel.position}: Responds with the channels position (according to Discord) in your channel list.
Example: 69
{channel.type}: Responds with the type of the channel (in number form).
Example: 1
{channel.typeName}: Responds with the type of the channel (in text form).
Example: category, text, voice, news, store
{channel.parentName}: Responds with the name of the category that the channel is apart of (if none, it will not display anything).
Example: Community
{channel.parentID}: Responds with the ID of the category that the channel is apart of (if none, it will not display anything).
Example: 567944505173606400
{channel.createdAt}: Responds with a formatted version of when the channel was created
Example: Tue, Feb 25, 2020 2:29 AM
The following variables will not work for categories or voice channels!
{channel.topic}: Responds with the channels topic.
Example: Run Circle commands here!
{channel.rateLimitPerUser}: Responds with the current slowmode of the channel (in seconds).
Example: 420 seconds
The following variables will ONLY work for voice channels!
{channel.bitrate}: Responds with the bitrate of the channel.
Example: 64000
{channel.userLimit}: Responds with the user limit of the channel.
Example: 99
Server Variables
You cannot use argument variables with server variables.
{server}: Responds with the servers name.
Example: Circle Support
You can also use {server.name} as an alias!
{server.id}: Responds with the servers ID.
Example: 369305238030778378
{server.icon}: Responds with the servers icon URL.
Example: https://cdn.discordapp.com/icons/369305238030778378/efc0bad2ee8fc66d3be38fff2936c3e5.png
You can also use {server.iconURL} as an alias!
{server.banner}: Responds with the servers banner URL.
Example: https://cdn.discordapp.com/banners/369305238030778378/3e6a20f130088a32e1d58ff55fc688d1.png
You can also use {server.bannerURL} as an alias!
{server.splash}: Responds with the servers splash URL.
Example: https://cdn.discordapp.com/splashes/369305238030778378/22a247f1fb95c2459af464d9e2d6553a.png
You can also use {server.splashURL} as an alias!
{server.prefix}: Responds with the prefix of the server.
Example: c!
{server.shard}: Responds with the shard ID of the server.
Example: 18
{server.memberCount}: Responds with the servers membercount.
Example: 69420
{server.description}: Responds with the servers description .
Example: The official support server for Circle.
{server.defaultNotifications}: Responds with the servers default notifications settings.
Example: All Messages, @Mentions Only
{server.owner}: Responds with the tag of the server owner.
Example: Flatbird#0001
{server.ownerID}: Responds with the ID of the server owner.
Example: 282586181856657409
{server.premiumSubscriptionCount}: Responds with the amount of users boosting the server.
Example: 5
You can also use {server.boosterCount} as an alias!
{server.premiumTier}: Responds with the Nitro boost level of the server.
Example: 3
You can also use {server.boosterLevel} as an alias!
{server.joinedAt}: Responds with a formatted version of when Circle joined your server.
Example: Sun, Sep 8, 2019 3:04 AM
{server.createdAt}: Responds with a formatted version of when the server was created.
Example: Mon, Oct 16, 2017 2:07 AM
{server.maxEmojis}: Responds with the amount of emojis lots the server has.
Example: 100
Time Variables
{time} - Short date and time: March 8, 2022 9:41 AM
{time:f} - Short date and time: March 8, 2022 9:41 AM
{time:F} - Long date time: Tuesday, March 8, 2022 9:41 AM
{time:d} - Short date: 03/08/2022
{time:D} - Long date: March 8, 2022
{time:t} - Short time: 9:41 AM
{time:T} - Long time: 9:41:14 AM
{time:R} - Relative time: X minutes ago
Reaction Variables
The {react} variable allows you to make Circle react to a Custom Command response with the chosen emoji!
The {react} variable is currently limited to Custom Commands only. You can have a maximum of 3 reactions.
{react:unicodeEmoji} - React to the response with a default Discord emoji. (ex: 😄)
{react:customEmojiID} - React to the response with one of your servers custom emojis!
To react with a default Discord emoji, you need to get the unicode version of the emoji first. To do this, type the emoji into your chat box, and then put a \ before it (for example, \:smile:), and then send the message. Copy the unicode emoji and put it into your react variable (for example, {react:😄}).
To react with a custom emoji, you can use the name or ID of the emoji. If you choose to use the name of the emoji, please note that if you ever change the name of the emoji you'll need to edit the Custom Command to match the new name. To get the ID of a custom emoji, you need to type the emoji into your chat box, and then put a \ before it (for example, \:circle:), and then send the message. Copy the emoji ID and put it into your react variable (for example, {react:962300635770945606}).
You can only make Circle react with your servers custom emojis!
Argument Variables
An "argument" refers to simply a word inside of your command message. Each word after the command name is called an "argument".
For example purposes, we'll use c!hi Hi Circle as the command. In this command, "Hi" would be the first argument and "Circle" would be the second argument. Circle parses arguments as {N}, where "N" is the argument number. So, to get the first argument, you can use {1}. For example, using {1} in this command would output "Hi" because "Hi" is our first argument, remember? Then of course, {2} in this command would output "Circle" because "Circle" is our second argument.
Using user and channel argument variables
Circle also allows you to specify users or channels to parse when using argument variables. You need to simply tell Circle whether you're trying to resolve a user or a channel (which is all explained below).
When using arguments, Circle will need to understand what you are trying to parse when you are using arguments with regular variables. For example, instead of doing {user.username}, you would do {1.user.username}. Or instead of {channel.name}, you would do {1.channel.name}
For example purposes, we'll use c!view @Circle #general as the command, where the response is:
{1.user.username}
{2.channel.name}
Circle would output the following response in your channel:
Circle
general
This is because Circle will resolve @Circle (which is {1} in your command) as "Circle" (because that is her username), and Circle will resolve #general (which is {2} in your command) as "general" (because that is the channels name).
Joining arguments
Joining an argument is easy to do and allows you to easily output all arguments that a user provides without typing out each and every one.
Joining an argument works by simply putting a + after the argument number inside of the argument variable, and then Circle will join all arguments after the argument you chose to join.
For example purposes, we'll use c!hello I'm Circle, the best bot ever! as the command. If we used {2+} here, Circle will start joining arguments on the 2nd argument, "Circle", therefore the {2+} argument will output "Circle, the best bot ever!". Then {3+} would output "the best bot ever!", and so on.
Example
Here's an example command below, and it will explain each part of what the command will do.
Command Name: c!give
Command Response:
You gave {1} a {2+}! How generous.
Command Usage: c!give Flatbird presents and hugs
The {1} represents the first argument, "Flatbird", in the command message.
The {2+} variable represents the second argument and all arguments after it ("presents and hugs") in the command message. If you used just {2}, however, it would simply represent the second argument on it's own, "presents".
Command Variables
Circle allows you to run any default command in your Custom Commands. To use a command, simply add the command in brackets like so: {c!<command> <arguments>}
If you wanted to run the kick command for example: {c!kick {1+}}
This will perform the kick command with the arguments you provided.
Command variables will bypass the command permissions for the command that you use, even if they're not meant to be able to use it. This is because Circle will ignore these permissions and only listen for your Custom Command permissions instead.
You can only use a max of five command variables per Custom Command. You cannot execute Custom Commands with command variables.
Updated on: 26/03/2023
Thank you!