#tooldev-general
1 messages · Page 9 of 1
oh, its grantedeffectsperlevel, idk maybe hardmode version or smth
It would be for the lower level of the Guardian Sentinel / Relic auras I assume
Anyone know what references EffectivenessCostConstants now?
@velvet fog Could you please update Text Audio for Affliction League? I'm interested in POE Lore and there are so many interesting Lore in this league just like the last! 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 since Affliction we lost the @from and @to keyword for whispers in client.txt.
This remove the ability to tell if a message was sent or received and cause some problems for trade tools...
If a player sent some messages to buy an item we do not have any way to tell if it's an "outgoing message" and the tool will think that it's an incoming offer.
Here's the reddit post that I wrote to get some visibility:
https://www.reddit.com/r/pathofexile/comments/18e5miy/all_trade_tool_broken/
I've passed that along
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
👍 Thank you so much! There are so many interesting information!
PoEDB is almost ready with the content related to Affliction League.
https://poedb.tw/us/
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
Is Awakened PoE Trade making a sound when you click CTRL+D (pricecheck) for anyone else?
It is possible to resolve the issue ?
I'm unable to get the item affixes to show for price check when my key "Show Advanced Item Descriptions" is bound to "G". It works when bound to ALT but I use a ALT for a different key. I had this working with my old computer so I'm not sure what changed on my new computer. I believe it might just be a setting I need to change, but I'm unsure. This is my keybinds
so what are gem icons split up for? middle image is always empty, so you just put left on top of right? or is there something more fancy?
this is not a support channel, contact GGG support
There's shaders to alter the hue of the gem art while keeping the golden bits intact.
is that for special gems?
There's parameters somewhere that is fed into the shader to shift the hue and affect the luminance.
Transfigurations, but not even sure if the base gem is a no-op yet.
The last column in GemEffects is probably an index into some lookup table.
Same art, just shifted.
(the lower is Vaal, so the golden art is modified somehow too)
so they dont ahve separate icons for vaal now?
Don't know.
Considering that the transfigured gems can be Vaaled, I would suppose that they use the same mechanism.
vaal icons have a separate folder
Ack. Same split shape there too.
what happened to the little ornament things on passive tree lines? are they gone now?
The little nubbins on straight connectors? Seems to still be there on the web tree viewer.
oh indeed. i just got a screenshot from someone to check how azmeri stuff looks and it didnt have the nubbins
so i got ingame myself and theyre still there 🤷
Still meaning to add them to PoB when updating the tree, if performance allows.
i remade my tree in webgl, its super smooth now
Did some digging on the gem rendering - got preliminary constants and the proper art regions used: 78x78 px.
i just made them 80x80
works just fine if you take the left 80px and stick them on top of the right 80px
not like the middle part is used for anything
It is actually used by the game, it draws the (empty) middle first, then the right, then the left.
The "proper" packing is three 78x78 images densely packed left-to-right, with 2px of padding below and to the right; probably to make it a multiple of 4.
any idea how it recolors the base? i assume the last column in GemEffects controls the color but since its just 1/2/3 thats not very helpful 😄
The number is a key into a lookup table of constants.
There's six such alterations, str1, str2, dex1, dex2, int1, int2. 3 is the baseline art, it's not touched at all.
The shader reads out a bit of luminance influence, converts RGB to HSV, offsets the HSV values by three constants in a special way, reconstitues a RGB colour, and mixes in the luminance influence based on a fourth constant.
I haven't found the table that contains these constants yet, but I know what they are.
Might be hardcoded in the exectuable for all I know, I don't touch that.
sounds very similar to D2R item recoloring
Also a bit of desaturation and whatnot, but that might be more regular UI stuff.
oh i didnt realize the shader source codes are included. thats pretty weird tbh 😄
thats alot easier than having to decompile them
Most of the time only in slivers that get munged together by the material system in very complicated ways - the UI primitives are an exception.
I might write it up after I've gotten it into the wiki code proper, still unsure about some language constructs.
uh where do these lines come from (in github repo)? i cant find anything like it in the files
There's a similar file in the game data, possibly part of a spritesheet.
i mean for atlas. i checked all the arcs, they dont look quite the same
"F:\Temp\poe\contents-3.23.0\art\2dart\passivetree\atlaspassiveskillscreencurvesactivebluetogether.dds" etc.
these are super smooth, all the ones i see in the files are kinda weird
oh. theyre not in UIImages
so i guess the game uses these instead of dirty looking ones in uiimages?
I don't remember off-hand which ones it uses where.
For PoB we use the export assets as they're available before the leagues and are of a reasonable size.

