← Documentation  /  Developer Guide

Build a plugin

The full SDK reference for plugin developers — sandboxed Python, shipped as a zip, distributed through the marketplace.

These docs are publicly viewable. To publish a plugin you'll need a free MMO Maid account — sign in to access the Dev Portal.

SDK v0.5.1 · Plugins are sandboxed Python processes. Write a handler, declare your capabilities, ship a zip — we run it in a locked-down Docker container and stream Discord events to it over JSON-RPC.

What is a plugin?

A plugin is a small program that listens to events in a Discord server and reacts to them.

  • Someone joins your server → your plugin sends a welcome message.
  • Someone types /leaderboard → your plugin replies with the top 10 users.
  • It's 9 AM → your plugin posts a daily recap.

You write Python. You import the SDK. You decorate a function with @plugin.on_event("member_join") and write what should happen. The platform handles the rest.

What the platform does for you

  • Connects to Discord. You never deal with WebSocket gateways, sharding, intents, or rate limits. The platform delivers events to your handlers and turns your return values into Discord API calls.
  • Hosts your code. No servers to rent, no Docker to manage, no deploys at 2 AM. Push your code — the platform runs it in an isolated sandbox.
  • Takes payments. Set a price. Customers pay through Stripe. You get 70–85% of revenue (tier depends on your monthly volume) deposited monthly to your bank.
  • Scales for you. One install or one million — the platform handles concurrency, retries, quotas.

What you do

Write the logic that turns Discord events into actions. That's it. The flow looks like this:

   ┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
   │  Discord event  │────▶│   MMO Maid       │────▶│  Your plugin's   │────▶│   MMO Maid       │
   │  (msg, /cmd…)   │     │   gateway        │     │   handler        │     │   sends to       │
   │                 │     │                  │     │                  │     │   Discord        │
   └─────────────────┘     └──────────────────┘     └──────────────────┘     └──────────────────┘
                                                              ▲
                                                              │
                                                    you write this part

How a plugin is different from a "Discord bot framework"

ConcernPlugin (this platform)Self-hosted bot (discord.py, etc.)
Connect to DiscordPlatform does itYou do it
Server to host codePlatform providesYou rent / manage
Payments / StripePlatform handlesYou build it yourself
Per-customer installOne-click for customerYou walk each customer through OAuth
Scaling / quotas / retriesPlatform handlesYou handle it
Reviews / discoverabilityBuilt-in marketplaceYou market your bot yourself
Discord API surfaceCapability-gated (declare what you need)Full access (your responsibility)

Where you'll spend your time

  1. Wiring events to handlers. Decorators like @plugin.on_event("message_create") or @plugin.on_slash_command("hello").
  2. Storing state. Per-server settings, counters, leaderboards — the SDK gives you ctx.kv (key-value) and ctx.sql (SQL) without managing a database.
  3. (Optional) A settings page. Drop in a JSON manifest and customers get a dashboard page they can configure your plugin from. No frontend code required.

From idea to your first plugin live in the marketplace usually takes one afternoon. Click "Getting started" above when you're ready to write code, or jump to the marketplace first to see what others have built.

SDK v0.5.1 · Last updated April 2026 · Back to Dev Portal