Core Features

Moderation

Advanced moderation with case tracking and automatic enforcement

Table of Contents

Moderation System

Lumière provides a comprehensive moderation toolkit with case tracking, automatic enforcement, strike systems, and detailed analytics. All moderation actions are logged with unique case IDs for accountability and appeals.

Quick Start: Use /warn @user reason for your first moderation action. Each action gets a unique case ID and is logged automatically.

Core Features

Case Management

  • Unique Case IDs: Every action gets a trackable case ID
  • State Tracking: Cases are marked as OPEN or CLOSED
  • Proof Attachments: Upload evidence for actions
  • Moderator Visibility: Toggle whether moderators are shown in DMs

Permission Requirements

User Permissions

Commands require specific Discord permissions:

CommandRequired Permission
/warn, /pardonManage Messages
/mute, /unmuteModerate Members
/kickKick Members
/ban, /unbanBan Members
/case deleteView Audit Log
/modvisibilityModerate Members
/sayAdministrator

Bot Permissions

The bot needs matching permissions to execute actions:

  • Moderate Members - For timeouts
  • Kick Members - For kicks
  • Ban Members - For bans
  • Manage Messages - For message operations
  • View Audit Log - For case management
Hierarchy Check: Lumière cannot moderate users with equal or higher roles than itself or the moderator.

Basic Commands

/warn

Issue a warning with optional duration and proof.

/warn user:@User reason:"Spam" duration:"30d" proof:<attachment> dm:true
user
Member required
The user to warn
reason
String required
Reason for the warning
duration
String
Warning duration (default: 30d)
Formats: 5s, 10m, 2h, 30d, 1w
proof
Attachment
Evidence image or file
dm
Boolean
Send DM notification (default: true)

Features:

  • Generates unique case ID
  • Tracks expiration automatically
  • Checks for duplicate warnings (5min window)
  • DM includes case details and proof
  • Dispatches event for logging

Duration Format Examples:

InputMeaning
5s, 5sec5 seconds
10m, 10min10 minutes
2h, 2hr2 hours
3d, 3day3 days
1w, 1week1 week (7 days)
1.5h1 hour 30 minutes
2.5d2 days 12 hours
1h30m1 hour 30 minutes
2d12h2 days 12 hours
1w3d12h30m15s1 week 3 days 12 hours 30 minutes 15 seconds
1h 30m 15s1 hour 30 minutes 15 seconds (spaces allowed)
Note: If a unit is repeated in a duration (e.g., 2m2m), the parser sums the values by default, resulting in 4m.

/warns

View warnings for a user.

/warns user:@User all:false
user
Member
User to check (default: yourself)
all
Boolean
Show closed/expired warnings (default: false)

Display includes:

  • Case ID and status (OPEN/CLOSED)
  • Expiration timestamp (relative time)
  • Reason for each warning
  • Total warning count

/pardon

Remove active warnings from a user.

/pardon user:@User reason:"Good behavior" all:false dm:true
user
Member required
User to pardon
reason
String required
Reason for removal
all
Boolean
Remove ALL warnings (default: False)
dm
Boolean
Send DM notification (default: True)

Behavior:

  • By default: Removes the most recent warning only
  • With all:true: Shows confirmation for removing all warnings
  • Updates case state to CLOSED
  • Records who pardoned and when
  • Dispatches moderation event
Removing all warnings triggers a confirmation prompt to prevent accidents.

/mute

Apply a Discord timeout to a user.

/mute user:@User reason:"Spam" duration:"2h" dm:true
user
Member required
User to timeout
reason
String required
Reason for the mute
duration
String required
Timeout duration
Formats: 5s, 10m, 2h, 3d, 1 hour, 2 days
dm
Boolean
Send DM notification (default: true)

Features:

  • Uses Discord's native timeout system
  • Maximum duration: 28 days (Discord limit)
  • Creates case with MUTE type
  • Shows relative expiration time
  • Automatic case closure on expiry
All duration inputs use the same format across the bot for consistency.

/unmute

Remove a timeout from a user.

/unmute user:@User reason:"Appeal approved" dm:true
user
Member required
User to unmute
reason
String
Reason for removal (default: "No reason provided")
dm
Boolean
Send DM notification (default: true)

Validation:

  • Checks if user is actually timed out
  • Prevents unmuting non-muted users
  • Closes any open MUTE cases
  • Records closure reason and timestamp

/kick

Remove a user from the server.

/kick user:@User reason:"Rule violations" dm:true
user
Member required
User to kick
reason
String required
Reason for the kick
dm
Boolean
Send DM notification (default: true)

Features:

  • Sends DM before kicking
  • Creates case with KICK type
  • Auto-closes case if user rejoins
  • Dispatches "Un(Kick)" event on rejoin

Auto-Closure Logic: When a kicked user rejoins, Lumière automatically:

  1. Finds the open KICK case
  2. Updates status to CLOSED
  3. Sets close reason: "User rejoined the server after kick"
  4. Dispatches moderation event

/ban

Ban a user from the server.

