VyroAI

Loading...

When Your Commands Do Not Show Up

The bot is online but has no slash commands, or ignores everything you type — the two different reasons, and the fix for each.

Online is not the same as listening

A green dot next to your bot only means the program is running and logged in. It says nothing about whether Discord knows what your commands are, or whether your bot is allowed to read what people type.

Those are two separate problems with two separate fixes, and which one you have depends on the kind of command you are trying to use.

Two kinds of command

Slash commands have to be registered

Writing a command file is not enough. Your bot sends Discord a list of its commands once, and Discord then shows that list in the / menu. Until that list is sent, the command simply is not there — no error, no log line, nothing.

A JavaScript bot from VyroAI gets a file called deploy-commands.js for exactly this, plus a deploy script in package.json. A Python bot does it in code instead, with a line that calls tree.sync() when the bot starts.

One server now, or every server in an hour

There are two places you can register the list, and the difference is how long you wait:

So "my command is missing" almost always means one of three things: the registering step was never run, it was run for a different server than the one you are testing in, or it was registered globally and you are looking too soon.

Pressing Start does not register your commands

VyroAI hosting starts one file — your bot's main file, such as src/index.js or src/main.py. It does not run deploy-commands.js for you, and there is no button that does.

That is fine for a Python bot, because its tree.sync() runs as part of starting up. For a JavaScript bot you have to run the deploy script yourself once, from your own machine, whenever you add or rename a command. Ask the AI in chat to make your bot register its commands on startup if you would rather never think about it again.

Check Code catches the Python version of this

Press Check Code in the toolbar before you go hunting. For a Python bot it reads your project and, if it finds slash commands but no call to tree.sync() anywhere, it says so in plain words and tells you where the missing line goes — this is the single commonest reason a Python bot boots perfectly and has no commands.

It does not yet have an equivalent check for JavaScript bots, so for those, treat "did I run the deploy script?" as the first question.

The bot is there but ignores everything you type

This is the prefix-command problem, and it is a permission rather than a bug. Since 2022 Discord treats the contents of ordinary messages as privileged: a bot cannot read them unless you have said it may.

It has to be switched on in two places, and having only one of them is the same as having neither — the bot runs, logs nothing, and never answers.

Switching on message reading

  1. Open your application on the “Discord Developer Portal”
  2. Go to the Bot page and turn on Message Content Intent under Privileged Gateway Intents, then save
  3. In your project, make sure the code asks for it too — in JavaScript that is GatewayIntentBits.MessageContent in the bot's intents list, in Python intents.message_content = True. Ask the AI in chat to add it if you are not sure
  4. Restart the bot from the Bot Console “Restart”

Step 4's button, on the row at the top of the Bot Console. Restart only appears while the bot is running; Stop also shows while it is starting.

An invite without the right scope hides the / menu

If you invited the bot with a link that only had the bot scope, its slash commands never appear no matter how many times you register them. The invite link needs bot and applications.commands together. Bot Token & Inviting Your Bot has the full invite route.

Which one do I have?

What you seeWhat it usually isWhere to fix it
The / menu does not list my command at allThe command list was never sent to Discord, or went to another serverRun the deploy script (JavaScript) or add `tree.sync()` (Python)
It showed up in my test server but nowhere elseIt was registered to that one server onlyRegister it globally, then wait up to an hour
I registered globally and still nothingThe roll-out has not finishedWait — up to an hour — before changing anything
The bot has no / menu in this server at allIt was invited without the `applications.commands` scopeMake a new invite link with both scopes
`!commands` do nothing, slash commands are fineMessage Content is off in the portal, in the code, or bothTurn it on in both places, then restart
The bot crashes on start with "Used disallowed intents"The code asks for an intent the portal has not granted**Bot Token & Inviting Your Bot** — Privileged Gateway Intents

Prefer slash commands. Discord treats prefix bots as the legacy way of doing things, and a slash command needs no special permission to read what people type — which is why VyroAI generates slash commands by default.

Where to next

9 of 10 in Discord Bots · Last checked 18 September 2026 · Previous: Running It Yourself