Skip to content

Custom commands

Static slash responses for rules, FAQ, links, and embeds. Members run /custom run.

Same general idea as YAGPDB custom commands or Tux snippets: fixed text the bot posts on demand. Caelum does not support regex triggers, aliases, or user scripting.

Enable the module with Module active on the dashboard or /custom toggle on.

How members run commands

/custom run name:<name> posts the response in the current channel. The name option autocompletes from commands in this server.

Staff commands

/custom toggle

Turns custom commands on or off for the server.

/custom create

Creates a command with plain text and/or an embed. Optional cooldown, allowed roles, and allowed channels.

/custom edit

Updates an existing command. Pass only the fields you want to change.

/custom delete

Removes a command by name.

/custom list

Lists all custom commands and whether each is enabled.

/custom preview

Shows the response ephemerally (only you see it). Template variables use your user as context.

/custom status

Shows whether the module is on and how many commands exist.

Template variables

Use {token} or {{token}} in message text or embed title/description. Values come from the member who triggered the command, the server, the channel, or the current time.

User

TokenOutput
{user} / {user.mention}Mention (<@id>)
{user.id}Discord user ID
{user.name}Nick, global name, or username
{user.username}Login name
{user.display_name}Global display name
{user.nick}Server nickname (when set)
{user.tag}@username
{user.avatar} / {user.avatar_url}Avatar CDN URL
{user.banner} / {user.banner_url}Banner CDN URL (when set)
{user.bot}yes or no
{user.created_at}Account created (long Discord timestamp)
{user.created_at.relative}Account age (relative)
{user.created_at.short}Account created (short date)
{user.account_age}Human-readable account age
{user.account_age.days}Whole days since account creation
{user.joined_at}Server join date (when known)
{user.joined_at.relative}Join time relative (when known)
{user.role_count}Number of roles
{user.roles}Role mentions (<@&id>)
{user.boosting}yes or no
{user.boost_since}Boost start date (when known)

Server and channel

TokenOutput
{server.name} / {guild.name}Server name
{server.id} / {guild.id}Server ID
{member.count}Approximate member count
{channel.id}Channel ID (slash commands)
{channel.mention}Channel mention
{channel.name}Channel name (when known)

Time (UTC)

TokenOutput
{date}Current date (YYYY-MM-DD)
{time}Current time
{datetime} / {now}Current Discord timestamp (long)
{now.relative}Current time (relative)

If a token has no data in context (for example {member.count} before the bot cached it), the placeholder stays in the message unchanged.

The same variables work in welcome, leave, custom commands, and the embed composer. Leveling uses additional tokens ({level}, {xp}, {rank}) on the leveling settings page.

Limits

  • Command names: 1–32 characters, lowercase letters, digits, _, -
  • Message text up to 2000 characters
  • Embed title up to 256 characters, description up to 4096
  • Cooldown per user: 0–86400 seconds
  • At least one of message text or embed title/description is required

Dashboard presets

The custom commands page includes Quick presets you can click to fill the create form:

Server defaults: rules (typical Discord community rules), welcome pointer, self-assign roles, boost perks.

Caelum defaults: caelum-faq (bot modules, setup, dashboard) and caelum-setup (staff checklist).

Click Use preset, edit channel names and copy for your server, then create.

Event triggers (staff)

In the dashboard, edit a command and set Event trigger to run automatically:

  • Member join — after welcome/leave module messages (if configured)
  • Member leave — includes kicks (GUILD_MEMBER_REMOVE)
  • Server boost — first boost only (premium_since newly set)

One enabled command per trigger per server. Set an event channel, DM delivery, or both. Event commands do not replace the Welcome module for join messages.