Recreating Mudae’s Database (and how I optimised disable lists) (2024)

6 min read

·

Jun 27, 2022

--

Mudae is a bot within Discord which mainly focuses on games and anime. The biggest feature of Mudae is its waifuroulette game, where users can claim characters from a range of anime, manga, comics or games. To say that Mudae is popular is an understatement, over 2.3 million servers have the bot as of September 2021 and it routinely places strain on Discord’s API services.

When a player claims a character, they become part of the player’s harem and cannot be claimed by anyone else in the server. Naturally, this leads to some stiff competition for the more popular characters. The gacha game also comes with its own currency system, where players can earn virtual currency to use for power ups or trading. There exists dozens of other commands which cover leaderboards, lookups and customisation.

When a user looks up a specific character, they can find several fields of information about the character, including the series, gender, roulette, kakera value, claim rank, likes rank and possible aliases. This is true for every character, but there is no easy way to search up every character or every series. Mudae’s database is not public, so there is no way to get all of the information available. Or is there?

Recreating Mudae’s Database (and how I optimised disable lists) (2)

That’s where I come in. Long story short, I attempted to recreate Mudae’s database. I have information on characters, series, bundles and the relationships between them. Back in 2020, I initially started this with the top 1000 characters using $top and then storing the results. I made gradual improvements and methods over the past year, so now I have information on almost every facet of Mudae’s database.

The database consists of several tables. The character table contains the information of all 80,789 characters in the bot. Each character comes with its own character ID, along with other fields like their name, series, gender, roll type, claim and like ranks, and their kakera value.

Recreating Mudae’s Database (and how I optimised disable lists) (3)

The list of series is covered in a separate table. Each series also comes with its own ID, and covers their character counts in all roulettes. There are over 13,000 series in this table. There is also a separate table for bundles, also with their own IDs. All the counts for each roulette are also shown as well. A separate table covers the connections between bundles and series in a many-to-many relationship. Over 50,000 records exist in this table.

Recreating Mudae’s Database (and how I optimised disable lists) (4)
Recreating Mudae’s Database (and how I optimised disable lists) (5)
Recreating Mudae’s Database (and how I optimised disable lists) (6)

I’ve implemented some extra features in this database, one of which is server tracking. It’s possible to track the status of every character in a particular server, such as their claim status, whether they belong to you and how many keys (or soulkeys) they have. I can also track all of my current soulmates in the same table. This makes it possible to track unclaimed and unsouled characters, and keep track of all characters across any server I’d like.

Recreating Mudae’s Database (and how I optimised disable lists) (7)

Another feature is the search function. You can search for any character and have their information displayed instantly as well as display any close matches. You can also search for series and bundles, which will contain the information of every character in the series or bundle. I can also search for multiple series and characters at once, allowing for fast viewing and editing.

Recreating Mudae’s Database (and how I optimised disable lists) (8)
Recreating Mudae’s Database (and how I optimised disable lists) (9)

But the most powerful use of this database is for disable lists. By using all three tables and some queries, I’m able to disable any bundle and series that I want, and display the updated roulette numbers of all series and bundles without the disabled series. This makes it possible to disable lists to be optimised.

Now this table shows all bundles and how much $wa’s are in them. Let’s say I want to disable the Western and IRL bundles. After inputting them in the exclusion list, all Western and IRL series have been disabled, and the $wa’s have been updated for all the bundles. This enables me to select the best bundles while accounting for overlap, and as a result of this process I ended up making better disable lists than anyone else. For a while I wondered whether this process could be automated so I could find the optimal disable list.

Recreating Mudae’s Database (and how I optimised disable lists) (10)

Earlier this year I came across a GitHub repository by Stephen Huan, where he dives into the statistical models behind Mudae. It’s a fantastic write-up if you’re not daunted by the maths behind it, but my focus was on his section about producing optimal disable lists.

The disable list problem is analogous to the 0/1 knapsack problem encountered in optimisation. By reducing the disable list problem into a integer linear programming (ILP) one, Huan was able to utilise ILP solvers that could solve the corresponding knapsack problem and therefore produce an optimised disable list. He also provided his own Python code to demonstrate this concept with a version of Mudae’s database (albeit a very old version).

Recreating Mudae’s Database (and how I optimised disable lists) (11)

So all I had to do was to repurpose the code so that it could work for my own database. It took a while to accomplish; I had to both change my database into a form that the code could recognise and change the code itself to also compensate for the new data and constraints.

