Item Filter Syntax

FilterBlast has own item filter parser, which fully supports PoE item filter syntax and commnity's extra syntax, but also has own extended syntax, which allows to write an item filter with less code and more functionality. Here you can learn more about all those syntaxes.

Path of Exile Item Filter Syntax

If you're new to item filter code you can learn more about it on Official Wiki's item filter page.

Later here will be similar detailed item filter information too.

PoE Community's Extra Syntax

After item filters were introduced in the game some members of community came up with ideas how to organize and customize filters. Those ideas found a good use and also was supported by Filtration (popular filter editing tool).


Syntax: # Section: Section Name

Sections are made to improve code organization and navigation. Blocks are grouped in sections by some common sense.

Usually, at the start of the filter code athors place Section list, which allows to use sections as bookmarks by copying section name and searching for it.

In Filtration sections are represented as special blocks in editor, but there is also Section Browser for quick navigation.

SmartBlocks (Block Groups)

Syntax: Show/Hide # Root category - sub-category 1 - sub-category 2 - etc

SmartBlocks is a powerful feature, which represents blocks in hierarchical view and allow to easily toggle visibility of all blocks in selected category at once (also toggling all nested blocks).

Nested blocks are defined by " - " after parent block category's name.

* SmartBlocks can also be marked as Advanced by adding "~" prefix to the block category's name. Such SmartBlocks in most cases should not be modified by players, but provide additional customization for Advanced users.

FilterBlast highlights Advanced SmartBlocks and also shows notification about their use.

Filtration supports Advanced Blocks too (more details here)

* In FilterBlast there is extra option for SmartBlocks, which changes how desired blocks toggle:

Syntax: Show # Root category - sub-category 1 - sub-category 2 - etc | mode

Possible modes:

Hide - Switches block's state to "Hide". This is default behavior, if mode is not defined.

Remove - Completely removes block from the filter, which can be better then hiding in specific cases

