# How to evaluate a Discord bot before installing it

> A checklist for judging a Discord bot: permissions requested, intents needed, data retention, support quality and what happens if it disappears.

- Canonical: https://discordbots.blog/blog/how-to-evaluate-a-discord-bot
- Published: 2026-08-28
- Author: The Field Guide desk
- Competitor facts checked: 2026-09-01
- Sources:
  - Discord developer docs — Permissions (https://docs.discord.com/developers/topics/permissions) — checked 2026-09-01
  - Discord developer docs — OAuth2 (https://docs.discord.com/developers/topics/oauth2) — checked 2026-09-01
  - Discord developer docs — Gateway (https://docs.discord.com/developers/events/gateway) — checked 2026-09-01
- Publication: The Field Guide, an independent site not affiliated with Discord Inc.

---
Most bot choices are made from a feature table, and most bot regrets have nothing to do with
features. These are the five checks that predict the outcome better.

## 1. Read the permission bitfield on the invite

The invite link encodes exactly what the bot is asking for, and the authorisation screen shows it.
The specific thing to look for is **Administrator**, which is one checkbox granting every
permission that exists — including permissions Discord has not invented yet, because a bot with
Administrator inherits them automatically when they ship.

There are bots that genuinely need broad permissions. What separates a considered request from a
lazy one is whether the vendor documents *why*. A permission list of nine specific grants is a
vendor who thought about it; Administrator with no explanation is a vendor who did not.

## 2. Check which privileged intents it needs

Three intents are privileged: `GUILD_MEMBERS`, `GUILD_PRESENCES` and `MESSAGE_CONTENT`. The
last is the one worth thinking about, because it means the bot receives the text of every message
it can see.

For a moderation bot, an auto-responder or an anti-spam system, that is the job. For a bot that
only responds to slash commands — a poll bot, a ticket panel, an economy game — it is not needed at
all, and a vendor asking for it anyway is either carrying legacy prefix commands or collecting more
than the feature requires.

## 3. Ask what it keeps

Two questions cover most of it: what is stored, and for how long. A leveling bot necessarily stores
per-member activity. A logging bot necessarily stores message content, and its retention window is
the single most important number in its documentation — it determines both how far back an
investigation can reach and how much of your members' conversation exists on someone else's
infrastructure.

Discord's own audit log keeps 45 days and records administrative actions only. Anything beyond that
is the bot's choice, and a vendor that does not publish the number has made a choice they would
rather not state.

## 4. Measure support before you need it

Nearly every bot runs a public support server. Spend ten minutes in it. The signal is not how fast
staff reply to you — it is the ratio of answered to ignored questions in the last week, and whether
bug reports get acknowledged or scrolled past. That ratio does not improve after you become a
customer.

## 5. Plan for it disappearing

Bots shut down, get acquired, or change pricing in ways that make them unaffordable. The question
to ask before installing is what you would lose. Configuration you can rebuild in an hour is a
minor annoyance; two years of leveling data with no export is not.

Ask specifically whether there is a data export, whether it covers configuration as well as member
data, and whether it is available on the free tier. A vendor confident in their product has no
reason to make leaving difficult.

## What not to weight heavily

**Command count.** A bot advertising 600 commands is telling you about its surface area, not its
usefulness. Most servers use fewer than twenty commands regularly.

**Server count.** Popularity measures how long a bot has existed and how well it markets, not how
well it works. It is also the number most easily inflated by counting servers a bot was added to
and removed from.