#tooldev-general

1 messages · Page 28 of 1

lone ingot
#

oh you beat me to it, I couldn't even work it out lol

#

glad you figured it out, maybe that's worth documenting somewhere

somber mortar
#

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

lone ingot
#

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

lone ingot
#

tbh I think windows high perf gpu mode for applications messes with OBS

#

probably my issue is there

#

either way, problem solved bla

tiny girder
#

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

worthy cape
#

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 😄

somber mortar
#

yeah the browser mode should just be adding --no-overlay as a cli flag

worthy cape
#

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.

somber mortar
#

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

lone ingot
#

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

velvet fog
#

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.

tall oyster
#

Added a grid view for images, also made a few improvements based on recent updates to LibGGPK3

sturdy drum
#

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

strong patio
#

Information is less granular

#

Bucketed over 1 hours. Can still graph stuff over longer term but not the same granularity that mirror marker achieved

normal tusk
#

Hey, how long does it generally take to get a response from the oauth email from ggg?

hexed mesa
#

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

normal tusk
#

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

velvet fog
#

my last OAuth authentication process took about three months

worthy cape
#

Saving the best for last? 😄

compact isle
#

we're pretty backed up at the moment

#

unfortunately :/

hazy fiber
#

@worthy cape is still DeputyToolDev, just get him to go through them all /s

calm adder
tall oyster
#

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

worthy cape
#

Granular Groups of Parceled Kibibytes.

calm adder
#

np, cool tool with good UI nonetheless

tall oyster
#

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)

frank drift
#

ouch

#

also a guarantee that within a year or two it'll be 5 days

tall oyster
#

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

ebon kernel
ebon kernel
#

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.

tall oyster
#

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

sturdy drum
severe frigate
#

Hi, any feedback would be much appreciated: https://poe2.lootfilter.com/

severe frigate
#

Yeah that is not the case right now (the filter part). But might be in the future.

frank drift
#

odd choice

#

you're scraping trade?

severe frigate
#

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

gentle remnant
#

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

frank drift
#

aka currency exchange api

gentle remnant
#

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

frank drift
#

suggest reading the documentation

worthy cape
#

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.

gentle remnant
#

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

worthy cape
#

Like all other services, I presume it's behind having OAuth access.

#

You can probably squint at Ninja until your application goes through.

gentle remnant
#

I'll check the docs, hopefully it's not too different from things I've done before

#

Thank you

frank drift
#

yeah poe.ninja republishes pretty much everything from the ggg api

gentle remnant
#

Oh it seems I'd need to register an application by contacting GGG if I want access to the cxapi 🤔

gentle remnant
#

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

frank drift
gentle remnant
#

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

frank drift
gentle remnant
#

It was just an example

Afaik Poe ninja shows exalt:item but not item:exalt

I am curious about the gap between the two

hexed mesa
#

well, for that indeed you would need an oauth app

hexed mesa
gilded tree
gentle remnant
frank drift
gentle remnant
#

Wouldn't it be the same info just 1h behind?

#

As long as anyone traded the given item

frank drift
#

it's not the same information as the currency exchange UI, if that's what you mean

gentle remnant
#

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

sturdy drum
#

I too am eagerly awaiting access for cxapi

gentle remnant
#

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

gilded tree
gentle remnant
gilded tree
#

and the data changes every hour

#

thought you only wanted to know how it looks like

gentle remnant
#

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)

gentle remnant
#

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 🤞 UHM

worthy cape
#

If I call it an Auction House, does it delay the CX API OAuth requests?

clever thistle
tranquil token
#

@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.

gilded tree
clever thistle
#

point out a mistake to a non-native English speaker, get thanked, point it out to a native English speaker, get abused 😉

knotty seal
#

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!

worthy cape
#

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.

knotty seal
#

thank you kind people

tranquil token
#

@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

green geyser
#

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"
}
}

hexed mesa
#

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 😔

hexed mesa
#

(for context thats on the unique stashtab showcase page (i guess standard shenanigans))

pearl crest
#

@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.

somber mortar
pearl crest
somber mortar
#

All good, glad to help!

compact isle
modest path
#

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

green geyser
#

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

