How the discords.ai bot works

51 commands and 32 tools, 30 of them free. This page is about the bot itself: what it can and cannot see, what it asks your server for, how quickly each part answers, and how to set up the half of it that has no commands.

Every figure below is read from the same code that runs the bot: the schedules from the cron configuration, the permissions from the list the invite link is built out of, the cooldowns from the plans. None of it is typed out here, so none of it can quietly stop being true.

Adding the bot

One link, and you pick the server. You need Manage Server in the server you are adding it to, which is Discord's rule rather than ours. Nothing on this page needs Administrator, and the invite does not ask for it.

Add the bot to your server

Nothing switches itself on. Every tool starts off or empty, and you turn on the ones you want from the dashboard. Cooldown: 6h free, 2h Silver, 30m Gold, 15m Platinum.

What it asks for, and why

A bot that asks for Administrator is asking you to stop reading. This one asks for a named list, and every item on it is there for something you can point at. These are the permissions in the invite link above, with the reason for each.

Whatever you switch on

  • VIEW_CHANNELSee the channels it posts in
  • SEND_MESSAGESPost at all
  • USE_APPLICATION_COMMANDSIts slash commands appear in your server
  • EMBED_LINKSIts messages render as embeds instead of bare text
  • CREATE_INSTANT_INVITEAdd someone to your server from your listing in one click. Discord requires this specific permission before it will let a bot add a member, even though no invite is created
  • USE_EXTERNAL_EMOJISShow your custom emoji on the buttons it posts

Only for the tools that need them

  • Tickets

    • READ_MESSAGE_HISTORYRead a ticket's messages so the transcript is not empty
    • ATTACH_FILESInclude attachments in a transcript
    • MANAGE_CHANNELSCreate and close ticket channels, rename a counter channel, lay out channels with /build, and put a deleted channel back
    • CREATE_PRIVATE_THREADSOpen a ticket as a private thread
    • SEND_MESSAGES_IN_THREADSReply inside a ticket thread
    • MANAGE_THREADSArchive and lock a ticket when it closes
    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Community Moderation

    • CREATE_PUBLIC_THREADSOpen a thread on a message when somebody adds a community note, so the correction sits next to the thing it corrects
    • MODERATE_MEMBERSRun /timeout and /mute, and time a member out when reports cross your threshold
    • KICK_MEMBERSRun /kick, and kick from a moderation review ticket
    • BAN_MEMBERSRun /ban, /tempban, /softban and /unban, and ban from a moderation review ticket
    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Moderator Commands

    • MODERATE_MEMBERSRun /timeout and /mute, and time a member out when reports cross your threshold
    • KICK_MEMBERSRun /kick, and kick from a moderation review ticket
    • BAN_MEMBERSRun /ban, /tempban, /softban and /unban, and ban from a moderation review ticket
    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Server Builder

    • MANAGE_CHANNELSCreate and close ticket channels, rename a counter channel, lay out channels with /build, and put a deleted channel back
  • Honeypot

    • MANAGE_MESSAGESDelete what a spammer posted in a trap channel. Without it the raider is removed and the advert stays up
  • Verification

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Server Economy

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Snapshots

    • MANAGE_CHANNELSCreate and close ticket channels, rename a counter channel, lay out channels with /build, and put a deleted channel back
    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
    • MANAGE_GUILDRead and change your server's AutoMod rules, and raise the join requirement during a lockdown
  • Lockdown

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
    • MANAGE_GUILDRead and change your server's AutoMod rules, and raise the join requirement during a lockdown
  • Warnings

    • MODERATE_MEMBERSRun /timeout and /mute, and time a member out when reports cross your threshold
  • Events

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
    • CREATE_EVENTSPut an event in your server's Events tab, so Discord notifies people about it rather than it only being a message
  • Applications

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Counters

    • MANAGE_CHANNELSCreate and close ticket channels, rename a counter channel, lay out channels with /build, and put a deleted channel back
  • Birthdays

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Welcome Messages

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Auto Moderation

    • MANAGE_GUILDRead and change your server's AutoMod rules, and raise the join requirement during a lockdown
  • Role Menus

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
  • Audit Logging

    • MANAGE_ROLESHand over a role somebody bought, apply a muted role, set who can see a ticket, give a birthday or welcome role, lock a channel, and create roles with /build
    • VIEW_AUDIT_LOGRead who deleted a channel, banned a member or changed a role. Discord keeps only 45 days of it, so this is also what lets a longer history be kept at all

Discord answers the same refusal for a permission the bot does not have and for a role that sits too low to act on somebody. If something is refused, check both: the bot's role has to be above the roles it is meant to manage, not merely allowed to manage roles.

How fast it is, and why

This is the thing most bot documentation will not tell you, so here it is first.

The bot has no permanent connection to Discord. It is handed an event when somebody runs a command, presses a button or submits a form, and at no other time. It cannot watch messages being sent, cannot see somebody join, cannot see a role change or an edit or a deletion.

So anything that looks like it reacts to those is the bot going and asking Discord on a schedule, and the schedule is the delay. A welcome message is not sent the instant somebody joins; it is sent within two minutes, because that is how often the bot goes and looks. Every figure in the table below is the real schedule, read from the configuration that runs them.

There is one place this turns around completely. Message filtering is the thing a polling bot should be worst at, and Auto Moderation does not poll: it manages Discord's own AutoMod rules, which Discord enforces inside its servers before a message is delivered. On the one axis where this design looks weakest, it is ahead.

Before anybody sees it

Discord enforces the rule inside its own servers, so the message is never delivered. Faster than a bot can be.

  • Auto Moderation

The moment you act, and never on its own

