Search the database
Search forum topics
Search members
Search for trades
diablo2.io is supported by ads
diablo2.io is supported by ads
16 replies   13074 views
1

Simulating Drops while I wait for D2R and Browsing the D2.io Databases

No data yet

2

Description

Hi all,

Big thank you for making a nice searchable database and place for the D2 community <3

I've been playing around with a drop simulator app in python and want to share it here.

The app uses item type and quality generating functions and txt files from D2 (TreasureClassEx.txt, ItemRatio.txt, ...). Images are taken from D2R's street day trailer.

Quest bosses and other units like Cows, Countess and Council are available.

https://github.com/pairofdocs/d2-drop-simulator

[Update] a web version is available here: https://pairofdocs.github.io/d2-dropsim-web/

It's something to play with. Drops are logged to a file session.txt so stats and number crunching is also possible.

Things to try:
  • Countess on /p1 vs /p7. (/p1 will drop more runes)
    • 900runs /p1 --> 7
      Ist
      runes dropped. 2nd trial of 900runs --> 4
      Ist
      runes)
  • NM Andy unique ring farming
  • Duriel
    and his tp scroll drops
Image

Happy lootin'

Warning: Windows and some antiviruses may complain about dropsim.exe. The code is open to review and reads files only from the dropsim/data-113d/ folder, images from the img/ folder, sounds from the sound/ folder and writes only to session.txt

Credits:
Description by thrugg_aka_trogg
5

Can be used to make Runewords:

7
Hi all,

Big thank you for making a nice searchable database and place for the D2 community <3

I've been playing around with a drop simulator app in python and want to share it here.

The app uses item type and quality generating functions and txt files from D2 (TreasureClassEx.txt, ItemRatio.txt, ...). Images are taken from D2R's street day trailer.

Quest bosses and other units like Cows, Countess and Council are available.

https://github.com/pairofdocs/d2-drop-simulator

[Update] a web version is available here: https://pairofdocs.github.io/d2-dropsim-web/

It's something to play with. Drops are logged to a file session.txt so stats and number crunching is also possible.

Things to try:
  • Countess on /p1 vs /p7. (/p1 will drop more runes)
    • 900runs /p1 --> 7
      Ist
      runes dropped. 2nd trial of 900runs --> 4
      Ist
      runes)
  • NM Andy unique ring farming
  • Duriel
    and his tp scroll drops
Image

Happy lootin'

Warning: Windows and some antiviruses may complain about dropsim.exe. The code is open to review and reads files only from the dropsim/data-113d/ folder, images from the img/ folder, sounds from the sound/ folder and writes only to session.txt

Credits:
7
User avatar

Teebling 5763Admin

Europe PC
Wow this is sick, so sick. Well done man!

What do you think the feasability of importing some of that data into the database here?

Would be cool if we could for example run 5000 simulations for each superunique in the game, on different /players settings, at different MF thresholds, on different difficulties, and then somehow get that data log in sessions.txt into the DB here for each superunique’s entry…. since it’s already in text format I’m sure this wouldn’t be hard.

See forums/monsters-entries-brainstorming-t3286.html for what we’ve brainstormed so far for monster entries… having a top 10-20 drops list on each superunique’s entry crediting your simulator tool would be sooo cool!

Edit: Moreover, this would allow us to put a -‘top 10 superuniques that drop this item’ list on each item’s page (would be easy to do with SQL queries!).
Edit 2: Proposed workflow to make this happen (if Trogg is on board with it):

For each superunique in the game
  1. Run 5000 simulations on Normal Difficulty, /players1, MF 0.
  2. Open sessions.txt
  3. Automate to sort the list of drops by their frequency in descending order and delete duplicate entries
  4. Automate to Filter out 'trash' items from the list
  5. This would create a list of the most frequently dropped items from this monster which are of use to a player
  6. Copy the first 20 entries from this list and insert into to the database entry contribution (when contributions for monsters open)
  7. Manually review the list again and select 5-10 'notable drops' - so things like drops near the bottom of the list that have high value
  8. Copy this 'notable drops' list and insert into the database entry contribution (when contributions for monsters open)
Rinse repeat for every combination of settings, so that there is a 'most frequently dropped' list and a 'notable drops' list for every combination of /players, MF, and Difficulty.

Populating all superunique entries in the DB with this data would allow for a quick at-a-glance overview on the monster's page of what can be expected to drop (most frequently dropped) and what is possible and desirable to drop (notable drops) from each superunique in the game. I would then be able to reverse query this data for items themselves - which would allow the site to automatically produce 'most frequently dropped by' lists on each item.

