Custom Commands
Create and manage custom text commands with aliases, cooldowns, response variants, and role-based access control through the dashboard
Overview
Custom commands let you create your own text-triggered commands with custom responses. Navigate to Left sidebar > Custom Commands on your server dashboard to create, edit, and manage commands. Each command has its own prefix, trigger name, response content, aliases, cooldown, and access control settings. You can create up to 100 custom commands per server.
Creating a Command
Click the Create Command button on the Custom Commands dashboard page. Each command requires these basic settings:
name (text input, max 32 characters, required): The trigger word for the command. Only lowercase letters, numbers, and hyphens are allowed.
prefix (text input, max 3 characters, default '!'): The prefix before the command name. For example, with prefix '!' and name 'hello', members type !hello to trigger it.
description (text input, max 180 characters): A short description of what the command does, shown in the command list.
enabled (toggle, default on): Turn the command on or off without deleting it.
matchType (select: exact or starts_with, default 'starts_with'): How the trigger is matched. exact requires the message to match the prefix+name exactly. starts_with triggers when a message starts with the prefix+name, allowing additional text after.
name (text input, max 32 characters, required): The trigger word for the command. Only lowercase letters, numbers, and hyphens are allowed.
prefix (text input, max 3 characters, default '!'): The prefix before the command name. For example, with prefix '!' and name 'hello', members type !hello to trigger it.
description (text input, max 180 characters): A short description of what the command does, shown in the command list.
enabled (toggle, default on): Turn the command on or off without deleting it.
matchType (select: exact or starts_with, default 'starts_with'): How the trigger is matched. exact requires the message to match the prefix+name exactly. starts_with triggers when a message starts with the prefix+name, allowing additional text after.
Response Configuration
Configure what the bot replies with when the command is triggered:
type (select: text, embed, or advanced, default 'text'): The response format.
Text response:
content (text input, max 2000 characters, default 'Hello {mention}!'): The plain text reply message.
textVariants (up to 20 entries, max 2000 characters each): Add multiple response variants. When variants exist, the bot randomly picks one each time the command is used.
Embed response:
title (text input, max 256 characters): The embed title.
description (text area, max 4096 characters): The embed body text.
color (color picker, default '#2f3136'): The embed accent color.
Advanced response:
advancedJson (text area): Raw Discord message JSON for full control over the response payload.
Template variables available in all response types: {user} or {mention} for user mention, {username} for username, {userid} for user ID, {server} or {guild} for server name, {guildid} for guild ID, {channel} for channel name, {channelid} for channel ID, {args} for command arguments, {prefix} for command prefix, {command} for command name.
type (select: text, embed, or advanced, default 'text'): The response format.
Text response:
content (text input, max 2000 characters, default 'Hello {mention}!'): The plain text reply message.
textVariants (up to 20 entries, max 2000 characters each): Add multiple response variants. When variants exist, the bot randomly picks one each time the command is used.
Embed response:
title (text input, max 256 characters): The embed title.
description (text area, max 4096 characters): The embed body text.
color (color picker, default '#2f3136'): The embed accent color.
Advanced response:
advancedJson (text area): Raw Discord message JSON for full control over the response payload.
Template variables available in all response types: {user} or {mention} for user mention, {username} for username, {userid} for user ID, {server} or {guild} for server name, {guildid} for guild ID, {channel} for channel name, {channelid} for channel ID, {args} for command arguments, {prefix} for command prefix, {command} for command name.
Aliases
aliases (multi-input, max 12 aliases, max 32 characters each): Alternative trigger names for the same command. For example, a command named 'rules' could have aliases 'rule' and 'info'. All aliases use the same prefix and response configuration. This lets members find your command even if they don't remember the exact name.
Cooldown
cooldownSeconds (number input, range 0-600, default 2): The minimum time in seconds between uses of this command by the same user. Set to 0 to disable the cooldown. Higher values prevent spam in busy channels. The maximum is 600 seconds (10 minutes).
Behavior Settings
Additional options that control how the command works:
deleteTrigger (toggle, default off): Automatically delete the member's trigger message after the bot responds. Keeps the channel clean.
replyMode (select: reply or channel, default 'channel'): reply sends the response as a Discord reply to the trigger message. channel sends it as a regular message in the same channel.
dispatchChannelId (channel picker): Send the response to a different channel instead of the one where the command was used. Leave empty to respond in the same channel.
args required (toggle, default off): Require the member to provide arguments after the command name. When enabled and no arguments are given, the bot shows the usage text instead of the response.
args usageText (text input, max 300 characters): The usage hint shown when required arguments are missing. For example: '!ticket'.
deleteTrigger (toggle, default off): Automatically delete the member's trigger message after the bot responds. Keeps the channel clean.
replyMode (select: reply or channel, default 'channel'): reply sends the response as a Discord reply to the trigger message. channel sends it as a regular message in the same channel.
dispatchChannelId (channel picker): Send the response to a different channel instead of the one where the command was used. Leave empty to respond in the same channel.
args required (toggle, default off): Require the member to provide arguments after the command name. When enabled and no arguments are given, the bot shows the usage text instead of the response.
args usageText (text input, max 300 characters): The usage hint shown when required arguments are missing. For example: '!ticket
Access Control
Control who can use the command:
allowRoleIds (multi-role picker, max 25 roles): Only members with at least one of these roles can use the command. Leave empty to allow everyone.
denyRoleIds (multi-role picker, max 25 roles): Members with any of these roles are blocked from using the command.
A role cannot appear in both lists — the dashboard shows a validation error if you add the same role to both allow and deny.
allowRoleIds (multi-role picker, max 25 roles): Only members with at least one of these roles can use the command. Leave empty to allow everyone.
denyRoleIds (multi-role picker, max 25 roles): Members with any of these roles are blocked from using the command.
A role cannot appear in both lists — the dashboard shows a validation error if you add the same role to both allow and deny.
Editing and Deleting
Select a command from the list on the Custom Commands dashboard page to edit its settings. All changes are saved when you click Save. The command's triggerKey (prefix + name) is automatically updated.
To delete a command, click the Delete button on the command's settings panel. This permanently removes the command and all its configuration. Deleted commands cannot be recovered.
To delete a command, click the Delete button on the command's settings panel. This permanently removes the command and all its configuration. Deleted commands cannot be recovered.
Limits
System limits for custom commands:
Maximum 100 commands per server.
Command name: 32 characters.
Prefix: 3 characters.
Description: 180 characters.
Aliases: 12 per command, 32 characters each.
Cooldown: 0-600 seconds.
Response content: 2000 characters.
Text variants: 20 per command.
Embed title: 256 characters.
Embed description: 4096 characters.
Usage text: 300 characters.
Allow/deny roles: 25 per list.
Maximum 100 commands per server.
Command name: 32 characters.
Prefix: 3 characters.
Description: 180 characters.
Aliases: 12 per command, 32 characters each.
Cooldown: 0-600 seconds.
Response content: 2000 characters.
Text variants: 20 per command.
Embed title: 256 characters.
Embed description: 4096 characters.
Usage text: 300 characters.
Allow/deny roles: 25 per list.
Tips
Use text variants to add personality — create multiple responses for a single command so the bot's replies feel dynamic. Set a short cooldown of 2-5 seconds on popular commands to prevent spam. Use the {args} variable to create commands that pass user input into the response. Restrict sensitive commands like announcement triggers to staff roles using allowRoleIds. Use the dispatchChannelId to create commands that log actions to a specific channel while being triggered from anywhere.