These wait for a command, a button or a form. Discord hands the bot the event, so there is nothing to wait for - and nothing here watches your server in between.

  • Server Builder
  • Verification
  • Server Economy
  • Appeals
  • Warnings
  • Member Profile
  • Saved Replies
  • Applications
  • Suggestions

Within a minute

Checked every minute. Fast enough that a raid and a raid caught are the same thing.

  • Honeypot Β· reads the trap channel and acts on whoever posted every minute
  • Lockdown also instant Β· ends a lockdown when its timer runs out every minute
  • Giveaways also instant Β· draws a giveaway whose time is up every minute

Within a few minutes

Checked every two to five minutes.

  • Community Moderation also instant Β· sweeps up reports into cases every 5 minutes; lifts a mute or a tempban when its time is up every 10 minutes
  • Bump Reminders Β· posts the reminder when the cooldown expires every 5 minutes
  • Automation also instant Β· runs the rules whose schedule has come round every 5 minutes
  • Events also instant Β· sends reminders and closes events that have been every 5 minutes
  • Feeds Β· checks each feed and posts what is new every 5 minutes
  • Welcome Messages Β· finds who joined, because there is no join event to react to every 2 minutes
  • Role Menus also instant Β· takes back a role that was handed out on a timer every 5 minutes
  • Scheduled Announcements Β· posts an announcement whose time has come every 5 minutes

Within ten minutes

A record and a way to put something back, rather than a way to stop it happening.

  • Moderator Commands also instant Β· lifts a mute or a tempban when its time is up every 10 minutes
  • Counters Β· writes the numbers into the channel names every 10 minutes
  • Audit Logging Β· mirrors the audit log and posts what you asked about every 10 minutes

Within the hour

Checked on the hour.

  • Tickets also instant Β· closes a ticket nobody has replied to every hour; deletes transcripts past their retention once a day
  • Auto Bump Β· bumps the listing once its cooldown has passed every hour
  • Birthdays also instant Β· greets whoever has a birthday, in the server's own morning every hour

A few times a day

Every few hours. Enough to keep a record current, not enough to notice anything as it happens.

  • Snapshots also instant Β· records what the server's structure looks like every 6 hours

Once a day

Numbers that only change slowly, and tidying up that nobody is waiting on.

  • Invite Tracker also instant Β· counts who joined through the listing invite once a day
  • Listing Analytics also instant Β· records the member count for the graph once a day; counts who joined through the listing invite once a day

No schedule of its own

Reads what the other tools already recorded, so there is nothing for it to poll.

  • Raid Signals
  • Server Logs

A tool is usually more than one of these at once. Opening a ticket is instant, a ticket nobody answers is closed within the hour, and its transcript is deleted the day its retention runs out. Checked every hour, and bumped whenever the cooldown has expired. A shorter cooldown on a higher plan does not mean more automatic bumps per hour, because the check is hourly either way.

Settings every tool shares

Most bots make you name your staff role once per feature. Here it is set once and every tool reads it, so there is one answer to each of these questions rather than eleven that can disagree.

Your staff roles
One list. Whoever is on it can see tickets, claim them, resolve reports, run the moderator commands and read the logs. Changing it changes all of them at once.
Your mute role
One role. Community Moderation, the moderator commands and the automation rules all apply the same one, so a mute is a mute whichever thing applied it and any of them can lift it.
Your log channel
Set one channel and everything writes to it. A tool can override it with its own, and the order is: the tool's own channel first, then the server-wide default, then the moderation log. Leaving all three empty is a real answer and means it stays quiet rather than guessing.

Before anything happens to a member

Anything that can ban, kick, mute or time somebody out runs the same order of checks, every time. It is the same list for the honeypot, the automation rules and the raid response, because the failure mode is the same in all three: a tool that acts on the wrong person and cannot say why.

  1. 1

    Test mode is on by default.

    A new trap or rule watches and reports and does nothing else until you switch it over. Nothing irreversible happens while it is in test mode, which means you can see what it would have caught before it catches anybody.

  2. 2

    Exemptions are checked cheapest mistake first.

    Itself, then webhooks, then the server owner, then a live permission check, then the roles you named. The order matters: the checks that would be most embarrassing to get wrong are the ones that run first.

  3. 3

    A reason is produced either way.

    Not only when it acts. When it decides not to act, it says what stopped it, so an exemption you forgot about is visible rather than looking like the tool being broken.

  4. 4

    The person is told before it happens.

    A direct message, where Discord will deliver one. It will not deliver to somebody who no longer shares a server with the bot, so the notice goes first and the action second.

  5. 5

    A log line names the evidence.

    Not just what happened, but what it saw: the message, the channel, the rule that matched. A log that says a ban happened is not a log you can argue with.

  6. 6

    There is a grace period where a mistake is plausible.

    Somebody who posts in a trap channel once by accident is a different person from somebody who posts in it four times in a minute, and the settings can tell them apart.

  7. 7

    There is a floor configuration cannot cross.

    Some limits are not yours to set to zero. They exist so a setting typed in a hurry cannot turn a moderation tool into something that removes people for nothing.

The tools you set up on the site

16 of the 32 tools have no command at all. There is nothing to type: you set them up on discords.ai and they run on their own. That is why they do not appear in the command reference, and it is the main reason this page exists.

Auto Bump

every hour

Bumped on schedule, without anyone remembering

The listing bumps itself every time the cooldown expires. Shorter cooldowns come with the higher tiers.

  • every hour: bumps the listing once its cooldown has passed

You keep forgetting to bump, or you would rather not be pinged about it at all. This presses the button for you once the cooldown has passed, including overnight.

