#tooldev-general
1 messages · Page 27 of 1
It doesn't include the stat descriptions specific for gem qualities and was missing something else last I checked
I wish ggg actually shared schemas/models, since we have so much external tooling anyway
Think it was attack damage for particular gem stat sets
the main central export is repoe https://repoe-fork.github.io/, which uses the same tool (pypoe) as the wiki but exports in json rather than wiki text
I've asked in the past and was told no
I mean is it copium. Pob existing is practically earning them money.
Most streamers play more since they pob stuff
Which translates to more money
They should embrace poe being api/tool friendly
Damn
Appreciate the replies guys, ill sift through all this today
I do get help when something has changed in a league update and I'm not sure what it does though.
Might be to limit bad actors perhaps, I'm not sure on their exact reasoning
They do have a lot more columns internally that don't get exported to the client though
plus there have been performance issues with the wiki servers so it's a bit scary making changes, like we don't want to put out a call for volunteers and get random amateurs bringing the site down
Hmm
Which stats descriptions file should I use for gem qualities?
I've noticed that some gem quality are displayed incorrectly, but I haven't investigated the cause yet.
Same file but need to use these ones for the gem quality rows
GGG stance has been pretty consistent with letting community discover things and datamining or exposing everything in an API would nullify majority of that
PoE2 has become increasingly conservative with its data; even basic mod weights can only be derived by recombinator
So the quality lines use a gem_quality line if it exists and defaults back to the normal ones if not
oh, I ignores all gem_quality rows /sadface
Do you guys keep your schemas with the pob source files on github or separate?
Whats width for, or is that for the ui
Other things I figure out were the GrantedEffectDisplayOrder in GemEffects
Appreciate it, cheers
GGG also groups the dat files into folders but we don't get that info in the game files either. Would be nice to have
Out of curiosity, what else is do you guys have to scrape off the trade website or figure out manually or elsewhjere to get info that isnt available from the dat files
Atm it's just uniques, foulborn mod swaps and some mods in poe 2 that come from the trade site
For PoB there are a lot of mechanics that reuqire in game testing for us to properly implement
e.g. server tick rounding for trigger skills, rounding behaviour of damage mods so stat like armour are correct, specific mod interactions etc. There is a lot of work in making sure each skill s handled correctly
yeah but whats the (better) end goal? Better/more consistent tooling, or letting developers have their fun datamining?
GGG has hidden a large number of files; if the processing can be done on the server side, it won't be stored on the client.
Therefore, for PoE1, obtaining gem vendor information requires manual maintenance.
l don't think ggg have ever answered that question
i think they would actively gain from exposing a TON of game info via api calls
skill gems, tree structure etc
let people develop cool shit and play even more
From business perspective, probably lose as much due to "competition"
what competition?
we datamine stuff and publish it
data is gonna be out either way, may as well reduce friction
i mean i get the fear behind it but idk
It's the same as going to a fancy restaurant and ordering food - you can see the ingredients on the menu, but there may still be something that the chef does that can't be easily replicated at home
why would they spend money and hours on that when the community does it already
Let everyone suffer together
@quick basin made this recently as well that maybe might be handy for you https://github.com/juddisjudd/ggpk-tool
Tool for extracting and parsing assets from Path of Exile 2's Content.ggpk file. - juddisjudd/ggpk-tool
will definitely have a look, after im done trying out pathfinder lol
How do guys get the effect description of Runes/ Soul Cores / Talismans in PoE2?
I tried using the data in soulcores.datc64 in combination with Stat_descriptions.csd but not all soul cores have values in soulcores (for example: BaseItemType 631 Countess Seske's Rune of Archery)
SoulCoresPerClass.datc64
do speed runners use those things that show the layout or would that be against speed runs? like what i think Lailloken has in Exile-UI?
im going to assume they more than likely try and remember layouts for speed in general
Kind of off topic, but I've never seen a top runner using them, though there's no reason you couldn't. However, knowing them from memory is likely faster than using an overlay.
not off topic, there was a point tool wise lol but thats sort of what i thought
tbh I kind of get ggg not wanting to expose everything but at the same time, publishing a schema dump of data types for the bytes in exposed dat files in GH would be pretty nice for us 
would be nice, but also it's more work so
even something simple like byte count per column or w/e, don't even name them
just prevent us from having to do the manual scans
dont they have columns internally thats not exposed to the client? ( the .dat64 and .dat64c are different right? ), so they would need to maintain a schema that is not used by themselves?
or whatever the dats re called, its been ages since I looked at them
I mean I'm assuming they have a tool that goes through their column editor output and packs it into the dat format and pkg'd into client
this is the editor btw (1:09) https://youtu.be/JZqaI2XNNdI?t=68
In this episode of our Developer Interviews series, Eben talked to Zaccie, a Game Designer at Grinding Gear Games whose work focuses on monster balance.
would already have the concept of public facing vs server only in the packaging process otherwise (assuming here) there wouldnt be a unified editor
where's the fun if they release everything
haha I mean we'd still have to do a lot, it would just remove some of the guesswork between updates
the community schema is best effort and many things depend on it, would just help there
Ah yes, the
process.
haha for all I know it's just the raw output getting encrypted and put straight in
all I'm saying is that there's a point where it goes from editor to packaged and at that point, the data types are known
Fun fact - in my mind datc rhymes with yahtzee.
Kind of apt as the output has zero punctuation.
Thanks!
It worked perfectly
Funny you should mention that. It has been draining my sanity this past week 😵💫
Have layouts changed each patch or been consistent?
Actually nvm definitely from 0.2-0.3
entrance/exit locations seem to change most times
aside from explicitly redesigned areas
I assume just doing ocr quick on entering the scene and comparing with whatever gathered data of common entries w/ correlated layouts?
Err not ocr, image compare
it might work if you had enough data, but you'd have to re-gather data each league potentially
Yes that would be a pain
there is a topologies files that describe the layout
Yes, the campaign codex people have been using them quite extensively the past two leagues. But for some areas, comparing the topologies with the actual output is still very hard. It's not like you can learn those and then "sight-read" zones when you run them for the first few times.
mirroring and rotations doesn't make it easier 😄
Much like the Pirate's Code, they're more what you'd call "guidelines". 🦜
Are there any popular tools that use the stash tab API for poe2 yet? I know some select few have character data access in some shape or form, but can't think of an example that needs stash access
Ah damn, first thing to check. Thanks 😅
Where does pob or anyone get their orbitRadii info from? Haven't been able to find that anywhere
The values should be provided by the official, it's not ingame file
makes sense since it doesnt change i guess, ty
How do you retrieve list of poe2 leagues?
https://www.pathofexile.com/api/leagues?realm=poe2 doesn't seem to return the correct ones 
Thanks!
I thought the reason the arcs art was 90 degrees was so that the texture could be mirrored and repeated, but I'm still new and trash at opengl so might be missing something but anyone have any idea why there is an extra pixel at the edge to break the mirroring? You can see at 0, 90, 180 and 270 degrees just a slight break even ingame. Is this intentional for some reason im missing?
how are positions on large cluster jewels for the noteables calculated?
There's hairline cracks here and there in the UI, at least if you're in 4k.
Probably just happenstance.
game is now unplayable because of this 
If that is in your own code, maybe make sure you don't have half texel offsets wrong in some way.
me personally i just draw the connections instead of using images
that pic is from in game 😁 the texture just randomly has an empty pixel on the edge. wasnt sure if i was missing something or not
you made me check the 4k one, that one has 3 pixels wtf
Fascinating
since i cant unsee this anymore enjoy
this is going from notable to passive on both accounts, why does one have a thicker inner line
i mean i know its using a different radius line but ..
I forget what I gleaned from RenderDoc last time, but the game might have inset texture coordinates if the glitches you see is from your own stuff.
I never knew such a tool even existed, that will actually come in handy later but you keep giving me more stuff to play with wtb more time
Item filter time: https://www.pathofexile.com/forum/view-post/26469528
I thought this was only a POB thing, this is in game as well 
I am very stoked that they decided to finally expose AlwaysShow!!
(these are the items GGG has hardcoded to be impossible to hide with filters)
GGG: you should not hide these items, trust us
Player: pft, whatever, you're not the boss of me
tbf, back during archnemesis league there was plenty of reasons to hide parts one didnt care about yet it wasnt possible
not allowed to hide relics because they're "quest items" 🦀
When writing item filters i want to hide common normal/magic bases, but i think there are some drop restricted bases out there.
Rather than listing all the drop restricted bases first i wish there was like a "DropRestricted false" that i could put into the item filter to only filter on the common ones.
Would this work as a suggestion to the dev team? or is there an easier solution to this now other than listing out the drop restricted bases in a show block first?
0.4.0 OAuth changelog, nothing too interesting:
https://www.pathofexile.com/developer/docs/changelog#4-4-0
they're documented here: https://github.com/grindinggear/skilltree-export
no orbitRadii information
it's in the .json somewhere
but missing index 8,9,10
those are poe2-only
Have we seen any examples of bonded mods? I can't find any.
They're on socketables (now coined "augments") and only apply if the character they're on is a shaman with the notable allocated
https://repoe-fork.github.io/poe2/base_items.json
Do we have any idea when this would be updated?
is it like right after the update? or a few days after?
Depends how much the data files change
Alright, thanks for responding 🙂
So i take it you are prepared 😛
i have a small hope that they will remove the poe1 specific items
or atleast give us some way to classify them
depends how good my league starter is
Has anyone finished downloading the torrent? My internet connection is still 18 hours away.
I want to check if the Content.ggpk file in the Torrent folder contains an index file.
Nope, closer to 24hr for me. Will see if the swarm picks up over night and we get a little time with it before the patch ships.
I just had the worst idea. Run bun_extract_file over a SMB connection to the other end of the world.
Have you downloaded the torrent yet? Can you test to see if index.bin is present?
43 gigabytes in now, the linear scan for GGPK chunks is murdering throughput 😄
can anybody share some data from a few api endpoints?
I don't have access to them yet but i'd like to start writing something, don't wanna do it blindly. i sent ggg an email asking for access but with poe2 around the corner i doubt i'll get a reply any time soon
i'd like data for these endpoints
GET /profile - somebody with twitch attached preferably, any big streamer will do
GET /character[/<realm>] - i only care about poe1 and PC realm, so omit the realm path entirely
GET /league
GET /league/<league>/ladder - if possible 2 requests here, one with class sort, and one without any sorts
there are a lot of endpoints here which aren't listed in the offical docs...are they just undocumented to begin with?
Only oauth apis are officially supported
don't think l've ever tried accessing the files during the downtime before, is forbidden index normal?
i believe thats normal
I have it, but my data has 2 files...

I'm getting errors trying to read any of the stat description files, saying they dont exist hmmm
metadata/statdescriptions doesn't exist in the standalone ggpk
oh the data structure changed
Yep also just saw the balance folder. They're in there.
ah stuff just moved around a bit interesting
@carmine merlin No new tables it looks like but I think your guess was correct.
{
"tableName": "PassiveSkills",
"status": "mismatch",
"actualRowSize": 392,
"expectedRowSize": 359,
"difference": 33,
"rowCount": 7676,
"columnCount": 53
},
Need to fix something with the index file as I can't extract stuff atm
Not sure if the index file location was moved or hardcoded before
do you have a diff for the whole patch?
Yeah no new tables.
Thanks
Lots of red nodes...
Had no clue that looking at the ggpk using visual ggpk3 blocks other programs from reading the index file and exporting dats
Tree up with Oracle visible though: https://poe.ninja/poe2/passive-skill-tree
Explore economy and build overviews for the action role-playing game Path of Exile.
hello is poe2 db open source ? I
has BaseItemTypes moved? i've been using snosme pathofexile-dat to extract data from patches the past year, and apparently it's failing with 4.4.0.1
all tables are now in data/balance
I see https://snosme.github.io/poe-dat-viewer/ also seems to say waiting for index bundle like an earlier screenshot above indicated. Oh well, vscode extension update will have to wait then 🙂
waiting for path of buildiong update
Do you guys know if the community-schema for ItemClasses no longer matches the datc64? we are having trouble parsing it, and it seems like it can't be opened in https://snosme.github.io/poe-dat-viewer/ either
just getting "you may need to adjust the patch version"
just out of curiosity is there an mcp for poe2db or similar ?
yeah im, uh, definitely not going into my global npm packages and editing the js files there and manually adding "balance" after "data"
is the Exiled Exchange 2 fork still supported / u2d for .4 ?
yes
sweet just grab from your repo?
yes
thnx and thnx
There are definietely new tables for soul cores and uncut gems
Ah. I wrote the comparer without something to diff against..
It totally works though 😛
For people working on skill tree stuff, the 2 new keys in PassiveSkills refer to Ascendancy.dat and PassiveSkilltreeNodeFrameArt.dat
[CRIT Client ***] File Not Found: Metadata/Effects/Spells/hit_and_blood/FX/PHYS_blunt.pet. Using fallback PET file
You guys see it too? (dozen of similar lines in logs\Client.txt)
where does the updated tree for poe2 come from on poe.ninja/poe2 ?
Game files
ok, so it's accurate
they ruined soulcores D:
Oracle nodes only shown on ninja now if you pick Oracle.
if there are any GGG devs lurking; is this a typeo or a bug?
The + could be a bug on my side.
i mean the title vs the actual benefits
is anyone mining images & new base type stats? 👼 any source online yet?
i'd assume Neversink already has
I've almost got the soul core dats fixed, just one more key missing
Makes more sense now though. The old way was quite jank
thank you @velvet fog ! 🙏
I would be amazing to have an MCP for the skill tree and other datas maybe i should work on it sometimes
yea one of the two is wrong
No. It gives "Energy shield" (line 1) and "Armour applies to Elemental Resistance" (line 2)
Except the line says "Elemental Damage" while the title says "Elemental Resistance"
Surely GGG didn't remove the tags from goldmodprices.dat out of spite right?
Stat is armour_%_applies_to_fire_cold_lightning_damage I think.
Node name is probably an oversight.
(wildly guessing, didn't look proper)
Hah too much going on in that tooltip.
Mods.dat has the boolean spawn weights now. No longer have to rely on the gold mod prices @velvet fog
That's nice
Should specify it's not the weights of the mods, just where they can spawn
stat descriptions parsing is always a joy
@modest path{"poe":"3.27.0.7","poe2":"error"}
oh, not your fault, actual game is down lol 😄
I see it started working again when they did
Is there any way to download the ggpk without the game installer?
I need the skill videos which are not part of the data afaik
For exploring what's in the ggpk, https://www.ggpk.exposed/ is the best imo
If you want to programmatically get the latest versions of things out of the ggpk, there's quite a few ways for various languages
So what is the mechanism for downloading the ggpk without the installer? I ask because I just don't have access to my pc where I normally have the game installed, and don't want to install it on the current one. The torrent seems inactive.
@fresh beacon if you're just after specific files, there's code to grab them from the cdn automagically with no requirements other than internet, without downloading the entire ggpk - e.g. https://github.com/adamthedash/poe_data_tools in rust
Thanks, I'll see if I can pull the bk2 files using that
I feel like videos might not be in the ggpk but don't recall exactly?
Hmm, the listing on poe_data_tools appears to have broken
Oh, no, the globing just got require_literal_separator enabled but the default is still * instead of **
cargo run --release -- --patch 2 list '**/*.datc64' still works
They are in the game files but not in the exact location we have in the client
Can't remember where they actually are
yeah assuming videos would be packed and not in patch server deltas
I would just clone your ggpk and use any tool to analyse it
Are they getting pulled in via a different CDN and merged into the GGPK by the client or something?
Hmm yeah I don't see any bk2 files after dumping the file list
Definitely not in the bundles
#tooldev-general message this could be related? maybe the nodes for those are just weird?
@charred lake https://github.com/adamthedash/poe_data_tools/pull/18 - Minor default glob and benchmark fixes
now
Thank you for the heads up! 👍
https://www.poe2wiki.net/wiki/Talisman
Do we know if any of the talismans are drop restricted?
like only dropping in certain areas.
Talisman is an item class of two-handed martial weapons that require strength and intelligence to equip.
why?
setting up items filter, i only want to filter out common ones that can drop anywhere from anything.
thinking of stuff like breach rings for example, those can not drop anywhere
I'm not aware of a single drop restricted weapon or armour base in poe2
alright, thanks.
Just because they haven't existed earlier doesn't mean that they won't be coming though.
Cultivated Vaal Unique search don't work?
wait is GGG using the same API strata for POE2 as POE1 ?
I mean 2 is literally a hard fork of 1 at a specific point in time
So the general answer to "is it the same" is "yes, if they haven't backported whatever you're talking about yet"
pretty much yeah, most things are the same except for the stuff that isn't, which is a slowly growing list
that said the core structure most apps care about (items, stashes, trade, etc) are almost exactly the same
Quick dev question: for PoE2 data extraction, is there a maintained tool or npm package you’d recommend to extract/parse Content.ggpk / .datc64 tables (using dat-schema), similar to what PoEDB/PoE2DB do?
wondering if there is there a recommended / maintained extractor (npm, TS, Python, etc.) for PoE2 Content.ggpk + .datc64 (dat-schema based), or is the POE2 GGPK Tool the current standard? that's being updated frequently
I suggest starting with the already organized archives: https://repoe-fork.github.io/poe2/
I'm looking at data from the currency exchange API, and I see an item called "Ign" "market_id": "chaos|ign". Anyone know what this is?
Mortal Ignorance
Thanks I literally just saw it in https://www.pathofexile.com/api/trade/data/static

poe_data_tools is compatible with both, and is very good either as a lib or cli utility if you want to efficiently get just the raw files you're after out of the game data without having to have the GGPK (or download much that you don't need).
It has some csv-dumping abilities based on the ivy schema, but if you want pre-digested stuff the repoe fork that was linked is one of the most used sources of that data so is very likely to be quickly fixed if if upstream changes.
I contribute to and use poe_data_tools because I want direct access to the raw data in rust without a bunch of bonus dependencies in other languages, and without other people's assumptions about how best to present the data for sane usage
Most community tools use a "schlorp the tables to json, then make meta-tables that are views into the data that people are commonly after" which is great for getting started quickly and not having to learn every relationship and interaction and bug in the data
@echo wren made this mainly for myself but you if you like a decent visual, supports auto-converting dds to webp, audio, etc.. https://github.com/juddisjudd/ggpk-tool
ACT 3 - 2nd half of questing. Still no Heal Well or Stash. Why do all players need to TP to town and go thru another load screen just for these 2 basic things of all other towns?
@rugged wagon this is the wrong place to ask
where can i address this? its been frustratin for many other players as well
the official forums
ok do u have link
wonder if renaming this to "third-party-tooldev-general" would fix the issue, but that name is too long
Barely anyone bothers reading what the channels is about; unless there can be added a note right above the chat "NOT IN GAME DEBUGGING", then dunno what can be done
And frankly, even that would make people blind
is there a bot command that quietly DMs them an explanation and some links?
also wouldn't fix it
speaking of filters - is there any poe endpoint where you can get filter(s) info or it's not exposed
?
That's just the id/name of the ones on the account right? As in, it doesn't contain the actual *.filter content
How is the progress on pob for poe2 this patch?
soon™
You guys are my heroes ❤️
(I don't work on PoB, just watch it)
I'd say adding a special tooldev interested role would help if the intention is to just hide it for the general population
the channel is already hidden by default. you either need to select it on the channel and roles selector or have show all channels enabled
I suppose you could have a role that lets you send messages here to avoid random people with show all channels, so at least they would have to click once more to be able to talk here. doubt it would change much though
Ah didn't know that you have to enable it already, guess it's just true Poe players unable to read then
Sometimes I consider reading, but then I remember that haha numbers go brrrrrrrr
Just run stats over the messages and react to ones from significant figures.
Got the new tree and skills in but missing some stuff that was meant to be copied over from PoB 1 and also an issue atm with updating old builds changing class
@velvet fog what do you use for the class id mapping as we’ve had the same problem in PoB 1 before where the new id is in the middle of the existing class list so it messes with old builds?
characters.IntegerId
does anyone know how to fix this? I have reinstalled it multiple times but nothing fixes it. When i press escape it gets rid of the error message but it keeps crashing when i do anything. F5 doesnt help either.
Check github issues before asking here fyi but it should be fixed in the next update. Have no clue what is causing it though
ohh alright okay, i will do that next time. Thank you! Do you know when the update will be done by any chance?
I don't know how long it'll take me to fix some bugs but probs in the next 3 hours
takes another 3 hours everytime some asks. it's the law.
ohh woww didnt expect that. I cant imagine how much work that is. Thank you for your effort :)
I can't believe we finally got the CX API with all those people calling it AH.
its an auction in a house, cant blame them
I may have underestimated how many PRs I forgot to copy from PoB 1 to PoB 2. Gonna be a bit longer
ohhh wow haha thats a lot. Yeah take your time, dont stress urself out. Thanks :)
+3 hours
PoB update out with all the new 0.4 stuff
realised after looking at ninja that the body parts stuff was in the API
Thanks for all your hard work! Really appreciate this tool. That was a LOT of PoB1 changes to pull in.
Yeah a fair bit more than I bargained for. Fixed our gh actions so it shouldn't happen again though
Good shit, tree looks 👌
Is it even possible to get "the unseen path" on other characters than the druid?
Noticed PoB now shows all the unseen path nodes for my sorceress
maybe we could need an option to hide them
We did think of hiding it like the game does but it's might be useful to see for theory crafting
I assume there will be other ways to get access to those nodes in the future
i see your point, my concern is that it just seems a bit harder to look through the tree.
it feels very cluttered with nodes that i cannot even get
I can see both sides to that argument. fwiw my intial gut reaction was it'd be nice to be able to hide for when I'm not theorycrafting Oracle as well. Agree with the clutter comment (which is a GGG design thing really, not you guys)
Hey GGG I can not login on the website, I don't use VPN although I am blocked from logging in
this is not a GGG channel. www.pathofexile.com -> forums
for forums you need to log in
sorry for bother than but I do not know what to do
you can still read the forums without logging in yes?
yea but there is nothing to do on my end i get an error that says I am blocked by ip so not sure how that would help
Thank you anyway and sorry to bother once again have a great day
you can also email support
hi, is pob available for chrome os?
should run fine through wine afaik
there's also https://github.com/meehl/rusty-path-of-building, if you can build it
do we have data for poe2 somewhere, preferably json.. for what affixes can go on a waystone?
ooo didnt realize there was a rust fork
My main tool i need to start converting over to Tauri (rust) because I made the terrible choice initially thinking electron would be fine even though I knew better.
What's wrong with electron?
resource hog, and also can have global contention issues, so the more electron apps you run the worse they perform
What is considered as resource hog? Like how much is too much?
IMO electron memory issues are generally skill issue and people mismanaging the codebase and/or barely using main process
A good example of that is vscode itself - it's super performant for what it does
I have first hand experience rolling the same app with the same functionality in electron and tauri and tauri always performs better, doesn't rely on chromium crap.
also smaller bundle size
What are the performance benchmarks? Not to sound like an ass, I'm always curious about people experiences with other frameworks and their motivations
Bundle size is a meme in 2025, storage is free unless you picked your HDD from 2000
i mean if i can ship somethin in a smaller package i will prefer that, sure we have much more storage but that doesnt give the excuse to allow things to just grow in size
Tauri by itself uses less memory out of the gate again if you do a perfect 1:1 with electron
mainly you see the performance in my app for example when you need to constantly be reading logs
if you arent working with files or like the winapi then sure probably not much of a difference
tauri doesnt need the full node.js runtime, etc...
I'm reading poe client.txt on a 100ms basis when I'm opening stacked decks and it never went more than 20mb on ram usage what I feel like is quite a heavy task as I keep writing to sqlite at the same time
do the same with rust, im sure you can trim it more
At what cost though?
having to write rust? :p
Trimming 10 maybe 15 less ram for more headaches because of native webviews
?
i mean personally i havent had more headaches
The borrow checker doesn't allow unsafe headaches.
Is it universal across other platforms? As in, Linux/macos
yes
My main problem with tauri ~1 year ago was that the webviews worked differently for each platform. Had rendering bugs / problems on different platforms - electron was working fine.
Ended up with native solutions but yeah, that was the main problem.
Interesting, suppose I just haven't had these issues with what I've worked on,. I'm shipping to win/linux/macos now with a few tauri apps and not having issues.
Can be fixed now, can’t tell
if only there were other solutions than electron and rust
There is flatter iirc
Used to mainly be a C# developer years ago lol
heard good things about avalonia i guess
played around a bit with imgui with c++ but I just never liked using it
From what I've heard about Tauri platform headaches, it's usually Linux users having simply broken apps
wouldnt doubt it honestly
thats what people get for using linux
i've been curious about slint but have heard mixed things there too
what's really gross is what I've had to make in my day job, powershell GUIs 
Though if you do file system operations, I do wonder how rust compares to electron; in my proof of concept I briefly used electron-store to write things to jsons and I've been consistently hitting I/O clashes and it sucked
yea, i would definitely give a try, its honestly reletively easy to swap from electron to tauri, if you use like ElecotronAPI calls then of course you need to fix those but yea
sometimes my entire Windows locks up when two Electron/Chromium apps are writing to disk at the same time, I don't know why it's so bad but it's bad
probably windows contributes to that of how dogshit this system is nowadays
funny thing the new version of Teams runs on Edge WebView2 and I feel like it worked better when it was electron
but also doesnt help all the copilot and bs they keep adding to it
so many not a fair comparison
I'm genuinely curious how discord manages to peak up to 4gb of ram though, that's nuts
yeaaa, dont think its going to get better with all this other stuff they are planning to add
sort of miss the simplicity of teamspeak lol
ugly as hell but worked great lol
Sidenote but reminded myself about 1password using electron and rust at the same time
interesting
- self hosted vault warden user myself
1pass not bad though, actually nice for the 2fa features when you need to share with a team
does this still apply? i am not sending any data just listening and I am getting the same code (1008)
now that is a necro
it was the only thing I could pull up regarding 1008 searching in here 😭
i read it and wrote code before asking
I am 100% sure i am not sending anything because I spend half the day writing a ws lib myself to make sure NOTHING is sent
ws frames are funnnnnn
i can also offer a 1006 code which i got when i was sanity checking running mitm on my own code and another lib
but could be my code for mitm (most likely is)
doing anything to do with livesearch websockets isn't a great look anymore unfortunately, so I'm not going to help here. Make sure not to automate anything or you will risk a ban
anyone here happen to already have renamed the skill, support and spirit gems images with correct or closer matching names to what they actually are or am I going to have to be busy tonight? 😛
But internal names are so much fun.
anyone know where the base art is for maps?
checking
like these?
2ditems\maps
2ditems\maps\atlas2maps\new
2ditems\maps\atlasmaps
2ditems\maps\endgamemaps
If I had a pinecone for every time I've looked at the wrong skill implementation, I'd have a non-zero amount of pinecones.
Trying to figure out what file points to the skill gems for example Poisonburst Arrow 2DItems/Gems/New/RangerPoisonArrowSkillGem.dds but only finding Art/2DArt/SkillIcons/4k/RangerPoisonBurstArrow.dds and trying to work with that naming is hurting my brain
ItemVisualIdentity > BaseItemType.Name
oo would that give me what im looking for that i mentioned above?
so this and not the skill icon
np
Technically BaseItemType.Name is not the name used on the gems in game but is the same for 95% of them
ill take 95% :p
gemEffect.GrantedEffect.ActiveSkill.DisplayName is the one actually seen ingame
BaseItemType.Name is what's used for skill names on the tree, who knows why that distinction was made though
interesting, fun times for me ahead now
oh right the support gems use skillGem.BaseItemType.Name for names
how can i see this data?
That’s from our PoB dat viewer. Not really sure what other dat viewers out there exist other than Poe dat viewer
Our PoB viewer recurses through keys though which Poe dat viewer doesn’t
ill leave it to the experts then, above my pay grade
thanks, lost trying to find where that gem info is though
baseitemtypes, skillgems, gemeffects
anyone have experience with buff tables, im just looking if exists any table that give the "buff duration", i was able to get the stats from table, but im trying to figure it out where can be this "10 seconds"
in bufftemplates there's an unnamed field with values 10.0 which I am assuming is buff duration
Checking i did t see that number
yeah I'm pretty certain that number is at least somewhat representative of duration
AncestralJadeHulkWarcry is 20.0 which correlates to the warcry duration from one of these minions https://poe2db.tw/us/Ancestral_Spirits
same as AncestralBuffHornOnsalught, same situation
thx 😄
also all the shrine durations being 20 seconds, makes sense
should probably name the field in the community schema I guess
so close and i dindt see, i extracted the stats but didnt see it xD
thx a lot 😄
now checking the value 20 for delay 😄
assuming some durations are just hardcoded
isnt there a buff icon while its "recovering"?
yes
then assume its done via some buff
yep but not bufftemplates for this one
but yeah alot of buffs, if they dont have a template (or even if they do) are likely hardcoded values in code
i wonder what the logic is for the duration being there
maybe things that can be live balanced/patched easier?
I think the value is always 20 seconds and the tree gives modifiers to expiry rate?
it's probably just a hardcoded 20 sec value
The expiration rate of a temporary effect describes how fast or slow time progresses for that effect relative to real time.
Ordinarily, the expiration rate of a temporary effect is equivalent to real time – that is, one second of temporary effect duration lasts one actual second – however, there are modifiers that can increase or decrease it...
there is no cooldown, you just cannot gain an archon buff while you have one or have that recovery period buff, so expire faster on it does mean delay is reduced
oh ok
the math is in that wiki
if you had some way to remove the recovery period buff you could apply a new archon instantly
does mean temp chains probs really screws archon builds though
without the tree nodes
I have some older trade links that no longer work. I vaguely recall there being a REST request i could make to api/trade2/search that would expose what the search query filters were for the trade link. Does anyone know what I mean? Sad if I lost some old, great searches 🙁
you can reversing PoE trade site URLs to get JSON request data
for https://www.pathofexile.com/trade/search/Settlers/NK6Ec5 , You can resolve it to JSON request with these https://www.pathofexile.com/api/trade/search/Settlers/NK6Ec5
and save the JSON request for unlimited time access with https://www.pathofexile.com/trade/search/Settlers?q=JSON
Maybe that was what I was remembering. But if I didn't previously save off the ?q=JSON and the search request no longer works (e.g., for 7mgvk3lH5) then I'm out of luck? or can it still be recovered?
can't
okay, thank you
I've been playing around with holo css effects and I don't know if I'm convinced or not
that just the one from Simon Goellner?
hey i just want to confirm something the current client patch i get is 4.4.0.2.4
it's updated right ?
poe2
thanks !
@velvet fog
https://poe2db.tw/us/Unforeseen_Consequences
https://poe2db.tw/us/Tablet
Unforeseen Consequences is not displayed on the Tablet Unique page.
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
I've been trying to map game mod stats to trade stats and this approach has always worked fine, but something broke with the latest update. Does anyone have an idea? For example, in the trade stats we have
"id": "explicit.stat_1509134228",
"text": "#% increased Physical Damage",
"type": "explicit"
}
but the hash32 of local_physical_damage_ in the game files is 2750182247 which doesn't match the trade stat after hashing. It seems like (but i haven't checked this) that some of the hash32 values have changed, and a good number of them are still mapping correctly, but many aren't. Is there any other way to map the stats to the trade stats?
local_physical_damage_+%
yeah, jsut a copy and paste error
{
"_index": 27,
"id": "local_physical_damage_+%",
"islocal": true,
"isweaponlocal": false,
"semantic": 1,
"isvirtual": false,
"mainhandalias_stat": null,
"offhandalias_stat": null,
"hash32": 2750182247,
"belongsactiveskills": [],
"category": null,
"isscalable": true,
"contextflags": [],
"dotflag": [],
"weaponhandcheck": false
},
If multiple hashes are incorrect, then the seed may have changed.
Yeah, maybe. It seems like there is some poe1 and poe2 weirdness going on where some hashes still refer to the poe1 data but not the new poe2 data
I could try running a brute force on the seed, just going to take a while
I don't think the seed has changed because explicit.stat_150913422 it the same in poe1 and poe2 trade, so any other seed wouldn't map to the same number. Also just did the brute force and didn't find anything else that works generally. So seems like the hash32 has changed but only in poe2
no idea, I haven't studied this hash in depth.
maybe there's an extra thing being hashed on, is there any pattern to which mods still match vs the ones that have changed?
I didn't see any obvious pattern, I first thought it's local vs. global stat but it seems to happen with both sometimes. I didn't look at it in detail though, I will check again
when a patch happens, does everything update or only the newly listed things?
it hasn't actually changed, you need to use both ids though
id_to_hash = ['local_physical_damage_+%', 'local_weapon_no_physical_damage']
HashComputer().compute_hash(id_to_hash)
1509134228
this part here
Random question for any tree renderers. I cant tell if my math is off or this is just the way it is. If I set the lines behind the nodes, everything looks fine, but if I render it on top, its not actually in the center of the node. Cant tell if I messed up or if thats just how it is. Curious if anyone has a debug version of their tree and can tell me if theirs is the same or not
This is what it looks like for my in-game overlay. Can't zoom in more, but it looks centered to me.
That side is fine for me too, although hopefully my tree data is just old and it changed this league or else I really messed up since mine looks different. But from what I can tell its just nodes that have a connection orbit different than 0 that are inverted or needs their center recalculated that might be affected, not even all of them. You wouldnt happen to have a ranger that went towards the right would you, thanks for sharing
Well shit, definitely me. Was hoping it was just like that 😂 Thanks for the help
@somber mortar pls mate check DM
it seems trade site and the game files are showing wrong item level information and the recharge rate and faster recharge mods
both mods have an ilvl 30 requirement for their bottom 2 tiers on all bases
Lines are definitely a bit hap-hazardly placed, you can see it in captures too.
The node art and connector flair cover it up decently.
Not to the degree of yours tho, I don't think.
also if you are using assets from in game (the orbit) make sure you remove 1 pixel of the rigth xD
because it was empty xD
maybe help you maybe not
is bhatair's vengeance supposed to be missing lineage tag?
It has the flag in the ggpk, but not the string tag by the look of it
anyone know what is the radius remnant pickup? or in witch table can be?. I already check character.oc but isnt there, thx in advance
context: im trying to enable this
I would sort of doubt it's in accessible data
Does it matter much for PoB except as a breakdown number?
most known ranges have been from manual testing afaik
@velvet fog This may be a somewhat unusual request, but could you create a page that collects loading screen tip texts? I play in a language other than English, and I would like to use it to report mistranslations in loading screen tips.
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
I couldn't find any information pointing to BuffTemplates.dat. From skills to BuffDefinitions.dat, it's always been a manually maintained table.
yeah I just inferred the times of those warcries from a forum post https://www.pathofexile.com/forum/view-thread/3859190
that column is certainly a buff duration though I don't really know what the logic is for it having a value or not
e.g. even the name of this one lines up in PoE1
@somber mortar In last updates you changed logic about checking fractured items, even when i trying to check fractured amulet it autimatically select :fractured-no, could you please fix it? or atleast make option like "always select non-fractured"
@velvet fog
https://poe2db.tw/us/Atziris_Temple#Crafting
The workbench and the orb are not properly matched, and There are also other workbenches where “Take” is not displayed. (Extraction Workbench - Orb of Extration)
The item Take, Orb of Extraction, has been marked as non-existent because it lacks the required information.
Currently checking fractured items doesn't work fully due to this bug, I don't really want to add more custom logic to work around that unless the bug is still there until 0.5 maybe
Are there any groups or people working on a graph-based crafting optimization tool for PoE 1?
A friend and I did some work on a tool that uses q-learning; poe 2 coming out (and having boring-ass crafting at the time) kinda took the wind out of our sails though.
@velvet fog https://poe2db.tw/us/Foci#ModifiersCalc "Augment" missing all armour augments from the looks of it, eg Desert/Glacial/Storm/Iron/Body/Rebirth/Inspiration/etc
I didn't count shield/buckler/focus as armor. Should they be?
they do count as armour for augments
wow, thanks
I take it that interval in the schema is just a special case for pairs?
2 ints next to eachother like a range e.g. 20-30 for a stat like fire damage to attacks
Also am i high or did they change the string array format to be variable width data offsets instead of null terminated strings adjacent in the variable width data?
Or did my string array handling just never work before
We've used it forever in PoB as GGG also uses it on their tooling too
Pretty sure all our strings work but I have noticed some weird files that have odd usages of string data types
this could have been any time int he last year, or never
Don't think I've ever changed our handling for string data types in PoB
Must just be my memory then
Ok I am going to scream into a bag for a minute lol
WHY IS INTERVAL A SEPARATE BOOLEAN IN THE SCHEMA AAHHRHG

