automod.
filters that catch the obvious things before a human has to.
how automod evaluates a message
automod checks ordinary member messages and edited messages before the rest of havoc’s message features. it does nothing until the module is enabled, and each filter is switched independently. one message can match several filters; the case reason records every match, but havoc applies the configured punishment once.
- 01
choose the filters
turn on only the checks that match the server’s rules, such as invites and spam.
- 02
choose one response
set a single punishment used by every enabled filter, with a duration when the response is timeout or mute.
- 03
add known exceptions
whitelist staff roles, trusted members, or channels where the same content is allowed.
- 04
enable and inspect
run
,automod enable, then use,automod statusto verify the stored state.
,automod invites on
,automod links on
,automod spam on
,automod punishment timeout 10m
,automod whitelist add #resources
,automod enable
,automod statusthe five built-in filters
| command | what it does | needs |
|---|---|---|
| /automod links on | enable matching text containing an http, https, or www link; use automod links off to disable it | manage guild |
| /automod invites on | enable matching discord.gg and discord invite URLs; use automod invites off to disable it | manage guild |
| /automod spam on | enable matching a member’s sixth message inside a rolling five-second window; use automod spam off to disable it | manage guild |
| /automod mentions on | enable matching at least five combined user and role mentions, or an everyone/here mention; use automod mentions off to disable it | manage guild |
| /automod caps on | enable matching messages with at least 12 letters where more than 70% are uppercase; use automod caps off to disable it | manage guild |
link and invite checks overlap: a discord invite is also a link when both are on, so the case can name both hits. spam state is kept in memory for recent traffic and is bounded; restarting havoc clears that short five-second window, not the saved filter settings. caps ignores numbers, spaces, and punctuation when calculating its ratio.
link detection does not maintain a safe-domain list, and invite detection does not distinguish your own server’s invite. use a channel, role, or member whitelist where those messages are expected instead of assuming the filter knows which destination is trusted.
blocked words and phrases
the words filter is active whenever the stored list contains a match; it has no separate on/off command. entries are case-insensitive, limited to 100 characters each, and matched at word boundaries. a phrase can contain spaces. up to 100 entries are stored.
| command | what it does | needs |
|---|---|---|
| /automod words add <word or phrase> | add one case-insensitive blocked entry | manage guild |
| /automod words remove <word or phrase> | remove the exact stored entry | manage guild |
| /automod words list | page through the current blocked entries | manage guild |
| /automod words reset | erase the entire blocked-word list | manage guild |
,automod words add buy followers
,automod words add slur
,automod words list
,automod words remove buy followersautomod words reset does not merely disable word checking; it permanently replaces the list with an empty one. use automod words list before resetting if staff need a record.
automatic and configured exemptions
havoc always skips bots, the havoc owner, the server owner, and members who hold administrator, manage server, manage messages, moderate members, kick members, or ban members. those permission-based exemptions are automatic and are not shown in the whitelist.
- ::member whitelist
- skips one member in every channel, regardless of their roles.
- ::role whitelist
- skips every member who currently has that role.
- ::channel whitelist
- skips all member messages sent in that text channel.
| command | what it does | needs |
|---|---|---|
| /automod whitelist add <member, role, or channel> | add one exemption; at most 200 entries are stored | manage guild |
| /automod whitelist remove <member, role, or channel> | remove the resolved exemption | manage guild |
| /automod whitelist list | show the stored member, role, and channel entries | manage guild |
a role with any automatic exemption permission bypasses automod even when it is absent from the whitelist. audit broad staff roles before relying on automod for compromised-account containment.
one punishment for every match
automod punishment without an argument shows the action and stored duration. setting it accepts exactly one of the six responses below. the optional duration is used by timeout and mute and can be no longer than 28 days; both names use discord’s native timeout here.
delete
delete the triggering message. this is the default response.
warn
dm the member with the matched filter names. a closed dm is ignored, but the case is still recorded.
timeout or mute
apply a native discord timeout for the configured duration.
kick or ban
remove the member or ban them without deleting message history.
,automod punishment
,automod punishment delete
,automod punishment mute 30m
/automod punishment action: banchoosing a new action changes the response for links, invites, spam, mentions, caps, and blocked words together. there is no per-filter punishment command.
enabling and inspecting state
| command | what it does | needs |
|---|---|---|
| /automod | show the full automod status card | manage guild |
| /automod status | show enabled state, filters, punishment, lists, and duration | manage guild |
| /automod enable | begin checking messages with the configured filters | manage guild |
| /automod disable | stop checking while retaining filters, lists, and punishment | manage guild |
| /automod links | show whether the links filter is on; the other bare filter commands report their own state | manage guild |
config automod is a higher-level configuration inventory: it reports that automod settings exist without disclosing their values. use automod status, the list commands, and the bare filter commands when staff need the actual state.
cases, logging, and failures
every successful response creates a moderation case named for the action, with a reason such as matched links or spam. timeout and mute cases include the duration. staff can inspect these with the commands in moderation. changing automod settings emits a configuration event, and failed punishments emit a moderation event; route those events through the server’s logging setup.
delete needs access to the message, timeout needs moderate members, kick needs kick members, and ban needs ban members. timeout, mute, kick, and ban also fail when the target’s highest role is equal to or above havoc’s. on failure the triggering message is not treated as deleted, and havoc emits a failure event instead of pretending the punishment worked.