The results were startling. Now I’m able to create optimal disable lists for any roulette, with any overlap size and any amount of slots. What used to take hours to learn and craft disable lists now only takes a few minutes. It only works as long as my database remains updated, however. So new updates and bundles could shake things up.

In the below example I made the program output an optimal 25k disable list for $wa, with 50 slots and with Western and IRL completely disabled via toggles.

Recreating Mudae’s Database (and how I optimised disable lists) (12)
Recreating Mudae’s Database (and how I optimised disable lists) (13)

Firstly, this database (along with the Python program) will NOT be made public. The bot developer Saya has allowed this project to stay up as long as it’s for a personal purpose. This article is just a demo to show that this database exists. A big thanks to Saya for advising me and for the continued development of the bot.

The data used in the database does not automatically update, it must be manually updated by me every time. I usually do this once a month because it’s a tedious process that can last over a day.

There may be some instances where I cannot show all of my findings due to the potential of sharing information that Saya doesn’t want to be public. Exceptions can be made on a case-by-case basis, however sharing general statistics and calculations are allowed.

Are there any features I could add to this database? Are there any stats or information that you’d like to see? You can reach me in Discord in the MudaScience server. Any interesting updates may be covered in a follow-up post, or in the MudaScience server. You can also support Mudae by subscribing to their premium service via Patreon.

Recreating Mudae’s Database (and how I optimised disable lists) (2024)

FAQs

What does disable list do in mudae? ›

A disable list is a list of series or bundles (bundles meaning animation studios or genres, that contain multiple series inside them, hence the name bundle) that are BLOCKED from your rolls, meaning you CANNOT roll them. When you disable characters, you remove them from your rolling pool.

What is $ha in mudae? ›

$ha: Roll a husbando from animanga. (/ha) $hg: Roll a husbando from games.

How to disable western mudae? ›

It represents all Western animanga series in Mudae, but it does not cover games. It is the largest bundle in Mudae. It can be disabled completely with the personal command $togglewestern.

How many characters are in Mudae? ›

Mudae is well known for its character roulette game, which features ~104,000 rollable anime, manga, and video game characters from a wide variety of series. Alongside the roulette, Mudae has a selection of other games and command functions to use. All of this and more is documented on our Wiki.

Can you give unclaimed characters in Mudae? ›

$givecustom is the ONLY command for giving someone an unclaimed character. There is no way to give non-custom characters in this way.

How do I disable player premium in Mudae? ›

You can disable your player premium in specific servers or instances with $toggleplayerpremium.

Who is the Mudae girl? ›

Yuki Nagato is a rollable animanga waifu in the Suzumiya Haruhi no Yuuutsu series in Mudae. Yuki is well known as the "mascot" of Mudae. Her likeness is used as the bot's profile picture.

What is a soulmate in Mudae? ›

Soulmates are characters that you have rolled at least ten keys for by yourself. After becoming your soulmate, a character will be on your $sl, a global list of your soulmates. Soulmates can be copied to a new server using the $soulcopy command.

What does Gamemode 2 do in Mudae? ›

The primary feature of Mode 2 is the ability to limit your rolls to a certain number of characters in each roulette ($wa, $ha, $wg, and $hg). Using the command $limroul, you can disable all but the most popular characters in each roulette based on their claim ranks.

What is the point of Mudae? ›

Mudae is a Discord-based entertainment bot and the focus of this Wiki. Created by Saya, Mudae specializes in hosting a variety of multiplayer games, including a gacha character roulette, word games, a Pokémon roulette and many other command based events.

Can you remove images from Mudae? ›

Reporting images

Images can be removed in the #pics-management channel of Mudae World.

Can you transfer your harem in Mudae? ›

I want to move my harem to a new server, how? Two ways: You can use $haremcopy and/or $kakeracopy if you have Player Premium II. Or, you can copy your soulmates over using $soulcopy. Note that the server has to be sufficiently new (Mudae has to have been invited in the last 30 days) or else a transfer is impossible.

Who has the most aliases in Mudae? ›

List
CharacterSeries# of aliases
Superman (Clark Kent)DC98
Settra the ImperishableWarhammer Fantasy92
TechnobladeTechnoblade84
LumineGenshin Impact84
88 more rows
6 days ago

Who is number one on the mudae bot? ›

