Detection
Scam-link/phishing detection and NSFW image and GIF detection, kept separate from auto-mod's hand-tuned rules.
On this page
Overview
Detection runs two fixed, curated checks against every message rather than admin-tunable rules: a maintained scam/phishing-signature list (scam links, known scam phrasing) and an NSFW-media classifier for images and GIFs.
Images and GIFs are classified by an ML image-classification model. This is content analysis, not a keyword or file-name heuristic.
Video attachments are handled differently and more conservatively: they are only flagged for moderator review using file-type and size heuristics. There is no frame-by-frame decoding or classification of video content, so a flagged video still needs a human to check it. The toggle for this is deliberately labeled "Flag videos for review" rather than implying automatic scanning.
Turn on dry-run mode while you're tuning sensitivity or trusted domains/keywords. Detection will log what it would have done without taking action.
Setup
- 1
Enable Detection
Toggle the module on from Overview or the Moderation page's Detection tab.
- 2
Configure scam detection
Turn it on, pick one or more actions (delete, warn, timeout, kick, ban, or none to only detect and log), and optionally add extra keywords or trusted domains on top of the built-in signature list.
- 3
Configure NSFW detection
Turn it on, pick one or more actions and a sensitivity level, and pick which media types to check: images, GIFs, and/or flag videos for manual review.
- 4
Set a review channel and exemptions
Optionally set a review channel so flagged matches get a moderator's eyes on them, and add trusted roles and whitelisted channels that bypass both checks.
- 5
Test with dry-run mode
Enable dry-run to log would-be actions without taking them, then disable it once settings look right.
Examples
Illustrative mockups of what detection posts in Discord. They are not a live capture, but they match the real thing.
A scam link flagged for staff review
🚨 Detection: Scam Link Flagged
Member
@compromised_acct
Channel
#trading
Match
Known scam-signature domain
Action Taken
Message deleted, member timed out for 1 hour
Flagged for review • Today at 3:04 PM
Configuration options
| Option | Description |
|---|---|
Dry-Run Mode Default: Off | Logs what Detection would have done without taking action. |
Scam Detection Default: On, timeout | Flags scam links, phishing, and known scam phrasing, with one or more actions applied together, timeout duration, custom keywords, and trusted domains. |
NSFW Detection Default: On, delete, medium | Classifies images and GIFs for explicit content with one or more actions applied together, timeout duration, and sensitivity (low/medium/high). |
Scan Images / Scan GIFs Default: On | Real ML-based content classification for these two media types. |
Flag Videos for Review Default: On | File-type/size heuristic only. Flags a video attachment to the review channel for a moderator to check by hand. Video content itself is never analyzed and Detection's actions are never auto-applied to a video. |
Flag for Review Default: Off | Also posts a scam or NSFW match to the review channel for a moderator to confirm, in addition to (or instead of) any auto-actions. |
Review Channel Default: Not set | Where flagged matches and suspicious videos are posted for moderator confirmation. Shared by scam and NSFW detection. |
Trusted Roles | Roles exempt from both checks. |
Whitelisted Channels | Channels exempt from both checks. |
Permissions
Bot permissions required
Who can configure this
Anyone with the dashboard's Owner or Admin access tier (Staff Access page), or Editor tier for day-to-day config changes