/ban user:@User reason:"Harassment" duration:"7d" proof:<file> hack:false soft:false purge_days:1 dm:true
user
User required
User to ban (can be ID if not in server)
reason
String required
Reason for the ban
duration
String
Temporary ban duration (optional)
Leave empty for permanent
proof
Attachment
Evidence file
hack
Boolean
Ban user not in server by ID (default: false)
soft
Boolean
Soft ban: ban then unban (default: false)
purge_days
Integer
Days of messages to delete (0-7, default: 0)
dm
Boolean
Send DM notification (default: true)

Ban Types:

Permanent Ban

/ban user:@User reason:"Severe rule break"
  • No duration specified
  • Requires manual unban
  • Case stays OPEN until unban

Temporary Ban

/ban user:@User reason:"Cooldown needed" duration:"7d"
  • Automatically schedules unban
  • Case closes on expiration
  • Shows relative expiration time

Soft Ban

/ban user:@User reason:"Message cleanup" soft:true purge_days:7
  • Bans user immediately
  • Deletes messages (up to 7 days)
  • Unbans automatically after 1.5 seconds
  • Closes case immediately
  • Useful for mass message removal

Hack Ban

/ban user:123456789 reason:"Pre-emptive ban" hack:true
  • Ban users not currently in server
  • Requires user ID instead of mention
  • Useful for ban lists from other servers

Message Purging:

  • purge_days:0 - No messages deleted
  • purge_days:1 - Delete last 24 hours
  • purge_days:7 - Delete last 7 days (maximum)

/unban

Remove a ban from a user.

/unban user:@User reason:"Appeal approved" dm:true
user
User required
User to unban (mention or ID)
reason
String
Reason for unban (default: "No reason provided")
dm
Boolean
Send DM notification (default: true)

Features:

  • Verifies user is actually banned
  • Closes any open BAN cases
  • Generates new case if no open case exists
  • Records unban reason and moderator
  • Sends DM with case ID

Mass Moderation

All mass commands follow the same pattern and include confirmation prompts.

/mass warn

Warn multiple users at once.

/mass warn users:"@User1 @User2 @User3" reason:"Spam raid" duration:"7d" proof:<file> dm:true
users
String required
Space-separated mentions or IDs
reason
String required
Reason for warnings
duration
String
Warning duration (default: 30d)
proof
Attachment
Shared evidence file
dm
Boolean
Send DM to all users (default: true)

Process:

  1. Parses mentions and IDs
  2. Shows confirmation with user list
  3. Creates individual case for each user
  4. Reports success/failure per user
  5. Shows DM status for each

/mass pardon

Remove warnings from multiple users.

/mass pardon users:"@User1 @User2" reason:"False positive" all:false dm:true
users
String required
Users to pardon
reason
String required
Reason for pardons
all
Boolean
Remove all warnings per user (default: false)
dm
Boolean
Send DM notifications (default: true)

Behavior:

  • Single confirmation for all users
  • Removes latest warning by default
  • With all:true: Removes all warnings per user
  • Reports closed case IDs per user

/mass mute

Timeout multiple users at once.

/mass mute users:"@User1 @User2 @User3" reason:"Raid prevention" duration:"1h" proof:<file> dm:true
users
String required
Users to timeout
reason
String required
Reason for mutes
duration
String required
Timeout duration
proof
Attachment
Evidence file
dm
Boolean
Send DM notifications (default: true)

Features:

  • Confirmation with user list
  • Individual case per user
  • Skips users with higher roles
  • Shows permission failures

/mass unmute

Remove timeouts from multiple users.

/mass unmute users:"@User1 @User2" reason:"Raid over" dm:true
users
String required
Users to unmute
reason
String
Reason for removal
dm
Boolean
Send DM notifications (default: true)

Validation:

  • Checks each user is actually muted
  • Skips non-muted users with notice
  • Closes open MUTE cases
  • Reports individual status

/mass kick

Kick multiple users at once.

/mass kick users:"@User1 @User2" reason:"Raid participants" proof:<file> dm:true
users
String required
Users to kick
reason
String required
Reason for kicks
proof
Attachment
Evidence file
dm
Boolean
Send DM notifications (default: true)

/mass ban

Ban multiple users at once.

/mass ban users:"@User1 @User2 123456789" reason:"Coordinated raid" duration:"7d" proof:<file> hack:true soft:false purge_days:1 dm:true
users
String required
Users to ban (mentions or IDs)
reason
String required
Reason for bans
duration
String
Temporary ban duration (optional)
proof
Attachment
Evidence file
hack
Boolean
Allow banning by ID (default: false)
soft
Boolean
Soft ban all users (default: false)
purge_days
Integer
Message deletion days (0-7)
dm
Boolean
Send DM notifications (default: true)

Features:

  • Supports mix of members and IDs (with hack:true)
  • Individual case per user
  • Schedules temporary unbans per user
  • Reports bans and failures separately

Example for Raid:

/mass ban users:"@Raider1 @Raider2 @Raider3" reason:"Coordinated spam raid" soft:false purge_days:1

Example for Soft Ban (Cleanup):

