Skip to handbook
ANANTAcafe!Moderator handbookModerator Hall
← Back to chapters

Moderator handbook

A practical guide to caring for the café, using Taffy and leaving a clear record for the next moderator.

Reviewed 17 October 2026. Server rules and admin policy take priority over the examples.

01 · Judgement before buttons

Your job is to stop harm, explain the boundary and help the conversation recover. Keep your tone calm, especially when the other person isn't calm.

Before taking action

  1. Read the surrounding conversation. Check who said what, when it happened, and which server rule applies. A report is a starting point, not proof by itself.
  2. Verify the person using their Discord user ID. Similar names and profile pictures can belong to different people. Turn on Developer Mode in Discord settings to access Copy User ID.
  3. Preserve the minimum useful evidence: message links, channel, time and a short factual summary. If content must be removed immediately, contain the incident first and record what you safely can.
  4. Check Warnings and Case history in Moderator Hall. A missing result does not prove there was never an incident: views are limited and older records may have expired under retention settings.
  5. Coordinate with the moderator already handling it. Avoid two warnings or overlapping sanctions for the same conduct.
  6. Choose a proportionate response. A quiet reminder may resolve an honest mistake; an ongoing attack may need immediate containment. You do not have to warn before every serious safety action.

While acting

Use an observable reason, verify the target and settings, then read Taffy's final receipt. Save the case number in the staff handover. A loading message is not a completed action.

After acting

Check that the harm stopped. Explain what needs to change without arguing in public. Offer a private route for questions and appeals. If you were personally involved, ask another moderator to review the decision.

Taffy does not automatically ban someone after a particular warning count. Do not invent a three-strikes rule. Apply the server's actual policy and consider severity, context and relevant history.

02 · Using Moderator Hall

Use the original control panel in this channel, or run /modhall to open your own private copy. Clicking a tool does not grant permission to use it.

Member tools

A member action, step by step

  1. Choose the action.
  2. Search the member picker, or paste the person's 17–20 digit Discord user ID. Use one method; if you fill both, they must identify the same person.
  3. Enter a useful reason. Add a duration or other options when the form asks for them.
  4. Submit the form to prepare a private review.
  5. Check the identity and user ID, action, reason, duration, and any message deletion window. For channel tools, check the selected channel explicitly.
  6. Choose Confirm only when everything is correct. Otherwise Cancel and start again.
  7. Wait for the completed receipt and case number before treating the action as done.

Warnings and Case history are read-only lookups and return without a confirmation. Every Hall action that changes something has a final confirmation. A review expires after five minutes and belongs to the moderator and channel that opened it. Other staff cannot confirm your review.

Search and history details

Unban uses a pasted ID. Ban can target a valid user ID even if the person has left. Most other member actions require the person to still be in the server; warning resets can also target former members.

Hall history lists the latest eight matching cases; Warnings also displays the active warning count. Use /case number:42 to read a retained case's full reason. Replace 42 with the actual case number.

An old or copied Hall panel may be rejected. Open /modhall again. If a previous action's result is uncertain, check history and the member's current state before starting another action.

03 · Giving a warning

A warning is a recorded explanation of a rule breach. It should tell the member what happened and what to change, without insults or speculation.

Recommended workflow

  1. Verify the member, context, evidence and rule.
  2. Check existing warnings and recent cases. Make sure another moderator hasn't already handled this incident.
  3. In Hall, choose Warn, find the member and write the reason.
  4. Review the user ID and reason, then confirm once.
  5. Read the receipt and record the case number. Taffy tries to DM the member the warning and reason.

Slash alternative: /warn member:@Member reason:Repeated personal insults in general after a reminder to stop. Please address the discussion without attacking other members.

The member mention is a placeholder: select the real member in Discord. A slash warning runs when submitted; it does not open the Hall's final review screen.

Useful reasons

Avoid "bad attitude", "because I said so", or a list of private allegations. State the conduct and expected change. Put sensitive evidence and internal discussion in a separate private staff note.

Reasons are optional in the form and command, up to 500 characters. Blank reasons become "No reason provided." For proper staff records, fill the reason in.

Checking the result

Use Hall → Warnings or /warnings member:@Member. The slash view shows up to 15 active warnings; it is not a complete lifetime record. Use /case number:42 for the full stored reason.

If the receipt says the DM was not delivered but the case was saved, the warning already exists. Do not warn again to retry the DM. If appropriate, communicate the boundary through an existing private staff conversation.

If Taffy says the warning was not saved and no DM was sent, ask the bot owner to investigate before deciding whether to try again.