These mini 'lists' or 'drop tables' on each item/monster entry could then easily be filtered/adjusted for MF threshholds (lets' say at 100 MF intervals for simplicity's sake), difficulty level, and /players number.

@
Stormlash
@siulk @Khegan @Udyret thoughts on this? Is this too ambitious?

@thrugg_aka_trogg would you be happy for the data to be used in this way with proper credit? Is the tool set to use a static clvl for these calculations? Or does this not affect the drop rates?

Happy to hear your thoughts guys... could be a very cool enhancement of the site here.

7
User avatar

Stormlash 340Moderator

Paladin Europe PC
@Teebling I like this idea, however, in my opinion, this is very subjective.
Item chase is one of the reasons I love Diablo II so much. While Target Farming can only be used in such a few areas. You never know where you gonna get that phat lewt from and that's what makes this game so exciting for me. I don't feel the need to run, let's say, 10k
Pindleskin
over and over again just because "data" said I will get better odds of getting X item.
And for some people, their experiences with drops might be different from what the App tells you, leading to contradictory comments on the topic. With that being said, I'm curious to see what the App comes up with.

Image
7
Uhm, guys.
Just curious, but these things are out there for a long time, no?
And theyre online, without the need to download a tool.
Or am missing something on the topic?
Where is the difference to silospen and the old indiablo.de dropcalc?
(the link above is an approved and legitimate copy of the dropcalc)

Let me say this, too:

Great work, i really really admire poeple who can work themselves through the various TCs and stuff.
So dont misunderstand me, im really impressed on your work.

All im trying to say is:
If an item has a 1:1000 chance to drop on p1 and 1:500 on p3, do you really need a calculator to see how many runs you need to farm an item or which items 1000 meph runs will probably earn you?

What am I missing here?

D2 & LoD Veteran
Twitch: chr_isso
If you like my posts & content, I would really appreciate a follow on twitch!
Ex InDiablo.de Staff
Greatest Find:
Arkaine's Valor
1.08
Fishyzon Build
7
User avatar

Khegan 376

Sabcoll wrote: 2 years ago
Just curious, but these things are out there for a long time, no?
As far as I'm aware, no other drop simulator has been made publicly available for D2. The idea behind an app like this one is to crunch through data to find "best case" scenarios - as opposed to calculators, which are more static in their use.
Sabcoll wrote: 2 years ago
Where is the difference to silospen and the old indiablo.de dropcalc?
Aside from the obvious interface differences, they're roughly the same, but there have been claims that Silospen is inaccurate in some cases. I haven't verified the inaccuracies myself, but it seems the German calculator is more trusted.
7
Okay, but best case scenarios can't be found with a calculator, because every iteration of runs will be completely different.
So i made a calculation of 50000 runs and pivoted them in excel.
Rune 50000k Iterations Indiablo Calculator
El
Rune
11% 12%
Eld
Rune
7% 8%
Tir
Rune
24% 26%
Eth
Rune
32% 34%
Nef
Rune
16% 18%
Tal
Rune
47% 46%
Ith
Rune
21% 24%
Ral
Rune
31% 33%
The outcome is already pretty close to the expectations, so i guess i found proof that the calculator works as expected.
And thats it: you don't even need to calculate anything, because the chance already gives you your estimated amount of runs...

if i got 50% chance, i can expect to find it on average every second time.
If i got bad luck, i can run until Infinity and never see this item. All I need to know is:
Where is my chance the highest to
Find Item
x,y,z

and that is already covered by the indiablo.de calculator.
Khegan wrote: 2 years ago
Aside from the obvious interface differences, they're roughly the same, but there have been claims that Silospen is inaccurate in some cases. I haven't verified the inaccuracies myself, but it seems the German calculator is more trusted.
Totally agree, if you take my numbers from above and compare them to silospen, you will see the difference already.
El
Rune at Silospen is expected to be 50% ... lol

[edit]
fixed the value, because i switched them while i copied them into BB Code... Sorry!
@thrugg_aka_trogg thanks for pointing out my mistake! Numbers are now even closer!

D2 & LoD Veteran
Twitch: chr_isso
If you like my posts & content, I would really appreciate a follow on twitch!
Ex InDiablo.de Staff
Greatest Find:
Arkaine's Valor
1.08
Fishyzon Build
7
OP
Teebling wrote: 2 years ago
What do you think the feasability of importing some of that data into the database here?
@Teebling
That's a great idea. I think it could be done. We dont even need to use the simulator for something like `monster1,difficulty1,mf1: [topdrop1, topdrop2, topdrop3, ... topdrop10]`