Comment - in the game has same effect as Remove, but instead of enterily removing the block from the code - it will become commented (with Filtration's "#Disabled block start/end" wrap).

Disable, Disabled - aliases of Comment for different tastes, since Filtration names commented blocks as "Disabled".

Disabled Blocks

#Disabled Block Start
# Commented Show/Hide Block
#Disabled Block End

This is Filtration specific feature, but actually is very good for standardized use.

From Filtration's wiki: Disabled blocks are blocks that are saved in a filter file but won't be used in game (due to being commented out). Filtration implements Disabled Blocks by wrapping them in two special lines... These blocks can then be enabled/disabled from within Filtration by clicking the relevant buttons on the ribbon menu.

FilterBlast fully supports Disabled Blocks and uses this syntax when passing commented blocks to resulting filter.

SmartColors (Color Theme Tags)

Syntax: SetTextColor/SetBackgroundColor/SetBorderColor value # Color Tag Name

SmartColors is a powerful feature, which allows to quickly change specific color in the filter to desired one, by searching and replacing color value with specific color tag.

Filtration allows to replace those by clicking "Edit Master Theme".

FilterBlast supports SmartColors syntax, but Visual Color Theme Editor will be added in future updates.

FilterBlast Extended Syntax

FilterBlast is designed not only to provide many new possibilities to item filters, but also to be compatible with ingame parser.

There is two ways how you can use FilterBlast:

  1. Write less code with maximum flexibility and readability using Extended Syntax in full power.
  2. Write filter code with regular syntax, but add Extended Syntax with Compatibility prefixes.

In first case you'll be able to create your filter very effectively, but before use in the game you need to pass it through FilterBlast. However this is fairly easy: paste your code into editor in Advanced mode and click Reparse or Download button and you'll get parsed filter, which will perfectly work in Path of Exile. You can also put parsed file at your github/pastebin/etc to be available for download outside FilterBlast.

In second case you'll write filter code as usual, adding desired customization syntax as comments with special prefixes. This way the game will work fine even with unparsed filter code. And FilterBlast will parse it finely too, showing all custom options you specified in User Interface.

Note: If you want your filter to be integrated into the platform - just submit it at feedback page and, after its integration, every user will be able to download it in few clicks.

Compatibility prefixes

Those commented prefixes are detected by FilterBlast and all commands and values in them are parsed like they are not commented, so you can use multiple $variables or even mix them with any predefined values:

  • # //! - Execute a command. Works only on a new line.
    Example: # //! SetOption $Weapon_classes checkbox ["Claws"] ["Staves"] ["Swords"] ["Axes"] ["Maces"] ["Bows"] ["Daggers"] ["Wands"] ["Sceptres"]
  • # //$ - Replace values of a command defined before the comment. Should be on a new line in most cases, except PlayAlertSound and Set[Border/Text/Background]Color.
    Example: # //$ "Fishing Rods" $Weapon_classes

There is also special comment prefix, useful to make comments related to Extended syntax commands:

  • # // - special comment, which will not pass to resulting filter.

Variables and Options

SetVar $Variable_Name Value - allows you to store speicific values in variable and put variable in filter code instead of values.

$Variable_Name can contain latin letters, numbers, _ and -.

Value can be any word, "quoted long name", number, operator or modifier.

Also you can specify mulptiple Values separated by space.

SetOption $Variable_Name Type Default_Value Optional_Values # Description - allows you to set variable which will show in FilterBlast UI as customizable option, which user-selected value will be used when generating resulting filter.

$Variable_Name can contain latin letters, numbers, _ and -.

Type - possible values: info, link, input, textarea, switch, checkbox, list, dropdown

Default_Value, Optional_Values can be any word, "quoted long name", number, operator, modifier or even another option or variable, so nesting is supported!
info, link options doesn't have Default_Value parameter.

For link option use pairs of values: [name] [link]. Each pair of values of the option will be shown as link in one line, with spacing.

For info option each value is: [text paragraph]

SetOption $EmptyLine - special type of option, which adds empty line to UI, so if you have many options - it may help to improve appearance.

$EmptyLine - this is constant and should not be changed, otherwise it will not work.

SetSound $Variable_Name id volume # description - special type of variable-option, which will be customizable in upcoming Sound Scheme Editor.

$Variable_Name can contain latin letters, numbers, _ and -.

id - id of the in-game sound, possible values: 1-9

volume - possible values: 0-300 (optional parameter)

SetConfig $Parameter Value - allows you to set some FilterBlast's parameters. Available parameters are listed below:

$SmartBlocks_Position - changes position of SmartBlock in Customization UI. Possible values: top, bottom.

If set to top - Options with Type = info, link still will be displayed above SmartBlocks, however other options will be below.

Font Size Range and Values modification

SetGlobalFontSizeRange min max mode - globally sets font size range, affecting all SetFontSize and ModFontSize commands.

Mode - optional parameter, defines behavior: "limit" cuts off exceeding values, "resize" compresses value from default to a new range. If not specified - defaults to "limit".

SetFontSizeRange min max - locally sets font size range for current block and all its branches. Can not be used inside Breaches Branches.

ModFontSize Modifier Value - modifies font size of current block by % percentage (withing size range) or +/- from current value (if not defined - from middle value of size range)

Modifier - possible values: +, -, %

Value - number. If modifier is % - value range is 0 - 100.

Tags for Blocks

SetTag @Tag_Name - block command (like Show/Hide), stores all defined commands and can be applied later in other blocks.

@Tag_Name can contain latin letters, numbers, _ and -.

Tags @Tag_Names - applies listed tags to current block (tags apply by listed order, adding condition-commands and replacing previous visualisation commands).

Blocks and Branches

Remove - used instead Show/Hide block entirely removes block from resulting filter. Useful with options.

Comment - used instead Show/Hide block outputs fully commented Show block. Useful with options. Also has aliases: Disable and Disabled.

Branch Visibility - used inside regular Show/Hide block - allows you to simplify code, combining similar block into one and separating differences into branches. Each Branch inherits all commands from parent block and combines them with its own commands. If block has branches - it's by itself not passed to resulting filter, use Branch without extra commands to output it.

Visibility - optional parameter, possible values: Inherit, Show, Hide, Comment, Remove. If Type is not specified, it defaulted to Inherit parent's visibility.

SwitchTo Value - allows to switch visibility of a block (especially useful in SetTag).

Value - optional parameter, possible values: Show, Hide, Comment, Remove. Value can be empty, so this allows more flexibility with Options.


If you want to see some examples for better understanding how Extended Syntax works - you're welcome to check out various demos in Advanced Mode. If you want to see example of fully functional filter based on Extended Syntax - see source code of BEASTfilter.