Before it will work

  • Β· Gold or Platinum. Free and Silver do not include it. The plan can come from the listing's own subscription or from a bundle covering it, and both count.
  • Β· The listing has to be approved. The hourly job only reads approved listings, and a listing still waiting on review is skipped without the page saying so.
  • Β· No Discord permission, and the bot does not have to be in the server. A bump is a record on discords.ai that moves the listing up the directory; nothing is posted to Discord.
  1. 1

    Read the cooldown card at the top before you touch anything.

    It says when the listing was last bumped and when the next one is due. The cooldown shown is your plan's.

    Ready to bump now
    Last bumped
    2 hours ago
    Your plan allows
    one every 30 minutes on Gold
  2. 2

    Tick "Bump this listing automatically".

    Look for Bump this listing automatically

    There is no separate save button; it saves as you tick it. If the save is refused the switch goes back where it was, because a switch that stays where you left it after a refused save is a lie about the state of the listing.

    Bump this listing automatically
  3. 3

    Come back later and check Recent bumps at the bottom.

    Look for Recent bumps

    The switch on its own proves nothing. This list is the only place that shows it has actually done anything.

    Recent bumps
    You or auto bump
    12 minutes ago
    You or auto bump
    1 hour ago
    Someone else
    2 days ago

Checked every hour, on the hour, so the first automatic bump lands within an hour of the cooldown ending rather than the moment it does.

When it does not work

Platinum has a 15 minute cooldown and the listing is only bumped once an hour.
Working as built, and worth knowing before you pay for it. The job runs hourly, and the cooldown decides only whether the listing is eligible when the job comes round. A Platinum listing clears its cooldown four times an hour and is bumped once, because nothing looks at it in between.
There is no tick box, only a card saying Auto bump needs Gold or Platinum.
The listing is on Free or Silver. The control is hidden rather than offered and then refused. Bump Reminders works on every plan and tells you the moment the cooldown ends, to the minute rather than to the hour.
Bump reminders stopped arriving the day this went on.
Deliberate. Reminders refuse with "Auto Bump is on, so this listing bumps itself." Use one or the other, not both.
You cannot tell which bumps in the list were automatic.
An automatic bump is recorded against the listing owner, exactly as one the owner pressed would be, so the two cannot be told apart. The list says "You or auto bump" rather than pretending to know which.
Set it upGold and above

Honeypot

every minute

A channel that catches what does not read

A trap channel with a banner telling people not to post in it. Raid bots blast every channel they can find without reading any of them, so they post here and are removed. Staff, your named roles and settled members are never touched, and it reports what it would do before you let it do anything.

  • every minute: reads the trap channel and acts on whoever posted

Raid bots blast every channel they can write to without reading any of them. A channel with a sign saying do not post here catches exactly the thing that does not read, and almost nothing else.

Before it will work

  • Β· A channel nobody has a reason to post in, or a role nobody should take. Either works on its own.
  • Β· Ban Members, Kick Members or Moderate Members, depending on what you set it to do, and the bot's role has to sit above whoever it catches.
  • Β· Manage Messages, if you want what they posted taken down as well. Without it the raider is removed and the advert stays up.
  • Β· A trap role also needs Discord's Server Members intent, which is a switch in the Developer Portal rather than a permission.
  1. 1

    Pick a trap channel, a trap role, or both.

    Look for Pick a trap channel

    A good trap channel is one no member has a reason to post in. A good trap role is one sitting in a role picker with a name no real member would choose: automation grabs every role it can, a person reads the name first.

    The trap
    Pick a trap channel
    Somewhere nobody should post
    Pick a trap role
    Optional. The channel works on its own
  2. 2

    Choose what happens to whoever is caught.

    Look for What happens to whoever is caught

    Ban removes them and stops them returning, which is what you want for raid bots. Kick lets them rejoin. Time out silences them for a day and leaves them there for staff to look at.

    What happens to whoever is caught
    Ban
    Removes them and stops them returning
    Kick
    Removes them but lets them rejoin
    Time out
    Silences them for a day
  3. 3

    Leave it in report-only and watch for a few days.

    Look for Report only, do not actually remove anybody

    This is the whole point of setting it up this way round. In report-only it tells you what it would have caught and removes nobody, so you find out whether your trap catches a real member before it catches one.

    Report only, do not actually remove anybody
  4. 4

    Read What it has seen before you let it act.

    Look for What it has seen

    If the list is all bots, switch report-only off. If a real member is in there, fix the trap rather than the setting.

  5. 5

    Switch report-only off and turn it on.

    Look for Run a honeypot on this server

    Run a honeypot on this server

The trap channel is read every minute, which is the fastest anything in this bot runs. For a raid that is the same outcome as instant: a bot that posts in forty channels is caught on the next pass.

When it does not work

A real member posted in the trap channel and was removed.
The sign was not clear enough, or the channel looked like somewhere to post. Put it back to report-only, rewrite the sign, and add anybody who should never be touched to the ignored roles.
Somebody was caught and their message is still in the channel.
The bot does not have Manage Messages. It could remove the person but not the advert, which is the half that mattered.
Somebody posted in the trap a day ago and nothing happened to them.
Deliberate, and you cannot switch it off. A catch older than a day is not acted on, because a gap that long means nothing was watching rather than that they got away with it. Acting on it later would remove somebody whose last word on the subject was a warning they answered, or never saw.

Verification

instant

A gate between joining and speaking

Members press a button, or answer a question only somebody who read your rules would know, and get their role. It can also turn away accounts younger than you allow, which is read from the account's own id rather than polled, so it costs nothing and cannot be faked. A raid is bought accounts, and bought accounts are new.

You want a gate between joining and speaking. A raid is bought accounts, and bought accounts are new, so turning away anything under a few days old costs you almost nothing and costs a raid everything.

