Item Filters

For a long time, Path of Exile players have requested some way to filter items. We were always resistant to this because the parameters of such an item filter would have to be so complicated that we couldn't reasonably make a user interface to support them.

For example, a lot of players want a way to filter out Magic and Normal items. This would be fine, but they still also want to see base item types above level 70. And currency. But not scrolls because they have enough of those. And maps. And any item with 20% quality. But any gem that has quality is good too. And any item with 6 sockets. And any item with 5 or more linked sockets.

As you can see, the array of UI options that we would have to provide to allow the specific filtering requirements of every player would be completely impractical.

This is why we are adding a new feature called Item Filter Scripts in the upcoming expansion. Not only do item filter scripts allow you to filter items, but they allow you to customise the display of items as well.


Item Filter Script Example

The following is a filter script that shows all the items described above and hides everything else:

# You can add comments by putting a # at the start of the line
Show
    Rarity >= Rare

Show
    DropLevel >= 70

Hide
    BaseType "Scroll of Wisdom"

Show
    Class Map Currency

Show
    Class Gem
    Quality > 0

Show
    Quality 20

Show
    Sockets 6

Show
    LinkedSockets >= 5

Hide

The basic syntax of a script is a collection of Show and Hide blocks that each specify conditions. Anything matched by a Show block will be shown and anything matched by a Hide block will be hidden. If there are multiple conditions in a block then all of them must be matched for the block to match an item.

The blocks are matched in the order they come in the file which means that you need to have the block that hides the scrolls above before the line that shows the currency because scrolls would also match the currency block.

An empty block matches all items, which means that the Hide at the end of the file effectively hides everything that wasn't specifically shown.

The example here uses a whitelisting approach where you specify all the items that you want to see, but it is perfectly reasonable to create a filter script that simply hides the items you don't wish to see while showing the rest with an empty Show at the bottom.


Item Filter Condition Types

The following is a full list of all the conditions that you can specify to filter items. Numeric conditions allow you to use comparison operators such as less than (<) or greater than or equals (>=) to indicate that you would like to include items that would compare that way.

NameNotes
ItemLevelThe level the item was generated at.
DropLevelThe level that the item starts dropping at.
QualityThe amount of quality on the item.
RarityRarity of the item. Rarities are Normal, Magic, Rare or Unique.
ClassThe item class. Specifying part of a class name is allowed and will match any classes with that text in the name. So for example "One Hand" will match both "One Hand Sword" and "One Hand Axe"
BaseTypeThe base type of the item. Specifying a part of a base type name is allowed and will match any of the base types with that text in the name.
SocketsTotal number of sockets that the item has.
LinkedSocketsThe size of the largest group of linked sockets that the item has.
SocketGroupA group of linked sockets that contains the specified combination. For example, RRG will match any group that contains two red sockets linked with a green socket.
HeightThe height of the item in your inventory
WidthThe width of the item in your inventory
IdentifiedIf an item is identified or not
CorruptedIf an item is corrupted or not (Added in 2.5.0)

Modifying How Items Are Shown

The item filter system also gives you the ability to modify how items are displayed.

For example, say you want to show gems that have quality with a blue border. You could do that with the BorderColor attribute as shown here:

Show
    Class Gem
    Quality > 0
    SetBorderColor 128 128 255

Or let's say you want to show Exalts with Purple text for some reason. You could do that with the TextColor attribute as shown here:

Show
    BaseType "Exalted Orb"
    SetTextColor 255 0 255

You can also set the background colour:

Show
    LinkedSockets >= 5
    SetBackgroundColor 0 128 0

The three numbers used to specify a colour are the Red, Blue and Green components of the colour where 255 is the highest value. An optional fourth parameter can be provided to specify the transparency, this also ranges from 0 to 255 where 0 is completely see-through and 255 is completely opaque.

You can also have an alert sound play with PlayAlertSound. There are 9 alert sounds that can be chosen from by specifying a number. The volume of the alert sound can be adjusted with an optional second parameter, ranging from 0 to 100. The following will play alert sound 1 at 50% volume when at item with 6 linked sockets drops:

Show
    LinkedSockets 6
    PlayAlertSound 1 50

We've made our currency stand out more by adding a border and increasing the size of the font using SetFontSize:

Show
    Class "Currency"
    SetBorderColor 200 200 100
    SetFontSize 40

Items can be shown based on their size by checking Width and Height. In this example, all other 1x1 items are set to appear small and transparent using SetFontSize and lowering the fourth colour value. We'll hide the rest of the items by adding a "Hide" block to the end of our file.

Show
    Width 1
    Height 1
    SetFontSize 1
    SetBackgroundColor 50 50 50 100
    SetTextColor 200 200 200 200

Hide

Any or all of these attributes can be added to any Show block to allow complete customisation of how items hovers are shown in the world.


An example with an item filter that applies some of the colour changes described above

For a great guide on how to create Item Filters, click here!

Posted by
on
Grinding Gear Games
"
Tanakeah wrote:
Ok, looked at it more and it definitely looks nice and seems to be a decent solution. However, obvious question for me is...is this going to be something we can access via the Options menu and not have to go into any of the game files and what not? I know that might sound really stupid, but I am genuinely asking and going to assume that this is something that is going to be something you can set while in game and change around as such?

Also, with the amount of options and the like, is there going to be some sort of in-game tutorial/guide to assist players in knowing how to write out the scripts for those that may have never done such formatting before? Definitely NOT trying to sound like a jerk here as I am glad for something like this, but just wanting a little more clarification. :)


On the options screen, you can choose the filter script file to load. These scripts could either be written by you (the format is pretty simple as you can see in Jonathan's post) or you can download one written by another user.
Lead Developer. Follow us on: Twitter | YouTube | Facebook | Contact Support if you need help!
"
lagwin1980 wrote:
Quick question, the alert sounds is that just the sounds it already plays? or can you choose from a list, and can you adjust the volume that the sound plays at through the script?


There are 9 sounds to choose from that you can select from a number. And yes, you actually can control the volume by specifying it as a second number after the sound number. I'll add docs for that into this post soon.
Path of Exile - Lead Programmer
"
Toup wrote:
Mind blowing.
/impressed

If it ain't done yet, any luck we can get something like item "slot" or "generic type" in ? (ie. glove, body armor, ring, one handed sword). Having this in stashsearch would be awesome too. Not getting it anywhere would already be friggin cool anyways :p



The Class condition will do that. You can specify any from this list:

Life Flasks
Mana Flasks
Hybrid Flasks
Currency
Amulets
Rings
Claws
Daggers
Wands
One Hand Swords
Thrusting One Hand Swords
One Hand Axes
One Hand Maces
Bows
Staves
Two Hand Swords
Two Hand Axes
Two Hand Maces
Active Skill Gems
Support Skill Gems
Quivers
Belts
Gloves
Boots
Body Armours
Helmets
Shields
Stackable Currency
Quest Items
Sceptres
Utility Flasks
Maps
Fishing Rods
Map Fragments
Hideout Doodads
Microtransactions

If you specify part of a name it will match all that contain that part of the name.

For example "Skill Gems" will match both "Active Skill Gems" and "Support Skill Gems"

Path of Exile - Lead Programmer

Report Forum Post

Report Account:

Report Type

Additional Info