Hello, thanks a lot for the mod, was a lifesaver not having to zoom in on every p7 cow pack I killed. I have found some issues however, related to this mod and inconsistent drop rates compared to vanilla. I have compiled a list of my findings and my proposed solutions on my github page, with some working examples. There is a lot to read, so totally understandable if you don't have time. I am open to collaboration if you have any questions.
Hey, thanks for putting in the time to test and putting together the github page. I read it a few times.
I am curious, for the disabled treasure classes, did you try not blanking the fields, and giving them a very large NoDrop chance? So, the item technically still has a chance to drop, but the NoDrop chance is so much higher that it effectively achieves the desired result? I am curious to know the result of this because it seems like your testing is suggesting that NoDrop itself has an impact on other drops, not just the item you are NoDropping. I ask this partly because this mod also has an option to filter "lesser gold piles", and so players are expecting to be able to filter gold and your workaround solution requires gold piles to drop.
Also, I am wondering if all of this really matters at the end of the day. Sure, seed 494790446 is not giving the expected results, but is it dropping equivalent to another seed? As long as the seeds are delivering "seed-like" results, I don't know if anyone really cares about the seed number specifics. Although, I admit I am not sure how we could verify that without losing sanity and I do really appreciate your testing method, given what's available to us.
Thanks, oh and I also share your dissatisfaction with JavaScript, and I am by no means an expert with it. In fact D2R modding was my introduction to JavaScript...I apologize for the excessive use of regular expressions in this mod. I don't like it either, but it's what I was able to reference at the time and get things working.
Yes, I tried: directly blanking unwanted TCs and using either large NoDrops or computing a NoDrop that respects vanilla drop rates, but the drops always ended up skewed. I also tried a dummy custom TC that both dropped nothing and had a large NoDrop, but that somehow ended up being worse. My fix was the only "working" version. Unfortunately for reasons I explained on my github is it completely impossible to test the extent of the drop rate "skewing". I have no empirical data/no datasets I can share with drop comparisons. Due to that I just assume the stance of "worst case", so any change In vanilla drops is imo not a good thing. And yes, my dig was entirely directed at javascript, not to your code at all.
I have been recreating your test and messing with the code. It seems like I can "disable" a TC by giving it a large NoDrop value and leaving the original fields untouched.
Players 7 Lower Kurast with -seed argument: Screenshots
The 3 images are as follows:
1. Mod Disabled
2. Mod Enabled with Junk disabled and Strictness Medium, NoDrop is set to 65,535 for the "disabled" TC rows and no fields were blanked
3. Same as 2, but with lesser gold piles disabled, which attempts to only remove the gold's probability and add it onto NoDrop, instead of disabling the entire TC row
Note, in image 2 the game seems to be replacing junk with gold for certain items. We went from 3x gold piles and 3x junk (2x arrows and 1 key) to 6x gold piles. This is interesting because that was also your solution. Image 3 shows that trying to surgically alter a TC leads to completely different drops.
With all of that said, I have been using this mod for over a year, along with many others, and no one has reported unusual drop rates. Of course that is completely subjective, but it makes me feel a bit better. I suspect the drops are still providing equivalent drop rates within any meaningful measure, but I can't be sure of that.
In conclusion, it seems like replacing items with gold is the way to go to preserve the seed's drops, even the game seems to do this automatically in some cases. This also means that being able to filter out gold without impacting the seed's drops is impossible. I am going to mess around some more and see if I can find anything else interesting.
I discovered that if you use "gld,mul=1" for a treasure class it will drop a tiny amount of gold. You even see gold drops of 0. So if you are concerned about affecting the gold economy by replacing all of the TCs with gold, you can try this out.
My latest version of the loot filter actually seems to work without having to drop gold for everything. The key is leaving all of the probability columns untouched... they must be factored into the seed drops somehow. Good news is you can still add a giant NoDrop value and it doesn't seem to affect the drops that are selected compared to vanilla.
The one issue with NoDrop is I found that the Barbarian Find Item skill ignores NoDrop. In my latest Loot Filter version 1.7 I was able to come up with an approach that replaced filtered items with gold only for Find Item (with mul=1), but for normal killing the monsters drop nothing, and the seed test in Lower Kurast seems to still pass.
I believe the issue will be present in the Pseudo Loot Filter mod because the mod changes the probability columns within the treasure classes. This is the same as how I designed my mod originally; If a user disables bolts then you add the bolts probability to NoDrop and set the bolts probability to 0.
Before: NoDrop = 0 Arrows = 1 Bolts = 1
Arrows/Bolts each have 50% chance to be selected within the Ammo TC
After: NoDrop = 1 Arrows = 1 Bolts = 0
You disabled bolts, and arrows still have a 50% chance to drop within the Ammo TC.
Mathematically, this is sound design, but the game seems to roll the items differently now that the probability column was updated for bolts. It doesn't mean that drop rates are changed necessarily, but we can't be sure. It may just be changing the drops equivalent to you getting a different seed.
My solution to this problem is this: NoDrop = 0 Arrows = 1 Gold TC = 1
Note that I am not replacing Bolts with gold, but I am calling the "Gold" treasure class, which is a seemingly unused TC that Blizzard has in the file. In every other case where gold is selected they use "gld"; they call the gold item directly, not the "Gold" TC.
Lastly, my Gold TC looks like this: NoDrop = 65,535 gld = 1
So, my probability columns are untouched and this seems to preserve the seed's drops, and I am able to replace disabled items with the Gold TC, which has a 99.9999% chance to drop nothing.
Now, Find Item ignores NoDrop, so Find Item is dropping gold every time the Gold TC is called. We balance this by updating the Gold TC to "gld,mul=1". What this does is apply a "multiplier" to the gold that is dropped. I am not sure what the equation is under the hood, but a multiplier of 1 actually turns the gold drops into tiny values. A multiplier of 0 does nothing, and negative multipliers can cause rollovers in the integers and millions/billions of gold can drop from a quill rat. The Gold TC has no impact on the normal gold drops, since the Gold TC isn't used anywhere, they just use gld itself.
Thanks for the very detailed response Finkster. I kinda was afraid of that (so with my quick glance I apparently got the general gist of it) but that sounds like a sound solution. I'll try to read up on the details this weekend and contact the dev of Pseudo Loot Filter. @MozeIntel thanks for bringing this to light!
Sure thing. If you wanted to test it yourself you can use the -seed argument in your D2RMM Launcher settings. Apply a seed value so the drops are the same every time. We used -seed 494790446. You can open super chests in Lower Kurast with the seed value so they drop the same items for every run. Then you turn on the Pseudo Loot Filter mod with some junk disabled and see if the chests are dropping the same items (minus the newly disabled stuff). What you will likely see is that everything changed in the chest, not just the disabled items going away, as if the seed was changed.
I can't see it mentioned elsewhere (or perhaps it's just obvious to everyone else), but it doesn't seem to work for items found by the Barbs 'Find Item' skill. I've got gems, potions, arrows/bolts etc turned off. It seems to work when killing monsters but I get all of it when using Find Item.
I recently updated the mod and changed how the filter works, so I guess it doesn't work right with Find Item now. It used to work with Find Item, which is why no one else has brought it up before. Unfortunately, there is no good solution that satisfies everything.
I recently updated the mod because it was discovered that the original implementation was changing the item drops, and it could not be guaranteed that vanilla drop rates were intact, which is a show stopper for a lot of people. So I implemented the filter in a different way that addresses the drop issue (as long as "remove lesser gold piles" is disabled), but it seems Find Item doesn't get filtered with this new implementation.
I could replace all of the disabled junk with gold, and Find Item would find a lot more gold than before, but that's not great either because gold find barb already finds gold very quickly with Find Item. Also, it would ignore the "remove lesser gold piles" option and people would post that removing gold doesn't work with Find Item...so there's no winning here.
I will probably play around with it in the future and see if I can come up with a solution.
I just uploaded version 1.7, which fixes Find Item not being filtered. I ended up having to replace everything with gold for Find Item, but the good news is I was able to replace it with small amounts of gold. You will even see gold drops of 0 from Find Item. It's not perfect, but I think it's better than before. I hope you like it. Let me know if you see anything strange (besides the gold drops of 0)... I did minimal testing on my barb and some other characters.
Hi. Thank you for the mod. I have a question. the normal monsters still drop misc items like mana potions, portal scrolls..etc though I checked on 'Remove mana potions'. Did I do something wrong? I'm using your mod with Guarateed Drops mod. another misc things are removed correctly. Thank you!
If your strictness level is 'off' there are a few monster types that will still drop mana portions and portal scrolls. Monsters like wraiths/souls, unravelers and others have a special treasure class, which includes mana pots and TP scrolls, and is separate from the normal treasure class that governs potions and scrolls. This special TC is removed once the strictness is set to any level other than 'off'.
Hello, thanks for the mod! However, I'm not seeing any perfect gem drops anymore. I checked the tresureclass.txt and I don't see perfect gems listed in the "ActXXGood", The highest it goes is Flawless.
Perfect gems have never dropped, outside of the Forge. Are you using another mod that enables perfect gems to drop, and this mod broke that, or are you just mistaken?
So, weird meta level question here. Does this remove said disabled drops, and then does the game roll for a new drop in its place? or does this mod basically do what a PoE loot filter does, where the item drops, but is completely hidden, leaving the chances at say, a Shako, the same. TIA, I f*#@ing love this mod for removing arrows/pots that dont heal red or blue lmao.
It removes the drops, it does not roll for a new drop. Diablo 2 has a thing called NoDrop, so technically the game is selecting NoDrop when nothing is dropped. This mod replaces your disabled items with NoDrop. Chances to drop enabled items are unchanged no matter what you disable.
f*#@ing incredible, thank you. I have a hard time finding the line between increasing playability, and just ruining the intent of the game, and I wouldnt want to use this if it meant it gave a higher volume of items as it sort of invalidates the entire point of the game for me.
No stamina? sure, loot filters? absolutely, 2x monster density and 2x mana regen? hey its just there to make the game feel better, not guarantee items, and thats why I had to make sure with this. 2x monsters + 5-7 playercount + more rolled drops bc of this would be an insane amount of items dropping, when all I want is just more of a fun, blastable challenge with a scaled, but not unfair amount of normal reward
Is there a way to get rid of the potion drops for the Champions and Supers too (still without affecting the drop odds)? Before you tell me there's an older mod here called "Decrease Clutter Drops" which seems to do that, well that mod seems to also not allow me to open chests too...
Still... thank you for the mod. Even as it is, It already helps a ton.
Yes, it's possible to get rid of the potion drops for Champs and Supers without affecting drop rates. It would require a mod update though. The goal of this mod was to reduce the item clutter so that no items get hidden, not necessarily to remove every unwanted item in the game. You can imagine that turns into a deep rabbit hole pretty quickly. I just uploaded a large mod recently and am feeling pretty lazy to do any further updates at the moment. Maybe in the future if I get more requests I can bundle multiple things together and include this as a new option.
what happens if i set /players 7 which will reduce nodrop chance together with this mod? will it indirectly increase my drop rate since: stamina -> nodrop (due to mod) nodrop -> some other item? (due to /players command) or rates are unchanged?
i was mostly concerned about the possibility of this mod accidentally increasing drop rate for non-filtered items through removing stuff from the pool combined with reduced nodrop from players. i phrase it differently: for items not filtered, will the odds stay the same with and without mod for each of the/player settings?
Correct me if I'm wrong... If I use this along with Guaranteed Drops I will be getting the same amount of things dropping, but they just won't be the clutter items? Is there a way to avoid this?
At a quick glance, I would think Reduce Item Clutter should work along with Guaranteed Drops. Reduce Item Clutter removes treasure classes and junk items, while Guaranteed Drops sets the NoDrop to 0 for all treasure classes. What that means is Reduce Item Clutter will remove the lower level treasure classes like normal, but for the treasure classes that still remain they will be guaranteed to drop something from their treasure class if they are selected.
It sounds like you want the higher level treasure classes to drop every time you kill a monster, that won't happen by using Reduce Item Clutter and Guaranteed Drops, you would need a new mod for that.
"It sounds like you want the higher level treasure classes to drop every time you kill a monster, that won't happen by using Reduce Item Clutter and Guaranteed Drops, you would need a new mod for that."
No, actually that is what I was trying to avoid! I didn't want to make the game TOO easy by blocking things like Oil Potions and Arrows/Bolts for characters that don't use them. I use Guaranteed Drops at a very low settings just to take a BIT of the tedium out of single player. I just don't want to make the game too easy to the point its no longer exciting to get a good drop. I will try them together, thank you!
When using a Strictness level e.g. High, which "filters" out items... Does it also filter out white items which are still useful for socketing?
For example, Double Axe is only Treassure Class 15 - but when it drops white in Hell, I could use it for 5 socketing (or it might even drop with 5 sockets).
I assume it doesn't matter and since it is TC 15 it gets filtered out with Strictness level "High" correct? An it would only be "not filtered out" if I use Strictness level "Low", correct?
64 comments
I am curious, for the disabled treasure classes, did you try not blanking the fields, and giving them a very large NoDrop chance? So, the item technically still has a chance to drop, but the NoDrop chance is so much higher that it effectively achieves the desired result? I am curious to know the result of this because it seems like your testing is suggesting that NoDrop itself has an impact on other drops, not just the item you are NoDropping. I ask this partly because this mod also has an option to filter "lesser gold piles", and so players are expecting to be able to filter gold and your workaround solution requires gold piles to drop.
Also, I am wondering if all of this really matters at the end of the day. Sure, seed 494790446 is not giving the expected results, but is it dropping equivalent to another seed? As long as the seeds are delivering "seed-like" results, I don't know if anyone really cares about the seed number specifics. Although, I admit I am not sure how we could verify that without losing sanity and I do really appreciate your testing method, given what's available to us.
Thanks, oh and I also share your dissatisfaction with JavaScript, and I am by no means an expert with it. In fact D2R modding was my introduction to JavaScript...I apologize for the excessive use of regular expressions in this mod. I don't like it either, but it's what I was able to reference at the time and get things working.
Unfortunately for reasons I explained on my github is it completely impossible to test the extent of the drop rate "skewing". I have no empirical data/no datasets I can share with drop comparisons. Due to that I just assume the stance of "worst case", so any change In vanilla drops is imo not a good thing.
And yes, my dig was entirely directed at javascript, not to your code at all.
Players 7 Lower Kurast with -seed argument:
Screenshots
The 3 images are as follows:
1. Mod Disabled
2. Mod Enabled with Junk disabled and Strictness Medium, NoDrop is set to 65,535 for the "disabled" TC rows and no fields were blanked
3. Same as 2, but with lesser gold piles disabled, which attempts to only remove the gold's probability and add it onto NoDrop, instead of disabling the entire TC row
Note, in image 2 the game seems to be replacing junk with gold for certain items. We went from 3x gold piles and 3x junk (2x arrows and 1 key) to 6x gold piles. This is interesting because that was also your solution. Image 3 shows that trying to surgically alter a TC leads to completely different drops.
With all of that said, I have been using this mod for over a year, along with many others, and no one has reported unusual drop rates. Of course that is completely subjective, but it makes me feel a bit better. I suspect the drops are still providing equivalent drop rates within any meaningful measure, but I can't be sure of that.
In conclusion, it seems like replacing items with gold is the way to go to preserve the seed's drops, even the game seems to do this automatically in some cases. This also means that being able to filter out gold without impacting the seed's drops is impossible. I am going to mess around some more and see if I can find anything else interesting.
Again, thanks for looking into this.
My latest version of the loot filter actually seems to work without having to drop gold for everything. The key is leaving all of the probability columns untouched... they must be factored into the seed drops somehow. Good news is you can still add a giant NoDrop value and it doesn't seem to affect the drops that are selected compared to vanilla.
The one issue with NoDrop is I found that the Barbarian Find Item skill ignores NoDrop. In my latest Loot Filter version 1.7 I was able to come up with an approach that replaced filtered items with gold only for Find Item (with mul=1), but for normal killing the monsters drop nothing, and the seed test in Lower Kurast seems to still pass.
Before:
NoDrop = 0
Arrows = 1
Bolts = 1
Arrows/Bolts each have 50% chance to be selected within the Ammo TC
After:
NoDrop = 1
Arrows = 1
Bolts = 0
You disabled bolts, and arrows still have a 50% chance to drop within the Ammo TC.
Mathematically, this is sound design, but the game seems to roll the items differently now that the probability column was updated for bolts. It doesn't mean that drop rates are changed necessarily, but we can't be sure. It may just be changing the drops equivalent to you getting a different seed.
My solution to this problem is this:
NoDrop = 0
Arrows = 1
Gold TC = 1
Note that I am not replacing Bolts with gold, but I am calling the "Gold" treasure class, which is a seemingly unused TC that Blizzard has in the file. In every other case where gold is selected they use "gld"; they call the gold item directly, not the "Gold" TC.
Lastly, my Gold TC looks like this:
NoDrop = 65,535
gld = 1
So, my probability columns are untouched and this seems to preserve the seed's drops, and I am able to replace disabled items with the Gold TC, which has a 99.9999% chance to drop nothing.
Now, Find Item ignores NoDrop, so Find Item is dropping gold every time the Gold TC is called. We balance this by updating the Gold TC to "gld,mul=1". What this does is apply a "multiplier" to the gold that is dropped. I am not sure what the equation is under the hood, but a multiplier of 1 actually turns the gold drops into tiny values. A multiplier of 0 does nothing, and negative multipliers can cause rollovers in the integers and millions/billions of gold can drop from a quill rat. The Gold TC has no impact on the normal gold drops, since the Gold TC isn't used anywhere, they just use gld itself.
I recently updated the mod because it was discovered that the original implementation was changing the item drops, and it could not be guaranteed that vanilla drop rates were intact, which is a show stopper for a lot of people. So I implemented the filter in a different way that addresses the drop issue (as long as "remove lesser gold piles" is disabled), but it seems Find Item doesn't get filtered with this new implementation.
I could replace all of the disabled junk with gold, and Find Item would find a lot more gold than before, but that's not great either because gold find barb already finds gold very quickly with Find Item. Also, it would ignore the "remove lesser gold piles" option and people would post that removing gold doesn't work with Find Item...so there's no winning here.
I will probably play around with it in the future and see if I can come up with a solution.
Glad you like it.
No stamina? sure, loot filters? absolutely, 2x monster density and 2x mana regen? hey its just there to make the game feel better, not guarantee items, and thats why I had to make sure with this. 2x monsters + 5-7 playercount + more rolled drops bc of this would be an insane amount of items dropping, when all I want is just more of a fun, blastable challenge with a scaled, but not unfair amount of normal reward
youre a god damn saint
Is there a way to get rid of the potion drops for the Champions and Supers too (still without affecting the drop odds)?
Before you tell me there's an older mod here called "Decrease Clutter Drops" which seems to do that, well that mod seems to also not allow me to open chests too...
Still... thank you for the mod. Even as it is, It already helps a ton.
Thanks.
will it indirectly increase my drop rate since:
stamina -> nodrop (due to mod)
nodrop -> some other item? (due to /players command)
or rates are unchanged?
i phrase it differently: for items not filtered, will the odds stay the same with and without mod for each of the/player settings?
It sounds like you want the higher level treasure classes to drop every time you kill a monster, that won't happen by using Reduce Item Clutter and Guaranteed Drops, you would need a new mod for that.
and Guaranteed Drops, you would need a new mod for that."
No, actually that is what I was trying to avoid! I didn't want to make the game TOO easy by blocking things like Oil Potions and Arrows/Bolts for characters that don't use them. I use Guaranteed Drops at a very low settings just to take a BIT of the tedium out of single player. I just don't want to make the game too easy to the point its no longer exciting to get a good drop. I will try them together, thank you!
When using a Strictness level e.g. High, which "filters" out items... Does it also filter out white items which are still useful for socketing?
For example, Double Axe is only Treassure Class 15 - but when it drops white in Hell, I could use it for 5 socketing (or it might even drop with 5 sockets).
I assume it doesn't matter and since it is TC 15 it gets filtered out with Strictness level "High" correct?
An it would only be "not filtered out" if I use Strictness level "Low", correct?
Thanks a lot!
This mod allows you to pick which base items to filter, instead of filtering by treasure class:
Pseudo Loot Filter