#tooldev-general

1 messages · Page 29 of 1

lusty musk
#

That would be the simplest solution, to do a single batch-analysis for the hour. But no, the quantile estimation algorithms don't need to store the full dataset.

#

That said, even if we assume 500k concurrent players each doing 100 trades in an hour, that's still only 50 million datapoints. If a ratio is stored as two 32-bit integers that's < 0.5 GB worth of data, so storing a full dataset for the hour seems feasible to me.

strong patio
#

Very difficult to know the limitations that they are playing with. I would be surprised if it was as simple as a data storage concern.

lusty musk
#

I'd would bet that for simplicity the currency exchange is centralized with a single server handling the trading book and actual trade matching, with trade offers being presented from other servers through a database system.

strong patio
#

🤷‍♂️🤷‍♂️

#

I like to assume there is a reason for what is not done as much as there is for what is done.

#

I guess you’re right in that your calculation would provide the average trade ratio. But it ignores trade size completely. I would prefer the current calculations for creating an average sale price. Although yes I guess that wasn’t the question.

#

Or at least what I said didn’t line up perfectly (:

lusty musk
#

Your definition is arguably more in line with the market.

#

The reason I focused on ratios though is because it's relatively simple to store/process, and I'm really mostly interested in the distribution of trades, rather than a single specific statistic.

strong patio
#

I think every time they add to their api with more economy data a 1 year timer is set. Extended by 1 month for any comment on this channel related to more economy data. Should keep our voices down 🤐. Would hate to be heard mentioning an auction house api. (Whatever that would even mean lol)

compact isle
#

they don't move, so account rename is likely yeah

#

I understand it can be solved with engineering effort, I'm just the API guy so your request is out of my wheelhouse

lusty musk
#

alright 🙂

dreamy valley
#

Anyone know what the id of Flesh of Xesht is on the cxapi?
I'm looking through the entire list and either I am blind, it has an obscure name/id, or it's not reported by cxapi

dreamy valley
#

Oh! thats what that means. Thanks!

worthy cape
#

I'm assuming that's what it means, like what you'd use when writing pricing notes in the past for items.

dreamy valley
#

Oh even better

charred lake
hexed mesa
#

validfor == 1?

charred lake
# hexed mesa validfor == 1?

I mean when generating the schema rather than consuming it. There are several schemas with validFor == 3 (common) but which don't exist in PoE 2

hexed mesa
#

well, that doesnt sound right (to me anyway) so you probably should report it

#

do they not exist as trying to read them will fail or do they not exist as they are empty/filled with irrelevant stuff

charred lake
#

They don't exist in the game files at all. PoE 2 started as a fork of PoE 1 so most of the files were common, but as time goes on there are files in PoE1 that don't exist for PoE2 and vice versa

#

(eg. data/atlasregions.datc64 in PoE1 but not PoE 2)

worthy cape
#

Heads up for peeps still on Bitbucket:

frank drift
#

haven't thought about bitbucket in forever, used it back when it had a free tier and github didn't

worthy cape
#

I really don't like their wanton destruction of stable repositories.

fresh onyx
#

rather I am still slopping this together, just saw the current landscape was mainly MCP tools and you're not catching me dead using that garbage anywhere ever for any reason.

charred lake
tranquil token
#

@velvet fog Why did the icons for 3.26 and 3.27 disappear?

velvet fog
#

didn't enter the core

tranquil token
# velvet fog didn't enter the core

Thank you for your response. In that case, what do you think about gathering the icons of leagues that haven’t gone core into a separate section? I used to click on icons from leagues like Ancestor or Scourge to check what items were added in those leagues.

carmine merlin
#

@civic crane I have a big list of local schema changes that I've made over the past year but other than copy pasting the schema for each dat, is there a way to export them all?
I've wanted to contribute changes to the dat repo but I always find it hard to group all my changes after fixing a whole bunch of dats

civic crane
#

I copy by hand too 🤷‍♂️ then check diff because poe-dat-viewer doesnt preserve all GQL metadata.
I don't remember but someone from pob team had tooling and updated a lot of tables before.

whole ruin
carmine merlin
whole ruin
#

This seems to not coincide with my hope of like this weekend XD But thanks, looking forward to it 🙂

carmine merlin
whole ruin
#

Yea I was gonna fetch the fork I just wanted to... be lazy

charred lake
carmine merlin
#

I'm currently working on updating the existing schema for poe 1 and then eventually all of poe 2
Want to have all the tables mapped so can see the diff between updates to identify unknown columns or things missed from patch notes

modest path
# carmine merlin <@295216259795124225> I have a big list of local schema changes that I've made o...

I have a slop coded repo in rust around here somewhere that can roundtrip the gql files into an ast, allow programmatic manipulation, and write them back out, preserving comments. I was going to make an add/rename/filter sort of toolkit with it but got distracted by other games. Could probably be kicked into a json->gql exporter/updater or a gql differ. Lmk if that sounds useful (it is definitely not a finished product or anything)

modest path
#

@carmine merlin what format is your updated schema in?

modest path
#

Knowing other people's workflows might help direct/motivate me in the event that I burn out on noita related stuff

carmine merlin
# modest path I have a slop coded repo in rust around here somewhere that can roundtrip the gq...

I've just been looking at adding / fixing it in the poe dat schema repo as it's used for poe dat viewer
My goal is to have a historical repo of all the dat + plain english files so that when GGG releases an update and has patch notes I can then map the patch notes to unknown dat columns or just better understand animation / other file types
End goal would be to have it automated by auto downloading new updates as they are pushed to the cdn and having a github script that makes a PR with the updated files and the matching patch notes for that update
Only thing I'd have to do then is update the schema on changes and everything else is hands off

livid widget
#

How do overlay get item data from the client, i was wondering if its possible to get trade data realmtime so if ur trading with someone example 100d worth scarabs it goes logging if everything was sendrecieved etc

velvet fog
#

CTRL+ALT+C

charred lake
#

Ello, I've spent the past couple weeks bashing my head against the TDT file format. I've made some progress but have hit a wall. I've drawn from some prior work here:
https://gitlab.com/zao/poe-cpp/-/blob/master/libpoe/poe/format/tdt.cpp?ref_type=heads
https://github.com/repoe-fork/webapp/blob/develop/src/lib/tdt.ts

My latest notes are here:
https://github.com/adamthedash/poe_data_tools/blob/feature/tdt/images/tdt_spec.png

The main unknowns are the "subtiles" section - the structure appears to be controlled by two bitflags at the start of each subtile, but I've not been able to fully decipher it.
There's also a tail section which is controlled by some bitflags aswell. I've got most of that figured out but there's still some cases where my assumptions don't line up.

If anyone has any experience with TDT's (or TGT I think are similar), or if there's any other codebases that work with them, would love your input.

Or if anyone wants to join me in figuring the spec out, I've created a hex viewer (https://github.com/adamthedash/hex_viewer) and parser prototyping library (https://github.com/adamthedash/annotated_parser) which should make the trial and error easier.

swift beacon
#

After going through pretty much all of the formats, I'd say TDTs were the hardest to figure out. If you search the history of this channel there are some discussions of it that should help you out.

charred lake
livid widget
#

I just got this response from GGG do i need to provide a local redirect uri in order to get acces to oauth "We do require a redirect URI for the authorization code grant. You can get started with your project using just the client credentials grant. The account scopes will be available but limited to your own account. "

kind dirge
carmine solstice
#

I am trying to get access to the audio in poe1. I want to use it for my rpg campaign. But it seems all the existing guides are out of date? Anyone who has exported audio lately who can assist?

frank drift
carmine solstice
#

Well, specifically, I want the ambient sounds, the music, and the background screams in Piety's temple.

#

the music is the least important.

frank drift
#

poke around in both and you should be able to find everything

carmine solstice
#

I seem to have only .bin files.

charred lake
#

(I think ogg is a standard format?)

carmine solstice
#

Thanks. I have this program. When I input the command you provided, it tells me that it could not create folder. I am running with admin rights.

main mulch
#

Hello, newbie here.
I'm trying to get access to the API to build a tool for damage calculation. I applied to GGG a few days ago and got a swift response (same day) about needing to provide a different redirect URI, which I did in the reply, but since then it's been total silence. I'm curious about how long on average it takes to get access and whether I failed in some way already. I'm a little lost here…
Best regards!

charred lake
# carmine solstice Thanks. I have this program. When I input the command you provided, it tells me ...

Oh weird, unfortunately I don't have a Windows PC so testing on that has been limited. Couple Qs:
Are you running the program from an external drive / outputting to one?
Can you try one of these:

  1. Specifying a local folder to use as the download cache: poe_data_tools --patch 1 --cache_dir "./cache" list
  2. (If you have poe installed with steam) telling it to use your install folder: poe_data_tools --patch 1 --steam "C:\Program Files (x86)\Steam\steamapps\common\Path of Exile" list (path might be different if you don't have poe installed in the default place)
#

Googling suggests it might also be an issue with how you provided the <output_folder> path, if you could share the full command you used

carmine solstice
#

Thank you for all your help! It was definitely user error. I got it working.

charred lake
ebon kernel
ornate bramble
#

I waited ~2 months, a same-day response about an api request is relatively surprising. I guess you just sent the email the day they cleaned the mailbox and were lucky :P

hexed mesa
#

i wouldnt be surprised if he just skims the email, sends the same template message (most people probably are missing the redirect url thing/account client thing) and then puts it in low prio pile

#

with poe2 0.5 (probably) in the next month or so i would assume they are rather busy

worthy cape
modest path
#

There any known place where the dat file names exist with capitalization still?

worthy cape
#

It's all sPoNgEbOBcAsE.

modest path
#

Oh hmm there are Loader:: class strings in the binary that are still the pascal case version

#

wait is running strings to avoid manually identifying words and acronyms a tos violation lol

modest path
#

Just kidding those don't even cover all of them

main mulch
thorn dirge
#

where are the poe api's documented

strong patio
strong patio
#

Friday was a few days ago. Might hear from them today hopefully

swift beacon
#

Took a small detour to add a function that draws the object hitboxes. Apparently one of the safest places to get hit is the head:

#

Here's what the hitbox looked like in 2.5:

kind dirge
swift beacon
#

Just a little project I've been working on for 10-ish years. Back in the 2.x era it was just a model viewer for characters and monsters and their animations, but over time it evolved into a program that can read a GGPK/Steam directory and pretty much every file type.

#

One of my latest projects has been working on a terrain generator where it can read a graph/area layout and build a full zone. The main limitation is that I made my model viewer in a browser for convenience, and areas larger than ~2,000 terrain tiles crash the browser.

#

I've also been working on a particle effects engine for things like fireballs, smoke, gore effects, etc.

#

Just when I start to think I've done everything and there's nothing left, I find about 30 more things to investigate and turn into features. Or one of the devs accidentally includes a new file type (such as an Excel file or Maya file or Windows shortcut) so of course I have to add support to read and view it.

carmine merlin
# modest path <@211489032058830858> what format is your updated schema in?

Have finished updating all the broken / missing column tables now
Figured out all the table references in the league files and just have the _Core.gql one left with 270 rid entries left to check. Will try and get through all those tomorrow
https://github.com/LocalIdentity/dat-schema/commit/cc17a3d701efdfc090a3bc013dc59594d0dbedbd
@civic crane hope I've handled these correctly as I'm not 100% familiar with your schema format

modest path
# carmine merlin Have finished updating all the broken / missing column tables now Figured out al...

I've been messing around with that dat-schema slop that I mentioned - I don't think it's useful quite yet but I'm pretty sure it will be. ``` ✘  ~/repos/dat-schema-rs   main ±  cargo run --release --bin dat-schema-tool --
Finished release profile [optimized] target(s) in 0.06s
Running target/release/dat-schema-tool
Utility knife for dat-schema manipulation

Usage: dat-schema-tool [OPTIONS] --schema-dir <SCHEMA_DIR> <COMMAND>

Commands:
layout Show byte layout of a type (field index, name, type, offset, width)
get Print a type/enum definition
list List all types and enums
find-refs Find all types that reference a given type
set Set a field at a byte offset or field index
remove Remove fields by converting them to unnamed padding
override Duplicate a root type into poe2/ for override editing
create Create a new type definition
create-enum Create a new enum definition
delete Delete a type/enum from the schema
rename-type Rename a type/enum across the entire schema
validate Validate the schema
fix Fix schema issues automatically
help Print this message or the help of the given subcommand(s)

Options:
-d, --schema-dir <SCHEMA_DIR> Path to the schema directory (e.g., dat-schema/dat-schema) [env: DAT_SCHEMA_DIR=]
--data-dir <DATA_DIR> Path to data directory containing info.1.min.json, info.2.min.json, poe1-valid-tables.txt, poe2-valid-tables.txt [env: DAT_DATA_DIR=]
-h, --help Print help


Probably the most notable feature currently is the validate and fix option(s) which try to do automatic validation and fixing of $issues, where $issues include things like replacing invalid types with padding, padding schemas that aren't long enough for the table, truncating schemas that are too long, and splitting poe1/2 in the event it's fixing something where it makes sense:

✘  ~/repos/dat-schema-rs   main ±  cargo run --release --bin dat-schema-tool -- fix --help
Finished release profile [optimized] target(s) in 0.02s
Running target/release/dat-schema-tool fix --help
Fix schema issues automatically

Usage: dat-schema-tool --schema-dir <SCHEMA_DIR> fix [OPTIONS] [COMMAND]

Commands:
pad-to-width Add padding to match actual dat row width
replace-invalid Replace impossible fields with padding
trim-overflow Remove fields that extend beyond dat row width
prune-missing Remove schema types that have no matching dat file
create-missing Create stub types for dat files with no schema type
help Print this message or the help of the given subcommand(s)

Options:
--filter <FILTER> Only fix types matching this substring
-h, --help Print help

#

It's got a working concept of what's provably not possible at any given offset - I'm hoping to flush that out and then add a layer that is "things that are probably right" which obviously does not have the same confidence

#

Once I get the type validation finished and tool up the other code that's generating that running so the definitions are available online, it'll be usable as a CI tool if nothing else

modest path
#

@carmine merlin This is what the current version says about your branch: ERROR@1632:1633 "expected a StringValue, Name or OperationDefinition" } ERROR: Failed to parse 'ScoutingReports': Parse errors: ERROR@13:14 "expected a StringValue, Name or OperationDefinition" } ERROR: MicrotransactionAppliedInventoryItemArtVariations.Id (index 0): references unknown type 'mtxtypegamespecific' ERROR: AncestralTrialTribes: duplicate field name 'NPC' at indices 1 and 19 ERROR: [poe1] GoldPriceFromItemLevel: schema row width 28 bytes, dat file row width 12 bytes (excess 16 bytes) ERROR: [poe1] MicrotransactionJewelVariations._ (index 5): type '[_]' is impossible at offset 40 (validated against: array) ERROR: [poe1] HeistChestRewardTypes.RewardRoomName (index 4): type 'string' is impossible at offset 32 (validated against: string, file, directory, color)

charred lake
charred lake
modest path
#

Roundtrippable ast (with comments) editing/validation basically

charred lake
#

Could be quite useful for this https://github.com/poe-tool-dev/dat-schema/issues/213 that myself and @civic crane were discussing. He's looking to move to two independent schemas if we want to support poe1-only tables. So being able to load-split-serialise back to gql would be a big help for crafting that PR

GitHub

At the moment we can: Add a table at dat-schema/.gql -> Common schema Add a table at dat-schema/.gql and at dat-schema/poe2/.gql -> PoE1 and PoE2 schemas Add a table at dat-schema/poe2/.g...

modest path
#

Yeah I can trivially split them either entirely or piecemeal, while also ensuring that it's reliably 1 definition per file with matching names

#

With my modification and fix options, it currently edits poe1 in place, and edits poe2 in place or as a new file (for either overriding or poe2 only stuff)

#

it'd be way easier if it were entirely split though

hazy wigeon
#

paging all tool maintainers who use npm:
https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan

Prolly good to check your tool right now if you pushed any releases in the past week

Hijacked maintainer account used to publish poisoned axios releases including 1.14.1 and 0.30.4. The attacker injected a hidden dependency that drops a cross platform RAT. We are actively investigating and will update this post with a full technical analysis.

cyan void
#

how are positions on large cluster jewels for the noteables calculated?
iirc its based on some id?

worthy cape
#

The passives have an implicit order in some table somewhere, that determines in which order they're laid out around the jewel.

cyan void
#

yeah i read somewhere (i think i am not sure) thats its based on the internal id, lowest goes 1 highest goes 3

worthy cape
#

Not sure if anyone has cooked up a richer resource now that you can transform jewel enchantments and craft weirder jewels.

cyan void
#

i just cant find anything on this but this is how i remember it

#

is there any list where i could find id's for every noteable passive

#

then i can verify if that logic checks out

worthy cape
#

Ah yeah, that's what "refracting fog" meant, didn't remember what the currency was called 😄

cyan void
#

yeah im working on something, just need to verify that the base logic is correct

#

surely theres a json somewhere with all the notable passives

worthy cape
cyan void
#

The numbers associated with each notable that are used to determine the position of them on the cluster jewel are IDs of the Stat used on the notable.

#

oh yeah i think this is where i read it

cyan void
#

does anyone host images for passives aswell here by any chance

charred lake
#

RePoE shoud have em

cyan void
#

thank you @worthy cape @carmine merlin and @charred lake ❤️

charred lake
#

tft server imploding it seems, anyone back up the tool dev channel history? 😅

swift beacon
#

Particle emitters progress:

gilded tree
#

Soon we have a hideout editor

topaz tartan
#

Chaos Ledger — Free Mirage Economy Tracker
Hey exiles, I built a free economy tracker for Mirage league and wanted to share it with the community.
What it tracks:

Live price charts for 2,500+ items (uniques, currency, div cards, gems)
Currency ratios with trend direction
Biggest price movers in the last 3-6 hours
In-app price alerts when items cross your threshold (Pro)
Crafting profit calculator (Pro)

Some interesting findings from the last 3 days of data:

Mirror of Kalandra moved +24,665c in 12 hours
Awakened Enhance Support spiked +107% overnight
309 items moved more than 5% in price in the last hour

Free tier covers price charts and currency ratios. Pro is $12/mo and unlocks market intelligence, alerts, and crafting calc.
https://chaosledgr.com
Would love feedback — especially on what data traders find most useful. Actively building this out.

strong patio
#

Need examples of the paid features and functionality.

#

Theyre described pretty well so possibly "need" is a bit extreme. But it would be easier for users to pay for a tool imo if its more obvious what they get.

ebon kernel
#

I swear windows keeps finding ways to fuck the developers over

#

Had 16 broken releases ever since I started using powershell due to code signing and couldn't catch the issue because the first users were not having any problems; thanks PowerShell 5.x -Encoding utf8 for arriving with BOM you piece of shit microslop

worthy cape
#

If I had a pinecone for every time I got UTF-16 stdout/redirects, I'd have a non-zero amount.

#

I also routinely try to use WSL tools on UTF-16 files and get confused when they're generally just ignored.

#

Leading to ergonomic things like this:

$ while read n; do iconv -f UTF-16LE -t UTF-8 "$n" | jq -j 'yadda(yadda)' | iconv -f UTF-8 -t UTF-16LE | sponge "$n"; done < victims.txt
ebon kernel
#

Man my job is to change html background color from white to blue and be overpaid for that, how was I supposed to know that BOM is a thing bloddisgust

worthy cape
#

UTF-8 with BOM is the best thing since sliced butter.

#

Makes it way easier to guess encodings when you've got a nice little magic word at the start of the first line to trip you up.

charred lake
cyan void
cyan void
carmine merlin
#

Which files do you mean?

cyan void
carmine merlin
#

Everything comes from the game files if you're wondering how those export scripts work
RePoE just puts it in a nice format for other people to read

cyan void
#

i looked at the ids, the internal names nothing i grep anywhere links to each other on repoe fork

carmine merlin
#

The tree.lua file comes from the game files but GGG provides us with a JSON format of it so we don't have to extract and build it ourselves

#

Also <> around links hides the popup fyi

cyan void
#

mhm I see

full yew
#

table question
does anyone have a general idea of how to detect potential market manipulation/price fixing in specific niches, i.e. beasts?
im cooking up a small tool that will automate price analysis for beasts, and i would also want to safeguard from low-confidence listings, bots, etc
(yesterday i got scammed out by lowballed fenumal arachnid price and now im salty)

#

my guess would be: do a slice analysis for an hour of data, filter out mass listings from single accounts, potentially flag these accounts if they are known for lowballing, and then compute a weighted winsorized median over that hour, run that for more hours to collect more data on trends and output final based on 24/72h analysis instead of min live prices

#

but if anyone knows this topic better and can weigh in with advice, id greatly appreciate that

brittle oasis
#

HAHA totally random and absolutely comical to me but i posted ages ago about how theres an empty space in the connections (lines/arcs) texture, I might have just learned why. ggg's original texture might be 1435x1435 but when they use radtools to encode it to DDS, BC7 uses block compression in 4x4 pixel blocks so it would add an extra pixel to make it divisible by 4 and fit the blocks. although running a quick test after writing this to confirm seems like the dds header keeps the 1435x1435 size and gpu probably ignores the last pixel from the looks of it. maybe depends on the encoder hmm thought i solved this but now its going to annoy me even more, god damnit

frank drift
#

and I'm not sure how much that matters anyway

full yew
#

its a minor pain point, just something i'd maybe try to cook up and prevent

#

a tad bit

ebon kernel
#

mhm out of all abbreviations, this is what the ai decided to go with

worthy cape
brittle oasis
#

I've started to love DDS though, brotli compressed dds is pretty good surprisingly. avif still king for size. ktx2/webp meh

cyan void
#

#png warrior

hexed mesa
#

jxl gang

brittle oasis
#

I got excited to hear about a new format I havent heard of but with that browser support rip

cyan void
#

any ideas what i could change? https://poetoolbox.com/clusterjewel im probably stuck in my own vision so everything seems very clear and self explanatory to me, maybe someone here has some questions or doesnt undertand something on that site

#

brief summary would be a helper/planner to figure out how to get your desired notables on a large cluster

ashen aspen
# cyan void any ideas what i could change? https://poetoolbox.com/clusterjewel im probably s...

i would guess the 95% use case for this would be: i want to select 2 nodes i am looking for and both passive skill nodes need be be in the front, as the back node is rarely taken because of the additional required pathing node (assuming a minimal, 8 passive large cluster). the tool could then even create a trade link that fulfils those requirements.

at least that's what i imagine this tool could be useful for. tbh, i don't quite understand what the goal of it is at the moment and how to use it.

cyan void
#

ok that is exactly what it is, guess ill try to add some text to explain it a little
how to use it would be to select something, but thats good to know need to make that clearer

oak estuary
cyan void
oak estuary
#

Well when I select it to make it disappear, the tooltip probably should disappear also 🙂

spring gyro
#

I'm trying to use poe_data_tools on my local game files with the hope of speeding up the art dump. I noticed these flags

 -p, --patch <PATCH>          Specify the patch version (1, 2, or specific_patch)
      --steam <STEAM>          Specify the Steam folder path (optional)
      --cache-dir <CACHE_DIR>  Specify the cache directory (optional)

I don't have the game on steam, only from the ggg installer. Is that cache-dir what I hope it is, or smth else? as in, can I point to my game with that?

#

also, would Content.ggpk be the main thing it's looking for?

worthy cape
spring gyro
tranquil token
charred lake
spring gyro
worthy cape
#

Schedulers are fun.

frank drift
#

sites that make clickbait over niche mailing list posts are interesting

worthy cape
#

Phoronix is indeed Phoronix, but there's some interesting meat for people who write that kind of code, especially from a portable perspective.

frank drift
#

no judgment

worthy cape
#

From what I hear of the fallout, PG adapted their code and the benchmark might have been a bit hosed.

ebon kernel
brittle oasis
#

man this entire time the tree had a simple cpu distance check for mouse node hover check and my dumbass did the whole frame buffer object with object id for pixel perfect hovering which was such a massive pain cause i didnt know shit about opengl at the time and it made everything more complicated all for me to just remove it right now, dont think ive ever wasted so much time on something.

#

its actually surprising how far off you can trigger the hover especially on small ascendancy nodes and i never noticed and probably would have never noticed either

tranquil token
#

@velvet fog The Flavour Text Search feature in POE1DB allows you to search the flavour text of newly added Exceptional Gems.
However, the Flavour Text Search feature in POE2DB does not allow you to search the flavour text of Lineage Gems.

tall oyster
charred lake
#

I've not actually used the standalone poe install before, is it one mega .ggpk or lots of smaller ones like the bundles?

grave wren
#

one huge file

worthy cape
#

LFM

ebon kernel
frank drift
#

certainly one of the most satisfying

icy heath
#

I only know cvs unfortunately

tall oyster
#

The pharmacy?

gilded tree
tall oyster
#

I was just making a joke lol

cyan void
#

is there more data available about the current game other than Client.txt?
so far it seems like it has zone data, a message when you die and thats about it

#

Client.txt within the logs directory of the game files

#

something like quest progress, worn items or anything about the character would be nice, i guess worn items could be pulled from the official api but quests?

tranquil token
#

@velvet fog https://poedb.tw/us/Replica_Gifts_from_Above

Replica Gifts from Above does not have the Replica icon on its border, and its flavor text is also different from the in-game version

charred lake
velvet fog
#

file: sha256(contents), pdir: sha256(file,pdir sha256)

charred lake
#

Ah figured it out, UTF16/8 byte encoding issue. It's lowercase file name -> UTF16LE bytes -> murmur2

sharp junco
#

anyone knows if the branch that two guys were making about build differences when following a guide for POB is somewhere public?

tall oyster
tall oyster
cyan void
#

but yeah best i could find in logs was nothing related to quests sadly

tall oyster
#

yep :p

cyan void
#

was wondering if maybe there are other files hidden somewhere

tall oyster
#

i wish lol

#

right now for like my quest tracker you have to do some guess work and sort of track where the player has gone and such but without doing some sort of ocr of the screen or something similar log wise its hard to go off of

cyan void
#

i guess i made something similar to what you have done with poe2

#

i guess thats just how it has to remain then

tall oyster
#

a lot can be learned from Lailloken's overlay too, worth looking at his work

cyan void
#

already saw that one, majority of the features that I cant derive from log files would require some sort of ocr or pixel color tracking

#

basically what lailloken does

tall oyster
#

yep yep

carmine merlin
#

Also I've just updated the PoE 1 public schema with a gazillion fixes and additions so if you use the schema for any tools you might want to re-export your data
I'll be looking into fixing it for PoE 2 over the next week or so

worthy cape
cyan void
frank drift
#

some of the racing people have been politely complaining about lack of quest state info in client.txt, so there's a remote possibility GGG might do something about it

tall oyster
sharp junco
charred lake
# spring gyro I'm trying to use poe_data_tools on my local game files with the hope of speedin...

https://github.com/adamthedash/poe_data_tools/releases/tag/v1.7.0
ggpk support available now. I've only tested it with poe1 but should work fine for poe2.
--ggpk <path/to/Content.ggpk

GitHub

What's Changed

Support for GGPK data source by @adamthedash in #25
Logging moved over to the env_logger crate, controllable with the RUST_LOG env variable. Default level is info.
Several impro...

boreal rain
#

Hey Exiles,

I’ve spent the last few months building something I felt was missing: a ladder tracker that actually feels modern, looks sleek, and just works. I originally planned to release this three hours ago... but, well, classic dev life happened. Better late than never!

ExileLadderOverlay is a free, lightweight tool that shows your ladder position in real-time, directly on top of your game.

What makes it different?

  • Deep Customization: You decide what stats to show and how the UI looks.
  • Built for the Grind: It’s designed to be non-intrusive so it doesn't distract you during gameplay.

Check it out here:
https://ladder.nichtjfdochichkennedy.com/

The website does a much better job of showing off the features and UI than a text post ever could.

What’s next?
The tool is still a work in progress. I’m currently working on a roadmap which I'll publish soon.

Stay sane Exile!

charred lake
#

(also would give a place for people to give feedback/report bugs that you've mentioned in the FAQ 😉 )

#

Anyone ran into / know if there's any rate limits with the CDN? File format coverage is getting high enough to where I'm downloading like 40GB of bundles whenever I benchmark against a new patch. Wondering if it's something I should be worrying about 😅

tall oyster
# boreal rain Hey Exiles, I’ve spent the last few months building something I felt was missin...

first off, cool idea, gunna be blunt with ya, "feels modern, looks sleek" - tbh it doesn't really feel "modern and sleek" to me, the bright yellow/brown/black combo gives me kinda cheap almost like fast-food vibes, Swap the pure black background to a darker gray (#121212 or something), Tone down the super bright yellow to a more muted gold/amber, If you want to try and lean into like poe feeling colors, maybe try these schemes:
#8C0B23, #0D1526, #3D4F73, #F2E5A2, #A6976A
or
#A60D29, #3D4F73, #A6A6A6, #262626, #0D0D0D

I would switch up that font as well to something like:
Inter
Rubik
Manrope
Geist
Golos Text

Seems lke you really liked that gradient splitter line as well but feels off especaill on the main app below the title bar and then user again under the class/level area

charred lake
#

Anyone have success using etags for CDN requests? I seem to be getting back 200 instead of the expected 304:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/If-None-Match

RequestBuilder { client: Client, request: Ok(Request { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("patch.poecdn.com")), port: None, path: "/3.28.0.8/Bundles2/Audio/Dialogue.bundle.bin", query: None, fragment: None }, headers: {"if-none-match": "\"61f67d99-d07b2\""} }) }

Response { url: "https://patch.poecdn.com/3.28.0.8/Bundles2/Audio/Dialogue.bundle.bin", status: 200, headers: {"server": "nginx/1.28.0", "content-type": "application/octet-stream", "content-length": "853938", "last-modified": "Sun, 30 Jan 2022 11:59:21 GMT", "etag": "\"61f67d99-d07b2\"", "accept-ranges": "bytes", "cache-control": "max-age=2483131", "expires": "Fri, 08 May 2026 05:00:08 GMT", "date": "Thu, 09 Apr 2026 11:14:37 GMT", "connection": "keep-alive"} }
#

Paging @modest path as you worked on the etag caching stuff for schema fetching before 🙂

olive chasm
#

anyone know if art.hearthstonejson has golden card renders for bgs?

#

can get regular ones but using the golden card's id it just 404s

#

wondering if the endpoint is different

#

oh ffs wrong server

charred lake
main mulch
#

Hello. Is there any official way to get PoE/PoE2 passives? Since API exports them in the form of hashes only

velvet fog
worthy cape
tranquil token
velvet fog
#

SupportPackSets.dat were removed after version 3.13, and manual mapping requires some effort.

tranquil token
carmine merlin
velvet fog
#

MicroMigrationData?

carmine merlin
#

I'm having a look at the other ones to see if I can find something

main mulch
#

Where do things like Path of Building for PoE2 get the PoE2 tree?

main mulch
carmine merlin
main mulch
#

I see, thank you

brittle oasis
#

that mask tho

worthy cape
#

Looks like soneone might have put a hex on you and your whole family tree.

brittle oasis
#

Dont be holding out on us, we know its TalentTree 3.0 with hex ascendancies and new node types and yeah I wish

#

Its unfortunately just using the old poe1 jewel socket image

#

Wonder if GGG is ever going to release all the wild talent tree ideas they thought about for poe2 that never made it

oak temple
#

Hey pals do we have accessible info on what's mutating the heist blueprint costs and like multipliers of rogues, blueprint types (number of jobs, assigned rogues)?

I have looked online and found this but it's like 3 years old and the data seems reallyyyy out of date, especially with the changes to layout specific rewards and blueprint types alongside the side room rewards being completely different for some league content:

#

I suppose I can just sit down and make a spreadsheet about it, hmmmm might as well

charred lake
oak temple
robust lantern
#

Argh, I love finding stuff I needed after a built something bla

tranquil token
tranquil token
#

I just noticed that the "Concurrent Players" menu under the NEWS section at the bottom of the main page leads to the League page (https://poedb.tw/us/League#ConcurrentPlayers). However, I believe it would be easier to find if there were a hyperlink explicitly labeled "League."

brittle oasis
#

Looks like passiveskilltreenodeframeart.datc64 has CharacterPlanning and AscendancyPlanning art, which means all the blue nodes and connections are meant for an upcoming planning mode :O

past merlin
#

Does anyone know if item mod weights are from current client-side data, or from an earlier version? I remember a notice on poedb saying that they were no longer updated client-side starting with some recent game version, but that notice is no longer there. Are we back to having direct access to this information? something else? Thanks for any info!

frank drift
worthy cape
past merlin
#

oh yeah, was asking about poe1. thanks folks 🙂

velvet fog
#

PoE1 hadn't updated its mod weights for a while, but it seems to be correct recently.

The weights in PoE2 data are all 1, so we can only infer them through recombinator.

past merlin
#

I assume astrolabe mod weights are fully server-side

velvet fog
#

Apart from the weight of affixes, almost all other weights are server-side

past merlin
#

thanks again, I appreciate the response!

coral birch
#

I've emailed the support team regarding the Terms of Use, but I’d like to double-check a specific point here:

  1. CDN Icon Usage: Is it permissible to use official CDN assets on a website where users can support the project to unlock features (similar to Wealthy Exile)?

  2. Icon Modification: Is it okay to use a customized/edited version of an official icon as a website asset? For example, using a Divine Orb icon but filled with a custom rainbow color.

I want to ensure that using these modified official assets for a community tool doesn't violate any policies. Thanks!

hexed mesa
# coral birch I've emailed the support team regarding the Terms of Use, but I’d like to double...

unlikely you will get legal support here or from the support team. you will probably get pointed at the tos at best.
afaik its recommended to host assets yourself but if your project is small enough you will be probably fine. just get ready for breaking changes with no info whatsoever if ggg ever feels like it.
you probably will be fine if you modify whatever assets, unless you plan on doing something less acceptable by the general public to the point where ggg feels like they need to intervene

#

(not legal advice)

rocky tangle
#

Hey,
I'm working on poe.re for the trade search lookup with selected Map Mods, What we've done for now is to relay the search call to a Worker to avoid Browser CORS issues, however we are hitting rate limit issues as we only have one outbound IP address (or small range anyway).
By looking at the headers from GGG's API on trade site we can easily see that rules are setup for IP and also Account, my question is, do we have a higher ceiling if we authenticate the users and do the search calls from the same IP ?

somber mortar
#

possibly but there aren't really defined expected rate limits and they can change when ever. I can say I have seen the IP limit go up once I am using a session, but I haven't tested with two accounts on one IP to see what happens tbh

#

it may just be easiest to run requests on user's browser so they get there own rate limit possibly, although i'm also not great at server/client stuff

rocky tangle
#

yeah sadly their current configuration of the API does not satisfy browser CORS policies, maybe the best thing is to go ask them

frank drift
rocky tangle
# frank drift you're running searches yourself? not quite understanding what you're doing, but...

it's the new trade search function here: https://poe.re/#/maps
I generate the search API call with the proper selected affixes however since we are inside of a browser (not an app), the browser will reject the query since we are doing CORS calls to pathofexile.com, so the workaround has been to generate the search link in a Worker and then return that back to the webpage. Which then causes rate limit issues since the worker is the one doing all the API calls with a single IP

frank drift
rocky tangle
#

As the search is being cached in GGG's servers and the link does not reflect the parameters but a unique id generated for your query

frank drift
gilded tree
#

as you're not showing the results on the page there's no need to make any requests

rocky tangle
frank drift
#

I don't see why you would need to if you just build the query but

gilded tree
rocky tangle
frank drift
rocky tangle
#

it worked indeed, thanks for the info

#

I'll do it like that

peak frigate
#

k so, typing in sw in the imbued support section will make it first entry sacred wisps, which crashes pob

oak estuary
oak estuary
#

By build code I mean the exported code you'd upload to pobb.in or similar

peak frigate
#

sure

#

simplified the error down

grizzled goblet
#

Anyone know where I can find all the unique tilesets poe2 has? Doesnt seem to be listed like PoE1 has

frank drift
charred lake
grizzled goblet
charred lake
ornate bramble
tranquil token
tranquil token
#

@velvet fog Are these modes ones that can actually be changed, or are they incorrectly entered data? Sorry for pinging you repeatedly.

worthy cape
#

If you hover the (i) on some of those, the labels seem generally wrong; while if you look at the stats they seem to check out to be fire/cold/lightning ones.

#

Like these two rows seem to actually be the 5-10% and 11-15% gain as extra.

tranquil token
#

The modes shown in the DB are prefixes, while the actual modes are suffixes, so it looks like the data was entered incorrectly. Just to be sure, I tested it myself, but it wasn't changed.

tranquil token
worthy cape
#

The whole mod seems consistent and eligible, except for the blue heading.

grizzled goblet
charred lake
grizzled goblet
#

Exactly like that but for PoE2

worthy cape
#

That's probably more of a hand-curated list of area themes from ancient times. What the peeps above talk about as "tilesets" are lists of specific tiles and rooms that terrain generation can pull from for each particular topology.

charred lake
grizzled goblet
#

Yeah its like the maps that have the same "theme" or style taken from each zone in the campaign, which one share the same "look"

charred lake
#

@grizzled goblet Are you handy with scripting / basic json data manipulation? I think I can pull out the data you want but might take a bit of work to link things together in a similar table to the wiki

grizzled goblet
#

You guys are awesome

charred lake
#

data/balance/world_areas.datc64.json

  • Id: "G2_1" - Act 2 area 1, "P2_4" - interlude act 2 area 4
  • Name: Human readable name Eg. "Vastri Outskirts"

data/metadata/terrain/XXX/XXX.tst.json

  • Filename gives an indication of what area it's for Eg. "metadata/terrain/gallows/act3/3_1/tiles.tst.json" - Act 3 area 1.
  • Has a list of .tdt filenames - each one is a tile. The filename has the tileset/theme in it Eg. "Metadata/Terrain/Jungle/JungleExterior/Sand/Sand_OverlaySt_02.tdt" - Overall theme is Jungle, specific one is Jungle/JungleExterior/Sand.

PoE data tools commands used:
poe_data_tools --patch 2 translate data2_tilesets "**/*.tst"
poe_data_tools --patch 2 dump-tables data2_tilesets --mode=json "data/balance/worldareas.datc64"

charred lake
grizzled goblet
#

Really appreciate all the help. Thanks very much

paper plank
dusky zealot
#

Hey guys, I've been creating small indie tool last couple of weeks, is there any proper channel here to post it to gather some feedback from users? (PoE2)

dusky zealot
#

and also wanted to ask if any of you have already OAuth provided by GGG, and how long did you wait for that

charred lake
dusky zealot
#

Trying to get past reddit acceptance of mods for a day xd idk those filters are giving me shit

#

I've joined PoE2 main reddit years ago and still can't post a simple post with single link for tool 😄 sent info for mods but waiting around a day to accept it xd

#

prboably need to farm more karma since i am mostly read-only mode

#

Tool ofc is in early MVP staghe with finished idk around 30 items so far (weapons - bows,crossbows,1h maces) but I am editing it constantly

#

but most QoL filter staff is already there, and hoenstly I hope this is useful for quick search of uniques idk

#

need some more users to see if the ideas that I had are working xd

charred lake
dusky zealot
#

from myself

#

It suposed to be left side - filtering mods quick trading , and right side - kinda subjective opinion etc

#

for veterans I think it also possibly is useful since i am including all filter with trade search

#

so actually it is faster than typing specific mod values as in official trade when you have to fill all filters manually

#

and even going strasight into unique and clicking trade the filters are already there which is helpful and I am suing it myself

#

that was the whole let's say idea to built sometihng I missed myself

#

also advnaced filtering is kinda custom from item typ to item type, to cut off all this noise in official trading website , coz there is a lot and providing links to trading anyway allow user to finish advanced filtering on the trade side if he wish even more advanced features

oak estuary
#

One improvement might be to clamp the elemental/physical DPS inputs to the item's maximum that it could allow (maybe including corrupted ranges).

charred lake
#

(input validation in general too)

dusky zealot
#

thanks!

#

I will work on the ocrruption ranges and input validation for sure, for now I am not sure if it always falls into this 0.78-1.22 rule (or smth like that dont remember)

#

but overall input validation should be done anyway to disallow some BS

charred lake
#

IMO aswell you could do with a disclaimer that the stuff on the right side is your opinion too. I like that you have the "editorial written for patch XXX" in case it becomes out of date between patches

#

Similar to the source notice for rarity

dusky zealot
#

i thought the title EI commentary would be kinda self explanatory, but I might have been wrong

#

will try to find the way to include some more info on where it comes from aswell

charred lake
dusky zealot
#

the idea is to ofc, update commentary and data cross patches thats why i got this right corner editorial mark , when 0.5 hit will update again and again if needed to be on top
first I have to dig in through all those uniques, and probably also solves some stuff on the way, like some jewels and presentation of data there

dusky zealot
#

some "how we grade items" section or so

oak estuary
dusky zealot
#

thats also I thought for some time, need to rename it xd

#

I used this shortcut like anyone at this point would know the site 😄

#

good point 🙂

oak estuary
#

I thought it was a alteration of "AI" at first

dusky zealot
#

god damn, will change for ExileIndex Commentary

#

longer form but at least clear 😉

gilded tree
#

Exile Intelligence!

dusky zealot
#

Thanks guys for the comments, pushed changes to prod already, have to still put some test to the clamps, but overall good changes I think

#

Cheers !

#

(will be online probably in minute or two)

pulsar flower
#

Hey all, pretty new here, but working on a project that tracks builds. I had a quick question. Do the URLS for the POE2 trade search have a TTL?

compact isle
#

you can zoom around poe.ninja and check some links there for examples

flat knot
#

is it possible to see challenges from an api endpoint, I see there is some challenges object in the Account info but nothing else

#

thanks in advance

compact isle
#

not detailed information, no

#

it has been requested in the past so it is somewhere deep in the backlog

dusky zealot
#

https://exileindex.com/uniques/ - made some changes to navigation across the app, and added some of the most important informations on tiles before main card, went through reddit with this pre-mvp ideas , ofc got smacked (idk what did I expect 😄 ) but received also some feedback I already put into the app.

Would appreciate for some - especially technical - feedback , so I can further improve the experience.
yesterday thanks to some of you I've also added those clamps on values, etc.

If anyone find couple of mins to check and let me know if there is anything which can be improved at this point I would really appreciate.

Also question - any of you have any idea how to get some economy data (prices etc?) I request for OAth access from GGG - but honestly idk what is the policy of GGG behind granting access. Maybe meanwhile/instead you have any ideas how to gather this kind of data to work on?

Things I know that sucks, and are basically placeholder:

  • rarity (confirmed by GGG those 4 tiers, common uncommon, rare,mythic - but I would basiaclly have to guess where to put those items - most unconfrimed)
  • meta pills - this probably needs whole revamp or re-make
  • tiering - also kinda not happy with that - thinkinh on improvements

Future plan (features) :

  • Maps - layouts - currently none of that is available anywhere - only some campaign ones but not end-game
  • Ascendancy with approachable browse - currently every app including big ones have not cohesive views which is a mix of picutres with nodes, some interactive stuff. Overall a mess

Would highly appreciate any input
Thanks

gilded tree
dusky zealot
#

I can bet now it is bad time for reqeusts like this 😄 probably they are busy bees rn with 0.5 on the corner 😄

dusky zealot
#

Will do. Still have tons of stuff to do except data on the app

tall oyster
#

@dusky zealot triggering my ocd with your hamburger menu having different border radius than your other buttons

#

honestly i wouldnt even have the background and border on that, just have the hamburger

#

and subtle background color change on hover

dusky zealot
#

Thanks, I will look into it!

dusky zealot
#

@tall oyster already changed - kept the background and stuff, but at least it kept cohesion across the buttons , credited in dev-log 😉 cheers

tall oyster
#

much better ahah

#

working on an update for ggpk-explorer which includes some UI re-design and so I'm tilted with UI stuff lol

#

kind of hate working with egui compared to my usual web stuff

#

getting there

tall oyster
#

working on a few other things but not sure when I'll push them yet

dusky zealot
#

@tall oyster one note - I would add to readme explanation what is GGPK - I know this is aimed for devs - but some guys which are just beggining may not understand how they can benefit from it
one, two points at the top of readme would do 😉

pulsar flower
#

This may be a dumb question, I see that other sites like poe.ninja use in game art on their sites, are we allowed to reuse assets like the class/ascendancy images?

pulsar flower
pulsar flower
#

Cool, out of curiosity what wouildn't be in reason? hard to imagine that option

hexed mesa
tall oyster
neon girder
#

Presenting Wraeclast Ledger

A Chrome extension that helps you design and track profitable crafting “recipes” for POE 2. It pulls currency prices from the background script, lets you describe recipes using trade searches or raw currency amounts, and shows per‑recipe profit in a dashboard UI.

You can for example, track the profit from certain corrupts, track profits from recombinator crafts and much more. Because you can specify custom trade URLs, you can use any filter that the trade site allows to make your own recipes.

It auto-updates based on the current trade listings every ~60 mins and tracks live currency conversion prices from poe2scout.

https://github.com/Eucelia/wraeclast-ledger

#

Here's an example 🙂

charred lake
neon girder
#

Everything is stored locally on your browser, there are no external API requests to anything except for the ones to the trade site (for tracking prices) and to poe2scout for tracking currencies

#

(Also ofc it's fully open source and a very small app, so you can do a search for example for ".com" or "www." or "https://" to just find all the urls and verify it for yourself

#

Oh also, the trade site rate limits your requests by IP address so any functionality around background updates/notifications (coming in an upcoming version) would not be feasible as the trade site would just rate limit the calls from the AWS server

oak temple
#

Hey pals, recently made a tutorial on my tool (Heist Curio Tracker), it goes through several of the tasks, could I share it here for feedback? thinkies

charred lake
crude bane
charred lake
compact isle
neon girder
#

ah sorry :< thought those timed out after 1 day anyway, thanks

compact isle
#

anyway, any requests (especially to non-public APIs) on a timer aren't good and runs the risk of account action

neon girder
#

Ah, is it frowned upon to retrive trade site programmatically? It doesn't use the hideout or whisper APIs

compact isle
#

yuh

#

generally if you do human things like price checking it is fine, but timers are pretty obvious and are easily flagged in our punishment dashboard

oak estuary
#

"Punishment dashboard" goes so hard

oak temple
#

This is the tutorial and the tool itself at the current state (fixed the collections issue and pushed an update on github), sorry for the quiet voice am a bit sick: https://youtu.be/7eR9DzgUWNk

wish I could use chapters and links in the video but youtube doesn't allow links 😅

Hey there, this is a video showcase of how to use my tool Heist Curio Tracker.

Releases are available at my github repo - search "Heist Curio Tracker" then navigate to "Releases"

0:00 Overview of the Heist Curio Tracker
0:42 Viewing and setting hotkeys
1:06 General application settings
1:33 Enabling PoE Ladder integration
2:40 Recommended game...

▶ Play video
worthy cape
#

I was going to suggest to be careful about how much you store in local storage if you're a guest on a page as an extension, as it can interfere with the normal operation of the page.
Not getting banned is definitely another and probably bigger concern ^_^

frank drift
shadow peak
#

I'm completely rebuilding a feature I discontinued 10 or so months ago and I could use some feedback.
It's a quick-access lootfilter editor/browser for on-demand tweaking. The clip shows:

  • simple and specific clipboard matching
  • collapse-able sections that mirror the filter's structure
  • seamless transition from item matching to global browsing
  • toggling a rule for a specific tier
  • stylistic changes based on adjustable presets
  • moving a basetype to a different tier/rule (and optionally creating a new hidden tier)
  • applying and reverting your modifications seamlessly

Because alt-tabbing is Satan and I wanted to play around with filter stuff (again).
It's almost ready for a first public (re)release, just a few more things I want to add (mostly economy or stylistic stuff).

brittle oasis
#

Can anyone share some poe2 item api examples if/when they have time pretty please, the more affixes the better

worthy cape
#

Don't have any, but the best I can do instead is an upload from the OG tool-dev enabler: devCheck https://youtu.be/sz5ywvsEYSQ?si=B4ifVehB15VfJyPL

Prior to co-creating Path of Exile, I had been doing hobby game development since age 7. In this video I describe my childhood and teenage years learning to program and offer some advice to parents who want to help nurture their kids' interest in coding.

References:

  • 0:29 Amiga 500 Photo © Bill Bertram 2006, CC-BY-2.5
  • 1:15 The Mystery of Si...
▶ Play video
brittle oasis
#

Lmao I'm curious how long it took him to render his fish but at 8 years old god damn. Must have been the best feeling ever writing it out on paper while simulating it mentally and getting to finally try it out

brittle oasis
#

Sword tax for item api example

gilded tree
brittle oasis
#

I need to see what the mod strings looks like exactly, is the string exactly like a ctrl + c version of an item or something else? Just changes how I plan out stuff, wouldn't mind seeing full example either while at it

gilded tree
brittle oasis
gilded tree
#

Only the exchange is available in 2 - and the account characters. Guess that could work

brittle oasis
#

Ah, it mentions poe2 only in a few of the keys thought they added it for poe2 as well. I dont mind a poe1 example, should work the same for poe2 relative to mods/affixes of the game whenever they add it

gilded tree
brittle oasis
#

thats perfect, thanks. much appreciated. idk if these were posted but heres an axe this time

velvet fog
tranquil token
trim moon
#

hi, does anyone know where the synthesis implicit mods or mappings are stored, and do they refer to mods.dat for the actual mod. cant seem to find em, only finding references to "synth map mods" in the mods file

#

think i found em, in repoe mods_by_base file

carmine merlin
trim moon
charred lake
velvet fog
gentle remnant
#

hey i finally got around to use the api access i was given, i wanted to make a little python tool and i'm trying to get the auth token to then use cxapi, i don't have much experience with this step so i'm having a bit of a hard time

atm i'm using requests and pkce to make the post request to the /oauth/authorize endpoint with the necessary information, but the response is just cloudflare's "just a moment" html page?

#

am i supposed to do this first step in a browser where it can do its thing and let me through or am i missing something?

oak estuary
#

The user has to actually navigate to that page in their browser, you can't do that step via code

gentle remnant
#

right now i tried just manually putting all data in the request itself using firefox and it really doesn't like me not having a redirect uri (i don't have one as a whole, and it doesn't like 127.0.0.1:8080)

oak estuary
#

You should have set up a redirect URI when you requested API access

gentle remnant
#

i don't have it as i was planning to use a public client

#

does this mean i goofed up and need to send ggg a follow up email? DivineOrbSad

oak estuary
#

Seems like it. This is what a public client looks like

#

Public clients also can't use any service:* scopes anyway

gentle remnant
#

ahh i'm silly, i needed /oauth/token 🤦‍♂️

#

hence client_credentials instead of authorization_code

#

alright cloudflare is unhappy, i'll have to try again later, fingers crossed and thank you for the help

#

nevermind, if done through python i'm just blocked by the captcha
and if done through firefox i'm doing something wrong with the request, but i'm very far from being out of attempts

gentle remnant
#

ok it seems if i make the request inside firefox then it doesn't work because it violates the following directive: “default-src 'none' and from python i get blocked by cloudflare instead, i'll try to figure it out but if anyone knows of a straight forward way to send the request let me know!

oak estuary
#

I'm confused what you're doing that isn't working. You're sending the POST request with the client id and secret to oauth/token?

charred lake
#

Anyone know the "proper" name for tilesets like this? As in the set of combinations that you can combine together for terrain. Googling tilesets/maps resulting in a lot of noise

gentle remnant
oak estuary
#

The route is /oauth/token, not /token Nvm, the left side shows it as correct, the right side doesn't

#

You also need to include the Content-Type header

gentle remnant
#

i added the content type as application/x-www-form-urlencoded in the header but no luck

#

oh wait it said invalid client now, that's progress

#

so i guess it all goes in the header instead of the url parameters

#

nope it's not that either hmm

oak estuary
#

It goes in the body

gentle remnant
#

it worked!!!

#

thank you for your help ❤️

worthy cape
gentle remnant
#

huzzah and i got cxapi to respond too!
alas not through python (rip cloudflare moment) but it's something let's go

frank drift
gentle remnant
#

I'll look into it more tomorrow, for now i was able to query it from my browser and i have the json i need to mess around without making further requests

worthy cape
#

Getting a confidential client (with client credentials) to work in a restricted environment like a stock web browser sounds like a challenge; considering all the CORS, fixed user agents, and other shenanigans that they have by default.

frank drift
strong patio
gentle remnant
#

I'll add one tomorrow, just checked the docs and yep i completely forgot about it, thank you for the feedback i appreciate it a lot ❤️

strong patio
#

You'll never forget user-agent again... (you will proceed to forget it another 100 times but hopefully you fix it quicker next times)

gentle remnant
#

tried it today first thing in the morning and that did the trick, huzzah!!!

worthy cape
#

I assume most of you peeps have heard the news by now, but it's Linux box patch time if you have any local command execution. hackercat https://copy.fail/

Xint

CVE-2026-31431. 100% Reliable Linux LPE — no race, no per-distro offsets, page-cache write that bypasses on-disk file-integrity tools and crosses containers. Found by Xint Code.

worthy cape
#

Uninstall vmlinuz.

somber mortar
#

Is the trade whisper endpoint OK to use or is it a probably don't use?

#

I implemented using it but heard recently that it maybe shouldn't be used, so just want to check if I should remove it

compact isle
#

definitely risky to use

gilded tree
worthy cape
#

Was a bit surprised to see the timeline hidden in an expando far down, the whole thing reads a bit oddly.

gilded tree
#

I mean it’s not that unusual, the timing is just really weird

#
  • yesterday it only had medium priority, today they changed to high on e.g. Ubuntu
bright ridge
#

Does GGG host the Wiki or is that more of a community sponsored thing?

#

Reporting degradation in performance over the past few days if anyone has a contact

worthy cape
#

Fair bunch of reports of intermittent mehness perf-wise on the wiki Discord server for the last few months or so, some of it is Mediawiki doing Mediawiki things; or cargo/Lua straining under editing operations.

bright ridge
#

Let me know if there’s anything I can do to help

I spent a few years at AWS and now am at a company called Vercel. I’ve been doing web infra and hosting for a while now - happy to review and see if there’s any easy way to improve performance

fickle yew
#

If you're using poe.ninja economy data, note that I have trimmed the data a bit today for properties that just had default values. I would expect most consumers to be okay, but some of the changes can be breaking for some usecases - like dropping properties with empty arrays like explicitModifiers: [].

fickle yew
worthy cape
dreamy valley
#

Question about the public stash river. When a user gets banned their sale tabs become inaccessible and their stuff no longer shows up on the trade website. Does the public stash api report a stash change to empty stash when this happens?

#

my price tracker DB is showing a lot of zombie records, upon investigation it's all from banned accounts. I could do manual periodic sweeps, time gate the queries, or make some sort of automated lookup to see if the account of the lowest priced listings are banned, but these all feel pretty inelegant

compact isle
dreamy valley
#

I'm parsing the river for specific items, say Vivid Vultures. When I see one, I track metadata like the item_uuid, stash_id, owner, price and some other fields into my DB. Later on when I see this same stash_id in the payload, I check if the beast I recorded earlier still exists. If it does not exist, I mark the record as terminated. Occasionally I would see old records with prices much lower than the current market prices, and I noticed that every time the owner's account is banned.

If the public stash does provide update on these banned stashes, does it simply report the stash as empty, or does it report it as non-public? If it's reported as something like ⁨{ id, public: false, league: null, items: [] }⁩ then I can see my application skipping over it

compact isle
#

The stashes are unpubliced, as banned accounts can be unbanned later. Not sure your use case but ignoring tabs becoming unpublic seems strange to me

dreamy valley
#

I simply forgot that could happen and skip over stashes that have a non matching league which is probably why it's happening 🤦‍♂️

unreal raft
strong patio
#

Neccessary for if you're tracking trade tabs. Since those items aren't really dead due to inactivity.

strong patio
unreal raft
strong patio
#

All of them?

#

Or just the modified tab

unreal raft
#

so if there is like no activity for (example) a week, do you still think that tab is relevant?

strong patio
#

Depends what u need the data for

#

But yes I would say it would still be relevant as someone could still purchase from it

unreal raft
#

Yes, that's why I said I am curious about their reasoning

unreal raft
strong patio
#

The market tabs

#

The async tabs

#

Trade tabs

unreal raft
#

yes, that would work

#

but not for normal one

strong patio
#

Not sure what the best name for them is haha

#

Yeah totally agreed for normal tabs.

#

Using data from week old stash updates would be lowkey pointless

unreal raft
#

yes, that was my point

strong patio
#

Yep totally. Was just mentioning a reason one might prefer to keep old stash data around as you said you were curious the reasons.

unreal raft
#

If I am not mistaken here, even if there is activity in a private tab you could see if that person is still playing

worthy cape
dreamy valley
#

Item price that is

unreal raft
dreamy valley
#

Item price

#

If you only track recent listings of say craicic chimerals, and one person starts a large crafting project and buys a ton, it’ll blow through the recent listings and you’ll have no data for a while

dawn thunder
#

@fickle yew is it possible to add a build extract to Ninja, where the different weeks saved as different loadouts?
Or its a problem duo to pob Format ?
You Checkmark like hour 6, week 1 and week 3 and get a pob with 3 loadouts

neon plume
#

(also it should be like 20% faster, found some optimizations)

neon plume
#

also fixed all the weirdities when searching on trade

gilded tree
#

Build Planner ScuffNote

neon plume
#

big

carmine merlin
#

large

gilded tree
# neon plume big

I somehow couldn't get the anchor tag, that's why it took a bit :x

compact isle
#

my tiny link icons that I manually place

#

weren't of use to you?? 😭

gilded tree
gilded tree
compact isle
#

ye

carmine merlin
#

build stonks_up

velvet fog
#

PathOfBuilding ༼ つ ◕◕ ༽つ TAKE MY ENERGY ༼ つ ◕◕ ༽つ

hazy fog
#

I need to know if openarl had a hand in making the build planner

#

I will be very disappointed if the answer is no KEKW

velvet fog
#

Is frameType no longer a number in poe2?

carmine merlin
#

nope

#

string now pretty sure

velvet fog
#

The frameType is still a number on the trade site, but it has been changed to a string on the Ancients website.

compact isle
#

just for the announcement page items, but we'll be changing it to a string in APIs for 0.5.0 release

#

(with OAuth changelog and stuff included)

hazy fog
#

PAUSE Novynnnnn do you know

velvet fog
#

Will this affect PoE1?

compact isle
velvet fog
#

passive json this time?

velvet fog
#

@compact isle Build Planner question: BuildSkill uses the BaseItemTypes table id, but PoE1's Alt Gems also use the same table id.

velvet fog
#

what's the new trade id, Runes of Aldur or Return of the Ancients?

lone ingot
#

not me getting nerd sniped by a new file format templarthumbsup

cobalt wolf
#

Regarding these build planner files, will they be linked to a specific character we create?
If they are selected for the entire account then we would have to change this every time we login to a different character.

velvet fog
#

They are developing a "one-click apply"—3rd party sites can provide links that, when clicked, are automatically added to the account (similar to an item filter), with filtering conditions. This is also important for console users, who cannot directly upload files.

cobalt wolf
#

that is how it works with item filters now too, although i suspect i'm one of the few who has one item filter per character

velvet fog
#

The Build Planner is a game-wide build instructor that integrates with mission-critical systems such as skills, crafting, passives, and ascendancy. Designed for players to import builds from third-party sources, the Build Planner functions as a plug-and-play feature. Editing or creating builds within Path Of Exile 2 is currently not supported.

When attempting to load build files into Path Of Exile 2, the loader expects a 'MyBuild.build' file written in JSON format. All build files must be located inside of 'X:/Users/Name/Documents/My Games/Path of Exile 2/BuildPlanner'.

#

This is all the information we have at the moment.

cobalt wolf
#

Ah okay, so we don't know the answer yet then

velvet fog
#

is there a regex to parse <underline>{<red>{A test for the new build planner!}}

worthy cape
#

Brace matching and regex, a match made in hell.

fickle yew
#

My json deserializer is loving array of (string or BuildPassive) mixed types 😄

gilded tree
#

building a simple AST seems way easier here

spare lance
#

Am I missing something or is there no way to actually use the build planner because there’s no schema?

spare lance
#

yeah, I’ve read that still doesn’t change the fact there’s no schema where are you supposed to get the IDs?

velvet fog
#

You need to datamining the game files.

spare lance
#

no that’s not how it works. You can’t expect people to data mine the game files in order to use a build system that’s officially supplied by the game. There must be a part two coming where they release all of the IDs.

#

And in any case that would not work

velvet fog
#

version 0.5 may still not have passive json that build planner needed

cobalt wolf
#

glider is making a valid point here.
I think ggg should have released the IDs, would make this much better to work with.

Although it's possible to download it from 3rd parties like here:
https://repoe-fork.github.io/poe2/base_items.json
(i think this essentially just dumped from data mining)

spare lance
cobalt wolf
#

and it's just the items, like ID for skill gems.
So need another file for passive tree IDs

spare lance
#

yeah, I’ve made my own schema

#

The game has over 7000 columns I think there’s 700 tables

#

there’s no way to get the column names from the game without just inference

#

I mean, you can get the table name that’s no problem and you also don’t know the types that are in the table without inference

#

they stripped that stuff out of the binary when they build it

cobalt wolf
#

The data we're sitting on now is obviously outdated by the time we get this new league as that will include new items with new IDs.
And i don't think they said anything about passive tree changes, but i wouldn't ignore the possibility that there are changes

spare lance
#

but that schema is completely wrong. It’s not accurate for any build. It’s just a guess.

cobalt wolf
#

i'm not entirely sure what you mean?

spare lance
#

the schema that you just linked me it has the table names but the data types and the column names are completely wrong so everything other than the table names is a complete guess and it doesn’t matter which build you’re referring to

#

are you a software developer?

#

I mean, can you write code?

#

otherwise, you won’t know what I’m talking about

cobalt wolf
#

yes, i am.
But you're not making much sense.
Which table name are you referring to? are you talking about the json field names?

velvet fog
spare lance
worthy cape
cobalt wolf
#

which part of it is not accurate?
which part of it is just a guess?

spare lance
worthy cape
#

The build planner largely cares about keys, which are typically at the very beginning of a row.

spare lance
spare lance
worthy cape
#

What I'm saying is that finding PassiveSkills' shield37 node is going to be fairly straightforward, regardless of what comes later on in the rows.

#

Your typical build guide website or PoB-like is going to have some idea about how the data they care about looks.

spare lance
floral marten
#

are you new here Glider?

worthy cape
#

Something like repoe is likely to have everything you need to name passive nodes, gems, etc.

spare lance
spare lance
#

you guys are just trying to work around it. I don’t know why but it’s obvious that there’s gonna be a part two and GGG are going to release a schema that’s correct because otherwise you can’t expect to build files to actually work in the game.

worthy cape
#

If they don't have some particular aspect, the author or a contributor may build it out to fit demand.

#

You needed most of that data to have a build planning tool to begin with, since the dawn of time.

spare lance
#

yeah, but build planning tools never had an official support now they’ve added official support for build files. They have to provide an official schema otherwise it’s DOA.

fickle yew
#

I would rather have this than nothing 🙃

spare lance
floral marten
#

the reason i asked if you are new here, its because the community build must of the tool with data mining, and see this new features are a great step, can be better ? for sure, but we are having more tools to build

velvet fog
#

ninja!

fickle yew
#

You don't become a poe community developer without a certain amount of grit..

spare lance
fickle yew
#

But you get to learn about reverse engineering strange binary formats here in poe university. Free of charge!

worthy cape
#

Only field in the file format docs that's not specified is ascendancy, which looks to be the id of Ascendancy.
Most of everything else is the ID from PassiveSkills andBaseItemTypes; the most exotic is figuring out which word list in Words denotes uniques.

spare lance
fickle yew
worthy cape
#

This doesn't arrive in a void. There's an existing ecosystem and tooling.

#

Would it be better if it had way more polish and support? Sure.
Would it be better if it came months later or not at all? Probably not.

spare lance
#

it’s not hard to provide a schema. It’s literally just a JSON file.

cobalt wolf
#

Was the broader point that the devs should release a complete list with IDs and references that are valid in this new file format?
So that we don't have to rely on people trying to data mine the client correctly or even that we have to wait for people to data mine it.
if so then i completely agree with that.

worthy cape
#

When this channel talks about "schema", the established meaning is the shape and disposition of balance tables.

#

Not "JSON when".

spare lance
#

The reason for that is is because it lowers the barrier to entry otherwise we’re just gatekeeping people who are able to reverse engineer

#

not only that if you get the scheme wrong then the file the build file won’t even load into the game right?

#

it’s just not gonna be a good experience for the customers either

fickle yew
#

Agreed. More data would be better. It could always be better. But if this is what is possible given the resources available, it's better than nothing. It outsources some of the work to us, yes, but it also enables some cool stuff.

brittle oasis
#

If they provided a schema, what would you do with it? Build an entire planner just to export a build file?

lone ingot
#

I don't even mind the reverse engineering part but maybe that's just me

#

realistically getting the necessary things for the new format is actually not that difficult, there's lots of tools in the ecosystem that you can use

spare lance
#

I mean, did you even read the rest of the comments that have been made in this, since this conversation started? Because if you had, then you wouldn't have linked that.

lone ingot
#

if you want to implement it yourself it's really well documented, I get your pov but realistically GGG doesn't have the luxury of spending that time right now

#

it sucks that there's missing parts to the community schema but every single thing that is worth extracting has been extracted, see all of the tools that exist as proof

spare lance
spare lance
# lone ingot if you want to implement it yourself it's really well documented, I get your pov...

Right, I completely understand that they may not have time, and that's fine.
I know datamining tools exist but that wasn't the point i was tryign to make.
The official build planner format references internal gamedata ids,
but GGG has not provided an official versioned export/mapping of the ids required to build valid files.
datamining libraries just proves the feature currently depends on reverse engineering.
And I guess that's the answer.

lone ingot
#

they have provided them by proxy by not obfuscating them in the game files, they don't expect players to be able to find them, it's for us, who already know how to get them

worthy cape
#

Anyway, I've got trains to route. I hope you peeps build neat things.

spare lance
lone ingot
#

to be honest the format itself isn't even that hard to parse either. all the community schema does is describe what segments of bytes are what. you'd be able to implement your own names for all the columns if you just knew the data types

velvet fog
#

He should have a way to obtain the necessary information from the archives himself. His suggestion is that since it's an official function, the official should provide basic support. However, this seems unlikely at present.

#

The build planner API is currently having some issues. It's impossible to specify an Alter Gem, and there's no character/class field.

fickle yew
velvet fog
#

ya, the format

fickle yew
#

A game_version property would be nice as well for 0.5.

worthy cape
#

Alt qualities are PoE1 concepts, aren't they?

#

As for "character/class", not quite sure how that would fit the design; class is already implied by ascendancy isn't it?

gilded tree
velvet fog
#

If this is a speedrun build guide for Act 1, it need a class

worthy cape
worthy cape
velvet fog
#

Yes, I'm considering whether it's compatible with PoE1.

cobalt wolf
#

Was there any plans to hide those extra druid nodes from "path not taken" in pob?
i don't even have that class selected now and they are still visible.

hexed gulch
oak estuary
cobalt wolf
#

i feel like it just adds a lot of noise, i click on them and they don't allocate and then i think it's bugged.
but then i release it's the druid nodes

frank drift
carmine merlin
compact isle
compact isle
compact isle
compact isle
compact isle
#

happy to pass feedback on this feature along but since it isn't my project I am just helping where I can 😅

spare lance
novel fox
compact isle
#

a fair amount of OAuth-related changes this league. That includes the PoE2-only build planner, yes
no plans to expose PoE2 stashes as of yet

lone ingot
#

unique_name ?string a UniqueName entry from the Words table wish this was possible with item filters

novel fox
frank drift
velvet fog
#

what's the valid inventory_id in BuildItem?

worthy cape
# lone ingot `unique_name ?string a UniqueName entry from the Words table` wish this wa...

Ah yeah, item filters are more things like BaseItemTypes and ItemClass? I reckon that given the ground filtering roots of item filters, recognising an unique isn't really a thing you could do unless running some theoretical content that identifies drops.
Kind of funny, the build planner approach sidesteps a ton of the parsing work that item filters need to do at runtime.

#

Did you know that item filters not only match against English but also your current client language?

#

A Japanese player could write a filter by hand that only used the base type names they're familiar with from playing the game in their language.

hazy fiber
worthy cape
#

The unspoken desire behind many item filter feature requests tends to be fairly shallowly veiled methods to enable effective HH/MB squinting on the ground, with major economic and gameplay loop impact.

frank drift
#

I knew that

lone ingot
#

there would be ways to balance it though, if you specified "Mageblood" or "Headhunter", the engine could just interpret that as "unique Heavy Belt" or "unique Leather Belt" respectively

#

the main reason I'd want that feature is to remove the dependency on having to map known unique names to their BaseItemType (as that's the only way to filter them)

#

that said, if you did do that though, it would be a little bit confusing seeing a unique heavy belt that's not mageblood appearing. not really sure how you'd make that behaviour obvious to the player 😛

hazy fiber
# lone ingot the main reason I'd want that feature is to remove the dependency on having to m...

imo it would be fine it the filter just auto converted unique name into the correct base type for it, so eg if you filter "Abyssus" it would filter "Ezomyte Burgonet" instead ( and even if other Ezomyte Burgonets like "Cowl of the Thermophile" drop it wouldnt treat them differently ), no functional differences from current filter capabilities, just means you can use the unique names rather than needing to know which base what unique is on

main issue I forsee is that people will complain unqiues they didnt filter for are showing up if they dont know

#

it would be a little bit confusing seeing a unique heavy belt that's not mageblood appearing
☝️

lone ingot
#

I source the base type for uniques from the wiki right now, which mostly works but there's been cases where things have been misspelled accidentally or doesn't have a known base yet

#

realistically it's a minor thing, a day or two after a release all things are usually known and documented so it ends out fine

cobalt wolf
#

I notice a lot of druid things that are not supported in pob yet, like "Inevitable Critical hits".
Is this a work-in-progress thing?
or is this put on hold because it's hard to implement?

frank drift
crude bane
#

Does the item id ever change? ( In the public stash api) Like if the item is crafted or divined, for both or just one? I have assumed that it does if the item ever changes in any way, but I just want to make sure

rich lake
carmine merlin
somber pasture
#

Is there any type of free cam / photo mode tool that exists for POE 2?

worthy cape
#

Anything like that which directly interacts with the game client is strictly forbidden by the Terms of Use.

somber pasture
#

Is the addition of an official photo mode on the roadmap?

lone ingot
#

I feel like that would need to be a thought of before designing all the models, my assumption would be that things are designed knowing that the camera will never see certain things right now

worthy cape
#

Best you get in-game atm is something like PoE2's MTX wardrobe or the inventory views of the controller UI.

somber pasture
cobalt wolf
#

I seem to recall GGG had a tool like this where they could pause the gameplay and move camera around with different angles.
It's how they made some of their promotional material.
But i suspect we won't get our hands on it.

#

Imagine the impact on gameplay.
First and obvious problem is that it would be like cheating if we can freely move camera around and look around the map while paused.
If players then can't find anything interesting in the map then they would quickly just exit and try another map without the need of moving around and fighting monsters to explore.

spare lance
#

I'm just working on a little something something.
Implemented a fully working passive tree in the web

tall oyster
#

An interesting way to respond to me asking if it was improvements to the other project lol

#

Well aware of the time things take

#

Web passive tree been done by many, including myself so I'm just curious what improvements you are doing compared to things out there already

#

With the upcoming changes with being able to do most of this in game I'm not sure what the benefit would be for yet another thing like this

spare lance
#

Do most of what in the game? I'm not sure of what you're saying.

#

i use STT so if i stutter it appears

#

The new build system that they've added is just for importing builds from like external tools.At least so far, that's my understanding.Like, I've already implemented it myself.

tall oyster
#

Not trying to come off negative, just not sure what you are trying to accomplish that hasn't been done already

spare lance
#

Yeah, but that's what everyone says, right? Oh, so-and-so has already done that. Why build an ARPG when Diablo exists?

#

Why build an FPS when Counter-Strike exists or Call of Duty?

#

I'm not trying to be argumentative.

#

I'm just pointing out that I've heard that many times before, and it's not really, well, it doesn't really bother me.

#

Yeah.I don't see it as an argument.

tall oyster
#

I'm just simply asking what you are trying to make better than the other options lol genuinely

spare lance
#

not necessarily trying to make something better.

#

But one thing I will say is that the path of building is not really an accurate representation of a character in the game.

#

and the the analysis that you can do in there is pretty limited and not accurate.

#

But yeah, I've had this conversation before, and people shot me down, so sorry if I came across as uh strange about it.

tall oyster
#

A lot of the data pob is obtained manually, I think many people are naive and think it's doing something wrong when it's just not something automatically coming from the game files. Also not making any claims here but I've seen a large influx of vibe coders thinking they have this brilliant idea that only they thought of and will magically be able to make something that hasn't been done before. Most of the time they fail because they lack the actual understanding of how things work.

#

I'm not one for gatekeeping but one of the most annoying things to come out of AI in my opinion are the vibecoders that think they can accomplish things magically that weren't possible before or that developers couldn't do before or think of before. Like some things haven't been done for a reason, some things are just simply not possible, or they are actually just bad ideas.

oak estuary
#

Yes, especially considering it's against the ToS to decompile the exe to do so.

spare lance
oak estuary
#

I'm not sure what your plans are, but in other places you've made it pretty clear that's what you're doing

spare lance
oak estuary
#

You asked if they'd be upset, you still haven't made it clear what you're building, so I answered with the context I have

spare lance
spare lance
# tall oyster A lot of the data pob is obtained manually, I think many people are naive and th...

Yeah, I understand that POB has a lot of manually gathered data. I already knew that, and that gaps exist because the game mechanics are not exposed, right?

But it sounds like you're making assumptions about what I'm doing when I never said anything about what I was doing. In terms of my process

The passive tree screenshot isn't a project, it's just a visible piece of the UI that I was working on.

Personally, i have decades of experience as a software engineer.

I'm not really sure why you're preaching to me about vibe coders and AI tools. Like, it's kind of weird, man.

#

This is insane. Like, I'm getting attacked in every channel I go in. I'm getting attacked.

#

If it's not the general chat, people dogpiling me, they've now come into the ToolDev channel to dogpile me. Like, what the hell, man? This is the most insane community I've ever seen so far

#

And I'm blocking you, wires 77, so wherever you reply, I won't see it anyway.

tall oyster
#

What I was saying about vibe coders was not directly aimed at you my guy but, I think you are not understanding things here, not sure if it's a language barrier or what.

spare lance
strong patio
#

I speak for myself but your conversation a few days ago has likely polluted the help that you will receive in the future? Personally I found that you came off extremely combative and not really appreciative of the advice you were given.

spare lance
spare lance
# strong patio I speak for myself but your conversation a few days ago has likely polluted the ...

I'm not really sure what help you're talking about. I wasn't asking for help here. I just showed what I was working on, and then I asked a specific question about whether they would be okay with me recreating the UI.

I mean, if you think that I came off as combative in my previous conversations, can you point out which specific part you're referring to? Because that would really help me. I'm trying to understand. Like, being vague doesn't really help.

I don't know you, I've never spoken to you, I've had no interaction with you before. As far as I'm aware.

strong patio
#

Yep sure. Didnt want to dogpile you.

#

You stated that the schema linked here. https://repoe-fork.github.io/poe2/base_items.json

Was "wildly innacurate". When someone didnt really know what you meant by that. (I dont either btw. Although I haven't done much to do with data mining so I couldn't say if it is accurate or not)

However to someone elses confusion you then asked "are you a software developer?" or "I mean, can you write code?"

Then when the maintainer of poe2db.tw says that the file is "correct". With no justification or reasoning to believe the contrary. You maintained "it's not accurate".

#

I do not care enough to keep going

spare lance
# strong patio You stated that the schema linked here. https://repoe-fork.github.io/poe2/base_i...

That’s not a fair reading of what I said.

When I said “wildly inaccurate”, I was talking about the community schemas/data more generally, not necessarily that single base_items.json file in isolation. I’ve checked multiple files and found missing columns, missing data, outdated data, and things that don’t line up with newer patches.

Asking whether someone is a software developer or can write code wasn’t meant as an insult. I was asking so I knew how technical the explanation should be. That’s pretty normal in a technical conversation.

Also, someone being a maintainer doesn’t automatically settle the point unless they explain what they’re correcting. Maybe that specific file is correct. Fine. But that doesn’t disprove the broader point I was making about other community schemas/exports being incomplete or outdated.

So no, I don’t really accept that as evidence that I was being combative. It looks like pieces from another conversation are being pulled in and read in the worst possible way.

paper lynx
tall oyster
#

I'm not going to keep going down this rabbit hole but you know, if you want to be taken better why not contribute to the community then? If you are claiming something with the schema or data is inaccurate, why not contribute to fix?

spare lance
# tall oyster I'm not going to keep going down this rabbit hole but you know, if you want to b...

Because I'm building my own tooling right now, not maintaining those schemas.

Pointing out that community data can be incomplete or outdated. It doesn't mean I'm obligated to stop what I'm doing, and upstream fixes, before I'm allowed to say that.

If I find specific issues that are useful to contribute, I will. But that wasn't the conversation here, was it? The point was that my previous comments are being pulled in and read in the worst possible way.

tall oyster
strong patio
spare lance
strong patio
#

In the future. Probably best to assume everyone here can code. Also I would just try be a bit more accepting of other peoples understandings. Like. Maybe ask why they think a schema is accurate. Instead of just saying it isnt.

#

You'll be suprised how much you can learn from just being curious.

spare lance
# strong patio In the future. Probably best to assume everyone here can code. Also I would just...

I don’t think you’re reading that conversation in context.

I was originally assuming the person was technical, so I was speaking to them that way. Then from the replies, I wasn’t sure if they had coding/data-structure context, so I asked if they were a software developer or could write code so I knew how to explain it.

That wasn’t meant as an insult. It was about how technical the explanation should be.
I think you’re pulling one section out of context and reading it in the worst possible way. Please stop this now.

strong patio
oak temple
#

sorry if it's a bad time to budge in 😅 for trade searches, should I be using the following format?

https://www.pathofexile.com/trade/search/Mirage?q={
  "query": {
    "status": {
      "option": "available"
    },
    "type": "Blueprint: Laboratory"
  }
}```
![thinkies](https://cdn.discordapp.com/emojis/980924387333115914.webp?size=128 "thinkies")
strong patio
tall oyster
#

@spare lance you have the demeanor of "i use arch btw"

strong patio
#

But I also never would have asked that. I would have assumed I wasn't explaining what I thought properly.

#

Aight I got work. I think I said what I needed to.

spare lance
#

I’m done with this conversation. Please stop tagging or talking at me. I no longer care what you think about anything I said in the past or present or future. If you have opinions about it, feel free to tell the mods if you feel like it's something that can be actioned. Otherwise, uh, yeah, leave me alone.

rocky tangle
oak temple
#

building it for my tool's user (i.e they set the ilvl in app and wing type and then it pops (opens) the link for them, I just prebuild like the queries for them to use, i.e Prohibited Library, ilvl83, 4/4 wings)

#

trying to figure out the data types they are and how they are stored in the query format xd

rocky tangle
#

yeah that's exactly how then

oak temple
#

thanks, gonna try and figure out the
"heist_wings", format

#

:o thanks will definitely do

rocky tangle
#

you can simply investigate the calls made by the trade site itself when filtering manually and you just report that to your app, that's how I did it anyway, there might be a better way

lone ingot
#

like I am genuinely confused about that, because if it is and you follow that line of thought, how are there so many applications that have data that's consisent with the representation in game..?

strong patio
#

My understanding is he is saying the data is not always kept 100% up to date. Which I'm sure is the case.

lone ingot
#

if you are talking specifically about the missing columns in the schema, we know and have deemed them not worth mapping as they tend to be for functionality to the game engine that is not relevant to user facing applications

strong patio
#

But then if u need up to date to patch you can just generate the dumps yourself

lone ingot
#

that's 100% the case and the schema is best effort as well, there's definitely things that aren't perfect about it (like us changing GemEffects to GemVariants on SkillGems the other week templarLul ) but I don't understand how you're going to overcome that as a solo developer

strong patio
#

Might be wrong. You definitely know more than me

lone ingot
#

if you go down the path of schema mapping yourself, that means you know the data types and can serialise each table to a readable format but you'll have no idea what any of the columns mean and more importanly, how each table relates to other tables

carmine merlin
#

I updated all the schema maps for PoE 1 a few weeks ago and was planning on doing the same for PoE 2

#

The PoE 2 one is missing a lot more than the PoE 1 schema though so I know it'll be a pain to get it all done
At least it should make it much easier to maintain for the future though

lone ingot
#

I was just poking fun haha, that GemEffects -> GemVariants change broke my query and prompted a refactor kek

carmine merlin
#

Oh haha. I was hoping that any of the name changes I made weren't going to break someones code

lone ingot
#

I went from client side processing to a pipeline with observability now, worst case if it happens again I'll know and I can fix it

#

it's no harm though, my app is ultra niche and only has a small amount of users

carmine merlin
#

I have been wondering about column names as in PoB we use the name to try an infer what the data in the column is used for but a whole heap of the schema names were just the name of the table key

#

So held off on changing more names when I was updating stuff

lone ingot
#

yeah, some of the column names we use are definitely approximate haha

#

whenever I use the schema currently I tend to abstract into SQL and just alias column names, I think that gem one is specifically used for joining Tags onto gems

brittle oasis
#

Just want to randomly thank all the schema updaters, that's the only part I haven't really dabbled in and you guys are life saviors. wouldn't have got anywhere without it

lone ingot
#

so really GemEffects should just be called Tags or TagsKeys or something if you follow the semantics of the other foreign key column names

carmine merlin
#

I've always just updated our own PoB schema as I didn't really know how the public one worked but cause I'd like to get my game export project up and running and it relies on the keys being correct for it to work

lone ingot
#

correction actually, it's GemTags or GemTagsKeys 😄

carmine merlin
brittle oasis
lone ingot
#

nah, I just mean that a lot of tables follow semantics like this (screenshot is BaseItemTypes from PoE1 and PoE2)

#

where the column name is basically the table name it relates to, in PoE1 it tends to be suffixed with {name}Key but in PoE2 someone started to clean that up

#

it's not always the case but it's a fairly consistent pattern

carmine merlin
#

Yeah I think the PoE 2 one didn't get it as someone used our PoB schema to update a bunch of tables and I never use that wording

lone ingot
#

I prefer it without the suffix because the data type of foreign key makes it obvious that it's a key 😛

carmine merlin
#

Yeah I thought the same

worthy cape
#

PyPoE used to have a fairly strict XyzKey convention I believe; a lot probably comes from that era of mining.

brittle oasis
#

I'm sure there weren't as many files as today but I'm curious the first person who did this how long it took them to slowly decode and link what they did together 🤯 insanity

lone ingot
#

the schema is actually overall very good for the vast majority of data, I am using it to dynamically build SQL queries and that's been working totally fine

carmine merlin
#

When working through fixing all the schema stuff I vibe coded some additions (as I'm not familiar with the codebase and just needed something to work). Would be nice if they were able to be used by others but feel bad about making PRs for poor quality code that I can't personally state is good enough for others to use.

I had keys auto recurse through tables instead of going 1 layer down, ctrl click on a key row value and it populates a table with all the possible values and has a search, coloured tables names in the sidebar if they were missing data or incorrect, and a D hotkey to define a column instead of clicking the button everytime

The table and ctrl click to search for all tables at that index made key mapping about 10x faster

lone ingot
#

I posted a little bit about it in here while I was making, I probably need to do a 2nd pass but it's functional if you just want to pull out data by querying it with a familiar syntax

#

something I found useful with agentic dev now, you can give the community schema JSON to an LLM and it will generally understand how to pull the data and query the DB

carmine merlin
#

My goal for the schema stuff was so I could export every table and the data that they contain so that when changes happen it is obvious what schema has changed and also if we can figure out what unnamed columns do

lone ingot
#

there's two example queries in there that pull a transformed item join in a few languages

lone ingot
#

it's an interesting problem though actually

carmine merlin
#

Yeah I have a overview JSON that looks like this

#

Then actual full table exports like this

lone ingot
#

there it is, it's so lovely

worthy cape
#

I have a rough idea of when my ingestion pipeline stopped working:

lone ingot
#

I'd get nerdsniped to make something if it didnt exist 😄

#

do you plan to continue maint? it is actually rather useful I think

carmine merlin
#

Yeah Zaos one was definitely much more fancy than mine

worthy cape
#

@lone ingot All the code is technically up at https://github.com/orgs/pale-court/repositories, but setting it up and operating it is very bespoke; no ready containers or anything, and the bootstrap appinfos for older releases is something you have to hand-source.

#

I don't have much reason to operate a CDN like this these days, considering that I don't do any community mining anymore. Kind of limits the amount of energy I want to put into it too, as there's ultimately ~0 consumers.

#

I'd rather spend my hobby energy on something that benefits players, like doing grand things to PoB's engine.

lone ingot
#

do we archive bundles at all anywhere?

#

and yeah, I agree, it's also a trade off of human mental energy vs time spent solving it an automated way

#

human brain is very good at pattern recognition and very suitable for grokking dat files quickly

carmine merlin
#

I set up a steam thing to grab old version and pull the game version from the exe

lone ingot
#

ah so steam has a full archive, that's cool

carmine merlin
#

Yeah you just have to piece together the game version to the manifest ids

#

SteamDB does not like being queried so I just copied and pasted a huge list of ids and had it map them to game versions

worthy cape
#

I bootstrapped mine by hand-scrolling to the very end on the SteamDB history page, saving it all as HTML and slammed it through BeautifulSoup and a bunch of heuristics to get change IDs, build IDs, timestamps, manifest GIDs, etc.

brittle oasis
#

Yo thats what im working on as a side project right now. I probably didnt need every single patch but I wanted everything

#

Im currently in europe in the middle of fucking nowhere and only get 10mb/s

#

Taking forever to dl this shit

carmine merlin
worthy cape
#

I've got half a terabyte of deduplicated PoE1 data in Finland and it'll take days to download, getting like 5 MiB/s in headwind.

carmine merlin
#

are you excluding all the non English files cause that cuts down a fair bit. Also I'm just doing dats atm

worthy cape
#

Back when I started bulk mining half a decade ago, it took around two months to pull everything from Steam.

#

I wanted perfect replication at first, including reconstructing GGPK files with garbage and all in case there were something interesting orphaned in there.

#

If you don't need really old data, I strongly suggest ignoring anything pre-Heist as having a bundle-only pipeline makes things way easier.

carmine merlin
#

Also I had to go back in time and update all the schemas for each patch I went back which took pretty damn long

brittle oasis
#

I talked to zao about it a few days ago on ways to minimize the sizes but I didnt wanna waste time on that now so I'm downloading the entire client for every patch. I dont wanna do only dat/psg/csd diff, I'd like to instantly see all the other stuff too so I can secretly get a sneak peak of what might be coming

brittle oasis
carmine merlin
#

I went back to the start of 3.26 and then stopped as it was taking ages

brittle oasis
#

at 2.21tb i think I calculated the whole thing is like 6.5 or 7tb

#

yeah I might just skip the diff on dat files for now and only do them going forward, sounds like a pain

charred lake
#

I want to get some steamdb integration into data tools at some stage. Full time travel would be neato rather than hoping the CDN hasn't been pruned recently

carmine merlin
#

Yeah would be nice but half that dats wouldn't have the correct info going back a bit. OT files and other stuff would be fine though I guess
Think you'd just need to make a big map of steam exe manifests to the steam data manifests so you know what game version the data manifests are from

velvet fog
#

Old archives are of little practical use, so I won't spend too much time processing them.

lone ingot
#

I think the main use is like @carmine merlin said before, knowing what changed and being able to get a head start on knowing where to look, what to fix, etc

worthy cape
#

As the only version indicator is the EXE, if you have say multiple 238961 manifests with a single 238962/3, the best you can do is attribute it to a particular EXE version. Similarly, you could have multiple EXE versions for a single data manifest, when there's only code changes.
I keyed it both off build_id and EXE version in dat-scope, which is about as much information as you can expect to have.
Rollbacks and republishing builds is fun, makes the chronology a bit iffy if you try to have a strict ordering of changes, in some cases I go linearly on change_id (and thus wall time), and for some the build-id is fine enough. Also one of the reasons why I allowed comparing any-to-any by build ID in Scope, as that puts the onus of identifying and investigating rollbacks on the consumer.

#

Unrelated - not that torrents help much in mining these days but the RotA FAQ notes this:

Yes, we will make the torrent file for the standalone PC client available for predownloading the day before the launch.

velvet fog
#

useless torrent

#

Sometimes torrents are so slow that they can't finish within 12 hours.

tall gust
#

Does the console version update the day before the league or is it on the tuesday before? I don’t know how annoying microsoft is about updates not on tuesday anymore, but Chris Wilson in the Jonathan interview mentioned having more breathing room for testing before a league launch because of console simultaneous deployment and I thought it may be related to this.

Anyone know? and has anyone poked at the console builds to look for anything fun to mine?

kind dirge
#

I caught that comment by Chris as well and thought it was interesting.

velvet fog
# tall gust Does the console version update the day before the league or is it on the tuesda...

PC and console version share same realm.

https://www.pathofexile.com/forum/view-thread/3931070
Will there be a predownload?
Yes, we will make the torrent file for the standalone PC client available for predownloading the day before the launch. Console players will also be able to download the patch prior to launch. Please note that only players with access to Path of Exile 2 will be able to predownload the patch.

spare lance
# lone ingot can you provide an example of where it's inaccurate?

I'll use gemeffects as an example, since thats the one you brought up.

GemEffects.GemTags: [GemTags], but the values do not behave like a GemTags FK/list.

ex:
if you treat the field as GemTags, Firebolt maps to row 6, which is bow; Ice Nova maps to row 7, which is melee; Leap Slam maps to row 8, which is minion. That does not make sense for those skills.

So my point is not "public schema is useless" It is useful for lots of tools, obviously. my point is that for my use case it is not.

(this is my current understanding, not claiming everything i say is 100% correct, feel free to correct me where i'm wrong, this is just what I found alone, and yes as a solo dev i mapped every table, with data type and column names, with evidence and confidence score. Are some wrong? probably, but i have made that clear with eviidence chains)

carmine merlin
#

These are the tags for firebolt

#

Public schema is correct, not sure how you're seeing row 6

velvet fog
#

He probably misunderstood; 6 is FK.

carmine merlin
spare lance
tall gust
cobalt wolf
#

Has anyone had the idea of just providing some skills and equipment and then coding a search algorithm that picks supports gem and passive tree points to optimize damage and defence?

Since the logic is in pob then maybe it can use the code from there to calculate the stats.
I think the search space is quite large so it would probably need to be a bit greedy.

brittle oasis
#

pob should have a heat map on the tree that tells you what the best next nodes are

cobalt wolf
#

ye, but you can't rely on that all the way.
There are combinations of nodes that provides better results.
so for example crit investment vs no crit investment means value of crit multiplier is different

#

that heat map is more useful when most nodes are already filled out and decisions has been made

#

and then you have to consider the pathing to those node as a cost

worthy cape
#

Search space is xbox hueg and the evaluation function is quite expensive.

#

Kind of hard to do simulated annealing and genetic algorithm kind of things too.

cobalt wolf
#

Probably doesn't help that pob code is lua 😛
So when are we getting the pob in rust??? JK

#

But really, i think it can be done if we make the algorithm a bit greedy and then try to run it as multithreaded so the stats can be calculated at the same time for a set of children

#

Is there some function in the pob lua codebase that could be called?
something that takes in a set of equipment and passvie points and spits out stats or something?

worthy cape
#

One of the sad things about shotgun parallelism is that it's only a linear increase in capacity. If your problem domain has larger complexity, you're going from scooping an ocean with a teaspoon to scooping an ocean with a handful of teaspoons.

#

I'm sure that there's a pile of peeps that have tried before, but the absence of outcomes is kind of telling.

tall oyster
carmine merlin
#

Yeah that's the engine changes to get it working on Linux but we're working on a rust version atm. I'd like to have it ready to start testing for the next poe 1 league

cobalt wolf
#

Ah interesting, would be really nice to have something on Linux that doesn't require wine/proton.
Although it seems to just be a wrapper around the lua codebase(?)
So i wouldn't expect much difference in performance

tall oyster
#

Nice nice, once it's done in rust I'll ask for zig rewrite lol

carmine merlin
#

It's entirely rewritten in rust with a ts frontend and can work on all platforms

tall oyster
#

Tauri?

carmine merlin
#

yeah

tall oyster
#

Noice

cobalt wolf
#

Ah okay, i thought it was a wrapper around the existing lua codebase because it lists a bunch of lua runtime dependencies

lone ingot
worthy cape
#

Local doing their best to obsolete me HypeLit

gilded tree
carmine merlin
#

Currently works fine on my windows PC and another devs mac atm

lone ingot
#

tauri is great but has some minor perf issues on linux, which is more due to webkitGTK being kind of poopy than anything

carmine merlin
#

Who knows with all the other wacky setups

tall oyster
#

I've been doing a lot with Tauri and tbh I think there is a lot of fear mongering about the whole webview stuff on linux

worthy cape
#

If the new thing works across the install base and dodges the worst of LuaJIT's fun, I'm all for it.

tall oyster
#

I have some things working great on cachy as well actually

gilded tree
cobalt wolf
#

Actually why does the rust codebase require lua runtime?

Path of Building's Lua code requires the following C libraries:

Lua-cURLv3
luautf8
luasocket

lone ingot
#

if you want to see the perf problems of webkit on linux first hand, get my app and make a giant list of filter rules and then scroll through them

worthy cape
lone ingot
#

there's specific things webkitGTK does that have very bad perf, scroll animation being one of them

gilded tree
lone ingot
carmine merlin
#

We just moved to the chromium one on our dev branch and its heaps faster

gilded tree
#

Nice!

worthy cape
#

What's the scope there? Full RIIR? Rust runtime/UI around LuaJIT? Other?

lone ingot
#

I'm definitely pro tauri though, the only other option I would use for UI on desktop apps right now is probably gpui

#

I tried it just recently and it's very nice, though it doesnt have a stable API yet

#

(it's the renderer used in the zed editor)

gilded tree
tall oyster
lone ingot
#

gpui is still receiving updates on zed main branch, just yeah, I think full focus on it is on hiatus

gilded tree
turbid cosmos
lone ingot
#

generally speaking though I like webview, it's just no matter what with webview you will eventually have to pay the price for it being HTML, which means you'll be closer to a browser perf than native

lone ingot
tall oyster
turbid cosmos
#

Cool

lone ingot
#

I'm a big fan of gpui API and it definitely performs really well though, hoping it keeps getting worked on

#

very much like that they took the familiar tailwind API rather than reinventing the wheel

#

I actually considered migrating chromatic to it before I found the tauri cef branch lol

tall oyster
#

That does look pretty nice, I'll have to poke around a bit with it

gilded tree
lone ingot
#

you can just pull it and cargo run and can have a play around with it

tall oyster
lone ingot
#

I think iced for rust apps may also be a good choice, system 76 are using it for building COSMIC desktop (which is great btw)

#

haven't tried it myself but the fact that system 76 are building/maintaining it means it'll stick around

#

I dunno, I just like HTML and especially tailwind-like APIs, UI is very hard and CSS for all its complexities at least let us settle on something that covers all cases

tall oyster
#

@lone ingot I feel like you would be a fellow Svelte enjoyer then?

gilded tree
#

Svelte \o/

lone ingot
#

I like solid and wish the industry would just use it instead of react

#

but yeah, anything that does signals first class, it's all kind of much of a muchness

gilded tree
lone ingot
#

solid is good because they have a deeply nested reactive signal implementation, the whole filter representation in chromatic is reactive on every property

#

if you've used mobx, it's like that

tall oyster
#

I've heard good things about solid, lately I've just been doing more project with Svelte and it's been pretty smooth experience. Did some Nuxt and TanStack for a bit, all have their pros and cons

gray willow
#

hey guys ! I've been the one behind the rust rewrite, I've been working on it since last october, it takes a long time to completely rewrite pob from scratch ! I didn't want to do a simple port, since it wouldn't solve the perf issues, so it's really a different architecture that uses rust features and parallelism when possible 🙂
I've been using tauri for the front end, and it was working great on my mac and windows, but when I switched to linux the UI was really slow on the tree view, so I switched to the CEF branch to use embedded chromium and now it's super fast on linux (as fast as windows/mac), the downside is that it adds 350Mb for the first install, and it's not an officially released branch yet (although they keep it up to date with the main branch). I had some small issues that I fixed (like the wayland window wasn't properly creating the GUI, it added ugly blue borders, and I didn't have access to devtools).
I have the chance to have window/linux/mac available, so I'll be using the three and make sure it works well for all platforms

lone ingot
#

if you know react but don't like their state model then try solid and you'll be convinced

gray willow
#

But technically, we could just dump tauri and switch to another web alternative, the architecture I wrote supports that, it could run on a website for example

gilded tree
gray willow
lone ingot
#

personally don't really care about app size these days, ux & perf is always a higher priority in my mind

#

it's unfortunate that webkitGTK sucks so much lol

cobalt wolf