Loading...
The bot is online but has no slash commands, or ignores everything you type — the two different reasons, and the fix for each.
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.
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.
There are two places you can register the list, and the difference is how long you wait:
GUILD_ID value in your .env file is for. Use it while you are building.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.
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.
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.
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.
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 sureStep 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.
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.
| What you see | What it usually is | Where to fix it |
|---|---|---|
| The / menu does not list my command at all | The command list was never sent to Discord, or went to another server | Run the deploy script (JavaScript) or add `tree.sync()` (Python) |
| It showed up in my test server but nowhere else | It was registered to that one server only | Register it globally, then wait up to an hour |
| I registered globally and still nothing | The roll-out has not finished | Wait — up to an hour — before changing anything |
| The bot has no / menu in this server at all | It was invited without the `applications.commands` scope | Make a new invite link with both scopes |
| `!commands` do nothing, slash commands are fine | Message Content is off in the portal, in the code, or both | Turn 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.
9 of 10 in Discord Bots · Last checked 18 September 2026 · Previous: Running It Yourself