A Linux compatible version of the great WFinfo.
Does support:
- Detecting relic reward screens
- Taking a screenshot the game
- Detecting items
- Displaying platinum values for each item
Doesn't support:
- Market integration
- Inventory tracking
- Interactive "snap-it" features
rust
rustc >= 1.64 & cargo. I recommend installation via rustup.libxrandr
for taking screenshotstesseract
for OCR processingcurl
,jq
for updating the databases
Run the update.sh
script to download the latest database files.
Find where your game puts it's EE.log
file. Mine is located at .local/share/Steam/steamapps/compatdata/230410/pfx/drive_c/users/steamuser/AppData/Local/Warframe/EE.log
.
Now run cargo run --release --bin wfinfo <path to your EE.log file>
This will compile (if necessary) and run the program, immediately taking a screenshot and analyzing it, see section Issues and Workarounds for why this is necessary.
Then it continuously scans the log file to look for the reward screen event, trying to detect items in the screenshot.
On my PC that would be: cargo run --release --bin wfinfo /mnt/980Pro/SteamLibrary/steamapps/compatdata/230410/pfx/drive_c/users/steamuser/AppData/Local/Warframe/EE.log
Once items are found, their platinum and ducat values are looked up in the database downloaded previously. Each item is printed to stdout along with it's platinum and ducat value in platinum (assuming 10:1 conversion). The highest value item is also indicated with a little arrow. When the highest value is determined by the ducat value and there is more than one item with the same ducat value, the platinum values are used as a tie breaker.
- Due to buffering when the game writes the
EE.log
file, it is possible that WFInfo doesn't pick up the reward screen event until the screen has disappeared. I haven't found a way of getting around the buffered writer. To work around this, you can simply restart the program when it doesn't pick up the reward screen within a few seconds. - The game data currently contains a couple relics that don't have any items in them, yet are listed in the database.
This results in error messages like
missing field 'rare1'
. To fix it, simply remove all relics that only contain avaulted
key but not any items fromfiltered_items.json
.