compact wigeon
#

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.

oak estuary
#

Private leagues aren't really private if you can see them all.

green geyser
# oak estuary 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

frank drift
#

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

green geyser
#

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

frank drift
#

@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)

spring compass
#

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.

velvet fog
velvet fog
kind dirge
# velvet fog

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.

compact wigeon
#

Number formatting comes up a lot for me at work. It's a pain.

compact isle
normal tusk
#

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.

frank drift
#

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

normal tusk
#

yes that one

shell imp
#

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?)

clear plover
#

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

shell imp
#

acquisition does exactly that, and i'd be happy to talk you through it if you want--but it's c++

clear plover
#

does acquisition use oauth?

shell imp
#

yes

#

i ported it from the website api last year

clear plover
#

I'm looking at the xyzz repo rn should I be looking something that isn't archived?

shell imp
#

i'm in the middle of reworking the guts, so it's not... well organized interally

shell imp
clear plover
#

took a long break from the game until about 2 years ago

frank drift
shell imp
#

agreed, depending on what language you are comfortable in

worthy cape
#

I looked at Procurement's vintage C# half a decade ago. I'm sure it has aged well since 😄

shell imp
#

the biggest recent changes are oauth, account suffixes, and dynamic rate limiting

clear plover
#

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

shell imp
#

heh, i had to learn modern c++ and Qt when i started work on acquisition

clear plover
#

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

frank drift
#

not sure I'd call Lua "popular"

clear plover
#

seems to be used in game related stuff a lot

hazy fiber
#

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

clear plover
#

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

shell imp
#

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

velvet fog
compact wigeon
#

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

gilded tree
grave wren
#

Pob forced me to look at lua UHM

compact wigeon
hexed mesa
#

wow addons definitely made me dislike lua :)

compact wigeon
#

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

tall gust
tall oyster
#

I first did lua back for GMOD stuff. Then lua + js with FiveM

carmine bridge
#

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.

carmine merlin
frank drift
#

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

somber mortar
#

It is in the CurrencyExchange table, GoldPurchaceFee is a column

carmine bridge
#

Great thanks, I had just found that table. It matches what I see in game

clear plover
#

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

tranquil token
#

@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.

shell imp
hexed mesa
shell imp
charred lake
#

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

oak estuary
#

PoB for PoE2 should work. We haven't backported any changes to PoB1 though

charred lake
#

At a glance it looks like they diverge, and my code loads poe2's tree fine. Will do some poking around and report back

sturdy drum
#

Is there still a backlog of api requests? Mines 12 days old

kind dirge
#

yes, they are months behind based on recent reports around here.

charred lake
velvet fog
#

after version is 1 byte type for Default, Atlas
8B/11B is skillsPerOrbit, first byte counts
radius is i32

#

Is this picture hand-drawn?

charred lake
worthy cape
#

Best tool ever.

#

Great for taking notes on formats and drawing simpler sketches.

lone ingot
#

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

worthy cape
#

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.

sturdy drum
#

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

thin pawn
#

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

hexed mesa
thin pawn
#

hmm, ok yeah reflecting mists seems kinda rough to implement kekw

lone ingot
#

just need to prompt the user for the ctrl+alt+c unfortunately

frank drift
#

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

thin pawn
#

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

lone ingot
#

in theory you could upgrade/downgrade every known mod and then give the user a drop down choice for what each remaining mod is

worthy cape
#

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.

charred lake
worthy cape
#

NOTED Paris Saint-Germain supported

ebon kernel
#

p**is saint german

frank drift
#

PSG does have an esports division

#

maybe Path of Exile someday

ebon kernel
#

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 BlodXD

lone ingot
#

pretty interesting bug

frank drift
#

not really

#

Anthropic is a complete mess by all accounts

worthy cape
#

Everyone's trying to do the same thing, might as well fold them together 😉

ebon kernel
tall oyster
#

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.

ashen aspen
#

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

tall oyster
#

and always deployed on vercel lol

frank drift
#

next has huge mindshare and vercel seems to be aggressively courting ai slop

#

I'm sure they're raking in cash

tall oyster
#

oh definitely

frank drift
#

sell shovels in a gold rush

tall oyster
#

