MDA docs

About MDA

MDA is a hosting bot. It runs matches, clans, tournaments and the ladder for the Murder Duels competitive community, and everything else a server needs is bundled in around that rather than the other way round.

It is not a public bot and it is not going to be one. It runs in this community and that is the whole list.

#Who made it

I am CX, and I wrote it. The bot, the dashboard, the appeal site, the public match site and these docs are all mine. There is no second developer and no bought-in template underneath any of it.

#It is a fork, and then some

The half of MDA that is not the league - moderation, tickets, giveaways, leveling, appeals, logging, welcome messages, verification, the dashboard that edits every message - is forked from Tides, another bot of mine. Those parts arrived working and tested, which is the only reason a league bot has a moderation suite behind it.

Everything that makes it MDA was written for MDA:

Built here What it is
Hosting Matches from open to result, clan matches, screenshots, the ladder
Clans Rosters, tags, clan ranks, clan-versus-clan records
Tournaments Brackets, series, placement points
Ranks & divisions The ladder, divisions, signup gates
The public site Profiles, clans, matches and the bracket, readable without Discord
Roblox verification Linking a game account to a Discord one

The forked half was not pasted in and left alone. Every message it sends was rewritten for this community, the emoji are this server's, and a good deal of it was changed to work with ranks, clans and matches that Tides has no concept of.

#Honourable mentions

Zach founded MDA and the community this is built for. Without the league there is nothing for a hosting bot to host, so the whole thing traces back to him. He has also been the biggest help on the bot itself: testing what I build, finding what I missed, and bringing ideas that ended up in it.

And everyone who runs matches with it and reports what breaks. It is built for one community, and it should show.

#On AI

I use AI to help build and test this, and I would rather say so than have you assume otherwise.

Where it earns its place is the repetitive work. Driving the dashboard and the sites through a real browser to hammer every page and every permission combination. Checking hundreds of rows at once. Hunting for the one setting out of four hundred that is wrong. That kind of testing is slow and easy to skip by hand, and skipping it is how bugs reach a match that mattered.

#What it is built on

Piece Runs on
Bot JavaScript on Node.js, discord.js
Data PostgreSQL on the same server as the bot
Dashboard A single-page app I wrote, served by the bot
Appeals Its own app with its own tables
Public site Its own process, reading the same database
Hosting One VPS, behind nginx
Cards and images Drawn with canvas, in a worker thread