If it's known to be 2x i32 fields and as a data type, not an attribute boolean thing upstream
Doing conditional logic on the json schema is a nightmare
Same sort of thing with row vs foreignrow - They're exactly the same lol
(reee)
I made a schema to sqlite cli tool thingy if you want to pinch it
I looked at doing that but with duckdb but the type differences pissed me off
well "I made" is kind of a stretch tbf, I was stress testing full hands off claude code dev with giants amount of docs/references for it to go off
hahaha
I'm accessing the dat files directly with my own parser; the schema is the only thing I have not recreated from scratch
and that is actually on my mind lol

feedin' at the ol' slop trough eh :)
honestly it's actually pretty okay but it took a bit of steering to get it right
It's surprisingly good at some things
another parser?
and will make such a mess so fast
there's a bug in the cli if you try to download a non-dat file that doesnt exist, it will just hang
@velvet fog pure rust all the way from the cdn automatically, fully typed, with cells that are references being native pointers to the referenced row of the target table
probably want this https://github.com/jchantrell/exiledb/blob/main/internal/dat/parser.go
i remember it stuggled with getting strings right for a little bit, the formats were wrong, was missing beginning or end of them, etc
Only think I know of that I have left is intervals
which won't be too bad
until I find the next thing I have left
what works well is giving it an integration style test that it can use to validate results, I was making it do a fresh build + wipe of DB then runexamples/items/ruh.sh and validate the first result (which I knew the structure of ahead of it getting there)
I made my own schema when making a DAT reader a while ago 😄
works well, most agent tools main issue is lack of being able to validate results whilst in its loop (at least when using compentent models like anthropic ones)
and yeah tbh the community schema is just a dep we all have, I just accepted and embraced it 
I have a moderate amount of code for programmatically discovering the schema that I want to get back to once I get my code generator properish
I think for now I'm just going to flatten the schema in jsonnet to using the type field for more as a first pass, then use that modfied schema in a more flat conditional way, vs having to stack if statements in random trees
I have a question about Exiled Exchange 2. Dunno where to ask. Why doesn't it group +stats (str/dex/int) into ONE thing as a pseudo mod? There is functionally no difference between the three since any build will have a lot of passive nodes they can easily change around anyway
One cohort that tends to care about it and influence prices are attribute stackers.
EE2 afaik does not do "custom" pseudo mods any more, it only uses ones that exist on the trade site
adding a 'count' or 'weighted sum' search group for a "custom pseudo mod" pushes up the complexity to the point where logging in is required, which can be a pain
Yeah, +total attributes just got added as a native pseudo, so I may end up adding it, but it would likely be under the hidden switch
I did add one in for uses remaining on tablets but that is just a count so it should be fine for complexity
ah, it would be nice if you could do uses remaining without count
Fun - btrequelpassivesubtrees is
- The only lowercase table name
- Not present in poe1 but not present in poe2, but marked as validFor: 3
I don't read js real well but gemini thinks that it's not currently possible to get just validFor: 1 other than the table being overridden in the poe2 dir or by modifying the js to support this?
erm, brequelpassivesubtrees
oh there's a bunch like that on the validFor being not correct
hello,
I am a fairly seasoned full-stack node.js dev, looking to contribute back to the POE community somehow.
Maybe someone has anything node/web related, that they need some help with?
I have a few nodejs poe2 apps in the works! Link to your gh?
Are there any known table references (either cross table or self, and either index based or column match based) that are known to be broken?
as in we know it's a reference but one of the values is invalid
I'm debating whether I should replace my cell loading/dereferencing code's excellent unwrap() based error handling with actual per-cell error handling that makes everything return a Result<>. If there's never any errors because GGG validates references during table generation, then it would be pointless complication
Unrelated, @civic crane do you have opinions on the following for dat-schema:
- Method of getting it so that tables that are not in poe2 can get
validFor: 1instead ofvalidFor: 3(due to not being overridden in 2) - AI slop wants to add a tag to alllow manual control of validFor on each definition, but I am not equipped to judge ai slop JS - What (if anything) to do about tables that still exist in poe2 but are empty (the 12 byte ones)? Assume they haven't changed and keep using the same schema? Treat them as if they're missing and banish them?
- Any interest in CI tooling that validates definitions against the current data for poe1 and poe2? Could probably get it so it only barks at PRs for changed lines that are not valid, though having it for main would be helpful too
- Any openness to fully standardizing on one definition per file to simplify machine editing of the graphql? Could possibly do this and also solve #1 by using a common dir, a poe1 dir, and a poe2 dir, with subdirs available for keeping the poe1 patch organization if desired
Sorry for the wall of text; don't want to head in any wacky directions too far without bringing these up
https://github.com/SnosMe/poe-dat-viewer is amazingly useful and a core tool for development of basically everything else, but there's some improvements I could imagine being nice
- Enable searching of table data, either native browser text searching or a custom search box of some sort
- Enable jumping to a particular index of a table?
- Make the two version fields on the start page directly clickable to load so you don't have to copy paste it into the version box
- Get it so that columns can be auto-width based on contents?
- Recursive search support in the
Search in current folderfield? - Some sort of modal popup when you're trying to find a target table for a reference that shows enough data about the hypothetical targeted rows to evaluate them without having to click several times for each try
- Make references clickable to go to the target row of the target table? As long as the back button works or it's modal
- Maybe have references have a hover popup that gives data about the pointed to value without even clicking?
- Change the
(pre-load all Data Tables to change)note when defining or editing a foreign key to a button that just does it? (the same as thePreload Data tablesbutton on theData Tablespage linked in the very top right - Add tooltips for the colored bars that you show which types are valid and if a column is all zero when looking at a table in bytes mode to explain what they are?
- Make it so that when selecting a range of bytes, an info panel pops up with all the valid options and examples of the data if selected (vs having to click
Define columnthen using the radial button) - Make the
Warn: The schema is invalidpopup be less violent? Maybe toast? Maybe grey out empty tables where the schema cannot be evaluated so it's not even possible to hit the error for them? - Allow arrays to be displayed one per line inside each row, expanding the row height to the height of the cell with the most values?
- Allow a global 'Show Schema' that shows just things you've changed using the UI? Or an export of the entire schema with the modifications made in the UI for using as a start to PRs
No idea if anyone else thinks any of those are good ideas shrug
You can do a pass instead of per call validation. Find max rowid in column and validate that referenced table has that much rows.
(poe-dat-viewer doesn't do this during table preload, wd be nice to have)
My code is doing more of a 'try not to do any allocations and allow point-reads of the original data files' sort of thing. Each table is dynamically initialized as a vec of rust structs at first use, but the only failing there is failing the entire table, where if I put error handling around each cell read I can just have the cells that don't read right be individual errors (at the cost of pushing error handling out to the caller). Would def be cool to get more validation into dat viewer though - I haven't written any zig yet but have considered using the webasm chunk of that as something to try it on
I've got too many words in my head right now lol
getting it so that tables that are not in poe2 can get validFor: 1
well idk, we can simply change bitflag to enum, it was to help get the poe2 schema going, but once it diverged enough there is no point in bitflag.
so the question is, has this happened yet?
Yeah there's 172 tables that are validFor: 3 but are not in the poe2 dat files, and I think 95 that are empty dat files in poe2?
yeah but how much of 3 exist in poe2, if none im switching
oh gotcha
one sec
504 validFor: 3 that exist in the ggpk
validating my hacky oneliner
291 validFor: 2 that exist in the ggpk
with none of those counting the empties, I guess I should filter those too for better numbers
This is what I get for checking validFor: 3 tables in the schema against the list of files (lowercasing the schema name and only looking at datc64s), missing is ones that aren't there, empty is ones that are 12 bytes, and valid is ones that are there and not empty
I have to banhammer 17 other tables to get my code that's using the schema and parsing the tables from scratch to actually generate valid code; I suspect most of those are invalid schemas
I forgot the link on that one message lol
number is big but there is lots tables ggg kept from poe1 that simply not used, like heist right? 😃
For sure
That's why I think the correct action for empty tables is to just mark the schema as not valid for 2; if they add data we always have hte git history and the poe1 data to reference
Hmm, what kind of an asshole would output that json with the arrays not sorted
(it's sorted now)
nuking the validFor and just copying the validFor:3 ones into poe2 also would help with programmatic manipulation
(the ones that are valid I mean)
simplify machine editing of the graphql
it will need to preserve comments
Yeah, the classic issue of programmatic code manipulation lol
If there's not big complicated comments that apply to multiple definitions then it shouldn't be too bad
line comments are easy
There's a rust graphql parser crate that has a formatter which implies that it can roundtrip
so we need a big PR with all tables that are "3" which exist in poe2, (+point for omitting Heist-like tables)
I think my numbers above may be off, spot checking one that seems like it should not be valid appears to have it in valid... I bet I screwed up my boolean logic somewhere
debugging...
I can definitely ai slop up some one-off tooling to copy/move valid stuff and remove invalid stuff
Fixed bug I think, "_empty_count": 84, "_missing_count": 171, "_valid_count": 420,
classic tooling problem, quickly create in need (pypoe abandoned, bundles reworked), dont touch for years, return and see spaghetti left to refactor, i also think it has memory leak with vuejs reactive scope and weak references xd
validFor: 2 (exclusive): "_empty_count": 1, "_missing_count": 1, "_valid_count": 290,
And still the best there is!
the best tools are quickly created in need
I am guessing new OAuth requests are pretty delayed with the new league launch, patches, holidays etc. Bad time to launch an app I suppose.
usually i get an reply every 3 weeks or so, and always on mondays, so i guess it’s just one employee who doesn’t work there full time and is working through the request step by step
but it took me from august to october the last time to get what i wanted
only to see them remove the inventory access for poe2 a few days later :/
well, it was fun while it lasted
tbh the whole implementation is actually pretty good lib side and the ui is very functional
it takes a while to build up the motivation to process more after reading the 40th "I'm gonna build an MCP server!" request 😮💨
i agree re: search features in the viewer though
@modest path on the "valid tables" problem, in my mind it's a Q of whether we expect the community schema to be updated immediately on patch
explicit is good but it having loose rules on versioning also means that poe2 could get "accidental" schema support on a new patch just bc a table got reused
Yeah, if I can push on programmatic editing and validation, that could still happen during CI/CD
do feel like it'd be useful to have a way to deterimine in use vs not in use though, all the heist tables etc are just confusing and it'd be good to see immediately what's new
Yeah - I don't see any way to do that for the non-empty ones programmatically, but manually annotating them probably wouldn't be too hard
I care less about the ones that are effectively not used but still have data and parse
one thing that could be really good as well is building a static representation of all the table relations at build time and hosting it as html doc
but my use-case is a bit bass-ackwards from the norm because I'm /starting/ with the schema and fetching tables from the cdn dynamically as needed for them (vs listing files and then finding the schema for hte file)
that would be my main feature request tbh, on build just walk the full tree of relations and make static d3 graph or something
I could output a dot file pretty trivially
the rust I'm vibe coding right now could also do that from the graphql trivially
You will fetch bundles anyway(ie not perfect lazy load of few kb), so what's stopping from getting index bundle first and then data/balance/**
@civic crane It's a code generator currently written in jsonnet, which doesn't have side effects 😅
It can import json though as jsonnet is a superset of json, so going directly from the schema is very convenient. The rust code it generates is the first thing to actually go hit the cdn and fetch tables lazily.
I /could/ add a helper to list the tables out of the cdn into a json file first and use that, but it doesn't immediately seem like having actively broken schema definitions in the schema anyway (though I get some of the arguments for re: automatic support if ggg choses to import without updating)
The exciting (to me) thing about code generation vs writing a library that dynamically uses the schema is that I can make the rust api very native - Each table is a vec of structs specific to that table, and any references columns are just fields that are effectively native references to the correct row of the other table so you can do stuff like
random contrived example but you get the idea with the trivial dereferencing
oh and to be clear, the main_hand_alias_stat method there is the same instance of the stats struct row that is in the table
like this
@civic crane I can programmatically reorganize the graphql files, preserving comments. I have a version where I full split it into poe1 and poe2, copying the poe1 only definitions into poe2 where not already there, which changes the outputted schema (no more validFor:3), but if sorted and filtered for just validFor&1 or validFor&2 the output is identical to the existing schema. Not saying this is exactly the thing to do, but the parsing/editing appears to roundtrip everything including comments just fine so it can be made to do whatever
One possible solution to the missing tables would be to add table_missing and table_empty booleans and populate them on the validFor:2 items where appropriate, which would let you exclude those if you want, but would not change anything for anyone using the current schema. Could also split the validFor:3 items out into a common dir and tag them with poe2 specific missing/empty fields and get the same
Just noticed that the item data you get from copying an item in-game doesn't include Unidentified Item Tier. I imagine I'm not the only one who would find this useful. Any feedback from GGG about this, is this something that's planned?
Cool, good to know, thanks.
Mine is a very high effort project so hoping that might differentiate it a little bit.
I ended up just making this visualisation thing, I put a PR up for it if you guys find it useful https://github.com/poe-tool-dev/dat-schema/pull/195
Before I go down the rabbit hole of extracting/parsing Content.ggpk + dat64/datc64 myself, I wanted to ask:
Is there any community-accepted or semi-official repo / pipeline that already provides tool-ready data (JSON/CSV/etc.) for things like:
passive tree (nodes, positions, edges), skills + support compatibility, modifiers / stat definitions, icons/assets
Totally fine if it’s not public. I’m mostly trying to avoid duplicating work that already exists.
Thanks a lot
https://github.com/SnosMe/poe-dat-viewer/tree/master - extracter/viewer
https://repoe-fork.github.io/poe2/ - ready to use json
https://github.com/poe-tool-dev/dat-schema - community maintained schemas
https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/blob/dev/src/TreeData/0_4/tree.json - tree data from pob. the json had some missing data vs their lua file last time i used it a few months ago. guessing it got lost during conversion so you might be easier to use the lua. i think pob is the only one who has tree data public? otherwise you need to do your own psg parser export, same thing as dat files basically
https://github.com/juddisjudd/ggpk-tool - haven't tried this one yet but looks kinda like an all in one?
https://github.com/aianlinb/LibGGPK3 - can extract icons/assets to png. i know theres more but dont know them all off hand. feel free to search github in this channel and you'll find a bunch of cool stuff
Our JSON should have all the info compared to the lua file afaik. If you find something, I can try and fix it
I had to look through it to see cause I forgot what it was, but some of your groups are null in the json. [796, 903, 1422, 1466, 2, 1434, 60, 80, 1415, 733] Some of those might be unused so my bad if thats the case, the lua had them so it was easier to just use that instead of worry if any data was missing
I'll check it out
@brittle oasis I see now. It's cause it the lua we skip groups that don't exist. Group 3 doesn't exist but looks like this in the JSON which is making group 2 null
{
"nodes": [
25092
],
"orbits": [
0
],
"x": -14965.39389222,
"y": -7075.62698124
},
null,```
Do you mean groups that arent used? Cause outside of index 0 afaik there shouldnt be any null groups
Yeah we have the group just missing for some reason, I'll look in the game files and figure out why
I think that first missing group is the one for all the starting nodes and you guys have a variable set for it or something different and probably just ignored it, no clue about the rest tho.
EDIT: Nvm I forgot lua starts at 1 so your starting nodes group would be 3 instead of 2, I can guarantee there shouldnt be any null groups tho
This seems to be orbit 3
It's for the unused ascendancies
That's why we don't have it
local ignoreFilter = "^%[DNT" This would do it
From memory it was easier to remove all the DNT stuff from even existing in the tree file than handling removing it from the tree loading side in PoB
Makes sense, my bad for wasting your time. I think when I first used the file and was just going through the nodes loop I was getting the null error and didn't know why, then saw the lua had those groups so just switched over and never looked back. I probably dont use em either now lol
Good to know why they were null. I didn't write the tree export code so was interested to know why
@civic crane I think I have a direction on the dat-schema wall of ideas:
- I /do/ think flattening out all the files into one def per file is a good idea in the top dir (and I can do this programmatically - Could either PR or push the vibe coded tool). This will increase consistency and enable programmatic manipulation.
- I think for the empty/missing tables thing I might make a service that schlorps the schema and annotates it with info from the live dat files - Probably putting num_rows in tags or something? With 0 for empty tables, and null for missing? Then I can just use that as the source for my schema and get the benefits of newly copied tables being auto-schema'd. Could actually extend such a thing with a validator to anotate parts of the schema that can't be valid anymore as well.
- Given that this vibe coded rust slop can round-trip the gql files just fine, I think making a webserver able to either do CRUD on local git files (for use as a live editing backend for locally running poe-dat-viewer maybe), or making it able to generate diffs for PRs (which could be read-only and exposed to the internet) might be interesting, but this idea is a bit further out
https://github.com/poe-tool-dev/dat-schema/pull/197 - Github is not great at showing PRs this chonky but this is the result of the tool as it currently stands
Everything else I mentioned, my new path removes my dependence on upstream changes to accomplish what I'm after.
That pr had a bug where it was copying the poe1 files into the poe2 dir instead of continuing to rely on the layer thing; should have been about the same number of - and + lines. The feedback is valid though and I've implemented my schema metadata hydrating overlay and and working through what it'll take to map my offset based column detection to the index order + implied width of dat-schema for more overlay data and possible programmatic editing
(for poe2 to start)
oh, l did add psg parsing to repoe https://repoe-fork.github.io/poe2/passive_skill_trees/, it's kind of basic though, and l havent looked at the data very closely
love the new desecrated effect on poe2db mods
Oh nice dude, looks good. You can add Ascendancy dat info in the default one if you feel like it so its all in one, contains PassiveTreeImage, TreeRegionAngle, TreeRegionVector to help with placement but I mean should be fine even without. And you might have to manually add the orbit radii and nodes/passives/skills per orbit since its not in the game files from what I heard but needed. from pob:
orbitRadii: [0, 82, 162, 335, 493, 662, 846, 251, 1080, 1332]
skillsPerOrbit: [1, 12, 24, 24, 72, 72, 72, 24, 72, 144] // this creates a new array for each index with length of 360 / skillsPerOrbit[i] and you use [radius][position_clockwise] from your data to figure out the degree/radian, hopefully that makes sense
skillsPerOrbit in .psg and orbitRadii last distance should be 1332
Hi everyone! I unpacked the GGPK file, after examining it all I saw the audio folder, and there are dialogs with the NPC, but here's the question, where is the noise of the sea? in the launch zone? the sound of an item falling out? the sound of footsteps? the sound of the scroll falling out/the can/the use of the can - where are all these sounds of interaction with objects/sounds of blows? I would like to get sound files and be able to listen to them simply from a computer. I was told that this is the FMOD/Desctop/ folder - but there are bank format files, not audio files) how do I get ogg or mp3 from a bank?)
I also faced the problem of importing character models into a blender. The model format is encrypted (smd) - how to get a model format suitable for work or, say, import into Unity from this format?
bank files yes, you just need to extract them
but the bank files are unreadable....
they are not
how can I listen to bank files?
The file should be fmod studio, but I don't know if it's been modified.
In what file exactly? I've only played with passiveskillgraph but I don't remember it being there. Unless you mean putting it together yourself using all the data for [radius][orbitIndex]? Since were on this topic, any other useful psg files I should know about?
skillsPerOrbit in every .psg, passiveskillgraph.psg have it
orbitRadii not in .psg, last distance should be 1332 (not 1322) that match ascendancy.dat::DistanceTree
Cheers, appreciate it
Is there a map of cxapi item names to in game item names? Some of these names are dumb like "abyss-key"
You mean like the ones on this page? https://pathofexile.com/trade/about
yeah that's pretty close I think
Oh, you were asking about abyss-key, so that would be on https://pathofexile.com/trade2/about
yep, found it, thanks!
How can all mods be determined for a BaseItemType? I thought it would be through tags, but there seems to be mods inherited. Can anyone give me an example of steps how I would get all the mods for this item for example?
{
"_index": 1110,
"Id": "Metadata/Items/Armours/BodyArmours/BodyInt20",
"ItemClassesKey": 24,
"Width": 2,
"Height": 3,
"Name": "Twilight Regalia",
"InheritsFrom": "Metadata/Items/Armours/BodyArmours/AbstractBodyArmour",
"DropLevel": 84,
"Implicit_ModsKeys": [],
"TagsKeys": [
40,
1050,
33
],
"ModDomain": 1,
"IsCorrupted": false,
"Unmodifiable": false
}
it's impossible to datamine where some of the mods belong. for example delve or temple mods
The mods on items are known though, that's what I'm asking
Are reference fields in the dat files that are column by value references vs index references actually a thing known to be used by GGG? Or are they just a convenience layer where things happen to align well between tables
Do we have something like this https://github.com/poe-tool-dev/latest-patch-version but for poe2 patches?
thank ya
@tall oyster you can also check it yourself with not a terribly large amount of code
poe-versions.obsoleet.org just caches the responses for a few minutes
and has CORS headers letting js request it
almost done with my pure rust gppk "explorer" been an interesting learning experience but i hated my gppk-tool
@tall oyster https://github.com/adamthedash/poe_data_tools/blob/a3fc5b506ae8b494d52799f7b84b38964dfe76d9/src/bundle_loader.rs#L61 is a rust implementation
yea im aware of that, i like to make my own things though :p
:)
We are working on very related things lol
I'm concentrating on schema stuff atm but my work outside of poe_data_tools is primarily aimed at getting data available in extremely native to rust ways for future crafting tools and whatnot
https://github.com/vitaminmoo/poe-data being the published garbo
ah nice nice
i was going to try and start doing some more relational things but we will see where my motivation goes :p
Making reference colums be typed values that have deref abilities is really really nice to work with
oh nice, yea i can definitely see that being quite handy
can just chain methods to get to cells of referenced rows
including use in maps and filters and all the good stuff
very nice work on this, might have to reference some of it if i end up deciding to go further
poe_data_tools also has an ivy schema thing that exports as csv, but my goal is the deeply rust access
im debating if i should add a diff feature or not
yea
would be neat
i think someone else here was doing some big data project and was doing stuff like that
oh yeah there's definitely peeps in here with data going aaaalll the way back to the before times

Still haven't finished my CDN, very little drive to do so as there can't be any consumers.
dat-scope is still broken too.
oof
Ingestion broke and I couldn't be arsed fixing it.
it do be like that sometimes
Easy solution: Ship it to prod
Data? Where? 
i ate it

This betrayal will be remembered
Hope everyone is having a very toolish Christmas and a datastic new year
That's not very datastic of you
I got my code reliably only requesting changed data from the CDN normally and during upgrades so that's pretty datastic
The data council approves
I'm an SRE in real life so I felt a lot of shame every time it'd do the wrong thing and schlorp more data down lol
on one hand bytes are cheap, but on the other hand so are content addressable stores
Hi! Was looking at the mods data on https://repoe-fork.github.io/poe2/. I noticed we got spawn weights for jewels in the mean time, hurray ^^ I can't seem to find timeless jewel mods in there, though (the int_radius_jewel etc seem to be something else, not entirely sure what though); am I overlooking something; or isn't that data in the game files; or harder to parse;...?
Aha, so it do seem to be the radius jewels; makes sense. They just don't mention that the effect occurs for passives in radius. So it also doesn't include whether it's for small or notable passives. I notice poe2db does have that info though: https://poe2db.tw/us/Time-Lost_Jewels - guess I'll have to combine both data sources for now!
I'm debugging some really confusing bug with my public stash api listener. I assumed the chain of next_change_id is always consistent no matter when the query is made, but that seems to be incorrect.
According to my logs, querying change_id 3022650123-2966329571-2890237000-3222471750-3112566609 the payload contains next_change_id: 3022650167-2966329627-2890237101-3222471795-3112566672
However, when I did it just recently, the contents of the payload is completely different, and the next_change_id became 3022651131-2966330367-2890237929-3222472433-3112567193.
How does the next_change_id really work here?
Merry 🎄 or whatever floats your decimals all!
psapi doesnt hold historic data and id is just an offset into each shard, so when things get removed the offset changes even if you call the same id
what do you mean by "when things get removed"?
stash state changes, an item is added or removed or changed or whatever
I'm tracking items that exists on trade with (stash_id, item_uuid), and for the most part it works if I manually diff the stash_ids as I see them in the river. The problem I'm running into is that if there is any service disruption (i.e. my internet goes down) and I restart from a slightly older change_id, then it seems like some stash changes slip through the cracks, and I end up with zombie data in the DB because the stash_id containing the item (or used to contain the items in this case) don't show up in the river
I would have assumed that eventually when I catch up to the tip of the stream those stash_id would pop up once, but it doesn't seem to be consistent
simplified but consider psapi with id i1, it contains stash with id s1 and gives you next change id of i2. if state of s1 changes and you call psapi with id i1 again then s1 in it will be empty/null/whatever and psapi with id i2 will contain new state of s1. imagine it happens again, state of s1 changes, then i1 and i2 contain the same info so it will collapse it and now calling i1 would give you next change id of i3
I think I'm following
so in a temporal trace
Time | change_id | next_change_id | data
t0 | cid0 | cid5 | {i1 added to s1}
t1 | cid5 | cid10 | {nothing related to s1
t2 | cid10 | cid15 | my internet goes out
=== some length of time ====
t3 | cid0 | cid8 | {does not contain s1 at all}
the lack of s1 in t3 means that at some point between cid0 and cid8, i1 was removed from s1, and the whole thing was compressed
which means if I query cid0 for the second time, and I don't see {i1 in s1}, then I should assume that item is already gone
I assumed that I would still see s1 in the payload, just that it would point to an empty list or something but I guess that just gets removed
i think the s1 will still be in cid0, it just wont contain any data other than its id, so you can do clean up
though tbf i just dont call old cids
so no idea
Nope, looking at my diff, the original call contained 7 distinct stashes (I was at the tip of the river)
Calling it later produced 93 stashes (this makes sense, probably filling up the 5 MB limit or whatever)
Compared to the original, 4 of the original stashes disappeared, 3 showed up, and there were 90 new stash ids
Internet outage/API downtime aside I think I know how to fix this
it is what it is then, dont call old cids i guess
np, i hope i was more right than not (im kinda making things up as i go most of the time
)
one could always bing novynn, i bet he loves those questions
I would love to be enlightened more, there's definitely still some behavior that are hard to explain with my current mental model, but at least I know I should stop killing my service while I'm iterating
i just dumped to disk whatever i downloaded and im iterating on that instead of downloading every time, which is why i have 350gb of this garbage on my drive right now 😔
Based on my understanding:
- Each time a stash is retrieved from
change_id, it represents the latest data from that stash, but it's not a fixed set of stashes. - By continuously following
next_change_id, you can obtain the latest data from all stashes.
By continuously following next_change_id, you can obtain the latest data from all stashes.
This was one of my working assumptions, but I still see zombie records by the time I'm at the end of the river.
This means that I've recorded a payload cid_100 where ($stash_id, $uuid) shows up, but after some time has passed and I start querying from cid_97, $stash_id never shows up in the river again.
My current theory is that when I query cid_97 again, I am getting a larger chunk, say cid_97 to cid_120, and that $stash_id was cleaned out sometime between cid_100 and cid_120, so the truncation got rid of that $stash_id completely and doesn't expose it in the psapi.
I think this means if I restart from an earlier cid, I have to remove all data that are beyond that cid
I've never encountered zombie records.
When calling the API, the items in the stash contain the most up-to-date data
It's a zombie until the owner of that stash does something to cause an update
Of course, you must record the original items in each stash and remove items that are not currently in the stash.
Alternatively, based on the stash, first delete the data from that stash and then use a completely new stash item.
I think this bug goes away if I don't roll back to a previous cid. I.e. if I recorded data from cid_98, and I roll back to cid_97, then I must get rid of everything Ive recorded in cid_98
I do catch up eventually, which is what was confusing me so much
Based on the description above, the problem you mentioned shouldn't exist. Let's wait until after Christmas to see if there's a response from officials.
I think it's a completely self inflicted wound caused by my incorrect assumptions. I think this is what is happening
Timeline:
1. Processing: cid_97, cid_98, cid_99, cid_100, cid_101
2. At cid_100: See stash_1 with item_1 → INSERT to DB
3. App killed at cid_101 due to me performing manual update
4. Item sold at cid_105 (while app is down)
5. Restart from cid_97 (I always restart at an slightly older CID, not the last one)
6. API gives catch-up chunk: cid_97 → cid_120 (collapsed)
7. stash_1 is now EMPTY, PSAPI omits it entirely (no stash_1:[] in response)
8. If stash_1 is never seen again between cid_120 and end of river, then my app doesn't know to clean up item_1 resulting in a zombie. This is self-fixed if the user adds another item into stash_1 and it shows up in PSAPI again
if I simply wrap every cid update in a single transaction, and restart from where I left off instead of a few cids before, then the bug just goes away. I'll give it a shot and report back
Does anyone know if GGG has already replied whether or not it's legal to activate filters for ritual? https://www.reddit.com/r/PathOfExile2/comments/1pq7ehc/filters_in_ritual/
who is gonna stop you
@somber mortarsorry for pinging, does EE2 not auto open on game open? or am i doing something wrong? I always have to open it from the start menu. I swear it used to auto start on game start lol
Check in tray or task manager if it is running. It doesn’t auto start when the game is on, generally it is just running in the background when the game is closed
If that doesn’t work dm me or make an issue on github
yes it does run in background in task manager, so i need to open it once after pc restart? I guess I can just force it to auto start on pc startup via windows haha
Yep if it isn’t working try restarting it maybe
Deprecated ggpk-tool since i just wasn't happy with it. Here is gppk-explorer, much simpler UI, just Rust using egui, no web stuff. Only building a windows binary automatically right now, after the holidays I'll get a linux build sorted if there actually is any demand for it.
Also it's really only geared towards poe2 since I don't really care to do much for poe1, sorry. (only a few things need to be adjusted for poe1, you can do it yourself)
I've been meaning to look into your ts one for a while now. If you don't mind me straight up asking, what do you use for the ggpk and dat files? Do you need just ooz and a binary parser or?
Happy holidays ^^
just ooz (bun_extract_file) for the old one (see the github readme lol)
the old and this new one are doing the parsing, the new one we are doing automated builds and added ooz as a submodule so you shouldnt need to compile ooz stuff, just grab the exe or if you grab source just cargo as normal
all pretty straightforward, goal was to make these as easy to grab and use as possible
also the typescript one required you to extract/convert stuff, this new rust one just lets you explore the content.gppk directly
Merry Toolsmas and a Hacky New Year!
You know about the pure rust ooz library ivy made yeah? It's def slower but handles all the files and simplifies compilation a lot
poe_data_tools uses it - It's slow because of it, but my not-a-pr yet branch just puts the decompressed files into content addressable store based on the upstream hash in the index to make it a one time overhead at the expense of disk space
If you like pain, optimizing that decompression library would be a good place to live lol
@tall oyster https://github.com/lvlvllvlvllvlvl/oozextract for reference
Well GGG consciously decided not to put that checkbox in the game anymore; and this is circumventing that. It does feel like against TOS; at least against their intent.
at their current development velocity Im not sure it's safe to assume that all of their decisions are conscious
ok, the chnage is building now. l'm exporting ascendancies as a separate file because thinking about abyssal lich made my head hurt
9 years and 4 days after its initial commit, repoe - which was originally created to supply data for PoESkillTree.exe - finally includes skill tree data. Now all that's left is for @woeful sphinx to release a tree planner for poe2 and we'll have come full circle.
optimization was not a priority for oozextract - the idea was to be pedantic about bounds checking so you can feel safe extracting any file. compressed files are basically a sequence of commands like "at x offset, copy y bytes starting at z offset" so the cpp version basically gives ggg (or whoever you downloaded the files from) full access to your computer's memory
Lots of very specific knowledge of platforms and what crimes are legal too.
I still remember the bad output on Debian's GCC at -O2.
IIRC, it was doing an overlapping quad-word copy of 8 bytes and if that straddled a 4k page boundary, the data ended up wrong.
ooz is a bit scary in that it's essentially decompiled, so operations like that which were carefully chosen in the original codebase may not have quite translated properly when re-compiling with new toolchains and architectures, while a re-implementation from intent like oozextract is way more robust.
i didn't realize that there were already temple planners available when l started work on this https://synthcursion.github.io/?paths[]=pathfourway-4-0&rooms[]=Thaumaturge-5-0&rooms[]=AlchemyLab-6-0&rooms[]=Thaumaturge-7-0&rooms[]=SacrificialChamber-8-0&rooms[]=Thaumaturge-8-1&rooms[]=AlchemyLab-8-2&rooms[]=Armoury-8-3&rooms[]=Smithy-8-4&rooms[]=Armoury-8-5&rooms[]=Garrison-8-6 but l think l'm still glad l did it
@zenith zodiac temple planners where o.o?
hey there, im having a problem with ee2: when i price check something, it opens the gui, but i cant interact with it, cant even close, i have to alt tab for it to close. Do u happen to know why would that be? im on w10, playing windowed fullscreen
No idea, check issues on github, if that doesn’t solve it, make an issue. Sounds like it could be a conflict with another hot key though maybe
having six planners for any plannable new league mechanic is tradition
accidentally got the first 2 points of my tree as weapon swap in pob.
is there some way to fix this without redoing the whole tree?
just path out differently then unallocate up until the connecting point
alright, thanks.
I still kinda wish there was some shortcut key for this though.
it's the same way as it works in game isn't it?
i think you can easily change which points fall under which weapon swap in-game.
but doesn't seem like polb has that
I remember having a pretty difficult time unallocating the weapon specific points in game
maybe it's changed though, I dunno
Squint at the XML, maybe you can nudge it right there?
Go to your builds directory (typically in Documents or portable dir), edit the build XML in a text editor, find a <WeaponSet1 element and remove 18845, 4739 from it, or the whole element if that's the only ones.
Make a copy first in case you break it 😄
Very ergonomic, but you normally don't end up in such an ill-formed state to begin with ^_^
the zao school of problem solving
Surprisingly few skill tree websites bother to surface the node IDs for some reason 😄
thanks, although i don't think i would ever have guessed those node IDs without you.
The official API and PoB store passives differently.
The official API stores shared passives in passive_skills, and then stores weaponset1 and weaponset2 in separate arrays.
PoB stores shared passives plus weaponset1 and weaponset2 in passive_skills, and then stores their respective talents in weaponset1 and weaponset2.
If it was a PoB dev build, you could've held some modifier key to see them, but I just made a test tree and squinted.
You can hold Alt on my tree as well..
Firefox eats the key completely for the menu.
On Chrome it ends up on the menu when you release so you have to do a dance to get it back to the tree again.
Oh wow that's annoying.. Just tried it. You can hover over a node and then hold down Alt to see one node until it expands 😄
I have no issues at all in Chrome?
On Chrome I hold Alt and it shows the tooltips with the number. When I release Alt it highlights the menu button and additional presses of Alt does nothing.
If I click on a node to allocate it then, the tooltips disappear completely, have to click a bit arbitrarily on the tree to defocus the menu again.
This is Chrome 143.0.7499.170 on Windows.
I'm on x.x.x.169 but on Fedora
On Firefox my whole window shifts to reveal the traditional Windows menu bar and I never see a node ID in the tooltips.
Yeah the menu bar I get as well.
All glorious Win11, so toolkits probably vary greatly against Linux.
But I can see the current node id as long as i hold down Alt, on release it pops in the menu (on Firefox).
Maybe I should do Ctrl to keep tooltips open instead..
Can you try again now? Preventing default on the alt key seemed to resolve it for me in Firefox without being too annoying (alt+tab etc still works)
I do seem to get disappearing tooltips in Firefox though, will have to look into that.
Yeah, that aligns now. Shows number while holding and then they just sod off or stick to the node where you first held Alt.
Yeah I'll give that another round.. Strange behavior 🙂 Tooltips are hard.
Hold alt and scroll up / down on the tree to select the weapon set mode or you can click on the top bar where it shows your passive count I’m pretty sure
The problem here I think is that you can end up with illegal tree roots, where the tree has some weapon set points that real points grow out of.
For example, if you exit from the start on both paths with regular points on one and WS on the other and make them meet, you can remove some of the regular points and the tree doesn't crumble.
You don't seem to be able to change such existing WS points into real ones either, clicking them deallocates them and the whole undersupported branch..
Not sure if PoB has any recolouring functionality in general or if it's all reallocation.
added basic crafting currencies for modifiers page
on modifiers pages, what do you think about separating greater (lesser/medium) essences vs perfect essences sections, since they have fundamentally different effects
done
Random for the poe2 tree renderers but since you cant allocate masteries atm, any notable from the same group will activate the mastery icon in game. Tested maxroll and pob and neither have that, if a group has multiple notables or the icon isnt linked directly to the notable, the icon never activates even if it's supposed to. Idk if anyone cares since its nothing major at all and you might be waiting for masteries to work like poe1 to share logic so feel free to ignore, just wanted to put it out there
btw the hyperlinks on the modifier page are pointing to 404s because they're missing an "s" at the end
also could you make it so that you can swap the rarity of the item? so that it doesn't necessarily treat a 1 mod item as magic
fixed the links. I'll think about how to add rarity tomorrow. you can trans, regal, annu, annu
where can i get a list of all items, all notables, and all skills? i want to build a comprehensive list of these three things and randomly select one - kind of like a word-of-the-day website
i tried scraping the taiwenese database but couldn't properly scrape most of the items
the wiki has cargo api, you can probably get most if not all of those things from there
sorry - what is cargo api?
https://www.mediawiki.org/wiki/Extension:Cargo I assume this, seems like most of the pages does support that (presumed list of all of them that doesn't, been a while since I touched Mediawiki: https://www.poewiki.net/index.php?search=Pages+needing+a+cargo+rework&title=Special%3ASearch&profile=default&fulltext=1)
this is a bit over my head
its just poor mans sql
lol sql is also over my head
just vibe code it or whatever it is you are doing then
ideally i would just like to get a text-based list of the filters on the left-hand-side of https://poe.ninja/poe2/builds/vaal
Explore builds and passive tree heatmaps of Fate of the Vaal.
then i can just randomly draw from that list
you gotta put in some effort blud
https://sulozor.github.io/#/atziri-temple another one
One of these should just be TempleOS running in the browser.
yours still looks the best lol
l just realized that l have corruption chamber listed as available in the present day (before meeting doryani) which means that l guessed the 'ispresentday' column in the dat file incorrectly. weird that it seems to line up for all the other rooms
GGPK Explorer v1.1.0
New Features:
- File tree search: Quickly locate files within the project structure
- Full Content.gppk parsing: View every supported file type directly
- Specialized viewers: Added dedicated support for CSD, PSG, HEX, and other formats
- Export options: Right-click context menu now allows exporting resources in common formats (e.g., DDS → PNG/WebP, audio files, DAT → JSON, and more)
- Syntax highlighting for shaders & json
Video Preview
There is also CDN fallback, etc....
For the dat and other binary reading you might check out https://docs.rs/bytes/latest/bytes/struct.Bytes.html - It's really good for low copy (clone = copy a fat pointer basically) views into a larger bytes structure, with builtin get_i32_le and friends that auto-move the spot you're reading in a way that looks very similar to your cursor passing
A cheaply cloneable and sliceable chunk of contiguous memory.
oh nice, thank will look at it now!
yea i think i will use this, going to refactor the bits for this
https://github.com/vitaminmoo/poe-data/blob/main/src/dat_parser.rs this is the form I have mine in atm but poe_data_tools already returns a bytes::Bytes object. Definitely WIP garbo
Hello, how can I package a .json file into DATC64 format? I’ve tried using poe-dat-viewer and poe_data_tools, but neither seems to have this feature. Did I make a mistake in my operation somewhere? I’m really stuck.
Most tools don't have this feature because there's absolutely no legitimate reason to alter or produce game files.
I’ve seen others successfully complete the localization by modifying DATC64 files, but I have no idea how they did it.
There used to be a localization tool called PoeString, but now I have no idea where to find its latest version.
Modifying the game files is against ToU 7b, regardless of intent.
@dense harbor what @worthy cape said
some things just shouldn't exist
Is that how they're celebrating a completely unnecessary unauthenticated RCE CVE that they forced even on what would be a completely static site due to their dynamic path routing requiring a nodejs server?
I give the js community props for being incredibly welcoming to people who have no idea what they're doing, but the result of their progress also reflects that
we already have orms, that thing needs to be destroyed and sent to the abyss
Yeah and every query language and orm is like "sql sucks I can do better" which is true if you are restricting your abilities down to the random dogshit that person needs, then if they make something popular, it eventually gets added onto until it's a worse version of sql
unintelligble OPS/SRE screaming
Hmm, from an item's info, e.g.
+14 to maximum Energy Shield
118% increased Evasion and Energy Shield```
Should it always be possible to reverse-engineer the exact mods, e.g. in this case:
Stalker's - T1 - (39-42)% increased Evasion and Energy Shield / +(32-39) to Evasion Rating / +(13-15) to maximum Energy Shield
and
Evanescent - T4 - (68-79)% increased Evasion and Energy Shield
Does Exiled Exchange manage that; or do they just look at the total defence values? I wonder where that double 'Tier 1' comes from; seems incorrect.
if you hit the "mods" toggle in the bottom right it will show the mods that are being summed into each filter. But for the actual tier detection, EE2 copies the item text via Ctrl+Alt+C instead of Ctrl+C and that info just says what tier everything is.
For that specific item, Stalker's is split into 2 parts the flat & the percent, which means the double t1 is probably a bug (just due to how it is handled internally it's getting double counted)
the trade filtering itself doesn't know about the mod tiers, only the stat values right? so it's just a visual representation in exiled exchange i'm assuming
yep exactly!
Does someone know if the skilltree data is somewhere available from ggg source?
PoE1 has it here: https://github.com/grindinggear/skilltree-export
PoE2 has to be extracted from the ggpk
Sorry didn't mention I was searching for the POE2 one.
So for POE2 it is not available in a similar way as POE1
Correct
I was hoping to be able to work with a json file, well I need to dive in into how to get that data 🥲
PoB2 has a JSON for the tree. Your mileage may vary, but I'm using it without issues for my project and I didn't have to modify much (if at all) compared to the official PoE1 JSON.
Is that JSON in the ggpk file, as in you have to open that file with a tool and specifically extract that JSON?
In the Path of Building folder, there's a 'TreeData' folder with 0_X sub-folders.
Sorry I missread. Thought you said PoE instead of PoB 🥲
I will have a look thanks
how do you differentiate between enchantments and normal modifiers? it seems like GenerationType in mods indicates it but I can't see if that actually links to anything
10 == helmet enchant
19 == ring enchant
21 == flasks
I guess?
thanking you
Just wondering, how do people like POEDB and others datamine / get the infos they need ? Because Im pretty sure Datamining is against the ToS ?
it is not against the TOS
Good to know - but are there any resources available about it ? 🙂
about what?
How to datamine / What tools are used
scroll up in the chat a bit
Thanks will do so 🙂
If you want to poke around with the raw game files you can try this: https://github.com/adamthedash/poe_data_tools
If you just want to use data already pulled out by the community then RePoE is probably your best bet
Thanks alot! - Yeah I want to do some small experimental project until next league. So RePOE is a collection of already extracted data ?
Sorry for my dumb questions - im new to that in POE.
Yep, you can find it here https://repoe-fork.github.io/
This is awesome, and its updated at every gameupdate ?
The already extracted data is exactly what I was looking for thats so nice ❤️ - if this is always uptodate when a new league comes out that would be insane
I believe so yeah, though not 100% as I'm not the owner
Looks like the latest patch is up there anyway
Yep
there's a GitHub action that runs every 4 hours to check for updates. new leagues typically require a bit of dev work to update the exporter for any changes to the data, l think it took about 3 days for 0.4 but that was slower than usual
3 days is still awesome - good to know
Thanks a lot! I will dive into my project then soon ❤️
@ashen hound this may be helpful for you as well, released it a few days ago #tooldev-general message
Yeah I saw that too - Thanks! And yes, thats definitely helpful too 🙂
@somber mortar I have a question or maybe feature reequest :D , so I noticedthe pricechecker is only visible in OBS when I use screencapture, but I prefer not to capture my whole screen and rather use windowcapture for PoE2 , would it be possible to make the overlay in a way to show up in obs, maybe as a own windowcapture?
I believe that isn’t possible due to an upstream electron bug
you could try running exiled exchange in compatibility mode for windows
read this github issue for some of the user based solutions (settings in OBS, compatibility mode, etc) https://github.com/electron/electron/issues/16955
possibly exiled exchange could add a "disable gpu" or "streamer mode" setting that defaults to off using the solution here. not positive if it would work though, someone would need to test it https://github.com/electron/electron/issues/16955#issuecomment-564811910
Hmm I will have to read all that, but at first glance it looks like they already have whatever they were trying to get to show up in obs selectable in obs, I can ´t even select EE2 in obs since as soon as I tab out of the game, EE2 closes down, like when i do shift+space for example the menu stays open but when I tab out to add a window source in obs, then EE2 overlay closes and thus i can´t select it in obs, as it only shows active sources
there is a way that you can get awakened poe trade (poe1 equivalent) to keep the window open
let me fiddle with obs for a second and see..
I GOT IT .. you are a genius
So how i did it was I opened the settings
This, I put this into obs as a window source
And then said if it doesn´t find this it should take any window of the same program
and now it works when I pricecheck in game
this is so amazing, thank you @lone ingot

