This is a pretty huge one for me folks, after a few months of work I finally managed to get PoeFilterX to the point of where I wanted it, enabling the absolute most critical of features I have been hoping to get working since I first started this project.
I am pleased to announce the release of V3.19 of PoeFilterX!
(Technically its 3.19.3, because hey a couple minor bugfixes were part of the release cycle, sue me!)
You can check the whole project out here, to start: https://github.com/SteffenBlake/PoeFilterX
But what I would like to start with is answering a couple basic questions folks often ask when I put out a release
Whats this?
PoeFilterX is a command line tool you use to compile a "FilterX" project (consisting of many files) into a Path of Exile .filter file.
You can check out the github link above for all the details on how to do that, and all the wild features poefilterx supports!
Is this meant to replace FilterBlade?
God no, it's an entirely different sort of target demographic and FilterBlade's work is amazing!
At it's core, PoeFilterX is a tool meant for folks who want really granular and fine control of their filters, and who much prefer working with the command line and coding their stuff rather than fiddling with a web UI. So, primarily Programmers are the types of folk who are gonna be excited about this tool.
Don't get me wrong, FilterBlade as a website is extremely slick, its gorgeous, and it's powerful. But there's just inherent limitations to a web ui. Browsers are slow, and clunky, and UIs simply just can't handle every possible combination of peoples wants and needs.
So for the types of crazy people (like me) who want something way faster, slicker, and granular that lets them dig super deep into custom functionality, this is where PoeFilterX really shines.
Is this a Filter? I dont get it
This is common, this is a tool for making filters, not a filter itself, HOWEVER, I also have put up my own personal loot filter made with PoeFilterX here! It's fairly unrefined and still needs polishing but it serves as a really good demo / template for showing off the capability of PoeFilterX.
https://github.com/SteffenBlake/pixxel-filter
New Features
So lets dig into the big new features I am extremely excited to share with everyone!
Easier installation via NPM
No more need for awkward installer programs and whatnot, PoeFilterX now has an NPM wrapper bootstrapped up that is super easy to use!
If you have NPM installed right now, installing poefilterx is now as easy as:
npm install -g git+https://github.com/SteffenBlake/PoeFilterX-NPM
.json variable injection
So PoeFilterX already supported from v1 onwards variable injection, however you could only inject via Environment Variables and Command Line arguments. I thought this was good enough but, turns out, there's actually some serious issues you run into if you have really big environment variables set in windows.
I won't go into details but... lets just say really big enviro variables are not a great option for our use case here.
Enter, json variable injection!
You can now add and reference .json
files in your projects via the using
statement, the same way you can using
.filterx
files and .fss
files
The .json
files do have to follow the very specific template of strictly being a dictionary of arrays.
For more info on Json Variable Injection, check out the wiki section here: https://github.com/SteffenBlake/PoeFilterX/wiki/Code-Guide#usings-1
Package Management via NPM!
This is the next big one, you can now reference poefilterx files (.fss
, .filterx
, and .json
) from an NPM package installed to your project!
Doing so is super easy, you just use the @
symbol which effectively is a shortcut to <project-root>/node_modules/
This is without a doubt my feature I am most excited about, as it has huge implications for the community. Individuals can now create modular poefilterx tools that folks can install into their projects and consume from.
Here's some great examples!
-
A creator's pack of style sheets, allowing you to install their pre-fab style sheets to use in your project
-
"Packs" of shorthand/shortcut variables in
.json
files that are handy for referencing. Tired of having to manually type out the same base types for items in multiple filter blocks? This can fix that! -
And of course, any other handy NPM middleware tooling you could want to use. Gulp, API parsing, data loading to generate json files, etc
And on that note I created this super handy NPM package you can install and use, right now, for loading data from poe.ninja and parsing it out into a poefilterx compatible .json
file!
https://github.com/SteffenBlake/pixxel-ninja-parser
Easy project bootstrapping!
Setting up your project is pretty easy now with the new init
command, simply just open up the terminal to where you wanna make a new project and just execute poefilterx init
and the wizard will ask for your project name and will initialize a basic template project for you lickity split!
Thanks for reading!
If you wanna try all this out, the wiki has a tonne of useful info right here!
https://github.com/SteffenBlake/PoeFilterX/wiki
We have a Discord!
You can also join the PoeFilterX discord here, if you wanna hit me up with any specific questions or wanna talk about development
https://discord.com/invite/fmHqU3yza3
Found a bug?
You can report any bugs you find regarding PoeFilterX here:
Sounds interesting.
Just throwing an idea out there : having the capability to fetch your current stash, and based on that, being able to make update to the filter. For chaos recipe, for example. Have enough belts but not enough rings ? Remove belts, highlight rings. Something like that
Of course, there would be some limitation, but I think that would be cool ngl