Articles on: Guides n' FAQs

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!


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.username}: Responds with the users username.
Example: flatbird

{user.globalName}: Responds with the users display name, or their username if they don't have one set.
Example: Flatbird

{user.tag}: Responds with the users tag.
Example: Flatbird#0001

{user.discriminator}: Responds with the users discriminator.
Example: 0001

Due to Discords new username system, many users will no longer have a discriminator, so the {user.tag} and {user.discriminator} variables will show many users' discriminators as "0". It's not recommended to continue using these variables as they may be removed completely in the future.

{user.id}: Responds with the users ID.
Example: 282586181856657409

{user.nickname}: Responds with the users nickname. If none is set, it'll respond with their display name, or their username if they don't have a display name.
Example: Conorโ„ข

You can also use {user.nick} or {user.displayName} 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 maximum amount of emojis that the server is allowed to have.
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, channel, and role 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 @Developers as the command, where the response is:

{1.user.username}
{2.channel.name}
{3.role.name}


Circle would output the following response in your channel:

Circle
general
Developers


This is because Circle will resolve @Circle (which is {1} in your command) as "Circle" (because that is her username), Circle will resolve #general (which is {2} in your command) as "general" (because that is the channels name), and finally, Circle will resolve the @Developer role mention (which is {3} in your command) as "Developer" (because you mentioned the role ๐Ÿ˜‰)

Role Argument Variables
Role variables are not available outside of using arguments, for example, using {role.name} will not resolve to anything because Circle doesn't know what role it's looking for! Role variables only work in argument variables so {1.role.name} will work.

In this section, replace # with an actual number!
{#.role.name}: Responds with the role's name
Example: Owner
{#.role.color}: Responds with the role's hex color
Example: #66ccff
{#.role.icon}: Responds with the role's icon
Example: https://cdn.discordapp.com/role-icons/954898713149587476/d02e9bbdc9885a979db0fd3745a146b3.png?size=512
{#.role.members} Responds with the number of members that have the role
Example: 69

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: 16/09/2023

Was this article helpful?

Share your feedback

Cancel

Thank you!