how commands work.

prefix, slash, aliases, and the rules every command follows.

the comma prefix

prefix commands begin with the server’s configured prefix. a new server uses a comma, with no space before the command: ,help, not , help. command names are case-insensitive, but arguments such as a reason are passed through to the command that uses them.

,help
,ban @member raiding
,avatar @member
prefix controls
commandwhat it doesneeds
/prefixshow the current server prefixanyone
/prefix set [prefix]set a 1–12 character server prefixadministrator
/prefix self [prefix]restore the server prefix to its default valueadministrator

a prefix cannot contain whitespace or @. despite its name, the current prefix self implementation does not keep a separate per-user prefix: it removes the server’s stored override, restoring the default comma. use prefix set when the whole server needs another prefix.

slash equivalents

most registered commands also have an application-command path. discord supplies typed fields for slash arguments, while the prefix form reads one text line. the command reference is the authority for the actual path: grouped commands may move under a root, so ,avatar is /utility avatar, and ,setup is /config setup.

,avatar @member
/utility avatar member: @member

,config view
/config view

both forms reach the same handler and permission checks. a command marked prefix only is deliberately omitted from discord’s slash tree, usually because its grammar is free-form or cannot be represented safely as slash fields. never assume that adding / to a prefix path produces its slash path; check ,help instead.

reading a usage line

usage lines describe shape, not characters to type. omit the brackets themselves. prefix arguments are split on whitespace; double quotes keep several words together. apostrophes in ordinary text are left alone.

::<member>
required. the command refuses to run when this value is missing.
::[member]
optional. leaving it out makes the command use its documented default.
::<reason>
required free text. enter the words, not the angle brackets.
::[category or command]
one optional value chosen according to the words in the label.
::"multi-word value"
double quotes preserve one argument when a command expects a single name.
,help moderation
,restrictcommand add "config view" @staff
,ban @member repeated invite spam

members, durations, and amounts

member arguments accept a discord mention, a numeric user id, or one exact username or display name from the server. names that match more than one member are rejected as ambiguous; an id or mention resolves that. some ban commands can fetch an account by id even after it has left, but ordinary member arguments only resolve members of the current server.

durations are joined number-and-unit pairs. supported units are s, m, h, d, and w; combinations such as 1d12h work. the general parser allows at most one year, while individual commands can impose a smaller cap. amounts shown as integers must be whole numbers. command-specific minimums and maximums still apply.

,timeout 123456789012345678 2h repeated spam
,mute @member 1d12h
,purge all 25
warningnames must be unambiguous

if two members share a display name, havoc will not guess. use a mention or numeric id. role and channel arguments follow the same exact-name-or-id rule.

aliases

an alias is another prefix name registered for the same command. for example, ,av resolves to ,avatar, ,si resolves to ,serverinfo, and ,userinfo resolves to ,user. aliases do not create alternate slash paths; use the slash path reported by help. restrictions are canonicalized too, so restricting an alias gates its underlying command.

utility aliases
commandwhat it doesneeds
/avatar / avshow avatar informationanyone
/serverinfo / sishow server informationanyone
/user / userinfoshow member informationanyone
/embed create / createembedsend a validated json embedmanage messages
/embed edit / editembededit one of havoc’s embedsmanage messages

asking the registry

,help lists categories. give it a category to see that group, or a command to see its usage, aliases, permission requirement, and slash path. this data comes from the running command registry, so it is more reliable than remembering an old example.

,help
,help utility
,help restrictcommand

slash help is private to the invoker. prefix help is a normal channel reply. if a command is absent, confirm its exact name and category before treating the problem as a permission failure. the troubleshooting guide covers missing application commands separately.

gating commands to roles

discord permissions remain the first safety layer. restrictcommand adds a second rule: a member must hold one of the roles attached to that command. quote a multi-word command path in prefix form. a restriction on a parent path also applies to its subcommands.

command restriction controls
commandwhat it doesneeds
/restrictcommand add <command> <role>allow the command only for the named rolemanage server
/restrictcommand remove <command> <role>remove one role from that command gatemanage server
/restrictcommand listshow all stored command restrictionsmanage server
/restrictcommand resetdelete every command restriction in the servermanage server
dangerreset removes every gate

,restrictcommand reset clears the entire restrictions namespace, not one command. members still need each command’s discord permission, but role-only gates disappear immediately.