Toaster Logo Toaster
smart_toyAdd to Discord
← Back to Toaster

Documentation

Last updated: October 2026

Getting started

  1. Add Toaster to your server.
  2. Give its role the permissions you want it to use (see What the bot needs).
  3. Run /settings and pick a punishment and a log channel.
  4. That's it. Every image posted is checked from now on.

How it works

Toaster reads every message in the servers it is in. Images are turned into vectors and compared against a scam database. On a match:

  1. The scam message is deleted immediately.
  2. The scammer gets a DM explaining what happened and why.
  3. The punishment from your /settings is applied.
  4. A deferred sweep removes every other message the account sent, in all channels and threads, and repeats until a full pass finds nothing left.

A meme database overrides scam matches on known-good images, so regular memes are not punished. One detection also punishes the account in every other server Toaster is in, using each server's own settings - unless the account is whitelisted there.

Everyday commands

Free for everyone, in every language. The fun/utility commands on this list (and /avatar, /userinfo, /banner) carry a one-line vote reminder on top until you vote on top.gg; voting removes it (nothing is ever blocked).

Web dashboard

The site you are reading right now is the bot's control panel: log in with Discord, pick a server (owner, Manage Server or a bot editor) and you get the live detection feed, statistics, and every setting - punishment and NSFW rules, honeypot, whitelist, language, AFK extras, billing. The Discord /settings panel keeps working in parallel; both write the same values.

The bot owner additionally gets the Admin - Scam DB page: upload new scam or meme template images into the global database, review the pending queue and commit - the same incremental rebuild /rebuild uses.

Whitelist

Whitelisted users, channels (their threads included) and roles are exempt from EVERYTHING the bot does in that server: live detection, /scan, sweeps and cross-server punishment. The whitelist outranks an in-flight wave: whitelisting someone mid-wave stops the wave from growing and aborts the pending sweep.

Honeypot

A channel normal members should never see or post in (typically View Channel denied for @everyone). Anyone who posts there is treated as a scammer immediately: the message is deleted, the guild's punishment applies, and the wave sweep cleans up everything else they posted. No embedding check is involved, so it works instantly. Threads of the honeypot channel count too, and the whitelist outranks the honeypot as everywhere else.

The bot keeps exactly one warning message inside the honeypot channel: its text and accent color are editable in /settings. It is edited in place when the text or language changes, moved when the channel changes, and deleted when the honeypot is disabled.

Warning: make sure normal members really cannot see the channel, or you will punish innocent people. If that happens, whitelist them and lift the punishment by hand.

NSFW filter

Optional per-server filter (default off, /settings → General or the site's Protection Rules): a local ViT classifier scores every image the pipeline already downloaded. At the threshold (default 0.85) the message is deleted and the author gets the NSFW action - timeout (default 60 minutes), delete-only, kick or ban. Deliberately isolated from the scam machinery: no waves, no cross-server punishment, no escalation.

False positives

Detection is probabilistic and can make mistakes. If the bot punishes an innocent member, add them to the user whitelist in /settings: a whitelisted user is never checked or punished again in that server. Temporary bans and timeouts have to be lifted by hand; kicks cannot be undone. Deleted messages cannot be restored. On the site's detection feed you can mark events as false positives - a note for future tuning.

Temporary bans

Discord's API has no native ban duration, so the bot lifts temporary bans itself: every scheduled unban is persisted and survives restarts (a ban that expired while the bot was down is lifted on the next startup). On expiry the ban is only lifted when it still carries the bot's own audit-log reason, so a manual re-ban is never undone by mistake.

/scan

Walks channel history back up to 90 days and applies the same detection as live moderation, deleting found scam and punishing the senders. dry_run:True reports without deleting; channel limits the scan to one channel; a Stop button halts it. Detected scam variants are sent to the bot owner as review cards, oldest first. Whitelisted channels are skipped whole.

Discord rate limits are handled automatically, so large scans simply take longer. Run with dry_run:True first to preview what would be deleted.

Premium

Premium costs $2/month per server (14-day free trial, one per server) and is managed with /premium or the site's Billing page: pay, and it activates automatically. A one-time 30-day vote trial can be unlocked by the server owner via a top.gg vote. Free servers: /scan up to 30 days deep, once per day. Premium servers:

Permissions

Review cards and the scam database

Every detected scam is also sent to the owner as a card with the image and buttons: add to the scam database, add to the meme database, or ignore. The same queue is filled by the site's admin upload page. Approved images are committed on /rebuild (which also removes near-duplicate images automatically). New variants approved this way improve detection for everyone.

Notes