V1.4
New
New Owner Command: Reset
Now owner can purge his own server data (user var+channel var+message var+server var) with [prefix]reset command
Who can access this command
Only the server owner
Please use it with caution
New functions: $mentionRole, $mentionChannel
An easy user-friendly way to mention a role or a channel with name or id.
Example
$mentionRole[Member]
$mentionChannel[updates-beta]
New curl: removebutton, removemenu
You can now use {removebutton} and {removemenu} to remove a menu/button while editing a message content with curl
Usage
{removebutton:id} to remove a button with specific id
{removebutton} to remove all buttons
{removemenu:id} to remove a menu with specific id
{removemenu} to remove all menus
Example
$editMessage[
my new content
{removebutton}
]
New function: $removeEmbed
Will help you to remove specific embed from a message or all embeds of a message.
Usage
$removeEmbed[Channel ID;Message ID;Embed Number (or all)]
Example (Remove all embeds of a message)
$removeEmbed[$channelID;$messageID;all]
New debug command
This command is mainly to brief you some basic information, that staff might request such as:
- Cluster
- Tier
- Server ID
- Record of recent executions
you can see it with
[prefix]debug

New function: $numToWord
it will convert the number to it's verbal equivalents i.e 5 to five

New Menu Types
You can use the new menu types supported by discord which are: user, role, mention, channel In addition to the default text type
User Menu Type
This menu, allow the user to pick a user from the server
Role Menu Type
This menu, allow the user to pick a role from the server
Mention Menu Type
This menu, allow the user to pick anything mentionable such as user or channel from the server
Channel Menu Type
This menu, allow the user to pick a channel (or category) from the server
How to set the type
In curl format you can use {type:the menu type} like {type:user}
Example
As shown in the image 
New function: $imageCrop
a new image builder function, where it crop a loaded image.
Usage
$imageCrop[image name;offset x;offset y;width;height]

New Word Trigger Tags like %has_attachment%
other than %all%, a new new useful tags like %has_attachment% were added.
What is a tag?
In word trigger, you can use special word %tag% like %all% to trigger for all messages. now i added a new ones that might be useful sometimes.
Has attachment tag
if you used %has_attachment% tag, the word trigger, will only trigger when a message contains any kind of attachments
automod action tag
if you used %automod_action% tag, it will only trigger for discord automod system message when user is caught
pinned tag
if you used %pin% tag, it will only trigger for pinned discord system message
Thread created tag
if you used %thread_created% tag, it will only trigger for thread created discord system message
has poll tag
if you used %has_poll% tag, it will only trigger when user send a poll
New function: $poll
This function will help you get info about message poll, like question, answers, votes and so on.
You can read about it here
New Trigger: Poll Updates
This new trigger is related to any poll updates like: when poll ends


New Curl: {poll}
This new curl name, will help you send a new poll
Structure
{poll:
{question=poll question}
{duration=poll duration in hours like 24h}
{multiple=can user select multiple answers? (yes/no)}
{answer=Add an anwer}
{emoji=Add an emoji to the previous answer}
{answer=Add an anwer}
{emoji=Add an emoji to the previous answer}
...
}
Example
$sendMessage[
{poll:
{question=What is the biggest country in the world?}
{answer=China}
{emoji=🇨🇳}
{answer=Russia}
{emoji=🇷🇺}
{duration=1h}
{multiple=no}
}
]
Output

New Trigger: Scheduled Event Updates
This new trigger will help you detect some useful actions of events like: when it starts/ends/created/cancelled


