Everything you need to get started
From setting up your first server to building marketplace plugins — the full reference for owners and developers.
Getting Started
What is MMO Maid?
MMO Maid is a multi-tenant Discord bot platform built for gaming communities. It provides analytics, moderation, voice channel management, and a marketplace where developers can publish and sell custom plugins.
Every server gets its own isolated configuration, data, and plugin settings. Nothing is shared between servers.
Adding the Bot to Your Server
Click "Add to your server" on the home page to invite the shared MMO Maid bot. Once added, visit the Dashboard to select your server and start configuring.
The shared bot is free and includes all 10 built-in plugins. For custom branding and marketplace access, upgrade to a BYO subscription.
Shared Bot vs BYO (Bring Your Own)
- Uses the MMO Maid identity (name, avatar)
- All 10 built-in plugins included
- Per-server configuration via the dashboard
- No marketplace plugin access
- Your own bot name, avatar, and token
- Full marketplace plugin access
- Sandbox controls for plugin permissions
- Transferable server slot
- Priority support
Setting Up a BYO Subscription
- Go to Account → + Buy BYO Slot
- Choose a plan (Nanny, Mistress, or Governess)
- Complete payment via Stripe
- Back on the Account page, assign the slot to your server
Configuring Your Custom Bot Token
After assigning a BYO slot to your server:
- Create a bot application at Discord Developer Portal
- Copy the bot token
- Go to Bot Settings in the MMO Maid dashboard
- Paste the token and click Set Token
- Invite your custom bot to your server using the generated invite link
Plugin System
Built-in Plugins
Every server gets all 10 of these for free. Toggle individual plugins on or off from the dashboard.
Marketplace Plugins
The Marketplace is where developers publish custom plugins. BYO subscribers can browse, purchase, and install third-party plugins directly from the dashboard.
Each marketplace plugin runs in a sandboxed Docker container with no direct network access, memory limits, and read-only filesystem. Plugins interact with Discord through a controlled RPC API.
Permissions & Sandbox
When installing a marketplace plugin, you choose which permissions to grant:
- Capabilities — what the plugin can do (read messages, send messages, manage roles, etc.)
- Proxy Domains — external URLs the plugin can access through the proxy
- Privacy Mode — whether the plugin sees message content or only metadata
You can change permissions at any time from the Plugins page.
Developer Guide
Building Plugins
Plugins are Python packages built with the MMO Maid SDK. The SDK provides event handlers, KV storage, Discord API access, and more.
For the full SDK reference — cookbook recipes, capabilities, sandbox guarantees, complete event & method reference — head to the public developer docs.
- Overview — what a plugin is, how it differs from a self-hosted bot
- Getting started — quick start, file structure, manifest, lifecycle
- Cookbook — 15 copy-pasteable recipes (welcome, leaderboards, polls, tickets…)
- Build — events, slash commands, components, modals, schedules
- Storage & I/O — KV, SQL, ephemeral, HTTP, metrics, logging
- Dashboards — manifest mode + iframe mode + style pack
- Production — error handling, testing, capabilities, sandbox, publish
- Reference —
ctxattributes, Discord methods, decorators, changelog
Quick start: pip install mmo-maid-sdk, edit a starter zip, upload to the Dev Portal (sign-in required), submit for review.
Submission & Review
All marketplace plugins go through a security and quality review before publishing. The review checks:
- No malicious code or data exfiltration
- Proper use of SDK APIs
- Reasonable resource usage
- Working functionality as described
Reviews typically complete within 48 hours.
Revenue & Payouts
Developers earn revenue from plugin sales. The platform takes a percentage fee (starting at 30%, decreasing with volume).
- Stripe handles all payments and payouts automatically
- 30-day hold period on new sales before funds are released
- Daily automatic payouts to your connected Stripe account
- Track earnings, sales, and upcoming payouts in the Earnings dashboard
Account & Billing
BYO Subscription Tiers
BYO subscriptions are priced per server. Each slot covers one Discord server with a custom bot identity. Visit Buy BYO to see current pricing and start a free trial.
Plugin Licenses
Marketplace plugins are licensed per server. When you purchase a plugin, the license is tied to your BYO subscription. If you move your BYO slot to a different server, your plugin licenses move with it.
Manage all your licenses from Account → All Purchased Plugins.
Cancellation & Refunds
You can cancel your BYO subscription at any time from the Account page. When a BYO subscription is cancelled:
- All plugin licenses tied to that subscription are automatically cancelled
- Your server reverts to the shared bot
- Plugin data is retained for 30 days in case you re-subscribe
Plugin refunds can be requested within 7 days of purchase from the plugin's Marketplace page.
Frequently Asked Questions
How do I enable a plugin on my server?
Open the dashboard, pick your server, and go to the Plugins page. Toggle any plugin on or off — the change takes effect immediately, no bot restart needed. Built-in plugins are free; marketplace plugins may require an entitlement before they're available to enable.
What does MMO Maid do?
MMO Maid is a Discord bot management platform built for gaming and community servers. You get 10 built-in plugins out of the box — moderation, analytics, welcome flows, voice channels, giveaways, group finder, scheduled events, ticket support, scheduled announcements, and social-feed alerts — plus a marketplace of third-party plugins. Manage everything from one dashboard, with live config that takes effect in seconds (no bot restart). Use the shared bot for free, or upgrade to BYO and run the same features under your own bot identity.
How do I create my own Discord bot for BYO?
Open the Discord Developer Portal, click New Application, give it a name and avatar, then go to the Bot tab and click Add Bot. Enable the Message Content, Server Members, and Presence intents — MMO Maid needs all three for full plugin coverage. Copy the token (you'll only see it once) and paste it into the dashboard at /account/byo. Done — your custom bot is now controlled by the MMO Maid platform.
How is BYO priced?
BYO is billed per active bot. The base tier covers a single BYO bot on one server; multi-server tiers let one bot manage many servers under one subscription, or multiple bots under one account. Pricing details on the Pricing page. Plugins themselves are not metered separately — built-in plugins are free regardless of mode, and marketplace plugins are billed by their developer per their own pricing.
What does the Analytics plugin do?
Analytics tracks message activity, voice time, member joins/leaves, role rewards, and cohort retention for your server. It powers leaderboards, trend charts, and per-channel drill-downs in the dashboard at /p/analytics/. Counts and timestamps are stored — message content is not.
The bot appears offline in my server. What do I do?
First, check /status — if the platform-wide bot is degraded, you'll see it there. Otherwise: open /bot-manage. For BYO, check the connection status and click Restart Bot if it shows Crashed. For the shared bot, the most common cause is a Discord intent or permission change — re-invite the bot from /servers to refresh its access.
What data does MMO Maid actually store?
Stored: message metadata (timestamps, channel IDs, author IDs — used for analytics counts), member join/leave events, voice-session timestamps, plugin config you save, audit log of admin actions, and billing data. Not stored: message content (unless a plugin explicitly captures it for a feature you enabled — like ticket transcripts, where it's scoped to the ticket channel and tagged with retention). Each tenant's data is isolated by discord_srv_id at the database level.
How do I create a marketplace plugin?
Go to /dev/plugins and click New Plugin. You'll be asked for an id (lowercase, underscore-separated, becomes the URL slug), a display name, and a description. After creation, the plugin starts in draft state — you upload an artifact (zip), and the static scanner runs over it. Once you submit a version for review, our team checks it and either publishes or flags it back to you with notes.
What is the marketplace review queue?
Every submitted version lands in our review queue before going live. We check: static-scan findings (no obvious malware/secret-stealing), manifest accuracy (capabilities match usage), version delta (what changed since the last published version), and a quick smoke install. Most reviews complete within 24-72 hours. You'll get a dashboard notification when reviewed.
How do I set up payouts as a plugin developer?
Open /dev/payouts and click Connect with Stripe. You'll be redirected to Stripe Connect's standard onboarding (business details, ID verification, bank account for payouts). Once verified, every paid install of your plugin sends earnings to your Stripe account on the standard payout schedule. We take a platform fee (current rate displayed on the payouts page); the rest is yours.
What are the proxy:http quotas and can they be raised?
Default: 60 outbound HTTP requests per minute per plugin, with a per-tenant token bucket. Bursts up to 2× burn through tokens then throttle to the steady rate. If you have a legitimate reason to need more (e.g. a plugin that polls a high-volume webhook), request an override at /dev/plugins/<id>/quota — staff can raise it per-plugin within sane bounds. Hard ceiling is 1000/minute regardless of override.
How do I uninstall a marketplace plugin?
Open /plugins and click the marketplace plugin's row. Hit Uninstall. The plugin's container is stopped and removed within a minute. Plugin data is retained for 30 days in case you reinstall (subscription re-activates with config intact). After 30 days, the plugin's database schema is dropped. Subscriptions to paid plugins must be cancelled separately at /account/billing to stop charges.
How do I add MMO Maid to my Discord server?
Open the dashboard at / and click Add to Discord (or go straight to /servers after logging in). You'll be redirected to Discord's standard authorize page. Pick the server, approve the listed permissions, and you'll be sent back to the dashboard with the bot already in your server. Total time: under a minute. You must be the server owner or have Manage Server permission for the server you're inviting the bot to.
Where do I paste my BYO bot token?
Open /account/byo (Account → Bring Your Own Bot). Paste the token from the Discord Developer Portal into the Bot Token field and click Save. Tokens are encrypted at rest and never displayed back to you in plaintext after save. If you ever leak or rotate the token, click Rotate Token to swap in a new one — the old one is invalidated immediately.
What happens to my BYO bot if my subscription lapses?
On a failed payment, Stripe retries automatically for ~14 days. During retry, your BYO stays online. If retries fail and the subscription cancels, your BYO is gracefully stopped: the bot leaves your server, but all plugin config, analytics, tickets, and data are retained. Re-subscribe and your BYO comes back up exactly where it left off. The shared bot can be swapped in temporarily as a fallback at no charge.
How do I enable the Analytics plugin?
From /plugins, toggle Analytics on. Data starts collecting immediately for new messages and voice sessions. Historical Discord activity (before the toggle) can be back-filled by running the Discord history import from the Analytics dashboard's settings tab.
Slash commands aren't appearing or are duplicated.
Discord caches slash commands per-guild for up to an hour. If you toggled a plugin recently, wait — they'll appear automatically. To force-refresh, run /admin sync (server owner only). If commands are duplicated (e.g. you see two /ticket commands), one is from a stale registration; /admin sync cleans them up. Members can also try Ctrl+R in the Discord client to reload its command cache.
How long is my data retained?
Default retention windows: analytics events kept 12 months then aggregated; audit logs kept 13 months; ticket transcripts kept indefinitely until you delete them; billing/invoice data kept 7 years (legal requirement). If your subscription cancels and you don't re-subscribe within 30 days, the bot is removed from the server but data is retained for 90 days before scheduled deletion. Custom retention windows can be configured per plugin where supported.
What's required in a plugin manifest?
The metadata dict in your plugin.py requires id, name, version, description, and capabilities_required (list of strings). Optional: slash_commands (auto-detected from your code), proxy_domains_requested (HTTP allow-list), and kv_namespaces. Any capability you actually use will be auto-added to capabilities_required on artifact upload — this prevents "forgot to declare" runtime errors. See the plugin development docs.
What does the static scanner check?
AST-based detection of: dynamic code execution (eval, exec, compile), foreign function interface calls (ctypes, cffi), raw network access (bypassing the proxy capability), self-modifying code, sandbox-escape patterns, anti-debug indicators, and secret-stealing patterns (env-vars + file paths). Manifest cross-ref: every capability you use must be declared, every domain you call must be in proxy_domains_requested. Findings are scored 0-100; high-score versions auto-flag for human review.
When do I get paid for marketplace sales?
Stripe Connect's default schedule is rolling 7-day for card payments — funds settle from your balance to your bank 7 days after the customer pays. You can adjust to 2-day or manual payouts in your Stripe dashboard. Refunds (within the refund window) are deducted from your balance before payout. Earnings overview at /dev/payouts.
What are the marketplace plugin sandbox limits?
Each marketplace plugin runs in a Docker container with: 256MB RAM soft limit (kill at 512MB), 0.5 CPU core,