#tooldev-general
1 messages · Page 28 of 1
yeah I'm going to try to figure this out too when I get home from work, cause I know at least a couple people who don't like having to switch scenes to open it
I'll be sure to add a doc page for this specifically
window for awakened poe trade Awakened PoE Trade:Chrome_WidgetWin_1:Awakened PoE Trade.exe, I was fiddling with OBS profile in appdata dir
made it recognise it but couldn't work out the compatibility for it to render properly, I could see artifacts of the cursor where I was dragging over the popover windows though
probably more a me/windows problem, seems like it works in principle
had this too need to put this
tbh I think windows high perf gpu mode for applications messes with OBS
probably my issue is there
either way, problem solved 
Maybe, but if I put this to BitBlt then I have the curser artifacts too
If I put to windows 10 then it works perfectly
I should reconfigure my EE2 to pricecheck in the actual browser again, I always forget to do that.
Better frame pacing when there's no an overlay around 😄
yeah the browser mode should just be adding --no-overlay as a cli flag
Not sure if my machine is more overpowered these days or if Windows has made the impact of meh presentation modes less, but I've coped by closing the tool down when not in active use.
Hmm, I cannot seem to figure out getting ee2 to show up in obs still. I've got it running in win8 compatibility and all the settings as above I believe. Only difference could be that I'm still on win10 or something with windows high performance gpu
I think high perf GPU messes with it
I manually added the window by its ID in C:\Users\User\AppData\Roaming\obs-studio\basic\scenes\Untitled.json but still couldnt get it to render
name: Ulaman
spawnTag: Amanamu
craftTag: Kurgal
In the test, Omen of the Liege (Amanamu) resulted Gain 4 Rage on Melee Hit as craftTag (Kurgal), and the resulting affixes showed of Ulaman.
Added a grid view for images, also made a few improvements based on recent updates to LibGGPK3
Just submitted my application for the API access (POE2). Now that there is a currency API and Im way less busy I hope to revive Mirror Market
Information is less granular
Bucketed over 1 hours. Can still graph stuff over longer term but not the same granularity that mirror marker achieved
Hey, how long does it generally take to get a response from the oauth email from ggg?
usually less than it takes for ggg to get a response from me
given christmas and new year i would assume they are busy with other stuff for now so might take a while longer
Yeah I assumed as much, sucks I waited so long to request this stuff as it aligned with poe2 league and christmas/new year haha
my last OAuth authentication process took about three months
Saving the best for last? 😄
@worthy cape is still DeputyToolDev, just get him to go through them all /s
Tool looks good, do you think you could add opening games files from the Steam version as well (iirc they're just the files within the GGPK but extracted to the file system).
wouldn't be a GPPK Explorer at that point then :p
it's open source so a PR could always be submitted to add that ability, i just honestly have no desire to do that at the moment
Granular Groups of Parceled Kibibytes.
np, cool tool with good UI nonetheless
my regular job has decided to change our schedule from almost fully remote and has been for the past 5 years or whatever to 2 days a week back in the office for no reason other than bs statements of "collaboration" and "mixing up our days" aka I think they are hoping people are going to retire early or quit
(no one is happy with this change nor was there an issue they are trying to solve with this change)
sadly i can see that happening, our union basically said there isnt anything they can do other than re-negotiate our contracts for this change pay wise
doubt that will go anywhere either though
more like "we have a pre-covid 10-year lease agreement and we need to justify office/building usage and remote policy was just a nice gesture from us during lockdown, pls come
"
and I'm 100% sure there is a new "manager" or some random nutjob that needs to either justify their position or add something to cv or worse, post on linkedin with following post
We’re moving to a 2-day in-office model because the data strongly indicates—both quantitatively and culturally—that collaboration thrives in physical spaces. While some may prefer remote flexibility, our metrics (and the general office energy) clearly support this direction for sustained performance.
It is being decided by this ass hat who just came into his higher up position, ever since he's been here his been making bad choices and pissing people off
I’ll keep checking every day! (since it’s just an email, multiple times unintentionally actually)
Hi, any feedback would be much appreciated: https://poe2.lootfilter.com/
Near realtime Path of Exile 2 currency exchange dashboard with hourly updates, price history, volume, and derived cross-currency estimates. Track league markets, compare values, and monitor trends.
"loot filter"?
Yeah that is not the case right now (the filter part). But might be in the future.
For the uniques yes. But very limited since that is rate limited rather narrow.
It also only scans the lowest 10.
Had the domain name since I created an addon for wow to filter loot a long long time ago
I've been wanting to try to make some data analysis on the currency exchange for poe2, does anyone know which API I could use to get data like the conversion rate of item A to item B and vice versa?
Same as the ingame stats when plopping in two items in the exchange and then flipping them around
cxapi is what you get
aka currency exchange api
Oh so that works for 1 and 2, cool!
Do you also happen to know what the rate limit is? If I can only do one pair at a time it may end up being a lot of requests
suggest reading the documentation
You get bulk stuff, hourly.
The API data is by design bulk aggregate figures per hour, much like what you can see on ninja currently.
Oh so it's all at once? I don't have to request each pair? If so that's great
I'll give it a try this evening when I'm back home
Like all other services, I presume it's behind having OAuth access.
You can probably squint at Ninja until your application goes through.
I'll check the docs, hopefully it's not too different from things I've done before
Thank you
yeah poe.ninja republishes pretty much everything from the ggg api
Oh it seems I'd need to register an application by contacting GGG if I want access to the cxapi 🤔
I'll try to find out more
I only found out info about poe1 for Poe.ninja
I also thought Poe ninja returned the value of a given item, rather than the exchange rate with every other item which is what I'm after
poe.ninja uses the cxapi, so the poe.ninja api has the same data
Although is it accessible to me?
I checked the requests that happen when visiting it and I do see a list of items and their data, like their value in exalt and volume, but afaik it doesn't tell me for example how many regal orbs for a transmutation orb and vice versa
It's still useful info but not the same as cxapi from what I understood
no one cares about regal:transmute
It was just an example
Afaik Poe ninja shows exalt:item but not item:exalt
I am curious about the gap between the two
well, for that indeed you would need an oauth app
and given this. i guess it might take a while
You only get pair data tho, although it’s possible to figure out what you want it’s not as reliable as having complete bi-directional data (low and high ratio's are good but not perfect).
I thought the pairs would be directional if using cxapi 🤔
Item|exalt vs exalt|item
Like flipping them using the in-game exchange
the cxapi is completed orders, not buy or sell
Wouldn't it be the same info just 1h behind?
As long as anyone traded the given item
it's not the same information as the currency exchange UI, if that's what you mean
Perhaps I could ask someone with access to the API to copy paste the data 🤔
I'd mess around with old info but that's plenty, then I can figure out the oauth later
Then again I wouldn't know who to ask, if anyone does please let me know
Can give you but it's exactly what you see here:
https://www.pathofexile.com/developer/docs/reference#currencyexchange
That'd be perfect ❤️
I too am eagerly awaiting access for cxapi
if that offer is still available, or if anyone else would be willing to query cxapi and copy paste the result for me, i'll be available for the next 4 hours or so, much appreciated ❤️
in the meantime i'll draft an email
oh sorry, I thought the docs are enough
it seems i need a confidential client oauth to have access to services, which includes cxapi
yes
and the data changes every hour
thought you only wanted to know how it looks like
yeah if anyone can query it once and send the output i can mess around locally and see if i can get meaningful data out of it
rn i'm finishing the email, though ofc ggg may reply between now and never x)
Email was sent, tried a few things by hand and the math worked out for now, exciting!
Hopefully it won't take several months for my approval too 🤞 
If I call it an Auction House, does it delay the CX API OAuth requests?
what* it looks like (or just "how it looks")
@velvet fog
https://poedb.tw/us/Bitter_Instinct
https://poedb.tw/us/The_Golden_Charlatan
https://poedb.tw/us/The_Hallowed_Monarch
In PoE 3.27, the flavor text of the newly added Uber boss unique items is not being displayed.
(170—250)% increased Armour and Evasion
Reflects (200—300) Physical Damage to Melee Attackers
Retaliation Skills deal (50—100)% increased Damage
Damaging Retaliation Skills become Usable every 4 seconds
Retaliation Skills become Usable for (50—100)% longer
+200 Intelligence Requirement
(200—300)% increased Physical Damage
(10—16)% increased Attack Speed
(100—200)% increased Critical Strike Chance
Critical Strikes with this Weapon do not deal extra Damage
Gain a random Shrine Buff for 30 seconds when you Kill a Rare or Unique Enemy
+1 to maximum Mana per 2 Intelligence
(150—230)% increased Armour
+(25—35)% to all Elemental Resistances
50% increased Light Radius
Link Skills can target Damageable Minions
Your Linked Minions take (65—75)% less Damage
On Killing a Rare monster, a random Linked Minion gains its Modifiers for 60 seconds
Classical case when your native language grammar kicks in - ty
point out a mistake to a non-native English speaker, get thanked, point it out to a native English speaker, get abused 😉
Hello nice people. I'm looking to translate Modifier data for my website, I was told that to do this properly you need to get the language data from the game files themselves. Does anyone know if there is a GitHub or Tool for this already in existence or would we need to do it ourselves?
Thanks!
maybe try #tooldev-general message
A good term to know is "stat description" as that's the text files that are used to map from stats and stat values to contextual mod text in various languages.
Some platforms like repoe pre-cook the data a bit for you to have pre-translated strings, but you may have to build some of the infra yourself.
It might help to look at existing tooling like the wiki's PyPoE or RePoE.
thank you kind people
@velvet fog
https://poe2db.tw/us/FlavourText
https://poe2db.tw/us/NPCs#NPCTalk
The FlavourText Search feature cannot search the dialogues of NPCTalk. + and Lineage Gem Flavour Text
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
what does the season param from /league endpoint do(or how does it work I guess)?
judging by what the docs say I expect it to work like this (docs: https://www.pathofexile.com/developer/docs/reference#leagues-list)
GET /league?type=season&season=Crucible
but all I'm getting back is an error
{
"error": {
"code": 1,
"message": "Resource not found; Season not found"
}
}
ggg is punishing me for trying to get uniques i have so i can hide them in my filter by lying about what uniques i have 😔
(for context thats on the unique stashtab showcase page (i guess standard shenanigans))
@somber mortar Hello! I found a bug when using Exile Exchange 2. Staff levels are being detected incorrectly, and are looking for 81 instead of 82.
Caster weapons being over ilvl 81 doesn't matter since you only need 81 to roll all mods. Its set to 81 to include those items too when searching by ilvl
I understand, sorry for bothering you
All good, glad to help!
seasons refer to race seasons, like those shown here:
https://www.pathofexile.com/events
Don't listen to @compact isle , "seasons" is short for seasonings - It's the "in" lingo for the various flavors of salt that shows up on the internet when the output of the aggressive release cycle isn't literal perfection
Is there any way to get a complete list of leagues using the API? The GET /leagues endpoint doesn't seem to provide that. Legacy leagues are missing, private leagues are missing, events are missing, etc
I'm not an API authority but I believe the answer is no.
It should give you private leagues you're a member of (I think (I could be wrong (it's not unlikely I'm wrong))) but that's it.
Private leagues aren't really private if you can see them all.
I don't think they're meant to be private as in API private as much as private as in you can choose to kick people or other stuff
lets take Pohx private league - https://www.pathofexile.com/private-leagues/league/Pohx+Keepers+Restart
you can just call GET https://api.pathofexile.com/league/Pohx Keepers Restart (PL77970) and get league info...you just need the ID which is very easy to get from the pathofexile.com site itself
so this is either an oversight or 100% intentional...i'm going with the latter
being able to look a private league up if you know about it already is very different than being able to get a list of all leagues
i guess, that's not really what i care about anyway i was just making a point
regardless i think if i want a full list of past league info, as well as events and such i have to do it manually
...which is unfortunate cuz there's a lot of them
@velvet fog More natural English would be something like "Modifier weight information cannot be obtained from game files."
(also would be nice if there was an X button to dismiss the warning)
Is there any program that can check the price or contents of an Inscribed Ultimatum?
I guess regex could be used, but poe.re doesn’t have that.
Apache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。
These look great! Do you think it'd be possible to insert commas into the volume numbers for readibility? Many of the pair volumes get so large they're hard to read as flat numbers.
Number formatting comes up a lot for me at work. It's a pain.
we intentionally don't want you iterating all leagues in existence
The ToS mentions that the undocumented APIs are not allowed to be used -- does that include the trade API? I know lots of others use the web trade API but am hesitant because of that ToS.
it's tolerated within reason
if literally every trade gui is already using it, you're fine
if you mean the one where you pass it stats and it passes you back a trade link
yes that one
Does anyone know if the ids of API objects like Item, Character, and StashTab are universally unique--or if they are unique per object type, realm, and/or over some other domain?
(In other words, when is it safe to use the id field as a primary database key?)
anyone know of a basic and straight forward desktop app that I can glean the basic flow of api access from?
just for character / stash data
acquisition does exactly that, and i'd be happy to talk you through it if you want--but it's c++
does acquisition use oauth?
I'm looking at the xyzz repo rn should I be looking something that isn't archived?
you're welcome to dm if you have questions
atm I'm installing acquisition, haven't used this tool since like 2017
took a long break from the game until about 2 years ago
exilence next might be another good one, or of course PoB if you don't mind a little Lua
agreed, depending on what language you are comfortable in
I looked at Procurement's vintage C# half a decade ago. I'm sure it has aged well since 😄
the biggest recent changes are oauth, account suffixes, and dynamic rate limiting
I'm not super familiar with any languages common to this space but I have little trouble understanding most code
I used java a lot when I was young, dabbled in C# here and there
same with C++
Lua ... I just don't understand why its popular
heh, i had to learn modern c++ and Qt when i started work on acquisition
no hate but everything I touch that involves Lua seems slow
and I say that as someone who spent most of their career writing JS
not sure I'd call Lua "popular"
seems to be used in game related stuff a lot
becouse its super light and small, so very easy to embed inside of games to use as a layer for modifications
and relatively simple to learn for non-technical people ( atleast for the time it was made )
so alot of games in the early 2000s use it
eg regex is bigger than lua with all of its standard libaries combined
the price you pay for that is performance, but its normally used for things which are not performance critical and not like the entire game
and you can win alot of that performance back using jit
ATM I'm just hoping to build a tool to quickly scrape character data into files when I change zones
Later on I might try to figure out how to get PoB to do this and a timeline slider or something to see a PoB from a specific level or zone
Figure it would make for much better progress guides from streamers and such, especially if the timeline thing could "export" to a loadout
that should not be hard, and you could probably get by with a hard coded rate limit, so you wouldn't have to implement a full solution for that, either
I've found that a lot of things written in Lua are written in Lua because the original dev wrote World of Warcraft addons as some of their earliest programming experience and simply carried on the legacy from there.
I'd wager that a not insignificant portion of Lua's market share is directly related to World of Warcraft.
Edit: at least for gaming related software
I think the first time I looked at Lua was because it’s used to control turtles in Minecraft
Pob forced me to look at lua 
I think it was either that or WoW addons for me
PoB came later
wow addons definitely made me dislike lua :)
My personal feelings on it is that its a perfectly adequate language for what its meant to do, and a good candidate for a low feature language similar to natural language for a wide variety of people at different programming skill levels to contribute to things like addons
I also think it should be chucked into a fiery pit rather than be used for bigger projects
But it works and I understand why people use it
and now that has come full circle with roblox scripting
I first did lua back for GMOD stuff. Then lua + js with FiveM
Is there a way to calculate gold costs for currency exchange trades (for PoE2, but I expect they are the same)? I've seen mention that it's a fixed cost per item, but no mention anywhere of what that cost is or where to find it.
There are a bunch of tables in the game files that give the costs of items when sold to a vendor so there are probs values for the exchange in there too. Don’t think anyone has looked into it before
there are some oddities with gold afaik, so everyone I've seen has ultimiately ended up checking the exchange by hand
tables might get you most of the way there though
It is in the CurrencyExchange table, GoldPurchaceFee is a column
Great thanks, I had just found that table. It matches what I see in game
https://github.com/viktorgullmark/exilence-next our backend was in C#
20 * round(100 * pow(disenchant_value, 0.45) * (1 + 0.5*(influences_count + corrupted_implicits_count) + 2*quality/100))
someone on another discord (idk about rules so I don't want to link it) gave me that formula when I asked a similar question
@velvet fog
https://poedb.tw/us/Aristocrat
https://poedb.tw/us/Ascendant
https://poe2db.tw/us/Pathfinder
It seems that the passive skill that grants Aristocrat passive skill points is incorrectly labeled as Atlas passive skill points. The same issue applies to Ascendant as well. + Pathfinder in POE2 has the same issue as well.
Bumping my question from the weekend.. does anyone know how unique item ids, characters ids, and stash tabs ids are?
I'm guessing that item ids are unique per realm (at a minimum), while character and stash ids are unique per account and realm. Anyone have any info on this?
idk if they are universally unique, but they are 64 hexadecimal strings, thats 256 bits, uuid is 128, lowkey wouldnt be surprised if they jammed uuid in one of the halfs tbh and even if they didnt i wouldnt really worry about it
Thank you. I kinda suspected that, but don't have much experience here.
Is there an up to date .psg spec or parser floating around? Just came back to some work for poe_data_tools that I shelved and my previous assumptions don't seem to line up anymore
PoB for PoE2 should work. We haven't backported any changes to PoB1 though
Will take a look at that, cheers
At a glance it looks like they diverge, and my code loads poe2's tree fine. Will do some poking around and report back
Is there still a backlog of api requests? Mines 12 days old
yes, they are months behind based on recent reports around here.
Added the two different .psg specs here: https://github.com/adamthedash/poe_data_tools/tree/feature/skilltree?tab=readme-ov-file#passiveskillgraph-psg-file-format
Not 100% on the meaning of each value yet, but the types should be correct
after version is 1 byte type for Default, Atlas
8B/11B is skillsPerOrbit, first byte counts
radius is i32
Is this picture hand-drawn?
I wish my handwriting was that good 🤣 Nah it's https://excalidraw.com/
it really is a great tool, I've found a lot of people I've shown it to using it at a later date haha
also open sourced + MIT license https://github.com/excalidraw/excalidraw
Ooh, didn't know you could self-host, assuming you can wrangle the repo/build 😄
6 dollarydoos a month isn't too bad for Plus either, interesting.
I love excal use it constantly
One of the youtubers that explains all the poe mechanics in depth uses it too for their presentation hah
does anyone know if there's a tool that can convert the Ctrl + C Item format to it's Ctrl+Alt+C variation with the mod name and tags, for poe1
highly doubt it. in some cases there are multiple mod combinations that could result in the same "simple" mods description. and reflecting mist exists for extra fun
hmm, ok yeah reflecting mists seems kinda rough to implement 
just need to prompt the user for the ctrl+alt+c unfortunately
it's a very difficult problem to solve, and yeah not possible to 100% solve
there's been some stabs at it but most tools have moved to just using ctrl alt c
I'm currently trying to take a stab at it myself, let's just hope i can manage to make it work
probably wont be able to make it work completely without additional user inputs though
in theory you could upgrade/downgrade every known mod and then give the user a drop down choice for what each remaining mod is
It used to be asked quite frequently back when people were monitoring the river and were making trade sites, as I believe mod lines were cooked back then too.
PSG export added in poe_data_tools v1.1.0 https://github.com/adamthedash/poe_data_tools
Similar format to what RePoE uses. If there's any other data that would be useful to people working with trees let me know!
Paris Saint-Germain supported
p**is saint german
restarted my pc due to blocked processes, claude decided to use someone's description that is completely unrelated to anything i do with my stacked decks tracking app 
pretty interesting bug
Everyone's trying to do the same thing, might as well fold them together 😉
Yeah haha, probably a lot of codebases being vibe coded to the same degree
I'm tired of people with no sense of decent design or good UI/UX making the most hideous garbage with AI then trying to slap on some "premium" option or trying to monetize their garbage.
When Arc Raiders came out, holy shit the amount of turds that showed up. Everything needs to have a glow and hover effects.
i noticed that too, a lot of bad websites now have this "cyber" style and using them, you immediately notice that it's sloppy ai crap cause half the site isn't functional or there's just a lot of loose ends that lead to unfinished bits and pieces
and always deployed on vercel lol
next has huge mindshare and vercel seems to be aggressively courting ai slop
I'm sure they're raking in cash
oh definitely
sell shovels in a gold rush
exactly lol
i wonder if this is because claude or whatever model tends to recommend vercel (for whatever reason, not being conspiratorial)
or maybe they have just a good free hosting plan. idk, i don't use saas at all if i can avoid it
Sassy.
:)
-# sorry
vercel makes it easy to deploy next.js, vercel is behind next.js so obviously that makes sense, vercel is not bad if you are 1 person and you are doing small projects to be fair, they do have really nice dashoards, etc...
where you get fucked with vercel is when you multiple team members, their pricing is gross, and at the end of the day, its an aws wrapper (yes im simplifying)
I worked in next.js pre and into ar stuff and I did enjoy my time working with it but you definitely get pushed into the entire vercel ecosystem
you can deploy just fine on your own vps, etc... but not many people especially the vibers care to go the extra route
Ecosystems 
ive been a big fan of using coolify, i have it running on its own small vps $7/month, and deploy to my dedicated server thats only like $50/month, and i dont need to worry about costs for just having other people on my team accessing shit
On the one hand, tools that work well together is good. Things working good is good
On the other, "ecosystems" so often devolve into "You want to use X so we'll make it real hard to not use YZABCDEBanana because otherwise no one would use it lmao"
exactly
more like walled gardens
Classic case of pesky nuance. Not all ecosystems are bad, but there's enough bad ecosystems that the word makes me go 
next has decent tooling and is totally fine to self host, i'm hosting 3 next projects just fine. but the general trend, especially in web dev, is to not leave the js ecosystem and general unwillingness or uninterst to learn how things are hosted.
literal "old man yelling at cloud" here
ive been having a pretty decent time forcing myself workin mainly rust project the past few months
really hated it at the beginning mainly just due to lack of understanding and such a shift in syntax and such
It’s because you are serverless aka don’t have to manage the server
you just manage paying bills that are too high
Yes
i know, i just wish they had a better term
on this note, the last project that had this cyber style and none- to barely-functional ui/ux was open source and when i looked at some github issues to try and resolve an issues i had, the author obviously used ai to write issue responses as well. to a point where they recommended installing packages that were clearly just hallucinated by ai and don't exist at all.
idk how to exactly feel about this, oss maintainers obviously are doing gods work and have it hard enough. on the other hand, this is sloppy, through and through.
oh yea i believe it
Managed infrastructure as a service
I actually remember when chatgpt 3.0 was starting to see its ways into PRs on this project I was on and people were trying to be sneaky about it but the PR made no sense and they clearly didnt understand the full scope of what they were trying to shovel in.
i don't understand that tbh. it still has your name on it, it's your code and you're responsible
i should have clarified, these were PRs coming from outside of our team on our pub repo
saw a wave of people that i think just wanted to be listed as contributors to projects
there's this one project that gets like 500 PRs a month or so because som very popular youtube tutorial/walkthrough on git told people to send a PR adding their name or something
i forget what it was, it's insane
some projects had to disable PRs or put up a captcha yeah
Ghostty is getting an updated AI policy. AI assisted PRs are now only allowed for accepted issues. Drive-by AI PRs will be closed without question. Bad AI drivers will be banned from all future contributions. If you're going to use AI, you better be good. https://t.co/AJRX79S8XD
oh i like this
Apna College vs. Express.js - https://www.youtube.com/watch?v=ukRizbUhfeM
Around a year ago you may recall Express JS being spammed by people from something called Apna College, well it turns out that this never actually stopped, in fact you might even say it got worse
==========Support The Channel==========
► Patreon: https://brodierobertson.xyz/patreon
► Paypal: https://brodierobertson.xyz/paypal
► Liberapay:...
what most ppl dont realise about vercel is that your 1k per day website can be hosted on a cheap second hand pc w ubuntu on it
you really don't need to pay rent at the start, you should only pay rent if you need to
that said if something is free i'll use it e.g. gh pages is a no brainer if you're open src anyway
# videos you can watch on x2 speed ...
Yeah, Brodie is one of my "put on in the background" channels, for active watching a bit of speedup probably helps 😄
I am sure this has been asked before but, is there a reliable source for current Item classes (not categories).
That is a nice list, but it doesn't have Talismans for example.
You are my hero, thank you!
I've started experimenting with prophecy league theme after noticing that a lot of recent poe tools use nearly identical theme color and I kinda like the "uniqueness" of the purple 
Gold is the most liberating of colours.
– Izaro, probably
Phrecia notes note this note:
We’ll have a JSON file released as soon as we can so keep an eye on our socials for when this is available. Have fun planning, Exiles.
@velvet fog
https://poedb.tw/us/Aristocrat
https://poedb.tw/us/Ascendant
https://poe2db.tw/us/Pathfinder
It’s a minor issue, but on the passive page description, it is displayed correctly as passive skill points, while in the tooltip that appears when hovering over the passive tree, it is still shown as Atlas passive skill points.
(slightly weird because the 3.27.0 alternate trees didn't get 3.27.0 updates until now)
Free visual loot filter editor for Path of Exile 2. Create, customize, and import filters like NeverSink.
Also made some small updates to the Economy app.
It took like 24 hours of programming to finally get to a point where I feel comfortable having rate limiting distributed across microservices
do not recommend, but also i will make it open source soon
That sounds like a fun consistency problem, especially as it needs to snake into all your outgoing requests.
yeah it was definitely "fun" haha
had to implement probing, endpoint -> policy -> rule mapping, ip / account rules grouping (probably will need more as I don't know all the rules still as well!) and atomicity
luckily redis/valkey makes it mostly straight forward
would love feedback on this as well if anyone feels like it
can't believe the poe api is vulnerable to the 2038 problem 😭
Just added the new phrecia tree to PoB btw. V2.60.0
Rate limit counting is surprisingly hard to get right as a consumer.. 😅
Yeah it definitely is, haha. Policy and rule discovery, rule data associations, multiple access keys, synchronization across systems and time drift to top it all off
Do you allow multiple in flight calls for the same policy?
It makes reconciliation with the server response counts pretty tricky.
As long as I'm aware of the current rule state, yes. I made a valkey list of requests, and preemptively insert into the list before the request is made. When a request is made it ensures the state and list have at least the same length, and if not inserts extra records into the valkey list
24 hours sure sounds impressive. i spent plenty of hours over the months (if not years at this point) and im not even remotely happy with how i handle rate limits. to this day i sometimes think about it when taking a bath
I'm sure there will be more time in the future spent on it when I realize something is slightly wrong haha
I found a bug in mine recently where a race condition would clear out a policy and cause 429s..
Because I purge endpoint / policy combinations.
My greatest fear is having to tinker with this code for the rest of my life and this isn't helping 😭
I'm sure it's fine... I'm only on my fourth iteration of that code...
I added support for the item_filter scope. You can now connect to your POE account and import and export item filters. Also improved validation a little and other minor things. https://editor.lootfilter.com/
Free visual loot filter editor for Path of Exile 2. Create, customize, and import filters like NeverSink.
A lot of things I am not happy with yet, but slowly getting there.
bro what sorcery do people use for the lines/arcs to still be visible when fully zoomed out. mine are basically invisible in normal form
do we have access to gggs shaders? they prob use a whole different es version but curious if they desaturate or tone down brightness or both for the inactive nodes and any of those values
ES? It's glorious HLSL 😄
rip, do we have access to them tho?
I used to squint at RenderDoc capture disassembly and constant buffers/textures; trying to cross-reference against Shaders/ in the game files.
Got to speak to the fella that did the transfigured skill gem effect a while ago, fun to hear how it was made in the first place.
If you're using a 3D API to render, make sure that your textures aren't too squished (anisotropic) with wildly different deltas in U and V. That tends to completely shaft mipmapping and filtering.
If you're generating mipmaps, make sure you're in the right colour spaces so you're not accidentally affecting brightness as you filter.
If you're rendering from textures, make sure again that you're using the right sRGB etc.
What error code does the public stash api return when ggg servers are down? Not sure if it would be 500, 407 (Temporarily Unavailable), or 404
or 503 maybe?
I am using the textures and do generate mipmaps otherwise arcs look like trash. Nothing I've tried works, from your suggestions either. Prob just need a break and to come back tomorrow. Cant for the life of me imagine why itd be so dark for me when zoomed out versus everyone elses tho. I've tried a bunch of hacks that do improve it but not consistent across the entire tree so its useless. pob and maxroll look fine tho
The thickness of geometry for your lines might also matter a bit, you could be generating way too few fragments for lines to be visible at all.
I reduced the lowest miplevel to see if thatd help and even set a minimum screen size and didnt seem to help, but that was jsut a quick random last minute test, might have to do a better version tomorrow
this looks to me how it looked when a friend and i ported path of building to the browser using webasm compiled lua, we never could quite figure out how to get around that
503 during patch windows, 5xx if something bad is happening. 4xx errors are only returned if the response is invalid because the request is bad (407 is not Temorarily Unavailable).
The only possible 5xx errors I can imagine are 500, 502, and 504.
(Aside from 503 during patching)
Does anyone know a translated source of map device crafting options? I've got translated data for all the other parts of https://poe-idol-planner.prae2.com/ from poedb but I couldn't find those (maybe I'm just stupid?)
Plan your idol configurations for Path of Exile Legacy of Phrecia event
pretty sure it's CraftingBenchOptions table where IsAreaOption==true
Thanks so much! https://poedb.tw/us/Crafting_Bench
https://snosme.github.io/poe-dat-viewer/
data/craftingbenchoptions.datc64 (english)
data/{language}/craftingbenchoptions.datc64 (translations)
you can use the npm package CLI tool to pull them as JSON files if you like https://github.com/SnosMe/poe-dat-viewer/tree/master/lib
That is a much better way, i guess this afternoons job is refactoring the source data pipeline. Probably should have asked here at the start of the week lol. Thanks so much
"patch": "...",
"translations": ["English", "Russian"],
"tables": [
{
"name": "CraftingBenchOptions",
"columns": [
"Id",
"Name",
"IsAreaOption"
]
}
]
very easy to use
Yeah thats great (i had just been regex parsing poedb lol)
Is there a resource I should look at for where to find things like idol mods or scarabs (eg what name)? I started doing this stuff as of Monday this week so not sure what my go to resources should be.
I'll be honest, getting stat descriptions mapped to mods mapped to items is incredibly convoluted as stat descriptions are stored in a weird text based format that's basically proprietry to (?) GGG
aah, so ripping that from poedb is probably the way to leave it for now (since it works)
that said, you can look at the code here for an idea on how it works. word of warning that this was a 1st pass with heavy AI assistance, I'll go back to it and refactor it at some point https://github.com/jchantrell/chromatic-poe/blob/main/app/frontend/lib/mods.ts
pretty confident that every person in the community that's written a stat parsing implementation has probably rewritten it a few times, it's convoluted as heck and full of edge cases. if you are just focussing on idols it wouldn't be the worst though
Is data for new mechanics or enrage states of the Phrecia event bosses included in this patch?
likely already exists and is handled server side
Posted this a couple months ago i think, just a quick vibe coded site to keep leagues and events interesting. Not sure if this is more a tool, or for build planning, but eh, its free/open source, not selling anything lol
So it seems maxroll is creating the lines/arcs in the shader instead of using the texture if under a certain zoom, makes sense, a nice and simple solution. PoB doesnt do that though and it looks so good im salty wtf. PoB altered their textures though, they have each line and arc as its own file. Would that matter? (EDIT: Nah I tried this specifically didnt do much)
This is my first opengl/webgl use case so I'm not that experienced, but technically mipmaps should be the same or at least not a massive difference even with individual files? PoB is using their own? (SimpleGraphic) renderer using OpenGL and I've tried every possible combination of setting so I dont think its just a setting. Hmm
@daring stag i DMed you, maybe you can check, if you have time please 
Man, I'm both rusty and clueless. But I had the idea before to make a tool to track forbidden prices in poe1. Just pull all the price checks for different notables over time, slow enough that you don't break ToS or get rate limited. I should probably base it in python if possible, to not make it too hard on myself. This should be doable right?
Last time I tried to make something like this, I did the mistake of picking a language I don't know to make a thing I don't know, while being a freshly graduated IT person so without any experience.
I learned from that experience vibe coding is a bad idea. I basically learnt nothing about C# and very little about network operations. So I figured it's better to try and turn more to real people
you are always "breaking tos" if you are using poe trade website api, but its generally "acceptable" if you arent going over the rate limits. except for live search afaik
yes, it should be double, should be fairly easy too tbh. as long as you dont care about handling rate limits properly and you just do the naive thing of "wait x seconds" between every request (as long as you wait long enough anyway)
Yeah
I figure if there's like 240 notables and two types of forbidden, that makes 480 searches by a very rough guesstimate. If you make a couple searches per minute (if allowed), then you'll get updated more often than daily
looks to be as simple as doing a request to the api with explicit.stat_2460506030/explicit.stat_1190333629 filter, just put ascendancy node hash in the value option.
you can grab hashes from https://repoe-fork.github.io/passive_skill_trees/Default.json (seems to be as simple as filtering for objects that contain key "ascendancy": )
good luck with the rest
Ty! 
You are overestimating the rate limit, it is very narrow. 480 searches will barely fit in a day, if that.
And you also get blocked for 30 minutes if you go over.
ah, fair enough, and good to know
480 searches will barely fit in a day
given the current limits(30:300:1800), 480 will fit perfectly fine. The limits are dynamic and you should write handling for them, in case they change, but for right now at least it would take between 100-200 minutes, depending on how much safety margin you give your rate limiter
hey all , been a while, took some time off from StashSage at beginnign of the season, I released an API endpoint today to serve up model inference from our xgboost and knn models, still fine tuning the output for visual purposes, but if youre interested in the API for any reason (your own apps, etc.) please let me know, happy to chat
Agree, I misremembered a factor 10.
after like two weeks of figuring out infrastructure and stuff i finally have data being ingested and processed and can finally estimate currency through different jumps myself in every league
im so excited to finally actually use the api for something been wanting to do this for months
thank u ggg i love u all
i will say i am slightly confused to the currency exchange rate limit rules changing based on if you are hitting the latest timestamp though and it makes my hourly cronjob in a weird spot but hopefully it continues to work
If it's already up-to-date, the currency exchange only needs to be executed once per hour, and the id will be the current time minus one hour in seconds.
10:60:600 means you have 10 api fetches within 60 seconds. The count resets at 0 seconds every minute.
30:300:1800 represents the reset count every five minutes at 0 seconds.
yeah i understand that
it's just difficult programmatically to figure out if the new policy/ruleset applies to all currency-exchange timestamps or just the most recent one without hardcoding that logic
but of course i would imagine they want you to start from the beginning so you would never realize that if you stayed true to the spec and never brought your own timestamp, but that would take hours or days to get up to date
You don't need to start from the beginning for currency exchange api
i mean technically you do if you go by spec only
wait i am wrong i didn't realize the extra information was there, my bad
that just makes my issue worse though lol
like what if i want to investigate between A and B timeframe but I have a job that is going from now - 7 days to now, and when it hits now it updates the policy/ruleset to make the A and B api calls wait for an hour
without hardcoding i just don't understand how to implement that logic
You can calculate the id range for specific timeframe
no i understand that part, i am more confused on how to implement rate limiting on the end of the feed for currency exchange. if i still want to look at historical data as well as keep up to date on latest information, then the rule/policy for that endpoint gets locked to the next update timeframe for ALL currency exchange calls
I don't use next change id for cxapi, it's confused. Calculate timeframe works fine
still has the same issue if you hit the latest timestamp, where it updates the rate limits and tells you to wait for the next hour to strike before any other cxapi calls though, doesn't it?
if (next_change_id == unixstamp(current_hour -1 hour)) { break; }
yeah but that's not how the rate limiter gets updated, it updates before next_change_id gets read
and if i start using that data to manually tinker with the rate limiter it gets messy quick
idk i just feel like there needs to be a new header to implement rate limiting automatically against the poe api that dictates special cases like this policy/ruleset is only active for this timestamp
I can't understand your problem.
I have two async jobs:
Job 1:
Retrieves data between A and B from the PoE API on-demand
Job 2:
Retrieves data from now - 7 days to now
In this circumstance, Job 1 and Job 2 are ran in parallel, Job 2 finishes first and reaches the point where next_change_id == timestamp passed to URL, which triggers their updated policy. This will confuse Job 1 as the current Rate Limiting spec is usually per-endpoint or per-service, but in this specific case it's now per-submitted-data-to-endpoint
There is no graceful way to handle this in a context-aware manner so that Job 1 can continue retrieving data while adhering to the Rate Limit spec
If there was something like a X-Rate-Limit-Policy-Scope header to solve this issue where value could be Strict, Scope or Endpoint, where :
Strict = exact parameters in the URL trigger this policy
Endpoint = any hit to this endpoint triggers this policy
Scope = anything that falls under this scope triggers this policy
-- that would solve the issue. I am unaware of any other methods to do this though
Like I get why the API sets the rules as such at the end of the feed, it prevents infinite loops hammering the system, but it also makes this use case and adhering to the docs impossible
Why aren’t you storing the data instead of requesting them on demand? Isn’t taking that much storage
Even less if you only need e.g. a week like in your last example
Yeah it seems you're over complicating this.. you can always just read the rate limit headers to adhere to the rate limits.
Also like @gilded tree said you should just be storing this data if you want it. its tiny. 7 Gigs of fully uncompressed json total. probably a couple hundred MB in a normalized form
I'm already caching the data, but that doesn't solve the root issue that the rate limit headers can poison other requests if you don't do it in order
I'm not over complicating this it's just inherently flawed to have rate limiting this way
two things can be true at once. truly not sure what you mean but let us know if you figure it out, would be curious to hear.
The only way to solve it is to inspect the data which violates the rate limiting layer (headers only) which should be outside the application layer (body data) and hard code this
But it's also not documented so it goes against the spec
The only way I can see the spec being correct still is if you aren't able to build your own timestamps, which I believe is implied you aren't supposed to do that, but that brings in other issues like each environment deployed has to invest days time or seed the data to come online
do you get 429'd the first time you request the current hour? or do you get a rate limit rule first? i cant remember.
the simple answer is that i assume most of us are never looking at historical data in this api so it makes zero difference. the part of your setup that seems overcomplicated is the fact you have the parallel jobs in the first place
by current hour i guess i mean most recently available
I haven't had a 429 yet, but I haven't looked at policy names, but the rule that is client gets updated to be very very low (X:X: time until next update)
The parallel jobs is kind of important to actually get the application running in the first place for me, as the application prioritizes newest data (so it can actually run with latest information) but also if a user wants to look at their own historical data I'd like to be able to retroactively look if it still exists in the API and grab it. I'm probably going to have to scrap the retroactive data if it didn't exist in my cache under the current implementation of rate limiting through
Also to be fair the current ietf proposal for rate limiting also has the same issue that poe's does, so I guess the only way to implement the logic is to hardcode that next_change_id === submitted and place it in its own bucket which is against the spec as it doesn't mention this
data isn't guaranteed to stay available in the api anyway so this entire premise isn't really sound. if your use case depends so heavily on historic data you should be storing it yourself. you keep mentioning you have a cache, you know the historic data cant change, why not just store it yourself? might be side stepping your question/concern but it does solve it and its a strictly better design.
That's the current design right now is to start from the beginning, 7 days ago and retrieve in the middle on demand
It's just the seven days ago poisons everything else
if you store the data yourself, you never need to retrieve anything from the api except the current hour.
trying to help, maybe im missing something
You're correct, but only after the entire load takes place. My actual setup (without on demand loading) is actually just two jobs that go in-order from start to end, but one of them starts at timestamp = now - 7 days and the other starts at timestamp = empty
It would still have the same poison issue without application aware logic
And I really do appreciate the conversation around this - thank you!
you and i just think differently I suppose 🙂 i actually just pulled all the historic cxapi data yesterday while migrating to a new server, took a few hours to load in every historic data point, and now i just request the next timestamp every hour. single job, no need to think about rate limits, etc
Do you know how long it took you fully? Just wondering for myself
looks like roughly 13 hours total to get caught up from the start, poe1 and poe2
20,000 requests. 7.5GB of raw response data.
You can also go from present to past if that is your concern.
guh looks like the method i was using to get a firehose of listings from POE2 trade was fixed
@velvet fog Is it possible to see which mods are included in the Phrecia event’s random map mod pool on PoEDB? It seems that some Valdo map mods are included as well, such as character size increases or the Exile hunter Einhar, in addition to regular map mods.
I couldn't find any corresponding tables for Phrecia's mods; I suspect it's server-side data and therefore not in the game file.
Ello friends, looking at interpreting .arm files. Using RePoE as a starting point https://github.com/repoe-fork/repoe/blob/master/RePoE/poe/file/arm.py#L96
Anyone know of any other resources on this format?
Repository of Path of Exile data for tool developers - repoe-fork/repoe
When I moved countries I found some printed-out ARM files with hand-written annotations and guesses to what they meant ^_^
@velvet fog The table for the three "levels" of the TotA spirits is a bit broken for level 2.
The statset level adds a new stat to the front of the list which isn't present in 1 nor 20, which doesn't have a column on your site but the value shifts the whole row right.
https://poedb.tw/us/Summon_Spirit_of_Kaom
ARMs aren't too terrible. GGG definitely has worse formats.
Actually rendering the rooms though...that hurt my brain.
I was doing some rather fun statistical analysis across the dataset of all ARM files of a particular version to divine things about the numeric fields once I had segmented them, managed to nerd-snipe a CS professor mate of mine with some fun problems.
"I already have like six papers in the pipeline, I don't need to think about this as well.... although, that's curious..."
version 32+ changes from length prefixed sequences to "-1" terminated. 🤔
but sometimes still has positive numbers? not knowing what those groups do it's hard to test, but my first hypothesis would be that a number gte 0 would be a reference to another group (for if the same data was to be used by multiple groups)
just pushed the latest version of my code - https://repoe-fork.github.io/webapp/?tab=areas&area=G4_14&game=poe2&graph=Metadata%2FTerrain%2FGallows%2FAct4%2F4_14%2FGraphs%2FPirateBay_01.dgr&room=YouAreAPirate&tile=Metadata%2FTerrain%2FGallows%2FAct4%2F4_14%2FTiles%2FFeatures%2FPier_Feature_Boat_01.tdt&roomFile=Metadata%2FTerrain%2FGallows%2FAct4%2F4_14%2FRooms%2FAvastAntivirus.arm - nothing new in https://github.com/repoe-fork/webapp/blob/develop/src/lib/arm.ts but my plan was to try and figure out tile placement before looking at the pois
Oh nice one, I'll share what I've figured out so far aswell
Heh, someone actually named a room AvastAntivirus.arm? 😄
BTW the webapp pins my CPU to 100% 😛 Get away from my bitcoins!
if l wasn't already nerdsniped by this map stuff l would be trying to figure out how to get makoru to take me there
every page?
l made so many changes in the last update it's hard to guess which one would be problematic
shaved the whole yak
Just the areas page, I'm guessing just re-rendering on a loop
ok, l see that. l'll try to figure out what l've done wrong
should be fixed now. passing a lambda to a component that wanted a stable function. sorry about that
man, replicating serverless local development environment is lowkey harder than having a working prod environment
l had a working dev environment, then l fixed an issue that only affects prod, now my dev environment doesn't work
The real question is, did you then ever have a dev environment that truly worked? 
Petter is familiar with this question
Made some decent headway on arm files, got most of the types and overall file structure down. If anyone has any insight into the meaning of the values that'd be sweet 🙂
For some reason, Excalidraw images tickle my fancy so hard.
Yeah it's really nice for this kind of stuff. Only gripe I have with it is the selection tool could use an upgrade
2 days ago it lasted for few hours, does it count
?
vibe coded CASCADE on one of the tables - o7 80% of the data 
First (incomplete) version of the skilltree: https://skilltree.lootfilter.com/
Focused mainly on performance
Heyo. Are there any good resources or open source prior work on building the POE2 passive tree in a web page?
For example, the poe2db one https://poe2db.tw/us/passive-skill-tree/ is closest to what I would want to achieve (for fun). The live code is minified ofc and I don't think they open source it (?). I kinda like that they made it with SVG elements as opposed to rendering on a canvas, although I'm not against doing it that way.
I've looked at their data.json and the one from POB, still figuring out how the "orbit" related data is transformed into the right curves. Just starting.
Anything to speed up a slow reverse engineering is appreciated 🙂

at least a dozen probably
I heckin love skill trees
and I like pathofpathing. my favourite atlas tree planner
I think the creator heckin loves skill trees
Human readible formats are such a pain to parse... So many edge cases where someone has left in an extra character while editing 😭
ai will fix this 
AI readable formats are worse for that atm and are more likely to have parsing errors, just encode it in a binary format and save space
I quickly learnt when parsing the whole historical corpus of PoE formats in the past that rigid parsing libraries that expect a "correct" structure tended to fall quite short and didn't really have good places to do fixups along the way.
Bespoke algorithms and way more piecemeal parsing worked way better, in different ways for each format.
The true spec as a reimplementer is: "whatever the actual client understands" ^_^
Postel's law
The thing that broke me was that the game's parser handled trailing doubled doublequotes, while it completely threw off my parser.
Having nested languages is fun too, or context-sensitive parsing.
Life protip - if you've got a Windows machine that somehow gets suspiciously slow and is missing some memory after spawning a lot of processes, make sure that you have drivers newer than mid 2024 for the AMD Ryzen iGPU or disable it outright.
Ask me how I know: https://bsky.app/profile/zaoo.bsky.social/post/3me5j2dra7s2t
-# ↩ Bruce Dawson (@randomascii.bsky.social)
Thanks Bruce for figuring this out.
I've been chasing some system gremlins and I regret to inform you that it's still a problem to this day.
The latest WU driver for the iGPU on my 7800X3D (ASUS mobo) dates back to Jan 2024 and it leaks.
Gonna note down some key info for other unfortunate souls.
huh, I wonder if that was part of my earlier issues
In this Developer Interview, we sat down with John Espiritu, Lead Rigging Artist at Grinding Gear Games, to find out what makes our models jiggle and jive.
@spring gyro I need to find time to clean this project up and improve some things but rendering the tree within electron and used data from pob https://github.com/juddisjudd/poe2-quest-tracker
Basics for position calculation is. group data holds the center of the circle, the nodes inside the group calculate their position based off their orbit. something like Node.X = Group.X - OrbitRadii[Node.Orbit] * sin(DegreesOrRadians[Node.Orbit]) for the shortest example. and its easier to share this to see how to tell between an arc or a line https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/blob/dev/src/Classes/PassiveTree.lua#L563
Wow, crazy.
A friend of mine wrote me about a memory problem a few months ago, he tried to investigate and ended up with the assertion that windows sleep mode is the problem and it’s not killing processes correctly as his page table grew and grew (he never shutdowns his computer, only sleep).
Then he investigated again and noticed that git is a big problem as it spawns processes for everything, especially when auto pull every x seconds is enabled.
Forwarded your link, he could reproduce as written on their blog and fixed with the update. Totally random that you wrote that here 😄
should tell you many thanks! 🙂
Sweet, happy to help!
Seems like a recurring theme whenever I mention it so there's probably a few people affected out there.
I reinstalled drivers after my CPU died and I RMAed it, I wonder if I accidentally fixed that issue
He was perplexed that there’s even a driver installed, seems like windows did that automatically
Hi guys, im not sure if this is the correct channel for technical questions, but i'll just shoot my shot.
So since last league or maybe phrecia start my poe1 needs around 30-60 seconds to load to even get to the ggg logo. usually with poe not responding. after the loading times the ggg logo finally rolls and i can log in.
im not talking about loading times in town. this is totally fine.
anyone else has this issue and knows a fix? Maybe cache related issue?
Its most likely your shaders, especially if its not responding at startup. Just delete and suffer while it rebuilds em but should work better after. Can also try running the PackCheck.exe in your poe folder if youve had it installed forever. I'd do both and if that doesnt fix it its something else like not having a ssd or antivirus or something
Thanks, ill try both
Shaders folder was the culprit, runs like a baby now. thanks again ❤️
I added bloodlines: https://skilltree.lootfilter.com/
Interactive Path of Exile skill tree planner. Browse nodes, allocate points, and explore mastery effects.
reviewing all of this is going to be a massive slog
me rn
hey as long as its green surely all is well
Step 1, install volkswagen
Step 2, lie about your carbon emissions
Welp I've been nerd sniped. Specs added for: .arm, .tsi, .gt, .et, .gft, .ddt, .rs, .ao files. https://github.com/adamthedash/poe_data_tools
Parser & export to json there aswell
@tall oyster @brittle oasis cheers for the replies, very helpful ❤️
Skill tree art made me think of this, instant nostalgia hit: https://www.youtube.com/watch?v=KheYW_G0goY
Operating-System: Windows 3.1 / 95 / 98 / 2000 / XP
Screensaver: Starfield
Settings:
- Warp speed: 50%
- Number of stars: 200
Windows 3.1 Basic Screensavers:
-
Starfield
https://youtu.be/KheYW_G0goY -
Flying Windows
https://youtu.be/9ps3wngQspE -
Marquee
https://youtu.be/vmMQWx2_AmI -
Bezier
https://youtu.be/3SEBEh_t5K8
…
In case anyone is also wondering about that, HASH16 seems to be calculated from HASH32 (which is a Murmur2Hash using the seed 0xC58F1A7B) using xor folding.
private static ushort XORFold(uint value)
{
return (ushort) (value ^ (value >> 16));
}
I've been trying to figure out what method GGG uses to transform the seed of timeless jewels in PoE2 (it somehow incorporates the jewel socket in which the jewel is socketed) but I've had no luck so far. Tried some of GGG's favorite hashing functions like MurmurHash and FNV, but I guess they really don't want people to make a calculator for that again in PoE2 (hence the local_unique_jewel_break_timeless_jewel_calculators name for the local stat that holds the transformed seed).
One of my failed attempts 😅
GGG uses a server side function to scramble the seeds at one point in the process so unless you can luck into whatever function they're using, we won't be able to figure out the jewels for PoE 2
Yeah, I know. We talked about that 😄
I'm essentially trying to guess the function
But I've tried so many different combinations of inputs, hashing functions, etc. by now that I'm suspecting GGG is using some kind of salt in addition to the obvious inputs like the seed and something jewel socket related which would make this completely infeasable.
Which would be really sad because figuring out the way timeless jewels worked in PoE1 was a lot of fun with you in 2022
Yeah, I was surprised GGG made the change for PoE 2. Maybe one day they'll let us know the secret
What is the best way to acquire the latest passive skill tree assets for poe2? ggpk.exposed is not working. I am assuming you are allowed to acquire them from somewhere?
"not working"? any game data viewer will work, or you can borrow from a consumer like PoB2
Poe data tools (a few messages up) has tree export to json if that's what you mean
I was looking for the image assets. The data assets I found. But thank you for pointing me in the right direction.
Export images to webp or PNG
Thank you!
Any rust andy's have opinions on parser libaries? Been using nom up till now, and I'm loving the declaritive/combinator style. But I'm running up against headaches when implementing custom parser, particularly with error propagation & combining multiple input types with combinators
I have added a first version of the poe2 skilltree, Slightly different render strat because of the size, Least happy with initial load caused by portraits. https://skilltree.lootfilter.com/
Interactive Path of Exile skill tree planner. Browse nodes, allocate points, and explore mastery effects.
The joy of CI 😄 https://github.com/microsoft/vcpkg-tool/pull/1662
I greatly improved quality and performance of the poe2 tree https://skilltree.lootfilter.com/ .
Interactive Path of Exile skill tree planner. Browse nodes, allocate points, and explore mastery effects.
@hushed relic would it be possible to add #lastUpdate:<timestamp> to standalone generated filter files just like online filters have for consistency?
I'm looking to populate my currency exchange database and pulling all of the data via the api via next id would take a while and would be nice to avoid if possible.
Are there any options for currency exchange data dumps outside of poeninja that are closer to the original format made available by the api which include volume data proper exchange pairs as opposed to a very selected subset of data transformed to chaos rates?
unlikely
Is there any published data on API response metering? I've noticed that even if you obey the ratelimits as dictated by headers, the API takes a lot longer to respond.
Presumably these are not documented and people just work around 'em?
Not quite sure what you're asking about there. In the past when I pulled from the river some endpoints had a fair bit of cost to them time-wise to get the first bytes and the whole payload, assumedly from actual backend/cache costs.
Techniques then was to ensure that you could prepare and pipeline the next response from the first bytes with the next ID to try to reach the maximum throughput dictated by rate limits.
Geographic location could influence API traffic too.
If the endpoints you use cannot serve data at the rate that the rate limits dictate, not much you can do about that.
Are there any particular ones that you believe perform poorly in some way?
cxapi allows you to specify a particular date and time period to fetch; the next id is the Unix timestamp for that hour.
Yes I'm aware. If you start from 0, you're starting at the very head.
What I noted is I hit the ratelimit with requests taking <1s to resolve, and then they began taking far longer to resolve (multiple seconds) for the next while, with no obvious change to the relevant headers.
Maybe the "a while to resolve" is the standard behaviour for /currency-exchange.
I'll put together some more sensible information once I get a few more features finished.
The CXAPI rate limit should be 10:60:60, meaning you can fetch 10 times within 60 seconds, and it resets at the 0th second of every 60 seconds. While adhering to the header's rate limit, simultaneously resetting the time using a local record can significantly reduce the chance of exceeding the rate limit.
I exceeded the limit a handful of times accidentally before I was handling it appropriately, but since then I have been careful to avoid doing so.
nowadays next change id is also in the headers, so those shenanigans are no longer needed as long as your http client has the option to complete the request when headers are received and stream the rest of the content later
Oh right, shows how long it was since I did psapi - well before even OAuth.
Turns out it was a massive skill issue on my part. I mistakenly made assumptions about my api client's performance (:
I've since fixed it.
classic
I updated https://skilltree.lootfilter.com/poe2 with a lot of new things including support for weapon sets and the oracle ascendancy nodes. If I missed anything, or if you have any other feedback, pls let me know.
Interactive Path of Exile skill tree planner. Browse nodes, allocate points, and explore mastery effects.
I have mostly functional ratelimit logic, but a very small fraction of the time it fails.
I'm presently waiting window + 5 - time since first query of ratelimit window seconds from when i reach the hit limit.
Seems to only fail if the time since the start of the ratelimit window was a "long" time and then the following requests are sufficiently faster.
Alternatively, they always nearly are right near a minute boundary. 🤷
I sometimes also get ratelimit resets in the middle of a set of requests, which is strange.
Probably would be better to just drop the subtraction term, but it's somewhere in the ballpark of 2% of times where i reach the permitted hit count.
When that occurs, I also back off really hard and blindly obey the retry-after header.
Between rarity of it occurring and the backoff, probably good enough.
Just back off when you hit a rate limit. It is not a deadly sin when you hit it.
it is
On the trade API you don't want to actually hit it though because you get benched for 30 minutes.
zao i love you for telling me about renderdoc. i also hate you at the same time, i shouldov just kept things simple fml
Good tool to have in your arsenal regardless of what you make, being able to check in at actual render state is golden. Especially good is if you name your objects and use the annotation APIs to name/colour scopes and emit events.
Did some simple rendering for a course I was taking, renderdoc was a great tool to find out which stupid mistake I was making 🫣 but at that point, code was still simple enough to just find most stuff through some more thorough reading of the code and APIs
hi, does anyone know which file the Genesis Tree data is found, maybe via repoe fork or snosme viewer
or would it suffice to just use the PoeDB scraped html since its fairly small data
/metadata/leagueskillgraphs/chayulatreepassiveskillgraph.psg
ok
so its only the visual orbits nodes etc, was lookin for the actual modifier data like "reduced attributes" "increased attack" etc
EquipmentNode14 might be linked to another db
Look at the brequel dat files
ahh k
I worked out some of the tables that I don’t think got a spec on poedatviewer so you might need to map some of them
i have perused those but defining the columns i cant figure it
yea i got a few integers but the rest are a mystery
Which dat is that. I’ll check
brequelitemresourcevalues. i assume that might be the correct 1
unless one of these might be more fitting
brequelpassivesubtrees?
Brequel resource values was for base graft blood costs and the ilvl or character level associated with them
ohk
passivesubtrees links to something else it seems. but it looks like the correct breakdown of info
Ahh I worked out all the tables and then thought that someone else had worked them out too but it was just my local copy that was cached
I'll post the spec of them all, gimme a sec
hehe yea i been lookin high n low for what 7948 is
in mods dat etc
going by your worked out data, that still isnt the actual mod data for the nodes on tree 🙁
type brequelencounterskills {
Id: string
_: rid
Description: string
Art: string
_: i32
_: i32
_: i32
_: i32
_: i32
}
type brequelfruitquests {
_: i32
_: i32
_: i32
TreeGraftbloodRequired: i32
_: i32
_: i32
}
type brequelfruitrewardtypes {
Id: string
Name: string
Description: string
ReminderPC: string
ReminderConsole: string
_: [rid]
_: [i32]
AchievementSoftcore: AchievementItems
AchievementRuthless: AchievementItems
}
type brequelfruittypes {
Id: baseitemtypes
RewardType: brequelfruitrewardtypes
PercentCostMultiplier: i32
_: i32
_: rid
}
type brequelgraftgrantedskilllevels {
Area Level: i32
Skill Level: i32
Required Level: i32
}
type brequelgraftinventorylayout {
Id: inventories
QuestFlag: questflags
_: i32
}
type brequelgraftskillstats {
GraftStat: Stats
PlayerStat: Stats
}
type brequelgrafttypes {
BaseType: baseitemtypes
LeftArmAnimatedObject: string
RightArmAnimatedObject: string
SkillGem: SkillGems
_: i32
AIScript: string
AchievementItems: AchievementItems
}
type brequelitemresourcevalues {
FleshgraftLevel: i32
GraftbloodStorage: i32
BaseGraftbloodCost: i32
}
type brequellockerlayout {
Id: string
_: i32
_: i32
_: i32
ItemClass: ItemClasses
Name: string
}
type brequelpassivesubtrees {
Id: string
RewardStringSingle: ClientStrings
RewardStringMultiple: ClientStrings
BaseItemType: baseitemtypes
}
type brequeltreeslots {
TreeStartNode: passiveskills
RewardType: brequelfruitrewardtypes
}
If you want to fully contruct the tree you'll need the psg, the treeslots dat and the links to PassiveSkills.dat in the psg
thats the one most likely that im looking for PassiveSkills.dat
lemme check it out
100%
thank you for checking against your data
mods vs passives 😒
and thanks for Pob 😄
Np. Happy to help
put masteries! idc how long it takes my pc to calculate 😄 haha jk ive asked for masteries to be in Power Report
i do use the hover method tho, it shows the dps etc increase
holy shit, they seem to have added the unidentified item tier to the copied item info recently! don't think i've seen this in any patch notes? i imagine others will also be interested in this (for exiled exchange @civic crane ?)
TL;DR
Build cross-platform desktop applications with TypeScript that are incredibly small and blazingly fast. Electrobun combines the power of native bindings with Bun's runtime for unprecedented performance.
✓ Native bindings written in C++, ObjC, and Zig
✓ Bun as backend runtime and bundler
✓ System's native webview as renderer, CEF Optional
✓ Custom bsdiff-based update mechanism
✓ Cross-platform: macOS, Windows, Linux
Oh, yeah. 0.4.0e fixed desecrated and fractured, and also snuck in unid tier.
Now supported on poe2filter.com 🙂

looks cool
Used this but I also just use bun already with electron forge and the vite plug-in, didn't really see much of a benefit from the project personally
Terrain generator is coming along slowly but surely. Marauder for scale.
It can pull assets from both games, leading to awkward encounters like this (the file name for Ashar is shakariremake):
Her vs the Shakari he told you not to worry about
Anyone know how to filter poe.ninja API results by confidence level? I was trying to build a python tool using gem prices but some are way off.
As an example what in this indicates that the price is low confidence:
{'id': 110066, 'name': 'Bear Trap of Skewers', 'icon': 'https://web.poecdn.com/gen/image/WzMwLDE0LHsiZiI6IjJESXRlbXMvR2Vtcy9CZWFyVHJhcCIsInciOjEsImgiOjEsInNjYWxlIjoxLCJnZCI6OX1d/e71db24214/BearTrap.png', 'levelRequired': 4, 'baseType': 'Bear Trap of Skewers', 'variant': '1', 'itemClass': 4, 'sparkLine': {'totalChange': 0, 'data': []}, 'lowConfidenceSparkLine': {'totalChange': 56.25, 'data': [0, 0, 6.25, 9.38, 12.5, 12.5, 56.25]}, 'implicitModifiers': [], 'explicitModifiers': [{'text': 'Deals (8-604) to (11-846) Physical Damage', 'optional': False}, {'text': 'Traps do not Trigger at the end of their Duration', 'optional': False}, {'text': 'Trap lasts 4 seconds', 'optional': False}, {'text': 'Locks enemy in place', 'optional': False}, {'text': 'Killing Blows cause Impales on Enemies to Reflect Damage to surrounding Enemies', 'optional': False}, {'text': '(100-230)% increased Impale Effect', 'optional': False}, {'text': 'Impale Enemies on Hit', 'optional': False}], 'mutatedModifiers': [], 'flavourText': '', 'gemLevel': 1, 'chaosValue': 100.0, 'exaltedValue': 7.12, 'divineValue': 0.59, 'count': 3, 'detailsId': 'bear-trap-of-skewers-1', 'tradeInfo': [], 'tradeFilter': {'query': {'type': {'option': 'Bear Trap', 'discriminator': 'alt_x'}, 'filters': {'misc_filters': {'filters': {'gem_level': {'min': 1}}}}}}, 'listingCount': 169}
best I can tell is that data is empty in sparkLine but I'm not sure that is perfect. Moreover, if I also want to filter medium confidence prices I don't know where to look for that.
count or listingCount probably, just compare the values in those fields to what shows on the site. or choose your own number to filter off of
I considered listing count but confidence level on the website does not seem well correlated with the number of listings.
I'm not sure what count is referring to since it's not the number of listings. I'll look into that.
Was gonna suggest reading the source but apparently the web loves minification these days 😄
There's functions that determine it at least.
for psapi things like gems, poeninja is going to be taking into account more items than are on trade at any given time (a service that consumes psapi or cxapi is going to have a different view of what's available at any given instant on the trade site or the currency exchange)
I'm not very experienced with this API stuff. I'll google some of that but are you both saying that the information I want (confidence level) is not returned by my very basic API call?
gem_data = gem_response.json()
gemInfo = gem_data["lines"]```
both the trade website and poeninja both have a dataset of all items in all public tabs (with the trade site getting changes slightly faster), they then take that dataset and distill it down to the data you see on the trade site or on poeninja
through a secret algorithm poeninja takes current listings, listings in the last x hours, maybe price trend, some safeguards etc and distills that to a singular price estimate
Ok. That makes sense. I'm still unsure on how or if I can get the information I want. The ninja website displays a confidence in the calculated pricing, either low in which case it is hidden by default, medium in which case there is a yellow ! next to the price, and high in which case nothing is indicated. However, when I call the ninja API as above I get a bunch of information including the calculated price but I don't see the price confidence. I was asking if that confidence information is in my API call and I just don't understand how it is presented or if there is a different thing I can do to get that info from poe.ninja. I think zao was suggesting I scrape the webpage directly?
Nah, didn't suggest that.
The site is powered by the same endpoints so it has to be deducing something from that data.
lowConfidenceSparkLine?
Using eyes to read "source code" might reveal how it determines that; like the functions that check if some state is <5 or <10.
Or, I guess, ask humans.
I assume this is only included for low confidence and not all results?
It is in all results
Low confidence results seem to have an empty sparkLine
Thanks! This has been helpful.
you could ask Rasmuskl questions directly on the poeninja discord, I don't think he reads here often
the API is generally not to hard to figure out
I'll try that. I asked here first since that discord seemed pretty low activity.
let r = L.lines,
M;
t[19] !== l ? (M = n => l || n.count >= 5, t[19] = l, t[20] = M) : M = t[20],
r = r.filter(M),
m = i.filter(r),
looks like low conf is just if a line has less than 5 for count field, from stepping through this portion
low activity is a poor metric when you're on the author's discord
That’s a good point.
Could you explain what you are stepping through? I assume that is code used for the website? How can I see that?
the page javascript presumably, open the developer console when you're on the page
yeah just the browser dev tools then the debugger tab(sources i think for chrome). will take some knowledge of how to use a debugger and how js works.
super simplified version of how to find it was toggling something that would run code i may care about, clicking the show low confidence checkbox in this case, then just putting break points in the debugger where I think there was a code path i care about, and stepping around until you find what you want
Thanks
What do you think — should I keep this to myself, or could it be useful to someone else? It checks prices from poe.ninja, web panels are pages from poe.wiki with the infobox-page-container section extracted.
One more important thing: it simulates copying in the simplest way possible: SendKeys.SendWait("^c");
Don’t ask why I wrote a whole program instead of just using a few regexes. I guess it’s been too long since I last built anything. I’m just a casual dev 🙂
Answer will always be share it! Always good to have more cool stuff even if it's just used as reference by someone down the line 🙂
is this open source ?
https://github.com/adamthedash/poe_data_tools
Added specs & parsing support for:
.mat - Materials file
.mtd - Materials list
.tst - Tile sets
.clt - Critters
.epk - Effect Pack
.amd - Animation Metadata
I haven't uploaded the code anywhere, no.
I did NOT expect a simple "just read opened cards from stacked decks through client.txt" to be that extensive only on the backend side
unit/e2e tests:
Test Files 72 passed (72)
Tests 3637 passed (3637)
supabase tests:
Files=5, Tests=181
Result: PASS
db tests:
ok | 157 passed | 0 failed (577ms)
are the default colours for dropped item's labels anywhere in the files?
I know there's a default item filter, I mean when it's set to None e.g.
I added support for PoB import/export (under share). https://skilltree.lootfilter.com/poe2/
Been working on this for a hot minute if it's useful to anyone https://github.com/alecrivet/poe-optimizer
Helped me repath for some extra ehp later in the league during keepers, currently implementing damage optimization for main skill supports
https://github.com/navali-creations/soothsayer
stacked deck tracker has been live for a while but I've decided to share it on reddit now
spoiler: it most likely doesn't but you never know!
historically opening stacked decks has been found to be almost always profitable, but it does depend on the market somewhat of course
and only over very large amounts, to minimize variance of course
Yeah, the first month of the league there is no way you can lose money - afterwards it's hit or miss
ideally you would probably calculate returns based on output price whenever possible, since pricing cards is very unreliable
Yaaa I will probably adjust it sometime mid-league after new one launches to see how that market behaves early in the league
Right now there are so many cards that are extremely common but tend to be priced at multi-div mark because there is no supply (and also no demand but such is life of live exchange)
https://github.com/adamthedash/poe_data_tools
Some more format support:
.pet- Particle Effects (partial).trl- Trail Effects (partial).dlp- Dynamic doodads.cht- Chest Data.dct- Decals.toy- Overlays.tmo- Tile Material Overrides.gcf- Ground Tile Combinations
All the plaintext file formats downstream of the WorldAreas DAT, so anyone working on hideout viewers / 3D stuff, might be useful to ya! ^^
Binary format fun next 🙂
Hey, can someone explain mod exclusivity on items to me?
It seems like its not enough to check "ModFamily"/"ModType" , at least when also adding descecrated mods into the mix. E.g. local attackspeed should not be able to spawn together with the amanamu mod that grants local AS/companion AS, right(!?).
that's usually correct yeah, there's specific circumstances in poe1 where mods can appear on prefixes and suffixes
you likely want to check the stat given from the mod instead, I haven't tried doing that kind of logic myself though so someone else may be able to chime in
What puzzles me is that increased phys and hybrid phys can coexist while inc AS cannot coexist with the mentioned amanamu mod.
Haven't found anything in the data that supports that kind of logic
no idea what amanamu mod is but mods spawned by special means generally dont contain much data on the client side
It's a descecrated mod, they have the same data like all the base mods
I guess it's very similar to the logic around bench crafts and unveiled mods in PoE 1
After import and export of POB I now also added the ability to compare skill trees: https://skilltree.lootfilter.com/poe2
Hey everyone! I’ve been working on a project called Path of Codex and I’ve just reached a major milestone in automated PoE2 stat calculation (no manual PoB code import needed).
I’d love to get some technical feedback on my Oracle engine, which is divided into three main data-processing layers:
Oracle Journal: Handles state persistence and snapshotting to track build evolution over time.
Oracle Verdict: A heuristic analysis engine that identifies build archetypes and calculates optimization suggestions based on current scaling.
Oracle Insights (Compare): A side-by-side comparison logic that identifies deltas between two different build datasets.
My main challenge has been maintaining data fidelity with PoB while running these automated analyses. If any fellow devs have a moment to check the accuracy or the logic behind these modules, I’d really appreciate the insight!
Check it out here: https://pathofcodex.com
Might need to fix some translations:
Hi all, I've been working on a POE2 tool that helps you track your performance in maps. It's still very early and the tracking is fairly manual, but I'd love to get some feedback to iron out the direction.
You should compress the homepage background image - 6mb is crazy
Noted. Thanks for the tip, I'll adjust it. I just used the original quality I found
use it to stop people with really bad internet from using your tool
I'm sorry, could you share the POB code you tried to import via DM so I can analyze the error? The message is correct now; I was trying to make the site available in three languages but kept it in English only.
Thank you for the feedback.
Sure, the code was: 😃
@velvet fog https://poedb.tw/us/Screams_of_the_Desiccated#ScreamsoftheDesiccated
What is the source of the statement, “It rolls one offensive and one defensive shrine”? Was this mentioned in a ZiggyD Q&A?
path of exile is simply a tool to test your path of building creation
In the Zizaran chat channel, during a streaming session, a ggg dev answered this question.
cleaning up my drives and i found some psapi responses from metamorph 👴🏻
I had an idea of writing an app that would ingest the public stash api and building out a vector database that AI could use to look for items that are consistently priced below value and have potential for flipping.
My question is, is the public stash api going to be sticking around for the foreseeable future and is there any chance of it making its way to poe2 as well? Don’t really want to invest the effort if it’s gonna be phased out.
dont see why they would remove it from poe1. whether it will be added to poe2 or not isnt confirmed either way
you're not going to get an answer, especially for the second
but there's no way it goes anywhere
seems like a difficult idea to make useful also, priced below what value?
currency exchange api exists for poe2 so i doubt they changed how they feel about apis in general. i would expect psapi for poe2 at some point. given that psapi still gets updated for poe1 i doubt they will deprecate it
High variance, std deviation. The hard part is determining what is actually sold vs taken down.
I just want a project to get some experience with postgres and want to somehow tie it into poe
i dont think you can determine what is actaully sold vs taken down
you can't technically, but you can make some educated guesses which is I assume what they mean
@zenith zodiac huge thanks for keeping the repoe-fork up! 😁
Currently working on implementing localization for poe.re, and repoe is super nice to work with!
out traveling/vacation so I'll see how much time I get to work on this before the league, hopefully I'll have the pipeline/skeleton ready for the league
I am on Fedora i launch the app and then i try to hit Shift + Space to see the settings and it never opens i can tell the app is open via the system monitor then my cursor goes black(like i am not tabbed into the game) and lags for a while til it finally tabs into the game
running the game via team if that helps
this is not a support channel
Oh sorry it was said to ask in this channel on one of the github threads is their a different channel?
they probably shouldn't do that, but you didn't even say what app it is
awakened poe trade sorry
I fixed it Problem with Wayland security
Thanks! It looks like it has not... strange hmmm
Are you seeing something not expected? Or just lack of something expected? 😄
Imbuing Gem
yay i shipped a thing https://www.chaos-recipe.com/ (as well as 3.28 patch update for my app)
framer motion is so magical
is it intentional that the website preview is the yt video thumbnail?
I didn’t feel like updating the OG image lmfao yes I’m fine with it for now
still can't set filter sounds, dang
I’ll see if I can squeeze it in lol I need tokens 
feel free to copy the filterblade UI
though that UI will need to change a little when CustomSoundOptional support is added (which you don't have to worry about anyway with your use case)
😆
Need to do a pass on TODOS and remove those lmaooo
Do we know the weightings of the different Rog crafting offers in PoE 1?
probably more of a Prohibited Library question
So there's no .dat file with those then?
seems incredibly unlikely
Do you think we’ll ever get spectre names or minion counts in the character api at some point?
Or something to denote if an aura / buff is actually activated on a character?
This is live in the docs now 😄
i got custom sounds working! ux is a little fuzzy since you need a full filter reload so thinking of doing like a separate save button not on the set tracker hehe. shoutout to neversink for the sounds
feature parity with filterblade btw so you have the normal sounds from game and also full custom sounds as you wish
really went overboard, nice
I think the available offers are in expeditiondeals.datc64, but sadly contain no weight information. just for info
passive skill tree json when?
anyone else seeing lag on stash apis? should have updated on relog/rezone but seeing stale data from my api calls and also on poe site
wouldn't be surprised if servers were under a bit of strain at the moment
with migration jobs kickin' ye figured. time to snooze i guess hehe
optimizing Core Web Vitals is my passion
@mint karma I think there are a bug in the support gem selections it has Elemental Projectiles it shuold probably be Elemental Proliferation
Approved only if you wrote the website in C and used WASM
600ms paint, gods.
Timescales really get weird when you do soft realtime.
Watched a talk at $oldjob where someone presented a chart of how quick their cloud orchestration could spin up some convoluted test case.
Their results were something like 20-30 units of unlabelled time.
My thoughts: 20-30s seems a bit long, but sure, there's VMs and stuff.
It was 20-30 minutes.
Also read some nice computer graphics paper on implementing glitter via microfacets, looked really nice in the screenshots and demonstration videos; read and tried to understood the math.
Appendix with performance figures had frame times withdozens of seconds 
In my previous job we had a local development that was spinning from 10-20min but that was only frontend part (as we used contentful so no "real" backend"
Glad vite is a thing because webpack is pure dogshit from DX perspective, never again
And that was on 32gb intel mac so not some HR hp 12gb ram where 10gb of ram is used by surveillance tools "powerful" laptop (oddly specific, couldn't be me with current job)
vite is great
we've talked about this multiple times, stop bullying the underlings :p
Hire LocalIdentity, let him make the change and then watch him leave the company
PoB is already a poaching ground
I'm fragile
https://github.com/grindinggear/skilltree-export/releases/tag/3.28.0
https://github.com/grindinggear/atlastree-export/releases/tag/3.28.0
(now with bonus larger spritesheets for... reasons)
im looking through repoe and wanted to see if there was a better way to do what i was doing
im currently translating the currency ids from the currency exchange and this is the planned path:
split market_id by | to get the two currency ids
utilize the https://www.pathofexile.com/api/trade/data/static data to translate id -> name
utilize repoe to find the key in https://repoe-fork.github.io/base_items.min.json
utilize translated repoe files from that key
is this the best way or is there another way to do this?
is there really not an exceptional gem tag so filters don't need to hide/show by name
oh well guess neversink will deal with it not me anyways 
i love that person
not a problem for FilterBlade; FilterBlade is tiering exceptional gems anyway
transfigured/tarathus gems are the pain point

made a cool little graph so far in step 1 of my master plan...
i love scrolling through channels and finding incredibly useful tidbits (ty for id enumeration)
Added a small diff viewer if you want to see 3.28 changes
Passive changes: https://poe.ninja/poe1/tree-version-history
Atlas changes: https://poe.ninja/poe1/tree-version-history?type=atlas
now we're in a world of microvms / sandboxes for agentic workloads. fighting for sub-100ms (even sub 50ms) spin-up time on these ephemeral compute instances. world of computing is heavily evolving
it's absolutely facinating seeing the engineers working on our sandbox offering shave off 50-100ms at a time on our goal to reach those speeds. tryna make it the fastest sandbox on the market
Yeah, love when default firecracker with 150ms was called fast 😄
you should do one for gems too since ggg has apparently never seen a diff, nor heard of "before and after" 😉 (referring to their weird forum post layout since forever)
atlas diffs appear to have either some false positives or be diffing and marking unsurfaced non-obvious information
mostly small passives, ie the smalls up to the treasure hunt notable
pretty common on small passives on wheels leading to notables in general
True. Let me see what is actually changed about those. I do compare a few things that are not visible.
Thanks. I'll look in to it and regenerate the gem list.
They were actually changed. They were renamed from Delve Mission Chance -> Delve Chance. But I've excluded rename only changes from highlight now. Will show them in a seperate section later. Thanks for the heads up.
i'd say displaying name/position diffs as well would be nice, although only show positions contextually if you are interested in it being a data-diff tool moreso than player friendly
otherwise i'd agree to hide non-tooltip-body diffs
Name changes are visible if you hover the node but not highlighted if nothing else changed. Position changes are more tricky. If I do raw coordinates everything will have moved so it needs to be a bit more elaborate. Probably just based on connections or perhaps coordinates with a threshold.
is there a way to export pilfering ring data via API?
you can do it with a screenshot, even default Windows Snip Tool can probably do it
Huh?
are you familiar with the "diff" command?
(old data btw)
my interpretation is that diffs show "old" -> "new", whereas the gems changes forum post shows "new" -> "old"
@exotic egret sorry, i'm not really sure what you're asking, does that help? ^
another diff example (from 11 years ago):
"old" is first (left to right) -> "new"
I know what diffs are. I just assumed you were saying the gem post doesn't show diffs, when it does
ok, but the post doesn't use any kind of "standard" diff layout though?
Sure. I'd argue the average person is not familiar with a side-by-side diff though and that would just be more complicated
i'm not advocating for side-by-side, that was just as an example of "old" -> "new" which seems like the natural order of "before and after"
wheras this, to me, looks like "after and before":
By default only the new information is shown, which is probably relevant to most
Anyway, I'm sorry I misunderstood, I thought you were saying we were missing a diff somewhere
sorry i didn't explain better 🙂
Does the diff help you in some way? We can probably provide a gist diff if you really want in the future
ooh yes, that would be excellent! i have in the past tried to make gists like that, but it's tricky using copy-pasted forum posts and notepad++ regexes 😉
On ordering, if you look at patch notes they tend to be on the format of now blah (previously bleh).
yes, which is also backwards to my mind
Core purpose tends to be what they're now, and a reminder of what they used to be if you care.
yep, but that seems odd to me, as there's no basis for comparison
How do you get search query object from search url?
i.e. mZYLMS6 => { stats: { filters: ... } }
is there a proper way to see if a stashtab is remove only in the api? i can only see the name lol and idk if that changes based on language of client
just the text suffix for now, though it is hardcoded as English
When i scroll, it barely moves; gawd damn the ai is ddosing me
Creating a feature in a day only to code review for the next year
I'm sure this is asked often, but any chance we are going to get merchant tab history/info in the API?
in OAuth? Probably has to wait until the rest of trade also gets OAuth support
you can view your own history via the trade site at the moment
is that actually planned to give trade oauth stuff?!
Can you pull down other user's history somehow? What if I had someone's POESESSID ?
you shouldn't have someone's POESESSID :)
yeah at some point, with the consequence that guest access will be removed
ofc, I'm just looking for a way to look at trade history - im sure this isnt a new idea but if we can pull successful trades we can do a lot with that data
is there a way to get anyone's trades? outside of yourself lol
with OAuth in the future it sounds like
lol, thanks guys
this is the first time i made a "real" website interfacing with an external api that ha real purpose and it all just finally came together today and it feels so cool to accomplish that
posting that to say thank u ggg and api devs
torrent downloaded completely in 2 hours, the fastest I've ever done.
569.69 gigs seeded thus far for me, quite nice.
yeah the torrent was good today, tis a good omen
holy.accountant TLD 😄
we need river2 for all successful trades
holy pathofexile second-level domain - my man is not afraid of legal 😄
Might be the wrong place to ask, but does anyone have any WSAD tooling/scripts for PoE1?
I'm willing to take the associated risks
I tried doing some AHK stuff for movement, but it wasn't perfect.
(That's all I want, no automation, nothing else)
definitely sounds against tos so doubt anyone would help you here
just get a pad, thats like halfway there to wasd like gameplay
I have one but there's no way to mix controller/mouse inputs sadly
(TOS also isn't clear about what's allowed/isn't - they don't allow automation, but they allow 1 action per 1 input).
(So holding W = Walk up may (or may not) be interpreted as 1 input)
Yeah I realized that so I got poe.ac and was going to switch to that lol
Thanks - gave that a spin but it didn't seem to work properly, and I see it's not had updates for a while.
I'll try it again tonight 🫡
tos is vague by design
anyone have any info about the last Sony Playstation patch earlier, that we cant login to the game, it says "there is a patch that needs to be applied" AFTER we applied that patch
realms are still down.
Check site, it has more info
(should be 5 mins till servers are back, 3 hours till mirage is launched)
Interesting. Looks like AO files have been upgraded to v3 and all AOC files have been removed.
Same with OT/OTC files.
At a quick glance, it looks like they merged the data into one file and nothing was removed. Will have to verify that though.
IT/ITC as well.
@velvet fog https://poedb.tw/us/NPCs I know you’re busy, but could you please update the NPC dialogue as well?
path of exile is simply a tool to test your path of building creation
Gotta get those spoilers 😆
just noticed the new "online in league" option on trade site while updating my tool, does anybody know the logic behind it vs just "online"? I thought site considered it per-league by default
this is a coming back feature. it was useful on standard to not to whisper people who play on league. why it was not per-league at first? well people were actually ok to log into std to sell say 40d item xd
makes sense, thanks 😄
is Metadata/AtlasSkillGraphs/AtlasSkillGraphCurrentLeague.psg not the correct tree?
Yeah, I was just coming here to see if this was happening to anyone else as well.
ok so CurrentLeague is in fact not the current league 🤔
Damn - no info about the stashtabs within the map stash anymore 🙁
it should be identical to the standard one this league
it's on the list 🤞
https://poecodex.com/ has been updated for mirage!
@velvet fog https://poedb.tw/us/Exceptional
Could you add flavor text to Exceptional Gem?
added
added
Atlas of Worlds Map
https://poedb.tw/us/Atlas_of_Worlds
@velvet fog Click Enlarge, resize window, 
Also in Enlarged mode, the ads obscure the sides:
Sorry to keep asking, but could you also apply the updates to languages other than US?
added
@neon plume have you looked at updating the timeless jewel calendar for the new jewel?
New jewel can add negative stats to some notables and that currently breaks our lut exporter and I don’t have a way to confirm if my changes are correct or not as I can’t buy a jewel in game to test yet
Found a fix but now there are more than 256 replacement / addition mods so our nice 1 byte encoded LuT no longer works 😢
fixed
@velvet fog Inconsistent menu item casing:
The Enlarge button seems to do nothing when clicked now in my Firefox, nothing in the console. Edit: also nothing in Edge or Chrome.
should be worked
Had to force reload the page, has an event handler now and opens up.
Fullscreen mode has a scroll bar and needs manually scrolling the bar to see the bottom voidstone extra areas. Scrolling on the map just zooms in and out.
dragable
Would it be possible (or maybe it's already been done) to make an interactive campaign assistant overlay? It would tell where to go and what needs to be done, act after act. Could be assisting with build and item/gem choice
Thanks
is the timeless jewel seed algorithm publicized somewhere?
I can only find data dumps of what I assume the algorithm outputs
found it
the updated one
https://github.com/Regisle/TimelessJewelData/tree/Generator
POE timeless jewel data binaries created from new export tools - Regisle/TimelessJewelData
thanks
@velvet fog
https://poedb.tw/us/Nameless_Astrolabe
Is there a page that lists the mods added by Astrolabe?
https://poedb.tw/us/NPCs
Also, this page is currently updated only for TW, CN, and US. I would appreciate it if the updates could be applied to other languages as well. (KR, JP, RU, PO, TH, FR, DE, ES)
path of exile is simply a tool to test your path of building creation
path of exile is simply a tool to test your path of building creation
https://poedb.tw/us/Astrolabe#AstrolabeModifiers
not yet confirmed whether this is the correct list.
path of exile is simply a tool to test your path of building creation
affixes are still not displayed correctly
PoB update out now with support for the new tree, skill, runegrafts and timeless jewel
No imbued support yet as it's proving to be difficult to implement
Hi!
I need to get item mods, items, and other data related to items to make an app.
But where do I get this data?
Is https://github.com/brather1ng/RePoE outdated? Where can I get up-to-date data?
I'm a noob, please help.
anyone grabbing the public stashes from the API and could tell me at what next_change_id Keepers started?
hmm Keepers? All of the stashes since then will have been unpubliced from the standard merge so hard to find
yep unfortunately beyond our log retention
3047361752-2988787889-2913372319-3248177543-3139899952 is the first public stash tab API change id for Mirage
surprised my parser didn't blow up with this anomaly spacing
I guess this makes Inya's design choices slightly more justifiable 😄
https://maholick.com/blog/minio-is-dead-the-end-of-an-era-in-open-source-object-storage
(tried storing all my objects in minio first, didn't work well so I went for making Postgres chug instead)
hey guys before I try to dust off my old stash parsing code, does anyone know if the merchant tabs are part of the stash streaming API?
it shot my CPU up to 100% and crashed my entire browser the second I tried to use a filter
@frank drift in case you have missed it,
there is a new vendor recipe that converts harbinger uniques into fracturing shards, and FilterBlade hides some of them.
https://www.reddit.com/r/pathofexile/comments/1rpmr8d/new_vendor_recipe_fracturing_shard/
Glad there are good alternatives - so far Garage is quite nice
yes NeverSink has been aware
of course FilterBlade is going to hide uniques that are worthless on poeninja
I don't know what people want
answering my own question it looks like it does, and it seems its "stashType": "TradeStash". I'll look some more
@compact isle No astrolabes in bulk trade?
next patch
Hi guys, I’m a complete noob in poe and haven’t played for a while, but the last time i did i spent more time rewriting the entire system to c++ to decide which item is better for my build than actually playing the game and using the item, so if some project is open for n00bs and looking for a dev I would probably have a good time working with you (I was usually working on devtools/shaders/math stuff, although in current times it no longer really matters xd)
can't search Map Reward for Valdo Map in trade site
Anyone got a list of the new generated rare map names? Or an idea how to get them.
I can use trade to build decent list of the names probably
still be in the same location, in Words.dat, looking for data where WordlistsId=1,2 and the Tags match
is there any good way to determine what support gems can support minion skills? I notice neither poedb nor poegems try to list support gems for minions beyond the generic ones
Support gems on minion skills are weird. Knowing which gems can support the minion itself is easy but whether the effects of that support carry over to the minion skill is dependant on if the stat on the support is excluded from minions or if the minions skill happens to scale with that damage type
E.g. there is no concrete way for us to know which skills scale with melee damage (actually an issue with all skills in Poe) as there is no tag or stat to show that melee damage is meant to work, so I have to guess if melee damage makes sense for the skill and add the tag myself
I'm interested in the "easy" part just for coin odds
if it's easy too bad someone else isn't already doing it for me
It uses the same support matching just like regular skill types but for minions instead of the player skill
Look at something like the new Cooldown recovery support though and the gem technically can support a cooldown based minion, but it doesn’t actually grant the cdr to the minion skills https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Data/Skills/sup_int.lua#L1316
@velvet fog what do you think about doing that for poedb minion "supported by" pages eg https://poedb.tw/us/Animate_Weapon_of_Ranged_Arms#SupportedBy
There are hybrid skills too
currently no easy way to know the skills supported by a coin
Could slowly build a list from known combinations via trade/river
Is it not just the list of gems that a skill can have as a valid support?
If you know of one that doesn't fit that criteria I can try and figure out why
was also my first thought
sniper's mark + cast on critical strike
PoB wont recomend coc unless there is also an attack
becouse its trigger calcs will just assume its not actualy supported
unless there is a valid trigger
pretty sure it still affects the mana multiplier in PoB atleast, so not fully wrong
in hybrid scenarios, all ActiveSkillTypes should be calculated, and it should be an OR collection?
if there is an additional MinionActiveSkillType, should it be calculated separately?
Yep looks to take either the ActiveSkillTypes or the MinionActiveSkillType
Animate weapon is a good example as both Impale and More duration can apply to it
Impale only matches the MinionActiveSkillType
More Duration only matches the ActiveSkillType
im running my stash tab indexer. I vaguely remember last time I tried this there was a way to estimate how far you were from the tip of the river.. i want to make sure im fetching fast enough within rate limits to not fall behind, which was a problem last I tried
i suppose you could fetch current change id via https://www.pathofexile.com/api/trade/data/change-ids or from https://poe.ninja/stats. once you get all shard ids that are >= to "current" then you will know you are at most x time behind. doesnt really help with being super far behind though
Ah so that's what's I was trying to remember. each number on the change id is monotonically increasing and I can use the distance to see how far I am.. Ill try to figure something out, looks like I'm further than I had expected
afaik you can kinda calc the distance to see if you're falling further behind or keep your spot. Subtract your current numbers from the latest numbers (Latest1 - Current1, Latest2 - Current2, etc.). Sum those 5 and you have a "distance".
@carmine merlin the names of the Heroic Tragedy keystones are swapped around on the timeless jewel finder, and I hope it's a honest mistake and not a malicious commit done by someone on purpose to fuck the market
I got scammed by that
Which ones are wrong?
uthred and medved are swapped
Oh shit. No clue how I messed that up
I was looking for one of those jewels on trade about an hour ago too
I had the names fliipped in 4 different places. Will fix for next update
Probs gonna make a hotfix tonight as there are a few other small issues I've fixed
well time to redo all my livesearches and hope someone else buys this thing off me :P
is there any json for poe1 that has all the modifiers that a map can get?
ooh, not yet, but prob will, just busy atm 🙁
kinda not been following PoE news for a bit
The repoe-fork is the correct answer here, but if you need other game data in JSON, there is: https://poecodex.com/json/
thanks ❤️
Are there any theories on what the values in delverewardtierconstants.datc64 could mean?
I assume the second to last column is maybe depth?
Columns: Steve1 through Steve5.
Scarab of the Dextral seems to be missing from https://www.pathofexile.com/api/trade/data/static and https://www.pathofexile.com/trade/about - or is there a reason I don't see (or another name)? Scarab of the Sinistral is listed as scarab-of-bisection although it got split into these two(?)
Thanks, will get fixed.
Ha, I just came to report exactly that.
is there still up to date lists of (1) unique dust value and (2) div card exchange gold prices?
also for 2, is gold price still representative of rarity or was that changed?
I made a tool for making trade search links for the new imbued gems that are corrupted with a level 1 support
is it cool to share the link here?
how does poedb calculate the damage for unique bosses? I'm wondering why the melee damage tends to be a 1.985 multiplier,
for instance shaper "damage" is 2171 but their melee is 3448-5172 - https://poedb.tw/us/The_Shaper#TheShaperTheShaperBoss. When hovering over the damage in poedb, it looks like it already accounts for unique70% more/33%less and level base stats.
I've been trying to read through the dat files but probably haven't found the right place
for https://poe-disenchant-tool.vercel.app/ I basically use PoEDB data, I think it hasn’t been inaccurate so far. you can also check the app’s repo for easily usable, parsed version
Added a collections page/popup for the heist tracker, whatchu guys think:
Ah, I should add their wiki pages next to them and maybe their estimated value in trade, I'll work on that for 0.2.11.1
Psn 3.28.0C broke client on psn cant login
this is not a support channel
Where to report ?
This is fixed now!
after update... some uniques strongbox CRASHES PC alot
this is not a support channel
Niice, ty!
hey folks i want to create MCP Server (Model Context Protocol) that helps AI assistants understand the PoE 2 crafting ecosystem and in the future create new methods based on provided info.
In theory it must be:
A local server that gives AI tools (Claude, Cursor, VS Code Copilot, etc.) access to POE-specific knowledge —affixes, item levels, bases, crafting materials, current prices of that materials, crafting rules, deterministic examples of craft and more. Think of it as an "POE2 crafting encyclopedia" that an AI can query.
The problem it tries to solve:
AI assistants are increasingly used for coding so can be used for my goal too, but they hallucinate many things, generate wrong event parameters, and don't know POE2 crafting rules. This leads to broken methods and errors. The MCP server gives the AI accurate, verified data to work with.
My questions
I'm looking for experienced AI developers that can point me in right direction on what i must to study first, to accomplish the goal.
Everyone else - do you think this can be doable, and if eventually i make it public, can it be popular?
Depends on how strict their API is set
while i dont wanna say its impossible, i can assure you its not going be even remotely as impressive as it sounds in your head
A chat bot for poe2and1 is more doable
I was trying to build an agent to help on poe 1 builds too lmao
its impressive in other games, i saw similar server for eso addon development created lately
either way good luck on your journey
According to claude code creator, software engineering is solved so no need to find anyone
how can you build mcp tool in 2026 by asking people, it's heresy
being obnoxious and then doubling down, bold strategy
I opened up some old tooling of mine the other day. Past me was surprisingly clever and it's a joy to adapt it to new circumstances.
i've looked at some of my old code before and wondered how i came up with something that clever, then realised i must have been having a mild-mania attack 😄
trade doesn't have the new suffix/prefix catalyst type sorting
umm, my clanker spat this out after 3 prompts (gpt 5.4 in opencode) with only the json as input and POB as reference. It's just an SVG and I need to cleanup the code but, damn
So, your clanker copied PoB's implementation?
among others probably
yes. which is what I would've done manually otherwise and would've taken much longer to grok (the writing part is not the biggest deal imo)
@compact isle Would it be possible for the currency exchange API (cxapi) to provide any kind of statistics for the hourly digest? E.g. a couple basic ones like mean, (approximate) median, (approximate) 10/90 percentile, etc? Right now it only provides the min/max of the ratio and stock, and thus a single trade during an hour can poison the data for the entire hour.
Mean is provided
divide sale quantity of one item by the other. You get the average ratio of sales.
100 divs sold and 1000 chaos. chaos price in divs = 100/1000
Its a shame to not have median or some quartile data but likely that these wouldn't be trivial things to add to the data returned.
My assumption is the current data we get is stored through the hour as a runnign total. Each sale is added with a min trade and max trade kept. Being able to calculate median or mode or some sort of percentile would not be possible without making it more compelx.
Caidora is correct, and what you get is all we store
Hi Guys, Question: I want to make a small calculator that connects to my character live. would this potentially break and forms of TOS? are there any resources I could look at as this is the first time I am trying to make a POE tool.
Start here with the API documentation: https://www.pathofexile.com/developer/docs/index
Can public-stash-tabs[].id move between accounts, or does a changed accountName on the same stash id always mean the account was renamed?
https://www.pathofexile.com/developer/docs/reference#type-PublicStashChange
Anyone know of a source of historic ggpk / bundle files? The CDN only stores the latest handful of patches
T35?
That's not the average ratio. Consider if there were two sales, one with ratio a:b and one with c:d
The average ratio would be ((a / b) + (c / d)) / 2, whereas what you're saying is (a + c) / (b + d).
That's not to say your suggestion isn't useful.
I'm not sure what architecture you're running, but there are very efficient quantile estimation algorithms that don't require that much time and space to process and store. E.g. https://github.com/tdunning/t-digest.
Do they need the entire data for an hour at a point in time?