exactly lol

ashen aspen
#

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

compact wigeon
#

Sassy.

ashen aspen
#

:)

compact wigeon
#

-# sorry

tall oyster
#

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

compact wigeon
#

Ecosystems hiss

tall oyster
#

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

compact wigeon
#

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"

tall oyster
#

exactly

frank drift
#

more like walled gardens

compact wigeon
#

Classic case of pesky nuance. Not all ecosystems are bad, but there's enough bad ecosystems that the word makes me go nuggetSus

tall oyster
#

i hate the term serverless also on this note lol

#

there is still a server

ashen aspen
#

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

tall oyster
#

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

gilded tree
ashen aspen
#

you just manage paying bills that are too high

gilded tree
#

Yes

tall oyster
#

i know, i just wish they had a better term

ashen aspen
# tall oyster When Arc Raiders came out, holy shit the amount of turds that showed up. Everyth...

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.

gilded tree
tall oyster
#

MIAAS (pronounced "my ass")

#

lol

tall oyster
ashen aspen
#

i don't understand that tbh. it still has your name on it, it's your code and you're responsible

tall oyster
#

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

ashen aspen
#

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

frank drift
#

some projects had to disable PRs or put up a captcha yeah

ashen aspen
#

not ai related, just crazy ;)

ebon kernel
tall oyster
worthy cape
# ashen aspen i forget what it was, it's insane

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:...

▶ Play video
lone ingot
#

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

clever thistle
worthy cape
severe frigate
#

I am sure this has been asked before but, is there a reliable source for current Item classes (not categories).

severe frigate
#

That is a nice list, but it doesn't have Talismans for example.

severe frigate
#

You are my hero, thank you!

ebon kernel
#

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 BlodThink

worthy cape
#

Gold is the most liberating of colours.
– Izaro, probably

worthy cape
#

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.

tranquil token
#

@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.

compact isle
#

(slightly weird because the 3.27.0 alternate trees didn't get 3.27.0 updates until now)

severe frigate
#

Also made some small updates to the Economy app.

normal tusk
#

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

worthy cape
#

That sounds like a fun consistency problem, especially as it needs to snake into all your outgoing requests.

normal tusk
#

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

lone ingot
#

open src?

normal tusk
#

can't believe the poe api is vulnerable to the 2038 problem 😭

carmine merlin
#

Just added the new phrecia tree to PoB btw. V2.60.0

fickle yew
normal tusk
fickle yew
#

It makes reconciliation with the server response counts pretty tricky.

normal tusk
#

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

hexed mesa
#

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

normal tusk
#

I'm sure there will be more time in the future spent on it when I realize something is slightly wrong haha

fickle yew
#

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.

normal tusk
#

My greatest fear is having to tinker with this code for the rest of my life and this isn't helping 😭

fickle yew
#

I'm sure it's fine... I'm only on my fourth iteration of that code...

severe frigate
#

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.

brittle oasis
#

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

worthy cape
#

ES? It's glorious HLSL 😄

brittle oasis
#

rip, do we have access to them tho?

worthy cape
#

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.

worthy cape
# brittle oasis bro what sorcery do people use for the lines/arcs to still be visible when fully...

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.

crude bane
#

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?

brittle oasis
# worthy cape If you're using a 3D API to render, make sure that your textures aren't too squi...

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

worthy cape
#

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.

brittle oasis
#

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

normal tusk
#

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

exotic egret
#

The only possible 5xx errors I can imagine are 500, 502, and 504.

#

(Aside from 503 during patching)

warm socket
lone ingot
lone ingot
warm socket
#

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

lone ingot
#
"patch": "...",
"translations": ["English", "Russian"],
  "tables": [
    {
      "name": "CraftingBenchOptions",
      "columns": [
        "Id",
        "Name",
        "IsAreaOption"
      ]
    }
  ]
#

very easy to use

warm socket
#

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.

lone ingot
#

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

warm socket
#

aah, so ripping that from poedb is probably the way to leave it for now (since it works)

lone ingot
#

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

tranquil token
#

Is data for new mechanics or enrage states of the Phrecia event bosses included in this patch?

lone ingot
#

likely already exists and is handled server side

lean flint
#

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

https://nebula-codes.github.io/build_wheel/

brittle oasis
# worthy cape The thickness of geometry for your lines might also matter a bit, you could be g...

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

odd wave
#

@daring stag i DMed you, maybe you can check, if you have time please bla

mint maple
#

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

hexed mesa
# mint maple Man, I'm both rusty and clueless. But I had the idea before to make a tool to tr...

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)