Before it will work

  • Β· A role that already exists for verified members. Without one the gate refuses to post, because verifying would do nothing.
  • Β· Manage Roles, and the bot's own role has to sit above the role it is handing out.
  • Β· A channel to put the gate message in.
  1. 1

    Choose what members do.

    Look for What members do

    Press a button is one press and they are in, which stops anything that cannot handle an interaction. Answer a question stops anything that has not read your rules, which is a higher bar and a slightly higher nuisance.

    What members do
    Press a button
    One press and they are in
    Answer a question
    They have to type an accepted answer
  2. 2

    Under Who gets in, pick the role they get and how old an account has to be.

    Look for Who gets in

    Roles taken away at the same time is for an unverified role, if you use one. The age is read from the account's own id, so it costs no request and cannot be faked.

    Who gets in
    Role they get
    One of your server's roles
    Roles taken away at the same time
    For an unverified role, if you use one
    Turn away accounts younger than (days)
    0 lets everybody through
  3. 3

    Under Where it lives, pick the channel and write what members read.

    Look for Where it lives

    The log channel falls back to your server-wide default, and every attempt is posted there, passed or turned away.

  4. 4

    Tick The gate is on, then press Save and post the gate.

    Look for The gate is on

    It saves first and only posts if the save worked. Once a gate exists the same button reads Save and update the gate and edits the message in place rather than posting a second one.

    πŸ”“ Verify

Nothing waits. Verification has no scheduled job: a member presses the button and has the role in the same moment.

When it does not work

The post button will not do anything.
Something above it is still blocking. There are five things that can: no role chosen, no channel chosen, and in question mode no question, no accepted answer, or the role you are giving also being on the list to take away.
Somebody presses Verify and is told the bot could not give them the role.
Discord answers the same refusal for a missing permission and for a role that sits too low. Give the bot Manage Roles and move its role above the one it is handing out. Nobody is recorded as verified when the role fails, so they can try again once it is fixed.
A member who was verified before is asked to verify again.
Working as intended. Already verified means holding the role, not having once passed, so somebody who lost it for any reason runs the gate again rather than being locked out of a server they cannot speak in.

Raid Signals

no schedule of its own

What other servers already learned about an account

When several unrelated servers catch the same account raiding, yours can be told before it arrives - or shut the door in advance. No server can add somebody to this list by asserting it: signals come only from a honeypot catch or a moderation case a human upheld, one server counts once however loudly it shouts, and it expires. Advisory unless you switch acting on.

The same raid usually hits several servers. If your honeypot catches somebody, every other server on the list can know that before they arrive.

Before it will work

  • Β· The Honeypot or Community Moderation, since those are what produce a catch to share.
  1. 1

    Turn on Share what this server catches.

    Look for Share what this server catches

    This is the half that works today. Your honeypot catches and upheld cases go out to the other servers on the list.

    Share what this server catches
  2. 2

    Read the notice above the settings before you set them.

    Look for What to do about a flagged account

    What to do about a flagged account is saved and is not acted on. Nothing checks the members you already have, so neither telling you nor banning happens yet. The page says so itself rather than leaving you to find out.

  3. 3

    Use it where it does work: your own honeypot log.

    Look for What you put in

    When your honeypot catches somebody, the log line says how many other servers have flagged them. That number is the whole value of the list today.

When it does not work

You set it to ban and nobody has been banned.
Working as the page says. The choice is stored and nothing reads it, because acting on members you already have needs a sweep of them that does not exist. The notice on the page will come down when it does.

Server Logs

no schedule of its own

Everything your tools did, in one list

Reports and what each one counted for, mutes and how they were resolved, community notes, honeypot catches, what this server has contributed to the raid list, tickets and bumps. Nothing new is recorded - these are the same rows each feature already keeps, in one place with one time format, filterable and searchable.

Somebody asks what happened to a member and the answer is spread across reports, mutes, notes, honeypot catches, tickets and bumps. This is all of it in one list, in one time format.

Before it will work

  • Β· Nothing. It records nothing of its own and only shows what the other tools already wrote.
  1. 1

    Search for a name or a reason.

    Look for Search names and reasons

    It reads the names and the reasons the other tools recorded, not the message text, which is not kept.

    Who did what
    Reports
    and what each one counted for
    Mutes
    and how they were resolved
    Honeypot catches
    and what was contributed to the raid list
    Tickets and bumps
    in the same list and the same time format
  2. 2

    Narrow it down by who did what, or show everything.

    Look for Who did what

  3. 3

    Open any line to go to the tool that wrote it.

    Look for Open

When it does not work

A tool you use is missing from the list.
If one of the sources cannot be read the page says which, rather than showing a shorter list and letting you conclude nothing happened. An empty list and a failed read are different answers and it gives you the right one.

Snapshots

instant, then every 6 hours

What your server looked like before somebody deleted half of it

Records your roles and channels with their permissions every six hours, shows exactly what has changed since any snapshot, and puts back what should not have gone. Messages, who held which role, and emoji cannot come back and the page says so before anything else. Restoring always runs as a test first: it tells you what it would do and touches nothing until you have read it.

  • every 6 hours: records what the server's structure looks like

Somebody with Manage Channels deletes the wrong thing, or a compromised account goes through your server. A snapshot is the difference between rebuilding from memory and putting it back.

Before it will work

  • Β· Manage Channels and Manage Roles, for putting anything back. Taking one needs neither.
  1. 1

    Press Take one now, so there is something to compare against.

    Look for Take one now

    One is taken automatically every few hours anyway, but the first one is worth not waiting for.

  2. 2

    When something goes wrong, open the snapshot from before it and press Compare against now.

    Look for Compare against now

    Since that snapshot
    role
    removed
    channel
    removed
    channel
    changed
  3. 3

    Tick what you want back and read what it says it will do.

    Look for Nothing has been changed. This is what would happen:

    Nothing has been changed at this point. The list is what would happen, and you press again to make it happen. At most 25 at a time, so a misclick cannot rebuild a server.

