Table of contents
- Mod Workflow
- Rule Violation — Manual
- Note Without Punishment
- Softban (Cleanup Without a Permanent Ban)
- Handling a Report
- Handling a Ticket
- Ticket Closed by Mistake?
- Inactive Ticket
- Move Ticket to Another Category
- Correcting a Warning
- Lifting a Ban
- Server Audit Logger in the Background
- Voice Channel Conflict
- Creating a Custom Command
- Re-deploying the Help Hub
- Tips
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 normalCHANNEL_CREATE/CHANNEL_DELETElog 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 notefor internal staff observations without notifying the user /botstatusgives a quick overview when something seems off (module down? memory high?)- Respect the role hierarchy — the bot automatically blocks actions against higher-ranked users
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
🔔 Benachrichtigungen & Utility
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
🔔 Notifications & Utility
💬 Commands
👥 Staff