mint maple
#

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

hexed mesa
#

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

severe frigate
#

And you also get blocked for 30 minutes if you go over.

mint maple
#

ah, fair enough, and good to know

somber mortar
#

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

cedar shadow
#

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

severe frigate
normal tusk
#

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

normal tusk
#

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

velvet fog
#

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.

normal tusk
#

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

velvet fog
#

You don't need to start from the beginning for currency exchange api

normal tusk
#

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

velvet fog
#

You can calculate the id range for specific timeframe

normal tusk
#

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

velvet fog
#

I don't use next change id for cxapi, it's confused. Calculate timeframe works fine

normal tusk
#

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?

velvet fog
#

if (next_change_id == unixstamp(current_hour -1 hour)) { break; }

normal tusk
#

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

velvet fog
#

I can't understand your problem.

normal tusk
#

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

gilded tree
#

Even less if you only need e.g. a week like in your last example

faint spade
#

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

normal tusk
#

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

faint spade
#

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.

normal tusk
#

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

faint spade
#

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

normal tusk
#

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

faint spade
#

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.

normal tusk
#

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

faint spade
#

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

normal tusk
#

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!

faint spade
#

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

normal tusk
#

Do you know how long it took you fully? Just wondering for myself

faint spade
#

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.

severe frigate
#

You can also go from present to past if that is your concern.

normal tusk
#

i guess i could do that

#

that's a cool idea

urban vortex
#

guh looks like the method i was using to get a firehose of listings from POE2 trade was fixed

tranquil token
#

@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.

velvet fog
#

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.

charred lake
worthy cape
#

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

swift beacon
#

ARMs aren't too terrible. GGG definitely has worse formats.

#

Actually rendering the rooms though...that hurt my brain.

worthy cape
#

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..."

charred lake
#

version 32+ changes from length prefixed sequences to "-1" terminated. 🤔

zenith zodiac
#

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)

#
charred lake
worthy cape
charred lake
zenith zodiac
zenith zodiac
#

l made so many changes in the last update it's hard to guess which one would be problematic

#

shaved the whole yak

charred lake
#

Just the areas page, I'm guessing just re-rendering on a loop

zenith zodiac
#

ok, l see that. l'll try to figure out what l've done wrong

zenith zodiac
ebon kernel
#

man, replicating serverless local development environment is lowkey harder than having a working prod environment

zenith zodiac
#

l had a working dev environment, then l fixed an issue that only affects prod, now my dev environment doesn't work

loud flint
#

The real question is, did you then ever have a dev environment that truly worked? galactic_brain

exotic egret
#

Petter is familiar with this question

charred lake
calm adder
charred lake
ebon kernel
ebon kernel
#

vibe coded CASCADE on one of the tables - o7 80% of the data xdd

severe frigate
#

Focused mainly on performance

spring gyro
#

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 🙂

worthy cape
compact wigeon
#

I heckin love skill trees

hexed mesa
#

and I like pathofpathing. my favourite atlas tree planner

gilded tree
charred lake
#

Human readible formats are such a pain to parse... So many edge cases where someone has left in an extra character while editing 😭

hazy fiber
#

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

worthy cape
#

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" ^_^

frank drift
#

Postel's law

worthy cape
#

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.

frank drift
#

huh, I wonder if that was part of my earlier issues

velvet fog
tall oyster
brittle oasis
# spring gyro Heyo. Are there any good resources or open source prior work on building the POE...

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

gilded tree
# worthy cape Life protip - if you've got a Windows machine that somehow gets suspiciously slo...

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! 🙂

worthy cape
frank drift
#

I reinstalled drivers after my CPU died and I RMAed it, I wonder if I accidentally fixed that issue

gilded tree
gritty hatch
#

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?

brittle oasis
gritty hatch
#