04 · Removing warnings and correcting mistakes

Read this before using Reset warnings: it clears ALL active warnings for the selected person. It does not remove one chosen case.

Taffy currently has no single-warning removal command, no /unwarn, and no editable case-comment field. A reset creates a new reset-warnings case with your reason. Previous cases remain available in history until the configured retention period removes them.

If the only active warning is wrong

  1. Open Warnings and read the original case with /case.
  2. Verify the user ID, active count and evidence. Coordinate with the original moderator or an admin when possible.
  3. Choose Reset warnings for that person.
  4. Explain the correction in the Reason field, including the original case number and who reviewed it.
  5. Check the private review says the correct person and count, then confirm once.
  6. Reopen Warnings to verify the count. Record the new reset case and the original case in the handover.

Example reset comment: "Correction for case 42: wrong member selected. Only one active warning existed; reviewed with AdminName. Reset approved."

Use a real reviewer only if that review actually happened. Taffy does not send a member DM for a warning reset; explain the correction separately when appropriate.

If one warning is wrong but others are valid

Do not use Reset warnings as a substitute for removing that one warning. It would clear the valid warnings too. Ask an admin to review, and leave a linked correction in the private incident record or ModMail note. Make the disputed case and decision easy for future staff to find. Do not automatically reissue valid warnings: that creates new cases, dates and notifications.

If the team approves a complete reset

Review every active warning, document the scope and approval, then use the Hall reset. Check for concurrent staff actions before confirming: the reset covers all warnings active when it completes, not just the ones you first saw.

Adding comments without changing a case

In a relevant ModMail ticket, use /mail note text:Case 42 reviewed; correction requested because ... Decision: ... Reviewed by ...

That is a separate staff-only ticket note, not an edit to case 42. Outside a ticket, post the same structured handover in a private staff channel. Deleting a log message does not remove the warning.

05 · Timeouts and duration formats

A timeout temporarily restricts a member's communication. Choose a duration that fits the incident and the server's policy; the examples here show syntax, not a fixed sanction schedule.

Applying or ending a timeout

Hall → Timeout → choose member → duration → reason → review → Confirm.

Slash alternative: /timeout member:@Member duration:1h30m reason:Continuing targeted insults after a warning; pause the conversation and review the rules before returning.

To end it early, use Hall → Remove timeout, or: /untimeout member:@Member reason:Reviewed on appeal; timeout ended early after correction of the incident record.

Check the existing timeout and coordinate before replacing or ending it. Enter a reason for the change. Discord enforces timeout expiry automatically; it does not depend on Taffy staying online.

Duration syntax

Limits

You cannot timeout the server owner or an Administrator. Taffy also checks permissions and role hierarchy. An unavailable action is a reason to ask an admin, not to try to bypass the safeguard.

06 · Kicks, bans and unbans

Kick

A kick removes the member. It has no duration and does not prevent them from rejoining with a valid invite.

Hall → Kick → member → reason → review → Confirm. /kick member:@Member confirm:true reason:Continued disruption after staff intervention; reviewed under the server rules.

Ban

A ban prevents the account from joining until unbanned. In Hall you can select a current member or paste a valid user ID, including someone who has left.

Check two separate settings:

  1. Ban duration: blank means permanent; a value such as 7d schedules an automatic unban.
  2. Remove recent messages: blank or 0 keeps messages; 1d removes the account's recent messages within that window. This deletion cannot be undone.

Example temporary ban, preserving messages: /ban member:@Member confirm:true duration:7d delete_window:0 reason:Repeated targeted harassment; evidence reviewed and action approved under server policy.

Taffy's temporary-ban worker performs the automatic unban while the bot is online. An outage can delay it. Check the ban state if an expiry has passed; do not promise an exact return time during an outage. A permanent ban has no scheduled expiry.

Preserve necessary evidence before selecting message deletion. Do not select seven days of deletion by habit. A ban is an access decision; removing messages is a separate decision.

Unban

Use Hall → Unban and paste the Discord user ID, or: /unban user_id:USER_ID reason:Appeal reviewed by AdminName; return approved with the server rules explained.

Replace USER_ID with the actual 17–20 digit ID. Unbanning does not automatically rejoin the person, remove warnings or reverse message deletion. Tell them the outcome through an appropriate private route.

Confirmation and notification

Slash Kick and Ban require confirm:true and execute on submission. Hall gives a separate review screen. Taffy attempts a DM for kicks; do not assume a ban includes a delivered DM. Check receipts and communicate the decision when appropriate.

