Custom commands
Define your own server-specific commands with arguments, variables, logic, and actions.Custom commands let you define your own prefix commands for a single server. They can take arguments, resolve variables, branch on conditions, render embeds and components, run moderation/economy/database actions, and be locked down per user, role, channel, or Discord permission.
Every
;cc subcommand requires the Manage Server permission.Notation used in these docs
Argument declarations use the same notation literally:
;cc set greet (member) [message...] -- ... really is typed with those brackets. Angle brackets — <member> — are still accepted as a legacy alias. See Syntax and separators.How invocation works
Custom commands run off your server prefix (default;). They are not registered as slash commands.
When someone types a name that doesn’t match any built-in command, raze looks it up in your server’s custom commands and runs it if it exists and is enabled.
Execution order
Knowing the order explains almost every “why didn’t that work” question:1
Directives and cooldown
Output directives are read from the saved script and stripped. If
{cooldown:} is set and the member is still on it, nothing else happens. See Output controls.2
Restrictions
Deny list, then allow list, then required permissions. See Restrictions.
3
Arguments
The text after the command name is split into your declared arguments. A missing required argument stops execution here.
4
Action permission check
If the script contains actions, the invoker must hold the mapped permission — unless a user/role allow entry covers them.
5
Fallbacks
{key|fallback} is resolved against argument and context values.6
Variables
Argument, command, user, server, date, economy, and moderator variables are substituted. Random tags resolve here too.
7
Text transforms and conditionals
{upper(...)} and friends run, then {if} / {elseif} / {else} / {endif} blocks are collapsed.8
Database tags
Inline
{db.*} tags read and write stored data.9
Actions
{mod:...}, {econ:...}, and {customdb:...} lines execute and are stripped from the output.10
Render
What’s left is parsed into content, embeds, components, or pages.
11
Deliver
The message goes to the invocation channel, or wherever
{respond:} / {dm} point it. Reactions, attachments, threads, and role tags are applied, the trigger is deleted if {delete} asked for it, and the cooldown is stamped.Limits by tier
The number of custom commands one server can save depends on the donator tier:
The limit is only checked when you create a new command — updating an existing one is always allowed.
Check or raise your tier with
;upgrade or ;premium.
Premium beta: custom commands can be temporarily gated to a minimum tier while the feature is in beta. If it is gated, running a custom command replies with the required tier and the reason instead of executing. Creating and managing commands is unaffected.
Where to go next
Create and preview
Build your first command and dry-run it safely.
Syntax and separators
Naming rules, separators, and argument declarations.
Arguments and variables
Inject user input, metadata, and global placeholders.
Recipes
Copy-pasteable examples that already work.