Shaders folder was the culprit, runs like a baby now. thanks again ❤️

severe frigate
ebon kernel
#

reviewing all of this is going to be a massive slog

grave wren
#

hey as long as its green surely all is well

worthy cape
#

Step 1, install volkswagen

loud flint
#

Step 2, lie about your carbon emissions

charred lake
spring gyro
#

@tall oyster @brittle oasis cheers for the replies, very helpful ❤️

tall oyster
#

working on a totally unnecessary update for gppk explorer

worthy cape
#

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:

▶ Play video
calm adder
#

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 😅

carmine merlin
calm adder
#

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

carmine merlin
#

Yeah, I was surprised GGG made the change for PoE 2. Maybe one day they'll let us know the secret

severe frigate
#

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?

frank drift
charred lake
severe frigate
#

I was looking for the image assets. The data assets I found. But thank you for pointing me in the right direction.

tall oyster
#

Export images to webp or PNG

severe frigate
#

Thank you!

charred lake
#

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

severe frigate
#

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/

worthy cape
severe frigate
ebon kernel
#

@hushed relic would it be possible to add #lastUpdate:<timestamp> to standalone generated filter files just like online filters have for consistency?

ornate bramble
#

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?

ornate bramble
#

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?

velvet fog
worthy cape
#

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?

velvet fog
ornate bramble
# velvet fog cxapi allows you to specify a particular date and time period to fetch; the next...

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.

velvet fog
#

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.

ornate bramble
#

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.

hexed mesa
worthy cape
#

Oh right, shows how long it was since I did psapi - well before even OAuth.

ornate bramble
frank drift
#

classic

severe frigate
#

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.

ornate bramble
# ornate bramble Turns out it was a massive skill issue on my part. I mistakenly made assumptions...

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.

severe frigate
#

Just back off when you hit a rate limit. It is not a deadly sin when you hit it.

hexed mesa
#

it is

severe frigate
#

On the trade API you don't want to actually hit it though because you get benched for 30 minutes.

brittle oasis
#

zao i love you for telling me about renderdoc. i also hate you at the same time, i shouldov just kept things simple fml

worthy cape
#

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.

mint basin
#

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

trim moon
#

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

swift beacon
#

/metadata/leagueskillgraphs/chayulatreepassiveskillgraph.psg

trim moon
#

ok

trim moon
#

EquipmentNode14 might be linked to another db

carmine merlin
#

Look at the brequel dat files

trim moon
#

ahh k

carmine merlin
#

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

trim moon
#

i have perused those but defining the columns i cant figure it

#

yea i got a few integers but the rest are a mystery

carmine merlin
#

Which dat is that. I’ll check

trim moon
#

brequelitemresourcevalues. i assume that might be the correct 1

#

unless one of these might be more fitting

#

brequelpassivesubtrees?

carmine merlin
#

Brequel resource values was for base graft blood costs and the ilvl or character level associated with them

trim moon
#

ohk

#

passivesubtrees links to something else it seems. but it looks like the correct breakdown of info

carmine merlin
#

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

trim moon
#

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 🙁

carmine merlin
#
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
}
trim moon
#

could it be this one: brequeltreeslots

#

but no its a rewardtype

carmine merlin
#

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

trim moon
#

thats the one most likely that im looking for PassiveSkills.dat

#

lemme check it out

#

thank you for checking against your data

#

mods vs passives 😒

#

and thanks for Pob 😄

carmine merlin
#

Np. Happy to help

trim moon
#

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

rose gyro
#

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 ?)

ebon kernel
#

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

worthy cape
rose gyro
ebon kernel
tall oyster
swift beacon
#

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):

charred lake
verbal smelt
#

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.

somber mortar
#

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

verbal smelt
#

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.

worthy cape
#

Was gonna suggest reading the source but apparently the web loves minification these days 😄

#

There's functions that determine it at least.

frank drift
verbal smelt
#

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"]```
frank drift
#

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

verbal smelt
#

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?

worthy cape
hazy fiber
#

lowConfidenceSparkLine?

worthy cape
#

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.

hazy fiber
verbal smelt
#

It is in all results

#

Low confidence results seem to have an empty sparkLine