The MFB drop calculator will give nice sorted tables for drop chances and that should be the same data as what's simulated. @Sabcoll is right. (So if I run a simulation of 10k runs of Hell Andy, ill see 10k * some probability shakos, and that probability is estimated by the MFB calc)

An example for
Baal
's table (for all items) (and uniques, sets is available too):
Image

There is a couple of fixes to do for that calc (I think essences for hell bosses aren't counted 100% right). It still gives really good estimates right now. It's more accurate than Silos Dropcalc because Silospen didn't update the rune drop tables for Lod 1.13c+.

Would you be happy for the data to be used in this way with proper credit?
Sure, no issues from me : )
Is the tool set to use a static clvl for these calculations? Or does this not affect the drop rates?
Clvl won't affect the calculations, only mlvl and item qlvl.

Edit:
an example for Norm Countess.

The MFB calc has
Tal
as 46%

and my dropsim.exe for 10k runs gives me 4695
Tal
runes, so ~ 0.469 = 46.9%
7
OP
Sabcoll wrote: 2 years ago
So i made a calculation of 50000 runs and pivoted them in excel.
@Sabcoll

I got these probs. for the drop calc (using 1.13 as the patch, and norm difficulty Countess)

Tal
Rune 46.3623047% 1:2.2
Eth
Rune 34.4331299% 1:2.9
Ral
Rune 33.0078125% 1:3
Tir
Rune 26.2541512% 1:3.8
Ith
Rune 24.0201172% 1:4.2
Nef
Rune 18.058604% 1:5.5
Did you use this same site for the inDiablo calc ? http://mfb.bplaced.net/dropcalc/dropcal ... indow=true

The %s in the table you gave were different.

Ahh, I see what it could be. Just
Ral
and
Tal
%s for the inDiablo calc were swapped. The other runes match in %s (and maybe
Ith
/
Eth
swapped too)
7
OP
Silos Drop Calc in Gomule can also be used to nicely copy-paste tables.

Just updating the treasureclassex.txt file in the Gomule App folder will fix the issues it had for rune chances.

https://github.com/pairofdocs/gomule-d2 ... 5cc8cda663 (I'm using the gomule code that Randall and Silos have on source forge https://sourceforge.net/p/gomule/git/ci/master/tree/

Image
7
OP
While tracing through the MFB dropCalc javascript code (http://mfb.bplaced.net/dropcalc/dropcal ... indow=true) for Normal Countess --

I think there is an issue with how picks are done for
The Countess
Rune TC. (There are '3 picks' max that are taken according to the D2 data files) https://github.com/fabd/diablo2/blob/ma ... x.txt#L839

The MFB calc code that I was looking at is here [url]view-source:http://mfb.bplaced.net/dropcalc/script/dropcalc_110.js[/url]

and the function was

Code: Select all

~Line 574:    function SimulateDropsRec(TC, playerbonus, chance, totalpicks)
there is a step where item probability is iteratively added

Code: Select all

~Line 619:   baseitems[drops[i+2]][16] += 1-Math.pow(1-newchance, totalpicks)
and this is where the overestimate happens I think. For the TC Countess Rune there is (1 - noDrop^3) in the code. This takes the max number of rolls always. But in-game these will not occur always.

Countess drops from her Item TC first (with 5 items as a max) then there are the Rune drops. And she can only drop 6 items total which leaves the #of possible runes dropped to be 1 or 2 in some cases. So using that drop number 3 in the calculation isn't accurate, it's adding a little bit more probability than it should.

The overestimate isn't very large when there are few nested rune TC traversals. But the error builds when TCs are traversed more deeply (Like Runes 4 --> Runes 3 --> Runes 2 --> Runes 1 --> r02 (
Eld
rune) )

For the most shallow rune traversal, r07 (
Tal
rune), the MFB calc has a chance of 46.362%