/mass ban users:"@Spammer1 @Spammer2" reason:"Mass message cleanup" soft:true purge_days:7

/mass unban

Unban multiple users by ID.

/mass unban user_ids:"123456789 987654321" reason:"Ban wave reversed" dm:true
user_ids
String required
Space-separated user IDs
reason
String
Reason for unbans
dm
Boolean
Send DM notifications (default: true)

Features:

  • Fetches users by ID
  • Verifies each is actually banned
  • Closes open BAN cases
  • Shows success/failure per ID
Mass Action Tips:
  • Use confirmation to review before executing
  • Check failure reports for permission issues
  • Failed DMs indicate closed DMs (action still succeeds)

Case Management

/case info

View detailed information about a case.

/case info case: e6cdDbPo
case
String
Case ID (leave empty for your most recent case)

Information Displayed:

  • Case ID, type, and status (OPEN/CLOSED/EXPIRED)
  • Target user and reason
  • Duration and expiration time
  • Proof attachment link (if any)
  • Closure information (who closed, when, why)

/case list

List moderation cases with optional filtering.

/case list user:@User user2:@OtherUser
user
User
Filter by first user
user2
User
Filter by second user

Features:

  • Shows up to 5 cases per page
  • Sorts newest first
  • Pagination for long lists
  • Filters by user(s) if specified
  • Shows case ID, type, status, moderator, reason, and time

/case delete

Delete a case or all cases.

/case delete case:"WRN-123" all:false
case
String
Case ID to delete
all
Boolean
Delete ALL cases in server (default: false)

Safety Features:

  • Requires confirmation before deletion
  • Shows case details (if single case)
  • Shows total count (if deleting all)
  • Warns that deletion is irreversible
  • Dispatches "Case Delete" event for logging
Permanent Deletion: Deleted cases cannot be recovered. This will also remove historical data and appeal records.

Configuration

/modvisibility

Toggle whether moderator names appear in moderation DMs.

/modvisibility visible:true
visible
Boolean required
Show moderator names (true or false)

Warning Notification:


┌ You've been warned in ServerName!
│ Case ID: WRN-123
│ Reason: Spam
│ Moderator: @ModName   ← only shown if notifications enabled
│ Duration: 30d

Use Cases:

  • Enable: Transparent moderation with accountability
  • Disable: Protect moderators from targeted harassment
  • Privacy: Reduce moderator doxxing risk in public servers

Utility Commands

/say

Make the bot send a message in a channel.

/say message:"Welcome to the server!" channel:#welcome attachment:<file>
message
String required
Message content
channel
TextChannel
Target channel (default: current channel)
attachment
Attachment
Optional file to attach

Permissions Required:

  • User: administrator
  • Bot: send_messages in target channel

/nuke

Clone and delete a channel (full reset).

/nuke channel:#spam-chat
channel
TextChannel
Channel to nuke (default: current channel)

Process:

  1. Asks for confirmation (type confirm within 10 seconds)
  2. Clones the channel (preserves settings)
  3. Maintains channel position
  4. Deletes original channel
  5. Sends confirmation embed in new channel
Nuke permanently deletes all messages. This cannot be undone. Use for emergency spam cleanup or channel reset.

Moderator Statistics

Comprehensive analytics for moderation activity and performance tracking.

/modstats overview

Get a comprehensive overview of moderation statistics.

/modstats overview days:30 moderator:@Mod
days
Integer
Analysis period (1-365, default: 30)
moderator
Member
Specific moderator to analyze (optional)

/modstats leaderboard

View top moderators ranked by activity and quality.

/modstats leaderboard days:30 limit:10
days
Integer
Analysis period (default: 30)
limit
Integer
Number of moderators to show (1-25, default: 10)

Ranking Criteria:

  1. Manual Actions (primary sort)
  2. Escalations (tiebreaker)
  3. Overall activity quality

Per-Moderator Metrics:

  • Total actions (manual + auto)
  • Manual action ratio
  • Escalations (WARN → harsher penalty)
  • Actions per day average
  • Total strikes issued
Quality Focus: Leaderboard prioritizes manual moderation and appropriate escalation over raw action count.

/modstats user

View detailed moderation history for a specific user.

/modstats user user:@User days:90
user
User required
User to analyze
days
Integer
Analysis period (default: all time)

/modstats timeline

View moderation activity over time.

/modstats timeline days:30
days
Integer
Period to analyze (7-90, default: 30)

Features:

  • Daily activity breakdown
  • Top 3 action types per day
  • Total actions per day
  • Shows last 14 days maximum

/modstats export

Export raw moderation data to CSV file.

/modstats export days:90
days
Integer
Days of data to export (1-365, default: 30)

Requires: administrator permission

CSV Columns:

  • Case ID
  • User ID
  • Moderator ID
  • Type (WARN, MUTE, BAN, etc.)
  • Reason (escaped for CSV)
  • Strikes
  • Timestamp (YYYY-MM-DD HH:MM:SS UTC)
  • State (OPEN/CLOSED)
  • AutoMod (true/false)
  • Duration
Data Analysis: Export to Excel, Google Sheets, or data visualization tools for custom insights.