Review Inactive Discord Members Before Removing Anyone

Updated · 6 min read

Inactive Members starts with a private report, not a kick. It observes the activity sources you choose, protects exempt people and requires a fresh, explicitly confirmed report for any removal. This guide sets up the report-first workflow and explains the Discord settings that sit outside Build Discord Bots.

Start free

Start free. Pro is $9.99/month.

Before you start

  1. Choose a private audit channel and activity sources

    Open your bot’s Modules area, enable Inactive Members, then open its Settings for the intended server. Select a staff-only audit channel. The module will not run a report or removal workflow without a usable private audit destination, so test that the bot can view and send messages there and that @everyone cannot view it.

    Choose whether visible messages, reaction additions and voice or stage activity count. These are observation sources, not proof that someone has read a channel. The bot cannot measure reading, presence or inaccessible/private threads. Keep all selected channels visible to the bot; incomplete channel access prevents a complete observation window and blocks enforcement.

  2. Set a conservative threshold and exemptions

    Set the inactivity threshold, join-age protection and any role or user exemptions in Settings. The defaults are a 30-day threshold and 14-day join-age protection; thresholds can be 7 to 180 days. Add roles such as Staff or On hiatus before you begin observing.

    The module automatically excludes bots, the server owner, administrators, pending members, new members and members at or above the bot’s highest role. It also excludes anyone with an activity timestamp inside the threshold. Do not treat a missing timestamp as proof that a person has left your community.

  3. Let observation complete, then create a report

    Save collection as enabled and leave enforcement off. The first save cannot enable both collection and removals. The module begins a fresh observation window and needs the full threshold before a member can qualify. Restarts, gateway gaps, changed settings or incomplete channel access reset that window.

    When the window is complete, run /inact report. Its private response points to the audit record and the report itself lists candidates, exclusions, last-seen sources and coverage. The report kicks nobody and its ID expires after one hour. Review every candidate in the private channel before considering a warning or removal.

  4. Read the private report before taking action

    Reporting is included with the Free Inactive Members module. Keep the audit channel private, then run /inact report after the full observation window. The command responds privately and records the report in the audit channel; it never kicks members by itself.

  5. Use warnings and explicit confirmation only when needed

    If you want a second chance, enable warning DMs and choose a grace period from 1 to 29 days. Run /inact warn with the reviewed report ID. Failed DMs still receive the grace period, and new observed activity cancels a warning. Create another report after grace rather than relying on an old one.

    Removals stay off until you enable enforcement separately. With a newly reviewed report, run /inact enforce and set confirm to true. Each member is rechecked immediately before a kick. The module uses configured per-run and UTC-day caps, each from 1 to 25, and stops on an uncertain failure instead of retrying automatically. Keep Kick Members for the bot and Manage Server for the operator only if you intentionally use this final step.

  6. Know what Discord Prune does—and does not do

    Discord’s built-in Prune is a mass-kick tool for members who have not been active on Discord. Its documented choices are 7 or 30 days, with an option to include selected roles. It does not use this module’s selected message, reaction and voice observation sources, private report IDs, warning grace period or separately switched-on enforcement.

    Use Prune when Discord’s own eligibility definition and immediate mass-kick workflow fit your policy. Use Inactive Members when you need the configured observation threshold, exemptions, a private review record and an explicit /inact enforce confirmation before a capped removal.

    Discord Support: How to Prune

Frequently asked questions

Is inactive-member reporting free?

Yes. Reporting is included with the Free Inactive Members module. Removal remains off until collection has been enabled, enforcement is switched on separately, and an operator explicitly confirms a fresh report.

Does the inactive-member report automatically kick people?

No. It is report-only until collection and enforcement have been enabled separately. A removal also needs a fresh report ID and an explicit confirm value.

What activity can it see?

It can record visible messages, available reaction additions and qualifying non-AFK voice or stage sessions when those sources are enabled. It does not measure reading, presence or activity in channels the bot cannot access.

Can I remove a member immediately after enabling it?

No. A complete observation window must last for the configured threshold. Collection gaps, restarts, settings changes and missing channel access reset that window.

Which members are protected?

Bots, owners, administrators, pending and new members, selected users and roles, members above the bot in the role hierarchy, and members with recent observed activity are excluded.

Ready to configure your bot?

Start free

Start free. Pro is $9.99/month.