WoW
Let me copy your homework please
Colours are slightly off compared to in-game, not quite sure where I might be off, maybe sRGB data somehow.
still trying to recolor the gem using imagemagick
I started out trying to compose some Pillow "eval" operations but it was a bit too restrictive to work in 8-bit HSV converted from 8-bit RGB; as the original logic is in shader floats.
@velvet fog @waxen musk My Python interpretation is something like this, prototyped for the wiki codebase: https://gist.github.com/zao/08878df57aba605e5fa1e6373f2dce02
It would be interesting to know if someone finds the float constants there in a table somewhere, they feel like they'd be easily tunable by designers.
https://poedb.tw/us/The_Trialmaster#TheTrialmasterTextAudio
The Trailmaster have many new audio too
Yes, the lines that the Trialmaster says about Hinekora are very interesting, and I think the Trialmaster's real name is Ixchel.
- Scion and Ranger's Updated Text Audio is not showing. Can you please check?
Scion and Ranger fixed
@velvet fog @waxen musk @formal kraken Ran some tests now that I've woken up.
The source art seems to be sRGB and you should take care to convert into a linear colour space to do the math, and convert back on save again.
In my case I added mapping functions that I run just after I've converted the 8-bit channels to floats and again just before converting back, but your libraries may have different concepts for this.
GPU shaders work in linear colour space and there any eventual colour space conversions from the storage format happen on texture sampling and shader output.
Attached is the subtle differences and two pieces of ground truth from the game:
yes me how do you fix it?
It was Discord making the sounds! Go into options and disable the "Clip" feature
Also, make sure to check your Documents, i had like 5GB of random clips 🥲
omg lifesaver thanks
@civic crane Another common offender for the https://snosme.github.io/awakened-poe-trade/nothing-happens list of silly programs? 😄
My favourite is still Loom, which shoots confetti on your screen.
3.23.10001 just released by the way, with affliction stuff.
it wouldnt be so bad if the sound werent also super annoying haha
How do I find my twitch prime on path. It’s all connected but I can not see it?
Am I supposed to get HTML error doc when I fetch this https://www.pathofexile.com/api/trade/data/items ?
If I open it in browser it comes out fine
works fine for me
fine for me too
Weird. Curl works fine, but if I do fetch in nodejs I get cloudflare error page
I hope I got the right colors 😄
Take a look at the str1-sls and dex2-sls correct images from my screenshot, those are the easiest to spot by eye, with the lightness of the dark green and the white rim glow of the pink. The ones without "sls" lack the proper sRGB handling.
@civic crane Hi there i tried to reinstall but it wont help. Got only this 3 leagues. Ty
Neversink filter error: BaseType "Absolution of Inspiring"
Show
BaseType "Absolution of Inspiring"
to
Show
BaseType Absolution
TransfiguredGem True
this was fixed btw, issue with poeninja adding transfigured gems + automated economy handling
ingesting new and unknown things may induce vomiting
@rigid oxide check dms please
is it not possible to get the beast type in public stash river now? both typeLine and baseType are now "Imprinted Bestiary Orb"
Uh, can someone help me? Why did this happen to my PoB when I was just dragging the tree?
pressed p?
It's a known problem under investigation that the name doesn't show in-game (and apparently also in the river then).
Dec 11, 2023 4:27 AM (GMT+1) - We're currently investigating the following issues, with more to come:
..
Fixing an issue where Bestiary Orbs aren't displaying the monster's name.
i thought there was a bug in my rendering, but the game has the same 🤔
MapSeries use Azmeri name
You turned on the power report. Uncheck the box in the bottom right or press p
is there a tool i can use to remind myself to press my flasks at the beginning of each new area?
im playing a Coruscating Elixir build and i cannot be trusted.
especially in lab..
Can always just get ever so slightly better sustain and put it on use when full
most of the time i just hop into something at the beginning of a map and instantly die
if it bugs me enough i could make some ahk that monitors the client.txt, and every time i enter a new area, some icon appears. and goes away when i push my flasks
a huge "push your flasks stupid" icon
I'm not aware of any
laillokenui has several UI tools though, like displaying your buffs wherever you want, like the middle of the screen
@velvet fog Heist page is using the wrong image for ultimatum icon. Wasn't sure where to ping you 
Do we have anything to turn a long ass trade search string to a normal search string like https://www.pathofexile.com/trade/search/Affliction/Xqwed9RiP ?
Anyone know how to get ahold of the developer of PoeMate? None of the contact info in the app works
Hi, are there anyway to get data from poedb api like before?
We were using endpoints like https://poedb.tw/us/jsonAPI/Mods/Gen?cn=Shield to retrieve it, but is not working anymore.
does inner/outer radius do anything here?
Yes, for items like Thread of Hope
oh, so it has a ring instead of radius, i see
yes, the trade api
The query can assumedly contain way more interesting JSON, which the trade site resolves into a nice shortened URL.
is there a table of directions per item type somewhere, or are they all hardcoded? stuff like "Place into an allocated jewel socket ..."
Considering that the wiki exports help_text, probably wired up somewhere.
Text lives in ClientStrings.dat64, seems to be wired up via .it files if I'm squinting right?
abstractjewel.it for example has:
Base
{
x_size = 1
y_size = 1
description_text = "ItemDescriptionPassiveJewel"
}
{
"_rid": 1686,
"Id": "ItemDescriptionPassiveJewel",
"Text": "Place into an allocated Jewel Socket on the Passive Skill Tree. Right click to remove from the Socket.",
So you probably have to implement a bit of type inheritance to find the correct string for an item.
baseitemtypes.dat:
Nov / Viper, any chance there's been any chatter about revamping Betrayal anytime soon, or at least making the crafts containerable ?
i'm wondering because I'm working on a db-based web app to help facilitate selling / purchasing crafting services, and I don't want to put a ton of resources into it if there's changes in the pipline
or start with a different more perm service
I find it quite unlikely that there'd be any advance knowledge in public about such a change.
The league has lasted for five years by now with some adjustments along the road, being host to a bunch of mechanics.
Itemization of the crafts would be a drastic change with wide-reaching implications to the economy and feasibility of crafting, like a mini-Harvest; it'd require such rebalancing that you might as well redo the whole thing.
I don't also foresee them implementing anything like the WoW enchantment UI where you can lend out an item for a particular craft without giving the item away either.
Redoing the mechanic would mean having to have good solutions or rehoming of things like bench crafting, everything around veiling, all the various benches with significant purposes, etc.
yeah
anybody get rate-limiting issues with website and awakened?
is it possible i've used Awkened so much I've gotten IP / account rate-limited for 1h+ ?
both on site and using awakened (in game)
Headers for your request tell you which limits are violated.
cfr.
x-rate-limit-account
3:5:60
x-rate-limit-account-state
2:5:0
x-rate-limit-ip
8:10:60,15:60:120,60:300:1800
x-rate-limit-ip-state
2:10:0,2:60:0,2:300:0
where is that ?
right where do i find that in the browser info (F12)
You probably did 60 requests in 300s.
console info?
If you use inferior browsers, the data will be slightly elsewhere but still in there.
In any way, the current limits are the ones that show there.
8 req in 10s, 15 req in 60s, 60 req in 300s.
Why are you looking at the console?
it won't even let me submit a search even after reloading hte page
so no network activity
Well, look at some other request then, as it's sourcing the rate limit from somewhere.
I don't exhaust mine 😉
Earn your pay, as my cow-orkers love to say.
Or look at headers with a curl or something.
cow-orkers
toxic
would* any of the information in here helpful?
Wrong request, that's for GA.
so reopened broweser and went to /trade
and when i go to submit search, i'm getting blocked by rate limit. idk how it does that w/o communicating, but nothign happens on network after inital load of page...
that info in network is from page reload
possible it's loaded into the .JS?
when you laod the page intially, and then calc'd on the front end?
not sure why I'd be rate limited on the website and on Awakened (at the same time for the same amount of time) unless it was IP / Account specific...
It's possible that the rate limit information is also embedded on the page as you load it, never bothered looking at anything but the actual endpoints you hit for a search.
it randomly disappeared
won't even come up now if i spam web serches
and comes up with like 30sec rate limit if i do too many w/ awakened
maybe just a snafu on GGG's end?
You're probably just skirting close to the limit and previous offenses expired as you're messing about.
You may be missing something significantly, hitting Search sends off an XHR, getting you a 200 or 429.
There's no initial information in the page about hitting the limits.
Your previous screenshot suggests that you managed to hit the half-hour timeout around 300s before it, for 1800s.
Only takes 60 searches within 300s to hit it.
The solution is simple regardless - don't.
yep
but from the website?
Same underlying concept.
or was it jsut because i used awakened
and that applied to my IP / account
and was affecting the website adter?
The website uses an underlying internal trade API.
APT also uses that underlying internal trade API.
I’m assuming that goes for all apps hitting any ggg api endpoint?
Or is trade separated?
Any request from your external IP to any endpoint with a policy counts towards that policy.
Different policies count individually, some endpoints have the same policy.
Like Novynn notes in that post, both searches and bulk exchange queries count(ed) towards the same policy.
Ah. Kk so it probably doesn’t help I’m trading and using APT for my trade account while using the trade site, and then APT and trade website for the account I’m playing on
At least it didn’t last the full 1600 sec
There's multiple rulesets active, Account and IP.
Account tracks per-account, IP tracks per external IP.
If you're logged in you (back then at least) got a more lenient IP limit.
👍
is there any way to determine which passive replacements roll for a given local_unique_jewel_alternate_tree_seed?
oh theres a calculator for it, ill check it out
where does poedb get its data from? is it all datamined or just pulled from the wiki?
where would the wiki get its data from then?
no clue. People contributing?
It datamines all the way down
Much datamining, but Chuan is an industrious person and finds all sorts of slivers of information.
Some of it is also completely synthesised or interpreted from data. Like how the distinct level variations you see on enemies with different stats are just at historically convenient breakpoints - while the actual data is smooth across the whole possible level range.
poedb is also technically a "wiki" in the looser sense of the word as it can be edited by individual contributors to write prose about things.
The wiki tries to source all its data-like information from first principles rather than consume something that someone else has prepared. I have the impression that poedb also does the same thing.
This is good as we then have two separate stabs at each concept even if there's sharing of fundamental things like guessed data table specifications.
In general, the most handwrought thing tends to be unique items, as the mod mapping on those is an art.
Things like interpreting the monster definitions and AI scripts is also one of those places where you have to fill in a lot of the gaps.
Added monster level selector, you can choose from level 1 to level 90
is there anything that prevents That Which Was Taken from rolling two mods of the same type, i.e. 3-4 and 5-6 area of effect per endurance charge?
they cant be checking for mod groups, because all balance of terror mods have the same group 😐
btw @worthy cape is updating the wiki, right? (blue/green/red) nightmare jewels are missing radius 👀
I'm largely innocent these days 😄
hmm so theres no logic for unique mods, its all server side and we can only hardcode it i guess?
Oh, yeah, didn't even reflect on that it was unique items. They are very underdescribed in client data and their mods tend to have general unspoilable names.
All miners piece them together based on trade results, river contents, teasers and game evidence.
hmm what about mod domains, theyre not meant to be related to each other, right?
wiki says jewel corruption mods can spawn on normal, timeless and cluster jewels. but cluster jewels have a different domain, which has no corrupted mods 🤔
Anyone know if there's some tool that'll start and display a timer overlay when I press a button?
I'm playing spectres and my flasks are like 50% of my damage, but because their effects don't apply to me they don't display a duration
I try to press them a bunch but sometimes I forget
livesplit does that, not sure if thats what youre after
mercurytrade (fork) does that
I use mercurytrade timers all the time
interesting, mercury could be an option, thanks for pointing that out!
err did they just add a new mod generation type or why did my tool suddenly start crashing when it worked fine half an hour ago o_o
AzmeriDustWarden / AzmeriDustWardenForest etc 6 mods are generation type 33 now
timeless jewels can be corrupted and can gain corrupted implicits as a result, so that part's working as expected -- https://www.pathofexile.com/trade/search/Affliction/bXgDdLOTL
timeless jewels dont have their own domain so thats normal. but cluster jewels are in a different one
Is this legal to use?
https://mapwatch.erosson.org/
if it's only reading your Client.txt then yes it's fine
(subject to GGG changing their minds of course)
of course it is, why wouldn't it be
Lutbot does this too by showing a little bar that gets smaller as you near the end of the duration
@fickle yew it looks like poe.ninja doesn't identify vaal versions of trans gems - e.g https://poe.ninja/builds/affliction/character/syriux87/Kosis_Affli just says Vaal Spark while the player's profile says Spark of the Nova/Vaal Spark. Similarly Vaal Spark of the Nova doesn't appear in the economy data
Thanks for the heads up. I'll investigate 🙂
looks like the base gem name is located in hybrid.baseTypeName
How does the game determine the order of notables on cluster jewels? I mean if the jewel has 3 notables, how does it choose which one is first, which is second and which is third? Is it deterministic (i.e. sorted by PassiveSkill id) or depends on the order in which the mods were rolled?
or does PassiveTreeExpansionSpecialSkills determine the order?
pob has implemented it but I can't understand it.
also is there any mapping from stat ids to skill ids for extra stats on small nodes? i.e. how would you know which stats local_affliction_jewel_small_nodes_grant_base_cast_speed_+% adds?
i think i got the order, PassiveTreeExpansionSpecialSkills appears to match what some other tool suggests
looks like pob uses the second column of that table, which is mostly in order but not quite https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Export/Scripts/cluster.lua#L55
thats only for notables and keystones, it maps item stat ID to passive skill ID for those
but ye it seems to work for positioning the notables. i just need to figure out how to get the correct stats on small nodes now
yeah cluster jewel notables are ordered by a table, forget which
ok now im confused how notable indices are chosen. according to this table, 4 slot medium jewel uses indices 0 6 8 4. which checks out. socket is index 6. this leaves 10, 2 and 0 for notables, but in-game it uses 4 and 8...
i suppose theres a fallback to just use all remaining slots?
From the chosen notables, they're indeed laid out in order according to internal ID (the order they occur on poedb) around the jewel, in a set of slots for which the logic eludes me at the moment.
i think notableIndices is reasonable enough, it probably just fills in the rest with remaining slots once it runs out
besides it cheats with slots on medium jewels anyways, so a 4 node jewel has them arranged evenly instead of 0 6 8 4 as that table suggests
how come passivejewelradii still have the old values >.>
where can i ask for game trouble?
On a side note, iirc, the trade website lists the notables in the same order that they use for positioning. That is, the actual notable descriptions.
pathofexile.com support forum, or email GGG support
is there a table of tree stat conversions for radius jewels? or is it all hardcoded?
What kind of jewel?
like lioneyes fall
i just did this manually, idk if i was supposed to find this somewhere 😄
why do my game keep cleaning shader cache eveytime i launch it ? it makes eveything taking forever to load
@keen dagger this channel is not for game support; you should try pathofexile.com -> support forum, or email GGG support
what happened to api docs? im getting cloudflare error on https://www.pathofexile.com/developer/docs/reference
oh the whole site went boom
i got a question about authorization workflow. once you obtain the token, is it okay to hand it over to the user so the browser can make requests directly? or is that a bad idea?
probably not because someone can nuke rate limits?
There have been a lot of crashes on this game, have you guys had a problem with this
I never had problems in previous leagues
PoB update out with all the new Transfigured gems
I had to re-import my character to get gems to show up, which is fair enough
I'm sure they're just discarded if not recognized at import
GOAT + GOAT Contributors
I cant get data from https://www.pathofexile.com/api/trade/data/static by PHP and file_get_contents and back is: : HTTP request failed! HTTP/1.1 403 Forbidden, how to get this data ?
Set a User-Agent on your request. ini_set("user_agent", ...) or read up on stream_context_create()
All is set:
'return file_get_contents($url, false,
stream_context_create(
array(
'http' => array(
'method' => 'GET',
'header' => 'User-Agent: OAuth SimpleFilter/1 (contact: darek334@gazeta.pl) StrictMode',
'header' => 'Content-Type: application/json; charset=utf-8'
)
)
)
);'
the site was just in maintenance bad timing
You can't have two values in the options array with the key 'header'.
Remove the second one; Content-Type is meaningless on a GET request
WHere I can send You Beer ??? 🙂
return file_get_contents($url, false,
stream_context_create(
array(
'http' => array(
'method' => 'GET',
'header' => array(
'User-Agent: OAuth SimpleFilter/1 (contact: darek334@gazeta.pl) StrictMode', 'Content-Type: application/json'
)
)
)
)
);
You really don't need the Content-Type header. Seriously. On a HTTP request or response, it means "here's what's in the body of this message", but a GET request doesn't have a body
The header that would mean what you're thinking of here is Accept, but the content type of the resource isn't negotiable
Ok I will change this later, because I have a lot to change. In OAuth They advice add Content-Type: application/x-www-form-urlencoded and in filter update Content-Type: application/json, but maybe there are changes,,, most important now works, later i will change all as You mentioned
Yes and It would be true what you write because in update is POST, thx for excellent tips !
Anybody know if there's a way to copy an error generated by PoB?
We've thought about it but no, you get to screenshot it for now.
OK was just checking. Submitted the crash with screenshots of the errors
no logging?
Nope.
It's not too much rocket surgery to add copying given that we have clipboard functions, but it's work that someone actually has to think about and do.
There's also the thing that there's oftne added benefit of seeing more of the window to know what the user actually did.
The primary gain would be searchability in issues.
Guess other cases it might show more, in mine it's just a blank black window so doesn't really give any more context and I just clipped the part with the error itself.
Ok so I got a serious question about API. According to the docs, it's okay to store the token on user machine (and probably have them do requests directly? not like we can prevent it since they have the token):
You must not share access tokens with anyone but their owner. Since they do eventually expire it's fine to send them to the browser to store client-side in a Cookie or local storage as long as you do so using a secure method such as HTTPS.
The question is, how does it impact rate limits? If they make 50 billion requests with their token, who would be to blame?
your tool most likely will have to handle rate limits
it's not on the user to use the api correctly but on the tool dev
ya if ur users are flooding with requests through ur tool, it's because u let them do it
This is covered in the docs per client type: https://www.pathofexile.com/developer/docs/authorization#clients
When registering a new OAuth client with GGG, do I need to know every possible scope it will ever use, or can they add more scopes down the line if I decide I need them? (I assume the latter but I want to confirm)
you can add more later but users need to re-auth to get the new scopes
thanks!
And I assume when you have a website that will be interacting with player's accounts via their own initiated requests, the rate limits will be X-Rate-Limit-Rules: Account, not Client. I get that rate limits are dynamic, but the examples seem way too low to be client-level if a platform has more than 5 players on it at a time
e.g. 10:5:10
yeah most will be account
great, thank you
Ok, im new here and have some questions.
What is the GGG statement for data mining? I guess they don't care but is it allowed to talk about it here?
I want to download character sounds or more like speeches (quest lore etc) and also have access to copy paste quests/lore/talk text.
How do I do this from zero knowledge of data mining in PoE?
Am i even in right place to be? 
Have you seen https://oriath.net/Audio/?
I don't think you'll get an official statement on it from GGG, because I'm sure they want to reserve the ability to pull the plug if it ever gets out of hand. But it's widely known that the .dat files are available and readable. MANY tools responsibly rely on them to function; including the community wiki that GGG hosts.
Thank you very much, that will do :>
Upon further examination, that won't do. However, Pogo should be able to, so thank you
fwiw I've been away from the game for a bit and pogo is going to need some changes to interact with current versions of game files
Is there any intention to add some way to query the name history of a character through the API? I have some concerns as an event organizer with users using self-serve name changes to try and bypass rule enforcement and cheat. We can in theory add logging for that ourselves, but I'd feel more secure with an endpoint giving me definitive proof of malicious name changing. To be more specific, our event involves having identifiers in the character name, and players have in the past tried to impersonate other teams with their character names to do trade actions.
you may want to mail GGG directly, though Novynn reads stuff in here eventually
We don't actually even give you the ability to review your own name history, let alone give access to third parties. I'll raise it with the team though - but it might be a while before we have anything
I didnt even know you can rename characters
Added in 3.22.2b
the self-serve rename anyway, customer service always could, open secret I guess
Oh gods, didn't even think about the implication for The Big Event when that functionality was announced. You're gonna have to bonk a lot of peeps 😄
We'll make do, glad to hear it's being raised internally for a possible future addition though!
Hello,
Would anyone give me the id from which the Affliction League starts to retrieve Stash Tabs ?
I don't want to spend an eternity pulling all ids from 2013 😇
https://api.pathofexile.com/public-stash-tabs?id=?????-?????-?????-?????-????
Or is there any place where I can find it ?
I don't think there's any central place that notes any down, but sometimes there's people who share an approximate one in chat.
Hmm any text I can search in Discord to find those ? 🤔
Not really, just the general terms involved; not sure if Discord supports any sufficiently powerful pattern matches.
ok then I guess I'm going to spam GGG with stash tabs requests until I reach some Affliction data
poeninja has its current change id here, if you just want a place to start https://poe.ninja/stats
Hmm is that a change id from like last 24 hours ?
But very interesting, that's a good place to start. Thanks!
presumably
There's also this for current ID: https://www.pathofexile.com/api/trade/data/change-ids
I am getting lots of HTTP 520 while trying to read the stash tab stream...
Is this unusual or should I adapt my code to wait and restart on error... ?
hey guys I wanna scrape data from trade site. I'm using beautifulsoup in Python but can't seem to get the data. on the bulk item exchange. Anyone who tried this before?
skill issue
It's strongly recommended to not scrape any part of the web site interface.
Consider looking into the underlying API if any for constructing trade searches, not sure which parts are available where.
Is it not against ToS ?
just realized it is. But how does poe.ninja get their prices then?
Many trade aggregators process the public stash tab feed, the "river".
From that firehose of data you can make educated guesses.
Don't need to scrape right, the internal trade API is already using json?
In general, interfacing with the trade site is kind of only supposed to be on behalf of an user, for their immediate actions.
Has there ever been any official ruling on interfacing with the trade site in response to a specific user action (Awakened Poe trade style)
ok my bad
I'm reading the Public Stash API stream (A.K.A "following the river") but I'm not sure I am fast enough to do so and I feel like I get late and never reach "present" changes 🤔
Is there any way I could check how "late" or how "current" I am ? I haven't seen any timestamp or date at all in the data retrieved from the API.
you could probable get next change id from poe.ninja and wait until you get to it yourself, not exactly real time tho
Hmmm not an ideal solution, but still an idea, thanks ^^
it's also not that rare to get empty array of stashes
A common trick is to not wait until you've read the whole payload to queue up the next request, but instead read out the first fistful of bytes to get the next ID early and then process the rest at your leisure.
Still subject to rate limits but may help with not slipping.
OK so basically multi-threading 👍
Some libraries make it hard to get partial responses as they come in, but it tends to be worth finding out.
Beats the usual .text and .json properties.
Ooh, I forgot all about that header. That's nifty.
I'm sometimes tempted to apply for an app just to have access to the API for helping people, but I'm probably better off not having the temptation.
It's a confidential client, all the secrets are on the server and authentication is performed securely. But the docs suggest that you can send the access token to the client and store it in browser storage, presumably to perform requests directly using fetch (which is a lot more convenient than having to proxy every request through the server, and also store the token somewhere on the server). My concern is that someone could grab the token and spam requests with some script, exhausting our rate limit - or is that not how rate limits work?
Dont think that works due to CORS anyways
It kind of feels that depending on what kind of method the Rules header for an endpoint is, the user ought to only be able to screw their own account over, even if your application ID may be implicated in the server hits.
The way I read the docs document is that it's more about squirreling a token away on a client in a cookie or client storage for handing back to the server again when it needs to be used; rather than being able to use it on the client itself.
With the intent of the text being about how to protect the token from eavesdropping by an external party, not covering your concern about owner misuse.
If you have a change ID in the future (from poe-ninja or the trade endpoint) you can take each section (split by "-") and subtract the same section from your change ID. Then sum the diffs to get a cumulative difference. If you compare to the trade site ID you will never catch up because of the delay but over time you can see if you are falling further behind or staying consistently behind (the delay)
Soon for SimpleFilter will be started site to personlize, all data are synchronized with data from poe.ninja maximal every 6 hour, wish luck....
Hey, does anyone know how the search query for transfigured gems has changed?
Adding "type":"Boneshatter" still works fine, while adding "type":"Boneshatter of Complex Trauma" states that the search is no longer valid
Have you tried making a search and seeing how the query looks in the browser?
Looks like it converts the type into a composite one:
The transfigured gem variants are BlahaAltX and BlahaAltY in the dataset. The tradesite uses a discriminator in a similar vein.
I see that there is this disc option, but simply adding that to the query does not work
you need to replace the string "penance brand" with an object. this is how l do it https://github.com/lvlvllvlvllvlvl/poetrage/blob/main/src%2Fmodels%2Fgems.ts#L370
Thank you!
Am I the only one to get MANY HTTP 520 errors while trying to read the stash tabs API (AKA "follow the river") ?
This is getting really annoying...
What's that, cloudflare challenges?
I think that's this :
Really this pisses me off
I can't read the stash tabs stream, after like 10 requests I always get this
Are you adhering to the rate limits and using a correct user agent?
Supposedly a CF ray ID helps GGG troubleshoot.
Correct me if I'm wrong :
1 - If my user agent was incorrect I would not be able to retrieve any data (when I first started coding it was wrong and I couldn't do anything)
2 - If I was not respecting the rate limits then I would get HTTP 200 or 429, as specified in the docs
Anyway I'm going to add some delay just to check if that's the actual issue
I'm looking to update my current app with more scopes, trying to add scopes to my token generation and generating a new token but keep getting "error":"invalid_scope","error_description":"The scope requested is invalid for this client"
so say something like this: "scope: account:stashes account:characters
but the correct formatting would be?
there some reason poe.ninja economy doesn't support value of new corpses?
Have you emailed ggg and asked to add the scopes to your app?
Tried that now, realized that might be the start
rasmus just has to get around to doing it
ok, didn't know if there was a sepcific known reason. both poe.ninja nad poestack don't have them listed
oh they dont provide cors headers? yea that would be a problem
API go down?
There is a skillgems.dat is there also one for support gems? Probably the same questsion, indexablesupportgems where does the reference in the SupportGem column go?
support gem also inside skillgems.dat
oh derp, thanks!
the differentiation is recent
I used to just go through visualidentity but now I need more information to get the assets + the shading for skill gems 😦
uh the stat base_number_of_additional_arrows got changed to number_of_additional_arrows? do stat names often change like that?
a few every season
@velvet fog have you seen any table or data file that describes the shader parameters (four floats) used to shade the gems?
I stopped looking after I had the exact values.
Hi, im going through this old discussion on if this would be against TOS or not. The idea is to be able to search for the mod you want on an item your alt spamming, and when the item is highlighted, the tool would do something to stop you from atling over the item (e.g open an overlay so clicks dont register).
Would anyone what the ruling on something like that is?
https://www.reddit.com/r/pathofexile/comments/p7aqmy/alteration_spam_macro_compliant_to_gggs_rules/
Automated screen reading is very nono
that's always going to be against TOS, no matter how you propose to technically do it

you could implement something that prevented rolling after a ctrl+c, but the user would still need to ctrl+c after every click
hi! I've been trying in vain to dig out data on the new spectres in this league. has anyone already figured out how to read the 2.23 .dat files, or is it known how the original schemas - the stuff in PyPoE / RePoE - were found?
or, I guess, have raw monster attack statistics been included in the game dat files in the past, or is that something that would be server side only?
I've used https://github.com/HeartofPhos/exile-export to get .dat files, but I'm struggling to find a foothold on figuring out what columns any given file has to decode it.
oh awesome, searched this channel more and found https://github.com/poe-tool-dev/dat-schema/
this looks like exactly what i was looking for
or, at least, part of it. i'd be really interested in how the contributors of that repository reverse engineer the schemas, so that I may try to reverse engineer more
Do you want more info than the data on poe.db for each spectre?
yeah, my ideal result would be information on the specific named attacks
like - skill tags, and damage numbers if I can get them. I'm... not especially optimistic about finding those in the dat files, I guess, but I figure I'd like to at least try to look
base stats like life would also be good
Do you know if that's something that would even be contained in the local client?
or like, how much information is server-side-only in PoE?
I'm interested enough that I'd like to look even if I couldn't find that information, though. that would just be the best case: getting tags and base damage for each skill each corpse uses, and base life, resists, armor rating, and evasion rating for each corpse.
I mean I know I'm not the only one who wants this information, but I haven't found anyone who's gotten it so far.
if the data is possible to get, chuanhsing will get it
so I'm skeptical there's much else you could get from dat files
anything further would take manual testing
ah ok, makes sense
Yeah, poe.db has all the data we know about for each spectre
hmm
I guess, even if I don't expect any success, do you know if chuanhsing has written anything on their technique for decoding the data?
Nope, but you can look at how we do it for PoB
The minions and skills files here are the ones we run to export the data https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/dev/src/Export/Scripts
And we export the minions + skills like this https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7127/commits/c171aed9d3dea05653851cea5b2a83f16fdca35e
The .lua files in the above link are generated from taking the .txt files and grabbing the relevant data in the ggpk
There are a bunch of columns in the ggpk that could be related in some way to minons but it's very hard to tell
huh, interesting, cool!
I guess I had not found the right stuff in the ggpk, I will have to look into how that data is extracted. If you can get the life and fireResist, even if not the skill tags without specifying them manually, that's definitely what I'm interested in
thanks for indulging my questions here
Resistance values are in MonsterResistances.dat and the life values are in a column in MonsterVarieties.dat
That kind of thing is a great way to actually get banned by GGG, I strongly recommend not trying to get around the spirit of the game - try to enjoy the game we have and aim to not destroy it: #665132391983218694 message
(TFT news post on a ban wave, for you peeps that aren't there)
Anyone found out where the alt_x and alt_y discriminators for transfigured gems are found? They don't seem to be in the static or stats json files on the trade site... In fact I can't seem to find anything that contains the data used in the search bar - maybe encoded somewhere?
Ah yes. I forgot that one. Weird that I can't see it loading in the network tab.
it stored in localstorage
It is.. Edge just tricked me into believing that it wasn't..
Yeah it is under local storage. But I saw the 0 B stored and thought, eh maybe not.
Thanks 🙂
Why have I NEVER EVER encountered this rate limiting situation in the developer docs ?
And why do I almost systematically get an HTTP 520 error from Cloudflare instead after a few requests (with 8secs+ between each of them) ?
I'm using the correct user agent, and well I wish I could respect rate limits but I also NEVER get the HTTP 429 with the request and wait data.
the headers are on every response returned
OK I'll just try to take a look at it then
thanks
I am indeed receiving rate limit headers :
X-Rate-Limit-Ip = 2:1:60
According to the docs, it means that I can only send 2 requests for a period of 1 second, and if I break the rule I will have to wait 60 seconds.
If I can send 2 requests per second, why do I keep getting HTTP 520 errors while sending requests every 8 seconds ?
I honestly have not heard of anyone but you running into those errors (which seem to be CF related). 2:1:60 is indeed the traditional rate limit.
Without a CF ray ID, not even GGG can tell you what's up with your application from the CF WAF side.
Maybe you're running on a generally naughty hosting provider, maybe you're on a home IP range of vague reputation, maybe you're holding it wrong.
Thank you for your response sir.
I have indeed not seen anybody encountering those errors, which makes me think I am doing something differently than most people, I wish I knew what exactly 🥹
As my program is currency in work in progress, I am indeed using my personal PC and home IP address, which might be unusual to contact the API directly.
I have access to the CF ray included in the error messages I get. Am I supposed to contact GGG and provide the ray id to request assistance ?
Reading up on CF in general online, the vendor (here GGG) can use it to see what rule fired to block you and could use that to tell you more about what may be going wrong.
OK I'll write to GGG with the cf-ray value.
Thank you again sir
If you have a server anywhere, it might be worth trying there too.
the rate limit rules can be hard to follow, because they change as you send requests so you need to check them after every request. l've written a js library that l haven't gotten around to finishing the tests or starting the documentation for https://www.npmjs.com/package/rate-limit-rules, or if you're using python you could try https://github.com/BPL-Development-Team/poe-client
anyone know how to access poestack's api for the economy tab
poestack's author in tft discord
Is there any POB competitor by the way, or a web version?
Most build evaluation tends to use headless PoB under the sheets or interpret the XML of build codes.
Building something like PoB from scratch again would be an immense undertaking and even the investigations into how a sequel would look are quite sprawling.
uh so i cant rely on stat names to store stuff? thats fun -_-
how do i save item stats otherwise? hash32?
Was that one of those that changed semantically too, resulting in off-by-ones as one was total count and the other added count?
uh doubt it, wouldnt that break every existing item otherwise?
if they change semantics of a stat they add a new quantifier usually
like those multiply_by_60
PoB has something along those lines with the 3.23 gems, didn't pay too much attention to how and why.
there has to be some way to identify stats that never changes, otherwise they would have to patch the entire account DB every time. idk if hash32 column cuts it though
is there an updated Betrayal tool ?
This server's settings prevent you from seeing other members' stats.
You may only run this to view your own.
I'm very curious about this as well. Shocked to hear that internal IDs can change
Looking at the hashes, with uncertainty on IsVirtual for 3.21.1 as the schema has changed:
version,row_id,id,hash,virtual
3.21.1,174,base_number_of_additional_arrows,2742883088,false?
3.22.2b,174,base_number_of_additional_arrows,2742883088,false
3.23.0c,19037,base_number_of_arrows,3676405756,false
3.21.1,298,number_of_additional_arrows,1574944052,true?
3.22.2b,298,number_of_additional_arrows,1574944052,true
3.23.0c,174,number_of_additional_arrows,1574944052,false
Edit: added row-IDs
so hash also changes? thats pretty crazy 😦
I'm guessing numeric row ID is an even worse idea
I didn't even note down any of the row IDs in the stats table, as tables generally are unstable over time.
Not sure if the numeric row ID is ever guaranteed to be stable over time; as long as a set of DAT64 files are internally consistent it ought to be an implementation detail.
My interpretation here is that the base_number_of_arrows stat was obsoleted and a new base_number_of_additional_arrows was created.
As long as they can atomically migrate any items and mods that reference the stat as that point, which a league launch maintenance allows them to do, it's consistent on their end.
I'm not familiar with where those stats were used, but if it was only or predominantly on skill gems, doing that kind of change as the gems were all migrated as part of the transfiguration rework makes sense.
Less fun for any external consumer that doesn't have that kind of migration in place, of course 😄
Added row IDs to my tally there - I can now see why you thought that base_number_of_additional_arrows changed into number_of_additional_arrows as it took over the row ID.
row numbers definitely change league to league. Those have never been safe to rely on for identification. I've noticed some thematic grouping that happens by rows so I'd guess when GGG adds new things that fit an exiting theme, they drop them in next to the old stuff.
Happy New Year everybody! I look forward to spending hours poring over the format of .ggp2 files and all the new formats and changes with you all.
if any devs looking for an easy and very helpful tool to make, it would be great to have a "What gems to level" helper tool; a categorized grid of gems that you want to be leveling in empty sockets (only ones that gain 10-20% power per level, and exclude or separate ones that only gain like 1% or 0%; or just sort them by avg gain or w/e)
im playing ssf ruthless and its tough trying to decide what gems to mule/spend uncarved stones on before i start farming blood aqueducts, especially since my build isnt very well defined yet. It'd be made SO much easier with a spreadsheet or w/e of relevant gems grouped & categorized by Warcries / Hex / Mark / Fire Spell / Guard / Bow Attack / Claw Attack / Defensive Utility / Auras / Misc / etc. etc...and supports as well I suppose for non-ruthless SSF players, and maybe even add market values for trade players if you want to take it that far
right now im just mousing over literally every gem from Siosa trying to figure out if im missing any important utility gems or w/e and i cant even see how well they scale from there, so i have to manually wiki every one and look at the numbers to figure out whats important to get now before i start farming vs what i dont need to worry about level wise and can get later
https://poe.ninja/builds/affliction?class=Ascendant&skills=Ice+Spear,Righteous+Fire found some weird bug on poeninja
Yo, does anyone know of a place I could get data on divination card rewards in a machine readable format.
A .csv or .json or whatever format really of cards and the items they produce when redeemed.
You should be able to do that with the wiki api and some cargo wrangling, basically you need the table here but in a different format https://www.poewiki.net/wiki/List_of_divination_cards
The list below displays divination cards. Lists by category: currency, gem, map, six-link, unique, other.
@civic crane
Hi, I need some help about the awakened poe trade. I try anything already but still Failed to load leagues
This is what I try to do,
windowed fullscreen
retry after the browser
update to 10003
retry in the setting
change DNS to 1.1.1.1 and 1.0.0.1
i can't help with network issues
I can log in to the trade site on Chrome but the app. shows my IP is blocked. But my website is not blocked. I feel confused.
can anyone help me on how to get prices for certain items with stat filters through the poe trade site api
The easiest way to tell how a request looks is to craft a request interactively and look at what the browser sends.
Any way to shift this window to the right or do I need to increase my poe window size. Just switched computers and I've not seen seen this be that big a problem till my new one
It seems to honor your DPI scaling factor, which typically is the correct play to have something readable. You could lower it in the OS to have a more pleasant experience, or run APT with --no-overlay to instead run the UI in a web browser where you have more control.
I guess I have to increase my resolution then, I only have a single screen so putting in the browser is not going to make things better
Any data hoarders have ancient ggpk files handy?
I'm looking for .json exports of Tags.dat from:
- after v1.0.4, 2013/12/23;
- after v1.2.4, 2014/10/23; and
- after v2.3.0, 2016/06/03,
assumingTags.dateven existed in the client files back then. (I know it existed around v2.6 Legacy, not sure about earlier.)
Exact versions/dates are not important.
Pick any build: https://inya.zao.se/poe-meta/builds/public
Well, I can get you the actual DAT file, got no tooling for old schemas nor JSON conversion.
Beautiful hoard.
These 3:
"162304":{"build_id":162304,"time_updated":"","version":"1.0.4","manifests":{"238961":{"gid":"6924452030450007330","size":null,"download":null}}}
"422328":{"build_id":422328,"time_updated":"","version":"1.2.4","manifests":{"238961":{"gid":"2571175333856888968","size":null,"download":null}}}
"1163222":{"build_id":1163222,"time_updated":"1464988732","version":"2.3.0","manifests":{"238961":{"gid":"7192380407270618685","size":null,"download":null}}}
Well, I can get you the actual DAT file, got no tooling for old schemas nor JSON conversion.
Totally fine, thanks!
1.0.4: https://inya.zao.se/poe-data/cad/a42566a1799cc49895b4dbd71d573a7da37eb7a02068c343839f99a53f5eab3f
1.2.4: https://inya.zao.se/poe-data/cad/534907ed93d9333505b77717cbe002458f1287ae0dc7ea5d1a12ed7a9c68194f
2.3.0: https://inya.zao.se/poe-data/cad/533bd76f8adc1bbb722375a675250753bfc104eeca7f09ddfbffb23ecb900ad7
You're such a blessing, zao. Thanks for helping everyone so often.
I finally got this infrastructure up and running fully again just the other day, happy that it is of use.
Tags.dat existed as far back as 0.11.6
So in order to start my game today i had to remove content.ggpk and redownload the patch
In the future a better option is probably just to run PackCheck.exe
i did not know that was an option.
ive never got that error till the patch recent
so it still says the same thing
The documentation on the forum notes that one should run the PackCheck.exe tool as Administrator, this is because the game may be installed into a privileged location (Program Files) that your user normally may not have direct rights to write into.
As for what might be affecting your game adversely, that's not a tooldev question and something that you can only engage with GGG about - but it might help looking into if some antivirus or other security software or third party tools is tripping it up.
All I did was delete the .gggpk and re-download the game works now. Something happened after the patch. But I'm good now
Have there been attempts to "SaaS" headless POB before? I was thinking of using something like https://redbean.dev/ to wrap POB and expose its headless "client" via HTTP or whatever so its easier to interact with the whole thing (not with the intention that people'd host it publicly on the internet but to use it as a "drop-in" option for their automated POB needs when trying to make projects in whatever language they prefer)
@civic crane I opened this pull request. I hope I'm doing this right. https://github.com/poe-tool-dev/dat-schema/pull/69
😮 that's a very useful column for me, thanks!
Indeed
Is there constant rubberbanding sopmetimes?
this channel isnt intended for problems with the game
what channel is
I don't think anyone has set that up as a service before. There is some code in PoB that has an example headless client
Hi all
I'm encountering an issue with Path of Building
wondering if there's a way to fix this
It's fine when I load it from a fresh install, but it screws up the second i'll close it and reopen, or reboot my pc
F5 doesn't do anything, Enter/Escape leaves the window blank but unresponsive.
That's certainly odd...have you tried downloading the portable version and making sure that works? It's like Common.lua is unreadable in your install directory or something
wouldn't be the first time someone managed to do that
I figured out the issue
apparently, i have a problem with forgetting where I installed each instance... turns out I had 3 different locations/instances installed
when it was looking to clean up any "left overs" from the update process, IE: sanitiseText function, the call was apparently going to the wrong install.
manually combed through my hard drive for each install and uninstalled them all, now there's just one instance and it's running flawlessly.
ah yeah, the default install path was moved 3 or 4 years ago
Hi guys, I'm currently having issues with awakened trade:
When the overlay is open, my ingame fps says it's still 90+, but I'm barely getting 10fps in reality.
if I close the overlay, it goes back to normal
@fervent gorge The technology used to draw the overlay on top of the game makes Windows present the frames in a different manner that tends to lead to more stutter and worse feeling. It's common to several types of tools like both APT and the TFT Blacklist tool.
You can see it in effect if you run something like PresentMon and look for what method the game presents with.
The only workaround I have for it personally is to run APT with --no-overlay which makes it open in a web browser instead, which then doesn't interfere with the game rendering.
Hardware: Independent Flip is good, Composed: Flip is not.
In essence, if Windows detects that there's nothing on top of the game and it's sufficiently full-screen:y, the game can skip past a lot of the desktop compositor and present more directly to the display.
If not, it falls back into putting the frames into the DWM machinery which can lead to all sorts of delays and timing trouble.
I have managed to accidently "fix" this in the past, but every now and again, a poe client update bricks it again 😦
Oh I think i've managed to fix - just toggled through fullscreen, windowed, then back to borderless and somehow it's reset. Still not sure i understand how/why, and why the in game fps display shows 100+fps, when you're getting 10, but at least it's fixed for now 🙂
becouse the game itself is rendering 100+ fps, but that doesnt mean your display is getting them
could be wonkiness around vsync or other presentation for all I know, probably not in tool land anymore.
hello
I use bun_extract_file, and though it can see the file structure, it extracts all files as 0 byte
what could be the issue?
Are you on a recent/current version; is this with standalone or Steam files, and does it say anything meaningful on the console?
I downloaded the bunx64release from your site with the biggest hex number, namely gff1fba7, steam files, and it says this
biggest or latest?
Oh, you want at least 0.2 from the GH repo: https://github.com/zao/ooz/releases/tag/v0.2.1
And yeah, the g* files are named after the commit hash, which is not ordered.
thanks a lot, the latest one works great
thanks for your work too
In 3.21.2 GGG changed the path hashing scheme, which led to the Bun update.
anyone know the rate limit for the poe trade site api?
they are returned with the response in the headers
Rate limits can change: https://www.pathofexile.com/developer/docs/index#ratelimits
but is there a minimum "safe" time interval to ping the API without getting restricted
yes, the interval specified in the headers...
ahh okok my bad
once a year should be fine :p
from current limits it's 1req in 5sec, this is how a dumb but "safe" api poller would operate ))
Note that if you've got multiple applications on the same internet host accessing the same endpoint policy, you cannot rely on static governing but have to interpret headers and handle the occasional 429.
Like someone using both APT and the trade site at the same time will hit the same endpoints.
understood, thank you for the help
does there happen to be any GMs or Support agents for the game in here?
Nope. Use the support email.
They wont answer me and have banned my account because my players name was CopKiller
That's unfortunate for you, and they will eventually get back to you.
I didnt know i was breaking any rules
Sounds from the GGG-tracker that there might be quite the load on support these days, but I'm sure they've got a good process for dealing with things even if it takes time.
From the 8th on the forum:
I apologise for the delay in reply. We are currently working through a large backlog of Support requests, however, please rest assured that we have Support staff working around the clock to respond to everyone as soon as we are able to.
In any way, this channel is for third party tool development, but there's no GGG presence of that kind anywhere on Discord.
Hello dear coders,
It seems GGG provides the static data of all stats of the current league : https://www.pathofexile.com/api/trade/data/stats
Is there an equivalent for all existing gems ?
https://poedb.tw/poe-api only items, stats, static
not directly equivalent, but you can check the wiki if you just want to get the data.
Hello again
We are having some problems with calculating trigger rates atm
Pob doesn't support unveiled 4s trigger, though it somewhat supports crafted 8s trigger
But then the trigger inherits the CD rate bonuses from the triggered skill somehow?
I checked the issue tracker, and there is some longstanding issue with dozens of commits, so I don't know if I should make a new one
l think it's normal for cooldown reduction to affect trigger rate. triggers don't have cooldowns, only the skills linked to triggers do. that screenshot looks correct to me, for an 8s trigger craft. have you tested it in-game?
https://www.pathofexile.com/forum/view-thread/3482129 sup everyone. built out a zippy launchpad/homepage all in-site media aggregator/startpage - def fishing for some constructive criticism or ideas to make it cooler. project has some power user features for keyboard warriors - ty
hello everyone
im trying to find map mod data translated into korean, do u guys know where can i get that? I find RePoE but there is only english
The text should be in the same places in the stat description files, so if you're able to run RePoE you might be able to make it look at a different language.
Not sure if the language takes effect in PyPoE or RePoE - a bit trickier if it's the former.
ty for reply
I saw RePoE at github repository so korean maybe omitted, I will try PyPoE or RePoE by myself
Great app 😱😱
@zinc kayak Very readable, this 😄
// [zao@wiki-linux RePoE]$ cat RePoE/data/stat_translations.json | jq -c .[0].Korean
[{"condition":[{"min":100}],"format":["ignore"],"index_handlers":[[]],"reminder_text":null,"string":"받는 물리 피해가 에너지 보호막에 막히지 않음"},{"condition":[{"max":99}],"format":["#"],"index_handlers":[[]],"reminder_text":null,"string":"받는 물리 피해의 {0}%가 에너지 보호막에 막히지 않음"}]
So yeah, probably doable, depending on how what data you access, RePoE patch for the above: https://gist.github.com/zao/68e731c48beb2587dd4008e2d4516382
Is there a writeup how the proxy/cluster jewel nodes work on the tree?
Wires77 implelemt the pob part
passive skill trees use extended hashes to store cluster jewel information, but pob have different values.
this is exactly what im looking for ty!!
our values in PoB are wrong. Pretty sure we have to use some of the info in PassiveJewelSlots.dat64 which Wires tried working on a while ago and couldn't figure it out https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/4302
Hi, what would be the best way of getting all the pinnacle boss skill information? I guessing poedb but I'm not sure how to make sense of the information on there.
e.g. if I want the exact DoT number of the ground degen in the regular uber elder fight, or shaper slam in the uber uber elder fight?
It seems like the numbers on poedb needs to multiplied by a factor, maybe the "Damage %" stat, but even then the results don't seem to match the preset values for boss attacks in PoB.
Any advice would greatly be appreciated.
Boss skill numbers are hard as there are a bunch of hardcoded values for skills that are not in the GGPK
We can't be sure that the numbers in PoB are correct but extracting them is similar to extracting numbers for minions/ spectres
We're adding support for some bos DoTs like Shaper beam and Cortex ground degen but can't be certain they are correct unless someone at GGG confirms it https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/6809
That is somewhat frustrating. What is the approach for the boss damage presets in pob? A best guess on some incomplete numbers?
theres 2 ways PoB does it and a third it could use
you could calculate it like a normal skill, but you would need to find all the appropriate multipliers applied to it by the boss etc, it really should be done like this but that requires a fair amount of extra work
the 2 ways PoB uses are either taking the BaseResolvedValues which are pre calculated values in the ggpk for a skill at a given enemy level (where these work) which is then multiplied by as many boss multipliers that we know of for that boss
or if those numbers are useless (eg maven only has level 1 numbers iirc) we use hardcoded values to match up with poeDBs numbers (and then only add the multipliers we know poeDB is missing)
so
A best guess on some incomplete numbers
either best guess using ggpk precalculated values, or best guess using poeDB numbers (adding in missing multipliers where appropriate)
but you should be able to calculate them like any other skill
if you know where and what multipliers to apply
Thanks for the info!
I'll have a look at how pob does it. The fact that each boss/ability potentially has some unique method of calculation is quite challenging.
I was hoping to find a way to see how a build's defences would fare against all the pinnacle boss abilities and present the results in a nice way. But it seems like just getting the boss damage info is already a big task
if you find any issues/improvements for how PoB does it, it would be appreciated to contribute,
the current method exports a multiplier to be applied to the base monster damage, this is sorta incorrect (itll be fine as long as the enemy levels are correct for the base and uber variants but might be off for quest versions eg of eater/exarch) but was the best way to implement it at the time without reworking lots of other code in PoB, but now that its grown in scope theres definitely better ways to do it
and also technically there shouldnt be an issue to add as many enemy skills as you want as it is searchable, but I doubt many people know that all dropdowns in PoB are searchable so we have tried to keep it limited to the most requested skills that people want to tank
I'll definitely contribute if I find something usefull!
You said that you use a combination of the ggpk data and poedb. I always assumed poedb was also based on the ggpk data. Does poedb have some information that isn't available in the ggpk?
no they just calculate the skills properly
the numbers they show are mostly the skills data and doesnt include all the multipliers on the boss
it does warn you of that though
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
I might endup reworking them soon to calculate properly PoB side just for completeness and incase they change but currently the error compared to poeDB numbers are < 0.2% so 🤷♂️
Ok, I see. I'll start going through pob.
Could you point me at some info on how to make sense of the ggpk data?
Does anyone knows if Python fork of PoB still alive?
I want to check for long long inactive PR's but dunno if they will ever get merged
what do you even mean by "triggers do not have cooldowns"?
For example, if we take the weapon mod: trigger a socketed spell when you use a skill, with an 8 second cooldown. What gets a cooldown here is the skill, not the modifier on the weapon. If I socket 3 skills, they will each have an independent 8 second cooldown, allowing me to use all 3 every 8 seconds, rather than getting them out over 24 seconds.
I've been focused on PoB cluster jewel stuff lately so have a pretty good idea of how it works right now. I'll try to write up a doc or something for it after I finish my PR and before I forget everything but happy to answer questions either here or in DMs about it
Haven't had the time to start on clusters support yet so that'd be really helpful still
There is a poe-tool-dev github group you can become a member of if youre not already. Collecting all the documentation stuff there would be great
/me arises from the dead
The bundle spec could use some friends in the GH wiki 😉
How about GGG just helps us with that 😄
@civic crane weird part is I am actually getting a reply from server
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
did they change the response format overnight or something ?
this Browser and how leagues are actually loaded are not exactly same. i've never seen captcha myself, and can't claim that my bypass method works. also we just recently discovered that ipv6 can be the issue too @echo zodiac (this is also not a support channel)
yeah sorry if I posted into wrong channel, I saw there were multiple similar reports here so I posted here
and the text I am showing here is what is shown to me in game when I do Ctrl + D and go to browser
so it is actually Awakened POE Browser thing ? Not %100 sure what is the interface created with
I never switched to anything such as ipv6 and have been using it for this league
started having this problem just today
I also tried changing my default browser from firefox to chrome, didnt help
is there at least a way to retrieve the trade link for the specific item internally from the software so I can at least paste it into an external browser ?
do I need to modify the code and build it myself for that ?
Is there a list anywhere of all the mods rare monsters can have?
As in these mods (like "Life Regen"):
Never mind, I found it: https://www.poewiki.net/wiki/Monster_modifiers
Monsters can have modifiers alike items, strongboxes and areas. All modifiers can be divided into several groups: implicit, explicit (or affixes – prefixes and suffixes), torment and so on.
Hey!
I've lately had some issues with Awakened POE trade
The overlay is no longer working when someone whispers to buy items, or if I whisper to buy an item.
If someone whispers me I can still see the red outliner around the item that the player want, but not the bar that used to to show thank player etc etc
Anyone that's had the same?
I don't think that's awakened poe trade providing those features
Damn, am I thinking of another tool, hmm
Yeah was Poe Overlay, didn't realise / forgot I had installed it through Overwolf at some point, and I disabled the autostart for Overwolf - Cheers mate
@earnest bear I recommend https://github.com/PoE-Overlay-Community/PoE-Overlay-Community-Fork#getting-started , which doesn't use overwolf
although it forked from the Overwolf version a long time ago, so it has pretty different features
it's what I use though, good app
I'm working on writing a tool that will dump all public stash data to a database. I have this mostly working, but would love to be able to backfill data for all of Affliction league, if possible.
Would anyone happen to have a next_change_id for the PC realm from just before Affliction stash tab data began to appear?
2173391281-2164838460-2095463865-2325811203-2258598178
This will be a big help! Thank you so much! 🙂
Also, just to confirm, I don't see any timestamps included in the data I'm getting back from the stash tab API. Is the only way to get times associated with stash tab changes to be constantly scraping live data and associating request/response times with the data?
Using this next_change_id should let me scrape tab data for the entirety of the league, but I won't be able to tell which changes occur on day 1 vs day 10 of the league unless I were to somehow get that data from someone else, right?
there are no timestamps you're correct, the only time you have available is the time that you fetched the information
Alright, thanks for the confirmation. That's going to introduce some challenges. 🙂
I'd love to be able to simultaneously start scraping live data (with timestamps) right away and then start backfilling historical data from this next_change_id in parallel whenever I can spare the requests (within the rate limit), but without timestamps I'm not sure I'd have any way to approximate % completion on the backfill.
It also won't be completely trivial to tell once the backfill has caught up since I'm not sure if I'll necessarily end up seeing next_change_id collisions if its possible I'll end up on a different offset from you. I can check for equivalent stash tab changes already entered in the database, but even then it is possible for someone to make an identical (especially if empty) stash tab with the same name go public on different days. So I suppose I'll have to watch for a sufficiently long sequence of identical results from the API.
Oh, I just noticed your GGG badge! Perhaps you could confirm my suspicion regarding next_change_id collisions. Are all responses from the stash tab API consistently batched in to the same next_change_ids, such that I can start requesting live data as well as backfilling and eventually the backfill will reach next_change_ids that I've already scraped live?
Or is the batching done dynamically, so that requests from your next_change_id might give me changes 1-100 in the first response, 101-200 in the second response, etc. But my live requests might give me changes 1056-1155 in the first response, 1156-1255 in the second response, and so on, and so the next_change_ids might never collide since they have different offsets?
the change ids change as the stashes themselves are updated so it's unlikely you'll always get the same ones. You could try and do some change id comparisons instead (each is made up of 5 shards so X-Y-Z-A-B increment independently)... but that's not really encouraged since it may not always be the case. Essentially what you're doing isn't the intended use case of the API
Even if it isn't a part of the API contract I can rely on going forward, that's very helpful to know for one-off backfills and such like this.
Am I understanding correctly that stash tab data is divided between 5 shards (lets say A, B, C, D, and E), and the change ID returned from the API is made up of the next change ID for each shard. Each shard's change ID increments each time a change is made to a stash tab within that shard.
So for change IDs A: 100-80-60-140-10 and B: 110-85-70-140-15, I can be certain that change ID A occurred before change ID B, and that difference spans:
- 10 changes in shard A
- 5 changes in shard B
- 10 changes in shard C
- 0 changes in shard D
- 5 changes in shard E
Presumably not all of these changes would be presented at the public stash tab API (e.g. changes made to private tabs, or to data not presented by the API), so the difference between the two change IDs above may not be exactly 30 change results at the API, but perhaps at most 30 results?
Am I understanding this correctly? 🙂
With the caveat that all of this is implementation details subject to change at any time, of course?
@ any POB devs around: I'm aware this isn't exactly something you'd be running into every day and that I may as well be completely on my own with this but I've tried using POB's headless wrapper in a regular Lua 5.1 environment and I am getting an error on line 175 of the HeadlessWrapper. It seems like POB "attempt[s] to yield across [the] C-call boundary".
Does POB require a special version of Lua, maybe LuaJIT, luvit, or similar?
Specifically what I did was install Lua 5.1 on WSL/Ubuntu, download the POB source, made stuff from runtime/lua accessible, and then tried to run HeadlessWrapper.lua but it would throw that error about cross-boundary yielding when attempting to process the first frame with that callback.
Iirc you need luajit for POB but if anyone knows more please correct me
You do need luajit. PoB runs on 2.0
Hrm, I see. Tried it with LuaJIT too and I'm still getting the same issue which is confusing me slightly. Will investigate further
Rasmus uses the headless wrapper a lot, but you're right in that we only use it for testing
Okay I did get it to work, it does seem to be related to the JIT somehow. The way I invoked it was the problem
Do you happen to have some "raw" build XML for testing lying around that has some build data pre-populated? Otherwise I'll try to piece together the build codes are compressed
if you need nothing specific https://github.com/poediscord/poediscordbot/tree/master/tests/in/pastebin_xmls
Awesome, thank you

That is a lot of data in the build table, wew
i basically just mass tossed build onto my bot to see if any issues arrive and shit doesnt break 😄
so yep lots of stuff in some builds
is there any kind of API that displays the parties from the noticeboard?
not that i know of, all official documented APIS can be found here: https://www.pathofexile.com/developer/docs/reference
i guess that would be a feature request. it would tie in nicely with services and spring some life into them
as it stands barely anyone is using the noticeboards
developing and especially maintaining APIs costs a lot
there has to be a benefit to justify it, and there's no benefit there
@fickle yew Hey, found a bit of a weird issue with character name changes, it seems like ever since I changed my character name my gear hasn't been fetched properly on ladder. I did name change a week ago roughly. Here is link to the character if it helps https://poe.ninja/builds/affliction/character/Rein_Masamune/Raein_LessStuipidIdea
That is often problematic. I'll take a look.
Thanks :), ping me if you need any other info or something.
I may have missed it in the developer docs, but does anyone know if it's possible to detect voidstones?
detect them where?
In the API somewhere. We can fetch atlas_passives hashes through LeagueAccount, but I'd like to be able to detect if a given player has voidstones equipped, the number, and hopefully which specific ones.
not possible afaik
There should work now - https://poe.ninja/builds/affliction/character/Rein_Masamune/Raein_BuffReverseJoints
Nice, thanks. Is this an issue that will happen any time someone does a name change?
No it was a combination of the name swap + your character falling off the ladder and not getting updated that way anymore.
Hm, I didn't look at that one. Let me take another look.
What depth are you?
1074
Ah you're right. I found an additional case where the name change wouldn't apply. Fixed that as well, so other people shouldn't run into that.
Nice
Thanks for reporting the issue 🙂
Is anyone else having problems with PoB since ~a few days ago? Whenever I open it the application closes after loading. I tried reinstalling completely which works for a moment, then it checks for updates and closes. No errors shown
make sure you don't have multiple install locations
no issues personally
Yup, I made sure. Nothing changed about the installation for the past months
Have you tried running the portable version?
You can also enable logging, which might give a little more insight. Find your SimpleGraphic.cfg file and make sure it has set con_log "1". Should see log output in that same folder as a SimpleGraphic.log file
just run as admin and see if that fixes it, if it doesnt have permission to download to a location and it tries to itll crash
i'm having trouble getting awakened poe trade to fetch leagues. i've followed the bugs and tips https://snosme.github.io/awakened-poe-trade/failed-load-leagues.html#:~:text=Most likely%2C leagues cannot be,or write to GGG support
i can see the barely visible list of leagues, and yet it still fails to fetch leagues in config?
App for price-checking items in Path of Exile
debug logs show : [10:37:26 PM] error [cors-proxy] connect ETIMEDOUT 64:ff9b::6813:ba10:443 (www.pathofexile.com)
but www.pathofexile.com works fine in all browsers....
here's the "browser button" text i get back which looks normal to me. https://pastebin.com/cLynStEh
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
i've also checked proxy settings, bound my dns to a neutral server like cloudflare, google, etc. no change.
iiinteresting i fixed it. disabled ipv6...
possibly ipv6 issues
yeah
Thanks, didn't think it was. Bummer, would've made a great team goal in BPL.
yeah it's a fresh w11 install so i'm sure there's something with a simple misconfig. ipv6 works great on all other network devices.
APT has been having issues with ipv6 for awhile
ahh
at least for some people
yeah i checked, all the ipv6 settings in windows are bound to advertisements from my gateway, which is working fine everywhere else
and ipv6 is working elsewhere on the machine. maybe it's a problem with pathofexile.com ipv6 endpoints, though that seems unlikely as its backed by cloudflare
i did notice that the poe client was having trouble fetching updates, but i was able to log in. that's what made me think ipv6 (plus the error msg)
A thing to note on browsers is that they tend to do happy-eyeballs for many kinds of requests where they try both stacks to see what finishes first.
That v6 address looks a bit odd, is the first part of it truncated?
because of the 64?
Aye.
That's, afaik, nat64 (https://en.wikipedia.org/wiki/NAT64)
NAT64 is an IPv6 transition mechanism that facilitates communication between IPv6 and IPv4 hosts by using a form of network address translation (NAT). The NAT64 gateway is a translator between IPv4 and IPv6 protocols, for which function it needs at least one IPv4 address and an IPv6 network segment comprising a 32-bit address space. The "well-k...
I see, it wasn't in the table of address flavours I usually consult.
The more you know 😄
PS C:\Users\Lars> curl -v https://[64:ff9b::104.19.186.16]
* Trying [64:ff9b::6813:ba10]:443...
* connect to 64:ff9b::6813:ba10 port 443 failed: Timed out
Maybe this is just screaming into the void, but I'd love to have more tools developed that also supported those of us who play on consoles. Prices are drastically differnet for example. So although it's great to be able to load stashes with wealthyexile or suchlike, the price/value can sometimes be wildly off, and ofc the trading stuff won't work either. We can't use programs such as Awakened POE, so it would be nice if the prices were correct. Anyway, support for console players too would be awesome 🙂
Will do that
admin did not change the behaviour
Hrm, there is no SimpleGraphic.cfg anywhere
Fresh portable is broken too
Okay, made the cfg file manually and the log doesn't really have much to say
Log opened.
--- Render Init ---
Pixel format: need 32,24,0, using 32,24,8
Creating context...
Loading WGL extensions...
using WGL_EXT_swap_control
GL_MAX_TEXTURE_SIZE: 16384
Loading OpenGL extensions...
using GL_EXT_texture_compression_s3tc
using GL_ARB_texture_non_power_of_two
Loading resources...
Renderer initialised in 228 msec.
Loading main script...
Loading passive tree data for version '3.23'...
Loading passive tree assets...
Processing tree...
Okay
I actually found the solution
My local installation of Lua took precedence over the one PoB ships with
so it tried to run with vanilla Lua
That's a classic.
Is it that common? haha
It's happened a few times before, both that or LUA_PATH shenanigans.
Mm, we fixed that ages ago in general, but the updater still tried to look in the wrong spot. If you opt in to beta it should work, afaik
I am in fact opted in for the beta thing according to my config haha
removing my Lua installation fixed it for now though
poedb and poe2db show 2 different countdown times
poedb's one is wrong
@velvet fog
Good afternoon, I would like to ask a person who has a good understanding in software development. How technically difficult will it be to create a function, that will copy items from a game client running in a language other than English (via ctrl+c) to the Path of Building program?
Er, that kinda depends on your experience/skillset? I don't know what PoD is but you can parse the item text you get from CTRL+C-ing it in any language and then "translate" it to any other if you have a list of all the mod texts and their translations
in terms of "technical difficulty" this really all comes down to experience? If you or whoever is trying to do this has never written a parser before then it'll be "hard". Of course general compsci experience is going to offset that
But it definitely is not a trivial problem to solve
I'm sorry, I made a typo. It meant the path of building program. We can simply copy items and paste into POB from english client, but it is dont work on any other language game client.
Path of Building interprets items only in English and only in the non-advanced item description format.
Copy-paste is only viable from the trade site (in English, probably) and from an English game client with Ctrl+C (not Ctrl+AdvancedKey+C).
PoB has a carefully curated set of string matching logic to match onto the basic text of the stats, reinterpreting it into its own internal representation.
There are several barriers to accepting non-English text in PoB.
Mod parsing would have to be changed in complicated ways to understand the advanced format; and the current string-matching logic would have to be completely abandoned or majorly reworked to parse the possibly-ambigious foreign text.
Very few of the developers speak the other languages, so it'll be a large maintenance burden whenever adding support for new items and mods.
There's also the technical problem that Path of Building currently doesn't do Unicode text.
On making a "translator" tool that adapts foreign text into English, one could envision doing something like taking the advanced mod description, matching it via "stat translation" text files to a particular stat and re-rendering it with the English text; but that is ultimately useless as PoB doesn't understand advanced mods.
Couldn't you "translate" the non-advanced mods?
yes but you need to be careful to translate "correctly" in a way POB can understand it
Fair point
Every time I see the advanced mod discussion I understand the problem and five minutes later, I've forgotten all the details 😄
I've never looked at them before
Thank you for the detailed answer. Is it possible to somehow get a text description of the object that are suitable for the POB, not from the game client, but for example from the game's website, because there is access to view the stash?
The trade site has a Copy function built-in. Haven't looked at the stash view as that's not really intended for tool consumption.
Stash view doesn't let you copy anything iirc
After looking at the differences between regular CTRL+C and advanced... couldn't you mainly skip lines starting with { and ignore numerical ranges in parenthesis?
It might be possible to hook something into the tooltip display logic.
There's some subtle differences in how things like defenses are shown, quality, and most importantly, how stats are merged.
Ah, I see
I guess the "best" way would be for PoB to one day "bite the bullet", parse advanced items, and implement mod merging internally for display purposes
Say that you've somehow got two freeze reduction mods at 60% and 70% on an item, the basic description would read "Cannot be frozen" while the advanced would show two distinct mods with "60%{50%-70%} chance to not be frozen" and "70%{50%-70%} chance to not be frozen".
(mods don't exist, but you get the gist)
Oh, interesting. I didn't know the game would merge mods like that
More noticeable with stuff like flat life, where you get a sum for basic and separate mods (and thus stats) in Advanced.
Stat translations have distinct format strings for different conditions on the value fed in.
Ye I knew about life mods being merged
the way you described it, it feels like a miracle that PoB has been working alright so far haha
Often you've got something like 100|# "Cannot be X", #|99 "{}% chance to avoid X".
Thank you, now I understand the difficulty, and the difficulty of copying the description of the subject from the site. Unfortunately, or fortunately, I play on the ssf, so I will not be able to get a description through the trading platform.
And very commonly, #|-1 "{}% reduced X" negate 1, 1|# "{}% increased X".
Obviously not exactly a solution, but especially for PoE I would suggest playing on the english client if at all possible
I'm a native german speaker and some of the translations for the german client are very... interesting. Extremely verbose gem names for one
(handwaving the examples as I don't have any translations handy)
I like that it used to be a meme that German skill gem information didn't fit on the screen vertically, but now with some Vaal gems, that's the case for English too 😄
There's one thing about PoB that's caused me some trouble recently in regards to mod parsing actually
maybe it got fixed since a few weeks into this league though
There was a weird mismatch in the wording for umbilicus immortalis' "flasks apply to zombies and spectres" mod
There's also a larger usability problem with importing items from other languages; like which language do you keep the text in, especially when sharing the build through exports and websites?
It kind of ties into the larger concept of internationalization, which is a huge can of worms.
optimally translate the mods into some language-independent internal representation and then present them in whatever the user wants
but i18n is indeed a huge can of worms
Perhaps it would be a good solution to add to the core of the game the ability to copy the "native" description in English, regardless of the client's language. Of course, if I understand correctly the logic of creating such a description by the client.
In fact, I thought this is exactly how it is implemented in the core of the game client
the game and PoB are two entirely different things
not maintained by the same people
The game itself deals with "mods" that contribute to one or several "stats".
We have that data for a specific game version in data tables, but as items change over time, that's not necessarily enough to interpret the data from non-current releases.
PoE has the benefit of that all active item data in the database is always in sync with the current set of mods and stats; as they convert most legacy items when changing things.
PoB has no such luxury and in older build codes, there may be obsolete versions of items and stats.
This makes it harder to move to an explicit mod/stat + stat-translation system as it relies on being able to resolve those.
There's also the eternal problem that some copies (from trade site) are always basic, so for those imperfect mapping to mods+stats would need to be made.
GGG often changes text in small ways that don't need a patch note, so it doesn't get updated on the PoB side until someone notices. If you want to file a bug report, it'll be easily fixed.
Fair enough, it didn't bother me enough to report it/I thought I was doing something wrong as a build I looked at had different (functional) wording on its umbilicus
so I assumed the problem somehow lay with me haha
I'd love to support advanced mod parsing in PoB, but it's a lot of effort for not a lot of gain, at least with how people are used to working with PoB. The largest benefit would be being able to change mod values and catalyze them on copied items like you currently can with crafted items.
Imported items still don't use the advanced copy text, so that's even less incentive to add support
poe.ninja have no provided economy for Hadcore mode game ? Is there other source ??
Thx, but I want for Hardcore only not challenge league....
And as I see is empty...
if i had to guess, the data doesnt exist cause nobody really trades in hardcore standard
What ?! I played from 8 years and trade on HC but indeed there is no HC trade data on poe site too....
heh
https://www.pathofexile.com/trade/search/Hardcore/rRVruQ
They should make all economy trade all game mode, fully improve PoE 1 first and then develop POE2. I play only on HC
Ok, HC Affliction should be enough for me...
HC and softcore cannot trade interchangeably becouse that would nullify the point of hardcore and almost everyone who plays hardcore (challenge leagues) would be against such a change
yes you lose a character if you die, but the items are what gives the character value
I asked for this because I 'm making another filter personification portal and wanted make full economy for HC but as I see I will not develop this in full. Now is only Standard option with full arithmetic average from standard game modes....
You should read "nobody really trades" not as "there is no trade" but rather "there is insufficient trade volume to draw any conclusions from".
You see the same thing for actual leagues for particular item classes or individual items that are flagged as low/no confidence on Ninja, or not indexed at all.
For "new" items, I would guess that there's not too much of a difference in Standard vs. Hardcore. Currency stays in the league even if you happen to RIP out, and anything legacy lingering in someone's stash isn't going to matter much for an item filter.
There might be a bit more re-crafting of items and levelling resources in HC to replace characters and items that RIP out.
is it possible to bypass the rate limits of path of exile trade site by using proxies
im currently using python to request from the site
Regardless of whether it's possible, you shouldn't.
is it not allowed?
Attempting to circumventing rate limiting policies is against their intent, which is to limit the rate at which a single human user of the internal API can interact with it.
It's not intended for bulk automation and the ToU prohibits the use of bots and other automation around the website.
It's a slightly "gray" area in which it's tolerated to make the occasional request initiated by a human to the website endpoints, like character fetches or APT/PoB-triggered trade searches.
@swift trail What's the actual problem you're trying to solve?
im trying to make a script to fetch prices of currency in terms of chaos and divines to calculate the most profitable currency for currency flipping
but the rate limit currently is bottlenecking the process
Yeah, not much choice for that but to adhere to the rate limits to avoid triggering the largest timeouts.
if all you care about is the prices of currencies you could just use poe.ninja api
^
That sounds like the perfect use case for poe.ninja or the live stash API (if you are willing to put in the effort to properly track that info)
The upside of ninja info is that it's curated and less tainted by outliers.
The downside is that it's curated and may not be quite as sensitive to market movements than "raw" information; but the latter may be way too noisy from fixing to be of use.
yes but poe ninja refreshes like once/twice a day, so prices can be outdated
The big boys consumes the public stash API ("the river"), as documented on the proper API docs https://www.pathofexile.com/developer/docs.
Requires a bit of set-up with registering an application and being able to pull and process the rather girthy stream of stash tabs, but it's the best source of bulk state.
in that case parsing public stashes api is your best bet, but it still has delay (5 minutes)
a 5 minute delay isn't all that bad compared to more infrequent updates on ninja though
I'm about to ask what may be a dumb question, but can a script be created to make curser text copy to clipboard? Aka, if I move the curser with a controller, it copies that text to clipboard. I play totally blind, and this would make things like navigating the skill tree only a bit annoying as opposed to now where it's just a misery needing to OCR every possible node. I also can't use build planners because they aren't accessible with my screen reader, unfortunately. I've beaten the game; I just want to know if I can make it a bit easier on myself or if this isn't possible/allowed.
Tech-wise, the only built-in way to get text out of the game is Ctrl+C on items or selected text fields, with the optional highlight key for more item information.
There is also the client log file, which doesn't contain anything of the sort you seek.
Tooltips are not accessible, nor is any information about tree nodes.
On the type of tools that are allowed, the developer docs cover it fairly well in the third party policy section - on reacting to user actions, with fixed reactions, etc.: https://www.pathofexile.com/developer/docs#policy
I figured. Ty.
On tools, yep, they're an accessibility and localization nightmare.
waves a small PoB flag
I think my best bet is to just make a giant spreadsheet tbh lol.
@narrow vortex not sure if you use pobbin, anything I can do to improve accesibility?
let me play with it. Give me one sec.
feel free to just complain about everything that doesn't work for you and I can go take a look
I think the main problem I see is the fact the skill tree only previews. It doesn't show me the entire build. Just takes me to the build planner, but honestly idk if that's fixable. The graphics read though, so if it showed the entire tree I could probably use this to know what the necessary nodes were if not what direction they were in. I think that's the main problem with the tree itself. It's huge, and even if I go left with a controller it doesn't mean I'm moving left. It all depends on the direction of the nodes, and which way they branch after one is basically completed.
so it's like oh I have to use it every ten levels or so to make spending all the time on the tree worth it lol.
What screen reader are you using? I might be able to make the tree more readable, but yeah not sure if that is going to help because of node locations
NVDA.
Honestly I'll take what I can get. Even if node locations aren't there, I can still have an idea of what the build is trying to do. There are so many nodes that knowing what they're doing in a build would at least give direction.
is there a way to export the skill tree into spreadsheet form? It wouldn't be pretty, but it's the only way I can see myself being able to see how nodes are laid out.
I can give each node a title (description?) and have the screen reader read it, should I only let it read out nodes which are enabled?
probably? I'd have to see it, I think.
how would you know the layout? coordinates? or by having adjacent allocated nodes listed?
I could probably do either, but I assumed coords would have been easier.
it's too late for me now, also not sure when I get to it, but if you stick around I'll ping you with some changes and we can test some stuff if you want
My origenal plan was to use the cell coords of excel and where the game puts you at the start to kind of...center it? if possible.
yeah no rush. I appreciate it! 🙂
I wonder if a small tool would be helpful that would tell you your next node you'd like to pick on levelup or is the plan more for you to be able to make your own pathing?
Honestly, while that would be nice, I'm probably a bit too casual for own pathing. A tool for level by level would be super helpful.
yeah that should be way easier. I am a bit unsure, how do you know where to click/select things - is there any help for that ingame? Assuming you'd get a tool to tell you the next node in your level for your pob what info would you need - general location (North/NorthEast...) or is there anything else that'd work?
general location would be a huge help if possible. Right now I am literally using OCR to read every node which gets frustrating because of how moving up doesn't always move you up on the tree.
sorry my cat was yelling at me. Anyway general location like ne would also make it easier to kind of map between two nodes so I understand where I may have gone wrong when moving around.
alright got it, can't promise but i'll try to cook something up (hopefully this week) 🙂
I seriously appreciate anything that's attempted; success or no. No rush.
One of the issues might be to find out where people went first on a fullblown tree if it splits 🤔
yeah but honestly that feels... not as big just because of the fact I understand this probably won't be optimal building by me. Like even if I don't do it in the exact proper order, knowing what they did tells me what to focus on/ if I've missed any nodes I should have taken. At least if I'm understanding the process correctly.
yep thought so. The general idea would be to read the client log to find out when you level up then tell you (unsure how yet) which direction your next passive would be so you'd be guided while playing to take nodes.
Like earlier today I was looking for minion instability and I'm pretty sure I took unnecessary nodes on the way that I could've used somewhere else.
oh that's a bit of a different use case then
I think that still does exactly what I need it to. General direction lets me at least explore in the right spots and do my best to choose the best nodes. I think the issue that is difficult, if not impossible to solve without me being able to look at the tree in some way is just how nodes connect. It'd be easier if nodes and controller imputs didn't ignore one another sometimes, but idk.
actually that isn't fair. It's more that I don't understand which direction the node moves in.
yep maybe both things would be good, first a thing to point you what to pick next from the current position and another function to check which general direction node with name X is?
Yeah that'd be incredibly helpful.
hm i've seen that the client log also has node allocations, 2024/01/27 15:40:07 2158125 fb7ab8a2 [INFO Client 17532] Successfully allocated passive skill id: totem_attack_notable2680, name: Panopticon
I've searched the tree json for 2680 but couldnt find the id, how would i match it to the tree node?
You'd have to match that skill id with the data in PassiveSkills.dat
alright, ty
@velvet fog I'm seeing a few requests to https://pobb.in/Heist_league/raw and https://pobb.in/Abyss_league/raw from poedb, feel free to ignore, but maybe that rings a bell for you and helps you fix a bug
hello, I've been using Awakened for quite some time now but when I tried to boot it up today, nothing happened. then I did everything this page told me but to no avail : https://snosme.github.io/awakened-poe-trade/issues
I tried deleting the app (it does not show up on installed programs) by going to file location and deleting everything THEN downloading a fresh setup but the setup doesn't work too. my Windows Defender does not show any errors. what might be the problem?
(sorted the above problem over on TFT)
Heyo, https://gains-of-exile.vercel.app/ dev here. Anyone knows if it's possible to generate query URLs for the official trade site? I can see it's hashed, either to prevent this exact use case or for some scale / param combination reasons. If it's the latter - I figured, maybe there'd be a way.
Just to clarify - this is a query url, searching for Deafening Essence of Zeal for Divines: https://www.pathofexile.com/trade/exchange/Affliction/eR7gv4IL, with a hash at the end
I'd check how poe.ninja does the linking or how pob does handle the legion jewel search
https://www.pathofexile.com/trade/search/Affliction?q={%22query%22:{%22name%22:%22The%20Trickster%27s%20Smile%22}}
you can get query by api https://www.pathofexile.com/api/trade/exchange/Affliction/eR7gv4IL
{"id":"eR7gv4IL","query":{"have":["divine"],"want":["deafening-essence-of-zeal"],"status":{"option":"online"}}} and put it on ?q=
Sweet, thanks a lot!
I was working on a similar app lol, I didn't know about this.
it looks great
Thanks! It's a rather recent project, so I'm not surprised
there's something else I was going to try and do, maybe we can do it together instead of duplicating?
I think it'd fit gains of exile
Could try, why not
anyway, I came here to say that I've mad a small script for the other Linux gamers out there. If anyone is interested in using or improving it idk 🤷♂️
https://www.reddit.com/r/pathofexile/comments/1aly6fp/linux_small_tool_to_pricecheck_items_on_poeninja/
N_ovynn can probably confirm but the "hash" appears to be a randomly generated identifier for a saved search, sort of like a URL shortener. Given the way it behaves there's no way to generate an ID without performing a search and getting one back. See https://www.pathofexile.com/trade/search/Affliction/7Ymz3ZBt5 for example 😉
I got it working, in fact
Chuanhsing's answer got me exactly what I needed - people can click on essence pics and get to the store page. With code almost ready for bulk-search 🙂
say my name you coward! 
was trying to avoid pinging you unnecessarily, I can never remember which chat apps have implicit pings
heh appreciated and sorry for the reverse ping 😄
this one you have to @, though it's fun when you're typing an @ and accidentally end up autocomplete pinging someone
Some enthusiasts with customized clients have keyword pings too, but that's self-inflicted 😄
there are actually silent pings built into discord if you put @silent at the start of the message @hexed mesa
Not sure if the right spot to ask, Lutbot used to show flask duration as a color bar when i first got it, but it no longer does so, even after re-installing, what is wrong?
not familiar with lutbot, did you check the settings?
I use MercuryTrade Fork for that kind of thing, if you need an alternative
There's no way to tell the age of a player account via the API, right?
I've seen it asked before, there's no current API field for it.
Got any fun use case for it?
Thinking it would be nice to enable "new player" features/tutorials in an app
probably the best you could do is query characters and base being new player on something like "never hit level 70" or something
i sen message to pob but not fix this https://www.reddit.com/r/PathOfExileBuilds/comments/18x3tfd/boneshatter_self_damage_calulation_with_damage/ poe wiki trauma https://www.poewiki.net/wiki/Trauma anyone help me to fix this myself
Trauma is a stackable buff that increases the damage dealt by BoneshatterBoneshatterAttack, Melee, Strike, AoE, Duration, PhysicalLevel: (1-20)Cost: 5 ManaAttack Speed: 85% of baseAttack Damage: (200-250)% of baseEffectiveness of Added Damage: (200-250)%Requires Level 28Attack enemies with a forceful melee strike that also hurts you. Successive ...
it used to work, might have gotten broken by a recent PoB change, best place to make an issue would be the github not a post on reddit
fixing it yourself shouldnt be too hard if you know how to contribute https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Modules/CalcOffence.lua#L5253-L5265
if you dont then all I can point at atm is https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/CONTRIBUTING.md
ahh yeah it was probs the dot taken as PR that broke it, that self damage hits doesnt use the hit taken as, only generic taken as
https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues?q=is%3Aissue+is%3Aopen+boneshatter i send this a mont ago no response
ahh I must have missed it, Ill fix it this week if somone else doesnt, sorry for the slow reponse
i just on configuration enemy stats on enemy physical damage write self damage from trauma and check on calcs hit taken for self damage calculation but most people have a problem for build optimization.
yeah its my fault, I havnt been checking issues much the last few months and must just have missed it
it should be an easy fix
but the biggest issu efor my is on we dont have untiring regen calculation. i must manual calculate this
that PR doesnt implement it from self damage though, but Ill see if I can add that as well once that PR is merged
i dont have this mod on calcs
yup not merged (yet), will hopefully be added at some point
oh ok but anyway thanks for help
just to come back to this - is there anythign like repoe available that means i dont have to touch dat files myself but can consume some ready to go transfer format?
Hey folks,
A bit of self-promotion: just pushed one of the last major updates to https://gains-of-exile.vercel.app/, a site to compute optimal harvest-conversions. Now with PoeNinja prices, cleaner UI, links to trade site (multi-item queries), quality of life features (many many tooltips). https://www.reddit.com/r/pathofexile/comments/1ar0elf/gains_of_exile_no_longer_a_site_for_ants/
As far as I see, the final touches left are PoeStack prices, and other leagues. But otherwise I will be developing reactively - based on the feedback from the community.
So if anyone's ever wants to flip some essences - in this league or the next, feel free to drop by
Hello everyone! Is there any way to see account ID without access to API? Also, can it be changed via unlinking account from steam (or in some other way)
What do you mean by "account ID"?
The account name you e.g. type into PoB to list your characters?
each account has a unique id, e.g. you get that from the profile call, https://www.pathofexile.com/developer/docs/reference#profile
Ah, okay, makes sense. I assume this won't be accessible without the API then and will not change by unlinking steam or through any other method
There used to be an old endpoint that let you resolve arbitrary character names into account names, that has been gone for a good while now due to privacy reasons.
@umbral ermine It might help us guide you if you'd explain a bit what you're building and what you need it for.
Is there an official way to find out what the live patch version for each platform (pc/ps/xbox) is?
(from an app's code, not just me as a human knowing that info)
Not directly official, but we've got a service that checks with the patch server to tell what the PC version is at https://github.com/poe-tool-dev/latest-patch-version, this drives things like the patch version field in poe-dat-viewer.
I also collect the version the game client reports in https://inya.zao.se/poe-meta/builds/public for each Steam release.
For consoles, out of mental scope 😄
(the fourth digit group in the patch version is the letter in the human readable form, with a fifth for hotfixes IIRC)
haha, yeah I want to know console versions too
are the console patch servers inaccessible?
They're assumedly on MS/Sony infrastructure, while PC stuff interrogates the Standalone patch server and Steam.
There might be some sort of platform API for those vendors out there to tell things about their catalogue.
good thought!
Least horrible thing otherwise: patch notes forum titles or maybe loot filter validation, if you could manipulate one of those programmatically in the OAuth API.
OMG yeah validating the filter returns the game version validated against!
brilliant, that may work
it's hacky and extra steps, so I can hope for a more official way in the future

FWIW looks like this is not quite consistently right. Comparing https://github.com/poe-tool-dev/latest-patch-version/commits/main/latest.txt against https://www.pathofexile.com/forum/view-forum/patch-notes you get things like
3.23.1.4 = 3.23.1c
3.23.1.3 = 3.23.1b Hotfix 1
3.23.1.1.2 = 3.23.1 Hotfix 1
"game version" is a bit of a nebulous thing too, as not all changes are on the client, and some changes are either to the executable or data, sometimes bumping versions.
I've personally never cared about the patch server one, I rely fully on the version I extract from executables and assume it isn't unique.
I think I'll plan to rely on the filter validation strategy (given that I'm working on a filter tool, haha)
So hey- had a look at the awakened poe github and it listed this as one of the related discords. Windows defender just flagged the uninstaller as being a trojan- but virus total doesn't have anything else hit it. False positive? https://www.virustotal.com/gui/file/00a9b67679e039bbfc13140c6853662575220aad79b5eec8f41208ba1add0266?nocache=1
VirusTotal
false positive
Windows Defender lately doesn't like programs setting registry keys, and will flag any install/uninstall registry key setting as trojan
no idea if there's some new best practice that doesn't involve registry keys
Hi, I'm trying to extract POE buff icons from in game assets. Using the schema description from https://poedb.tw/us/Bundle_schema (big thanks to whoever did that, btw) I managed to parse, decompress and extract all icons to png files. Thing is, the files in the bundles are identified by a hash and I couldn't find any way to associate them to the actual buff names or file descriptions. Anyone knows if this info can be found anywhere in game's data files?
To map from the hash in the file entry in the bundle index to a filename, you need to generate the paths from the compressed trailing path representation in the index bundle; and hash those paths with the given algorithm.
Or you can use an existing tool to extract files like my bun_extract_file or something like VisualGGPK2.
Or depending on what files you're after, RePoE's data tree may have them pre-extracted and mapped up.
I saw your tool (thanks), but I'm developing on Mac and didn't feel like struggling with compiling the c++. If the filenames contain a recognizable name that I can associated with the actual buff names and I can extract that form the _.index, I can work with that.
I've been meaning to remove some of the spurious dependencies from bun so that it can be built more easier, I forget if I've already committed that or not.
I have all the parsing and decompressing code working, was a bit of a headache at first but nothing too major. Just missing the meaningful unique names to attach to the icons.
As for the mapping from BuffDefinitions and other tables to the files, I don't know how they're wired up currently but the dat-schema should be fairly well known.
They should ultimately have a path somewhere which you can resolve against the bundles by the hash method.
A filename will be a good start. Once I see what they actually contain I'll know if they are good enough or I need to find additional data.
If you have a given full path, you don't need the whole path representation section.
The section is mostly useful if you want to enumerate unknown filenames.
I don't actually need to paths/filenames. I just need a buff name that identifies the icon.
BuffDefinitions has a key with BuffVisualsKey into BuffVisuals, which has a path stored in BuffDDSFile.
BuffDefinitions also has names, stat keys, IDs, etc.
BuffDefinitions is in game data?
What language are you working in? pogo has bit-rotted a bit but was usable on macOS
Had to use something that I can link against Oodle's data decompress library, so I used Swift. Could have used C/C++
Heh. Zao and I mostly used the ooz reimplementation, but I've actually played a bit with an approach which can use Oodle directly -- https://github.com/oriath-net/goodle
ooz should build out of the box on macs, both new and old.
But I never really focused on that since, as far as I can tell, there's no legitimate source for the oo2core dylib on macOS.
Oodle is now open source and has all the libraries and headers in the free unreal engine.
Open source or available-source?
I'm sceptical about it being under a usable license for anything but Unreal work.
I've seen it as available-source and avoided looking at it past verifying that I could obtain it.
Didn't dwell on that since it's not relevant for this project. Just need the icons 🙂
My whole ingestion pipeline runs on pyooz these days, and most of my tools just use Inya for data access.
Did you write the bundle schema description?
Yep.
Cool! Great work. Was really helpfull and saved me a lot of time.
It was a collaborative effort over a few weeks pre-Heist to figure it all out, but I wrote the majority of the docs and also made Bun back then.
Where do I find this BuffDefinitions? It's in the game files?
It's a DAT64 table, the data tables that underlie most of the game logic.
They're a fixed-width row format with columns of varying data types, with pointers into a variable length section for lists of things and strings.
The community is collaboratively guessing at the schema for these tables as they don't have any explicit structure.