07 · Keeping a channel under control

Hall channel tools ask you to select a channel. The equivalent slash commands act in the channel where you run them. Check this before submitting anything.

Slowmode

Use it to reduce message speed while keeping discussion open. /slowmode duration:10s reason:Temporary pacing while staff resolve an argument. /slowmode duration:off reason:Discussion settled; normal pacing restored.

Range: 1 second–6 hours. Slowmode is not a timeout or a full channel lock. Some permissions allow members to bypass it. Record the previous setting if you plan to restore it later; disabling it does not restore an earlier nonzero value.

Clear messages / purge

Hall → Clear messages → choose channel → count from 1–100 → reason → review → Confirm. /purge count:20 confirm:true reason:Removing the recent spam burst after preserving the incident references.

The count is how many recent messages to inspect, not a promise to delete exactly that many. Taffy preserves pinned messages and messages over two weeks old. Purge removes eligible messages from anyone in that range, not only the reported account. Review the channel first. Deleted content cannot be restored by undoing the command.

Lock and unlock

/lock reason:Containing an active raid while staff review access. /unlock reason:Incident contained; restoring the saved channel send permission.

A Taffy lock changes @everyone's Send Messages permission. Other role/member overrides may still allow messages. It is not a universal lock on every role, voice room or thread. Ask an admin for a broader incident response if needed.

Unlock restores the exact @everyone send-permission state saved by Taffy's lock. If another person changed permissions meanwhile, Taffy can stop and request review. Do not repeatedly unlock or overwrite permissions blindly. Coordinate with an admin and preserve the saved recovery state.

After any channel intervention, check the actual result, explain the temporary restriction briefly, and arrange who will review or restore it. Do not leave emergency settings unattended at the end of your shift.

08 · Reasons, evidence and staff comments

Keep the member-facing explanation separate from sensitive staff discussion.

Action reason

Use: conduct + context/rule + expected change or decision. "Repeated personal insults in general after a reminder. Stop targeting other members and keep disagreements about the topic."

Warn, timeout, remove-timeout and kick reasons are sent in Taffy's attempted member DM. They are not private staff comments. Do not include reporter identities, confidential evidence, personal details or speculation in that field.

Private incident note

Use a relevant ModMail /mail note, or a private staff-channel handover. Taffy does not currently attach editable comments to a moderation case. Link the separate note to the case number and member ID so another moderator can follow it.

Copy and fill this template:

Member ID:
Case number(s):
Incident time and channel:
Rule / observed conduct:
Evidence links / restricted evidence location:
Action and reason:
Review or approval, if any:
Member notified? Delivery issue?
Next step / reviewer / review time:

Include only what another moderator needs to understand the decision. Keep evidence in authorized staff spaces. Never ask for passwords, account tokens or unrelated personal documents.

Corrections and follow-up comments

"Follow-up to case 42: original message context reviewed. Finding: ... Decision: ... Action taken / reset case: ... Reviewed by: ..."

Clearly distinguish an allegation, what you observed, and the review outcome. Do not claim approval that has not happened. If the outcome changes, add a dated follow-up rather than quietly rewriting the story in staff chat.

Retention and evidence limits

Taffy case history and locally stored transcripts are subject to configured retention. A warning reset preserves earlier cases only while they remain retained. Discord copies and separate staff messages have their own availability; deleting a local record does not guarantee every copy disappears.

A message link can stop working after deletion. Keep the minimum allowed evidence needed for review, without spreading harmful material or retaining unnecessary sensitive content.

09 · ModMail and appeals

Use private support for questions, reports and appeals. A member can open ModMail through the staff desk or message Taffy. A respectful appeal is not itself misconduct.

A safe ticket workflow

  1. Read the ticket header and existing conversation before replying.
  2. Use /mail claim to take responsibility, and coordinate if someone already owns the conversation.
  3. Ask for the case number, relevant message links and a concise explanation. Do not demand unrelated personal information.
  4. Read the original case and evidence. If your own action is being appealed, ask another moderator or admin to review it.
  5. Explain the outcome: upheld, shortened, reversed, or awaiting review. State only actions that have actually been completed.
  6. Leave an internal note linking the appeal and any new case. Use /mail release for a handoff, or close with a clear reason when the conversation is finished.

Replies versus internal notes

/mail reply text:Thanks for explaining. We are reviewing case 42 and the surrounding conversation. We will reply here once that review is complete.

/mail note text:Appeal for case 42. Evidence reviewed: ... Proposed outcome: ... Assigned reviewer: ...