One is taken every six hours. That is the most you can lose: anything changed since the last one is not in it, so take one by hand before a big change rather than after.

When it does not work

A channel came back and its messages did not.
Discord deletes the messages with the channel and there is no way to read them afterwards. What comes back is the name, the type, the category and the permissions.
A role came back and nobody has it.
Discord does not record who held a deleted role, so nothing here can either. The role returns with its name, colour and permissions, and handing it back out is yours to do.
Something created after the snapshot is still there.
Nothing here deletes anything. A restore only puts back what is missing and changes back what was changed, so removing something new is yours to do.

Automation

instant, then every 5 minutes

When this happens and this is true, do that

Rules that run themselves. Pick what wakes a rule, write a condition in a small expression language if you want one, and choose what it does. Every rule starts in test mode and writes down what it WOULD have done until you turn that off, and every time a rule is considered is recorded, not only the times it fired, so a rule that is not working tells you whether its condition was false or its condition is broken. Only triggers that actually work are offered, because a rule that can never fire is worse than no rule.

  • every 5 minutes: runs the rules whose schedule has come round

Something in your server happens on a schedule or after a moderation event, and you keep doing it by hand: thanking long-standing members, slowing a channel down at night, noting who was warned twice.

Before it will work

  • Β· Whatever permission the action itself needs. A rule that bans needs Ban Members, and the bot's role has to sit above whoever it acts on.
  1. 1

    Give the rule a name and choose when it runs.

    Look for When

    On a schedule is the usual one. The rest fire off something that has already happened: a ticket being closed, a member being warned, a giveaway ending.

    When
    On a schedule
    Every 5 minutes, hour, 6 hours, day or week
    A member is warned
    Fires when a warning is issued
    A ticket is closed
    Fires when a ticket closes
    A giveaway ends
    Fires when one is drawn
  2. 2

    Set the conditions under And this is true.

    Look for And this is true

  3. 3

    Choose what it does.

    Look for Then do this

    Some of these cannot be undone. Ban the member and Kick the member are the two to be careful with, and they are the two worth testing first.

    Then do this
    Post in a channel
    Nothing to undo
    Write a private note
    Nothing to undo
    Time the member out
    Reversible
    Ban the member
    Not reversible by this rule
  4. 4

    Press Try it without saving.

    Look for Try it without saving

    It reports who the rule would have picked up and does none of it. This is the step to spend time on: a schedule rule that matches more people than you expected is far easier to find out about here.

  5. 5

    Leave it in test mode for a while, then let it act.

    Look for Test mode - let it act for real

    A new rule starts in test mode. It runs on its schedule and records what it would have done without doing it, so you can read a few passes before anything is irreversible.

Scheduled rules are considered every five minutes, so a rule set to run hourly runs within five minutes of the hour rather than on it.

When it does not work

The rule says it ran and nothing happened.
Check whether it is still in test mode. A rule in test mode records what it would have done every single pass, which reads exactly like working until you notice nobody was touched.
A rule that acts on members does nothing for some of them.
Discord answers the same refusal for a missing permission and for a role that sits too low. A rule that works on ordinary members and not on staff is almost always the second one.

Appeals

instant

A way back for somebody you got wrong

Somebody you have warned, timed out or banned signs in here with the same Discord account and says it was wrong. You decide, and upholding one actually undoes it - the ban is lifted, the timeout ends, the warning stops counting. Most bots cannot offer this at all: a banned member has no way to reach a bot inside the server that banned them, which is exactly why it needs a page rather than a command.

Somebody you banned wants to say something about it, and they cannot, because they are banned. Without a form the only route is a DM to whoever they can still reach, which is nobody.

Before it will work

  • Β· Nothing. It is a web form on discords.ai, so it works for somebody who is not in your server.
  1. 1

    Read the address under Where people appeal and put it somewhere a banned person can see it.

    Look for Where people appeal

    That usually means the ban reason itself, or your listing. Somebody who has been removed cannot read any of your channels.

    Appeal form address
    Where people appeal
    discords.ai/appeal/your-server
  2. 2

    Choose what can be appealed, and write what the form says.

    Look for What the form says above the box

  3. 3

    Pick where staff are told.

    Look for Tell staff in

    Nowhere is a real answer and means you read them on this page instead.

  4. 4

    Decide each one, with a reason.

    Look for Keep the decision

    The reason is sent to them, and is worth writing either way: an appeal refused without one reads as nobody having looked.

When it does not work

Nobody is appealing.
Almost always that they cannot find the address. A banned member sees the ban reason and nothing else of your server, so that is where it has to be.

Events

instant, then every 5 minutes

Who is coming, and what happens when it is full

Creates a real Discord event, so it appears in your server's Events tab and Discord notifies people about it, and posts a message beside it with the things Discord's own event has no answer for: a proper no and maybe, a limit on places, a waiting list that moves somebody up the moment a place opens and tells them, reminders before it starts, and a role for whoever turns up. A place opening moves the next person up straight away, because that is a button press; reminders go out on a five minute sweep, so one asked for an hour before lands within five minutes of it.

  • every 5 minutes: sends reminders and closes events that have been

You are running something at a set time and want it in Discord's own Events tab, so people are notified by Discord rather than having to notice a message.

