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
    Rarity >= Rare

    DropLevel >= 70

    BaseType "Scroll of Wisdom"

    Class Map Currency

    Class Gem
    Quality > 0

    Quality 20

    Sockets 6

    LinkedSockets >= 5


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.

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:

    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:

    BaseType "Exalted Orb"
    SetTextColor 255 0 255

You can also set the background colour:

    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:

    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:

    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.

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


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 
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 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.

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
One Hand Swords
Thrusting One Hand Swords
One Hand Axes
One Hand Maces
Two Hand Swords
Two Hand Axes
Two Hand Maces
Active Skill Gems
Support Skill Gems
Body Armours
Stackable Currency
Quest Items
Utility Flasks
Fishing Rods
Map Fragments
Hideout Doodads

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
Absolutely love this feature.

Report Forum Post

Report Account:

Report Type

Additional Info