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!

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.region}: Responds with the servers region.
Example: us-west

{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

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 preform 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.

Example
Here's a quick example of how to use command variables.

Command Name: c!verify
Command Response:
{c!role {1.user.id} -Unverified, +Verified}
{c!say verification-log -e {user} just verified **{1.user.tag} (`{1.user.id}`)!**}
{1.user.tag} has been verified!

Command Usage: c!verify @Aaaaaron
Was this article helpful?
Cancel
Thank you!