#

Thanks! This has been helpful.

frank drift
#

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

verbal smelt
#

I'll try that. I asked here first since that discord seemed pretty low activity.

somber mortar
#
    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

frank drift
verbal smelt
#

That’s a good point.

verbal smelt
frank drift
somber mortar
# verbal smelt Could you explain what you are stepping through? I assume that is code used for ...

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

verbal smelt
#

Thanks

spring compass
#

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 🙂

charred lake
latent wave
charred lake
swift beacon
ebon kernel
#

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)
lone ingot
#

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.

velvet fog
severe frigate
novel vortex
#

Helped me repath for some extra ehp later in the league during keepers, currently implementing damage optimization for main skill supports

ebon kernel
frank drift
#

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

ebon kernel
frank drift
#

ideally you would probably calculate returns based on output price whenever possible, since pricing cards is very unreliable

ebon kernel
#

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)

charred lake
#

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 🙂

GitHub

Suite of CLI tools to work with Path of Exile 1/2 game files - adamthedash/poe_data_tools

frosty glacier
#

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(!?).

lone ingot
#

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

frosty glacier
#

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

hexed mesa
#

no idea what amanamu mod is but mods spawned by special means generally dont contain much data on the client side

frosty glacier
#

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

severe frigate
torpid lava
#

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

Path of Codex

A build intelligence platform for Path of Exile 2. Analyze and compare characters through real gameplay context, not just raw DPS and EHP.

oak estuary
#

Might need to fix some translations:

sullen portal
#

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.

https://juicetools.app/

Juice Tools

Optimize your Path of Exile 2 farming with Juice Tools. Track waystone runs, analyze currency drops, and discover the most profitable map juicing strategies.

ebon kernel
sullen portal
valid parcel
#

use it to stop people with really bad internet from using your tool

torpid lava
# oak estuary Might need to fix some translations:

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.

tranquil token
velvet fog
#

In the Zizaran chat channel, during a streaming session, a ggg dev answered this question.

hexed mesa
#

cleaning up my drives and i found some psapi responses from metamorph 👴🏻

wind garden
#

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.

hexed mesa
#

dont see why they would remove it from poe1. whether it will be added to poe2 or not isnt confirmed either way

frank drift
#

but there's no way it goes anywhere

#

seems like a difficult idea to make useful also, priced below what value?

hexed mesa
#

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

wind garden
#

I just want a project to get some experience with postgres and want to somehow tie it into poe

hexed mesa
#

i dont think you can determine what is actaully sold vs taken down

frank drift
#

you can't technically, but you can make some educated guesses which is I assume what they mean

mint karma
#

@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

loud aspen
#

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

loud aspen
frank drift
loud aspen
#

I fixed it Problem with Wayland security

amber harness
#

Yo! Do we know if the API got updated in the last patch at all?

#

for PoE 1

amber harness
loud flint
#

Are you seeing something not expected? Or just lack of something expected? 😄

velvet fog
#

Imbuing Gem

bright ridge
#

framer motion is so magical

frank drift
#

is it intentional that the website preview is the yt video thumbnail?

bright ridge
#

I didn’t feel like updating the OG image lmfao yes I’m fine with it for now

frank drift
#

still can't set filter sounds, dang

bright ridge
#

I’ll see if I can squeeze it in lol I need tokens despairge

frank drift
#

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)

frank drift
bright ridge
#

Need to do a pass on TODOS and remove those lmaooo

calm adder
#

Do we know the weightings of the different Rog crafting offers in PoE 1?

frank drift
calm adder
#

So there's no .dat file with those then?

frank drift
#

seems incredibly unlikely

carmine merlin
loud flint
bright ridge
#

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

calm adder
velvet fog
#

passive skill tree json when?

bright ridge
#

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

frank drift
#

wouldn't be surprised if servers were under a bit of strain at the moment

bright ridge
#

with migration jobs kickin' ye figured. time to snooze i guess hehe

bright ridge
#

optimizing Core Web Vitals is my passion

golden night
#

@mint karma I think there are a bug in the support gem selections it has Elemental Projectiles it shuold probably be Elemental Proliferation

