Loot filter option OR

Now loot filter rule is applied when all conditions are true. Because of this in some cases a lot of similar rules must be created.
For example I want to filter only good bases. So now I have to make a rule to hide every single item type.

It would be much simpler, if item subtypes could be selected for multiple item types. As for now, selecting 2 or more item types disables subtype menu.

I’ve looked into loot filter XML and found a problem

<Condition i:type="SubTypeCondition">
	<type>
		<EquipmentType>BOOTS</EquipmentType>
	</type>
	<subTypes>
		<int>0</int>
		<int>5</int>
	</subTypes>
</Condition>   

With current structure it is not possible to have specific subtypes for distinct types.
I suggest changing it to something like this

<Condition i:type="SubTypeCondition">
	<type>
		<EquipmentType>BOOTS</EquipmentType>
		<subTypes>
			<int>0</int>
			<int>5</int>
		</subTypes>
	</type>
	<type>
		<EquipmentType>...</EquipmentType>
		<subTypes>...</subTypes>
	</type>
</Condition> 

Old filters can be recognised and converted to new format.
Thanks for attention. I really hope this game gets better before multiplayer patch, as I have a queue of friends waiting for it :blush:

1 Like

Why do it that way?

Why dont you just hide all at the bottom and put a Show for the bases you are looking for above - the filter works top down so if it finds the base you are looking for it will highlight it… if not then everything stays hidden…

Thats literally 1 Hide and a show for the bases you want…

1 Like

Yes, but an OR option would be nice.

Any added functionality would be great… no argument there…

What I am concerned about is the impact the filter could potentially have on performance… Devs would have to chip in here if it could actually be an issue - especially with added logic, but eventually I would expect that there would need to be some sort of limit…

Like with normal development/coding/regex etc, there are usually more processing efficient ways of doing things that should be considered first… Even my maths challenged mind could thumb suck a bit of python to calculate pi to 1000 digits but I would be 100% sure it will not be the most efficient way to do it…

Just thinking of the performance of the stash search right now and how I would REALLY like added search functions/filters, but its already pretty slow with 100+ stash tabs… dont want the same to happen with filters…

Because at the very bottom of that hide list I also apply affix filter, with affix tier sum condition. So that I first highlight items with good affixes, and then remove unwanted bases, thus having only good affixes on good bases.
If I first show good bases and then apply affix rule, it will override bases rule and show all bases. If I first apply affix rule, then hide all and show only good bases, that hide rule will override affix rule.

The filter applies the rules from the bottom-up, not top-down. That’s why things at the top override the things at the bottom.

The filter definitely needs OR, NOT, and AND, for sure, but I really think this is something that will take priority after release. The filter is functional for now, even if it takes a few extra steps.

As you can see here in my filter, I’ve blocked all items. Then I show all of the items I want with at least 1 desired affix. But the problem is that now all of the items that have at least 1 of these affixes will show, even if the other 3 affixes on them are completely undesired.

So I have to add a second rule above it, telling it to now filter that filter for items that also have unwanted affixes.

After that I added rules for specific item types. As this posts states, I cannot list subtypes if I have more than one item type selected. So now I have to go through all of the item types that I want to see and filter out the subtypes I don’t want to see. These are basically older subtypes that I’ve outleveled, that are no use to me.

That is incorrect.

Rules do not override other rules.

Items check rules from top to bottom and as soon as a rule applies (with all conditions) it does not even check rules below that.

I am not 100% sure why the devs choose this approach, but I think one advantage is, that if a ruel applies to an item, it saves a lot of computation power, sicne it doesn’t need to check otehr rules.

With what yo usaid every item would always check against every rule, which would be much more computation heavy

This discussion has been had before (and I was actually, you may wish to sit down, wrong!).

If rules were checked bottom up, then a *hide all *rule at the bottom would mean that nothing would ever be shown, which is not the case.