Unlike most characters, Zero Two's rank has never fluctuated. She continues to hold the position of both the number 1 claimed and liked character. Zero Two's first image is featured in Mudapin 5.

What is the key limit in Mudae? ›

perk, which changes the color of kakera spawning on the character. This applies no matter who rolled the character, so anyone can take advantage of the orange kakera. There used to be a limit of 3000 keys per character; this limit has since been removed as of February 2022 (announced in March).

How does wishlist work in Mudae? ›

Wishes are a way to select characters you want in Mudae. Wishes will mention (ping) the wisher when they are rolled, which allows the wisher to claim them quickly.

How do you remove someone from your wishlist on Mudae? ›

How you do remove a wish? Use $wishremove ($wr).

What is the difference between claim rank and like rank in Mudae? ›

Claim ranking is based on the first 10 characters in each active user's harem ($mm). Other characters in a user's harem are not counted. Users should use $sortmarry to put their ten favorite characters first. Like ranks are determined by the global number of likes for each character ($like).

What does voting for Mudae do? ›

Rolls resets

This will replenish your current hourly number of rolls. Resets are gained by voting for Mudae on top.gg ($vote) and by using $daily every day.

References

Top Articles
A Noom nerd’s low-calorie chicken tortilla soup recipe
Suanla Chaoshou (Sichuan-Style Wontons in Hot and Sour Vinegar and Chili Oil Sauce) Recipe
William G. Nolan - Baker Swan Funeral Home
Https //Paperlesspay.talx.com/Gpi
Can ETH reach 10k in 2024?
Maria Lima Lietz - Hamburger SV
Salon Armandeus Nona Park
83600 Block Of 11Th Street East Palmdale Ca
Accident On May River Road Today
Jobs Hiring Start Tomorrow
Oracle Holiday Calendar 2022
Tyson Employee Paperless
Po Box 6726 Portland Or 97228
SAP Secure Login Service for SAP GUI Now Available
Wat is 7x7? De gouden regel voor uw PowerPoint-presentatie
73 87 Chevy Truck Air Conditioning Wiring Diagram
Ff14 Cloth Softening Powder
Cheap Motorcycles For Sale Under 1000 Craigslist Near Me
Edenmodelsva
Dead By Daylight Subreddit
No Prob-Llama Plotting Points
Horseware Deken Amigo Bravo 100gr Donkerblauw - 130/183 | bol
Twitter claims there’s “no evidence” 200 million leaked usernames and email addresses came from an exploit of its systems
Uganda: The tiny flea making it painful for people to walk and work | African Arguments
Alyssa Edwards looks back, back, back again on her best 'Drag Race' moments
The Quiet Girl Showtimes Near Landmark Plaza Frontenac
Joanna Gaines Reveals Who Bought the 'Fixer Upper' Lake House and Her Favorite Features of the Milestone Project
Target Minute Clinic Hours
Thailandcupid
Nike Factory Store - Howell Photos
Publix Super Market At Lockwood Commons
Marketwatch Com Game
Star Wars Galaxy Of Heroes Forums
Below Her Mouth | Rotten Tomatoes
City Md Flatbush Junction
Crystal Westbrooks Nipple
Channel 3000 News Madison Wisconsin
Danville Va Active Warrant List
Optum Director Salary
Makes A Successful Catch Maybe Crossword Clue
Gregory (Five Nights at Freddy's)
Fired Dies Cancer Fired Qvc Hosts
Sam's Club Hiring Near Me
Ups First And Nees
Bridgeway Diagnostic Auburn Al
How To Evolve Nincada Into Shedinja
Joy Ride 2023 Showtimes Near Mjr Chesterfield
Maria Butina Bikini
Trivago Anaheim California
Sc4 Basketball
Mileage To Walmart
Gemini Home Entertainment Wiki
Latest Posts
Article information

Author: Greg Kuvalis

Last Updated:

Views: 5846

Rating: 4.4 / 5 (55 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Greg Kuvalis

Birthday: 1996-12-20

Address: 53157 Trantow Inlet, Townemouth, FL 92564-0267

Phone: +68218650356656

Job: IT Representative

Hobby: Knitting, Amateur radio, Skiing, Running, Mountain biking, Slacklining, Electronics

Introduction: My name is Greg Kuvalis, I am a witty, spotless, beautiful, charming, delightful, thankful, beautiful person who loves writing and wants to share my knowledge and understanding with you.