ebon kernel
worthy cape
#

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 possum

ebon kernel
#

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)

compact isle
ebon kernel
compact isle
#

PoB is already a poaching ground

velvet fog
normal tusk
#

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?

hazy fog
#

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 CatLeave

normal tusk
#

i love that person

frank drift
#

transfigured/tarathus gems are the pain point

hazy fog
normal tusk
#

made a cool little graph so far in step 1 of my master plan...

ornate bramble
fickle yew
bright ridge
#

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

gilded tree
clever thistle
ornate bramble
fickle yew
mint karma
fickle yew
ornate bramble
fickle yew
normal rampart
#

is there a way to export pilfering ring data via API?

frank drift
clever thistle
#

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"

exotic egret
#

I know what diffs are. I just assumed you were saying the gem post doesn't show diffs, when it does

clever thistle
#

ok, but the post doesn't use any kind of "standard" diff layout though?

exotic egret
#

Sure. I'd argue the average person is not familiar with a side-by-side diff though and that would just be more complicated

clever thistle
#

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":

exotic egret
#

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

clever thistle
#

sorry i didn't explain better 🙂

exotic egret
#

Does the diff help you in some way? We can probably provide a gist diff if you really want in the future

clever thistle
#

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 😉

worthy cape
#

On ordering, if you look at patch notes they tend to be on the format of now blah (previously bleh).

clever thistle
#

yes, which is also backwards to my mind

worthy cape
#

Core purpose tends to be what they're now, and a reminder of what they used to be if you care.

clever thistle
#

yep, but that seems odd to me, as there's no basis for comparison

waxen musk
#

How do you get search query object from search url?

#

i.e. mZYLMS6 => { stats: { filters: ... } }

normal tusk
#

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

compact isle
ebon kernel
#

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

viscid pagoda
#

I'm sure this is asked often, but any chance we are going to get merchant tab history/info in the API?

compact isle
#

you can view your own history via the trade site at the moment

normal tusk
#

is that actually planned to give trade oauth stuff?!

viscid pagoda
compact isle
compact isle
viscid pagoda
#

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

compact isle
#

no way to get everyone's successful trades

#

(I tried)

viscid pagoda
#

is there a way to get anyone's trades? outside of yourself lol

frank drift
#

with OAuth in the future it sounds like

viscid pagoda
#

lol, thanks guys

normal tusk
#

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

velvet fog
#

torrent downloaded completely in 2 hours, the fastest I've ever done.

worthy cape
#

569.69 gigs seeded thus far for me, quite nice.

lone ingot
#

yeah the torrent was good today, tis a good omen

hexed mesa
ebon kernel
pure shard
#

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)

hexed mesa
#

definitely sounds against tos so doubt anyone would help you here

#

just get a pad, thats like halfway there to wasd like gameplay

pure shard
#

I have one but there's no way to mix controller/mouse inputs sadly

pure shard
#

(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)

normal tusk
pure shard
#

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 🫡

trim moon
#

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

pure shard
swift beacon
#

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.

tranquil token
swift beacon
#

Gotta get those spoilers 😆

sage mesa
#

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

civic crane
#

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

sage mesa
#

makes sense, thanks 😄

waxen musk
#

is Metadata/AtlasSkillGraphs/AtlasSkillGraphCurrentLeague.psg not the correct tree?

normal locust
#

Yeah, I was just coming here to see if this was happening to anyone else as well.

waxen musk
#

ok so CurrentLeague is in fact not the current league 🤔

crystal epoch
#

Damn - no info about the stashtabs within the map stash anymore 🙁

compact isle
compact isle
subtle rapids
tranquil token
worthy cape
#

@velvet fog Click Enlarge, resize window, Ohno

#

Also in Enlarged mode, the ads obscure the sides:

tranquil token
# velvet fog added

Sorry to keep asking, but could you also apply the updates to languages other than US?

carmine merlin
#

@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

carmine merlin
#

Found a fix but now there are more than 256 replacement / addition mods so our nice 1 byte encoded LuT no longer works 😢

worthy cape
#

@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.

velvet fog
#

should be worked

worthy cape
#

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.

velvet fog
#

dragable

proper light
#

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

