raid & nuke protection.
what happens when many accounts arrive at once, or a staff account turns.
six separate controls
raid cleanup, the antinuke command allowlist, automatic guards, and channel nuking solve different problems. the first is a manual response, the next limits who can use certain havoc commands, and the guards watch for bursts of harmful activity. nuke replaces a text channel with a clone, either now or on a schedule.
raid
select recent non-bot joins by a lookback duration, then ban, kick, or timeout them in a chunked task.
config antinuke
name the administrators allowed to run commands marked as antinuke-protected. the server owner is always allowed.
guard
watch confirmed audit-log actors for repeated channel, role, webhook, ban, and kick actions. off until the server owner enables it.
raidguard
alert on join waves and kick members who repeatedly post the same message across channels. off until the server owner enables it.
honeypot
create a dedicated trap channel. posting there triggers a kick by default, or a ban if configured, with a private notice and bounded message cleanup.
nuke
clone a text channel and retire the original. this is channel recreation, not a watchlist or account detector.
config antinuke only protects havoc commands marked “antinuke admin,” such as manual nuke or hardban. guard is a separate opt-in watcher for actions confirmed by discord’s audit log. neither one can undo deleted channels or roles.
a dedicated honeypot channel
honeypot setup creates a writable trap channel with a warning panel and persistent kick/ban counts. its optional channel_type choice is honeypot (the default) or random, which generates a 16-character name from lowercase letters and digits. any message from a non-exempt account triggers the configured action, including command messages. the default is a kick. this is a channel rule, not proof of automation. havoc attempts a private notice before removal; closed dms do not prevent the action.
| command | what it does | needs |
|---|---|---|
| /honeypot setup [honeypot|random] | create a trap named honeypot or generate a random name | manage server + manage channels |
| /honeypot channel <channel> | use an existing dedicated text channel | manage server |
| /honeypot action <kick|ban> | choose the removal action | manage server |
| /honeypot hide <role> | hide the trap from an established-member role and exempt it | manage server + manage channels |
| /honeypot exempt add/remove <role> | manage role exemptions; removing one does not unhide the channel | manage server |
| /honeypot status / on / off | inspect or toggle protection | manage server |
,honeypot setup
/honeypot setup channel_type: random
,honeypot hide @Members
,honeypot action kick
/honeypot statusserver and bot owners, staff with moderation permissions, antinuke admins, exempt roles, bots and webhooks are ignored. havoc needs the configured kick/ban permission and sufficient role hierarchy. the trap also needs view channel, send messages, embed links, read message history and manage messages. new arrivals must retain view and send access; existing role overwrites can affect that access.
cleanup searches up to 200 messages from the last hour in each accessible text channel and active cached thread, deleting only the caught account’s messages. inaccessible channels and failures are reported through moderation logging. archived threads are not scanned, and interrupted background cleanup is not retried after restart. ban mode also requests discord’s one-hour message deletion.
cleaning up a join wave
raid sorts current non-bot members by join time and selects everyone whose join falls inside the supplied duration. it then applies the chosen action at half-second intervals and creates a case for each successful target. the command runner needs ban members to start it and also needs the permission for the chosen action.
| command | what it does | needs |
|---|---|---|
| /raid <duration> ban <reason> | ban non-bot members who joined inside the lookback window | ban members |
| /raid <duration> kick <reason> | kick the selected recent joins | ban members + kick members |
| /raid <duration> timeout <reason> | timeout selected recent joins for one hour | ban members + moderate members |
,raid 20m ban coordinated join raid
/moderation raid duration: 10m action: timeout reason: review recent joinsthe lookback is capped at seven days. timeout always lasts one hour and is stored for scheduled release. raid does not inspect account age, messages, roles, or intent: join time is the complete selection rule.
raid has no preview subcommand and cancellation does not undo completed actions. legitimate newcomers inside the same window are targets too. check discord’s member list and choose the narrowest defensible duration before running it.
automatic protection against destructive staff actions
guard uses discord audit-log entries to identify the acting member. after at least four distinct destructive targets in 15 seconds by the same member, it bans them by default or kicks them if you choose that action. channel, role, and webhook deletions plus member bans and kicks count. rapid webhook creations or updates and channel or role edits can raise an alert but never trigger punishment by themselves.
| command | what it does | needs |
|---|---|---|
| /guard | show whether automatic protection is on and which action it uses | server owner |
| /guard on|off | enable or disable audit-log protection | server owner |
| /guard action kick|ban | choose what happens after a confirmed destructive burst | server owner |
,log add #staff-log moderation
,guard action ban
,guard on
,guard statusthe server owner, protected accounts, havoc itself, and members on the antinuke trusted-admin list are exempt. havoc must be able to view the audit log and have ban members or kick members, as selected, with a role above the actor. one deletion is not enough to punish someone, and an unknown actor is never punished. if a log route is configured, alerts go to the moderation log. the guard starts off in each server.
legitimate staff can perform bulk cleanup. add trusted staff with config antinuke add before enabling guard, and route moderation logs so you can review actions and failures. audit-log detection can stop a repeated actor, but cannot restore damage that already happened.
join-wave and repeat-spam protection
raidguard alerts when 12 non-bot members join within 30 seconds. a join wave alone does not prove any individual account is malicious, so it never kicks joiners just for joining. separately, when one non-staff member posts the same message at least eight times across two or more channels within 20 seconds, it attempts to kick that member. it skips commands, trusted administrators, protected accounts, and members with manage server permission.
| command | what it does | needs |
|---|---|---|
| /raidguard | show the current protection setting | server owner |
| /raidguard on|off | enable or disable join-wave alerts and repeat-spam protection | server owner |
,log add #staff-log moderation
,raidguard on
,raidguard statusthe repeat-spam kick needs kick members permission and sufficient role hierarchy. when the existing automod spam rule is enabled, that rule handles messages instead, so the two systems do not punish the same burst twice. the guard starts off in each server and uses the moderation log route for alerts.
the antinuke trust model
only the server owner can change the antinuke administrator list. the owner does not need to be listed and always passes the antinuke check. every other member must satisfy the command’s ordinary discord permissions and have their user id in this allowlist.
| command | what it does | needs |
|---|---|---|
| /config antinuke | show the antinuke administrator ids | server owner |
| /config antinuke list | show the same trusted administrator list | server owner |
| /config antinuke add <member> | trust one member for antinuke-protected commands | server owner |
| /config antinuke remove <member> | revoke that extra antinuke access | server owner |
,config antinuke list
,config antinuke add @operations-lead
,config antinuke remove @former-admin- ::server owner
- always exempt from the antinuke allowlist requirement and solely controls membership.
- ::antinuke admin
- a specifically trusted member who may pass the extra gate, provided they also hold the command’s normal permission.
- ::everyone else
- blocked from protected command paths even if they hold administrator in discord.
before granting or using access
- 01
reduce the trusted set
list only people who genuinely need persistent hardbans or manual channel replacement; administrator alone is not a reason to add someone.
- 02
secure the owner account
the owner always bypasses this extra gate, so strong account security matters more than a long allowlist.
- 03
place havoc correctly
move havoc above members it may remove and ensure it can manage the channels it may clone or retire.
- 04
configure logs
route moderation and management events before an incident so cases and failures have an external paper trail.
- 05
rehearse narrowly
test raid timing with staff judgment and test nuke behavior only in a disposable text channel.
command restrictions can narrow who invokes a command, but they do not replace the antinuke gate. see permissions & security for the interaction between discord permissions, role hierarchy, and server command restrictions.
what a channel nuke actually does
running bare nuke in a text channel clones that channel, keeps its name, position, and permission overwrites, then deletes the original by default. the replacement has a new channel id. lock, hide, and lockdown restoration records are copied so later recovery still points at the replacement.
| command | what it does | needs |
|---|---|---|
| /nuke | replace the current text channel immediately | administrator + antinuke admin |
| /nuke archive <channel or schedule id> on|off | choose whether future replacement archives the original instead of deleting it | administrator |
| /nuke view <channel or schedule id> | show interval, archive, and cancellation state for a schedule | administrator |
| /nuke list | list active scheduled channel replacements | administrator |
cloning reproduces channel configuration, not message history. with archive off, deleting the original removes its messages with it. with archive on, havoc renames the old channel, denies sending across its existing overwrites, and locks its threads, leaving a read-only record for administrators.
havoc journals each replacement before deleting the source and can resume a partially completed operation after interruption. that protects the replacement process from a restart; it does not turn deletion into a reversible action.
scheduled channel replacement
schedules repeatedly replace one channel. each cycle updates the saved channel id to the latest replacement, posts the configured announcement without mentions, creates a scheduled nuke case, and schedules the next cycle. the minimum interval is one hour and the maximum is one year.
| command | what it does | needs |
|---|---|---|
| /nuke add <channel> <interval> <message> | create a repeating replacement schedule and return its stable id | administrator |
| /nuke remove <channel or schedule id> | cancel an existing schedule | administrator |
| /nuke view <channel or schedule id> | inspect one schedule | administrator |
| /nuke list | show active schedule ids, channels, intervals, and archive state | administrator |
| /nuke archive <channel or schedule id> on|off | save archive behavior for that channel and any matching schedule | administrator |
,nuke archive #daily-chat on
,nuke add #daily-chat 24h a fresh daily chat is ready
,nuke list
,nuke view #daily-chatonly one active schedule may exist for a channel. manual nuke refuses to run while that channel has an active schedule; remove the schedule first. removing it cancels future cycles but does not restore channels retired by earlier cycles.
hierarchy, permissions, and incident records
raid can fail per target when havoc’s role is not high enough or its action permission is missing. the bulk task reports completed and rejected totals. nuke requires a text channel havoc can clone, edit, and delete; it pauses rather than deleting when the recorded replacement disappears or recovery cannot identify a safe source.
the antinuke allowlist protects manual nuke and hardban paths marked by the command registry; it does not itself watch audit events. guard and raidguard are separate opt-in protections. scheduled nuke configuration needs administrator but is not marked with the antinuke gate, and manual raid uses ban members plus its selected action permission.
raid creates moderation cases for successful targets, while manual and scheduled replacements create management cases. configure event routing in logging before relying on those records during an incident.