The note command is staff-only. The reply command goes to the member. Do not confuse them.

Some ticket channels enable automatic relay: their header says "Type here to reply. Use // for staff-only notes." In those channels, ordinary staff messages can be forwarded to the member. Use /mail note for internal discussion; use the // prefix only where the header confirms that workflow. Read the header every time.

Closing and records

/mail close reason:Appeal reviewed and outcome explained; no further questions pending. confirm:true

/mail transcript downloads the retained local transcript privately. Keep exports within authorized staff access. An internal note does not remove a warning; complete the actual action separately and verify its receipt.

Avoid promising a response deadline you cannot meet. If the reviewer is unavailable, explain that the case is awaiting review and leave a clear handover.

10 · Common situations

These are judgement examples. Use the actual rules, available evidence and your authority; do not treat them as automatic punishments.

Honest first mistake

Give a brief, specific reminder and point to the right channel or rule. If it stops, avoid escalating merely to create a case. If the conduct warrants a formal warning, explain exactly what needs to change.

Repeated spam after a reminder

Verify the account and relevant messages. Consider slowmode for a busy channel, a warning for a clear repeated breach, or a timeout if disruption is continuing. Preserve useful references before purging. Check whether another mod already acted.

Two members arguing

Ask both to stop the public argument. Assess each person's conduct separately; "both were involved" does not mean both deserve the same sanction. Stop retaliation, avoid public cross-examination, and move reports to private support.

Targeted hate, harassment or threats

Contain ongoing harm promptly, protect the targeted member's privacy and alert the admin team. Preserve only necessary evidence without reposting harmful content. Use the action justified by severity and policy; do not wait for a warning count if immediate protection is needed.

Scam links, raids or a compromised account

Avoid opening suspicious files or signing into linked sites. Contain affected accounts/channels within your permissions, preserve message IDs and coordinate with an admin. A familiar account can be compromised. Do not grant extra permissions or ask for a token to "verify" it.

Voice incident or missing context

Record who reported what and what staff actually witnessed. Do not present a second-hand claim as something you heard yourself. Use available Discord voice controls only within your authority; this handbook does not imply Taffy has separate voice-moderation commands.

A friend or another staff member is involved

Ask an uninvolved moderator/admin to handle the review. Keep the same evidence standard and avoid public staff arguments.

Reporting a Discord policy violation

Server moderation and a Discord report are separate actions. For a violating message, right-click it on desktop or hold it on mobile, choose Report Message, then follow the prompts. Alert the admin team for serious incidents; a server ban alone does not file a Discord report.

Official reporting instructions: Discord’s reporting instructions

11 · Permissions and troubleshooting

Both you and Taffy need the relevant permissions. A staff role name, access to this channel or a visible button does not grant every moderation power.

Permission reference

For member actions, your highest role and Taffy's highest role must be above the target's highest role. The actual server owner is exempt from the actor hierarchy comparison, but Taffy still needs its own higher role. Taffy blocks actions on yourself, bots and the owner. Discord also prevents timeouts on Administrators.

Common problems

When asking for help, send the exact error, action, target ID, channel, time and any case number. Never send bot tokens or credentials.

12 · Quick reference and shift handover

Member commands

/modhall — your private controls. /warn member:… reason:… — record a warning. /warnings member:… — up to 15 active warnings. /case number:… — full retained case details. /timeout member:… duration:… reason:… /untimeout member:… reason:… /kick member:… confirm:true reason:… /ban member:… confirm:true duration:… delete_window:… reason:… /unban user_id:… reason:…

… is a placeholder, not text to paste. Select the real member and enter real values. Ban duration and deletion window are optional; blank duration means permanent and blank deletion window keeps messages. All moderation reasons are optional in Taffy, but staff should provide a useful explanation.

Channel commands — run in the affected channel

/slowmode duration:… reason:… /purge count:… confirm:true reason:… /lock reason:… /unlock reason:…

Warning corrections

Hall → Reset warnings clears every active warning. There is no individual-warning removal or case-comment editing command. Use a separately linked staff note for a disputed case; ask an admin before clearing valid warnings.

Ticket commands — use in the relevant ticket

/mail claim · /mail release /mail reply text:… — member-facing. /mail note text:… — staff-only comment. /mail close reason:… confirm:true /mail transcript — retained local transcript.

Before you leave

First-session practice

Open your private Hall, inspect a retained case and identify the Cancel button without confirming an action. Read a ticket's relay instructions. Practise writing a factual reason and a separate private note. Do not issue a real warning, purge, timeout or ban merely to practise.