#tooldev-general
1 messages ยท Page 7 of 1
But should still work
The linked list should probably be a heap or at the very least a VecDeque, but it becomes a lot more complex with the dynamic counts and back offs
I was thinking of it in terms of tocken buckets
but yeah I guess just having a counter is more than enough
to anyone who's been using the API for a while, how common is it for GGG to change up those ratelimits?
Problem is, every request may land in a different bucket and you only ever know which bucket it was after the call (through the header)
Stuff like trade more than other endpoints I'd reckon.
trade as in the psapi?
So either you manually specify which bucket to use for each call (which I did) or you implement some 'learning' which can go over the rate limit if you're unlucky
I'm only really concerned about getting a player's stashes
I'm using https://snosme.github.io/poe-dat-viewer/ (which is amazing btw) to look through some files trying to find files about when certain classes unlocks different skill gems. I already found all the files for the questrewards, which the the gems you can choose on quest completion. However after some quests, different classes have the ability to buy different gems from the vendor and this is what I cant find, anyone having an idea where this info can be found in the files?
Vendor rewards aren't in the game files since ages.
Quest rewards just recently returned the other league.
oh thanks a lot, manually creating the database lets gooo
I'd suggest pulling vendor rewards from the wiki, or possibly poedb
PoB update for the new 3.22 tree is out
key guys what does indexing field do in enumerations in schema.min.json?
is it the value of first entry?
I believe so, yeah. Some tables are 1-indexed with small integers.
hey folks, i'm working on a very primitive poe app, that ideally would be able to display some sort of notes to the player every time they enter a new zone, however as i'm pretty clueless about how to get the "zonedata" for the character the player is currently on, i thought i would ask here
the idea is inspired from Poe Overlay where it shows you every time you enter a new zone
The only datasource you have is to follow the client.txt file in the game's log directory.
You're allowed to read it given user approval of the purpose for reading it.
when you write "user approval" is that the OAuth 2 stuff they mention on their developer docs?
Nah, nothing formal like that.
Ah, so i just have to ask the user for permission to read it before it does it?
I forget where I read it now, but yeah. It contains chat messages which makes it have a bit of a privacy aspect.
Someone in another tooldev chat just the other week released PoESplit - a visual map built on that kind of tech: https://github.com/exilekit/poesplit
Ah, there, in https://www.pathofexile.com/developer/docs:
Reading the game's log files is okay as long as the user is aware of what you are doing with that data.
Thanks for the tip ๐ , i would like to do my own take on it since i don't currently have a coding project to work on ๐
but still, it's nice to have another project for reference if i encounter issues
In the game installation directory (both Standalone and Steam) there's logs\Client.txt with a reasonably parseable format like:
2022/12/18 16:22:19 125418250 cffb0734 [INFO Client 25924] : You have entered Vaults of Atziri.
You can look some information on those area names in the WorldAreas.dat64 table of the game data files, maybe with table exports from https://snosme.github.io/poe-dat-viewer/ or by pulling the data out ahead of time from offline game files with very specific tooling of your own.
Sounds like a fun little project, the channel is always here if you've got some questions.
Thanks a lot for the help ๐ i'll probably return some other day with even more questions ๐
I got what i was looking for so i'm gonna start working on it ๐
sorry for the late reply! I think that if you're referring to materials from the press kits it's expected and even encouraged for you to use them for those purposes.
I do this to seasonally rotate the background and logo for my app (see picture).
You can find the trial of the ancestors press kit here https://web.poecdn.com/public/news/2023-07-29/ECSATPK/New/PressKits/AncestorsPressKit.zip
I'm hoping if someone better versed in POB than I could be able to get me the stats per Phantasm level for Phantasmal Might (The Black Cane) for me. Having trouble figuring out where that data was sourced from, would be nice to have it on the wiki.
I assume it's probably based on poedb (or wherever poedb got this from)?
https://poedb.tw/us/Summon_Phantasm_Support#SummonedPhantasmSummonedPhantasm
this is when it was added I think https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/2112 I assume its just in summon phantasms data, but I can check when I get home
i want the buff's stats, not phantasm stats
the added physical damage
@oak estuary looks like this was from you?
if not i can just write it down manually ๐
@vestal pond whats this? i havent seen this error before, now it refuses to open tables with enums >.>
Anyone here consuming the psapi stream? What kinda throughput are you looking at? how much raw data is it per hour/day?
Fixed
Haven't used it since like Legion, when it was the most backlogged it was like 5 MiB/s.
It's in the sup_int.lua file. If you show more lines in that second commit, it starts around line 4671 in the levels table. At level 1, 2 and 3 correspond to phantasm_minimum_added_physical_damage_to_grant and phantasm_maximum_added_physical_damage_to_grant, respectively.
this one right?
Yep
It's probably a float increase that rounds to the nearest integer. Then when it get to level 30 it cuts in half, like most gems
Hello guys. When im opening POE client, this window always show up. Any one knows how to resolve this?
That's a new one for sure. Some component of your Windows installation is hosed, there ought to be various advice online that might resolve it.
(it's off topic for here, as it's not about PoE tool making)
Sorry and thanks for answering ^^
you might want to search for and uninstall whatever that Windows game overlay is, unless that's something you're actively using
Sounds like the thing that the Game Bar (Win+G) and Game Mode uses, so a somewhat integral.
Very handy for recording tool and game clips, btw.
Found the issue guys, thanks for your input! ^^
Try a game help channel.
Oh oops! sorry
now I just want the "item filter information" post
should be today
anyone else experiencing import bugs on pob?
There's a couple issues about it on GitHub. I just pushed out a hotfix for it. classId and ascendancyClass were removed in favor of class on the (unofficial) import endpoint we use
oh wonderful
Sanctum Necropolis Research
Sanctum Vaults Research
not on the list, can be traded, but not dropped?
name changed
Honoured Tattoo of the Wise Man->Honoured Tattoo of the Wise?Tattoo of the Valako Storm Conduit->Tattoo of the Valako Stormrider?
they can only drop at the end of the sanctum but you're right they should probably be mentioned
Is the poe api still accesssable to look up divine/chaos prices?
Hey @compact isle what will be the format for passive skill tree URLs for old Ruthless leagues? For example, https://www.pathofexile.com/passive-skill-tree/3.2.0/AAAABgAAAAAA is an old tree (no nodes selected though).
Sounds good, thanks
Where do I find current game version (i.e. 3.22) in the bundle?
I tend to identify a bunch of Watcher's Eyes every league and I've noticed some fun patterns with the relation between prices and mod combos, so I got the idea to put my college degree to work and practice some machine learning techniques on a dataset of mod combinations matched with item value. I tried looking if anyone's collected that data yet, but after not having much luck I started looking up how I could collect it myself and landed on two initial possible approaches: (1) Combing through the Public Stash API river for Eyes and collecting their mods and listed prices, which has the advantage of getting a more diverse collection of Eyes or (2) Using the unofficial trade API to search for a subset of Eyes (i.e. all two mod combos, or a timed recurring query for recently listed Eyes in a few price brackets, etc) to build a similar dataset
In both cases I figure I won't have issues with API delays or rate limiting since I don't want to use this data for any real-time trade advantage or anything of the sort (especially since pricing Eyes manually is pretty trivial with Awakened POE Trade) so I've got no rush if it takes a while to collect enough data. I've never worked with a full real-world workflow such as the one required for this (interfacing with an API, collecting and storing the data, cleaning it up and preprocessing and so on), but I think it'd make for an interesting learning project
I'm writing here because first of all I want to make sure this is all okay with ToS and such, but also I've got a few implementation questions if it is: what approaches would you guys recommend? Any pitfalls or issues I should especially watch out for? Would dynamic rate limiting come into play if I make slow but repeated queries to trade? Also, I'm not very familiar with OAuth, would I need to host a redirect server even if I only plan on using the public stash API with no other users? From what I've gathered of the developer documentation I'd need a Confidential Client with the Client Credentials grant and services:psapi access, I think
sorry for the long ass messages, english isn't my first language so I tend to overdo it on the writing to make sure it's extra readable
The game data does not contain a version, as it's not tied to a specific executable version. I pull a version string from the executable instead: strings -d -n 14 | grep 'release tags/' and sort by longest match.
In the past it was strings like 3.11.2b and these days 3.21.1 216223.
I'd go the river route. You'll have to guess when an item was actually sold to someone else instead of just delisted (not possible) or re-priced (possible), I assume this is much easier with the river than the trade site, it also means you're not (ab-)using an internal api and won't have rate limiting issues
Yeah, I'm tending towards that as well, especially since getting the item's price when sold is much harder than getting its price when listed. I'm thinking of storing the item's id and using it to check for re-prices if it reappears in the river (might have to do some sort of dict based on stash tab id in order to avoid edge cases where entire tabs of eyes have to be checked for repricing whenever a new one is added or removed, but I'll try to optimize that only if needed). Since I'm mostly interested in the rough data and won't be using this for much other than development practice, I might also just use the latest listed price instead of trying to track sales or delistings since that'd add a huge layer of complexity to the situation
Should be pretty easy to just store the entire history of an item
Then I could store the time since the item was initially listed and/or the time since its last price change and attempt to clean up the data later to filter out misprices and such that don't sell
Yeah, probably gonna go that route
Wonder if divining changes the item id
Hmmm no clue, but for Watcher's Eye specifically I can probably get away with making a pseudo-id using the mods and the stash tab/player info since it's pretty unlikely that someone would have multiple of the exact same eye combos, but that's for later
I could also just store the rolls since there are like, 89 possible eye mods iirc, could probably extract them pretty easily, would be useful for checking for the influence of min/max rolls in each situation
no
What exactly is your goal with this though? How is this a machine learning problem?
e.g. wouldn't you "just" want to look for pricy eyes and common mods between them? The more common, the more likely it is a mod that contributes to the value?
oh, hrm, I guess a more sophisticated could pick up on mod combination that together turn into considerably more value?
Yeah, it's mostly for novelty purposes. I figured I can encode each eye as a vector of 89 elements, with each element representing a mod (with value 0 if the eye doesn't have that mod and 1 if it does). In terms of machine learning, it'd be a supervised regression task with the listed sale price as the correct label
I was thinking of trying some basic logistic regression and some simple neural networks just to see the results, and also it'd be interesting to see if we could predict 3-mod jewel prices just from 2-mod ones for example
And it'd be interesting to see the relationships between different mods. I've noticed from my own ID's, for example, that Pride Impale is pretty worthless without one or two other Pride mods (in the last few leagues, blight carrion golems and so on was another story), but the opposite doesn't seem to be true, with some Pride mods being just as valuable without the Impale one. It'd be interesting to analyze these kinds of patterns (but yeah, mostly it's for the fun and practice of implementing everything)
uh did they change all paths to lowercase or was it always like that?
recent change
3.21.2 (with the GPU particles) pulled with it a whole bunch of renderer tech, including changes to bundle storage.
Among the changes was a different path hash algorithm and also lowercasing of the compacted path representations that you would use to iterate directories.
ah so im not going crazy, i was reading through bundle specs and couldnt see where it could store case information
The path-reps were all lowercased for performance, assumedly because the hash algorithm works on lowercased paths already.
welp i was relying on a couple folders having different casing, guess ill have to fix that part now ๐ฆ
So going forward, everything derived from there is lowercase which is a bit of a bummer and raising some problems for people like me who use path hashes as keys to find files between releases ๐
weird how dat files are still pointing to uppercased image paths
All the paths embedded in other text and binary files are probably still the same too, like TGT/TST/MAT.
Most things are authored using loose files in the game tree, which still is maintained properly in SVN.
The loss happens in --generate-bundles or whatever the flag was called.
This amusingly enough means that there can theoretically be casing bugs in a bundled release that aren't present on a developer machine if they're not using bundles for those files.
216223 looks like a changelist number ngl ๐
I wonder if they use perforce
Subversion still, as far as I know.
Over time it's been possible to see it in presentations like a branch picker in the task bar, paths in file pickers, heck, might even be in the hardcoded paths in some data files.
Why change a working system?
Single geographical site, fast network, sufficient local space on machines, not too much in the way of fresh clones, existing integrations into ticket system and other tooling.
Most reasons you'd have to migrate a FL/OSS project do not apply in the same way.
Assets are assumedly stored in some other way, I can't recall how.
yeah that's pretty valid
I hope they have some good frontends for it still I remember every GUI for it to be a pain to use
maybe their engine has integration for it? 
Thankfully never had to use svn
I had to use it once (we were using tortoise svn) and it was an absolute pain
for me when it comes to gamedev perforce > git > svn even though I wish it was the opposite ๐
I shall throw in Pijul as my VCS of choice
Smells like Darcs.
I raise with https://github.com/martinvonz/jj
No, not yet
When do we usually get the "internal" name for the league we can later use for the API?
only after the league releases? or beforehand?
HAving some issues installing PoB anyone I can DM so I don't flood the channel? Pretty stumped on this one. Help appreciated greatly โค๏ธ
DMed
Hi I am new here, where are you guys getting data for your applications?
depends what kind of data you mean
Sorry I should've been more specific
I meant items, modifiers, uniques...
I saw something about parsing the ggpk file, but I am not sure what that means
Most us get the data from the ggpk directly. Unique mods are found there, but the uniques themselves aren't. https://snosme.github.io/poe-dat-viewer/ is a handy online viewer for the data.
Check https://snosme.github.io/poe-dat-viewer/ and the corresponding repo
Ah rip me
There's some information in the unique stash tab connecting names with art, but the items themselves are sourced from players, teasers and trade occurences.
Also if you then want to parse the ggpk file and included dat files yourself there are already existing libraries available, you don't need to start from scratch
Like LibGGPK in C#
And https://lib.rs/crates/ggpk in gust
Rust*
For some things there's also the possibility of pulling crowdsourced stuff from the wiki API.
I am not even sure what I am going to do with this info yet
Just doing some research
But it's good to know you are all very helpful
I wasn't expecting to get an answer so quickly
All lurking for league start dev leaks ๐
Historically the RePoE project had collated a lot of fundamental information like item types, gems, etc. in JSON files. It's probably still without an established successor.
Oh wait - https://github.com/lvlvllvlvllvlvl/RePoE
The unspellable username ๐
fr, that's one way to give yourself a headache everytime you need to login
At least it isn't lIlIllIlIllIlIlIl
anyone have the problem that for pob goes dark when lost focus in the 2nd monitor?
Never really managed to reproduce that problem reliably, and haven't looked too much at it with the new renderer underway for ages now ๐
i tho was the awakened poe trade macro but its not
just goes dark when i go back to poe, when poe is in windowed fullscreen of fullscreen wont happen on justwindowed
uh is the CDN doing something funny with fetch requests? im trying to load images specified in the tree json
FetchError: request to https://web.poecdn.com/image/passive-skill/skills-3.jpg?ba75fd4e failed, reason: read ECONNRESET
at ClientRequest.<anonymous> (file:///C:/Projects/planner-tools/poe/node_modules/node-fetch/src/index.js:108:11)
my monitor is 60hz, if i cap the fps to 100 in poe, pob wont flicker (?)
oh nice javascript logic. my code buffers up so many actions that the request times out before the response is read -_-
I just installed https://github.com/Lailloken/Lailloken-UI/ and managed to import a guide for the leveling tracker but the colours aren't working for some reason (it should be like this but it's only white text atm)
Removed and added DAT64 names in 3.22 vs. current: https://gist.github.com/zao/6c6d52220bb9be72cd820d5f587d39c1
This probably won't work anymore, not updated since hashes changed
Hey there, question on the weird colour code I've seen in pob community, what's the ^4, or ^ plus any digit corresponding to? is this a standard from somewhere? or do I have to test all the numbers to figure out all the colors?
There are 10 hardcoded values in the SimpleGraphic backend. If you want specific colors you can do ^xFFFFFF
well, just wanted to know all the corresponding hardcoded value. What a name for a lib! hard to google this libs and find out the corresponding values.
Is that just a local library of pob?
Well...it's homegrown ๐ https://github.com/PathOfBuildingCommunity/PathOfBuilding-SimpleGraphic
https://github.com/PathOfBuildingCommunity/PathOfBuilding-SimpleGraphic/blob/1a74f65d8a7c84fd8835d0b7cf73c4564c1d7925/engine/common/common.cpp#L189 is what you're looking for
And the values: https://github.com/PathOfBuildingCommunity/PathOfBuilding-SimpleGraphic/blob/1a74f65d8a7c84fd8835d0b7cf73c4564c1d7925/engine/common.h#L99
I don't know if this question comes from using the Notes page already, but you can go there and play with the buttons at the top
Ah, then I suspect you'll have a few more questions as you go. I can shoot you a server invite if you find you need it
there is another discord server specific for pob? well... why not? I'm quite happy with what I got for now though.
oh, I believed that ^7 was a hardcoded ending tag, turn out it just the color code for white. Mind blown.
I have ^7 just as default color
cries in light theme
Can someone point me in the direction of an UI tool that I can study to learn how I can craft my own?
what kind of UI tool?
For starters I want popups when I encounter a Syndicate member.
And some other things. Like an audio signal when my flask is up.
The crux for any such reaction is that you need a legal data source for those events.
If it's not in the client log, you don't have anything to go on.
It is in the client log.
I don't plan to do any memory checks or something. For stuff that's not in the client log I'll force it through repeated screenshots.
And there will be /no/ automation.
You've got three primary choices around UI stuff - either a regular boring program running on another screen, a transparent program on top of the game that ruins performance and is transparent to events, or something that communicates solely via notification bubbles.
Automated OCR is kind of problematic.
Kind of. But not really. I don't want to automate text, for example. That would be hard. But if a buff is there or not, a buff for which I already have a picture of. That I can check.
On the safe side there there's "weak auras" that replicate and magnify part of the screen without reactions, and user-initiated actions.
Any action will be user initiated. I'm not trying to do anything untoward.
But I was looking to see what are my options on how to actually get something up and running. Starting with some popups based on text in the client log.
So it's gonna be either 1 or 2. Ideally on another monitor, but if someone doens't have 2 then it'll have to do.
where can i find a consise documentation of ggpk format? one thats easier to process than reading through various source code
Bundle article needs to be updated with new path encoding scheme, I should do that.
GGPK one is from my poe-doc repo that I made private a while ago, should be largely accurate still apart from the ggdh files that no-one has bothered figuring out the purpose of.
ah thanks. im just considering adding ggpk support so i can update data earlier from torrent
ggpk also uses murmur hash?
Yeah, it used 32-bit murmur2 since the dawn of time.
If you're building your own GGPK reader, I recommend doing a linear pass through the file to parse chunks and track them by their offset, skipping past the data. You can then reconstruct the hierarchy from the chunk offsets and their occurences in the directory entries, and then export accordingly.
the "bundles" link in ggpk doc is dead
oh so ggpk just uses the same bundles as steam?
I know you said no source, but also https://github.com/zao/ooz/blob/master/libpoe/poe/format/ggpk.cpp#L105 ๐
Yeah. The GGPK contains all the same "loose" files that Steam does.
i guess if its better than reading C# (https://github.com/aianlinb/VisualGGPK2/blob/master/LibGGPK2/Records/FileRecord.cs) ill take it
Library for Content.ggpk of PathOfExile (Rewrite of libggpk) - aianlinb/VisualGGPK2
^_^
I have a computer science degree and need to add one more project to my portfolio. Was thinking I could do a small POE-related project and wondering if anyone had any ideas, just any simple CRUD webapp or something that uses the API. Doesn't even need to be used by anyone aside from myself, moreso just to show interviewers
coming up with the right idea is the hardest part
We patch in 1h20m and my tools are still broken ๐ฆ
I still need to trick someone into building a DAT metadata comparison website, but I don't even know what I want there ^_^
Sounds like you found a project @frozen field ๐คญ
Just noticed, the path casing problem is in those data files too... old ones will have TitleCase.dat64 while new ones will be sadgecase.dat64.
So many assumptions everywhere about path casing.
Is the project a robot that pokes zao until magic happens
uh how do the sprites in public tree data work? for instance for Art/2DArt/SkillIcons/passives/IgniteStunNotable.png it says it's located at 518,582 of skills-3.jpg, but if i go to these coordinates i find this icon instead
or is that the correct icon and poeplanner has it wrong?
Should be this one. How are you translating those coordinates to the image? You're on the right row but too far to the left
i just opened mspaint and went to the specified coordinates
where do you even have that?
for me that section looks like this
wait. im using this image https://web.poecdn.com/image/passive-skill/skills-3.jpg?ba75fd4e
i assume youre using the ones in github, and theyre different?
why is the tree data pointing to cdn then if its outdated? o_o
It's not outdated yet ๐
has this
"0.3835": {
"filename": "https://web.poecdn.com/image/passive-skill/skills-3.jpg?ba75fd4e",
"w": 925,
"h": 1333,
aka new tree data is pointing to old images
i guess i have to replace these fake urls with githubusercontent then
Presumably because that's where the new image will live once it's live. If GGG published it now, all the current trees would look wrong
Or host your own images. Hot-linking their images is discouraged, afaik
im not hotlinking im loading them in my offline script that slices them up and stores in a different format
previously i just had holes like this
Oh well in that case can't you just download the whole repo? I guess that's no different than using githubusercontent
im trying to minimize manual work. to a point where i just run the script and it does everything, getting data from steam files, converting all images to webp, etc
otherwise i have to keep a 20 item list of what tools i need to run to update the data ๐
Out of curiousity, which tree viewer tool is this? Just a personal one?
Create, evaluate and theorycraft the optimal Passive Skill Tree path with our Path of Exile Passive Tree Planner Tool.
and all the embeds in guides etc
"small indie website"
lol, I'll say
oh a quick question, anyone knows which image has the little dots that go in these circles?
Yes because Ill have to implement it soon :p
is there a new encoding with 3.22 or its the one thats already live?
Same since 3.21.2, the leetbeef one.
does anyone know what the /append for trade is gonna be? its not gonna be /trialoftheancestors or something right ๐
Based on other occurences, I would guess at ancestor, but we'll see shortly.
the league name is Ancestor
Have a good launch, GGG peeps! 
so far so good ๐

thanks bro 
soo how many dat files changed this time ๐
I'd tell you but my tools are still broken and I have ice-cream instead.
dang ill trade my tools for ice cream
changed? no, not even broken. just new for the league
your stuff works great! though i couldnt get the npm package to work though so i copied the files over
did GGG change the hashing function for their content file paths?
Path of Go - Go tools for exploring Path of Exile data - oriath-net/pogo
someone just woke up
murmur64a
yes, in 3.21.2
tyty
@neon plume It's now using MurmurHash64A, the seed is 0x1337b33f, both file and directory paths are lowercased, there's no ++ suffix anymore, the path rep section that you use to generate filenames is now pre-lowercased already so we can't tell the case for new files.
lol I just read the seed from that PR and did a double take
You can detect if an index uses the old or new scheme by looking at the path hash for the root directory, and in case you're afraid that the seed will change, you can run the hash backwards to compute the seed.
^_^
Due to the construction of the hashing algorithm, when the input is empty it's three invertible operations.
The root directory is the empty string.
LOL

I did that in the most overkill way possible - asked a mate of mine that designed one of the SHA3 competitors on how to do it.
most extreme way would be brute forcing it
Technically 64-bit seed, even if most codebases only specify 32-bit ones.
But yeah, we had some fun days a bunch of weeks ago when this change suddenly landed in a late-league patch and we knew nothing about algorithm, application logic or seeds.
it worried me when I googled it and half the links were purple but I do not remember ever looking at it
so I'm just gonna ignore that
whats the array at the end of CraftingBenchOptions?
looks like foreignrows to some other table
there only a few table it can be, and none looks to be correct, so will leave it as rid 
by any chance is the first hash supposed to be 0xF42A94E69CFF42FE (or 17594038612473627390)
0x1337b33f
@formal kraken I updated the Bundle scheme article now to outline the 3.21.2 changes.
Yes:
switch (idx->path_rep_infos_[0].hash) {
case 0x07e47507b4a92e53:
idx->hash_algorithm_ = HashAlgorithm::FNV1A_3_11_2;
break;
case 0xf42a94e69cff42fe:
idx->hash_algorithm_ = HashAlgorithm::MurmurHash2A_3_21_2;
idx->hash_seed_ = 0x1337b33f;
break;
>>> h = 0xf42a94e69cff42fe
>>> h ^= h >> 47
>>> h *= 0x5F7A0EA7E59B19BD
>>> h %= 2**64
>>> h ^= h >> 47
>>> hex(h)
'0x1337b33f'
I do that in Bun for future-proofing but it is quite unlikely that they'll change it onward.
might aswell
It's equally likely that they change the algorithm again, and then a computed seed would be incorrect.
I've got some logic to actually validate the seed against the first non-empty directory entry but didn't include that in PyPoE as it has some non-zero cost and is a bit brittle.
I'm having more problems as I used the old path hashes extensively in Inya instead of literal paths, and now that there's two schemes it's harder to work with.
Managed to update poeAtlas.app intime for launche! poggers ๐
wait but that goes beyond 64 bit integers
2**64 is max uint64 + 1
It's 64-bit modulo arithmetic, the %= step truncates it down.
yeaaaaaa Go no likey
In languages with sane sized types, just don't do that part. I made it up for Python to not be sad.
oh got some examples for sane langs?
uint64_t h = root_hash;
h ^= h >> 47;
h *= 0x5F7A0EA7E59B19BDULL;
h ^= h >> 47;
the fuck is that ULL
Unsigned long long literal.
tyty
In Rust it'd be 0x5F7A0EA7E59B19BDu64.
& (2**64-1)?
The types of literals in C and C++ are cursed unless you go and tell it exactly what you want, as it picks a type that the literal fits in otherwise, vaguely.
Without the u64 because compiler would infer it correctly :p
Go:
a := (hash ^ (hash >> 47)) * 0x5F7A0EA7E59B19BD
seed := a ^ (a >> 47)
dont know where to post this: why do i get this error installing pob on a clean win10 install
looks like a 1drive issue
Open your Documents/Path of Building/Settings.xml file manually, then open PoB again.
Well that seems like the problem ๐
yeah, how do i fix it ? 
You can install the standalone version or tell OneDrive to always make that PoB folder available offline
i was installing with the .exe version because the zip one wouldnt update
i guess question is how do i shut up onedrive
I truly don't know. People have been having this problem more and more lately, but I've never had an issue
very annoying tbh. thanks for the help tho
You can move OneDrive to a different folder, at least on Win10
One of the things I have deep on the virtual todo list is to see if one can query OneDrive status via API to fail in a nicer way.
Oh, this isn't the server I thought it was ๐
hey I need a sanity check and potentially a bug report?
The sprites.notableInactive.'0.3835' has an incorrect mapping in GGG's skill tree export?
Checking here: https://raw.githubusercontent.com/grindinggear/skilltree-export/3.22.0/data.json says the full spritesheet size is 925x1333, however, the actual image is only 888x1359 ?
seems correct to me
you're comparing against the assets in the github and not the URL, right?
website will be different from the export
but it links to it
Ack. Some peeps thought that the website would be "updated" at launch.
just means that more art was added / changed after the export happened
I'll re-export I guess
linking to it only makes sense for the live data. Just semantics
I could just stuff it into being the relative path but eh
"data_inspired_by":
"data_loosely_based_on":
hah sorry for the confusion
no worries, glad I caught that
ty!
SR but can i ask about awk trade here?
i got this issue, i tried to reinstalled, update and and still not fix it, someone help me 
@spark tendon you are blocked by CAPTCHA, price check item, click Browser button there
i solve that but another issue appear 
You will need to do this every 10min... Also Browser button don't appear on currency items like that one
sr i dont get it @@, wdym "browser don't appear on currency items like that one"? 
Means what I said, u need to complete captcha again, but to access builtin browser -> price check non currency item -> complete captcha -> pc currency
so i canT check currency any more? @@
The underlying problem is that your IP address or machine is "suspicious" and blocked by the CDN - CloudFlare.
The method to prove that you're a normal human doing normal things is to do the CAPTHA challenge, which will make it work fine for a while.
Awakened PoE Trade (APT) lets you open a browser to do this process, but the button in APT is only available on non-currency items. When you need to do the CAPTCHA you need to price-check a random item first, then you can price-check anything including currency again for a while.
what in the fuck is this chatgpt generated site? https://poetimelessjewelcalculator.com/
There's like 30 ads on the page, and half the info is literally just random trash
...the reason I found it was because of this https://www.youtube.com/@POETimelessJewelCalculator/videos
wouldn't be the first time
Timeless Jewels can also modify the connections between nodes within their allocated radius.
Dann what game have I been playing
Uhh @neon plume https://poetimelessjewelcalculator.com/author/vilsol/
da fuq
I've been busy
they 100% are
the MOST bizarre part is the fucking youtube videos
WHY are there youtube videos
can anyone identify the stream this is from? https://poetimelessjewelcalculator.com/wp-content/uploads/2023/06/POE-Timeless-Jewel-Calculator.jpg and maybe get them to send a DMCA to Cloudflare?
I think that's technically the only copyrighted material there is on that page
looks similar to what empy did, but not sure
Hi
Hi
Ive got an issue with Awakened POE, had an issue, so i uninstalled it, but i cant reinstall for some reason, installer says Awakened is still running
not the right place for it, but probs open task manager and find/close the process
@civic crane there's a bug w/ the current version of Awakened. the highlighting for influence type doesn't show up when you toggle it on (but it works)
@primal schooner best to report on github with screenshot
will do
counterpoint: https://poetimelessjewelcalculator.com/poe-elegant-hubris/ is an article about the recurring motif of "elegant hubris" in the works of Edgar Allan Poe ๐คฃ
Through his characters, POE timeless jewel calculator challenges the readersโ perceptions of right and wrong, forcing them to confront the darkness within themselves.
this whole thing is a monument to why u shouldnt let generative ai anywhere near a serious setting
that's not a serious setting
it's perfect for the use case
it's like how Nigerian scammers intentionally use bad spelling/grammer in their spam
DAMN! I look dapper!
FOUND THE DUDE
I meant I FOUND ME!
I'm totally a doctor!
oh god he I was on love island https://en.wikipedia.org/wiki/Alex_George_(television_personality)
ya the joke was it's this bad at a tiny side project so never let it near ur production apps
@civic crane How can I fix this? Thx !
does anyone know how poe.ninja pulls atlas trees? is it only for oauth-connected accounts? @fickle yew
I was hoping to get atlas trees for league accounts in a private league. actually, wondering if it's possible to get a poe.ninja-like summary of characters in a private league too or if I'd basically have to build it myself
Only for oauth connected accounts yes, unfortunately. Is it for your own private league?
yeah
Give me the id and I'll put it on the site ๐
:o wow PL41736
The full id... including the name I believe.
Should show up here when indexed https://poe.ninja/builds/pl41736/
thanks muchly!
krangledome ninja
Who vaaled poewiki?

x-posting from tft dev chat:
Is there such thing as linking GitHub issues to Discord Forums? (Not Discord channel notifications; actual forum posts)
u might be able to rig something up with github webhooks
i haven't looked at the discord api in a long time so i have no idea what u can do with it for forums though
https://discord.com/developers/docs/topics/threads#forums ok yeah looks like u can POST to the channel to create a new thread, which still works to create the thread if the channel is set up as a forum
so u could get a webhook to fire when an issue is created/updated and post it as a new thread or a message in an existing one
I keep being lost about what their restrictions when they changed bots around were, but I was of the general impression that bots can't read much at all on the server, only really react to things unless you've got an especially blessed one.
That kind of rules out a lot of the sync-like behaviour one might want to have.
Yeah, unless you're prepared to tag the bot in every message, that was the impression I got, too
(all I know is that my bot became strictly worse when forced into slash-commands)
i actually didn't consider posting the other way
only from github to the server
sync-like behavior is definitely still doable; 1b2 discord has a bunch of channels which are bidirectionally bridged to matrix and/or irc
for at least some of that I think they're using https://github.com/matrix-org/matrix-appservice-discord
which trade script lets you search the trade site in game and stuff?
The one im thinking of has a really nice UI and lets you save searches
Awakened Poe Trade is the one most people use. Not sure about saving searches though
yea thats the one ithink
hmm idk maybe this isnt it
how do isearch the trade site in game with this one?
APT doesn't keep any searches or let you customize past the mod ranges/inclusion on a given item you trigger it with.
It's explicitly to gauge the value of something you already have.
yea it must be something else then
shit
ah its poe overlay
through overwolf sadge

I tried the fork and from what i can tell it lacks some functionality like searching trade site in game
not sure what you mean
on the overwolf version if I press alt M in game I can perform trade searches in game and save searches
I didn't see that option in the fork
I see no reason why you'd want to do that
okay
i find it much more convenient than going to another screen to do it and I find the UI easier to navigate
but idk why it matters WHY i want it
@velvet fog any chance we can get a tab on the relic pages with the mods for that relic? eg https://poedb.tw/us/Censer_Relic#CenserRelicSanctumRelic1x2
@fickle yew Hope to get the feature that lets people select what to show up on the list back (etc. item type, passive type)
Then and now:
@formal flint sorry to bother you but from your mapsofexile site are you sure that Mausoleum is boss seperated and not hasnt spawned?
i did not filled any extra data for it yet as it wasnt on atlas last league and those 2 things can be both true at once, first one is filled because its coming from spreadsheet
Yes it is on my list to get back after I changed how the filtering works. Working on it ๐
Hello guys. How to install PoE to a specific folder or drive? There's no option in the installer. It automatically install to my drive c
In steam you can select your games directory (which you'll have to add first). But this is generally the wrong channel for game support.
I can't download it on my steam, after installation it says corrupt disk
I already fixed my drives but still the same
no problem on other games tho
before, I used to play on steam but "failed to decompress" keep showing when travelling through maps
Gotta love work internet:
The installer seems to have the Options button even after installation if one hits Uninstall.
I don't think I've run the installer in this decade, there's always an old installation to loot ๐
I see. I don't know why but I did not encounter this one when installing
I think I'll try it again
I'd strongly recommend figuring out why your computer corrupts things - that's not at all normal.
May it be the storage, CPU or memory that's weird, but it's not healthy.
yeah. It's a pain hahaha
thinks we should make more threads
Or not get baited into talking about OT stuff <_<
The uninstaller is great by the way, it doesn't actually remove the whole game directory, mostly just the GGPK.
hahaha. Anyways, thanks!
after installing the game it recommends me to pack check
If things are broken immediately after installation, find out what's wrong with your machine instead. You can't rely on such a box at all for anything.
aightt let see after this hahaha. If it doesn't fix it maybe my pc needs a reformat
Updated poeskilltree to 3.22.0, and I also added support for drawing the wormholes...missed that in 3.21.0
https://poeskilltree.com/?v=3.22.0
https://poeskilltree.com/?v=3.22.0-atlas
Hey, I'm new around here but I was wondering if anyone had written an app using an authorization_code flow? I am randomly getting 403 - Forbidden responses for the last couple of days when trying to exchange the code I get back from GGG for a token... Everything was working fine until a couple of days ago and now I literally just get 403 - Forbidden with no actual error message telling me why ๐ฆ
Fixed it by adding a User-Agent header (though wtf, this was working for like 3 weeks without it)!
Are you adding support for the ruthless tree, btw?
it displays ๐
For now, I probably won't be adding the ability to swap back and forth in the trees
I also didn't end up playing ruthless, so I will have to figure out how that is implemented ๐
I see the Ruthless atlas tree, but not the passive tree version with the ascendancy changes. If we support it in PoB we'll need to know its ID to import trees from poeskilltree
Please help me, when I launch awaken nothing happens, no combination of buttons works. I play on Directx 11 in windowed fullscreen
Oh, I completed missed that.
I was looking at the ruthless branch, and I think I was looking at the wrong repo. I will probably get that in later today. It would be "3.22.0-ruthless"
Is there a database of when a class gets access to a specific gem (basically vendor in which town, I don't necessarily need quest rewards)?
Vendor rewards are not in the data files since a long while, while the quest reward selection box has been recently re-added again.
You've got to consult externally curated sources like poedb or the wiki for that I'm afraid.
I'll see if I can query the wiki ty
Making me download a patch this morning and it keeps going to 0 bps download on standalone client.Same thing happens on steam. Tried pack check, port forwarding, firewall off, add exclusions, restart PC/router, tried different connection
I fixed by using a vpn
PoB update out with all the new gems, tattoos, ruthless tree and more
Local, is there a way to create a timeless jewel by typing a number and not having to use the slider? it's not very acurate...
You can edit the jewel and type it in there
kk thnx
That was easy, files are extracting with the new hashes \o/
Enjoy the lack of case.
Where can I find the info if a gem is a dex/int/str/other gem? Basically the color, green, blue, red, white
thanks, I totally glanced over that
@velvet fog Could you please add Text Audio of Ancestor NPCs? I'm very interested in Lore in this league. https://poedb.tw/us/NPCs
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
Hey guys, sorry if this is mentioned somewhere, but I'm interested in making a PoE addon, is there any I guess intro to making PoE addons anywhere? or any information / documentation I can look at to get me started? (I guess something to sort of help is something more along the lines of Awakened PoE Trade, where it's just an overlay for the game and only reads items the player pushes a hotkey on ๐ค)
there is no official addon api in poe, something like awakened poe trade with a homebrew overlay is your main way of doing things here
is there support for tattos in POB that i'm not seeing?
Yes, right click on any attribute node, assuming you're up to date
added
Thank you very much! There are so many attractive information!
https://poedb.tw/us/Ancestor_league#TextAudio I think there should be Kaom in the Ancestor Text Audio, not King Kaom. https://poedb.tw/us/Kaom
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
merged kaom and kaom king
@compact isle garena's trade website seems to have a huge delay, items take a long time to appear on the lists, and sold items still receive messages
What would be a generic word/phrase for what all these tools are? Like game 3rd party tools? Or just game tools?
I'm trying to ask the mods on another game discord to open such a channel, but lack the right words for it.
third party tools
@compact isle garena's trade website bugged, search anything and copy the url, open new window and the url hash become invalid
^ fixed today
how does one make blank lines and color coded skills like in this example?`
I can't seem to find a guide on it.
it's at the top of the Notes tab
@frank drift I assume they're doing skill groups, based on the width of the pane.
(also the (FullDPS) part ๐ )
But yes, skill group names unfortunately support colour escapes.
blank line is presumably just an empty group name
Anyone have a bg3 soundpack / filter?
Have I lost my marbles or is stash tab API blacklisted for... everyone it seems? 5 different people can't open it. Also tested several VPN's, VPS's and even Tor
oh wait it now requires auth? damn
APT: I changed my hotkey to 'ยฝ' (top-left of keyboard on nordic layout), and now the UI won't open. Is there a settings file somewhere I can manually change?
Is there a way to disable Awakened Overlay from running multiple instances? I am using a batch file to launch it whenever PoE opens, but the batch causes multiple instances in my PC
Maybe you can make your batch file to check for process existence and skip the launch if so?
I see some SO examples that suggest using tasklist | findstr to determine process existence.
A built-in mutex in APT would be cute, but single-instance-ness in Electron might be Fun.
FWIW, I don't seem to be able to start more than one at a time.
Oh, is "Awakened Overlay" another project?
Ah yes, APT has single-instance already.
Then workaround city, I guess.
No, it's the normal Awakened Trade overlay, but it is opening multiple instances.
There's a bunch of strings with tasklist, but it would be nice to have that option in the overlay tool.
The idea is to tasklist filtered on the file name, findstr to turn that maybe-listing into an errorlevel, and test that error level in the batch script.
I'm still not sure which project it is you're using, as names tend to resemble each other quite a bit and I've never heard of "Awakened Trade".
APT does this with:
if (!app.requestSingleInstanceLock()) {
app.exit()
}
I'm asking about the Awakened Overlay tool for PoE. I thought this channel was for discussion of PoE tools?
The channel is for development of said tools, not really end-user support even if people tend to ask questions.
Could you link me that software? I honestly can't find anything by that title and I still don't know if you mean something novel or Awakened PoE Trade.
Yeah I said Awakened Overlay, I meant Awakened PoE Trade overlay. My fault. Is there a channel for the end user questions about the tools?
Not really sure what goes on in the regular channels on this server, but I would assume that one of the more general discussion ones are probably relevant, or the tools channel over at TFT.
Now for APT, there's functionality in it to do single-instance since April 2020. If you've managed to break that in some way, maybe you should file a bug report on the GitHub repository with details on what you're doing and any relevant environment information.
Ah, that's very helpful, thanks.
TFT tooldev channel is more welcoming of enduser questions yeah
I believe Snos encourages people to use github for bugreports, and APT has pretty good documentation
@slender eagle had a brainwave in the middle of the night. I only tried running it from shortcuts and double-clicking the EXE. Maybe it's sensitive to the working directory and your batch file runs from an unexpected location or somewhere where it can't write or something?
Hey, I am trying out the stash API and I know that it's supposed to be 5 mins delayed, but I've been waiting 10 mins and neither mine or my friends changes show up? Am I missing something, or is it possible that some changes get skipped on the public API?
oh wow ok no it does actually work, I finally got the change after 16 mins
Maybe you arenโt reading the river fast enough(?)
comparing ID's I seem to be ahead of poe ninja at all times
doesn't mean that poeninja is always caught up ๐
yep, I know
totally not jinxing my own shit but I'm gonna attempt to make poeninja 2 electric boogaloo, now with modifiers and curves
as far as I can tell I'm always up to date, it's constantly waiting on first byte
it'd be great if the stash endpoint had a timestamp
oh shit ninja is far behind?
I just found this https://www.pathofexile.com/api/trade/data/change-ids
although it seems to stand still?
wait, why are you scanning the stashes huh ๐ ?
I have some ideas but I'll let the lad speak for themselves ๐
huh, ok, it stands still for my local connection, either from the browser or curl with no cache headers, and it still is the same, but on my dedi server it keeps ticking forwards lol
it's price prediction project, that is on hold for 2years now 
My guess was to get uniques for APT.
That hits too close to home
Stalled projects are a channel requirement.
uhhh if I use the latest ID that gets spewed out of this I just get a response to query the same ID again... forever
it also contains 0 changes
OH after like 5 mins finally data showed up
this endpoint is weird
The river is fun.
I'd reckon that the ID advertised on the website may be the current head but as non-special clients are on a delay, they're going to get nada until that change hits the release point.
has anyone figured out what do the numbers mean beyond the fact that they just go up?
Sequence numbers on each of the shards, IIRC.
Otherwise quite opaque and nothing one can manipulate really.
ok, so TTFB is like consistently >1s, and then actually receiving the body takes another second. That's too fucking long, so I just intercepted the reader and after each buffer loop I check if the next change ID is there, early exit, divert the rest of the body reading to a different thread, and start new request, seems to catch up really fast this way, getting the ID takes < 1ms ๐
if I take the latest ID from poeninja, I pretty quickly pull away from their latest ID
Yoinking the first bunch of bytes for the change ID is indeed a strongly recommended trick.
never thought that ttid (time to ID) will be a metric I will measure but here we are
doesn't seem like ninja subscribes to this trick, are they just constantly falling behind?
@fickle yew
oh no
I do have that as well. I disabled it last league since it didn't seem necessary as I could keep up with just one listener. But I'll just enable it again.
tried to calculate how long it'd take me to catch up judging by the ID's... not so helpful google
you run multiple listeners?
Right now just one. But I used to run 2. Looks like I need to again.
when you say multiple listeners, how do you handle that, considering it's a linear stream that you can't really jump ahead in?
I'm assuming by listeners you mean something that handles the actual body processing rather than making requests?
Pretty much what you just described with grabbing the bytes from the start of the request.
That said usually you catch up by just missing some intermediate stash updates. You only get the updated stash tabs so you might miss an update for one tab but you get the final state. So it's not that important unless you drift too far behind so there's significant lag.
mmm
yeah I've noticed that querying the same change ID has different next change ID's sometimes
Yep exactly. The current state has moved further ahead.
I would have expected that they'd make it so the response gets baked by the unique change id and cached on a CDN rather than actually constructing it per request
although that would mean you get all the small intermediate steps
One thing I saw with mine was that according to my bandwidth graphs my multi listener sometimes ended in a state with diverged river ids that seemed to result in double fetches. I would re-deploy and bandwidth would drop to half. It didn't affect correctness of the data but just not very efficient.
hmm yeah, seems a bit odd
There are other tricks. But I'll let you have fun with those ๐
Enjoy. Once you're done everyone will take your data for their tools and your visitors along with it. Nah it's a good fun exercise to build it. And interesting if you have new ideas for how to categorize data by mods and still have proper history.
lol thanks, I will, but I already know that the absolute hardest thing to manage will be confidence in item evaluation
does poeninja do any kind of sale-tracking-estimation or does it just skim off the top 1% (damn you price fixers answer my whispers or go away) of trades and evaluate the avg of top 50%?
(it's totally fine if you want to keep it a trade secret)
I try to avoid sharing too many details since it encourages attacks. Manipulation is very popular.
yeah I figured
I sometimes feel like I should be scraping youtube to find streamer videos creating attack like scenarios.
Hehe.
ok, I think I can pretty confidently say that when GGG returns a GOAWAY you've caught up to latest
this has now happened 3 times consistently
I see that you guys don't aware, GGG returns x-next-change-id header from some time ago. less tricksters in your code.
Also potentially faster to receive because cloudflare doesn't need to wait for buffer window of body to compress, Headers are flushed immediately
angry vilsol noises
undocumented therefore considered unstable and can be removed without notice /s
ok, I think something is actually up with https://www.pathofexile.com/api/trade/data/change-ids endpoint. I have now collected info from quite a range of locations and people and it seems that for some even with a no-cache header they get a cached response?
by any chance anyone got the first stash change ID of Ancestral league?
Can someone help solve the problem, awaken poe trade does not work, reinstalling the game and the program does not help, cleaning logs too, updating drivers 0 effect, could this be a problem in the PC system?
is the format for client.txt documented anywhere?
Not as far as I know, but I think all the aspects of it is known.
e.g. for most purposes I can inore the vast majority of it, but do we know if the things after the date in this line are the same for everyone in regards to join/leave messages, as they seem to be similar for me?
2023/09/04 20:09:40 428942296 cffb0719 [INFO Client 29428] : BigAF_ has joined the area.
2023/09/04 20:10:07 428969046 cffb0719 [INFO Client 29428] : BigAF_ has left the area.
specifically cffb0719
trying to figure out if there's anything I can identify what "kind" of line I am looking at without having to try to parse the entire line
It's an opaque identifier that identifies the line of source code the message came from.
ah, hrm
As such, it's not stable across releases.
I see, yeah, that's unfortunate
so I guess I have to write different parsers for the things I am interested in and then just skip the line if none can parse it?
Probably the easiest way. Enjoy the ones with embedded newlines ๐
that's a thing? 
I think quest greentext tends to have them.
Might make sense to chunk it up by splitting on the leading date-time.
yeah
If you're up for inspiration, this is a recent project that did a decent job of parsing: https://github.com/exilekit/poesplit
Hope you're not allergic to C#.
not exactly a fan but I had to use it for some uni courses before
Weapon Range not displayed in trade for non-english
which dat files contain the data to pull available mods for a specific item?
mods would have thier weights for each item type/tag
Mods
is a content hash of art assets stored anywhere? right now l'm checking if files have chnaged by extracting the dds and hashing it, just wanted to know if there's a faster way
there is a hash in .bin file
https://github.com/poe-tool-dev/ggpk.discussion/wiki/Bundle-scheme
isn't that the hash of the filename, not the contents?
oh..is it? I don't remember well
yeah. I don't think there's a content hash for files within bundles, but you can potentially rule out changes to a file if the bundle it's in hasn't changed
ya, I'm wrong, it's filename hash
there's content hashes for files and directories in GGPK, but most art files will be inside bundles
thank you
There's indeed no content hashes for bundled files out of the box, you have to lean on a third party system like Inya for that, if I had managed to keep it running.
One of the optimizations I do for data ingestion is that I keep a mapping from (bundle_hash, offset, size) to content_hash. That way I can tell given just the bundle index and the hash of a whole bundle whether any files inside are worth extracting.
are the .ot metadata files indexed in any of the dat files?
If a mod only has a default spawn weight, and it's 0, how is it possible that the mod ever rolls? E.g. ColdResistEnhancedModPhys is an incursion mod that has these spawn weights
The weights on the client only tell part of the story on how items generate, especially from non-crafting contexts.
Depends, a lot of type fields refer to .it/.ot files sans extension, like miscobjects.dat64's EffectVirtualPath, etc.
Similiar to how other fields are for .dds or .ao/.aoc sans extension.
kk ty
I'm trying to index all available mods on a given item, and the logic just escapes me. I have it correct for the most part, however, the 0 default roll is messing everything up. E.g. I am taking a Str helm as an example. At level 1 it can roll 46 mods (according to https://poedb.tw/us/Helmets_str#ModifiersCalc), but I keep getting lots more, including ones like LocalCriticalStrikeChance1 which is obviously a weapon mod, but it HAS a default weight, so I include it in the helmet roll... am I missing something?
As I understand it for natural rolling and natural drops, a mod with a zero weight shouldn't come up.
Delve/Temple item mods are grafted onto items in ancillary ways that may or may not be indicated in data files.
yeah, but I'm trying to get all the possible mods that can be on a specific item, irrelevant of whether a player can craft it themselves
so the real question is how does poedb know it can or cannot roll
and ig craft of exile too
Heaven knows, all I know is that it's a right mess and many people have tried and gotten sad about it ๐
@velvet fog sorry for ping but I would love any help regarding this โค๏ธ
CoE relies on community feedback as far as I'm aware
oh god please no don't do this to me
Not sure if RePoE cooks something meaningful too for them to consume.
@hexed mesa Did you ever solve the horrors around delve/temple items in your thingiemabob?
no
i had a half baked solution, but calling trade api thousands of times to check whether mod x with rolls y-z can roll on a given item slot takes a lot of time, also probably not exactly within tos ๐คซ
although i quickly realised it would be much more work than anticipated, so i gave up on that, since some values are stored with multipliers (x per minute etc.)
and poedb just had a manually edited list for those, last time we asked when i was working on it anyway

tbf most mods dont need special handleing its just delve/incursion/unveil/grasping mail mods right? (and you can get unveil mods by seeing what you can crafting bench onto an item)
well fuck me I guess
and elevated mods i think, but yeah should be just about that
I assume none of these community contributed mod lists are public?
although those should be manageable since they are probably similarly named as their normal versions
I remember poedb having an API?
for anyone wondering why would I want to go through this hell, I'm trying to listen to the public stash tab fire hose and match all item stats to mods
ok, so there are 1.4k mods that have only the default spawn tag with weight of 0
of which 422 are essences
yeah i tried to do that as well some years ago, its really fun at first, but then you start hitting weird problems like delve/incursion mods,
trade mod stats being different than those in game,
trade mods being merged (lets say you have an item with two mods, % inc armour, % inc armour and + maximum life, then two %inc armours are merged into one line) which is a problem since the api doesnt say how many mods the item has, and even if it did, in some cases its potentially possible that two or more different sets of mods would result in the same stats,
i assume there could be some problems with legacy mods in standard if you care about that
Are you using mod Domains and GenerationType to put the mods into categories?
I only care about league, and also it does tell you the amount of mods:
not that far yet
huh, thats nice i guess, must have changed after i stopped working on it
This is how we export them for PoB https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Export/Scripts/mods.lua
thanks, I've heavily inspired from that
ok, so there are 9k default 0 mods total, 1.4k of them are completely fucking random, and the rest have at least one other weight tag which can sort of hint at what it can roll on
this might actually be a showstopper if I have to manually categorize 9k mods
unless someone wants to help out lol
by any chance is there an API for poedb?
also probably worth pointing out that some mods in data are either 1) not applicable to items; 2) legacy mods; 3) crafted/veiled/etc mods
I just noticed poedb has a json blob on every page with literally all data I would ever want... I would really like to know whether that data can be used?
ok what is going on with this: https://poe.ninja/pob/l4W if you import it into pob it changes to cerulean ring and poe.ninja shows small life flask when it's actually ruby flask
Looks like gear sets aren't implemented, pobbin shows a progensis in the first set and nothing in the active set which seems to be correct
that would make sense
What is API for Ancestors Currency of poe ninja ?
Previous wors https://poe.ninja/api/data/currencyoverview?league=Crucible&type=Currency
this not works:
https://poe.ninja/api/data/currencyoverview?league=Ancestors&type=Currency
no s at the end of ancestor
I know now, and what API is for Tattoos ?
Siet I tryied this ๐ I must have made a typo somewhere, THX !
If you want to find others. Just open the network tab in chrome and filter by Ancestor
I sow that tip in google but I didn't know how to use it completly now I know THX !
For listing of Currency for develop tools etc, this is the best way or there is other sources ?
hey guys Iโm new to Poe and im loving the free community tools. Does anyone know if any of the devs want any help? Iโm down to pitch in and contribute
maybe find a tool you like and then look at that tool
PoB could always use help, even just filling out or improving the help section would be a huge help https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/6093
Just released a new version of PoEFilterX, v3.22.0
Mostly just has a new feature I am excited to announce, Abstract Filter Blocks, which you can read all about here!
https://github.com/SteffenBlake/PoeFilterX/wiki/Code-Guide#abstract-blocks
To update to the latest version of poefilterx, just use the installation guide here, specifically via The Toucan Way (as thats the only installation method that has LTS now):
https://github.com/SteffenBlake/PoeFilterX/wiki/Installation
For any further info, feel free to check out the README on the github for the project:
https://github.com/SteffenBlake/PoeFilterX
@fickle yew would it be possible to enable blitz charges by default for all marauder classes just in case they run the forbidden flame/flesh? Think pob would require them to equip the forbiddens to get any benefits anyway
I'll add it to my list of things to look at ๐
Hi, can anyone help me with public stash API? I see that ilvl is marked as deprecated in the official docs. Is there any other way to get the item level? ivemLevel field is never present (at least in stashes that I queried). Here's an example belt from one of the recent stash updates:
%{
"baseType" => "Leather Belt",
"explicitMods" => ["+13 to Strength", "+41 to Armour",
"+19 to maximum Energy Shield", "+24 to maximum Life",
"+15% to Fire Resistance", "+32% to Cold Resistance"],
"extended" => %{
"category" => "accessories",
"prefixes" => 3,
"subcategories" => ["belt"],
"suffixes" => 3
},
"frameType" => 2,
"h" => 1,
"icon" => "https://web.poecdn.com/gen/image/WzI1LDE0LHsiZiI6IjJESXRlbXMvQmVsdHMvQmVsdDMiLCJ3IjoyLCJoIjoxLCJzY2FsZSI6MX1d/93af17affd/Belt3.png",
"id" => "9f3a8538d17575bd1ba92b5e5f629f9c91ecb402b79a98d4d53cbfcadf4f5ee7",
"identified" => true,
"ilvl" => 69,
"implicitMods" => ["+31 to maximum Life"],
"inventoryId" => "Stash27",
"league" => "Standard",
"name" => "Dusk Shackle",
"requirements" => [
%{
"displayMode" => 0,
"name" => "Level",
"type" => 62,
"values" => [["40", 0]]
}
],
"typeLine" => "Leather Belt",
"verified" => false,
"w" => 2,
"x" => 5,
"y" => 0
}
Can I rely on ilvl field for now, or is it going to be removed in the near future?
Also curious what does empty id mean. It is listed as an optional field, but I haven't seen any items without id yet.
any idea where Harbinger name is stored?
(offtopic: seem https://www.poewiki.net/wiki/Template:Glyph did not gen all the character of harbinger language
If you're looking for the glyphs they're at /art/textures/interface/2d/2dart/uiimages/ingame/hargingerglyph
The lore compilation also has a list of every known glyph (along with its possible meaning) in the appendix. https://www.reddit.com/r/pathofexile/comments/16bwi8v/lore_compilation_update_for_322/
monstervarieties.dat maps the glyph images to the monsters
/metadata/ui/uisettings.xml contains the names of the glyphs
well, another question. Did monster's skill still store the data on client side? A long time ago there is datamine-able parameter "skill_art_variation", did it still exist in local side data?
guess the wiki just break down the glyph by character one by one themselves, as the in-game image is one whole dds (total 3 files) and chopped by position
Salรผt everyone ๐ how long did yall wait for your OAuth request to be fullfilled?
No personal experience but I believe that they normally get around to them fairly quickly.
Might be affected by peeps having some time off and other transient stuff like that too.
around a week, but i also sent the email on friday so not exactly an ideal time for emails. subsequent emails were answered within a day or two since i had some questions
although given novynns status i wouldnt expect an answer any time soon
ah shit... im in the middle of bringing exilence-next back to life
got everything running so far and just need the oauth client id ๐
Got it pretty much instantly and I requested a few days before league launch
and i got the feeling that i have to wait atleast 9 days ๐
Did you email Novynn directly, or did you email oauth@grindinggear.com?
I might have missed one but I believe I was up to date yesterday
sent a request on sep. 7, got a reply on 13
I emailed oauth@ggg and thank you very much allready for looking into it
Hi, is there any up2date list of whats 'allowed' as a functionality for a 3rd party tool? Thank u in advance :)
Making me work on a Sunday 
why is cloudflare being so mean to me 
doing the exact same api call in postman works flawless...
For better or worse, GGG have generally been unwilling to confirm that third-party tools are permitted. you can ask on the forum (but you'll probably only get a "maybe" or "no"), or you can ask here and we can tell you how what you're doing lines up with what's historically been allowed
forgot to add that postman and my client is using the same bearer as i literally copied it from the network tab of my client ๐
i wanted to do custom indicators of passives
sooooorryyy ๐ could you please take a look tomorrow why my requests keep getting blocked by cloudflare when theyre coming from electron?
i can provide you some ray id's if you want ๐
are you setting a user-agent?
The overview in the docs page still largely holds as the spirit of the law. The further you are from the game the better it is.
I can't tell from your message quite what you're trying to achieve, but there's no mechanism to query anything about the character or the things shown on screen from the game.
Yea kinda
Electron sets one automatically
The developer docs ask you to set a specific user-agent: https://www.pathofexile.com/developer/docs#guidelines
whoops should've RTFM ๐
is there an api l can call to get the 'All Skills' percentage data from poe ninja?
If it's displayed I'd say open network tools with f12 and just check the xhr requests
l tried that first; l think it's more complex than that
It currently is (this may change, but probably not). Pobbin supports proxying pastebin builds, so 8 len IDs are pastebin ids. Also there are username scoped IDs, e.g. https://pobb.in/u/dav1d_/praise_the_crab
Can someone double check something for me please, at skillgems.dat64 the row with base item id 5995, what do you find at index 195?
(context: poe-dat-viewer is showing me different data and I just want a 3rd source, because everything else seems to match)
Gah, I can't count.
PDV only shows the last two digits of sizes, so I missed one hundred-cycle.
Row 0 has a 4-byte integer there, value 3.
what id is row 0 for you?
BaseItemTypes ref 5995
why is poe-dat-viewer showing a 1 there?
I don't have any tooling of my own to cross-ref with.
Does it still do it if you look at the site in a different/private browser?
I wonder if you've got stale data somewhere.
wtf
What game version does the Import tab say you're on?
in incognito it shows a 3
I put in the latest
okay so it's a browser cache issue, incognito shows the 3
thanks
I should have become alerted when the first row didnt match
nice it works
F
Oh it's all trade searches and not just Awakened?
Trade site itself is having problems on searches.
Great, I'll stop debugging then. ๐
@remote ether It's partially back now - some stats like fractured res appears as "Unavailable Stat" and yields no results.
sweet, thanks for the ping
45 minute response time from support tonight, pretty good considering the time of day ๐
Some incomplete data ended up getting cached, refreshing the page should refetch the stats and get rid of the "Unavailable Stat" problem
can somebody help with the issue, where my poe awakened trade crashes as soon as it launches, like the icon showes up in the icons tray and then my pc lags for like few seconds and then icon of awakened trade goes away. I tried uninstalling the reinstalling it multiple times as well as tried running it as adminstrator. I would really appreciate some help with fixing this issue.
Exilence sort of re-released today & I'm going to try to help the new host out with things. However, my app is giving a 403 error after I hit authorize on the oAuth page. Several users were able to log in, I'm the only person that has reported this error so far. Any ideas what could be causing it?
hey realtively new player here, trying to create a spreadsheet that can help me to monitor some prices (instead of having many poe trade tabs opened).
I tried searching for it but most of the spreadsheet others shared are using NINJA api
is there one that is using poe trade api? because I am actually playing on Garena server
or maybe some of you are kind enough to show me how or give me a head start.
Thanks in advanced!
Need more info. Which request, what is sent, what error do you get etc
ignore the garbage prints, added them in to try to narrow down where this was happening. @strong badge thinks that poe's cloudflare is blocking me for some reason, he had the same issue before he added the user-agent header but we can see that in my headers so it shouldnt be an issue
headers
The error should countain a json payload
Also is this coming from excilence or the poe api?
Looks like everything is excilence related
don't see one, unfortunately the only way I can see this error is in the developer tools tab in Electron, which I'm extremely unfamliar with. The response isn't showing properly and I don't know how to fix it, this is all it shows lol
Do you get redirected to the poe login page?
Also try logging in at https://pobb.in if that fails I can see the API responses
PapaNoob says it's happening at the poe API, he knows a lot more about the server stuff than I do, I'm a backend dev IRL so sorry for being a bit slow at this stuff
i do
that succeeded
okay, so the backend needs to do a request to fetch the token, if that fails it does carry an error code (json)
you probably wont see much if you get redirect to the poe site and back
the null print in my first screenshot was actually from trying to print that error code, so if there is none then maybe it is on the exilence side?
what's your account name?
paolini1995
the error should be purely backend side
this is a request that the backend has to send to the poe api
I missread it
how to decide the main skill in pob? writing a pob code that supports Chinese display.
we whitelisted my IP on cf and still nada
maybe adblock/ublock?
pob/build/mainSocketGroup
should see someting in the WAF logs
@velvet fog is there anything I can do on pobbin for chinese players? (Do they even use pob?)
Thats what im doing right now
Got the ray id from him so will dig into it now
tw/cn/kr users use PoeCharm for display their languages https://github.com/Chuanhsing/PoeCharm
I just started writing a few days ago
https://poedb.tw/kr/pob/eQVFNoqVZrza
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
Lmao cloudflare has a default rule to send all peeps from the us to a challenge-site
Its working now ๐ thanks everyone
@worthy cape please help me real quick, where can I find an index over all file names? Is it in the _.index.bin?
@formal kraken Yes, you generate them from the path rep section at the tail of the index.
thanks
Each record in the path rep section corresponds to a directory, the size is for just the files in the directory and the recursive size also covers children.
There's no explicit mention of the directory name, you have to cut it out of the first filename you generate to tell where you are.
I just wanted to export some files now I have to implement this 
All the cool kids call out to bun_extract_file.exe ๐
cant say I understand it yet, but I'll just follow your code
I mean technically I am already linking with it ... I would just have to add a C API
argh why is the "let me just do this real quick" thing the most complex
Also Python for those allergic to C++: https://github.com/pale-court/krangler/blob/9327d5165f515359852693f0221f8aa9b52d1ceb/krangler/ingest_bundled.py#L130-L166
I think I've reimplemented this half a dozen times across tools.
god damn it, now I have lifetime issues (not necessarily issues, I just wanna be lazy)
[src/bundle/high.rs:197] BundleError::Io(err) = Io(
Error {
kind: UnexpectedEof,
message: "failed to fill whole buffer",
},
)
I am about to give up
lol
impl Discard for &mut &[u8] {
fn discard(&mut self, n: u64) -> Result<(), BundleFsError> {
**self = &self[..self.len().min(n as usize)];
Ok(())
}
}
find the error...
impl Keepcard
@worthy cape in case you're very bored, https://p.dav1d.de/Ezo.rs tried porting your python code 1:1 but something is off (getting out of bounds errors and weird strings)
oh I am actually regraded
Slice seems undersized.

you're a good rubber duck
I've definitely done the same thing many times.
I love languages where I can express it cheaply as [offset..][..size].
"34098": {
"skill": 34098,
"name": "Mind Over Matter",
"icon": "Art/2DArt/SkillIcons/passives/heroicspirit.png",
"isKeystone": true,
"..."
},
Shouldn't the icon path be all lowercase now with the new bundles?
They only get lowercased during the bundle process, so any strings referring to those files will still be mixed case
whats this {0:+} quantifier for chain hook? is it a typo?
Chain Hook has {0:+} metre to radius per 12 Rage
It's GGG's internal format for numeric descriptions. I don't know if the community has it documented anywhere, tools have their own implementations to parse the format and insert the correct values.
It looks quite a bit like fmtlib or Python placeholders, where the part before the colon indicates the argument to use and the part after the colon a format spec.
In that language, + means to emit a sign both for positive and negative numbers.
https://fmt.dev/latest/syntax.html#syntax
You'd typically have a d or f there to indicate the type, but it's not required.
(well, fmtlib is inspired by Python)
Here is an example from PoB that parses that format in particular: https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Export/statdesc.lua#L270
fair enough
it was reported as a bug https://www.pathofexile.com/forum/view-thread/3425938/page/1. the other issues mentioned there got fixed but apparently that one was left as is
I wonder when/if they'll get around fixing the Field Item that still mentions 60 units ๐
That's my bug report above. I still think it not having the d is a bug cause its the only line in the whole stat descriptions file that uses that way of formatting
i mean its the only case of + being used as a quantifier
its always been +d before
ah ok
Oh, yeah, then refer to LocalIdentity and his bug report ๐
Using fmtlib docs as a reference is probably good: #tooldev-general message
Was slightly surprised that you could omit the type, but considering that you can spell a placeholder just {}, I guess it makes sense.
well i based my code on pypoe which supported +d d and empty string
Does anyone know what the site visibility in baseitemtypes means?
it appears to have e.g. royale and other unused items/gems, is it safe to assume everything which is currently not in the active game has it set to 0?
doubt theres a reliable flag for that. since its ultimately determined by drop tables and vendor stocks
I'm mainly talking about items which never even existed in the game (apart from game files or alternate modes)
Currency shards also have it set to 0
yikes, thanks
good enough for now for my usecase, but longterm I'll have to think of something better or just "generate all"
A few bases like Two toned boot variants have it too. Not sure why though
apparently ggg's view of that table was shown on a stream once and on their side it's a checkbox called "hide from site" https://github.com/poe-tool-dev/dat-schema/pull/57#issuecomment-1711265729. l guess that doesn't help much though. for the wiki there's just a big list of ids to exclude https://github.com/lvlvllvlvllvlvl/PyPoE/blob/dev/PyPoE/cli/exporter/wiki/parsers/item.py#L1249
there's also _NAME_APPENDIX_BY_ID, which is used to disambiguate items that have the same name - if there are multiple items with the same name and they aren't in there they get skipped.
that's very helpful, thanks
I think it's literally "hide from base item lists on the web site". https://www.pathofexile.com/item-data/armour only shows one of the three variants of two-toned boots
Path of Exile is a free online-only action RPG under development by Grinding Gear Games in New Zealand.
Has anyone done any sort of bulk fetching of atlas passives? I'm fetching atlas passives for several hundred people for BPL and it seems like I get IP banned if I do it too often, curious if anyone else has seen anything like that
pretty sure the passives api has rate limit headers as documented https://www.pathofexile.com/developer/docs/index#ratelimits, if you're only making one request at a time you should be able to just track the state returned by each previous request to confirm that you haven't gone over any limits
I'm looking at the rate limit headers for the passives api
DEBUG:root:Got status code 200 with text and headers {'X-Rate-Limit-Policy': 'league-account-request-limit', 'X-Rate-Limit-Rules': 'Account', 'X-Rate-Limit-Account': '5:10:60,10:300:300', 'X-Rate-Limit-Account-State': '1:10:0,1:300:0'}
my code respects those rate limits
yeah idk maybe you'll get better help if you can include all relevent information in the initial question instead of vagueposting and waiting for the details to be extracted from you like teeth
Does it dynamically update them? They aren't static and can change if you start hammering the endpoint
Yeah it does dynamically update the limits.
The same code that's fetching atlas passives also is following the stash tab API, and it properly waits when I fully catch up
So I think it's following the rules
although my logging wasn't working right earlier today so maybe my code is broken for the league accounts
that's fair, sorry
no worries. if you do get more information or figure out what the issue was please report back. l've been considering crawling those apis and would be interested to hear about any strange behaviour or common pitfalls. one thing l think l read somewhere is that a HEAD request doesn't affect the state, so you can use that to get the current state without affecting your limit
I haven't tried HEAD requests, might try that
@fickle yew I think the label is wrong here
gems and replicas doesnt working anymore in curio display , 2 days ago its working great, but today it stop working, when pressing combination nothing happens, pls help or show where this problem solved.
@wraith whale This place is for tool development. For game problems you get to use the bug report forum and hope it's loud enough that someone notices.
As last resort, go to Discord. But if you don't describe something specific about your problem, you will most likely be directed to this page.
I don't understand what you're trying to say there.
For game help by other players, use the relevant forums or help channels on Discord. For game bugs, GGG are the people you talk to.
Neither of those topics is for here.
I'm guessing they're wanting to get help with the OCR piece of Awakened Poe Trade, judging from "when pressing combination"
Ho ho, I latched onto "curio display" as in the MTX you show off items in for your hideout.
It really helps if you mention what tool you're using if you're asking about a tool.
Howdy people, I was just wondering if there is some simple way to extract all the images from the gamefiles. I've been getting back into drawing again and would be cool to just get it all dumped into a big folder to browse through
Or alternatively just provide a link or something if someone else has already done it, thx in advance
If you're fine with DDS files, bun_extract_file extract-files --regex "C:\Games\Path of Exile\Content.ggpk" .\stuff ".*[.]dds"
Bun being this: https://github.com/zao/ooz/releases/tag/v0.2.1
(path to Steam game folder also works for source)
Many UI elements and the like are in sprite sheets, indexed by Art/UIImages1.txt.
Hmm well, my coding knowledge is pretty limited but i know a few basics
you just want a zip once?
Well that would be the easiest, but if its not to complicated i can maybe figure out how to get the files from dds
Ill dm you
Programs like XnView can browse them and do some amount of bulk conversion, not sure if it does a whole tree.
Thx alot 
I use it to look at stuff all the time.
I figured zao would've mentioned his poe-utils repo to convert files from dds
This is kinda straining my brain, but basicly i would use the Bun to extract dds files from the game, then use XnView to open it and export into jpg/png format? ๐
Unfortunately only does individual files, so would need scripting around it.
There's a lot of files, heh... Done, 119601/119601 extracted, 0 missed.
Hey zao i sent u a DM if u feel like giving me a short explanation for small brain 
Hi everyone
I have questions about the Poe TOS, there's something unclear to me
Executable apps that interact with the game or game files
This behaviour is strictly against our Terms of Use (section 7b).
Creation or use of these type of applications will result in immediate account termination.
What qualifies as "interracting with" ? isn't tools like Awakened PoE trade, and the Overwolf thingy interracting with the game ?
Executable apps that run independently from the game
Automation of key-strokes (or other inputs) that affect the game in any way must follow our macro rules
The resulting function must only perform one action that interacts with the game (sending a single chat message or command counts as one action).
There's a feature in overwolf I believe that will thanks a player after a trade and leave the group when you press a key
isn't that 2 actions, and therefore not respecting the macro rules ?
The interaction described in the first block is about reading process memory, editing game files, hooking rendering, reading/manipulating network traffic, stuff like that.
The second block is more detached - APT for example has a separate window floating above the game and takes great care in adhering to the action constraints. Each binding in APT performs a single identical action every time it's pressed and has no internal latching/ratcheting logic that one might try to circumvent the rules with.
Overwolf is notorious in violating ToSes, putting the onus and blame on the people contributing the individual game addins to not do naughty stuff, but they're inherently rotten and don't give a hoot about the integrity of the game. Things like the thank+leave you describe is against the rules, as is a lot of the other primitives they expose like reading game memory. There's many reasons why we really don't like that software around here.
For some context: i'm thinking about making a tool help with trading, I'm trying to figure out what is ok to do and what isn't
Elaborating on the "one action" thing, stuff like flask rotation buttons and reactive autocrafting are things that are explicitly ruled out by that rule.
The flask thing would be pressing a single button that every time it's pressed drinks the "next" flask, replacing the 12345 dance with XXXXX.
Autocrafting like "only apply the orb if the item text read doesn't include mod X" fails the single and same action rule as behaviour changes based on internal/external state.
You can get far with following not only the wording of the rules but also the spirit of the rules and considering what is fair and good for the health of the game.
You can always also ask here or in other tooldev venues for feedback on your ideas.
thank you for all those infos and for your time
Taking something like a trade helper program like Mercury - tabulating and keeping track the pending trades with distinct UI elements for each trade to accept/reject/thank is fine. Having more dynamic functionality like "invite the next player in the queue" tends to not be.
I'll end with a last question if it's ok
some times ago there was a UI that will display the list of ppl mping you to buy stuff, with some buttons for standart response. Things like, "busy, no can't do", "can you wait?", "/invite", etc
I cannot find that UI again and I didn't like it very much to begin with so I'm planning on doing my own. if there's a button in that UI that will @ thanks at someone and /leave, is it ok or is it against the ToS ?
theorically this isn't even macro as it isn't a key pressed in game, but a button pressed in a software outside the game. It might be even worse regarding the ToS than I initially though.
what are your though on this ?
sec
sure