velvet fog
proper light
#

Thanks

lusty musk
#

is the timeless jewel seed algorithm publicized somewhere?

#

I can only find data dumps of what I assume the algorithm outputs

#

found it

velvet fog
lusty musk
#

thanks

tranquil token
#

@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)

velvet fog
#

affixes are still not displayed correctly

carmine merlin
#

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

verbal flower
slim prism
#

anyone grabbing the public stashes from the API and could tell me at what next_change_id Keepers started?

compact isle
#

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

ebon kernel
#

surprised my parser didn't blow up with this anomaly spacing

worthy cape
#

(tried storing all my objects in minio first, didn't work well so I went for making Postgres chug instead)

oak salmon
#

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?

lyric cliff
gilded tree
frank drift
#

of course FilterBlade is going to hide uniques that are worthless on poeninja

#

I don't know what people want

oak salmon
fickle yew
#

@compact isle No astrolabes in bulk trade?

compact isle
#

next patch

languid pecan
#

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)

velvet fog
#

can't search Map Reward for Valdo Map in trade site

mint karma
#

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

velvet fog
#

still be in the same location, in Words.dat, looking for data where WordlistsId=1,2 and the Tags match

frank drift
#

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

carmine merlin
# frank drift is there any good way to determine what support gems can support minion skills? ...

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

frank drift
#

if it's easy too bad someone else isn't already doing it for me

carmine merlin
#

It uses the same support matching just like regular skill types but for minions instead of the player skill

frank drift
velvet fog
#

There are hybrid skills too

velvet fog
#

currently no easy way to know the skills supported by a coin

gilded tree
#

Could slowly build a list from known combinations via trade/river

carmine merlin
#

If you know of one that doesn't fit that criteria I can try and figure out why

gilded tree
velvet fog
#

sniper's mark + cast on critical strike

hazy fiber
#

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

velvet fog
#

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?

carmine merlin
#

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

velvet fog
oak salmon
#

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

hexed mesa
oak salmon
#

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

gilded tree
latent solar
#

@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

carmine merlin
#

Which ones are wrong?

latent solar
#

uthred and medved are swapped

carmine merlin
#

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

latent solar
#

well time to redo all my livesearches and hope someone else buys this thing off me :P

cyan void
#

is there any json for poe1 that has all the modifiers that a map can get?

neon plume
#

kinda not been following PoE news for a bit

subtle rapids
charred lake
swift beacon
#

Looks fine to me

calm adder
#

Are there any theories on what the values in delverewardtierconstants.datc64 could mean?

#

I assume the second to last column is maybe depth?

worthy cape
#

Columns: Steve1 through Steve5.

gilded tree
fickle yew
lone ingot
#

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?

foggy stag
#

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?

quartz crescent
#

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

sage mesa
oak temple
#

Added a collections page/popup for the heist tracker, whatchu guys think:

oak temple
#

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

wind olive
#

Psn 3.28.0C broke client on psn cant login

frank drift
wind olive
frank drift
#

GGG

#

you might want to wait for the servers to actually be up though

junior temple
#

after update... some uniques strongbox CRASHES PC alot

frank drift
gilded tree
next dove
#

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?

haughty fulcrum
#

Depends on how strict their API is set

hexed mesa
#

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

haughty fulcrum
#

A chat bot for poe2and1 is more doable

candid merlin
next dove
hexed mesa
#

either way good luck on your journey

ebon kernel
#

how can you build mcp tool in 2026 by asking people, it's heresy

tall gust
frank drift
#

being obnoxious and then doubling down, bold strategy

worthy cape
#

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.

clever thistle
#

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 😄

oak temple
#

pepe_sad trade doesn't have the new suffix/prefix catalyst type sorting

spring gyro
#

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

oak estuary
frank drift
spring gyro
lusty musk
#

@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.

strong patio
#

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.

compact isle
#

Caidora is correct, and what you get is all we store

grave python
#

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.

oak estuary
unreal raft
charred lake
#

Anyone know of a source of historic ggpk / bundle files? The CDN only stores the latest handful of patches

oak estuary
frank drift
lusty musk
lusty musk
strong patio
#

Do they need the entire data for an hour at a point in time?