Well, this article’s been a long time coming.
For as fleshed-out as the Thousand-Year Door’s battle system is, it’s perhaps no surprise that its battle rewards are as hard to predict as they are various. So in this post, I’ll endeavor to explain exactly how the amounts of every battle reward are determined, one by one. I know my old enemy stats guide is a little out-of-date on some of the variables that go into these calculations, so I’ll probably be updating that in the very near future.
Let’s start with the most straightforward:
Whereas Paper Mario 64’s enemies each had a fixed number of coins to drop, plus some extras for the enemy in front, in TTYD, each enemy drops coins in the exact same way.
Every enemy has three variables that go into coin drop calculation: a Base amount, a Bonus amount, and an Extra Coin Drop Rate (Ex%). The drop amount starts at the Base, and each Bonus coin has an independent, Ex% chance of dropping. For example, here’s an example of how Amazy Dayzee’s (Base 5, Bonus 5, and Ex% 70) coin drops might be calculated (the number under each bonus coin is a randomly generated number from 0 to 99, and has to be less than the Ex% for its coin to be dropped):
After all the coin drops are determined, the total count is multiplied by the number of Money Money badges equipped + 1. At the end of the day, the maximum number of dropped coins is 32.
HP / FP Drops
Back in my Paper Mario 64 days, these precious hearts and flowers were the most desirable of drops (to be supplanted by badges in the sequel). Though it was far from a guarantee, it always seemed to me that taking damage, or using a ton of FP in-battle would slightly increase the amount of HP and FP I earned. Turns out in TTYD, this isn’t at all far from the truth, and in fact, it’s much simpler than that – the chances of HP / FP drops are directly tied to Mario’s current percentage of his max HP / FP:
|Current HP/FP Percentage||Overall HP Drop Rate||Individual HP Drop Rate||Overall FP Drop Rate||Individual FP Drop Rate|
|Up to 20%||70%||50%||40%||40%|
|Up to 30%||60%||50%||40%||40%|
|Up to 50%||50%||40%||40%||40%|
|Up to 80%||40%||40%||40%||40%|
|More than 80%||30%||30%||30%||40%|
So say that Mario ends a battle with 3 / 10 HP and 6 / 10 FP:
- First, the game checks to see if any HP should drop at all (60% chance);
- If it does, then the game checks M times to see if it should drop a single heart (50% each).
- Next, the game checks to see if any FP should drop at all (40% chance);
- If it does, then the game checks N times to see if it should drop a single flower (40% each)…
where M and N are determined by the type of enemy leading the battle, and can range from 2 to 6. For example, most early-game enemies have (2,2), Spiky Parabuzzies have (4, 2), X-Nauts PhD have (2, 4), and Elite Wizzerds have a whopping (5, 5). Needless to say, those constants will be in the next version of my TTYD enemy stats guide.
After those HP / FP drops are determined, if Mario has any Heart Finder badges on, the game adds some random additional heart drops – 1 to 3 of them if one badge, or 1 to N+3 of them if more than one. Likewise, Flower Finder will grant equivalent bonus FP drops. Both heart and flower drops cap at 32 apiece, just like coins. (Although you’d have to have a ridiculous number of Finder badges to exceed that!)
And now for the main event:
Item / Badge Drops
Back in 2011, I uploaded a guide to GameFAQs that contains the drop tables of every enemy in the game. Although these tables had some numbers alongside them, I could only proffer some vague speculation as to how those translated into their actual drop rates. Fast-forward to April 2016 and the discovery of Palace Skip; I finally had an excuse to get my hands dirty in assembly code again, and I successfully figured out everything that goes into these calculations! Here’s the dirt…
Item Hold Chances
The first thing to find out is how likely enemies are to hold items in battle, since those are observably a ton more likely than random drops. For the rest of this section, we’ll look at Crazee Dayzee’s drops as an example (for no particular reason, other than 900 failed attempts at getting a Flower Saver drop…)
These are all the items Crazee Dayzees can hold / drop, with their respective hold / drop weights. Anything without a hold weight indicated actually has a hold weight of 0.
Upon determining an enemy’s held item, it basically chooses between all the options at their respective weights, with an additional weight of 200 for no item at all. Practically, this means that the chance of a particular item being held is its hold weight divided by (200 + the sum of all items’ hold weights). For example, a Super Shroom has a 10 / (200 + 10 + 10) = 1/22 chance of being held by a Crazee Dayzee.
This same function is used when determining what item Ms. Mowz steals from an enemy with no held item, only with her stealing a coin in the case of no item being chosen, rather than nothing. (Notably, if she would normally steal an item / badge, but Mario’s item / badge inventory is full, she misses the enemy rather than stealing a coin.)
All held items being determined, here’s what happens at the end of a battle:
Drop Type Determination
There are three things that can happen at the end of a battle – the game can try to roll for a random item from the front enemy (henceforth, “random drop”), drop an enemy’s held item (“held drop”), or drop nothing at all. The chances of these events happening are weighted as follows:
If Mario has Item Hog badges equipped, this adds an additional “weight” per badge equipped to the random and held drop cases:
…and so forth. As the number of Item Hog badges increases, the chances of the Random / Held drop cases approach 50%; however, their effect visibly has pretty sharply diminishing returns after the first couple of badges.
Here’s a breakdown of what happens in each of these cases:
So you’re lucky enough to get a shot at a random item drop! Don’t celebrate just yet though, because the odds are stacked further against you. Similarly to the formula for determining held item chances, the chance of an item being randomly dropped is its drop weight divided by (300(!) + the sum of all items’ drop weights).
For example, the chance of a Crazee Dayzee dropping a Point Swap would be a none-too-great 15 / (300 + 10 + 10 + 10 + 15 + 10 + 2 + 1 + 1) = 15/359 ≈ 1/24, and the chance of a Flower Saver drop is a mere 1/359! Taking into account the 25% chance of getting the “Random Drop” case to begin with (or 33.3% with an Item Hog badge), that chance plummets to an abysmal 1/1,436! (or 1/1,077 with an Item Hog.) Blech…
To reiterate, only the front enemy in a battle can drop items this way, so unfortunately you won’t be getting any Amazy Dayzee random drops.
Things are far brighter for this case; you simply get one of the items that were held by the enemies at the start of the battle (excluding ones you stole with Kiss Thief, you monster). If there aren’t any items to be dropped this way, you’re out of luck. However, if that’s the case when you have at least one Item Hog badge equipped, you have a 50% chance of picking up one of the following items at random:
Yes, Dried Shrooms are three times as likely to drop; in fact, factoring in the chance of the “Held Drop” case being chosen, with one Item Hog, your total chances of getting a Dried Shroom from a battle with no enemy held items are a none-too-shabby 33.3% * 50% * 30% = 5%. Rejoice in that, Mega-Rush-P-using Pre-Hooktail-Pit-Runners!
You don’t get an item drop in this case. Thought that’d be self-explanatory…
And finally, that wraps everything up! Again, I’m hoping to compile all the drop tables, HP / FP drops, and existing enemy stat info into a single doc in the near future. In the meantime, enjoy your well-earned rewards (and revel in your RNG fortune if you manage to get any of the rarer badges!)
Oh, one more note about item / badge drops; if you scare all the enemies in a battle away with Fright Masks, items can still be dropped in the same way as always. This could be potentially useful for enemies with really high susceptibility to Fright (e.g. Dayzees – 100%!) Who knows?