BlanketFort is a Discord moderation federation system. It lets multiple servers share ban and verification records, so a user banned in one community is automatically flagged when they join another connected server.
Key capabilities:
Click Add to Server on the dashboard or use the invite link. Select your server and authorize all requested permissions.
Once the bot is in your server, run:
Registers your server with the BlanketFort network and creates the database record. You only need to do this once.
Go to Dashboard → Settings and configure:
/mod verifyBlanketFort has three access levels:
| Role | Access |
|---|---|
| Superadmin | Full access to all servers, admin panel, federation management |
| Admin | Full access to their guild dashboard, can manage settings and federation |
| Staff | Can use all /mod commands, read-only dashboard access |
Staff roles are auto-populated when someone uses a /mod command. You can also manage them manually in Dashboard → Settings.
All moderation commands. Requires staff permission.
Bans a user across the entire BlanketFort network. Federated servers will receive the ban in their inbox.
| Parameter | Type | Description |
|---|---|---|
| user | required | The Discord user to ban |
| category | required | Ban category — autocompletes from the network list (harassment, grooming, scam, etc.) |
| reason | required | Reason for the ban, visible on appeals and in the dashboard |
| evidence_url | optional | Link to evidence (screenshot, ticket, etc.) |
| ban_locally | optional | Also Discord-ban them from this server (default: yes) |
Bans a user locally without issuing a network-wide record.
| Parameter | Type | Description |
|---|---|---|
| user | required | User to ban |
| reason | required | Reason for ban |
| evidence_url | optional | Evidence link |
| duration_hours | optional | Temporary ban duration. Leave blank for permanent. |
Records a verification for a user and optionally assigns the Verified role. Shared with federated servers.
| Parameter | Type | Description |
|---|---|---|
| user | required | User to verify |
| method | required | Verification method — autocompletes (age_check, id_verify, vouched, etc.) |
| note | required | How they were verified (e.g. "Verified via ticket #1234") |
| ticket_url | optional | Link to the verification ticket |
| evidence_url | optional | Supporting evidence |
Posts a visible embed showing a user's network status — active bans, verification count, and risk score. Useful for quickly briefing staff in channel.
| Parameter | Type | Description |
|---|---|---|
| user | required | User to look up |
Ephemeral (private) detailed breakdown of a user's full verification and ban history across all servers.
Adds a private staff note to a user without banning or verifying them. Notes appear in the dashboard and user timeline. Great for tracking borderline behavior.
| Parameter | Type | Description |
|---|---|---|
| user | required | User to note |
| note | required | Note content (up to 2000 characters) |
Lists all staff notes on file for a user from this server. Ephemeral — only visible to you.
Triggers the AI intel system to analyze a user and return a risk score, flags, and behavioral analysis.
Adds or removes a user from this server's watchlist. Staff will get an alert in the staff channel when a watchlisted user joins.
Revokes a global ban by its ban ID. The ban remains on record but is marked inactive.
Removes a local ban from this server without affecting global ban records.
Server configuration commands. Requires admin permission.
Registers your server with BlanketFort. Run once after inviting the bot. Sets default configuration and enables auto-scanning.
Displays current BlanketFort settings for this server — federation status, alert channel, verified role, and feature flags.
Triggers an immediate federation sync with all peer servers to pull the latest bans and verifications into your inbox.
Manage federation peers. Requires admin permission.
Sends a federation request to another server by Discord server ID. Both servers must accept for federation to be active.
Shows all active and pending federation peers for this server.
Disconnects federation with a peer server. Existing received bans are retained but no new syncs occur.
Access the dashboard at blanketfort.snugglesmp.com/dashboard. Log in with Discord — you'll only see servers where you have staff access.
At-a-glance stats for your server: recent bans, recent verifications, high risk joins, and federation sync status.
Full list of global bans issued by your server. You can revoke bans, view evidence, and see the full ban history per user.
All verified users from your server. Verifications are federated to peer servers automatically.
Charts showing ban trends by category and month, top staff by ban count, and network-wide totals. Includes CSV export for bans and verifications.
Staff notes added via /mod note. Can be pinned and searched. Notes are private to your server.
Ban appeals submitted by users. Staff can approve (which unbans the user) or deny each appeal.
Full chronological log of every action taken through BlanketFort — bans, verifications, settings changes, federation actions.
Bans received from peer servers appear here. For each one you can:
Verifications received from peers. You can accept them (assigns your verified role) or dismiss. Supports per-peer auto-accept.
Per-peer reputation scores, ban actioned rates, and last sync times. Useful for spotting peers that aren't syncing.
Configure HTTP callbacks that fire when events happen. Go to Dashboard → Webhooks.
Available events: global_ban, verification, federation_ban, local_ban, appeal
Each delivery includes a signed X-BlanketFort-Signature header (SHA-256 HMAC) when a signing secret is set. Webhooks are auto-disabled after 10 consecutive failures.
Generate API keys under Dashboard → API Keys. Use them in the Authorization: Bearer bf_xxxxx header to query BlanketFort from external tools.
Federation is peer-to-peer — there's no central authority. Two servers must both accept each other before any data is shared.
/blanketfort syncPeer tiers control sync depth. Tier 1 peers get everything; Tier 2 peers get a filtered subset. Set tiers in Dashboard → Federation.
Categories are standardized across the network so ban data is comparable and filterable.
| Category | Severity | Description |
|---|---|---|
| grooming | ⚠️ Critical | Sexual or manipulative grooming behavior |
| nsfw_minor | ⚠️ Critical | Explicit content involving minors |
| doxxing | ⚠️ Critical | Sharing private personal information |
| predatory | ⚠️ Critical | Predatory behavior toward vulnerable members |
| threats | ⚠️ Critical | Credible threats of violence |
| harassment | High | Targeted harassment of members or staff |
| ban_evasion | High | Rejoining after being banned |
| scam | High | Financial scams, phishing, or fraud |
| raid | High | Organizing or participating in server raids |
| hate_speech | High | Slurs, bigotry, or targeted hate |
| impersonation | Medium | Impersonating staff, users, or public figures |
| spam | Medium | Spamming, self-bots, or automated abuse |
| tos_violation | Medium | Discord Terms of Service violation |
| community_harm | Medium | General behavior harmful to the community |
| other | Low | Other — see ban notes for context |
BlanketFort includes an AI-assisted risk scoring system that runs when users join federated servers.
High-risk users trigger an alert in your staff channel on join. You can run a manual scan with /mod scan.
Staff can provide feedback on intel results (correct / false positive) from Dashboard → Intel. Feedback improves accuracy over time.
Users with active global bans can submit an appeal at /public/appeal. They need their Discord user ID and the ban ID (or it's looked up automatically).
Appeals appear in Dashboard → Appeals for the issuing server's staff to review. Staff can:
/public/lookup/:userId shows a user's ban status and includes an appeal link.