darvid / wraeblast

A library for interacting with Path of Exile game and economy data, and a unique loot filter generation framework.
MIT License
29 stars 6 forks source link
pathofexile

wraeblast

Discord

A library for interfacing with Path of Exile game and economy data, and a set of item filters geared towards trade league players.

3.16 Scourge League Update: The trade filter is expected to be updated within the first few days of the upcoming league. Wraeblast relies heavily on economy data, and some of the cluster jewel filtering has to map passive descriptions to seemingly GGG internal, undocumented cluster jewel passive names. This work can only be done once the data is available either through data-mining or post-launch. Do note, however, that a league start filter is in the works with limited TTS, and obviously sans economy data. See the 3.16 Scourge League project board to track progress.

Filter Generation

Wraeblast provides an experimental, feature-rich item filter development framework and toolkit, as well as a dogfooded trade league filter.

⚠️ DISCLAIMER: ⚠️ This is an experimental, proof-of-concept project, and the author is not responsible for any loss of currency or efficiency as a result of using this project's filters. Please use FilterBlade for regular gameplay unless you're brave enough to deal with a pre-alpha filter.

Framework Features

Filter Features

TLDR: think of quantiles like strictness, with an arguably better ranking of item and currency value in a trade league than hard-coded tiers.

Demos

Installation

Download the filter variant(s) of your choice from the releases, as well as the latest, compressed TTS filter sounds. Extract both the .filter and the FilterSounds directory to your Path of Exile directory.

Filter syncing is currently not supported, and would be largely useless regardless without a way to sync filter sound files.

Note that updating the filter also requires updating the TTS files, and you can simply choose to overwrite existing files every time, or delete the entire TTS folder before installing the latest version.

Rationale Development Manifesto

Architecture

  ┌────────────────────────┐
  │                        │
  │ .yaml.j2 filter source ├────┐
  │                        │    │  ┌─────────────────────┐  ┌──────────┐
  └────────────────────────┘    │  │                     │  │          │
                                ├──┤    rendered .yaml   ├──┤  final   │
┌─────────────────────────────┐ │  │ intermediate filter │  │ .filter  │
│                             │ │  │                     │  │          │
│ .config.json filter options ├─┘  └─────────────────────┘  └──────────┘
│                             │
└─────────────────────────────┘
  1. Economy insights data (currently just poe.ninja) is fetched and cached
  2. The .yaml.j2 is rendered with the economy data, colormaps, and filter option overrides from the .config.json file as context, if provided.
  3. The resulting intermediate .yaml is then parsed by the extended filter parser, and outputs a final .filter file, and any associated sounds.

Usage

See wraeblast --help and wraeblast render_filter --help for detailed command line usage.

❯ wraeblast render_filter \
    -l Scourge \
    -d output \
    -O filters/softcore.config.json \
    -o softcore.filter -i -vvv filters/softcore.yaml.j2

For detailed library installation instructions and usage, see the technical documentation.

Roadmap

[REDACTED]

Additional features and tools are planned and will be incorporated into this project in the near future.