Documentation
Getting started
From invite to first blocked image in about two minutes.
1. Invite the bot, run the wizard
Add ImageCheck to your server — the invite requests only what enforcement needs: Manage Messages, Ban Members, Moderate Members, Send Messages, Embed Links, and Read Message History.
Then a Discord administrator runs /imgsetup, which walks through four steps:
- Create your first blocklist (name only; private by default, changeable later).
- Optionally join the network — subscribe to a public list or invite another server. Both skippable.
- Set the log channel — where block events, invites, and the daily digest are posted. Keep it staff-only: it receives evidence images.
- Pick role tiers (admin / mod / helper) and optionally whitelist trusted users or roles whose posts skip scanning.
Re-run /imgsetup any time; settings are updated in place.
Command visibility. Discord hides commands from members
without Manage Server by default. To let your mod roles see them, open
Server Settings → Integrations → ImageCheck → Command permissions and
assign command groups to roles — the wizard's final message includes the recommended
mapping. ImageCheck's own tier checks still apply server-side either way.
2. Role tiers
Every command is gated by tier. Discord administrators always bypass tier checks, so a server admin can never be locked out.
| Tier | Can do |
|---|---|
| Helper | /imgblock add, the "Block media" context menu, and /imgblock noise add. |
| Mod | Helper, plus removing entries, dry-run scans, tag viewing/editing, and managing list invites. |
| Admin | Everything: list create/delete/rank, subscriptions, tag definitions, config, and the Modify/Remove buttons on log embeds. |
3. How matching works
- Media is reduced to a 64-bit perceptual hash; a post matches an entry when the
hashes differ by at most the Hamming threshold (default 5;
0= exact, higher = looser). Set per server with/imgcfg thresholdor per list with/imglist setthreshold. - Your server's lists are ranked; when an image is on several lists, the highest-ranked list decides the action.
- The action comes from the entry's tags — each tag has a default action (log / warn / timeout / ban), and the most severe enabled tag wins. Subscribers can override or disable any tag for their own server.
- Videos are hashed at 25% and 75% of runtime and match on either frame. If a
recurring intro or channel logo causes false positives, add that frame to the list's
noise deny-list with
/imgblock noise add.
Command reference
Blocking media
"Block media" (right-click → Apps)Block an image or video from any message with an interactive picker: choose the media, pick tags, add a reason./imgblock addSame, as a slash command — better when you want tag autocomplete or 3–4 tags./imgblock removeDelete an entry by ID./imgblock testDry run: would this message's media match? No action taken./imgblock scan_recentDry-run scan of the last N messages in the channel./imgblock bulk_addBulk-import entries from a CSV or JSON file (up to 200 rows)./imgblock countEntry count for a list./imgblock noise add / remove / listManage the per-list deny-list of frames that should never count as a video match.
Lists & sharing
/imglist create / deleteCreate a blocklist (private, invite-only, or public) or delete one you own./imglist mine / info / browseYour lists in priority order; details for one list; browse all public lists with one-click subscribe./imglist invite / accept / decline / cancelInvite another server as contributor or subscriber — they must accept before joining./imglist invitesPending invites with accept / decline / block buttons./imglist code create / list / revoke+/imglist redeemShareable join codes with optional use limits and expiry./imglist subscribe / leaveJoin a public list or leave one you don't own./imglist setrank / setdefault / setthreshold / actioncapOrder your lists, choose the default write target, tune per-list matching, and cap how severe a subscribed list's actions can get.
Tags (block reasons)
/imgtag add / edit / removeOwner-only: define the reasons on a list, each with a default action, optional timeout length, and the message sent to offenders. New lists come seeded with five starter tags./imgtag listEvery tag on a list, with defaults and your server's overrides./imgtag set / clearPer-server override: disable a tag, downgrade its action, or change its message — without forking the list.
Server config
/imgsetupThe four-step setup wizard; re-run any time./imgcfg logchannelWhere block events and the daily digest are posted (clear it to disable the digest)./imgcfg thresholdServer-wide Hamming threshold./imgcfg whitelist add / remove / listUsers and roles whose posts skip scanning entirely.
Support
Questions, bug reports, false positives, or data requests: use the contact form — messages go straight to the operator, and if you leave your Discord username you'll get a reply there.