| logChannelId | Log and review channel (channel ID, empty = off) | — |
| notify | How to notify members on warn/timeout: direct message, short hint in the channel or not at all | channel |
| timeoutMinutes | Timeout length in minutes (rule action "timeout" and new-member timeouts) | 10 |
| exemptModerators | Ignore members with Manage Messages | true |
| exemptRoleIds | Exempt roles (JSON list of role IDs) | [] |
| exemptChannelIds | Exempt channels (JSON list of channel IDs, threads included) | [] |
| spamEnabled | Spam: too many messages in a short time | true |
| spamMaxMessages | Spam: allowed messages per interval | 6 |
| spamIntervalSeconds | Spam: interval in seconds | 5 |
| spamAction | Spam: action | timeout |
| duplicatesEnabled | Duplicates: the same message over and over | true |
| duplicatesMax | Duplicates: allowed identical messages per minute | 3 |
| duplicatesAction | Duplicates: action | warn |
| wordsEnabled | Blocked words | false |
| words | Blocked words (JSON list, whole words, case-insensitive) | [] |
| wordPatterns | Blocked patterns (JSON list of regular expressions, max. 100 characters each) | [] |
| wordsAction | Blocked words: action | warn |
| invitesEnabled | Discord invite links | true |
| invitesAction | Invite links: action | delete |
| linksEnabled | Link filter (phishing and blocked domains) | false |
| linkBlocklist | Blocked domains (JSON list, subdomains included) | [] |
| linkAllowlistOnly | Only allow links to allowed domains | false |
| linkAllowlist | Allowed domains (JSON list, subdomains included) | [] |
| linksAction | Link filter: action | delete |
| mentionsEnabled | Mass mentions | true |
| mentionsMax | Mass mentions: allowed mentions per message | 5 |
| mentionsAction | Mass mentions: action | timeout |
| capsEnabled | Excessive caps | false |
| capsPercent | Caps: share of capital letters in percent | 75 |
| capsMinLength | Caps: only check messages with at least this many letters | 12 |
| capsAction | Caps: action | delete |
| escalateAfterStrikes | Escalate after this many strikes (0 = never) | 3 |
| escalateWindowHours | Count strikes from the last … hours | 24 |
| escalateAction | Escalation: action | timeout |
| escalateTimeoutMinutes | Escalation: timeout length in minutes | 60 |
| minAccountAgeDays | Minimum account age for new members in days (0 = off) | 0 |
| raidEnabled | Raid detection: switch to raid mode on a join wave | false |
| raidJoins | Raid: joins … | 10 |
| raidSeconds | Raid: … within this many seconds | 10 |
| raidDurationMinutes | Raid mode lasts this many minutes | 15 |
| joinAction | Action for too-new accounts and joins during raid mode | timeout |
| quarantineRoleId | Quarantine role (role ID, for the "quarantine" action) | — |