Mallard

How Mallard compares

Every general-purpose Discord bot can ban someone. The thing that actually differs is what happens when you want behaviour the author did not think of, so that is what this page compares.

The short version

Most Discord bots are a fixed feature set with a settings panel in front of it. You get what the authors built, configured the ways they anticipated. That covers most servers most of the time, and when it does not, you are stuck waiting for a feature request or writing your own bot and finding somewhere to host it.

Mallard is the same fixed feature set with the source code handed over. The 31 commands it installs with are ordinary scripts in your dashboard, and so is anything you add next. YAGPDB is the only bot here that takes the same position, and the difference between the two is mostly what the writing feels like.

At a glance

The detail behind each of these, with sources, is in the section below.

  Mallard MEE6 Dyno Carl-bot YAGPDB
How you author it JavaScript Web form Module settings TagScript blocks Go templates
A real language Yes No No Partly Yes
Where you write it Monaco editor Web form Web form Web form Plain textarea
Syntax highlighting Yes n/a n/a No No
API autocomplete Yes n/a n/a No No
Cap on commands None 3 free, then paid Not published 1 block, 3 paid 3 slash, 10 paid
Built-ins editable Yes, all 31 No No No No

"n/a" means the question does not apply, because there is no code to highlight or complete. "Not published" means the vendor does not document a figure, not that there is no limit.

Bot by bot

MEE6

How you write behaviour
Custom commands are built in the dashboard as canned responses with a few configured actions attached. There is no general-purpose language, so anything the form does not offer is not available.
Where you write it
A web form.
Where you hit the ceiling
Free servers get three custom commands; premium lifts that. Some actions, such as giving or removing a role from a command, are premium-only.

Source: MEE6 wiki: custom commands

Carl-bot

How you write behaviour
Tags written in TagScript, a block-based templating language. Blocks cover a lot of ground and go deep if you invest in them, but you are assembling blocks rather than writing a program.
Where you write it
A web form.
Where you hit the ceiling
Command blocks, the ones that make Carl run an actual command such as adding a role, are capped at one per server, or three on premium.

Source: Carl-bot docs: tags and blocks

Dyno

How you write behaviour
Behaviour comes from toggling and configuring modules in the dashboard, plus custom commands that reply with text or an embed. The modules are good and cover most common needs, and you work inside what they expose.
Where you write it
A web form.
Where you hit the ceiling
Whatever the module authors anticipated.

Source: Dyno

YAGPDB

How you write behaviour
Genuinely programmable, and the closest thing here to Mallard. Custom commands are written in a dialect of Go's text/template, so you get variables, conditionals, loops and a large function library, expressed as template pipelines rather than as ordinary code.
Where you write it
A textarea. YAGPDB's own documentation recommends writing custom commands in a local editor such as Vim, VS Code or Notepad++ and pasting them in, because the dashboard refuses to save anything with a syntax error.
Where you hit the ceiling
Real limits on how many custom commands can be enabled and how often they run, tightened further on the free tier.

Source: YAGPDB docs: custom commands

Checked in July 2026 against each vendor's own documentation. These products change often. If something here has gone stale, tell us in the support server and it will be corrected.

Where Mallard sits

Scripts are plain JavaScript, written in a Monaco editor with syntax highlighting and autocomplete against the same API the docs list. They run on 51 triggers, covering Discord gateway events, slash and right-click commands, modal submissions, timers, and Twitch events. They can make outbound HTTP calls, read and write a per-guild key-value store, and use API keys held as write-only secrets that the script sees only as an opaque token.

There is no per-command cap. The limits are hourly budgets on execution count, Discord actions, HTTP calls and runtime, which scale with tier and which your scripts can read at runtime so a loop can size itself. Every run is logged with its status, duration and any error.

When not to pick Mallard

You want to configure, not write anything.
Pick Dyno or Carl-bot. Mallard gives you working commands on install, but its whole point is that you can edit them, and that is wasted if you never want to.
You need levelling, music, or economy out of the box.
MEE6 and Dyno ship those. Mallard does not, and rebuilding a levelling system in scripts is real work even though the pieces are there.
You are running a 200,000-member server today.
Mallard is new, with a small number of servers on it. The Ultra tier has the headroom, but you would be an early adopter, and you should weigh that.
You already have YAGPDB doing what you need.
Then it is doing what you need. The reason to move is that you would rather write JavaScript in a real editor than template pipelines in a textarea.

Mallard's free tier is enough to decide with.