Plugins

Custom Commands

Premium
Your own !commands with text or embed responses, placeholders and per-command activation.

Define your own prefixed commands. A member types !rules, Cloudy answers with whatever you configured — plain text or a full embed.

LicensePremium
Prefix!
NeedsView Channel, Send Messages

Fields

Command name

1–32 characters · required

What comes after the !. Lowercase letters, digits, dash and underscore only. discord-rules is valid; Discord Rules is not.

Names are unique per server. The name cannot be changed afterwards — to rename a command, delete it and create it again.

Description

Up to 200 characters · optional

What the command is for. Shown in the dashboard list — it is documentation for your staff, not something members see.

Response type

text or embed · default text

TypeResultLength limit
TextA plain message2000 characters — Discord's message limit
EmbedA structured card4096 characters in the description
Switching an existing 3000-character embed response to text mode is rejected on save, because the bot could not send it. Trim it first.

Response content

Text mode · 1–2000 characters · required

The answer itself. Supports Markdown and these placeholders:

PlaceholderBecomes
{user}Username of whoever ran the command (plain text, no ping)
{user.mention}A mention of whoever ran the command
{user.name}Their display name on the server
{user.id}Their user id
{server}Server name
{server.memberCount}Current member count

Unknown placeholders are left in the text as written.

Embed

Embed mode

In embed mode the response is built with the full embed builder — title, description, colour, images, fields and footer. The description is capped at 4096 characters and the same placeholders work in every embed field, with one difference: inside an embed {user} is a mention, not the plain username.

An empty colour inherits the server embed colour.

Active

Default true

Off means the bot ignores the command but the definition is kept. Better than deleting when you only want to retire something temporarily.

What custom commands are good for

  • Canned answers. !ip, !rules, !socials, !support — anything staff types more than twice a week.
  • Onboarding. !start pointing at the channels a newcomer should read.
  • In-jokes. Cheap, harmless, and the reason most servers enable this plugin.

What they are not good for: anything conditional. A custom command always answers the same thing to everyone. If you need "only for role X" or "only in channel Y", use Automations triggered on a sent message instead.

Behaviour notes

  • The prefix is ! and is not configurable.
  • Matching is case-insensitive (!Rules triggers rules), and anything typed after the command word is ignored. Cloudy answers as a reply to the member's message.
  • A response can ping users and roles, but never @everyone or @here — those are always sent as plain text.
  • Commands are per server; names cannot collide with each other but may shadow another bot's ! commands — pick names that are unlikely to clash.
  • Messages from bots are ignored, so two bots cannot trigger each other.
  • Changes apply immediately; there is no registration delay because these are not Discord slash commands.
  • Each member can trigger the same command at most once every 5 seconds — a response that mentions a role cannot be turned into a ping spammer.