adb-plugin-aegis
v1.2.1
Published
Automated threat detection for Advanced Discord Bot — anti-raid, anti-spam, anti-link, anti-alt
Maintainers
Readme
Aegis
Automated threat detection and mitigation for Discord servers, built as a plugin for Advanced Discord Bot.
Modules
| Module | Description | Default | |--------|-------------|---------| | Anti-Raid | Detects mass joins and auto-locks the server | Off | | Anti-Spam | Detects duplicate messages and mass mentions | Off | | Anti-Link | Deletes messages containing URLs or Discord invites | Off | | Anti-Alt | Blocks or flags accounts below a minimum age | Off |
All modules are off by default. Enable each one independently per guild.
Installation
# In your ADB plugins directory
npm install adb-plugin-aegisThen add "adb-plugin-aegis" to your ADB plugin list.
Required Bot Permissions
- Manage Roles in the affected channels (to edit lockdown permission overwrites)
- Kick Members / Ban Members (for anti-alt/spam enforcement)
- Moderate Members (timeout, for spam mute)
- Manage Messages (to delete spam/links)
- Manage Guild (to change the verification level for raid lockdown)
- Send Messages + Embed Links (for log channel output)
Configuration Commands
All /antimod subcommands require Administrator permission./antiraid lockdown requires Moderate Members permission.
Setup
/antimod setup Show overview and module list
/antimod status Show all module states and current settings
/antimod log #channel Set the channel for Aegis log embedsAnti-Raid
/antimod raid on
/antimod raid off
/antimod raid threshold <joins> <seconds>
— e.g. /antimod raid threshold 10 10 (10 joins in 10s)When the threshold is hit, Aegis automatically:
- Saves the original verification level and each affected channel's
@everyoneSend Messages state, then raises verification to at least HIGH (never lowering VERY_HIGH) - Denies
SendMessagesfor@everyonein all text channels - Logs to the configured log channel
To lift manually:
/antiraid lockdownLifting restores the saved allow/deny/inherit states and original verification
level, not guessed defaults. Unrelated permissions and newly created channels are
left alone. This only changes @everyone; explicit role/member allows can still
permit sending messages. Failed changes are reported as incomplete and retain the
snapshot for a restoration retry, including across restarts. Lockdowns created by
older versions without a snapshot need manual restoration; Aegis refuses to guess.
Anti-Spam
/antimod spam on
/antimod spam off
/antimod spam action <warn|mute|kick|ban>
— "mute" applies a 10-minute timeout (default)Triggers on N identical messages in a window, or a single message with N+ mentions.
Anti-Link
/antimod link on
/antimod link off
/antimod link whitelist <domain>
— e.g. /antimod link whitelist github.comDiscord invite links (discord.gg/...) are always blocked when the module is on, regardless of the whitelist.
Whitelisted domains are stored per guild and persist across restarts.
Anti-Alt
/antimod alt on
/antimod alt off
/antimod alt age <days> — minimum account age (default: 7 days)Actions:
- flag (default) — logs the join to the log channel; member is not removed
- kick — immediately kicks the member with a reason
Development / Testing
npm install
npm testTests run without a real Discord connection or database (in-memory mocks).
License
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.
This repository follows the policies of the main ADB project.
- Contribution Guidelines: CONTRIBUTING.md
- Code of Conduct: CODE_OF_CONDUCT.md
- Security Policy: SECURITY.md
