1 Workflow EN
darksoon edited this page 2026-05-13 21:28:31 +02:00

Mod Workflow

Typical day-to-day moderation workflows.


Rule Violation — Manual

1. /mod warn @User <reason>
   → User receives a DM
   → Entry with P-# ID
   → mod-log updated

2. Repeated offence? → /mod warn again → automatic escalation
   (configurable in mod.yml > escalation):
     at N active warns → timeout
     at M active warns → kick
     at X active warns → ban

Note Without Punishment

/mod note @User <text>
→ no punishment, no DM to the user
→ shows up in /mod history
→ useful for internal staff observations

Softban (Cleanup Without a Permanent Ban)

/mod softban @User reason: "spam cleanup" delete-days: 1
→ user is banned + immediately unbanned + last 24 h of messages deleted
→ user can rejoin immediately, but their spam is gone

Handling a Report

1. User reports someone:  /report @User <reason>
2. Report appears in the mod-log channel
3. Mod reviews the case and manually performs the appropriate action
   (/mod warn / mute / kick / ban / softban)

Handling a Ticket

1. New ticket → category staff roles are pinged
2. Claim button → take ownership of the ticket
3. Resolve the issue
4. Close button (or /ticket close <reason>)
   → transcript goes to ticket-log
   → owner receives a summary + rating prompt

If you need to step away:
→ Unclaim button → another supporter can claim it

Ticket Closed by Mistake?

/tickets reopen <id>
→ channel is recreated with the same owner and category
→ form responses are carried over
→ notice is sent to the log channel

Inactive Ticket

The bot handles this automatically (autoClose):
- Per category: autoCloseAfterHours (e.g. 48)
- Bot checks every checkIntervalMinutes (default 30)
- Activity = any non-bot message in the ticket
- Auto-close uses the same flow as manual close

Move Ticket to Another Category

/ticket transfer <category-id>
→ channel is re-parented
→ new category staff gain access
→ old category staff lose access

Correcting a Warning

Wrong warning?
→ /mod history @User → note the P-# ID
→ /mod unwarn <id> → marked as inactive (no longer counts toward escalation)
  The entry remains visible but is ⚫ instead of 🟢

Lifting a Ban

/mod unban <user-id> [reason]
→ looks up the ban, removes it via the Discord API
→ marks any active ban records as inactive
→ logs an unban event to mod-log

Server Audit Logger in the Background

Regardless of which action is taken: channel, role, member, profile, invite, webhook, emoji, and message events are automatically logged to the mod-log channel with executor ("By:"), target, and details. This makes it easy to reconstruct who did what and when.

Note: Voice channels created and deleted by the Voice module (/voice) trigger the normal CHANNEL_CREATE / CHANNEL_DELETE log entries. Useful for tracking who owned a voice channel and when — see GrumpyVoice-EN.


Voice Channel Conflict

User abusing their channel (spam, harassment, etc.)?
→ Owner asks a mod to join
→ Mod has ManageChannels globally → can rename or delete the channel directly
   (or take it over with /voice claim if the owner has left)

Creating a Custom Command

1. /cc add name: <name> type: <text|embed|role-toggle> response: "<content>"
2. /cc info <name>  →  verify everything looks correct
3. If needed: /cc edit <name> response: "..." or allowed-role: @Role

Important: Role-toggle commands for roles with Manager/Mod permissions are rejected. This is intentional — see GrumpyCommands-EN.


Re-deploying the Help Hub

Help embed in the wrong channel or missing?
→ Fix channels.help in config.yml
→ /help redeploy
   (or restart the bot — auto-deploy runs idempotently)

Tips

  • Always provide a reason — it appears in the mod-log and in the DM
  • Note the P-# IDs when cases need to be documented
  • Use /mod note for internal staff observations without notifying the user
  • /botstatus gives a quick overview when something seems off (module down? memory high?)
  • Respect the role hierarchy — the bot automatically blocks actions against higher-ranked users