Before it will work

  • Β· Create Events, which is what puts it in the Events tab rather than only posting about it.
  • Β· Manage Roles, if you are giving people a role for going.
  1. 1

    Press Put one on and say what it is.

    Look for Put one on

    What it is
    Name
    Game night
    Anything else
    Bring a headset. We are starting in the lobby.
  2. 2

    Set when, and where it happens.

    Look for When

    The time is in your own time zone and everybody sees it in theirs, because Discord renders it per viewer rather than posting a fixed string.

  3. 3

    Choose when to remind people.

    Look for Remind people

    Remind people
    A day before
    For anything people have to plan around
    An hour before
    The usual one
    15 minutes before
    A nudge
    When it starts
    For anybody who missed the rest
  4. 4

    Optionally give people a role for going.

    Look for Give people a role for going

    Useful for a channel only attendees can see, and for knowing afterwards who actually came.

Reminders are sent on a five-minute check, so a reminder set for an hour before lands within five minutes of that rather than on the minute. The event itself appears in Discord as soon as you save it.

When it does not work

It says it could not be created, and nothing is in the Events tab.
Nothing was made. Nothing is asked of Discord until the event has been recorded here, so a failure at this point leaves nothing behind and trying again cannot produce a duplicate.
It was created, but there is no entry in the Events tab.
The bot does not have Create Events, so it made the event here and Discord refused the tab entry. The message in your channel still works and people can still answer it. Grant the permission and make the next one again.
You want to stop it without deleting the record.
Call it off marks it cancelled rather than removing what happened.

Applications

instant

Staff applications that arrive with proof of who wrote them

Build a form of up to twenty questions - short, long, or choose one - and share one link. People sign in with Discord, which proves who they are, and have to be a member to submit. Each application posts to a review channel where staff accept or turn it down, with the reason passed on to the applicant. Accepting can hand over a role. Somebody turned down waits out a cooldown you set; somebody already waiting on an answer cannot apply twice; and nobody decides their own application, which matters most on the staff form where the applicant already holds a staff role.

Counters

every 10 minutes

Your numbers in a channel name, where everybody sees them

Members, people online, roles, boosts and boost level in a channel name - plus your discords.ai votes, bumps and reviews, which no other bot can show at all. Written every ten minutes and only when the number has actually changed, because Discord allows two channel edits per ten minutes and a rename is one of them. That limit applies to every bot, so nobody's counter is live and this one says so.

  • every 10 minutes: writes the numbers into the channel names

You want the number of members, or your vote count, sitting at the top of the channel list where everybody sees it without asking.

Before it will work

  • Β· Manage Channels, so the bot can rename the channel it is counting into.
  • Β· A channel to give over to it. A voice channel nobody can join is the usual choice, because the name is what matters and not the channel.
  1. 1

    Press Add a counter.

    Look for Add a counter

  2. 2

    Choose what to count.

    Look for Count

    Members, online now, channels, roles, boosts and boost level come from Discord. Votes, bumps and reviews come from your discords.ai listing and cost no request at all, which is why they can be counted as often as anything else.

    Count
    Members
    πŸ‘₯ Members: {count}
    Votes on discords.ai
    ⭐ Votes: {count}
    Boost level
    πŸ’Ž Level {count}
  3. 3

    Pick the channel it renames, and write the name.

    Look for In this channel

    {count} is replaced with the number. Everything else in the name is yours, so the emoji and the wording are up to you.

    The channel's name
    Currently, and will become
    πŸ‘₯ Members: 32,148
  4. 4

    Press Save.

    Look for Save

Written every ten minutes. Discord rate limits channel renames hard, so this is as often as it can be done without the renames starting to fail, and a number that is ten minutes old is the trade.

When it does not work

The channel name never changes.
Almost always Manage Channels. Discord answers the same refusal for a missing permission and for a channel the bot cannot see, so check the bot can actually view the channel as well.
The number is out of date.
It is up to ten minutes old by design. If it is much older than that, the rename is being refused rather than skipped.

Feeds

every 5 minutes

New video, new post, new release, announced in your server

Announce new YouTube videos, new posts in a subreddit, or anything else with an RSS feed - a blog, a podcast, a project's releases. Ping a role, write your own wording, and filter by keyword. Shorts can be skipped, told apart by the link YouTube itself publishes rather than by a guess. Checked every five minutes, and the first check records what is already there rather than posting the backlog.

  • every 5 minutes: checks each feed and posts what is new

You post the same link in your server every time you upload, or every time something appears on a subreddit or a blog, and you would rather it posted itself.

Before it will work

  • Β· A channel for it to post in. That is all it needs.
  1. 1

    Press Add a feed and pick what kind it is.

    Look for Add a feed

    YouTube takes a channel URL or an @handle. Reddit takes a subreddit. Anything with a feed takes an address ending in the feed itself.

    Feed address
    YouTube
    youtube.com/@fireship, or a channel URL
    Reddit
    r/discordapp, or a subreddit URL
    Anything with a feed
    https://blog.example.com/feed.xml
  2. 2

    Choose where it posts, and whether it pings anybody.

    Look for Post in

    Nobody is the default, and is usually the right answer for anything that posts more than weekly.

    Where it goes
    Post in
    The channel it posts to
    Ping a role
    Nobody, unless you pick one
  3. 3

    Narrow it down if the source posts more than you want.

    Look for Only post if it mentions

    Only post if it mentions keeps a feed to the part of it you care about. Never post if it mentions is the one people actually reach for, usually to keep sponsored posts out.

    Filters
    Only post if it mentions
    devlog, patch notes
    Never post if it mentions
    sponsored, teaser
  4. 4

    Press Save wording and filters.

    Look for Save wording and filters

Checked every five minutes. Nothing tells the bot a video has gone up, so it goes and asks, and five minutes is how long a new post waits.

When it does not work

