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-verification or 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 id
  • username: to return the found user's username
  • nickname: to return the found user's nickname in the server
  • name: 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.