Item filter guide
With the release of Path of Exile: The Awakening (version 2.0.0), item filters were introduced as an optional feature for players to customize what they see when items drop in the game.
There are multiple options from colors, text size, borders and even sounds
Although the game does offer a default filter, there is no in-game system for editing them; end users can write and tailor their own filter using a text editor. (Though there are several scripts out there that can do the hard work for you).
I wrote the original guide while the BETA for Path of Exile: The Awakening was running, and through that time I edited in new options etc as they became available.
- 1 Item Filters - The How To Guide
- 2 Using an existing filter
- 3 Creating your own
- 4 Cutting your code down to size!
- 5 Saving your Filter
- 6 Troubleshooting
- 7 References
Item Filters - The How To Guide
Using an existing filter
- Step 2
- Locate an existing filter, i.e. from List of item filters or elsewhere.
- Step 2A - Copying file
- If the item filter is supplied as downloadable file with the .filter extension, you can simply download it and save it in the folder.
- Step 2B - Copying Contents
- Create a text file with the name you want your Filter to have. When you Save this file, be sure to select 'Save As' and set the file type to "All Files (*.*)". Copy the contents of the filter into the file.
- Then save the file as: filtername.filter
- It should look like this if done correctly
- If you cannot see your file extension, Show/Hide File extensions in Windows
- Step 3
- Go to the in-game Options menu and click on the UI tab. You should see this new option, located at the very bottom of the list:
- If your Filter is not a .filter file, or it is not located in the same folder as your production_Config.ini file, you won't see this option.
Creating your own
To create a Loot filter, you generally need to use a text editor such as NOTEPAD Some versions of NOTEPAD++ Do work, but most do not from reports. Currently the Encoding must be ANSI or UTF-8
Currently if any part of the file directory contains a non-english character it will not work - this includes your computer username
You can Edit your filter with the game still running. All you need to do is Open it, edit it and save it then press reload in the client.
The basic idea is a list of Show and Hide "blocks" that each specify certain conditions by information provided in each line. 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.
A section is defined as a *collection of blocks*, typically with a general purpose in mind. For example, the section outlined in red is designed to highlight certain gems. All sections in a script should begin with a 4-digit header code, which can be used to quickly jump from place to place within the script.
A block is defined as a *collection of lines*, which have a singular purpose. In the block in orange, rare gems such as Empower are highlighted. A block must begin with a "Show" or "Hide" line. A block ends when another line containing Show or Hide is read by the client.
A line is used to give instructions *to the block in which it is contained*. The line highlighted in yellow gives a blue-green background to quality gems, but does not affect the block below it, which affects only rare gems.
# You can add comments in filters by placing them behind a # on a new line. # This is a comment - The client will ignore this. Hide BaseType Flask Quality < 10 Show BaseType Flask Show Rarity >= Rare Show DropLevel >= 70 Hide BaseType "Scroll of Wisdom" Show Class Map Currency Show Class Gem PlayAlertSound 4 75 Show Quality 20 SetTextColor 0 0 255 Show Sockets 6 SetBorderColor 255 0 0 Show LinkedSockets >= 5 SetFontSize 45 Hide
This Filter shows
- All Flasks with 10% or more quality
- Rare and unique items
- Base items equal to and above level 70
- Currency except Wisdom Scrolls
- All Gems A sound will play
- Normal and Magic Items with 20% quality This has blue text
- 6 Socketed Items This has a Red Border
- Items with 5 or more links This is shown with much larger text
Everything else will be hidden unless you press ALT
The most important thing to note is that blocks are read from top to bottom in the file by the client, The highest block takes priority, 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.
This is why flasks come first in this list, They can not be rare and their droplevel is below 70.
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.
- Ranges in parentheses are plausible values, but not enforced.
- Every condition can have multiple values separated by a space.
- If a multi-word value contains whitespace, it must be encapsulated in quotation marks, or else it will be parsed as separate (and possibly invalid) values.
|AreaLevel [Operator] <Value>||Numeric Level (0-100)||Filters for items dropped in a particular Monster level of the current area. This is probably the most relevant of the filters, as it allows enabling/disabling filters dynamically depending on leveling.|
|ItemLevel [Operator] <Level>||Numeric Level (0-100)||The item level the item was generated at.|
|DropLevel [Operator] <Level>||Numeric Level (0-100)||The level that the item starts dropping at.|
|Quality [Operator] <Quality>||Numeric Quality (0-20)||The amount of quality on the item.|
|Rarity [Operator] <Rarity>||Normal, Magic, Rare, Unique||Rarity of the item.|
|Class <Class>||Full or partial item class name||The 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"|
|BaseType <Type>||Full or partial item name||The 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.|
|Prophecy <Type>||Full or partial prophecy name||The prophecy name. Specifying a part of a prophecy name is allowed and will match any of the prophecies with that text in the name. Prophecies have the Class type "Stackable Currency".|
|LinkedSockets [Operator] <Links>||Numeric Number of Links (0-6)||The size of the largest group of linked sockets that the item has.|
|SocketGroup [Operator] <GroupSyntax>||Numeric Number of Linked Sockets followed by R, G, B, D, A, W||Supports a list of groups that each one represents linked sockets containing a specific set of colors, at least one group must be matched for the condition to pass.
Each group is composed by an optional number and a sequence of letters. The number specifies the longest link which contains the following color sequence described by the letters. Each letter is short-hand for the colour ([R]ed, [G]reen, [B]lue, [W]hite) or Special ones ([D]elve Socket, [A]byss Socket). For example, 5RRG will match any group that contains two red sockets linked with a green socket in a 5-link group. Delve and Abyss cannot be in the same group as any other, as they cannot be linked.
If a comparison operator is used, it will apply to the numeric portion, so a ">= 5GGG" will match a 5 or more linked group with 3 green sockets.
SocketGroup with A and D socket has no effect. For example "SocketGroup RGBA" or "SocketGroup DD". As Abyss and Delve sockets are never linked.
|Sockets [Operator] <GroupSyntax>||Numeric Number of Sockets (0-6) followed by R, G, B, D, A, W||Does the exact same thing as SocketGroup but does not require the sockets to be linked. So the same example ">= 5GGG" will match 5 or more sockets not necessarily linked, with at least 3 green sockets anywhere.
Unlike SocketGroup, this condition does allow for mixing and using Delve and Abyss sockets, for example, a Resonator with 3 sockets would be "DDD".
|Height [Operator] <Value>||Numeric number of slots (1-4)||The number of slots the item takes on the Y-axis (verical axis), i.e. the height of the item.|
|Width [Operator] <Value>||Numeric number of slots (1-2)||The number of slots the item takes on the X-axis (horizontal axis), i.e. the width of the item.|
|HasExplicitMod <Value>||Full or partial item name||Filter by mods on an item by name. For example: [HasExplicitMod "Tyrannical" ] (Tyrannical=Local Physical Damage 155 to 169%)|
|AnyEnchantment <Boolean>||True or False||If an item has any enchantment from the Labyrinth.|
|HasEnchantment <Value>||Full or partial name of enchantment||Filter by enchantments|
|EnchantmentPassiveNode <Value>||Full or partial name of enchantment||Filter by enchantments. Parameter to filter Cluster Jewels by enchantment type.|
|StackSize [Operator] <Value>||Numeric number of slots (1-n)||Currency stack size|
|GemLevel [Operator] <Value>||Numeric number of slots (1-21)||Gem Level|
|GemQualityType [Operator] <Value>||Superior
|Gem Quality Type|
|AlternateQuality <Boolean>||True or False||If an item has alternate quality or not. Note: This is applicable to Alternate Gems introduced in 3.12.|
|Replica <Boolean>||True or False||If an item is an Replica or not. Note: This is applicable to Replica Unique introduced in 3.12.|
|Identified <Boolean>||True or False||If an item is identified or not.|
|Corrupted <Boolean>||True or False||If an item is corrupted or not.|
|CorruptedMods [Operator] <Value>||Numeric number of corrupted mods (0-n).||How many corrupted mods are present.|
|Mirrored <Boolean>||True or False||If the item is a Mirrored item or not. Does not drop normally, except when opening a Strongbox with the "Contains Mirrored Items", or via the Prophecy Kalandra's Craft.|
|ElderItem <Boolean>||True or False||If an item is an Elder item or not.|
|ShaperItem <Boolean>||True or False||If an item is a Shaper item or not.|
|HasInfluence <Type>||Shaper, Elder, Crusader,
Hunter, Redeemer, Warlord, None
|If an item has Influence of a certain type. Note that this also affects Maps that are influenced.
If want item that has no Influence, choose value as None.
|FracturedItem <Boolean>||True or False||If an item is fractured or not|
|SynthesisedItem <Boolean>||True or False||If an item is synthesised or not|
|ShapedMap <Boolean>||True or False||If the map is shaped or not.|
|MapTier [Operator] <Value>||Numeric Tier (1-17)||The map tier of the map.|
|SetBorderColor <Red> <Green> <Blue> [Alpha]||0-255||Sets the border colour of the item box in RGB values from 0-255 with optional Alpha (opacity) value of 0-255|
|SetTextColor <Red> <Green> <Blue> [Alpha]||0-255||Sets the text colour of the item box in RGB values from 0-255 with optional Alpha (opacity) value of 0-255|
|SetBackgroundColor <Red> <Green> <Blue> [Alpha]||0-255||Sets the colour of the item box in RGB values from 0-255 with optional Alpha (opacity) value of 0-255|
|SetFontSize <FontSize>||18-45 (default: 32)||Sets the font-size of item text.|
|PlayAlertSound <Id> [Volume]||Disable:
|Plays the specified Alert Sound with optional volume when dropped. Only one sound can be played at a time.|
|PlayAlertSoundPositional <Id> [Volume]||Disable:
|Work as PlayAlertSound with Sound Volume relative to distance where Item dropped. Could be usable with low Tier Items to smooth Sounds.|
|DisableDropSound||Disable the drop sound (undocumented feature).|
|CustomAlertSound <FileName | FileFullPath>||local path to the file (with quotation marks):
||Plays the specified custom sound when a specified item drops. (almost all of the common file extensions should be supported)|
|MinimapIcon <Size> <Color> <Shape>||Disable:
|Displays an icon on the minimap for specified items.|
|PlayEffect <Color> [Temp]||Disable:
Beam Visualization [Temp]:
|Displays a coloured beam of light above an item highlighted by an item filter.
Use the Temp parameter to have a beam only appear as the item drops.
A list of the default RGB codes used in-game can be found in the corresponding item filter guide section.
List of Item Classes
You can specify any from this list:
|Item class||Internal ID||Category|
|Claws||Claw||One Handed Weapon|
|Daggers||Dagger||One Handed Weapon|
|Wands||Wand||One Handed Weapon|
|One Hand Swords||One Hand Sword||One Handed Weapon|
|Thrusting One Hand Swords||Thrusting One Hand Sword||One Handed Weapon|
|One Hand Axes||One Hand Axe||One Handed Weapon|
|One Hand Maces||One Hand Mace||One Handed Weapon|
|Bows||Bow||Two Handed Weapon|
|Staves||Staff||Two Handed Weapon|
|Two Hand Swords||Two Hand Sword||Two Handed Weapon|
|Two Hand Axes||Two Hand Axe||Two Handed Weapon|
|Two Hand Maces||Two Hand Mace||Two Handed Weapon|
|Active Skill Gems||Active Skill Gem||Gems|
|Support Skill Gems||Support Skill Gem||Gems|
|Body Armours||Body Armour||Armor|
|Sceptres||Sceptre||One Handed Weapon|
|Critical Utility Flasks||UtilityFlaskCritical|
|Labyrinth Map Item||LabyrinthMapItem|
|Misc Map Items||MiscMapItem||Other|
|Delve Socketable Currency||DelveSocketableCurrency|
|Rune Daggers||Rune Dagger||One Handed Weapon|
|Warstaves||Warstaff||Two Handed Weapon|
|Delve Stackable Socketable Currency||DelveStackableSocketableCurrency|
|Atlas Region Upgrade Item||AtlasRegionUpgradeItem|
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"
Using Quotation Marks for Classes
An example of why you should always use quotes for multi-word classes, consider the following:
I want to find all one-handed swords, thrusting and otherwise. So, I include the line
Show Class One Hand Swords
When an item drops, this first looks for any class which includes "One." This will mark: One Hand Swords, Thrusting One Hand Swords, One Hand Axes, One Hand Maces
If it doesn't match those, it'll attempt to match on "Hand." This will mark: Two Hand Swords, Two Hand Axes, Two Hand Maces
Failing both of those, it'll attempt to match on "Swords." This will not mark anything additional, because One Hand Swords, Thrusting One Hand Swords, and Two Hand Swords have already been included.
Now, whatever styling you include will be applied to all of the above classes of weapons. If you really only want One Hand Swords and Thrusting One Hand Swords, use
Show Class "One Hand Swords"
Font Size Adjustment is 18-45 (32 is normal)
Volume Adjustment is 0-300 (yet to find out normal value)
PlayAlertSound 7 59
Height and Width You can set the height and width for an item to be for your filter to apply. This would work well in the RGB linked items section where you might not want to be picking up RGB items such as 2hs that take up alot of space in your inventory.
Show Width 1 Height >2 SocketGroup RGB
This would show any rgb linked items that are 1 space wide and 3-4 high, eg. Daggers, Wands, Thrusting 1h Swords, 1h Swords. Note that the height condition is obsolete since all these items with the RGB link are by definition 3 or 4 squares high.
Show Width 2 Height <= 3 SocketGroup RGB
Would show Helmets, Boots, Gloves, Claws, Bows, Scepters, Body Armours and some 1h weapons. Here the second line is almost obsolete, as it only excludes Wands, Daggers and some 1h Swords.
Size conditions should be handled with care when dealing with many weapons, especially swords, and shields, as these occur in several differently sized types.
Use a color picker such as in MSPaint
Any RGBA combo can be used for the color combinations 0 0 0 0 to 255 255 255 255
The A is the Alpha Channel which controls opacity/transparency. For the Alpha Channel I would recommend not using lower than 150 as it gets too hard to see.
Colors used in game:
Premium stash tab colors:
Cutting your code down to size!
While most people are happy to put in the effort to make sure they haven't missed anything in their filter code, There are shortcuts to be taken without compromising your filter.
Cutting short your Class Types
For instance, while you might just want to see everything else that you haven't specifically listed you can simply put
At the end of your file, which works the same way as Hide would.
You could want to see everything except Claws
This is where you could type out the whole list as below
Option 1:This option here could take you quite a while to type out.
Show Class "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" "Sceptres"
But you do have options to make it easier!
Option 2: This option here cuts down on clutter within your code
Show Class Dagger Wand "One Hand" Bow Stave "Two Hand" Sceptre
Further, as the client doesn't need to have the entire group of items in quotation marks, "One Hand Swords" "Thrusting One Hand Swords" "One Hand Axes" "One Hand Maces" Would all be condensed down to "One Hand" or even "One" The same goes for Two Handed items "Two" - You could even show both of these, by quoting "Hand"
Show Class Dagger Wand "Hand" Bow Stave Sceptre
Option 3: You could take a much easier approach to hiding a single class of item.
Hide Class "Claws"
ItemLevel Code and Process
If you wanted to see rare items, rare items between ilvl60 and ilvl74 and then rare items with an itemlevel of 75+
# A Yellow border for Chaos recipe items Show ItemLevel >= 60 ItemLevel <= 74 Rarity Rare SetBorderColor 255 200 0 # A blue border for regal recipe items Show ItemLevel >= 75 Rarity Rare SetBorderColor 30 144 255 Show Rarity Rare
Even this code above has a line that is unnecessary. If you swap the first 2 blocks around, you can eliminate an entire line of code.
# A blue border for regal recipe items Show ItemLevel >= 75 Rarity Rare SetBorderColor 30 144 255 # A Yellow border for Chaos recipe items Show ItemLevel >= 60 ItemLevel <= 74 # this line is now obsolete; Rarity Rare SetBorderColor 255 200 0 # Show all other rare items Show Rarity Rare
By doing this it does not need to check that it is ilvl74 or below for the Chaos recipe items, as it already knows from the previous block to show ilvl75+ items with a blue border. It then reads that for items with an item level of 60+ to put a yellow border around them.
Saving your Filter
Once you have compiled you filter you then need to save it
This example is named Highlight.filter
- It needs to go into My Documents/My Games/Path of Exile folder
- production_Config.ini must be in this folder
- You must change the "Save as type" to All Files
- When you name the file, you must type .filter after your file name.
Once you have saved your filter:
- Open the Options Tab in game
- Select your filter from the "List of Item Filters" at the bottom of the UI Page.
My filter is not working, what do I do?
Make sure your filter file is located in the same folder as your production_Config.ini file. If it is, then you need to make sure you've actually created a 'filter' file, and not a 'text' file with '.filter' in the name. To check this, right-click the filter and click Properties, if the file type is 'text', you did not change the file extension correctly. If you can not see your file extension, Show/Hide File Extensions in Windows
Do you have non-ASCII characters in your PC username? https://www.pathofexile.com/forum/view-thread/1250862/page/5#p10557794
If you were to specify the following block It would show anything with Sai in the Items basetype, Such as Sai, Saint's Hauberk, Saintly Chainmail and Mosaic Kite Shield
Show BaseType Sai
You only wanted to see Sai so you need to narrow it down by adding a Class
Show Class Dagger BaseType Sai
This will now show Sai, but NOT Saint's Hauberk, Saintly Chainmail and Mosaic Kite Shield as it did before
Thanks to Antnee for the helpful Code Breakdown description!
Thanks to SayyadinaAtreides For the explanation on Using Quotation Marks for Classes.
I hope that helps!
- (12 May 2015). "Item Filter Suggestions; Identified items, corrupted items, and grid sizes.". Reddit. Retrieved 12 May 2015.
- (2 May 2015). "PSA: You can change the font size in item filters.". Reddit. Retrieved 2 May 2015.