From 8745372b2df537e2f131ab5f1e62f1185b81b3d9 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 1 Jul 2026 17:35:39 +0200 Subject: [PATCH 1/4] feat: updated module documentation --- docs/custom-bot/modules/community/activity-streak.md | 6 ++++-- docs/custom-bot/modules/community/birthday.md | 3 ++- docs/custom-bot/modules/community/serverinfo.md | 6 ++++++ .../current/custom-bot/modules/community/activity-streak.md | 6 ++++-- .../current/custom-bot/modules/community/birthday.md | 3 ++- .../current/custom-bot/modules/community/serverinfo.md | 6 ++++++ 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/docs/custom-bot/modules/community/activity-streak.md b/docs/custom-bot/modules/community/activity-streak.md index d78b0b79..77037b8c 100644 --- a/docs/custom-bot/modules/community/activity-streak.md +++ b/docs/custom-bot/modules/community/activity-streak.md @@ -30,7 +30,7 @@ Reward users for being active every day, week, or month with an activity score t - In automatic mode, the bot tracks user activity based on messages sent. When a user sends a message during a new period, their streak is incremented. If they miss an entire period, their streak resets to zero. - In staff-managed mode, staff members use [`/streak add`](#commands) to manually add streak points to users. - Users can view their current and longest streak using [`/streak view`](#commands). -- If streak restoration is enabled, users who lost their streak can use [`/streak restore`](#commands) to recover it once. +- If streak restoration is enabled, users who lost their streak can use [`/streak restore`](#commands) to recover it once. You can optionally set a time limit (in days) after which a lost streak can no longer be restored. Restoring keeps the higher of the current and previous streak, so a member who already started a new streak never loses progress. - When a user reaches a streak count that matches a configured role reward, the role is automatically assigned. ## Commands {#commands} @@ -43,7 +43,7 @@ Reward users for being active every day, week, or month with an activity score t | `/streak add user:` | Manually add a streak point to a user. Only available in staff-managed mode. Requires a configured staff role. | | `/streak remove user:` | Subtract one from a user's streak count. Useful for correcting mistakes without fully resetting. Only available in staff-managed mode. Requires a configured staff role. | | `/streak reset user:` | Fully reset a user's streak, clearing both the current streak and any saved backup, and removing all streak-related roles. Only available in staff-managed mode. Requires a configured staff role. | -| `/streak restore [user:]` | Restore a previously lost streak. Only available if streak restoration is enabled. Can only be used once per streak loss. | +| `/streak restore [user:]` | Restore a previously lost streak. Only available if streak restoration is enabled. Can only be used once per streak loss, and only within the configured restore time limit (if one is set). | | `/streak leaderboard` | Show the top 20 active streaks on the server. Available in both staff-managed and automatic modes. | | `/streak hide` | Toggle whether your streak is displayed in your nickname. Only available when nickname display is enabled and the "Allow users to hide streak from nickname?" option is turned on. | @@ -65,6 +65,7 @@ In this configuration file, you can configure the module. Open it in your [dashb | Ignored Roles | Roles whose members' messages do not count toward streaks. | | Enable Restore | If enabled, users can restore a lost streak once per loss. | | Restore Roles | Roles that are allowed to use the restore command. If empty, all users can restore. | +| Restore time limit (days) | How many days after losing a streak users can still restore it with `/streak restore`. Set to `0` for no time limit. Only applies when "Enable Restore" is turned on. | ## Troubleshooting {#troubleshooting} @@ -103,6 +104,7 @@ The following data is being stored about every user with an active or previous s - The last activity date, week, or month (depending on the configured period) - The previous streak count (for restoration purposes) - The timestamp of the last restoration +- The timestamp when the streak was last lost (used to enforce the restore time limit) - Metadata about the entry (date when created and last updated) To remove all data stored by this module, [purge the module database](/docs/custom-bot/additional-features#reset-module-database). diff --git a/docs/custom-bot/modules/community/birthday.md b/docs/custom-bot/modules/community/birthday.md index 8fda1506..cfe6e636 100644 --- a/docs/custom-bot/modules/community/birthday.md +++ b/docs/custom-bot/modules/community/birthday.md @@ -11,7 +11,7 @@ Let users set their birthday and congratulate them when they have a birthday. - The bot automatically sends birthday congratulation messages every day at midnight. - Optionally assign a birthday role to users on their birthday (removed automatically the next day). - If a user provides their birth year, the congratulation message can include their age. -- Optional pre-birthday notifications posted in the birthday channel a configurable number of days before a user's birthday. Multiple lead times can be configured (e.g. both 7 days and 1 day before). +- Optional pre-birthday notifications posted a configurable number of days before a user's birthday. Multiple lead times can be configured (e.g. both 7 days and 1 day before), and they can optionally be routed to their own channel, separate from the actual congratulation messages. - `/birthday upcoming` lets any member preview the next N days of upcoming birthdays without browsing the embed. - Birthday data is automatically removed when a member leaves the server. - Optional admin birthday management: admins can set, remove, lock, and unlock user birthdays. @@ -104,6 +104,7 @@ The configuration is organized into tabs in the dashboard - the rows below are g | Field | Description | | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Enable pre-birthday notifications? | If enabled, the bot posts a notification in the birthday channel a configurable number of days before each user's birthday. | +| (optional) Pre-Birthday-Channel | _Only visible if pre-birthday notifications are enabled._ Optional separate channel for pre-birthday reminders. If empty, they are sent to the notification channel (if set) or otherwise the birthday channel. Use this to keep pre-birthday reminders apart from the actual "Happy birthday" messages. | | Pre-birthday lead times (days) | _Only visible if pre-birthday notifications are enabled._ List of lead times (in days) before a birthday at which to post a notification. For example, `[1, 7]` sends a notification both 7 days and 1 day before the birthday. | | Pre-birthday message | _Only visible if pre-birthday notifications are enabled._ The pre-birthday message sent for users who did not provide a birth year. The `%days%` placeholder gives the number of days remaining. | | Pre-birthday message with age | _Only visible if pre-birthday notifications are enabled._ The pre-birthday message sent for users who did provide a birth year. Supports the `%age%` placeholder for the age the user will turn. | diff --git a/docs/custom-bot/modules/community/serverinfo.md b/docs/custom-bot/modules/community/serverinfo.md index b11a67d5..3944263e 100644 --- a/docs/custom-bot/modules/community/serverinfo.md +++ b/docs/custom-bot/modules/community/serverinfo.md @@ -4,6 +4,12 @@ Display an auto-updating embed with server statistics and information in a chann +:::tip Looking for more? Try Live Messages +The [Live Messages](/docs/custom-bot/modules/community/live-messages) module can do everything this module does and more: multiple auto-updating messages across different channels, full message formatting (not just a single embed), extra statistics (voice/idle/DND counts, channel-type breakdowns, stickers, and more), and live stats pulled from other modules (tickets, giveaways, economy, levels, and more). + +If you only need a single, simple server-information embed, this module stays a great, focused choice. If you want richer or multiple stat displays, use Live Messages instead. There is no automatic migration between the two - you would recreate the content in Live Messages by hand. +::: + ## Features {#features} - Displays an auto-updating embed with customizable server information in a designated channel. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/activity-streak.md b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/activity-streak.md index 795e25d4..a6dea340 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/activity-streak.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/activity-streak.md @@ -30,7 +30,7 @@ Belohne Nutzer für ihre tägliche, wöchentliche oder monatliche Aktivität mit - Im automatischen Modus verfolgt der Bot die Nutzeraktivität basierend auf gesendeten Nachrichten. Wenn ein Nutzer während eines neuen Zeitraums eine Nachricht sendet, wird sein Streak erhöht. Verpasst er einen gesamten Zeitraum, wird sein Streak automatisch auf Null zurückgesetzt. - Im „Mitarbeiter-verwaltete Streaks?"-Modus verwenden Teammitglieder den Befehl [`/streak add`](#commands), um Nutzern manuell Streak-Punkte hinzuzufügen. - Nutzer können ihren aktuellen und ihren längsten Streak einsehen, indem sie den Befehl [`/streak view`](#commands) nutzen. -- Falls die Streak-Wiederherstellung aktiviert ist, können Nutzer, die ihren Streak verloren haben, diesen einmalig über [`/streak restore`](#commands) wiederherstellen. +- Falls die Streak-Wiederherstellung aktiviert ist, können Nutzer, die ihren Streak verloren haben, diesen einmalig über [`/streak restore`](#commands) wiederherstellen. Du kannst optional ein Zeitlimit (in Tagen) festlegen, nach dem ein verlorener Streak nicht mehr wiederhergestellt werden kann. Bei der Wiederherstellung wird der höhere Wert aus aktuellem und vorherigem Streak behalten, sodass ein Mitglied, das bereits einen neuen Streak begonnen hat, keinen Fortschritt verliert. - Wenn ein Nutzer eine Streak-Anzahl erreicht, die einer konfigurierten Rollenbelohnung entspricht, wird die Rolle automatisch zugewiesen. ## Befehle {#commands} @@ -43,7 +43,7 @@ Belohne Nutzer für ihre tägliche, wöchentliche oder monatliche Aktivität mit | `/streak add user:` | Füge einem Nutzer manuell einen Streak-Punkt hinzu. Nur im „Mitarbeiter-verwaltete Streaks?"-Modus verfügbar. Erfordert eine konfigurierte Team-Rolle. | | `/streak remove user:` | Zieht einen Punkt vom Streak-Zähler eines Nutzers ab. Hilfreich, um Fehler zu korrigieren, ohne den Streak vollständig zurückzusetzen. Nur im „Mitarbeiter-verwaltete Streaks?"-Modus verfügbar. Erfordert eine konfigurierte Team-Rolle. | | `/streak reset user:` | Setzt den Streak eines Nutzers vollständig zurück. Dabei werden sowohl der aktuelle Streak als auch alle gespeicherten Backups gelöscht und sämtliche streakbezogenen Rollen entfernt. Nur im „Mitarbeiter-verwaltete Streaks?"-Modus verfügbar. Erfordert eine konfigurierte Team-Rolle. | -| `/streak restore [user:]` | Stelle einen zuvor verlorenen Streak wieder her. Nur verfügbar, wenn die Streak-Wiederherstellung aktiviert ist. Kann nur einmal pro Streak-Verlust verwendet werden. | +| `/streak restore [user:]` | Stelle einen zuvor verlorenen Streak wieder her. Nur verfügbar, wenn die Streak-Wiederherstellung aktiviert ist. Kann nur einmal pro Streak-Verlust und nur innerhalb des konfigurierten Zeitlimits (falls gesetzt) verwendet werden. | | `/streak leaderboard` | Zeigt die 20 aktivsten Streaks auf dem Server an. Verfügbar sowohl im „Mitarbeiter-verwaltete Streaks?"- als auch im automatischen Modus. | | `/streak hide` | Schaltet die Anzeige deines Streaks in deinem Nickname an oder aus. Nur verfügbar, wenn die Nickname-Anzeige aktiviert ist und die Option „Nutzern erlauben, den Streak im Nickname auszublenden?" eingeschaltet wurde. | @@ -65,6 +65,7 @@ In dieser Konfigurationsdatei kannst du das Modul einrichten. Öffne sie in dein | Ignorierte Rollen | Rollen, deren Mitglieder-Nachrichten nicht für Streaks zählen. | | Streak-Wiederherstellung aktivieren? | Falls aktiviert, können Nutzer einen verlorenen Streak einmal pro Verlust wiederherstellen. | | Rollen, die Streaks wiederherstellen dürfen | Rollen, die berechtigt sind, den Befehl „restore" zu nutzen. Falls das Feld leer bleibt, können alle Nutzer Streaks wiederherstellen. | +| Wiederherstellungs-Zeitlimit (Tage) | Wie viele Tage nach dem Verlust eines Streaks Nutzer diesen noch mit `/streak restore` wiederherstellen können. Auf `0` setzen für kein Zeitlimit. Nur wirksam, wenn „Streak-Wiederherstellung aktivieren?" eingeschaltet ist. | ## Fehlerbehebung {#troubleshooting} @@ -103,6 +104,7 @@ Die folgenden Daten werden über jeden Nutzer mit einem aktiven oder vergangenen - Datum, Woche oder Monat der letzten Aktivität (abhängig vom konfigurierten Zeitraum) - Die vorherige Streak-Anzahl (für Wiederherstellungszwecke) - Der Zeitstempel der letzten Wiederherstellung +- Der Zeitstempel, wann der Streak zuletzt verloren wurde (zur Durchsetzung des Wiederherstellungs-Zeitlimits) - Metadaten über den Eintrag (Erstellungsdatum und Zeitpunkt der letzten Aktualisierung) Um alle von diesem Modul gespeicherten Daten zu löschen, [setze die Modul-Datenbank zurück](/de/docs/custom-bot/additional-features/#reset-module-database). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/birthday.md b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/birthday.md index df9e408b..a73882a4 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/birthday.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/birthday.md @@ -11,7 +11,7 @@ Ermögliche es Nutzern, ihren Geburtstag festzulegen, und sich gegenseitig zu gr - Der Bot sendet jeden Tag um Mitternacht automatisch Geburtstags-Nachrichten zum Geburtstag. - Weise Nutzern an ihrem Geburtstag optional eine Geburtstags-Rolle zu (wird am nächsten Tag automatisch wieder entfernt). - Gibt ein Nutzer sein Geburtsjahr an, kann die Geburtstags-Nachricht auch sein Alter enthalten. -- Optionale Vor-Geburtstags-Benachrichtigungen, die im Geburtstagskanal eine konfigurierbare Anzahl an Tagen vor dem Geburtstag eines Nutzers gepostet werden. Es können mehrere Vorlaufzeiten konfiguriert werden (z. B. sowohl 7 Tage als auch 1 Tag vor dem Geburtstag). +- Optionale Vor-Geburtstags-Benachrichtigungen, die eine konfigurierbare Anzahl an Tagen vor dem Geburtstag eines Nutzers gepostet werden. Es können mehrere Vorlaufzeiten konfiguriert werden (z. B. sowohl 7 Tage als auch 1 Tag vor dem Geburtstag), und sie können optional in einen eigenen Kanal geleitet werden, getrennt von den eigentlichen Glückwunsch-Nachrichten. - `/birthday upcoming` ermöglicht es jedem Mitglied, eine Vorschau der Geburtstage in den nächsten N Tagen anzusehen, ohne durch das Embed scrollen zu müssen. - Geburtstagsdaten werden automatisch entfernt, wenn ein Mitglied den Server verlässt. - Optionale Geburtstagsverwaltung für Admins: Administratoren können Geburtstage von Nutzern festlegen, entfernen, sperren und entsperren. @@ -104,6 +104,7 @@ Die Konfiguration ist im Dashboard in Tabs organisiert – die folgenden Zeilen | Feld | Beschreibung | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Vor-Geburtstags-Benachrichtigungen aktivieren? | Falls aktiviert, postet der Bot eine konfigurierbare Anzahl an Tagen vor dem Geburtstag jedes Nutzers eine Benachrichtigung im Geburtstagskanal. | +| (optional) Vor-Geburtstags-Kanal | _Nur sichtbar, wenn Vor-Geburtstags-Benachrichtigungen aktiviert sind._ Optionaler separater Kanal für Vor-Geburtstags-Erinnerungen. Falls leer, werden sie in den Benachrichtigungs-Kanal (falls gesetzt) oder andernfalls in den Geburtstags-Kanal gesendet. Nutze dies, um Vor-Geburtstags-Erinnerungen von den eigentlichen „Herzlichen Glückwunsch"-Nachrichten zu trennen. | | Vorlaufzeiten für Vor-Geburtstag (Tage) | _Nur sichtbar, wenn Vor-Geburtstags-Benachrichtigungen aktiviert sind._ Liste der Vorlaufzeiten (in Tagen) vor einem Geburtstag, an denen eine Benachrichtigung gesendet werden soll. Beispiel: `[1, 7]` sendet sowohl 7 Tage als auch 1 Tag vor dem Geburtstag eine Benachrichtigung. | | Vor-Geburtstags-Nachricht | _Nur sichtbar, wenn Vor-Geburtstags-Benachrichtigungen aktiviert sind._ Die Vor-Geburtstags-Nachricht, die für Nutzer gesendet wird, die kein Geburtsjahr angegeben haben. Der Platzhalter `%days%` gibt die Anzahl der verbleibenden Tage an. | | Vor-Geburtstags-Nachricht mit Alter | _Nur sichtbar, wenn Vor-Geburtstags-Benachrichtigungen aktiviert sind._ Die Vor-Geburtstags-Nachricht, die für Nutzer gesendet wird, die ein Geburtsjahr angegeben haben. Unterstützt den Platzhalter `%age%` für das Alter, das der Nutzer erreichen wird. | diff --git a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md index e244b79d..e1a4e378 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md @@ -4,6 +4,12 @@ Zeige ein automatisch aktualisierendes Embed mit Serverstatistiken und Informati +:::tip Mehr gewünscht? Nutze Live-Nachrichten +Das Modul [Live-Nachrichten](/docs/custom-bot/modules/community/live-messages) kann alles, was dieses Modul kann, und mehr: mehrere automatisch aktualisierende Nachrichten in verschiedenen Kanälen, vollständige Nachrichtenformatierung (nicht nur ein einzelnes Embed), zusätzliche Statistiken (Sprach-/Idle-/DND-Zahlen, Aufschlüsselung nach Kanaltypen, Sticker und mehr) sowie Live-Statistiken aus anderen Modulen (Tickets, Gewinnspiele, Wirtschaft, Level und mehr). + +Wenn du nur ein einzelnes, einfaches Serverinformations-Embed benötigst, bleibt dieses Modul eine gute, fokussierte Wahl. Wenn du umfangreichere oder mehrere Statistik-Anzeigen möchtest, nutze stattdessen Live-Nachrichten. Es gibt keine automatische Migration zwischen den beiden - du würdest den Inhalt in Live-Nachrichten manuell neu erstellen. +::: + ## Funktionen {#features} - Zeigt ein automatisch aktualisierendes Embed mit anpassbaren Serverinformationen in einem festgelegten Kanal an. From 0093f522540f5c178025f5c0bf12381a111bedd6 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 1 Jul 2026 17:39:51 +0200 Subject: [PATCH 2/4] feat: added forum support documentation --- .../modules/moderation/anti-nuke.md | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 docs/custom-bot/modules/moderation/anti-nuke.md diff --git a/docs/custom-bot/modules/moderation/anti-nuke.md b/docs/custom-bot/modules/moderation/anti-nuke.md new file mode 100644 index 00000000..5985674d --- /dev/null +++ b/docs/custom-bot/modules/moderation/anti-nuke.md @@ -0,0 +1,197 @@ +# Anti-Nuke Protection + +Detect and respond to destructive server actions (nuking) with configurable thresholds, automatic countermeasures, and undo recovery. + + + +## Features {#features} + +* Detects 19 different types of destructive server actions, including mass channel/role deletion, mass bans/kicks, permission escalation, webhook spam, and more. +* Hybrid detection system using both gateway events (instant detection) and audit log entries (catch-all backup) with automatic deduplication. +* Configurable per-action thresholds: set how many actions of each type within a sliding time window trigger a response. +* Four response actions: alert only, strip all roles, ban the executor, or strip only dangerous permissions. +* Temporary whitelist system to allow trusted users to perform bulk actions without triggering detection (e.g., during planned restructures). +* Undo system to reverse damage caused by a nuke event — restores deleted channels, roles, emojis, and more from stored snapshots. +* All detection data is stored in the database (not in-memory), ensuring crash safety — if the bot restarts during a nuke, incomplete events are flagged for manual review. +* Permanently exempt specific users from detection. +* Detailed logging of all detected events to a configurable log channel. + +## Setup {#setup} + +1. [Enable the module](https://scnx.app/glink?page=bot/modules?query=anti-nuke) on your server. +2. Open the [Configuration](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cconfiguration) and set the **Log Channel** where anti-nuke alerts will be sent. +3. Choose your preferred **Response Action** — this determines what happens to the user who triggered a nuke detection: + * **alert**: Only send an alert to the log channel. No action is taken against the user. + * **strip-roles** (default): Remove all roles from the user, preventing further damage. + * **ban**: Ban the user from the server. + * **strip-dangerous-permissions**: Remove only dangerous permissions (Administrator, Manage Channels, Manage Roles, etc.) from the user's roles. +4. Optionally add users to the **Exempt Users** list if they should never trigger anti-nuke detection (e.g., the server owner). +5. Review the [Thresholds configuration](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cthresholds) and adjust limits for each action type as needed for your server. +6. Make sure the bot has the following permissions: **Administrator** (recommended), or at minimum **View Audit Log**, **Manage Roles**, **Ban Members**, **Manage Channels**, **Manage Webhooks**, **Manage Guild Expressions**, **View Channel**, **Send Messages**, and **Embed Links**. +7. Ensure the bot's role is positioned as high as possible in the role hierarchy — the bot can only strip roles or ban users whose highest role is below the bot's role. + +## Usage {#usage} + +### How detection works {#detection} + +The anti-nuke system runs entirely in the background. When a user performs a destructive action (e.g., deleting a channel), the bot: + +1. Records the action in the database with a snapshot of the affected resource. +2. Checks how many actions of the same type this user has performed within the configured time window. +3. If the threshold is exceeded, the configured response action is executed and an alert is sent to the log channel. + +Detection uses a hybrid approach: gateway events provide instant detection, while audit log entries serve as a catch-all backup. The system automatically deduplicates between the two paths so actions are never double-counted. + +### Temporary whitelists {#whitelists} + +Before performing planned bulk actions (e.g., reorganizing channels or cleaning up roles), administrators can temporarily whitelist a user. Whitelisted users bypass all anti-nuke detection for the specified duration. + +* Use `/anti-nuke whitelist add` to create a temporary whitelist entry with a duration and reason. +* Use `/anti-nuke whitelist remove` to revoke a whitelist entry early. +* Use `/anti-nuke whitelist list` to view all active whitelist entries. + +Whitelist entries expire automatically and are cleaned up on bot restart. + +### Undoing damage {#undo} + +If a nuke is detected, the bot stores snapshots of affected resources (channel configurations, role settings, emoji images, etc.). Administrators can use the undo system to attempt to reverse the damage: + +1. Run `/anti-nuke undo` to see a list of recent nuke events that can be undone. +2. Select the event from the dropdown menu. +3. The bot will attempt to restore all affected resources using the stored snapshots. + +:::warning +Undo is a best-effort recovery. Some data (like message history in deleted channels) cannot be restored. The undo system works best when used promptly after detection. +::: + +### Crash safety {#crash-safety} + +All detection data is persisted to the database immediately. If the bot crashes or restarts during a nuke event: + +* Incomplete response actions are flagged and reported in the log channel on restart. +* Snapshot data is preserved for undo recovery. +* Action tracking records linked to un-resolved nuke events are retained until the event is undone or manually resolved. + +## Tracked action types {#action-types} + +| Action Type | Description | Default Threshold | +|-------------------------------|-------------------------------------------------------|-------------------| +| Channel Deletion | Channels being deleted | 3 in 60s | +| Channel Creation | Channels being created in bulk | 5 in 60s | +| Role Deletion | Roles being deleted | 3 in 60s | +| Role Creation | Roles being created in bulk | 5 in 60s | +| Member Bans | Members being banned | 5 in 120s | +| Member Kicks | Members being kicked | 5 in 120s | +| Webhook Creation | Webhooks being created | 3 in 60s | +| Webhook Deletion | Webhooks being deleted | 3 in 60s | +| Emoji Deletion | Emojis being deleted | 5 in 60s | +| Sticker Deletion | Stickers being deleted | 3 in 60s | +| Permission Escalation | Dangerous permissions being added to roles | 2 in 120s | +| Mass Role Removal | Roles being removed from members | 5 in 120s | +| Bot Additions | Bots being added to the server | 3 in 120s | +| Webhook Spam | Webhook messages being sent in bulk | 10 in 30s | +| Server Settings | Server name, icon, vanity URL, or description changes | 3 in 60s | +| Channel Permission Overwrites | Channel permissions being modified | 5 in 60s | +| Member Prune | Member prune actions | 1 in 120s | +| Thread Deletion | Threads being deleted | 5 in 60s | +| Integration Creation | Integrations being added | 2 in 120s | + +Each action type can be individually enabled/disabled and has its own threshold and time window in the [Thresholds configuration](#configuration-thresholds). + +## Commands {#commands} + + + +| Command | Description | +|----------------------------------------------------------------------------|------------------------------------------------------------------------------------| +| `/anti-nuke whitelist add user: duration: [reason:]` | Add a temporary whitelist entry. Duration supports formats like `30m`, `2h`, `1d`. | +| `/anti-nuke whitelist remove user:` | Remove an active whitelist entry for a user. | +| `/anti-nuke whitelist list` | List all currently active whitelist entries. | +| `/anti-nuke undo` | Show recent nuke events and select one to undo. | +| `/anti-nuke status` | Show current anti-nuke system status and statistics. | + +All commands require the **Administrator** permission. + +## Configuration {#configuration} + +### General Configuration {#configuration-general} + +Configure the general settings of the anti-nuke system. Open it in your [dashboard](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cconfiguration). + +| Field | Description | +|-----------------------------|------------------------------------------------------------------------------------------------------| +| Log Channel | Channel where anti-nuke alerts and event logs are sent. | +| Response Action | What to do when a nuke is detected: `alert`, `strip-roles`, `ban`, or `strip-dangerous-permissions`. | +| Exempt Users | Users who are completely exempt from anti-nuke detection. | +| Snapshot Retention (days) | How long to keep resource snapshots for undo recovery (default: 30 days). | +| Action Log Retention (days) | How long to keep individual action tracking records (default: 7 days). | + +### Thresholds {#configuration-thresholds} + +Configure detection thresholds for each action type. Open it in your [dashboard](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cthresholds). + +Each action type has three settings: + +| Field | Description | +|---------------------|------------------------------------------------------------------------| +| Track [Action Type] | Enable or disable detection for this action type. | +| Max [Action Type] | Number of actions within the time window before triggering a response. | +| Timeframe (seconds) | The sliding time window in seconds used to count actions. | + +## Troubleshooting {#troubleshooting} + +
+ The bot is not detecting nuke actions +
    +
  • Make sure the module is enabled and the bot has the View Audit Log permission.
  • +
  • Check that the relevant action type is enabled in the Thresholds configuration.
  • +
  • Ensure the user performing the actions is not in the Exempt Users list and does not have an active whitelist entry.
  • +
  • The bot cannot detect actions performed by the server owner, as Discord prevents bots from taking action against the owner.
  • +
+
+ +
+ The bot detected a nuke but did not take action +
    +
  • Check that the Response Action is set to something other than alert.
  • +
  • Ensure the bot's role is positioned above the executor's highest role in the role hierarchy. The bot cannot strip roles from or ban users with a higher role.
  • +
  • If the executor is the server owner, the bot will only send an alert — Discord does not allow bots to take action against the server owner.
  • +
+
+ +
+ The bot is triggering false positives +
    +
  • Increase the threshold values in the Thresholds configuration for the relevant action type.
  • +
  • Use /anti-nuke whitelist add to temporarily whitelist users before performing planned bulk actions.
  • +
  • Add trusted administrators to the Exempt Users list in the General Configuration.
  • +
+
+ +
+ The undo command is not restoring everything +
    +
  • Undo is best-effort. Some data like message history in deleted channels cannot be restored.
  • +
  • Ensure snapshots have not expired — check the Snapshot Retention setting in the configuration.
  • +
  • The bot needs sufficient permissions to recreate resources (e.g., Manage Channels to recreate deleted channels).
  • +
+
+ +
+ I see "Incomplete Nuke Response Detected" in the log channel +
    +
  • This means the bot restarted before finishing a response to a detected nuke. Check if the executor still has access to the server and take manual action if needed.
  • +
  • You can use /anti-nuke undo to attempt to reverse any damage that was done.
  • +
+
+ +## Stored data {#data-usage} + +The following data is stored by this module: + +* **Action records**: The action type, target ID, executor ID, and timestamp of every tracked destructive action. Automatically cleaned up after the configured retention period (default: 7 days). +* **Snapshots**: Detailed resource data (channel settings, role configurations, emoji images, etc.) for undo recovery. Automatically cleaned up after the configured retention period (default: 30 days). +* **Nuke events**: Records of detected nuke incidents, including the executor, action type, action count, response taken, and whether the event has been undone. +* **Whitelist entries**: User ID, granting user, reason, and expiration time for temporary whitelist entries. Automatically cleaned up on expiration. + +To remove all data stored by this module, [purge the module database](/docs/custom-bot/additional-features#reset-module-database). From e2802ab394997d6fc39578c0b1cc9228c24c60f9 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 1 Jul 2026 17:48:59 +0200 Subject: [PATCH 3/4] feat: added warning to forum support documentation --- .../modules/moderation/anti-nuke.md | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/custom-bot/modules/moderation/anti-nuke.md b/docs/custom-bot/modules/moderation/anti-nuke.md index 5985674d..6632d438 100644 --- a/docs/custom-bot/modules/moderation/anti-nuke.md +++ b/docs/custom-bot/modules/moderation/anti-nuke.md @@ -4,14 +4,25 @@ Detect and respond to destructive server actions (nuking) with configurable thre +:::warning +**Anti-nuke cannot protect against users who can reconfigure it.** Anyone with the Discord Administrator permission can run `/anti-nuke whitelist add` to whitelist themselves or an accomplice. Anyone with access to the SCNX dashboard for this bot (the server owner, co-owners, or Trusted Admins with the "Change and Reload Configuration" permission) can also: + +* Add users to the **Exempt Users** list. +* Raise thresholds, disable action types, or change the **Response Action** to `alert`. +* Reset the module database, wiping action records, snapshots, and undo history. +* Disable the module entirely. + +Anti-nuke is designed to slow down compromised accounts and rogue bots before they cause catastrophic damage — it cannot stop someone who has legitimate configuration access and acts deliberately. Only grant Administrator, Co-Owner, or Custom-Bot configuration permissions to people you actually trust. +::: + ## Features {#features} * Detects 19 different types of destructive server actions, including mass channel/role deletion, mass bans/kicks, permission escalation, webhook spam, and more. * Hybrid detection system using both gateway events (instant detection) and audit log entries (catch-all backup) with automatic deduplication. * Configurable per-action thresholds: set how many actions of each type within a sliding time window trigger a response. * Four response actions: alert only, strip all roles, ban the executor, or strip only dangerous permissions. -* Temporary whitelist system to allow trusted users to perform bulk actions without triggering detection (e.g., during planned restructures). -* Undo system to reverse damage caused by a nuke event — restores deleted channels, roles, emojis, and more from stored snapshots. +* Temporary whitelist system to allow trusted users to perform bulk actions without triggering a response (e.g., during planned restructures). +* Undo system to reverse damage caused by a nuke event — restores deleted channels, roles, emojis, threads, webhooks, guild settings, channel permission overwrites, role permissions, and mass-role-removal changes from stored snapshots. Member kicks, member prunes, sticker deletions, and integration creations cannot be automatically reversed. * All detection data is stored in the database (not in-memory), ensuring crash safety — if the bot restarts during a nuke, incomplete events are flagged for manual review. * Permanently exempt specific users from detection. * Detailed logging of all detected events to a configurable log channel. @@ -24,7 +35,7 @@ Detect and respond to destructive server actions (nuking) with configurable thre * **alert**: Only send an alert to the log channel. No action is taken against the user. * **strip-roles** (default): Remove all roles from the user, preventing further damage. * **ban**: Ban the user from the server. - * **strip-dangerous-permissions**: Remove only dangerous permissions (Administrator, Manage Channels, Manage Roles, etc.) from the user's roles. + * **strip-dangerous-permissions**: Remove dangerous permissions from the user's roles. The stripped permissions are Administrator, Manage Channels, Manage Roles, Ban Members, Kick Members, Manage Guild, and Manage Webhooks. 4. Optionally add users to the **Exempt Users** list if they should never trigger anti-nuke detection (e.g., the server owner). 5. Review the [Thresholds configuration](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cthresholds) and adjust limits for each action type as needed for your server. 6. Make sure the bot has the following permissions: **Administrator** (recommended), or at minimum **View Audit Log**, **Manage Roles**, **Ban Members**, **Manage Channels**, **Manage Webhooks**, **Manage Guild Expressions**, **View Channel**, **Send Messages**, and **Embed Links**. @@ -44,7 +55,7 @@ Detection uses a hybrid approach: gateway events provide instant detection, whil ### Temporary whitelists {#whitelists} -Before performing planned bulk actions (e.g., reorganizing channels or cleaning up roles), administrators can temporarily whitelist a user. Whitelisted users bypass all anti-nuke detection for the specified duration. +Before performing planned bulk actions (e.g., reorganizing channels or cleaning up roles), administrators can temporarily whitelist a user. Whitelisted users' actions are still recorded, but thresholds are not evaluated and no response action is triggered for the specified duration. * Use `/anti-nuke whitelist add` to create a temporary whitelist entry with a duration and reason. * Use `/anti-nuke whitelist remove` to revoke a whitelist entry early. @@ -61,7 +72,7 @@ If a nuke is detected, the bot stores snapshots of affected resources (channel c 3. The bot will attempt to restore all affected resources using the stored snapshots. :::warning -Undo is a best-effort recovery. Some data (like message history in deleted channels) cannot be restored. The undo system works best when used promptly after detection. +Undo is a best-effort recovery. Some data cannot be restored — message history in deleted channels is lost, and the following action types have no automated undo: member kicks, member prunes, sticker deletions, and integration creations. The undo system works best when used promptly after detection. ::: ### Crash safety {#crash-safety} @@ -146,7 +157,7 @@ Each action type has three settings:
  • Make sure the module is enabled and the bot has the View Audit Log permission.
  • Check that the relevant action type is enabled in the Thresholds configuration.
  • Ensure the user performing the actions is not in the Exempt Users list and does not have an active whitelist entry.
  • -
  • The bot cannot detect actions performed by the server owner, as Discord prevents bots from taking action against the owner.
  • +
  • Actions performed by the server owner are still detected and logged, but no automated response can be taken — Discord does not allow bots to ban or strip roles from the server owner. See the next section for details.
  • From 2f900321e566673c2b6c1dd90ebb78dbf942991a Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 1 Jul 2026 18:17:54 +0200 Subject: [PATCH 4/4] feat: updated module documentation --- .../modules/moderation/anti-nuke.md | 113 +++++++++++++----- .../ai-faq/pre-ticket-gatekeeper.md | 4 +- .../modules/community/serverinfo.md | 2 +- .../current/support-bot/feature-comparison.md | 8 +- 4 files changed, 93 insertions(+), 34 deletions(-) diff --git a/docs/custom-bot/modules/moderation/anti-nuke.md b/docs/custom-bot/modules/moderation/anti-nuke.md index 6632d438..ae757775 100644 --- a/docs/custom-bot/modules/moderation/anti-nuke.md +++ b/docs/custom-bot/modules/moderation/anti-nuke.md @@ -5,14 +5,16 @@ Detect and respond to destructive server actions (nuking) with configurable thre :::warning -**Anti-nuke cannot protect against users who can reconfigure it.** Anyone with the Discord Administrator permission can run `/anti-nuke whitelist add` to whitelist themselves or an accomplice. Anyone with access to the SCNX dashboard for this bot (the server owner, co-owners, or Trusted Admins with the "Change and Reload Configuration" permission) can also: +**Anti-nuke cannot protect against users who can reconfigure it.** Access to the `/anti-nuke` commands (including `whitelist add`) is controlled by the **Exempt Users** list, not by Discord permissions. Separately, anyone with access to the SCNX dashboard for this bot (the server owner, co-owners, or Trusted Admins with the "Change and Reload Configuration" permission) can bypass anti-nuke entirely by: -* Add users to the **Exempt Users** list. -* Raise thresholds, disable action types, or change the **Response Action** to `alert`. -* Reset the module database, wiping action records, snapshots, and undo history. -* Disable the module entirely. +* Adding themselves or an accomplice to the **Exempt Users** list (which also grants access to the `/anti-nuke` commands). +* Raising thresholds, disabling action types, or changing the **Response Action** to **Alert only**. +* Resetting the module database, wiping action records, snapshots, and undo history. +* Disabling the module entirely. -Anti-nuke is designed to slow down compromised accounts and rogue bots before they cause catastrophic damage — it cannot stop someone who has legitimate configuration access and acts deliberately. Only grant Administrator, Co-Owner, or Custom-Bot configuration permissions to people you actually trust. +Anti-nuke is designed to slow down compromised accounts and rogue bots before they cause catastrophic damage. It cannot stop someone who has legitimate configuration access and acts deliberately. Only grant SCNX dashboard configuration access to people you actually trust. + +**Before you rely on this module, read [Considerations and limitations](#considerations) in full.** It is a best-effort mitigation layer, not a guarantee, and it will not protect you in several important situations. ::: ## Features {#features} @@ -22,8 +24,8 @@ Anti-nuke is designed to slow down compromised accounts and rogue bots before th * Configurable per-action thresholds: set how many actions of each type within a sliding time window trigger a response. * Four response actions: alert only, strip all roles, ban the executor, or strip only dangerous permissions. * Temporary whitelist system to allow trusted users to perform bulk actions without triggering a response (e.g., during planned restructures). -* Undo system to reverse damage caused by a nuke event — restores deleted channels, roles, emojis, threads, webhooks, guild settings, channel permission overwrites, role permissions, and mass-role-removal changes from stored snapshots. Member kicks, member prunes, sticker deletions, and integration creations cannot be automatically reversed. -* All detection data is stored in the database (not in-memory), ensuring crash safety — if the bot restarts during a nuke, incomplete events are flagged for manual review. +* Undo system to reverse damage caused by a nuke event, either with the **Undo** button on each alert or the `/anti-nuke undo` command. It restores deleted channels, roles, emojis, stickers, threads, webhooks, guild settings, channel permission overwrites, role permissions, and mass-role-removal changes from stored snapshots. Emoji and sticker recovery is best-effort and depends on the image having been archived. Member kicks, member prunes, and integration creations cannot be automatically reversed. +* All detection data is stored in the database (not in-memory), ensuring crash safety: if the bot restarts during a nuke, incomplete events are flagged for manual review. * Permanently exempt specific users from detection. * Detailed logging of all detected events to a configurable log channel. @@ -31,15 +33,15 @@ Anti-nuke is designed to slow down compromised accounts and rogue bots before th 1. [Enable the module](https://scnx.app/glink?page=bot/modules?query=anti-nuke) on your server. 2. Open the [Configuration](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cconfiguration) and set the **Log Channel** where anti-nuke alerts will be sent. -3. Choose your preferred **Response Action** — this determines what happens to the user who triggered a nuke detection: - * **alert**: Only send an alert to the log channel. No action is taken against the user. - * **strip-roles** (default): Remove all roles from the user, preventing further damage. - * **ban**: Ban the user from the server. - * **strip-dangerous-permissions**: Remove dangerous permissions from the user's roles. The stripped permissions are Administrator, Manage Channels, Manage Roles, Ban Members, Kick Members, Manage Guild, and Manage Webhooks. -4. Optionally add users to the **Exempt Users** list if they should never trigger anti-nuke detection (e.g., the server owner). +3. Choose your preferred **Response Action**. This determines what happens to the user who triggered a nuke detection: + * **Alert only**: Only send an alert to the log channel. No action is taken against the user. + * **Strip all roles** (default): Remove all roles from the user, preventing further damage. + * **Ban**: Ban the user from the server. + * **Strip dangerous permissions**: Remove dangerous permissions from the user's roles. The stripped permissions are Administrator, Manage Channels, Manage Roles, Ban Members, Kick Members, Manage Guild, and Manage Webhooks. Because this edits the roles themselves, it affects every member who holds those roles, not only the executor. +4. Add trusted users to the **Exempt Users** list. Listed users never trigger anti-nuke detection, and this list is also the only gate for who may use the `/anti-nuke` commands and the alert **Undo** button (Discord permissions such as Administrator do not grant access on their own). 5. Review the [Thresholds configuration](https://scnx.app/glink?page=bot/configuration?file=anti-nuke%7Cthresholds) and adjust limits for each action type as needed for your server. 6. Make sure the bot has the following permissions: **Administrator** (recommended), or at minimum **View Audit Log**, **Manage Roles**, **Ban Members**, **Manage Channels**, **Manage Webhooks**, **Manage Guild Expressions**, **View Channel**, **Send Messages**, and **Embed Links**. -7. Ensure the bot's role is positioned as high as possible in the role hierarchy — the bot can only strip roles or ban users whose highest role is below the bot's role. +7. Ensure the bot's role is positioned as high as possible in the role hierarchy. The bot can only strip roles or ban users whose highest role is below the bot's role. ## Usage {#usage} @@ -65,14 +67,15 @@ Whitelist entries expire automatically and are cleaned up on bot restart. ### Undoing damage {#undo} -If a nuke is detected, the bot stores snapshots of affected resources (channel configurations, role settings, emoji images, etc.). Administrators can use the undo system to attempt to reverse the damage: +If a nuke is detected, the bot stores snapshots of affected resources (channel configurations, role settings, emoji images, etc.). Users on the **Exempt Users** list can reverse the damage in one of two ways: + +* **From the alert:** click the **Undo** button on the "Nuke Detected" alert, then confirm. Once complete, this also reverses the response taken against the executor (for example, unbanning them or restoring their stripped roles). +* **With the command:** run `/anti-nuke undo`, then select the event from the dropdown menu. -1. Run `/anti-nuke undo` to see a list of recent nuke events that can be undone. -2. Select the event from the dropdown menu. -3. The bot will attempt to restore all affected resources using the stored snapshots. +Either way, the bot attempts to restore all affected resources using the stored snapshots and reports what was restored and what could not be. :::warning -Undo is a best-effort recovery. Some data cannot be restored — message history in deleted channels is lost, and the following action types have no automated undo: member kicks, member prunes, sticker deletions, and integration creations. The undo system works best when used promptly after detection. +Undo is a best-effort recovery. Some data cannot be restored: message history in deleted channels is lost, a server's icon and vanity URL are not restored (its name and description are), and member kicks, member prunes, and integration creations have no automated undo. Emoji and sticker recovery depends on the image having been archived. The undo system works best when used promptly after detection. ::: ### Crash safety {#crash-safety} @@ -81,7 +84,63 @@ All detection data is persisted to the database immediately. If the bot crashes * Incomplete response actions are flagged and reported in the log channel on restart. * Snapshot data is preserved for undo recovery. -* Action tracking records linked to un-resolved nuke events are retained until the event is undone or manually resolved. +* Action tracking records linked to unresolved nuke events are retained until the event is undone or manually resolved. + +## Considerations and limitations {#considerations} + +:::danger Read this before relying on anti-nuke +Anti-nuke is a **best-effort mitigation layer, not a guarantee of safety.** It watches for destructive patterns and responds according to your thresholds, but it can be evaded, misconfigured, or simply offline at the wrong moment. Treat it as one layer in a defence-in-depth setup and nothing more. Enabling this module is done at your own risk. +::: + +### It is not a replacement for good security hygiene {#considerations-hygiene} + +Anti-nuke does not remove the need for any of the following, and is far weaker without them: + +- Sound Discord role and channel permission hygiene (do not hand out Administrator freely). +- Verified, trusted staff, ideally with enforced 2FA. +- Regular audit-log reviews. +- Independent, off-platform backups of anything you cannot afford to lose. + +### Detection limits {#considerations-detection} + +- The bot relies on Discord's gateway events and audit log. Some actions produce no audit-log entry, some are reported with missing or delayed executor information, and Discord rate limits or outages can drop or delay events. Any such event may go undetected. +- Thresholds are time-windowed counters. An attacker acting slowly enough to stay under your thresholds, or using actions that are not tracked, will not trigger a response. +- False positives are possible. Legitimate bulk operations by staff can trip thresholds and cause the bot to strip roles, ban, or alert on people you did not intend. Tune thresholds and use the **Exempt Users** list or `/anti-nuke whitelist add` before planned bulk work. +- Misconfiguration silently reduces protection. Disabled action types, raised thresholds, a **Response Action** of **Alert only**, an unset log channel, an overly broad Exempt Users list, or a short snapshot-retention window all weaken or disable protection without surfacing a visible error. + +### Downtime and availability {#considerations-downtime} + +Anti-nuke **only works while the bot is running, connected to Discord, and actively receiving events.** During any period in which the bot is offline, restarting, updating, disconnected, rate-limited, or otherwise not processing events: + +- No detection of any kind occurs. +- No response actions are executed. +- No snapshots are written. +- Actions taken during that period are **not** retroactively evaluated once the bot returns. + +Downtime can be caused by Discord outages, gateway instability or rate limits, network or hosting incidents, SCNX platform maintenance, module updates and restarts, database issues, or bugs. SCNX makes no uptime guarantee for this module or the bot as a whole. + +### Hierarchy and scope {#considerations-hierarchy} + +- The bot **cannot act against the server owner** under any circumstances. If the owner account is compromised, this module will not protect you. +- The bot **cannot act on users whose highest role is at or above the bot's own highest role.** Keep the bot's role near the top of the role list, or response actions will silently fail. +- The bot cannot act on users it cannot see (for example, someone who has already left), and cannot reverse actions performed by Discord itself. + +### Undo limitations {#considerations-undo} + +Undo restores only the resources the bot snapshotted before the event. It is a partial recovery aid, **not** a backup, and it cannot recover: + +- Deleted message content or message history of any kind. +- Kicks or bans that were already lifted, pruned members, or anything outside the configured snapshot-retention window. +- Emojis or stickers whose image could not be archived, and resource types with no automated undo (member kicks, member prunes, integration creations). +- Anything Discord does not expose to bots (server boosts, vanity URL, partnership or discovery settings, and similar). + +### Configuration bypass risk {#considerations-bypass} + +Anyone with dashboard configuration access for this bot can fully bypass anti-nuke, as described in the warning at the top of this page. The **Exempt Users** list is also the only gate for `/anti-nuke` command access. Anti-nuke cannot protect against someone who already has the ability to change its configuration, so review and minimise who holds server ownership, co-owner status, or the "Change and Reload Configuration" permission. + +### Your responsibility {#considerations-responsibility} + +You are solely responsible for your threshold configuration, response-action choice, Exempt Users list, log channel, snapshot retention, role hierarchy, staff vetting, 2FA enforcement, dashboard access control, and off-platform backups, as well as for testing your configuration and keeping it reviewed as your server grows. Anti-nuke is provided as-is and as-available, without warranty of any kind, and SCNX accepts no liability for damage, data loss, missed or delayed detections, false positives, downtime, or configuration bypass, regardless of cause. ## Tracked action types {#action-types} @@ -121,7 +180,7 @@ Each action type can be individually enabled/disabled and has its own threshold | `/anti-nuke undo` | Show recent nuke events and select one to undo. | | `/anti-nuke status` | Show current anti-nuke system status and statistics. | -All commands require the **Administrator** permission. +All commands (and the alert **Undo** button) are restricted to users on the **Exempt Users** list configured in the [General Configuration](#configuration-general). Discord permissions such as Administrator do not grant access on their own. ## Configuration {#configuration} @@ -132,7 +191,7 @@ Configure the general settings of the anti-nuke system. Open it in your [dashboa | Field | Description | |-----------------------------|------------------------------------------------------------------------------------------------------| | Log Channel | Channel where anti-nuke alerts and event logs are sent. | -| Response Action | What to do when a nuke is detected: `alert`, `strip-roles`, `ban`, or `strip-dangerous-permissions`. | +| Response Action | What to do when a nuke is detected: **Alert only**, **Strip all roles**, **Ban**, or **Strip dangerous permissions**. | | Exempt Users | Users who are completely exempt from anti-nuke detection. | | Snapshot Retention (days) | How long to keep resource snapshots for undo recovery (default: 30 days). | | Action Log Retention (days) | How long to keep individual action tracking records (default: 7 days). | @@ -157,16 +216,16 @@ Each action type has three settings:
  • Make sure the module is enabled and the bot has the View Audit Log permission.
  • Check that the relevant action type is enabled in the Thresholds configuration.
  • Ensure the user performing the actions is not in the Exempt Users list and does not have an active whitelist entry.
  • -
  • Actions performed by the server owner are still detected and logged, but no automated response can be taken — Discord does not allow bots to ban or strip roles from the server owner. See the next section for details.
  • +
  • Actions performed by the server owner are still detected and logged, but no automated response can be taken. Discord does not allow bots to ban or strip roles from the server owner. See the next section for details.
  • The bot detected a nuke but did not take action
      -
    • Check that the Response Action is set to something other than alert.
    • +
    • Check that the Response Action is set to something other than Alert only.
    • Ensure the bot's role is positioned above the executor's highest role in the role hierarchy. The bot cannot strip roles from or ban users with a higher role.
    • -
    • If the executor is the server owner, the bot will only send an alert — Discord does not allow bots to take action against the server owner.
    • +
    • If the executor is the server owner, the bot will only send an alert. Discord does not allow bots to take action against the server owner.
    @@ -183,7 +242,7 @@ Each action type has three settings: The undo command is not restoring everything
    • Undo is best-effort. Some data like message history in deleted channels cannot be restored.
    • -
    • Ensure snapshots have not expired — check the Snapshot Retention setting in the configuration.
    • +
    • Ensure snapshots have not expired. Check the Snapshot Retention setting in the configuration.
    • The bot needs sufficient permissions to recreate resources (e.g., Manage Channels to recreate deleted channels).
    diff --git a/docs/support-bot/ai-faq/pre-ticket-gatekeeper.md b/docs/support-bot/ai-faq/pre-ticket-gatekeeper.md index d20fe353..ffff3234 100644 --- a/docs/support-bot/ai-faq/pre-ticket-gatekeeper.md +++ b/docs/support-bot/ai-faq/pre-ticket-gatekeeper.md @@ -78,12 +78,12 @@ If a member picks a topic that has a [form](/docs/support-bot/general/forms) att Which topics the gatekeeper screens is controlled in two layers: a **global default** and a **per-topic override**. -**Global default** — on the AI FAQ settings page, under **Default for topics**: +**Global default** - on the AI FAQ settings page, under **Default for topics**: - **Screen all topics by default** _(default)_ - the gatekeeper runs on every topic unless a topic opts out. - **Don't screen topics by default** - the gatekeeper runs on no topic unless a topic opts in. Handy when you only want the AI on a few high-volume topics (like a general "Question" topic) and want everything else to behave normally. -**Per-topic override** — on each topic's settings page (Ticket Topics for [Modmail](https://scnx.app/glink?page=support-system/modmail/ticket-topics) or the [Ticket System](https://scnx.app/glink?page=support-system/ticket-system/ticket-topics)), the **AI gatekeeper for this topic** option lets you override the default for that one topic: +**Per-topic override** - on each topic's settings page (Ticket Topics for [Modmail](https://scnx.app/glink?page=support-system/modmail/ticket-topics) or the [Ticket System](https://scnx.app/glink?page=support-system/ticket-system/ticket-topics)), the **AI gatekeeper for this topic** option lets you override the default for that one topic: - **Follow global default** - uses whichever default you picked above. - **Always screen with AI** - the gatekeeper always runs on this topic. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md index e1a4e378..8457d214 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/custom-bot/modules/community/serverinfo.md @@ -5,7 +5,7 @@ Zeige ein automatisch aktualisierendes Embed mit Serverstatistiken und Informati :::tip Mehr gewünscht? Nutze Live-Nachrichten -Das Modul [Live-Nachrichten](/docs/custom-bot/modules/community/live-messages) kann alles, was dieses Modul kann, und mehr: mehrere automatisch aktualisierende Nachrichten in verschiedenen Kanälen, vollständige Nachrichtenformatierung (nicht nur ein einzelnes Embed), zusätzliche Statistiken (Sprach-/Idle-/DND-Zahlen, Aufschlüsselung nach Kanaltypen, Sticker und mehr) sowie Live-Statistiken aus anderen Modulen (Tickets, Gewinnspiele, Wirtschaft, Level und mehr). +Das Modul [Live-Nachrichten](/de/docs/custom-bot/modules/community/live-messages) kann alles, was dieses Modul kann, und mehr: mehrere automatisch aktualisierende Nachrichten in verschiedenen Kanälen, vollständige Nachrichtenformatierung (nicht nur ein einzelnes Embed), zusätzliche Statistiken (Sprach-/Idle-/DND-Zahlen, Aufschlüsselung nach Kanaltypen, Sticker und mehr) sowie Live-Statistiken aus anderen Modulen (Tickets, Gewinnspiele, Wirtschaft, Level und mehr). Wenn du nur ein einzelnes, einfaches Serverinformations-Embed benötigst, bleibt dieses Modul eine gute, fokussierte Wahl. Wenn du umfangreichere oder mehrere Statistik-Anzeigen möchtest, nutze stattdessen Live-Nachrichten. Es gibt keine automatische Migration zwischen den beiden - du würdest den Inhalt in Live-Nachrichten manuell neu erstellen. ::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/support-bot/feature-comparison.md b/i18n/de/docusaurus-plugin-content-docs/current/support-bot/feature-comparison.md index 18ea810d..2c67d2ac 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/support-bot/feature-comparison.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/support-bot/feature-comparison.md @@ -52,9 +52,9 @@ Die ausführlichen Tabellen unten vergleichen die drei **textbasierten** Systeme | Nachrichten werden per DM weitergeleitet | ✅ | ❌ | ➖ | | Anonyme Team-Nachrichten | ✅ | ❌ | ❌ | | Snippets (wiederverwendbare Schnellantworten) | ✅ | ❌ | ❌ | -| Anpassbare Bot-Nachrichten (Willkommen, Schließen …) | ✅ | ✅ | ✅ | +| Anpassbare Bot-Nachrichten (Willkommen, Schließen ...) | ✅ | ✅ | ✅ | | Thread nur für Ersteller & Team | ❌ | ➖ | ✅ | -| Knopf „Frühere Tickets ansehen“ | ✅ | ❌ | ❌ | +| Knopf „Frühere Tickets ansehen" | ✅ | ❌ | ❌ | ## Ticket-Verwaltung @@ -72,8 +72,8 @@ Die ausführlichen Tabellen unten vergleichen die drei **textbasierten** Systeme | Limit: ein Ticket pro Nutzer | ✅ | ✅ | ❌ | | Priorität pro Thema | ❌ | ❌ | ✅ | | Priorität nach Mitglieder-Rolle | ❌ | ❌ | ✅ | -| Knopf „Schließen“ / „Als gelöst markieren“ | ✅ | ✅ | ✅ | -| „Gelöst“-Tag beim Schließen anwenden | ➖ | ➖ | ✅ | +| Knopf „Schließen" / „Als gelöst markieren" | ✅ | ✅ | ✅ | +| „Gelöst"-Tag beim Schließen anwenden | ➖ | ➖ | ✅ | | Beim Schließen archivieren | ✅ | ❌ | ✅ | | Geschlossene wieder öffnen | ✅ | ❌ | ❌ | | DM-Bestätigung beim Schließen | ✅ | ✅ | ✅ |