Which is what happens when a rule at the top matches an item, it overrides any potentially matching rules below it.

The bottom is parsed by the filter first. The top is the final rule, applied last. If it were read from the top to the bottom, then my filter wouldn’t show anything when I put hide all items at the bottom.

I think we interpret “overriding” differently here.

Was a bad chocie of word anyway :smiley:

If you read the rest of my post you know what I mean.

1 Like

It does not, test it again, you probably made a mistake when you tested that the last time

I know, but precision is everything…

You may wish to re-read what you said, your first sentence is contradicted by your last.

This is not precision, its just forcefully trying to make something sound wrong.

Rules to not “override/overwrite” whatever word you wanna take in any capacity.

Simply because as soon as one rules applies there is nothing else that the system even tries to check and override.

I don’t know what technical explanation there is for how the loot filter applies rules, and quite frankly I don’t care.

The point is that I create my logic from the bottom up when making my filters and it works great. I don’t know what your definitions are regarding “reading” “applying”, etc. If you are talking about priority or if you are talking about the lists going through the for loops or if you are talking about actual human reading logic. None of that matters. The point is that I built my loot filters from the bottom up, because that’s the order in which my logic is applied.

We derailed a bit anyways.

I think we all have a lot of great suggestions for the loot filter and we can all agree that it needs more iterations to get really amazing.

Despite needing quality of life improvements, this loot filter system is more user-friendly than other ones I’ve encountered. It’s easy to get accustomed to it without having to read a guide on it. I’m really happy with their base concept.

Derailing the OP of more logic options for filters… I think everyone agrees (perhaps with caveats) that this would be a good improvement - case closed…

Thinking more on your specific scenario, I understand what you are doing… However, I am wondering on the practicality of such strict filters when actually playing the game…

The chances of anything viable decreases (dare I use the word exponentially) the stricter the the filter… add to this the issue of finding ideal crafting items - i.e. things you intend to improve through crafting rather than hoping to find “near perfect” gear… - and I feel that this strict filter approach is more than likely hindering your loot chase rather than enhancing it…

I have been playing almost 2k hours now and have well over 100 stash tabs of mostly exalted items and crafted T20+ items that I found using much simpler filters focussed more on the quality of Tiers of choice affixes and ideal base items… For example I have filters that find items of higher combined Tiers (e.g. T12) with at least 1 or 2 choice affixes that I can craft on and have a very good chance of ending up with something with 4 affixes I want… I have found that its highly improbable to get drops with only the affixes you want on a single item and almost impossible if you then only want them all on a desired base… add high tiers & a decent amount of FP and the chances are lottery level slim…

The only time I could see strict filters working would be on my min/maxed lvl 100 chars where I am literally looking for a 1-5% increase on some stat or another… and even then I doubt very much that a strict filter would be helpful…

Out of interest - if you feel like humouring me

  • are you enjoying the loot chase with such decreased loot quantity?
  • are you actually finding loot that matches your rules often enough to not feel frustrated?
  • do you just have a personal preference for the approach you are taking
  • is it something you feel LE is enabling you to do and you are doing it like this because you can and would do it like this in all Loot chase games if you could?
  • Do you not consider crafting as part of your loot / gearing process?

EDIT: Just also realised another indirect issue with such strict filters - every time the game updates and changes anything to do with affixes & gear, you then have to update each of your filters. Irrelevant to my understanding of your reasoning right now, but is a longer term issue with this approach…

I’ve overly restricted my loot filter for a couple of reasons.

First and foremost is that I’ve burned through all of my Hope scrolls and Shatter runes, as well as running low on all of my most desired affix shards. As I leveled I spent too much time trying my luck at getting just one more tier of the stats I wanted. I noticed that I kept rolling on every white I’d see with decent implicits. And while that’s not a bad strategy for getting some decent stats on your leveling gear, I think I took it too far.

