Pricing
Every tier includes the complete scripting engine, all triggers, and both editing modes. Tiers scale across hourly script execution time, key-value storage, outbound HTTP requests, concurrent scripts, and linked YouTube channels. Pick the tier that matches your server's activity.
Beta pricing: Tier limits and pricing are subject to tuning based on real server usage.
Have feedback on resource limits? Join the
support server
to share suggestions.
Free
$0/mo
For a small friend-group server, and for trying everything out.
- 30s runtime/hr
- 0.5 MB storage
- 10 fetch() calls/hr
- 1 YouTube channel
Compare every limit
Runtime and fetch are hourly budgets resetting on a rolling window. When a limit is reached, scripts halt without rollback. Storage is persistent across your key-value store and media uploads. YouTube channels define how many feeds can be linked simultaneously.
| Limit | Free | Plus | Pro | Ultra |
|---|---|---|---|---|
Triggers included
Every trigger is included on every tier: slash commands, reactions, member joins, Twitch stream events, and YouTube video/stream releases. | All 84 triggers | All 84 triggers | All 84 triggers | All 84 triggers |
Script editor
The same Monaco code editor on every tier, with real-time autocompletion against the full script API and syntax highlighting. | Monaco, full API | Monaco, full API | Monaco, full API | Monaco, full API |
Write-only secrets
Store API keys and webhook secrets encrypted. Scripts access them safely without exposing credentials to moderators. | Included | Included | Included | Included |
Execution logs & audit
Every script run is recorded with status, duration, error details, and an audit trail. | Included | Included | Included | Included |
Runtime / hour
How long your scripts may spend running each hour, everything combined. Time spent waiting for Discord to answer counts, so this is also what limits how many messages, bans and role changes your scripts can make: there is no separate cap on those. | 30s | 150s | 300s | 600s |
Storage (KV + Media)
Persistent storage shared between your scripts' key-value store (settings, moderation history, custom data) and uploaded media files. The one limit here that does not reset every hour, so freeing space means deleting keys or unused media. | 0.5 MB | 1 MB | 4 MB | 10 MB |
fetch() calls / hour
Outbound HTTP requests your scripts make to other sites and APIs. | 10 | 30 | 60 | 120 |
Concurrent scripts
How many of this guild's scripts may run at the same time. A slow script no longer blocks quick ones behind it; incrKV/updateKV lock a key so two of them can't race on the same value when they overlap. | 1 | 2 | 4 | 8 |
YouTube channels
How many YouTube channels this server may link on the Integrations page to receive video and live stream triggers. | 1 | 3 | 6 | 12 |
RSS / Atom feeds
How many feeds (blogs, subreddits, GitHub releases, status pages) this server may follow on the Integrations page, and how often they're checked for new items. | 3, every 60 min | 10, every 30 min | 25, every 15 min | 50, every 5 min |
Incoming webhooks
Scripts with their own URL that GitHub, Ko-fi, Stripe, uptime monitors or your own services can call, and how many requests each accepts an hour. | 1 URL, 60 req/h each | 25 URLs, 300 req/h each | 25 URLs, 1,000 req/h each | 25 URLs, 3,000 req/h each |
Leaderboard size
How many members one leaderboard set (zIncr/zRange) can rank. Each member also counts towards storage. | 10,000 members | 25,000 members | 50,000 members | 100,000 members |
Bot profile from scripts
setBotProfile() lets scripts change Mallard's nickname, avatar, banner and bio in this server, e.g. seasonal avatars on a schedule. Every tier can set them by hand on the General page. | Dashboard only | Dashboard only | Included | Included |
A few things worth knowing
- Tiers are per-guild: a server subscribes independently, and its tier applies to everything running in that server.
-
Budgets are live, not a hard wall:
ctx.fetchCallsRemainingis exposed to your scripts so a data-dependent loop can size itself instead of guessing. - There are no separate caps on script runs or Discord API actions. Network calls simply run within your hourly script execution time.
- Upgrading and downgrading both take effect immediately, since there's no manual tier override, so your server's tier always matches its active subscription.