What the bot reads
It reads what the server already makes public. Nothing is inferred from private channels, and members are never asked for anything.
Intents
Eight, three of them privileged.
| Intent | Privileged | Used for |
|---|---|---|
| Guilds | no | Channels, roles, the server itself |
| Guild Members | yes | Member count, joins, retention |
| Guild Presences | yes | The online count |
| Guild Voice States | no | Who is in which voice channel |
| Guild Messages | no | Noticing a new announcement |
| Message Content | yes | The text of that announcement |
| Guild Scheduled Events | no | Events and interest counts |
| Guild Invites | no | Keeping invite counts fresh for attribution |
Without Message Content every announcement would publish blank. Without Presences there is no online count.
Where announcements come from
In order:
- A channel you picked with
/channel. - A real Announcement-type channel, if there is exactly one.
- A text or forum channel named like
announcements,news,updatesorchangelog, if there is exactly one. - Nothing.
If several channels are equally good candidates it picks none and says so —
that is your choice, not the bot’s. It will never fall back to #general:
publishing whatever happens to be in there to a public page is worse than
publishing nothing.
Forums work too. Each thread is a post, and the thread name is the headline.
Why a widget is empty
An empty widget is not one situation, it is six. /status names which:
| State | Meaning | Worth fixing? |
|---|---|---|
working | Read it, there is content | — |
nothing there yet | Read it, genuinely empty | No |
not set up | Nothing chosen and nothing detected | Yes — /channel |
I cannot see it | Chosen, but permissions block it | Yes |
I cannot read that kind of channel | Wrong channel type | Yes — /channel |
this server does not have one | The feature does not exist here | No |
A rules widget reading this server does not have one simply means the server is not a Community server, so Discord gives it no rules channel to read.