I’m trying to shield myself from seeing any whites at the moment. I’m mostly hunting for blues with at least one stat that I want. They aren’t difficult to ask for either. So long as I can find a sword that already has physical damage % on it, I can get a quicker craft out of it without using so many Hope scrolls.

Finding an item with 2 desired stats is far more difficult, sure, but it’s still very possible. Especially if it’s not restricted to just prefix or suffix, but one of each.

I’m still new to the game and I’ve restricted my loot filter from seeing items of other classes, because I get too easily distracted with what I might use it for an an alt that I haven’t even rolled yet. This makes my progress grind to a halt. It takes me too long to read the stats and determine if the item is valuable to me or not. Especially since I’m poor and my stash space is still limited.

My character is around level 67 and working toward unlocking empowered Monoliths. I’m not struggling at all. I’ve got tons of defenses and health regen and also do tons of damage. I really don’t need any upgrades at the moment. I haven’t filtered out the item bases that are still an upgrade for me, but rather restricted them to only showing if they have at least 1 affix I desire.

I’m attempting to ignore everything but the most juicy drops and farm for materials. My gear is already at a point where I can farm without actively looking for upgrades, or where upgrades for me are going to be T6+. I can’t keep burning Hope scrolls, trying to get that 1% improvement from a normal/magic base, and the rares are unlikely to be god-like.

@Heavy DMed me an explanation of the loot filter, by the way. I understand now.

The way I was thinking about it was every rule generating a new list of loot to include or exclude from the final results. As if it was applying the rule to all of the items at the same time. A very inefficient way as well, because a new list has to be generated for each rule.

What Heavy sent me explained that the rules are checked per item, from the top and the function exits after it finds a matching rule.

I wrote some Python in a way that helped me understand the logic. I didn’t test any of this code, so there might be errors lol.

items = ["hat", "coat", "gloves", "boots", "pants"]
colors = ["red", "green", "blue", "yellow"]
rules = [
    {"type": "show", "item": items[0], "color": colors[2]},  # Show all blue hats.
    {"type": "hide", "item": items[0], "color": colors[0]},  # Hide all red hats.
    {"type": "hide", "item": items[-1]},  # Hide all pants.
    {"type": "show", "item": colors[-1]},  # Show all yellow.
]

# I didn't bother to write in any data for the loot drops, cause it doesn't matter.
loot_drops = [
    {"item": items[0], "color": colors[0]},
    {"item": items[0], "color": colors[0]},
    {"item": items[0], "color": colors[0]},
]


def include_item(rule, loot):
    if loot["item"] != rule["item"]:
        return False
    if rule.get("color") and loot["color"] != rule["color"]:
        return False
    if rule["type"] == "hide":
        return False
    return True


results = [
    next(loot for rule in rules if include_item(rule, loot)) for loot in loot_drops
]
1 Like

Ah… ok… this helps understand where you are coming from…

If you are willing to accept some advice in the spirit its intended, I think that you have approached loot & crafting in LE in a way that may be preventing your enjoyment of the game at least in the way its intended… especially for a new player and a new character…

I think you have overcomplicated a lot of the game at a stage when its entirely unneccessary to do so… Sure, some of the things you have done (like craft on whites - dont do that - and waste Shattering runes) are things you need to learn, but the game is really easy during the campaign & normal monolith stages and virtually everything will be an upgrade and needing strick filters is entirely unneccessary imho… At level 67, you should be no-where near using these level of filters… those are best left for when you hit empowered monoliths and the drop quality is exponentially better than anything before… most of your characters power will be coming from skills and unless you have a defensive issue, you should be sailing through the content…

Imho, you should be running around watching mobs die and your screen filling up with glorious loot of all kinds and descriptions to make you drool over what the future could hold… there will be PLENTY of time to get into the real min/maxing later… I promise…

Hope you understand where I am coming from in this reply… it is not my intention to cast shade on your efforts - you are obviously getting somewhere… and if you are enjoying it, then so be it…