Nothing has posted since you added it.
The first check records where the feed is up to rather than posting its whole history, so the first thing you see is the next thing published, not the last one. Press Refresh to see what it has read.
It posts things you did not want.
Use Never post if it mentions rather than removing the feed. The filter is read against the title and the summary.

Welcome Messages

every 2 minutes

A first message new members actually read

Greet arrivals in a channel, in their direct messages or both, with an embed you design and placeholders for their name, the server and the member count. Hand them a role on the way in. Joins are found by checking every couple of minutes rather than instantly, because the bot has no live connection to Discord.

  • every 2 minutes: finds who joined, because there is no join event to react to

Somebody joins and nobody is awake. A first message that names them, points at the one channel you want them to read and hands them a role is the difference between a member and a number.

Before it will work

  • Β· Discord's Server Members intent, switched on for the bot in the Developer Portal under Bot, Privileged Gateway Intents. Reading who has just joined needs it. It is a switch rather than a permission, so re-inviting the bot does not turn it on.
  • Β· Manage Roles, if you are giving arrivals a role, and the bot's own role has to sit above the one it is handing out.
  1. 1

    Choose where the welcome goes.

    Look for Where the welcome goes

    In a channel is the usual choice and everybody sees it. In their DMs is private, and is quietly dropped if theirs are closed, which is the normal case rather than a failure. Both does each.

    Where the welcome goes
    In a channel
    Everybody sees it
    In their DMs
    Private, dropped if theirs are closed
    Both
    Posted publicly and sent privately
  2. 2

    Pick the channel, and the role they get.

    Look for Channel

    Both are optional. Bots have their own role setting, because most servers leave skip bots on and still want every bot in a Bots role.

    Who gets what
    Channel
    Where the welcome is posted
    Give them a role
    No role, unless you pick one
    Skip accounts younger than
    In days. 0 greets everybody
  3. 3

    Write the message.

    Look for Message

    Five placeholders are filled in: {mention} pings them, {name} is their name, {server} is the server, {count} is the member count with its thousands separator, and {ordinal} makes it "our 1,201st member". They work in every text field, including an embed description, which is where most of them actually go.

    Welcome to {server}, {mention}! You are our {ordinal} member.

    Turn on "An embed as well" and the preview underneath shows what Discord will render.

  4. 4

    Press Save.

    Look for Save

    A
    discords.aiApp

    Welcome to Aurora, @newcomer! You are our 1,201st member.

Checked every two minutes. There is no join event for this bot to react to, so it polls, and that interval is the wait a new member has before they are greeted. The dashboard says the same thing rather than implying it is instant.

When it does not work

Nobody is greeted at all, and nothing says why.
Almost always the Server Members intent. It is in the Discord Developer Portal, not in the invite link, so a bot with every permission you can grant still cannot read who joined without it.
The message posts but the role is not given.
Discord answers the same refusal for a missing permission and for a role that sits too low. Give the bot Manage Roles and move its own role above the one it is handing out.
A member says they got nothing, in DM mode.
Their direct messages are closed. Discord will not deliver, and there is nothing the bot can do about it. That is treated as normal rather than as a failure, which is why it is not reported as one.

Auto Moderation

Discord blocks it at send time

Blocked by Discord itself, at send time

Words, patterns, mass mentions and profile names, blocked by Discord the moment somebody presses send, so nobody sees the message at all. These are Discord's own AutoMod rules edited from here, which is why this is the one tool that acts instantly rather than on a timer. It also blocks lookalike spellings, which Discord does not do on its own: a rule against a word is expanded into the variants people actually type to get around it.

You want something blocked before anybody reads it. This is the one tool here that is faster than a bot with a live connection, because it is not a bot doing the blocking.

Before it will work

  • Β· Manage Server, which is what Discord requires to read and change a server's AutoMod rules.
  • Β· Nothing else. There is no channel to pick and nothing to post.
  1. 1

    Press Add a rule and pick the kind.

    Look for Add a rule

    Words and phrases is the usual one. Names and profiles is the odd one out: it reads a display name, a nickname and an About Me rather than anything anybody typed, so it catches the scam link sitting in a profile waiting to be clicked.

    Add a rule
    Words and phrases
    What most rules are
    Mass mentions
    Block a message mentioning more than a number you set
    Names and profiles
    Reads the profile, not a message
  2. 2

    Turn on a ready-made list, or write your own words.

    Look for Ready-made lists

    The lists are the links and phrases these accounts actually use, so you do not have to think of them yourself. Your own words go one per line underneath.

    Ready-made lists
    Any link in a name or profile
    A web address anywhere in a name or About Me
    Fake Nitro and gift scams
    Free-Nitro wording, and the misspellings of discord.com
    Crypto and wallet scams
    Airdrop, wallet-connect and seed-phrase wording
    Steam and trade scams
    Trade-offer and free-skin wording, and its lookalike domains
  3. 3

    Leave Also block lookalike spellings on.

    Look for Also block lookalike spellings

    Discord does not do this itself. A rule against a word is expanded into the variants people actually type to get round it, which is most of what makes a word filter work at all.

    Also block lookalike spellings
  4. 4

    Choose what happens when it matches.

    Look for What happens when it matches

    Block the message is the usual one. A profile rule cannot block a message, because there is no message, so it blocks their interactions instead until the profile is changed.

    What happens when it matches
    Block the message
    Nobody sees it, not even for a second
    Block their interactions
    For a profile rule, which has no message to block
    Tell a channel
    Optional, and works alongside either
  5. 5

    Save it. Discord is enforcing it from that moment.

    Look for Discord is enforcing this rule

    There is no delay and nothing to switch on in Discord afterwards. The rule you just saved is a rule in your server's own AutoMod settings, and editing it there changes it here too, because there is only one copy.

