An open API service indexing awesome lists of open source software.

https://github.com/darvid/stashvision

⚔️ A private stash indexing tool and in-game item highlighting overlay for Path of Exile. 🗡️🧰
https://github.com/darvid/stashvision

pathofexile

Last synced: 29 days ago
JSON representation

⚔️ A private stash indexing tool and in-game item highlighting overlay for Path of Exile. 🗡️🧰

Awesome Lists containing this project

README

          

# stashvision

![unsplash.com/@romankraft](splash.jpg)

Stashvision is a **proof-of-concept** private stash indexing tool and
overlay for [Path of Exile][1].

## Rationale

### Better search



Naive stash searching is something many players have complained about
over the years, with few solutions other than just dealing with it until
GGG develops more powerful searching functionality.

A number of open source tools exist for searching the stash locally,
outside of the game, but it's just as painful having to lookup the item
position in-game.

### Recipe discovery



Chaos recipes are great for passively making currency, but a time
investment trade-off must be made; either play stash tab tetris prior
to mapping in an effort to "optimize" rapid stashing of items
post-grind, or spend a considerable amount of time (only after your
tab(s) are full, granted) searching for the right item classes for each
set.

Maybe GGG will implement some form of a premium recipe fulfilling tab
in the distant dystopian future, but until then, the only way to truly
optimize vendor recipe discovery (WITHOUT buying 10 quad tabs) is to
augment your brain with an AI implant, improving chaos recipe item
recognition by a factor of 10. As an added bonus, the AI will be able
to discern what killed you in Blight encounters when your screen looks
like a bowl of spaghetti.

Or just use **Stashvision**.

---

**Stashvision** provides a stash tab item indexing framework and CLI
utility for indexing, querying, and recipe scanning your private stash
tabs, as well as an AutoHotkey-based overlay that highlights the items
at the press of a hotkey.

**No auto-clicking is involved, so Stashvision should be 100% ToS
compliant.**

## Features

* Private stash tab indexing and full-text search (powered by [Bleve][3]).
* Customizable stash tab item highlighting for search results and recipes.
* Portable as heck, the user is not expected to install any developer
frameworks or runtimes other than [AutoHotkey][4], which many PoE players
have installed regardless for [PoE-TradeMacro][5].
* Non-intrusive to the game client. Completely hotkey-driven, and
absolutely no auto-clicking.

## Caveats

* Avoid manipulating your stash tabs (or at least the one being scanned)
excessively, as updates are nowhere close to real-time. For chaos
recipes, the ideal workflow would be to start with a full quad tab,
highlight the recipe, move items from the stash to your inventory,
vendor, cycle to the next set of items, rinse and repeat, all without
moving any items around, or adding new ones to the stash tab.
* The overlay only works if your game is running in windowed borderless
mode. The language will also likely need to be set to English, much
like PoE-TradeMacro and other tools that consume PoE's stash API.

## Screenshots

![Search capability](screenshot-search-1.png)
![Chaos recipe highlighting](screenshot-chaosrecipe-1.png)

## Quickstart

1. Download the **current version** of [AutoHotkey][4] (not V2).
2. Download and extract the [latest release][6] of **Stashvision**.
3. Copy `stashvision.ini.example` to `stashvision.ini`, and fill in your
POESESSID, account name, and any other desired configuration.
3. Run `stashvision.ahk`.

**Note:** Ensure your game client is running in *borderless mode*, and
the language is set to *English*.

## Default Hotkeys

**shift + alt + c**:
Highlight chaos recipe in configured stash tab. Subsequent triggers
will cycle through multiple recipe item sets. After all sets have
been cycled through, a new index scan will occur.

**shift + alt + s**:
Search and highlight items in configured stash tab.

**escape**:
Close the overlay or search window.

## Configuration (``stashvision.ini``)

#### Account settings

```ini
[General]
SessionId = xxx
AccountName = xxx
```

**SessionId** is your **POESESSID**.

### Stash settings

```ini
[Stash]
DumpTabIndex = 0
DumpTabQuad = true
```

Currently, Stashvision only supports searching and highlighting one tab
at a time.

### Display

```ini
[Display]
DefaultHighlightBorder = 0xff1aff1a
```

Expected color code format is AARRGGBB.

### Hotkeys

```ini
[Bindings]
ChaosRecipe = +!c
Search = +!s
```

See AutoHotkey's documentation on [hotkey modifier symbols][7] for more
information.

## Indexer application

**Stashvision** provides a Golang-based indexer application that can be
invoked separately from the AutoHotkey script, to manually manage a
local index, search for items, or scan a stash index for sets of items
that meet vendor recipe criteria.

```
$ ./stashvision.exe
stashvision - Index and analyze your Path of Exile stash.

commands:
q, query query stash items index
r, recipe evaluate recipes against index
s, server run stash indexing server

usage:
stashvision query [--json] -s=
stashvision server -s= -a=

arguments:
--help show this screen
--version show version

```

## Search

See [Bleve's query string syntax][3] for specifics about query string
format. Features at a glance include:

* Boolean queries (prefix items with `+` or `-`)
* Phrase queries (quote phrases with double quotes)
* Numeric queries (e.g. `field:>8`, `field:<=9`, or `field:10`)

In addition to robust searching capability, **Stashvision** adds a
number of fields to item metadata that are not easily searchable
in-game.

**Note:** Due to shortcomings of the indexing library used, Stashvision
stores boolean fields as integers. So a query string for
`identified:true` should actually be `identified:1`.

### Fields

```
class
corrupted
frameType
h
icon
id
identified
ilvl
inventoryId
league
name
numLinks
numSockets
properties
tabIndex
typeLine
verified
w
x
y
```

### Convenience fields

**class**:
The class name of an item, e.g. *Gloves*, *Body Armour*, or *Boots*.

**numSockets**:
The total number of sockets on an item.

**numLinks**:
The name is a bit of a misnomer, as this is really just the *maximum
number of links across all socket groups*.

## Roadmap

In no particular order...

* Settings GUI
* Autocomplete search
* OAuth
* Multiple stash tab support
* Detect in-game stash tab state non-intrusively
* More vendor recipe support
* Automatically find item sets (i.e. ring + ring + amulet) that fulfill
missing resistance values
* Total potential chaos recipe reward displayed as another overlay

[1]: http://pathofexile.com/
[2]: https://pathofexile.gamepedia.com/Vendor_recipe_system#Full_Rare_Sets
[3]: https://blevesearch.com/docs/Query-String-Query/
[4]: https://www.autohotkey.com/
[5]: https://poe-trademacro.github.io
[6]: https://github.com/darvid/stashvision/releases/latest
[7]: https://www.autohotkey.com/docs/Hotkeys.htm#Symbols