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.

notethe allowlist is not the automatic guard

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.

a dedicated honeypot channel commands
commandwhat it doesneeds
/honeypot setup [honeypot|random]create a trap named honeypot or generate a random namemanage server + manage channels
/honeypot channel <channel>use an existing dedicated text channelmanage server
/honeypot action <kick|ban>choose the removal actionmanage server
/honeypot hide <role>hide the trap from an established-member role and exempt itmanage server + manage channels
/honeypot exempt add/remove <role>manage role exemptions; removing one does not unhide the channelmanage server
/honeypot status / on / offinspect or toggle protectionmanage server
,honeypot setup
/honeypot setup channel_type: random
,honeypot hide @Members
,honeypot action kick
/honeypot status

server 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.

cleaning up a join wave commands
commandwhat it doesneeds
/raid <duration> ban <reason>ban non-bot members who joined inside the lookback windowban members
/raid <duration> kick <reason>kick the selected recent joinsban members + kick members
/raid <duration> timeout <reason>timeout selected recent joins for one hourban members + moderate members
,raid 20m ban coordinated join raid
/moderation raid duration: 10m action: timeout reason: review recent joins

the 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.

dangerverify the time window first

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.

automatic protection against destructive staff actions commands
commandwhat it doesneeds
/guardshow whether automatic protection is on and which action it usesserver owner
/guard on|offenable or disable audit-log protectionserver owner
/guard action kick|banchoose what happens after a confirmed destructive burstserver owner
,log add #staff-log moderation
,guard action ban
,guard on
,guard status

the 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.

warningautomatic actions need a trusted-admin list

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.

join-wave and repeat-spam protection commands
commandwhat it doesneeds
/raidguardshow the current protection settingserver owner
/raidguard on|offenable or disable join-wave alerts and repeat-spam protectionserver owner
,log add #staff-log moderation
,raidguard on
,raidguard status

the 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.

the antinuke trust model commands
commandwhat it doesneeds
/config antinukeshow the antinuke administrator idsserver owner
/config antinuke listshow the same trusted administrator listserver owner
/config antinuke add <member>trust one member for antinuke-protected commandsserver owner
/config antinuke remove <member>revoke that extra antinuke accessserver 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

  1. 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.

  2. 02

    secure the owner account

    the owner always bypasses this extra gate, so strong account security matters more than a long allowlist.

  3. 03

    place havoc correctly

    move havoc above members it may remove and ensure it can manage the channels it may clone or retire.

  4. 04

    configure logs

    route moderation and management events before an incident so cases and failures have an external paper trail.

  5. 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.

what a channel nuke actually does commands
commandwhat it doesneeds
/nukereplace the current text channel immediatelyadministrator + antinuke admin
/nuke archive <channel or schedule id> on|offchoose whether future replacement archives the original instead of deleting itadministrator
/nuke view <channel or schedule id>show interval, archive, and cancellation state for a scheduleadministrator
/nuke listlist active scheduled channel replacementsadministrator
dangermessages do not move to the clone

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.

scheduled channel replacement commands
commandwhat it doesneeds
/nuke add <channel> <interval> <message>create a repeating replacement schedule and return its stable idadministrator
/nuke remove <channel or schedule id>cancel an existing scheduleadministrator
/nuke view <channel or schedule id>inspect one scheduleadministrator
/nuke listshow active schedule ids, channels, intervals, and archive stateadministrator
/nuke archive <channel or schedule id> on|offsave archive behavior for that channel and any matching scheduleadministrator
,nuke archive #daily-chat on
,nuke add #daily-chat 24h a fresh daily chat is ready
,nuke list
,nuke view #daily-chat

only 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.

warningsimilar names do not share safeguards

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.