None. Discord blocks the message inside its own servers before it is delivered, so this is the one thing here that is faster than a bot with a permanent connection rather than slower.

When it does not work

A rule says it was made elsewhere and will not let you edit it.
Somebody made it in Discord's own settings, or another bot did. Editing it from here would overwrite their rule with whatever this editor reconstructed, so it is shown and left alone.
Switching the tool off in Server Tools did not stop the rules.
Correct, and there is nothing to fix. The rules live in Discord and Discord goes on enforcing them. Switching the tool off stops new ones being added from here; Delete from Discord is what stops one.
Staff are being caught by your own rule.
Add their role under Who it skips. Discord checks that itself, so an exempt role is never matched rather than matched and forgiven.

Audit Logging

every 10 minutes

A record of what changed and who changed it

Who deleted a channel, banned a member or changed a role, posted to a channel you pick and kept where you can still read it. Discord throws its own audit log away after 45 days; this keeps a year. Checked every ten minutes, so it is a record and a rollback aid rather than prevention, and the page says so rather than implying it can interrupt anything.

  • every 10 minutes: mirrors the audit log and posts what you asked about

Discord throws its own audit log away after 45 days, and it is the thing you want most when you are working out what happened three months ago. This keeps a year of it, and can tell you in a channel as it goes.

Before it will work

  • Β· View Audit Log, which is what lets it read who deleted a channel or banned a member in the first place.
  • Β· Manage Roles as well, if you turn on the burst guard and set it to take somebody's powers away.
  1. 1

    Turn on Keep a copy of this server's audit log.

    Look for Keep a copy of this server's audit log

    The copy is the point. Everything recognised is stored whatever the posting settings say, so changing your mind later about what you wanted told about does not lose the history.

  2. 2

    Choose whether to post any of it to a channel, and which events.

    Look for Which events to post

    Filtered on the way out, never on the way in. Leaving everything unticked keeps the copy and posts nothing.

  3. 3

    Leave anything noisy out.

    Look for Leave out of the channel

    A bot that rewrites channel names all day will otherwise fill the log with its own work.

  4. 4

    Turn on the burst guard if you want to be told about somebody deleting a lot at once.

    Look for Watch for bursts of destructive changes

    It counts per person, per kind of change, inside a window you set. Tell us pings your alert role and changes nothing about their access. Tell us and take their powers away also removes the roles carrying Administrator, Manage Channels, Manage Roles, Manage Server, Ban, Kick or Manage Webhooks, and leaves their other roles alone.

    If somebody starts deleting things
    Counted over
    The window, in minutes
    How many is too many
    Per person, per kind
    Tell us
    Pings the alert role, changes no access
    Tell us and take their powers away
    Also strips the roles carrying the dangerous permissions
  5. 5

    Leave the guard in Test mode until you have seen it count a real day.

    Look for Test mode

    In test mode it records what it would have done and takes nothing away, and What has tripped it shows you. A threshold that is too low on a busy server is much better discovered here.

Polled every ten minutes. This is a record and a way to put something back, not a way to stop something happening: against a fast nuke the guard arrives after the fact, and against somebody working slowly it ends it.

When it does not work

Switching the tool off in Server Tools did not stop the burst guard.
Deliberate. Switching it off stops the ten-minute post into your channel; the copy carries on being written and the guard carries on running, because the guard reads that copy. Switching off nuke protection because you wanted less channel noise would be a trap, so the guard has its own switch on this page instead.
Nothing is being recorded at all.
The bot does not have View Audit Log. Without it there is nothing to read, and Discord does not distinguish that from an audit log with nothing in it.

Scheduled Announcements

every 5 minutes

Write it now, post it later

A message the bot posts at a time you pick, once or on a repeat, with an embed if you want one. For events, weekly resets and the reminder somebody always forgets. Checked every five minutes, so the time you set is the earliest it goes out rather than the exact second, and the page says so rather than implying a precision it cannot have.

  • every 5 minutes: posts an announcement whose time has come

Something has to be said at the same time every week and you are tired of being the one awake for it: a reset, a countdown, the rules going back up.

Before it will work

  • Β· Silver or above. This is one of the two tools that is not free.
  • Β· A channel to post in, and something written to post.
  1. 1

    Press New.

    Look for New

  2. 2

    Give it a name and pick the channel.

    Look for Name

    The name is only for you. Nobody in the server sees it.

    What
    Name
    Only you see this
    Channel
    Where it posts
  3. 3

    Write the message, and turn on an embed if you want one.

    Look for An embed as well

    The preview underneath shows what Discord will render, not an approximation of it.

    A
    discords.aiApp

    Weekly reset is in one hour.

  4. 4

    Set when it first posts, and how often it repeats.

    Look for Repeat

    The time is in your own time zone rather than UTC. Once posts a single time and then switches itself off.

    When
    Once
    Posted a single time, then switched off
    Every hour
    For a reset or a countdown
    Every day
    Same time each day
    Every week
    Same time each week
  5. 5

    Save it, and use Post it now if you want to check it reads right.

    Look for Post it now

    Posting now does not move the schedule, so a test post does not cost you the real one.

Checked every five minutes, so an announcement lands within five minutes of the time you set rather than on the second. Worth knowing if you are counting down to something.

When it does not work

You want it to stop without losing what you wrote.
Switch it off rather than deleting it. Off keeps everything you have written and posts nothing, and Delete is the one that does not come back.
It posted a few minutes after the time you set.
That is the five minute check. It posts on the first pass after the time, never before it.
Set it upSilver and above

The tools you run from Discord

The other 16 have commands, and those have their own two pages: a reference to every one of the 51, and a walkthrough of what to type and what comes back, with the replies drawn out.