New Function: $memberJoinedCode
This function gonna help you know which invite method and code the user used to join the server, it uses member search behind the scene to retrieve the value.
Usage
$memberJoinedCode[User ID;Info Type]
Info Type
You can pick from code, code_url, type, inviter
code and code_url, return the invite code or invite link if exists
type will return the method of joining, it will be usually from
bot-invite, integration, discovery, student-hub, invite-link, invite-link-custom, manual-verificationor unknown
inviter will return the person who invited the user (if exists)
Example
$memberJoinedCode[$userID;code]
Output
XABCDEF
New Function: $securityPause
This function allows you to pause invites/DMs for the server for a period of time (up to you).
Usage
$securityPause[Duration of Pause (i.e 2h);Pause Invite (Yes/No);Pause DM (Yes/No)]
Example (Pause invites for 24 hours)
$securityPause[24h;yes;no]
Example (Pause DMs for 12 hours)
$securityPause[12h;no;yes]
Example (Pause invites and DMs for 24 hours)
$securityPause[24h;yes;yes]
Note: Max Pause Duration is 24h
New Function: $memberSearch
This function allows you, to search for a member if his username/nickname started with a query. it does not rely on cache and instead use discord api.
Usage
$memberSearch[Query;Amount to Return;separator;info to return]
Info To Return:
By default it is id, but you can pick from:
id: to return the found user idusername: to return the found user's usernamenickname: to return the found user's nickname in the servername: to return the found user's display name in the server
You can also use combination of them, like
name (id)
You can know more information about the user with the use of
$user
Amount to Return:
It determines how many users it will return if they match the query, by default it is 1
When multiple user returned, they will merged together with the
separator
Update Function: $user
Added displayname property, that will help you know the user display name if exists
Usage
$user[12345678987654321;displayname]
This is not equal to $displayName, as $displayName take user nickname in your server into account.
New Font for Image Builder
A new font named Minecraft was added to the image builder, this font is useful for game fonts that is a bit pixelated.
Support for Sending V2 Components
Discord added V2 components that enhance the way embeds looks (Check the image).
So added new curl that allow you to shape them when sending a new messsage, here is a example:
?exec $sendMessage[
{container:
{text:Text Inside Container}
{separator}
{gallery:
{image:$userAvatar}
{image:$userAvatar}
}
{row:
{button:BTN1:red::btn1}
{button:BTN2:GREEN::btn2}
}
{menu:
{id=id}
{ph=Menu}
{name=option 1}
{name=option 2}
}
{row:
{button:BTN3:BLUE::BTN3}
}
{text:Another text inside the container}
{section:
{text:A text inside section and thumbnail}
{thumbnail:$userAvatar}
}
{file:file.txt:Whatever}
{color:Green}
{spoiler:yes}
}
]
- container (
{container}) can contain: {color}, {spoiler}, {text}, {section}, {gallery}, {separator}, {file}, {button}, {menu}, {row} - section (
{section}) can contain: {text}, {thumbnail}, {button}, {spoiler} - gallery (
{gallery}) can contain images up to 10 images with {image} - row (
{row}) can contain 5 button or 1 menu - spoiler (
{spoiler}) can be used in some components to mark it as spoiler - separator (
{separator}) with options {separator:divider(yes or no):size(1 or 2)}
Read more about it here

