Prefix and slash commands
Why Righteous has two command surfaces, how to change the prefix your server answers to, and the two places the surfaces stop matching.
Righteous answers on two surfaces. A prefix command is a normal message (,help) read by the bot
like any other message in the channel. A slash command is a Discord interaction, picked from the /
menu, with the options filled in for you.
Neither is a lesser version of the other. Every gate is checked identically on both: permissions, fake permissions, cooldowns, role restrictions, per-channel disables and premium tiers all run through the same resolvers whichever surface you used. What differs is coverage: most commands are prefix-only, and that is a Discord limit rather than a choice.
Pick the surface that fits the moment
Slash is the safer instruction
A slash command's name never changes between servers. If you are writing staff instructions, a pinned
message or a support reply, /help is true everywhere and ,help is only true in servers that use
the default ,. Discord also shows you the options as you type them, so nothing is guessed.
Prefix is faster, and it is where the bot is widest
Most of Righteous lives on prefix only. Prefix commands take arguments as plain words, chain into subcommands without a picker, and cover the parts of the bot that never got a slash slot.
Examples on this site use the default
Every command written here with a comma is showing the default prefix, not a fact about your
server. Check yours with ,prefix list.
Know why most commands are prefix-only
Discord caps an application at 100 root slash commands. Not 100 subcommands: 100 top-level
entries in the / menu. Righteous sits close to that ceiling, and going over it does not fail
gracefully: Discord rejects the entire deploy rather than the one command that pushed it over.
That cap is why the slash surface is shaped the way it is. A leaf inside an existing command costs zero root slots, so commands get folded into groups rather than given slots of their own:
| Prefix command | Where it lives on slash |
|---|---|
,reddit, ,twitter, ,tiktok, ,youtube, ,soundcloud | /links |
,donate, ,inviteme, ,botinfo, ,servers | /about |
,play, ,skip, ,queue, ,volume | /music |
,restrict, ,unrestrict | /command restrict, /command unrestrict |
,reroll | /giveaway reroll |
,welcomemessage, ,goodbyemessage, ,boostmessage | /messages |
A handful of commands have no slash form at all, and a handful of slash leaves have no prefix twin. Each command's reference page says which surfaces it has, so that page is the authority rather than this list.
Change what your server answers to
A server holds more than one prefix
Prefixes are stored per server, and a server answers to several at once. Out of the box
Righteous listens for the double comma ,, and the two words jason and righteous, which is why
a brand-new server does not answer to , until somebody sets it.
Set the one your server uses
Syntax
,prefix set <prefix>
Example
,prefix set ,
set replaces the primary prefix and leaves the rest of the list alone. So after
,,prefix set , your server answers to , and still
answers to jason help and righteoushelp.
| Command | What it does | Who can run it |
|---|---|---|
,prefix set <prefix> | Replaces the primary prefix | Manage Server |
,prefix list | Shows every prefix the server accepts | Manage Server |
,prefix reset | Restores the shipped defaults | Manage Server |
,prefix add / remove | Adds or drops an extra prefix | Bot developer only, today |
Changing the prefix does not change the slash commands
/help works whatever your server's prefix is. If you set an unusual prefix and people stop being
able to talk to the bot, the slash menu is the way back.
The word prefixes are the way back in
jason and righteous survive a ,prefix set, so they keep working whatever symbol the server
lands on, which makes them the reliable way in when nobody remembers what the symbol was changed
to. righteous prefix list answers, and
,prefix reset restores the shipped defaults.
Matching is case-insensitive, and a prefix does not need a space after it: righteoushelp and
righteous help both work.
Run your now-playing with no prefix at all
If you have any premium tier, including the free Boosting Premium, you can type <yourname>fm
with no prefix at all and Righteous runs ,np.
Syntax
<yourname>fm
Example
jasonfm
What the trigger is built from
Righteous builds a candidate from three names and accepts any of them: your Discord handle, your
global display name, and your server nickname in this server. Each is lowercased and stripped
of anything that is not a letter, digit or underscore, so Jason ✿ becomes jason and the trigger
is jasonfm.
Three rules decide whether it fires:
- Exact first-word match only.
jasonfmruns it;jasonfmoodoes not. Anything after the trigger is passed to,npas arguments. - A name shorter than two characters is skipped, so a one-letter nickname cannot turn a common word into a live command.
- A trigger that collides with a real command or alias is skipped, so nicknaming yourself something that would shadow the bot does nothing.
Buying your own trigger word
Self Premium adds an arbitrary word on top:
Syntax
,lf cc <trigger | reset>
Example
,lf cc meow
,lf cc is additive, not a replacement. Setting
meow means both meow and <yourname>fm work. ,lf cc reset clears the custom word and your name
trigger keeps working.
Give a command your own name
Server Premium unlocks per-server aliases: a second name for an existing command, optionally with arguments baked in.
Syntax
,alias add <name> <command> [arguments...]
Example
,alias add yeet timeout {0} 1d{0}, {1} and so on are what the caller types. ,yeet @someone then runs ,timeout @someone 1d.
,alias needs Manage Server as well as Server Premium, and
it has add, edit, remove, list, view, search and clear.
An alias is a second name, never a second door. Everything downstream keys on the real
command, so an alias is refused by exactly the code that refuses the command it points at: the same
permissions, the same cooldown, the same restrict and disable rows. A real command always wins a
name collision, and ,alias list marks any row that has
been shadowed that way.
Aliases pause on lapse rather than being deleted
The tier is re-checked on every invocation. If Server Premium lapses, aliases stop firing immediately, but the rows are kept, so they all work again the moment the server is premium again. Nothing is lost.
Understand why a command can appear twice
Discord serves a server the global command set and that server's guild-scoped set side by side, and does not deduplicate them. While both registries hold a command, Discord shows both entries: same name, same description, twice in the picker.
A global slash deploy takes about an hour to propagate. A guild deploy is instant, which is what makes it useful for testing, and the cost of that is doubles in the one server being tested until the global deploy catches up and clears the scoped copy.
This is inherent to how Discord serves the two registries, not a bug in the bot and not something a server can fix from its side. Running either entry does the same thing. If you see doubles, wait for the global deploy to land.
Two places the surfaces stop matching
The gates are shared, but the keys they look things up by come from the prefix side. Two consequences are worth knowing.
A disable row is keyed on the prefix name
,command disable stores the canonical prefix
command name, and the slash path looks up that same name, so disabling a command covers both
surfaces automatically.
Where it stops covering is a command whose slash home is a leaf under a different parent. The key
for a slash leaf is "parent sub", so /giveaway reroll is stored as giveaway reroll, not as
reroll. Disabling ,reroll leaves the slash leaf running.
Syntax
,command disable <#channel|all> <command> [subcommand]
Example
,command disable all giveaway reroll
Note the order: the channel comes first, then the command. all in that slot means every channel,
including channels created later.
A remapped slash sub name cannot be matched
A few commands present a different sub name on slash than on prefix: /lastfm top, /channelmute,
/messages and /serverimage are the current ones. Their two-token keys do not line up, so a
subcommand-level disable or restrict written against the prefix name does not reach the slash leaf.
Disable the parent command instead if you need it off everywhere.
Common issues
The bot ignores ,help but /help works. Your server is not on ,. A brand-new server ships
listening for ,, and the words jason and righteous: try ,,help or jason help. Then run
,,prefix set , once and every example on this site
works verbatim.
Nothing at all answers, on either surface. That is not a prefix problem. Check the bot's View Channel and Send Messages on that channel, and see Access and the whitelist: a server without access keeps the bot but refuses its commands.
,prefix list says "Missing permissions". It needs Manage Server, the same as every other
prefix subcommand. Ask a moderator to run it.
Every command shows up twice in the slash picker. Both Discord command registries hold it. See Understand why a command can appear twice: it clears itself once the global deploy propagates.
<yourname>fm does nothing. It needs a premium tier: boosting the support server is enough, and
free. It also needs your name to survive stripping: a handle made entirely of punctuation or emoji
leaves nothing to build a trigger from. Set a word with
,lf cc if you hold Self Premium.
An alias stopped working overnight. Server Premium lapsed. The rows are still there and start firing again as soon as it is renewed.