The dropsim.py code that I have gives a chance of 46.347% for 1Million rolls (there is going to be variation for this since it's a simulation). The two chances match up decently.

(But for r05 -
Eth
rune, the difference is 34.43% MFB vs 32.4535% at 1Mil rolls . The chances begin to diverge more)
7
User avatar

Teebling 5763Admin

Europe PC
@thrugg_aka_trogg not sure what the suggestion is here - do you think it would be more efficient or accurate to use the MFB dropCalc tool than it would be to use your own simulator? You mentioned that it would require some fixes - do you think that these are particularly noticeable or are generally speaking correct? Or do you think silopsen's tool, updated for the 1.13 rune chances, would be more suited?

Thanks for all the Insight. Ideally what I'm looking for is the best (easiest/quickest) way for contributors to copy and paste lists of drops that can be used when contributing the monsters database entries.

Or perhaps there are simply too many items per monster, and a redesigned tool would be better for the site, rather than burdening contributors with all this extra work etc. I could after all just create an updated version of silopsen with the 1.13 changes, and then have a button on each item page to 'calculate drops for this item', and a button on each monster page to 'calculate drops from this monster' and display tables in a similar manner to MFB, sort of like a hybrid tool combining the best of each.

7
OP
@Teebling

I think using my dropsimulator would be slower than using the MFB calc (or Silos' calc) just because it'll need ~1Mil runs to get good drop estimates. The MFB calc has good accuracy for their estimates and I think is a good tool for building item drop tables. We just have to give a warning that they may be 1% off.

With the MFB calc there are just a couple of issues with
The Countess
and Hell Act bosses (cuz of their essences). But these issues don't affect the accuracy very significantly. Other bosses and monsters are accurate.

For example Hell
Baal
should drop a Festering Essence at 8.3% (rough example) but MFB has it at 8.428%, just 0.1% off.


I tried Silos Calc last night and they had a bug with MF not affecting drops of super uniques. So Silos needs some fixes too :).

The good news about the MFB calc is that the inaccuracy is consistent. So a sorted list of top drops for a monster is gonna have the correct order (even if individual drop chances aren't 100% exact).

I still like that idea of adding item drop %s to monsters in the d2.
Io
database, it's nice data to have available when looking at uniques/sets/bases. No site has this kind of info readily available when viewing an item.

The easiest/quickest way would be to copy-paste the MFB tables which are already sorted by drop %s.
7
User avatar

Teebling 5763Admin

Europe PC
@thrugg_aka_trogg okay noted on all of that. I think what I’ll try is a hybrid approach. There’s some truth in what @
Stormlash
said early on - don’t want visitors tunnel visioning on a single mob with the theoretical highest drop chance when the difference between these chances can be so insignificant.

I think a button on each item which prepopulates results from a web tool (adapted version of MFB with a nicer interface) would be a good approach personally.

I’ll def include your simulator tool in a future useful links topic of some sort (@Udyret has already made a start on one).

So much to do before the game releases!! Wondering if I’ll have enough time.

7
If you want me to I could try and reach out to the old indiablo staff.
Maybe somebody still remembers who developed that thing.

Or we could simply get in touch with Tug, the guy who is hosting the calc.
Maybe he is willing to give the source code?

Just my thoughts tho...

D2 & LoD Veteran
Twitch: chr_isso
If you like my posts & content, I would really appreciate a follow on twitch!
Ex InDiablo.de Staff
Greatest Find:
Arkaine's Valor
1.08
Fishyzon Build
7
OP
:+1: @Teebling @Sabcoll

Having a button to click on an item that gives drop chances would be awesome.

The calc page at the bottom has these names for the devs

Calculator by Tub, Formulas by black_spy and Jarulf

Fingers crossed
7
https://planetdiablo.eu/diablo2/calcs/d ... /index.php

they're hosting the calculator again.
Indiablo was closed and the old staff became the chance to "keep" the site.
This is how planetdiablo was founded.

I'll try and reach out to them tomorrow.

D2 & LoD Veteran
Twitch: chr_isso
If you like my posts & content, I would really appreciate a follow on twitch!
Ex InDiablo.de Staff
Greatest Find:
Arkaine's Valor
1.08
Fishyzon Build
7
I like the button idea best.

Anyway, yall are way above me on what you know and how but I have a keyboard and mouse if yall need help.
9

Advertisment

Hide ads
999

Greetings stranger!

You don't appear to be logged in...

99

Who is online

Users browsing Forums: Arachnid, DwPvsZtO, ToX-I-qUc and 34 guests.

No matches
diablo2.io is supported by ads
 

 

 

 

Value:
Hide ads forever by supporting the site with a donation.

Greetings adblocker...

Warriv asks that you consider disabling your adblocker when using diablo2.io

Ad revenue helps keep the servers going and supports me, the site's creator :)

A one-time donation hides all ads, forever:
Make a donation