Support Menu in Modal
Usage:
$modal[...
{input:
{type=menu}
{subtitle=a description of the menu}
...support menu curl
}
Example:
$modal[
{title=Application}
{id=modal_id}
{input=
{name=What is your name}
{subtitle=i.e in-game name}
{ph=Man of Culture}
{id=name}
}
{input=
{type=menu}
{name=Which role you want to be in?}
{id=role}
{option=Swordman}
{emoji=:crossed_swords:}
{option=Healer}
{emoji=:mending_heart:}
{option=Tanker}
{emoji=:shield:}
}
]

Support selected option for menus
when sending a menu with curl, you can specify the selected options by default (it will be useful for the modal menu)
Usage:
{menu:
...normal menu structure
{selected=option id}
{selected_user=user id (useful for menu type user or mention)}
{selected_role=role id (useful for menu type role or mention)}
{selected_channel=channel id (useful for menu type channel)}
}
Example:
$sendMessage[
{menu:
{id=menu_id}
{type=user}
{ph=Select the user}
{selected_user=$userID}
}
]
New Function: $forwardMessage
You can now forward a message from a channel to another.
Usage:
$forwardMessage[Source Channel ID;Source Message ID;Target Channel ID;Return Message ID (yes/no)]
Example:
$forwardMessage[$channelID;$messageID;Another Channel]
Support User, Role, Channel, Mentionable Menus in Modal
You can add other types of menus like user selection in the modal
Usage:
$modal[...
{input:
{type=user/role/channel/mention}
{desc=a description of the menu}
{required=yes/no}
{selected=user id/role id/channel id} // for user/role/channel menus
// for mention menu
{selected_user=user id}
{selected_role=role id}
}
Example:
$modal[
{title=Report Application}
{id=modal_id}
{input=
{name=Description}
{ph=i.e description of the report}
{id=desc}
}
{input=
{type=user}
{name=Which user you want to report?}
}
]

Get User equipped clan tag and the server
An update in $user, to allow you to get the equipped clan tag of the user, in addition to the icon and the server where it is originated from.
New options
clantag: get the equipped user clan tag, like TOPclantagicon: get the tag icon clantagserver: get the tag server id
Example
$user[1234567;clantag]

Support Upload File (Attachment) Input for Modal
You can now ask the user to upload a file in the modal
Usage:
$modal[...
{input:
{type=attachment}
{name=The input name}
{id=The input id}
{subtitle=a description for the input}
{required=yes/no}
{min=Min amount of files (1-10)}
{max=Max amount of files (1-10)}
}
Example:
$modal[
{title=Report Application}
{id=modal_id}
{input=
{name=Description}
{ph=i.e description of the report}
{id=desc}
}
{input=
{type=user}
{id=target}
{name=Which user you want to report?}
}
{input=
{id=proof}
{type=attachment}
{name=Upload Picture or Proof if exist}
{required=no}
}
]

Support Checkbox & Radio Group Inputs for Modals
You can now natively add interactive Radio Groups (select one option) and Checkbox Groups (select multiple options) directly inside your modals!
Usage:
$modal[...
{input:
{type=radio/checkbox}
{name=The input name}
{id=The input id}
{subtitle=a description for the input}
{required=yes/no}
{min=Minimum required choices (0-10) [Checkbox only, default: 1]}
{max=Maximum allowed choices (1-10) [Checkbox only, default: all options]}
{option=Option Label 1}
{value=option_value_1}
{option=Option Label 2}
{value=option_value_2}
}
⚠️ Limits: Radio groups require between 2 to 10 options. Checkbox groups require between 1 to 10 options.
Example:
$modal[
{title=Report Application}
{id=modal_id}
{input=
{name=Description}
{ph=i.e description of the report}
{id=desc}
}
{input=
{type=user}
{name=Which user you want to report?}
}
{input=
{type=attachment}
{name=Upload Picture or Proof if exist}
{required=no}
}
{input=
{type=radio}
{id=report_type}
{required=no}
{name=Type of Report}
{subtitle=Specify which type is this report}
{option=Staff Violation}
{value=staff}
{option=Server Rules Violation}
{value=server}
{option=Spam or Fraud}
{value=spam}
}
]
Output For Checkbox

Output For Radio

Update
Function: $getMessage
This function was completely unusable and produce error on use, now it was fixed
New options
Added alias in options:
- userid > author
- description > desc
Function: $findNumbers
added separator input for it, to return all numbers with certain separator
Example
$findNumbers[my name is mido, i'm 999 years old, living in the 1000th floor in heaven building.;, ]
Output
999, 1000
user mention is accepted as input
You can use user mention as acceptable user input for functions such as $giveRoles
Example
$giveRoles[$mention;Role name]
will work as expected
Function: $getCooldownTime
A new input added to the function called command token, it allows you to specify which command cooldown you want to retrieve, instead of the running command
New Usage
$getCooldownTime[time (i.e 5m);type (i.e user);id (i.e 123456);token (i.e xGhkd)]
Change of expressions: Soft comparison
Now in expression, when comparing between two values with == or !=, it will compare it after triming the spaces around the values, if you want to compare without trimming use === or !==.
Example:
A == A (true)
A === A (false)
This change applies for any function that expect expression such as $if, $checkCondition..

New Permissions: sendvc, usesoundboard, sendpolls,...
Added two new permissions to the list:
- sendvc: allow user to send voice message
- usesoundboard: allow user to use sound board
- sendpolls: Allows sending polls
- createexpression: Allows for creating emojis, stickers, and soundboard sounds
- createevent: Allows for creating scheduled events
- viewcreatormonetization: View creator monetization page
- useexternalsounds: Allow use for sounds outside the server
Function Update: $clearCooldown
Added a new optional input: Command Token Allows you to clear another command token instead of the running one
New Usage
$clearCooldown[type;id;token]
Function Update: $mentioned
Mention Number input accept all as input, which means return all mentioned users with , as separator
Example
$mentioned[all]
Output
id1, id2, id3
Function Update: $sendWebhook
Added post name as input, if you would like to create a post inside a forum using the webhook
Example
$sendWebhook[Webhook ID;Webhook Token;Your message content;;;;;Post name]
Function Update: $deleteCommand
Added Delete After input, if you would like to wait a certain amount of time before deleting the message
Example
$deleteCommand[5m]
Function Update: $clear
Added an input to control if you would like to skip deleting pinned messages or not.
Example
$clear[amount;userid;channel;skip pinned messages (yes/no)]
Function Update: $channel, $editChannel, $createChannel
Added rtc region as input to get/set information about voice channel RTC region.
RTC regions
By default it set to auto where discord pick the best region for the vc, but you can specify it to:
auto, brazil, hongkong, india, japan, rotterdam, russia, singapore, southafrica, sydney, us-central, us-east, us-south, us-west
You can find the usage in the functions: $channel, $editChannel, $createChannel
Function Update: $timezone
You can now use UTC+HH:MM or UTC-HH:MM format inside $timezone in case you want a custom timezone offset.
Example
Before: $hour
$timezone[UTC+03:00]
After: $hour

Function Update: $getEmbed
added color_hex property to get the color as hex instead of integer.
Example
$getEmbed[$channelID;12345;color_hex]
Output
#c133ff
Update Function: $nickname
It behaved same as $displayName, so we added new option to control if you would like to return the display name if nickname is not set or not, by default it will return the display name.
Usage
$nickname[User ID;Return Display name if no nickname set (yes/no, default is yes)]
New Curl: {removefields}
This new curl name, will help you to remove field(s) from your embed
Structure
Remove all fields
{removefields}
Remove specific fields
{removefields:field number1:field number2:...}
Example
$editEmbed[$channelID;$messageID;{removefields}]
Update Function: $seq
added a new optional option to set the separator of the returned list of numbers, by default it is space
Usage
$seq[Start;Stop;Step;Separator (default ' ')]
Gradient Color for Role Support
$colorRole and $role functions were updated to support the new gradient colors of the role
Usage:
// modify role color
$colorRole[Role name;Primary Color;Second Color (optional);Third Color (optional)]
// get role color
$role[Role name;primaryColor]
$role[Role name;secondColor]
$role[Role name;ThirdColor]
Example:
$colorRole[Admin;green;red]
$msg update to see the message components
You can see the message components in form of curl property components in $msg
Usage:
$msg[channel ID;message ID;components]
Example:

Renaming `desc` for modal menu
The description of the menu in a modal changed from {desc} to {subtitle}. So it does not conflict with the option's {desc}
the original update, was modified as well to reflect that change.
Get voice channel user limit
You can get the voice channel user limit using limit in $channel it will return 0 when there is no limit.
Example
$channel[1234567;limit]
Improvement to $transcriptChannel
the function will show more details about the embeds and the attachments of a message as of now, the text will be not be rendered in markdown, in the future it will be further beautified.


Emiting Timed events
Now you can use !!emit timed <token> to emit timed events (that was created with $setTimeout or in dashboard)
Fix
Displaying generated image with `{image}` inside `{embed}`
using {image:$imageOutput} inside {embed} is now fixed and should show as usual.
Functions: $objectKeys, $objectKeyExists, $objectLoop, $objectValues
When a key is undefined it breaks the object and return invalid values.
Function: $displayName
when it errors when user has no global name set, it will return display name instead.
Position 0 in $editChannel
Previously setting position to 0 in $editChannel does not set the channel position at top. Now it will work as intended.