Features

Eleven features. Turn on what you need.

Every feature works on its own and can be turned on or off per server from the dashboard. Pick the ones that fit your community — ignore the rest.

Admin handler

On by default

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

Anti-Invite Links

On by default

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.

Anti-Spam

On by default

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

  • Catches the 5 most common spam patterns: rapid-fire messages, duplicates, mass mentions, emoji floods, and ALL CAPS
  • Turn each pattern on or off individually from the dashboard
  • Catches @everyone / @here pings — with a daily allowance for trusted roles
  • Can take away just the @-mention permission instead of muting completely

Audit Log

On by default

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.

Custom Commands

On by default

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.

DB Maintenance — retention sweep

On by default

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.

Embed Builder

On by default

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.

Guild Lifecycle

On by default

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.

  • If you kick MARVIN, your settings stay safe for 30 days
  • Re-add MARVIN within those 30 days and everything is restored exactly as it was
  • After 30 days, your data is fully and permanently deleted — no leftovers

Guild Settings

On by default

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).

Keyword Alerts

On by default

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.

Moderation

On by default

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.

Onboarding

On by default

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.

  • Creates a private setup channel as soon as you add MARVIN
  • Pins a welcome message with a dashboard link and a 5-step checklist
  • Works even if you added MARVIN while it was offline
  • Run /setup show to bring the welcome message back any time

Reminders

On by default

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.

Reputation Points

On by default

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.

Saved Snippets

On by default

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).

Scam Image Detection

On by default

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.

  • Spots scammers who post 3+ images in a row within 30 seconds
  • Recognises images that look like known scams — even slightly edited ones
  • Reads text in images to catch scam keywords
  • Adds extra weight when a scam pings @everyone — usually an instant mute
  • Works without sending any images to a third-party service

See Deleted Messages

On by default

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).

Sticky & Scheduled Messages

On by default

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.

Sticky Roles

On by default

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.

Alt Account Detection

Off by default

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.

Anti-Nuke

Off by default

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.

Anti-Raid

Off by default

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.

Auto-thread + slowmode

Off by default

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

AutoMod Custom Rules

Off by default

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.

Birthdays

Off by default

Daily birthday announcements + optional role on the day.

Giveaways

Off by default

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.

Honeypot

Off by default

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.

Integrations

Off by default

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.

Invite tracker

Off by default

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.

Levels & XP

Off by default

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.

New Account Screening

Off by default

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.

NSFW Filter

Off by default

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.

  • 13 different content categories you can turn on individually
  • A sensitivity slider for each one, plus your choice of what to do (delete / warn / ban)
  • All scanning happens on your machine — images never leave your server

Polls

Off by default

/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.

Reaction Roles

Off by default

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.

Server Stats

Off by default

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.

Shared Bans

Off by default

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.

Starboard

Off by default

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

Suggestions

Off by default

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.

Temp voice channels

Off by default

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.

Tickets & Modmail

Off by default

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.

  • Built-in — no need to add another bot like Ticket Tool
  • Set up categories (e.g. "Support", "Reports") with their own staff teams
  • The panel buttons keep working even if MARVIN restarts
  • Saves a nice readable transcript of every ticket when it&apos;s closed

Watchlist

Off by default

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.

Welcome / Leave

Off by default

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}.

Ready to try it?

Add the bot to any server you administer.