v0.1.0 · 11 features · runs entirely on your own machine

A Discord moderator that's actually yours.

MARVIN keeps your Discord server safe. It blocks spam, catches scam images, runs tickets, hides adult content, and gives you a simple dashboard to set it all up. Turn features on or off per server. No subscriptions to anyone else.

Free to start · open source · your data stays on your own server

Guilds protected

Messages filtered

Scams blocked / 7d

11 features

Mix and match what you need

Turn each feature on or off for each server. Anti-spam in one, tickets in another, both in a third — your choice.

Admin handler

0.1.0

Bot-side handler for dashboard owner actions (leave_guild, ...) + guild blocklist enforcement.

Default ONadmin

Alt Account Detection

1.0.0

Catches members using multiple accounts to dodge bans. Members click a Verify button → confirm with Discord → MARVIN quietly notes a fingerprint of their connection. If two accounts share the same fingerprint, your staff get an alert. We don't ban anyone automatically — a shared connection can mean two people in the same house. You decide what to do.

Opt-inalt_detection

Anti-Invite Links

0.1.0

Stops members from posting links to other Discord servers. Catches official Discord invite links, sneaky redirectors, and shortened links (like bit.ly) that hide an invite. Each type can be turned on or off independently.

Default ONanti_invites

Anti-Nuke

0.1.0

Protects against rogue admins or compromised staff accounts. If someone with admin powers mass-deletes channels, mass-bans, or mass-creates roles in a short time, MARVIN strips their admin roles and alerts you before they can do real damage. Lifesaver if a moderator's account ever gets hacked.

Opt-inanti_nuke

Anti-Raid

0.1.0

Spots raid waves — lots of accounts joining at once. When the join rate spikes past what you set, MARVIN alerts your staff and (if you want) auto-kicks everyone who joined during the wave. After the wave passes, things go back to normal.

Opt-inanti_raid

Anti-Spam

1.0.0

Detects and acts on message spam patterns: rapid-fire, duplicates, mass-mentions, mass-emojis, ALL CAPS. Each pattern is individually togglable per guild.

Default ONanti_spam

Audit Log

0.2.0

Records every moderator action and every automated filter trigger to the audit_log table, AND echoes them as rich embeds to per-event-type log channels you pick below. Set the channels you care about; leave the rest blank to suppress.

Default ONaudit

Auto-thread + slowmode

0.1.0

Automatically create threads in selected channels, and/or auto-adjust slowmode based on message rate. Set per-channel from the dashboard.

Opt-inauto_thread

AutoMod Custom Rules

0.2.0

User-supplied regex rules + caps/link/slur banlist categories. Each type is individually toggleable. Off by default because it needs your rules — add them via /automod add or the dashboard.

Opt-inautomod_rules

Birthdays

0.1.0

Daily birthday announcements + optional role on the day.

Opt-inbirthdays

Custom Commands

0.1.0

Make your own slash commands. /cc <name> runs whatever response you saved — text, mentions, server info, even arguments the user types. Great for FAQs, rules links, or running gags. Manage your commands from the dashboard.

Default ONcustom_commands

DB Maintenance — retention sweep

1.0.0

Daily DELETE sweep over high-growth tables (audit_log, filter_matches, bot_command_queue, mention_events, etc.) so the DB stays bounded over time. Per-table retention is policy-driven (sane defaults bundled). Logs deletion counts to lifecycle_log on every cycle. Never touches infractions, tickets, transcripts, or anything the operator might need long-term — those are preserved by design.

Default ONdb_maintenance

Embed Builder

0.1.0

Send a rich embed to any channel via /embed send. Save embeds as named templates per server with /embed save, then /embed load to re-use them for announcements. JSON-edit supported for power users.

Default ONembed_builder

Giveaways

0.1.0

Create button-based giveaways. Bot auto-picks winners when the timer runs out. Staff can reroll or end early. Active + past giveaways listed on the dashboard.

Opt-ingiveaways

Guild Lifecycle

0.1.0

Tracks guild joins / removes / rejoins. When the bot is removed from a guild, the guild's data is archived (not deleted) for 30 days; if the bot is re-added within that window, all settings and history are restored. A daily janitor task purges expired archives.

Default ONlifecycle

Guild Settings

0.1.0

Per-guild config storage + the /config slash commands. Disabling this cog leaves all other cogs running on their default settings (slash commands stop responding, but the underlying cache still works).

