In this post I will explain how and when enemies drop an estus in Dark Souls III because apparently nobody has figure that out yet, or well, nobody has posted it on the interwebs.
In the memory, we find a counter. It ticks up by a certain amount every time you kill an enemy (how much depends on the enemy and the amount of estus you still have; furthermore, there are some other specific ways to have it go up). The counter can be any number from 1 through 624 (so if the counter is at 619, and we add 5, it’ll go to 624; then we add 5 again, and it’ll go to 5). For the mathematicians here, it’s basically working mod 624, where instead of 0 we write 624. We call this counter the Counter in this article.
Now how does the game decide when you get a free estus? Well, there’s a large amount of numbers in the memory that work together with the Counter to decide whether or not enemies drop an estus, or an ashen estus, two estus, etc.. Not only that, but it works differently for a lot of enemies. But first, let me explain all those numbers, that I will call the Book, a little. It has 624 pages; each page has a number on it, ranging from 0 all the way to 4294967295 (that’s 168 different numbers). The fact that this number can get that large is actually unnecessary; it can be reduced using the modulo operation from mathematics. But don’t worry, I won’t assume you know what that is; I’ll explain it best I can. Essentially, it’s just a fancy way of doing remainders when dividing. So for example, we would write 17 mod 7 = 3, because if we try to divide 16 by 7, we can fit in the 7 twice, and we’re left with 3. Another way of looking at it is just taking the 17, subtracting 7 until you get a number less that 7 but bigger than or equal to 0 (so we’d start with 17, take away 7, get 10, do it again, get 3, and that’s less than 7 so we’re done).
Anyways, the numbers in the Book can be reduced by looking modulo 10001 (so basically, if a page says, for example, 1134622139, then we can essentially replace it by 1134622139 mod 10001, which is 8689). So if we look at it that way, every number in the Book is ranging from 0 to 10000. That makes things somewhat easier, luckily!
Small thing though; unfortunately, if the Counter exceeds 624, looping it back to 1, the entire Book gets reset. I believe that the reset is completely dependent on its current state (meaning, if we know what the book looks like, we can theoretically compute what it will be after the next Counter cycle; but this will need some testing if people are interested).
Getting dat free estus
So we know what the Book is and what the Counter is, but how do they work together? Well, that depends on the enemy. Let’s assume for now that we’re fighting a simple hollow, like the ones just before Iudex Gundyr, and let’s also assume you’re completely out of estus, as well as completely out of ashen estus (also assuming you don’t have all your estus allotted to have only one of the two, so you can actually get both types). Say the Counter is at 223. There’s a few properties the hollows have. First of all, the highest priority offset for the hollow is 3; meaning, the game will flip to page 223, then flip three more pages, and look what the number is. Now another property the hollow has, is, with that offset 3 belongs a minimum of 10000, meaning, only if the number on page 223 + 3 is more than or equal to 10000, then the player will get some estus (where of course I mean that the reduced value should be more than 10000). In this case (yet another property) that would be both a normal estus and an ashen estus. The last property is how much will be added to the Counter; and that’s 3. So, let’s make a table. The first row will have the just-discussed data in it, and this is the complete table for the hollows in Cemetery of Ash.
Hollow (Cemetery of Ash)
|Book offset||Minimum Book value||Added to Counter||Obtained|
These are sorted by priority, but note that if the number added to Counter is the same, as in the last two of the table above, they can both trigger (meaning if the number on page 223 + 4 is more than or equal to 9700 and the one on page 223 + 5 is more than or equal to 10000, then the user gets both the estus and ashen estus). Also, if nothing is obtained, 5 will be added to the Counter.
What do we learn from this?
Let’s keep at the example above with the hollow in Cemetery of Ash. What do we learn from the table? Well, first of all; the estus drops are basically “random” and seperate from all other game mechanics. Some people speculated that luck influences estus drops; it doesn’t. We can also calculate the chance on an estus for a specific enemy (assuming the numbers in the book are random; presumably they’re not, but random enough to assume they are. Not only do they constantly change as the Counter resets, but the number the game looks at also changes as it depends on the Counter’s value and the offset); keeping with the hollow, the chance he drops an ashen estus is about 0.02% and the chance it drops a normal estus is about 3%.
Can I find the table for a different enemy myself?
Yes! If you have cheat engine, it’ll be fairly easy. You boot up the game, get to the Cemetery of ash bonfire (make sure you do this first, because the Counter changes when you warp), and run your first scan, easiest is with “Unknown initial value”. Then, drink all your estus, and kill a hollow. If you get some estus back, restart the process (so run initial scan again, and kill the hollow again until you do not get an estus). It is kindof important that you chug it all before you start killing the hollow, and that you are able to get both normal and ashen estus, but ah well, the chance you get an estus is only 3% anyways. Anyhow, After you’ve killed the hollow, do the next scan: “Increased by 5”. Here it comes in that you need to do this on a hollow in Cemetery of Ash; other enemies increase the Counter by a different amount. Anyways, now you should have around 10 000 results left (maybe a little more). Now you can basically filter with “Unchanged value” a couple of times, kill another hollow again, scan by “Increased by 5”, rinse and repeat. You shouldn’t have that many values left after killing 3 hollow, even after 2 hollows there should only be a few results. Anyways, when you’ve found the Counter, it’s easy to find the book. First, add the Counter to the adress list. You can right click that adress and choose “Browse this memory region” (Ctrl+B) and there you go. The 156 lines above the counter are making up the Book. Each page in the Book consists of 8 hex numbers (I don’t know shoot about what a bit is I’m just a number nerd). If you want to find the data on a specific enemy, set the counter to 1 (you should probably freeze it too so you don’t have to set it back every time, since you kinda don’t want to reset the Book). Then set every page in the Book to 10000 (that is, 10 27 00 00), so that you are guaranteed the most prioritized estus drop (likely both an ashen and a normal estus). Then start lowering the numbers that you think are responsible for getting you estus (so if you think the offset is 3, then change the fourth number to 0 to see what you’ll get). It’s a lot of trial and error. It’s boring. That’s why I didn’t do it for all the enemies. If you want to do it though this is how you can do it. Good luck and have fun 😀
Read all that? Dang, you're a die-hard! Cheers!