> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Bot not reading messages? Enable the Message Content Intent

## The symptom: bot online, but "mute"

Your bot shows up online on Discord, maybe even responds to slash commands (/slash), but simply ignores regular text messages? Most of the time the reason isn't a bug in your code — it's a setting called **Privileged Intents** that is disabled.

## What Intents are

Intents are "event permissions" that tell Discord which information your bot wants to receive. Instead of sending everything, Discord only sends the events your bot declares it needs — this saves resources and protects user privacy.

Some intents are considered **Privileged (privileged)** because they give access to sensitive data:

* **Message Content Intent** — required to read message content.
* **Server Members Intent** — required to receive the member list.
* **Presence Intent** — required to see status and presence.

## Why your bot isn't reading messages

Since 2022, the **Message Content Intent** became privileged. Without it enabled, the `content` field of messages arrives **empty** — that's why the bot doesn't "see" what was written.

## How to enable the Message Content Intent

1. Go to the Discord Developer Portal and open your application.
2. Go to **Bot** in the side menu.
3. Scroll to **Privileged Gateway Intents**.
4. Enable **Message Content Intent** (and the others your bot needs).
5. Save the changes.

## Declare the intents in your code too

Enabling it in the portal isn't enough: you also need to declare the intents in your code.

discord.js:
```
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
  ],
});
```

discord.py:
```
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
```

## Discord verification (around 100 servers)

While your bot is in **fewer than 100 servers**, you enable the Privileged Intents (like the Message Content Intent) yourself in the Developer Portal, with no approval needed.

From around **75 servers** you can request your bot's **verification**, and it becomes **mandatory once you reach 100 servers** — without it, the bot can't join new servers. It's during this verification process that Discord reviews and approves the use of Privileged Intents at scale.

## Diagnostic checklist

* Message Content Intent enabled in the Developer Portal?
* Intent declared in the code?
* Correct token and bot restarted after the change?

If the bot still doesn't respond after deploy, confirm it's actually online — see [How to host a Discord bot](https://help.squarecloud.app/en-us/article/how-to-host-a-discord-bot-e2udcn/) to make sure hosting is correct.