Default ONsettings

Honeypot

1.0.0

A trap channel that auto-bans anyone who posts in it. Catches spam bots and malicious accounts that blast every channel. Pick an existing channel or create a 'do-not-type' channel, set who's exempt, and enable it.

Opt-inhoneypot

Integrations

0.1.0

Connect MARVIN to other services (game leaderboards, weather, your own website's API, etc.) so other features can pull in live data. Welcome messages, tickets, and custom commands can all use these connections to show real-time information.

Opt-inapi_connector

Invite tracker

0.1.0

Tracks which invite each new member came through. Lets staff see who's actively recruiting + supports invite-reward systems. /invites for personal stats, /invites leaderboard for top inviters.

Opt-ininvite_tracker

Keyword Alerts

0.1.0

Members add words they want to know about (their username, their game, their company, etc.) and MARVIN DMs them when someone mentions one of those words in chat. Like a personal ping system that doesn't bother the rest of the server.

Default ONhighlights

Levels & XP

0.1.0

Members earn XP for chatting and being in voice channels, leveling up over time. You can give out roles automatically at certain levels (Level 10 → Active Member, etc). /rank shows a member's progress; /leaderboard shows the top XP earners. Pick a dedicated channel for level-up announcements so they don't spam your main chat.

Opt-inleveling

Moderation

0.1.0

The core mod toolkit: /warn, /mute, /kick, /ban, /note, /case, /cases. Members rack up warnings, and MARVIN can auto-escalate (for example: 3 warnings in 30 days = 1 hour mute). All actions are recorded so your staff can pull a member's full history with /cases.

Default ONmoderation

New Account Screening

0.1.0

Checks every new member as they join and acts on the obvious warning signs of bot accounts: brand-new accounts (days old), accounts with DMs locked off, default avatars, etc. You pick what counts as suspicious and what to do — log, quarantine, kick, or ban. Pairs well with the Anti-Raid feature for full raid coverage.

Opt-injoin_gate

NSFW Filter

1.0.0

Scans images for adult content, gore, hate symbols, self-harm imagery, and more. Each category has its own on/off, sensitivity slider, and action (delete, warn, ban). All scanning happens on your own machine — pictures never leave your server.

Opt-innsfw_filter

Onboarding

0.1.0

Welcome flow when the bot joins a server. Creates a private bot-setup channel visible only to the user who added the bot + anyone with Manage Server, and pins a how-to embed with links to the dashboard and a 5-step quick-start checklist.

Default ONonboarding

Polls

0.1.0

/poll create <question> · 2–10 options · single or multi-choice voting via buttons · timed auto-close with results embed · /poll close to end early · /poll list active in this server.

Opt-inpolls

Reaction Roles

0.1.0

Button-panel role pickers. Three modes: single (one role from a set), multi (any combination), binding (one-way). Manage panels from the dashboard or the /rrpanel slash group.

Opt-inreaction_roles

Reminders

0.2.0

Members run /remind to have MARVIN ping them later — in a channel or a DM. Accepts natural times like "in 30 minutes" or "tomorrow at 9am". Reminders fire within seconds of when you set them.

Default ONreminders

Reputation Points

0.1.0

Members thank each other with /rep — builds a leaderboard of the most helpful people in your server. Great for finding natural community leaders. Cooldowns prevent spam.

Default ONkarma

Saved Snippets

0.1.0

Save bits of text that anyone can recall with /tag <name>. Common uses: server rules, FAQ answers, copypasta. Members can create their own snippets too (or you can lock that to specific roles).

Default ONtags

Scam Image Detection

1.0.0

Catches the classic scam pattern: a fresh account posts 3-6 near-identical images very quickly, often pinging @everyone. MARVIN recognises the images even if they've been slightly edited, reads any text in them, and combines those signals into a confidence score. Default settings are gentle — if you see false positives, you can dial it back.

Default ONanti_scam_images

See Deleted Messages

0.1.0

When someone deletes a message, anyone can run /snipe in that channel to see what was deleted. Useful when scammers post and quickly delete, or when you missed something before it got removed. Stops working after the message is older than a configurable time (default 60 minutes).

Default ONsnipe

Server Stats

0.1.0

Locked voice channels that show live member counts. Discord rate-limits channel renames to 2 per 10 minutes per channel — the bot debounces and skips no-op updates. Pair with the public /status page for the operator-side view.

Opt-inserver_stats

Shared Bans

0.1.0

Share bans with other servers that also use MARVIN. Turn on "share my bans" so other servers can see them, and "check for shared bans" so MARVIN flags people who've been banned elsewhere when they join you. The default action is "flag for review" — your staff still decide whether to ban. No one else's decision gets enforced automatically.

Opt-inshared_bans

Starboard

0.1.0

⭐ react above threshold reposts a message to a designated starboard channel.

Opt-instarboard

Sticky & Scheduled Messages

0.1.0

Sticky messages stay at the bottom of a channel — perfect for rules or important info. Scheduled messages fire on a timer you set (once, or repeating) — great for daily reminders, weekly events, or one-off announcements.

Default ONmessages

Sticky Roles

0.1.0

Remembers what roles a member had when they leave, and gives them back on rejoin. Stops people from leaving and rejoining just to drop a mute, and saves your members from having to re-pick their roles every time they come back.

Default ONsticky_roles

Suggestions

0.1.0

Members run /suggest to post ideas to a dedicated channel. Each suggestion gets 👍/👎 vote buttons + a status tag that staff can update via /suggest-approve, /suggest-deny, etc.

Opt-insuggestions

Temp voice channels

0.1.0

Join-to-create voice channels. Configure a trigger channel; anyone who joins spawns their own owned channel. Empties get auto-cleaned. Owners use /voice rename|lock|limit|kick.

Opt-intemp_voice

Tickets & Modmail

0.2.0

Two ways for members to talk to your staff privately: an in-server ticket panel (click a button → MARVIN makes a private channel just for you and the staff team) and modmail (a member DMs MARVIN → staff get a hidden conversation channel they can reply from). Categories like "Report" or "Support" each have their own staff team. Closing a ticket saves a clean transcript.

Opt-intickets

Watchlist

0.1.0

Quietly keep an eye on specific members. Add someone with /watch, and MARVIN mirrors their messages and join/leave/role changes to a private staff channel. They don't know they're being watched. Useful for borderline members on a final warning.

Opt-inwatchlist

Welcome / Leave

0.2.0

Send configurable welcome + leave messages in-channel and/or DM. Pick text or embed per direction; both support variable substitution: {user.mention}, {user.name}, {user.avatar}, {user.created}, {guild.name}, {member_count}, {join_date}, {time_in_server}, {roles}, {inviter}.

Opt-inwelcome

Try it

See the commands in action

Click the chips below or type a command — these are real bot responses, just shown here in a safe preview.

# demo-server
M

MARVIN BOT

👋 Welcome — this is a synthetic preview. Try the commands below.

>

Buttons that always work

The buttons on welcome messages, ticket panels, and verification embeds keep working even if the bot restarts. No "this interaction failed" errors.

Commands appear quickly

New slash commands show up in seconds on your test server, and within about an hour on every other server you've added MARVIN to.

Your data stays with you

Image scanning, scam detection, and content filtering all run on your own machine. Nothing gets sent to a third party.

How we compare

An honest comparison

No marketing fluff. Where other popular bots do something well, we say so.

Anti-spam (rate-limit, dupes, mentions, emojis, caps)

MARVIN

Carl-bot

MEE6

Dyno

Per-category toggles for each filter

MARVIN

Carl-bot

MEE6

Dyno

Native tickets (no separate bot)

Many guilds run Ticket Tool separately

MARVIN

Carl-bot

MEE6

Dyno

Burst-image scam pHash + OCR

MARVIN

Carl-bot

MEE6

Dyno

@everyone / @here pings with cooldowns

MARVIN

Carl-bot

MEE6

Dyno

Web dashboard for every config

MARVIN

Carl-bot

MEE6

Dyno

Per-guild module enable/disable

MARVIN

Carl-bot

MEE6

Dyno

100% free, no paid tier

MARVIN

Carl-bot

MEE6

Dyno

Self-hostable

MARVIN

Carl-bot

MEE6

Dyno

Local NSFW model (no paid API)

MARVIN

Carl-bot

MEE6

Dyno

Open source

MARVIN

Carl-bot

MEE6

Dyno

Pricing

$0 / month. Forever.

MARVIN runs on your own machine — anything from a regular Windows PC to a cheap web host. There are no paid services involved: the spam detection, image scanning, and content filtering all happen locally. That's why we can give it away for free.