Pricing
Every tier includes the full scripting engine, with every trigger, function, and integration available from the start. What scales with the tier is how much your scripts can do per hour, and how much they can remember. Pick the tier that matches your server's size and activity.
Free
$0 /mo
Try Mallard out on a small or new server.
- 2,000 executions/hr
- 50 Discord actions/hr
- 5 MB storage
Plus
$2.99 /mo
For a growing community that's outgrowing Free.
- 5,000 executions/hr
- 100 Discord actions/hr
- 15 MB storage
Pro
$5.99 /mo
For a large, active server running a lot of scripts.
- 15,000 executions/hr
- 500 Discord actions/hr
- 50 MB storage
Ultra
$14.99 /mo
Headroom for the biggest, busiest servers on Discord.
- 30,000 executions/hr
- 1,000 Discord actions/hr
- 100 MB storage
Compare every limit
Every cap is a per-guild hourly budget that resets on a rolling window. Hitting one stops a script at that call, keeping whatever it already did rather than rolling it back.
| Limit | Free | Plus | Pro | Ultra |
|---|---|---|---|---|
| Script executions / hour A safety net against a script that runs away, not a budget to plan around — set high enough that normal use never reaches it. Runtime and Discord actions are the caps that bind first. | 2,000 | 5,000 | 15,000 | 30,000 |
| Discord actions / hour Sends, bans, role changes, and other rate-limited Discord calls your scripts make. | 50 | 100 | 500 | 1,000 |
| fetch() calls / hour Outbound HTTP requests your scripts make to other sites/APIs. | 5 | 15 | 30 | 60 |
| Runtime budget / hour Total script execution time per hour, across every trigger combined. | 60s | 120s | 250s | 500s |
| Key-value storage Persistent storage available to your scripts (settings, moderation history, custom data, …). | 5 MB | 15 MB | 50 MB | 100 MB |
| Max script length Longest a single script's source code can be. | 5,000 chars | 10,000 chars | 15,000 chars | 30,000 chars |
| Min scheduled interval How often a scheduled (timer) script is allowed to run: the shortest gap between runs. | 30 min | 15 min | 10 min | 5 min |
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.fetchCallsRemainingandctx.restActionsRemainingare exposed to your scripts so a data-dependent loop can size itself instead of guessing. - Upgrading and downgrading both take effect immediately, since there's no manual tier override, so your server's tier always matches its active subscription.
Every tier starts on Free, so you can try it before paying anything.