#tooldev-general
1 messages · Page 8 of 1
the core features looked the same
Distinct buttons in an external UI that performs a single action each are fine. Each of those 1m/thx/sold ones are in a different panel and pertains to that particular request.
As long as they perform a single action each and there's no ratcheting logic like a hotkey that cycles which the "current" one is and does different actions on the same type of press, I consider them perfectly fine.
A combo button for thanking + kicking I would consider to be beyond what is allowed, as it performs a composite action.
I guess I'll have to separate those then
I'll try some stuff too
yeah no
even if I could like put a endofline or something between the 2 commands and send it in one go that will still be 2 commands
anyway, thank you for all the clarification

Who can help me with this, look at the video pls, after press f1 by awakened "/exit" , my buffer replace too "/exit", but i need to use regex text..
MercuryTrade still exists
Just a bit discontinued.
How are you all handling the passive tree export on github? I've been playing around with it to practice general GUI programming and I'm struggling to get a good grasp on somethings:
What approach do other tools take to associate textures with sprites? I've found the way sprites/spritesheets are mapped in the file to be a bit... cumbersome? e.g. whenever I encounter a group with a background image I have to check what spritesheet the image is a part of and if I have the texture loaded for that, is anyone doing it differently? I thought about building a map of sprite names to their corresponding spritesheet texture but I wasn't sure how nice that'd play with memory usage.
How do you know what links to use when rendering the tree? I only see the different sprites for links and that nodes keep track of what other nodes they're linked to, but I don't see how you go from that to deciding which bend to use to connect them. It looks like the vast majority are just straight lines skewed to fit the angle between the two connected nodes but I'm unsure about the rest.
Nodes in groups use orbits, circular tracks with the node occuping a particular angle slot in the circle.
The game itself has a big mapping of virtual texture names to physical texture filenames + region for sheets, but I don't think that it uses sheets much for the tree, that's more of a web viewer thing.
You need some sort of mapping but you could resolve much of that at load time.
(the game has a different representation with binary .psg files and more of the game tables, while the github and web trees are cooked for web suitability)
Yeah, the export has references to CDN URLs, I've just been mapping different sprite "groups"/sheets to textures in my code right now
but it feels a bit... stupid to do it manually? or not exactly sustainable
What bit would be manual? The sprites section contains all the information you need to make a reverse lookup, doesn't it?
good argument, I think my problem is that I've been embedding the textures in my executable at build time instead of loading textures based on the sprite section of the export
I don't think I ever did an end-to-end passive tree renderer, but right now I'm butting heads against optimizing the PoB one.
I imagine the PoB one is going to be a massive pain
I had an implementation in the past where I could replace several types of thing like connectors with premade 2D meshes and transform them where they needed to go, instead of passing all the geometry over the Lua->C++ boundary.
As the rendering is all immediate, it needs to send all the information to render a tree every frame, it's like a few megabytes of raw commands.
That's roughly what I've been doing so far, but in Rust with some imgui stuff
Tree submit vs. draw execution 😄
I hope to be able to cook a bit more data, probably not going for a fully retained scene with objects, but defining up the shapes and just submitting them with coordinates and colours is probably a decent win.
It's a fun challenge to draw efficiently, sorting by texture inside each layer tends to be a big win.
For the next-gen PoB I implemented a filthy multitexturing hack so I could pick from N different textures in a single draw call.
oho? next-gen PoB?
another zao Soon™️ project
Do you know if the distance for every orbit is defined somewhere?
Actually in beta branch now, after we-don't-talk-about-how-many-years in development.
oho
I forget where the orbit parameters are stored. Some are in the readme in the skilltree repo.
ye, the angles are in the readme
The radii are in the JSON.
{ "constants: {
"skillsPerOrbit": [1, 6, 16, 16, 40, 72, 72 ],
"orbitRadii": [0, 82, 162, 335, 493, 662, 846]
}}
lmao I'm doing something super wrong
love it
this is the arcane/profane chemistry wheels btw
at least it is consistently wrong
mad respect to everyone involved with PoB
I'm updating a old passive tree renderer of mine from 3.20, am I going crazy or have the skill icons shrunk down in size but the frames remain the same size?
sounds like you grabbed the wrong texture file? (a lower res variant?)
Something like that might be happening, I just ran a sanity diff between whatever .JSON tree file I had before and the new one from GGG's github and I'm not seeing any w or h values changing from Icons I'm investigating.
I think some jank in the way I'm tying resource paths back to files got exposed with a change, time to dig into my own failings....
Do the little mastery graphics in the skill texture have any function other than messing around with people
Which ones?
these
they're in skills-x.png
and are mapped to the same icon name (e.g. Art/2DArt/SkillIcons/passives/MasteryGroupEvasion.png) as the ones from the bigger mastery files
No idea really. The best idea I've got is that there might be one style for when you have points to allocate and they're eligible to use, like the dimmer connectors you've got to adjacent nodes normally?
these are the size of small passives and have a solid black background so it almost feels like they're not "meant" to be there
are they not the ones for clusters?
ohhh
that's a good call
they're not
I feel like they're a debug thing to position masteries maybe? like those proxies
although I don't think there's any nodes for it
definitely a bug that those are in there. Looks like it included all masteries / keystones / etc as normal nodes too
Might want to regenerate both files as the Ruthless tree is missing a bunch of changes in it too (all the units to metres changes and some other things)
yep I'll try to do a pass over them all once this fix is in
hey everyone, I'm trying to get an API key to work with the PS API. How can I go about doing this? My goal is to work on something for wealthy exile
best place to get started is the developer docs: https://www.pathofexile.com/developer/docs/index#gettingstarted
Has anyone tried adding a custom bundle into ggpk?
Even though I have it defined in _.index.bin like other bundles, the game still complains like this.
Does this mean that all bundles are actually hard-coded within the exe?
Edit: Solved
Why are you trying to add custom bundles? I can only think of reasons that violate the ToS, if you ask me
You will get no assistance in this, it's incredibly against ToS and there is no legitimate reason to do so.
what if he's trying to save space in his custom ggpk history store by using the file from the game's folder 
I'm not sure how injecting bundles to a GGPK file would offer any tangible benefits for external tools compared to having the data separately in a more accessible manner - this for all possible uses.
Don't mess with the game client or the game files, it's one of the oldest rules in the book.
I'm disappointed.
I happened to think of some issues related to these recently when I was studying the operation of bundles. I am very sorry if this question should not appear in this channel. Please tell me if I should delete the message. I will leave it in for now to prevent others from getting confused as to what you are responding to.
While it might be intellectually interesting to look into how things are used and how one could craft things that fit in - ultimately it's of no use for yourself or any legitimate player and it tends to serve as a starting point for people who are willing to break the rules and make things worse for everyone.
It's one of the reasons why I took much of my research into model formats and other game formats offline - even as that was technically useful for data mining and personal growth.
I do not wish to enable the PoE Smoothers, the cheaters, the model rippers and the 3D printed Etsy stores out there.
Has anyone downloaded the files from the ninja server? The encoding I downloaded is unix lf. When converted to the windows encoding, it will still be garbled.
@civic crane I might have fucked up somewhere, but looks like GGG added some stuff for SkillGems?
"failed parsing dat file: format specification inconsistent with data file (spec defines 215 bytes/row, file has 231 bytes/row)"
(using your dat schema)
new col for totem mtx, will update now
This isn't about unix or windows. Its protobuf, specifically ninja uses protobuf to encode some data in a binary format and then base64 encodes it to send it to your browser (not sure why it does that b64 step)
short answer to getting the data out is that unless you have the schema or reverse engineer it you just don't. Here is a documentation of the overall format https://protobuf.dev/programming-guides/encoding/
This topic explains how Protocol Buffers encodes data to files or to the wire.
did it work? l got my own crawler working and the only annoying behavior l noticed was that if you have multiple requests active when the limit changes, requests that were safe when you sent them can be over the new limit and return error
I haven't tried HEAD requests, no
I just slowed down the rate I did requests and didn't get rate limited anymore
Which makes the resolution of the data gathering worse unfortunately
Hey guys! Is there some API or other resource for the passive skill tree? Could someone point me to it? thanks in advance
To clarify, what i want is the base data so i could build the passive tree with some coding language.
thanks m8
let Iu = lc;
Te(Iu, 'runtime', qe),
Te(Iu, 'typeName', 'SearchResultDictionary'),
Te(
Iu,
'fields',
qe.util.newFieldList(
() => [{
no: 1,
name: 'id',
kind: 'scalar',
T: 9
},
{
no: 2,
name: 'values',
kind: 'scalar',
T: 9,
repeated: !0
},
{
no: 3,
name: 'properties',
kind: 'message',
T: Ou,
repeated: !0
}
]
)
);
let Ou = uc;
Te(Ou, 'runtime', qe),
Te(Ou, 'typeName', 'SearchResultDictionaryProperty'),
Te(
Ou,
'fields',
qe.util.newFieldList(
() => [{
no: 1,
name: 'id',
kind: 'scalar',
T: 9
},
{
no: 2,
name: 'values',
kind: 'scalar',
T: 9,
repeated: !0
}
]
)
);
the proto is in the JS (https://poe.ninja/assets/index-fbdc5a03.js) @south dragon
hi guys, is there a certain API that can see the most used skill gems currently in the league like how poeninja does it
just use poeninja data unless you have a reason not to
i always run into error everytime i try to extract the "builds" data
i have no problem with the currency api
the alternate, aka what poeninja does, is crawl the entire ladder + the people who connect their accounts
Good morning, sorry for asking but I have the same issue as https://github.com/SnosMe/awakened-poe-trade/issues/807
Since I'm not an IT expert, has this issue been fixed but not incorporated in the latest build of PoE Awakened?
I don't know what a pull request means 🙂
Ok thx
anyone aware of a way to pull all possible stat tiers for the various types of items?
I found RePoE repo, but dont see anything there
Thanks in advance!
l think this has been asked before but l haven't seen a good answer. you could maybe try looking at https://github.com/DanielWieder/PoeCraftLib or the other crafting tool linked from its Readme and see if they have anything like what you want. what are you wanting to accomplish?
Crafting library for Path of Exile. Contribute to DanielWieder/PoeCraftLib development by creating an account on GitHub.
or you could try looking in pob's data files. l recently added a json export of those files to my repoe fork https://lvlvllvlvllvlvl.github.io/RePoE/pob/ but l haven't actually looked at the data much so lm not sure if it has what you need
Oh gosh, why?
the raw data is here if you want it in Lua format or if there's something missing from the json https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/dev/src%2FData
l wanted the QueryMods data.
Well obviously 😛 Wondering more why you wanted PoB's specifically
Instead of grabbing the raw data or something
l did end up getting the raw data, added it to the repoe stat_translations files, but at the time l thought it would be safer to use something that was actually used and tested. plus adding the Lua export was a fun challenge
Remove skill special effects, is there any tutorial?
I have given up on this ninja project, it is too difficult
against ToS
ok
hey @velvet fog any idea where the stat tiers are sourced from on poedb pls?
in short, from game files, including data/mods.dat64, data/stats.dat64, data/tags.dat64, data/moddomains.dat64, data/modgeneration.dat64, data/modfamily.dat64, data/grantedeffectperlevel.dat64, data/grantedeffects.dat64, data/bufftemplates.dat64, metadata/statdescriptions/*_stat_descriptions.txt, item metadata files(.it, .itc), and combined the results.
you can trace RePoE mods.py https://github.com/brather1ng/RePoE/blob/master/RePoE/parser/modules/mods.py
and the wiki also https://www.poewiki.net/wiki/List_of_modifiers_for_one-handed_axes
This is a list of modifiers compatible with one-handed axes.
the mods part of incursion, delve and synthesis are manually maintained table
It looks like the Acquisiton fork people are looking for some assistance/guidance when it comes to GGG and OAuth https://github.com/testpushpleaseignore/acquisition/issues/42#issuecomment-1756723600
l've added a file linking mod weights to base types https://lvlvllvlvllvlvl.github.io/RePoE/mods_by_base.json. l also added mod text to mods.json. l don't have a lot of time to validate the data so if you see any issues with it please let me know.
Hey @fickle yew ! I was referred here by the PoE wiki discord. im developing an extension for the wiki and am hoping to add PoE ninja prices to item pages. Any chance we could get the wiki whitelisted in your API for CORS to allow for the request? https://github.com/SeaStove/poe-wiki-trade-link/tree/main
Hey. I don't do CORS unfortunately. Too hard to control the amount of traffic with the tools I have available. I get a lot of requests for it. One thought though, wouldn't it make more sense to add this functionality (trade links etc) to the wiki itself instead of making an extension?
Makes sense Ty for the reply! I agree it would be better as a direct addition to the wiki, I’ll work with the team there to see if it’s possible
Feel free to reach out again if you go that way. Then we can investigate if we can find a solution.
Awesome ty!!
would you be willing to share this data in a machine-readable format?
is there a way to filter craftofexile affinities to impending doom?
Where does people fetch gem info? Or do i need a scraper for that (Scrape from poewiki)..?
Note that if you're sourcing things from the wiki, you should use the API endpoints rather than scraping page text.
oh sweet, this will get me going. Thanks zao
You write queries that resemble the SQL-like language that the cargo tables on the wiki are built with.
oh so its not a usual rest api.. 😄
The examples there should probably get you going, and you can look at the source for pages of interest to see how those tables are populated.
There's probably a way to see the table schemas too somewhere.
aight. Thanks a lot. Im sure i can get my data with these tips
there's also https://poegems.com/json
Would anyone have an idea on how to search for specific images from the poe cdn? I haven't been able to find a tool that aggregates all of the images, but maybe I'm not looking hard enough
what specifically are you trying to do?
Just get images for various league mechanics etc
Basically how does poedb know where to find the images? Is it looking at the PoE game files and pulling images from there?
Yes. I imagine chuan just finds the data that is new for a league and pulls all related images.
Yea was just wondering how he even finds it, thanks.
Lately there have been brand new DAT files added that are league specific. Otherwise looking in commonly referenced files for new data appended to the end is the other way
@velvet fog sorry for the @, if you don't want to reveal your secrets its fine.
The official cdn only has basic items and uniques.
The image location is stored in .dat.
If it is an image starting with Art/2DArt/UIImages/, go to art/uiimages1.txt to find the corresponding image file. This part is rarely stored in cdn.
You can also check items from the official trade and obtain cdn image information, but the images here will be processed and start with gen/.
It is recommended to create your own cdn and then use cloudflare to do free image caching.
I only see .bundle files. Cant seem to find any .dat or .txt
you need to extract it from bundle https://github.com/PoE-Tool-Dev/ggpk.discussion/wiki/Bundle-scheme
Ok this seems way more involved than I was planning lol. I will just stick to plucking random images I find off poedb. Thanks again 🙂
If you're familiar with docker I set this up a while ago https://github.com/HeartofPhos/exile-export for exporting dat files
Messed around a bit with images here https://github.com/HeartofPhos/exile-export/tree/main/poe-image which might be an easier starting point
Thanks for the resource! I will keep it in mind if poedb doesn’t have what I need 🙂
GFNPoEPriceCheck creates a bridge between Awakened PoE Trade and Geforce NOW. With this you are able to perform price check in POE GFN.
Please check it out and share your opinion with me.
https://github.com/KloppstockBw/GFNPoEPriceCheck
🤯
I am still in the process of ensuring functionality and adding features to the script. The code will be cleaned up afterwards. I'm also not an it employee, in case anyone is wondering. 
a few questions about the stash river api
- can the same stash appear more than once in the same change id? if yes, presumably all instances but the last will be empty?
- can the same item appear more than once in the same change id? if yes, presumably the stash array inside one change can be treated as a sequence of updates sorted by their time of occurrence and all instances of the same item except the last one can be ignored?
trying to get batching working, would like to understand constraints i can use to reduce the amount of work i have to do
obviously can be done without any assumptions but dropping duplicates is a bit of a pain with how much processing i already do
- no
- in theory no. The resulting array isn't quite sorted by time as there are multiple shards of data packed after each other in the one response
This sounds ominous:
Updated the storage of some assets to improve how they are loaded. This will increase the size of this patch due to the affected assets needing to be re-downloaded.
Hoping it's just some rebundling, I'm deep in PoB rendering atm.
nothing too crazy
fixing these exports up now
I'm relatively new to programming and can't really find an answer anywhere, but is there a way to get all item / currency data from the poe.ninja API with one request? I've started by making something simple that just tells you the value of each tribe in tota and I have it working but to do that I need several different api calls which isn't great since the latency of each call adds up, and when I refresh it just means the app freezes for 5-6 seconds, so I figure calling the api once would reduce that lag significantly.
Sounds like the kind of thing you'd query occasionally centrally and cache.
I think that's what I've been doing, like I request each api for currency, omens, tattoos, etc then store them as files but obviously those files need to be updated once in a while so I have a button to refresh, so whenever I click the button it does all the calls again and updates things. I've been thinking my other option is to look into multithreading, if the refresh is done on another thread I assume the app won't freeze while it's happening
Which endpoints are you currently using?
If you can't do concurrent request processing in your backend, there's also the option to do the fetch out-of-band in a cronjob/timer and reload the files.
But yeah, if there are distinct endpoints, you can't do much else than query them each in turn, being kind to the server.
By endpoint you mean the API links, right? Again, pretty new to this. But if so then poe.ninja/api/data/itemoverview?league=Ancestor&type=Tattoo for example is for tattoos, with the type changing for different things.
This is right, if you are making blocking api calls on the UI thread it will freeze the UI while the call happens. If you do it on another thread the UI will remain unblocked
And yeah, if the "app" is a standalone program, do it in a background thread. If you've got a server of yours involved somewhere, consider using that instead of hammering the ninja API from all your client apps.
Ty, thankfully it seems like multithreading is fairly simple in python. @worthy cape Ye this is just something I'm making to learn, not planning on making it a public thing or anything so won't have to worry about people spamming the api
thankfully it seems like multithreading is fairly simple in python
-- 10 Haunting Messages Sent Moments Before Disaster
rip, thankfully I've found a video tutorial that seems to include exactly what I need, doing api requests in the background.
I'm not super familiar with the python ecosystem but based on a few quick web searches, you probably want to use either httpx or aiohttp
I'm bashing my head against a wall here, maybe one of you guys can help me out.
I want to generate URLs that open the trade site for specific items. For the normal search that's simple enough, you just GET https://www.pathofexile.com/trade/search/{league}?q={query} .
Now I'm trying to do the same thing for the bulk exchange, and failing miserably. I've tried lots of variations I found in old Reddit posts, but non of that worked.
have you tried looking the network tab in chrome?
e.g.
https://www.pathofexile.com/trade/search/Ancestor?q={"query":{"type":"Blessing of Chayula"}} for Blessing of Chayula
Yeah, that's for the regular search though. I'm interested in the bulk item exchange, e.g. https://www.pathofexile.com/trade/exchange/Ancestor/EbbkrgBH5
you can just click on the links from PoE ninja before chrome turns the above into a trade link
Oooooh, I found my mistake. I was trying with the query {"status":{"option":"online"},"have":["chaos","divine"],"want":["polished-legion-scarab"]},"sort":{"have":"asc"},"engine":"new"} all the time, but that one is for the trade api. There's stuff in there the frontend apparently can't handle.
Thanks a ton for pointing me in the right direction @carmine merlin !
Hi, I am trying to use awakened poe trade but everytime it is launched, my poe screen turns grey. What is even weirder is that if my click on anything other than poe (I have 2 monitors), it stopes being grey, but once i click on the poe screen it turns grey again.
tldr something weird with your drivers/compositor and can only be solved by you
Is there an explicit list of actions allowed/disallowed by third party applications? I am developing an accessibility tool for my friend who is blind and I don't want to accidentally breach any ToS.
So far there is only live OCR for buff and icon recognition, but I am hesitant to do anything else.
no, not really
the guideline with OCR is it has to be user-initiated and one-time, no continuous screen scraping
Oh...
you can ask GGG but the response will most likely be that they discourage the development of that kind of third party tool
That's a shame. Would the support email be the best place to inquire?
Or the forums?
Automated response
Still a human, but it's definitely the archetypical response.
No way GGG support has a 15 second response time.
Cast-on-SMTP
I guess some requests may be a bit easier to template-respond to than others. Mine had a reasonable round-trip time and actual discussion and understanding of the project.
I doubt you will get a different answer no matter who you ask, it's just a slippery slope to reply with anything else
and while your usecase is positive, it still breaks tos
The plausible deniability for combating bots I assume is important
I guess I'll just look at what other popular tools are doing and plan it out based on that. Thanks guys.
I put this tool together over the weekend and felt like sharing: https://vindexus.github.io/WatchersEyeSearch/?
Search trade for Watcher's Eyes that fit your build.
what data source are you using for mods?
I grabbed the text PoEWiki
The wiki doesn't include legacy mods, just so you know. E.g. https://www.pathofexile.com/trade/search/Standard/q7qLkHg for Vitality's
I hope you're using the wiki API rather than scraping page texts.
Looks to be manually grabbed then hardcoded
Yeah I just copy and pasted the mods from poewiki. I got the stat ids from watching network tab on the trade site then wrote a tiny script to match up the text mods with their stat ids.
Didn't even know that existed tbh! Will have to look into it
Thanks, that'll be worth adding in. I might mark some mods as "Legacy" to keep it clear
Speaking of getting mod data, is even though RePoE and PyPoE is 2 years old is it still the best way to get item mod groups/tiers and what not
The wiki has a PyPoE maintained for internal use and IV_IS has a RePoE fork: https://github.com/lvlvllvlvllvlvl/RePoE
I found a fun glitch in my Bun, where the fancy new path hash detection scheme fails on older bundles as at some point in time there wasn't a distinct root directory entry.
Noticed this on a 3.12 version, will make it detect the 'Art' directory hash instead which should be universally present.
famous last words
Is there a consistent way to determine if an item is drop-disabled in the item data files in content.ggpk?
I see 441 divination cards listed in baseitemtypes. The wiki says there are 428 drop enabled divination cards. These are the cards included in my results that are not on the wiki:
"Birth of the Three"
"The Devastator"
"Luck of the Vaal"
"The Valley of Steel Boxes"
"Blessing of God"
"The Mayor"
"The Bargain"
"Friendship"
"Squandered Prosperity"
"The Sustenance"
"The Long Watch"
"Treasures of the Vaal"
"His Judgement"
It looks like I can narrow this down by removing cards with a Description of "Disabled" and cards which have SiteVisibility set to something other than 1. But that still leaves me with:
"Birth of the Three"
"The Devastator"
"Luck of the Vaal"
"Blessing of God"
"Treasures of the Vaal"
I'm not aware of any way, but other people know better than me
Hoping to avoid having to maintain a hard-coded exception list. I'm also questioning how safe it is to rely on SiteVisibility. 😦
The wiki indicates whether divination cards are drop-enabled. I wonder if they datamine that somehow, or if they've manually entered the exceptions as well.
You can always try asking over in the wiki discord, or just the #wiki channel
Though the people that are most likely to know probably check here fairly often
I was unaware the wiki had a discord. I've joined that now and can ask there too. Thank you! 🙂
No problem
As a separate question, I'm curious what the compression algorithm is called that GGG uses to compress the files into Content.ggpk (GGG launcher) and/or *.bundle.bin files (Steam launcher)? Or is it something proprietary?
I'm aware of a few commonly used PoE-specific tools for decompressing those files, but I'd love a convenient way to work with them from the JVM and hoping I can find it under another name. 🙂
and ggpk https://poedb.tw/us/GGPK
ggpk contains bundle files, steam will expand all files in ggpk
Oodle is the proprietary tech you're looking for. Lots of games use it for compression. There is an open source implementation that @worthy cape forked here for poe purposes (compiled binary in the releases) https://github.com/zao/ooz
Divination Cards
Thank you both!
I'll look into this a bit more later tonight, but these are great leads
As the name suggests, GGPK was developed at GGG, and is specific to them. I'm not sure about the bundle format but I suspect that was in-house as well.
Wires77 is correct that the compressor used in bundles is Oodle, but that's only one part of the picture
Ah, that's too bad. Was hoping it would be as simple as finding a JVM Oodle compression library, pointing it at the file, and calling it a day.
Yeah, unfortunately I don't know as there are a lot of options there. RAD / Epic don't provide a Java implementation, and I'm not aware of any other third-party implementations other than ooz.
You might be able to call into ooz (or Oodle) using JNI, but I understand that's pretty painful to work with. It might get easier with FFM in Java 22, but I don't know much about that or when it's going to be out.
Yeah, if I couldn't find a JVM solution I was thinking about looking into JNI with https://github.com/aianlinb/LibGGPK3. But that's probably more work than it's worth.
For now I'm probably just going to manually export the files I need as CSV or JSON using one of the existing non-JVM tools and code against the CSV/JSON. Can just defer this problem for later.
has anyone used the anaconda navigator?
im wondering if something like "exile-leveling" can be an overlay like questie in WoW ? objectives disapper as you complete, importing your build so that you know which gems to take from rewards and buy, maybe auto allocate passive skill tree too ?
There are limited data sources that programs can legally obtain data from - essentially only the client log (looking at zones entered and other logged data like voice lines) and the API endpoints.
Anything that automatically does tasks for you is way off in ToS violation territory. PoE's attitude to plugins and external interaction is way stricter than WoW.
While you can show things above the game window, it tends to be for temporary overlays like the TFT Blacklist popups and Awakened PoE Trade price checks, rather than something persistent which wreaks havoc on input.
Levelling assistants are better off on a secondary screen, where you probably have PoB anyway.
thats the first thing came to mind but right now i dont have much space for secondary monitor even tho im a developer lol.
auto allocating passives are not on the table then. how about levelling assistant features such as which gems to pick what to do at some points i also think this as a race practice tool.
Maybe you can make a complement to that exile-levelling thing and https://github.com/exilekit/poesplit - or contribute features to either.
thats why im asking if what im describing is even possible if so, then why not.
every tool makes mention of client log and i dont know yet how much information it has so idk if its possible like a tool similar to questie in WoW
Essentially none of the game data is available to you, so following along the progress is rough. ExileKit's project leverages the client log.
You also don't have any way to draw things inside the game, and the actions you may send to the game are very limited by the rules.
you mean whatever overlay i could make must only appear at the client's command like a shortcut.
if you just read the client log and display stuff dynamically i am sure you could make a semi decent interactive overlay
question is how many people dont just use the website for it via steam overlays
huh, i didnt followed much how steam changed their overlays
They now have a browser overlay that stores the last tabs iirc
Didn't toy around with it as I felt alt tab was as good or just using the second screen
yes it feels good. they can be pinned like an actual overlay to the game as well
i really liked it
Yeah, no actions at all may be automated
@subtle bluff Exile levelling is supported in Lailloken-UI btw
@velvet fog Could you please stop having exact dates for when you think the leagues will end and start on poedb unless confirmed by GGG? It's been actively misleading people into thinking it's when things happen.
At least annotate them to be estimates or point out the source for them, please.
prediction is added before the name and linked to the official forum
Wraeclst Map (High Resolution)
https://poedb.tw/us/Wraeclast_Map
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
being able to "drag" it when its zoomed out seems like a mistake, and doesnt give good feedback, but overall it looks cool
Nice. I made something similar a while back, but it's definitely still a work in progress.
wow, I'm planning this too
Awesome
https://poedb.tw/us/FlavourText
You can search for all related FlavourText here, including flavor of unique items, various dialogues, area descriptions, item descriptions, etc.
- AlternatePassiveSkills
- AncestralTrialItems
- AtlasNode
- BaseItemTypes
- CharacterTextAudio
- IncursionRooms
- MapPins
- NPCTextAudio
- PassiveSkills
- Prophecies
- UniqueItems
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
Oh gods. The new league name won't be confusing at all.
oh no, league name collides with delirium
😸
Yeah I just thought so, wasn't affliction the internal name for Delirium 😄
affliction2023rewardtypes.dat
That was my first thought too 
AfflictionNoNotThatOneTheOtherOne
Afflictwon.
Afflic2ion?
The NewAffliction™ from Apple
IAffliction or Iffliction?
NewIfliictionPad (spelling not included)
affliction3.final.really.poe
PoE is Java now?
I wonder if I'll manage to tie my projects up for the next league. Inya is creeping in scope something bad.
https://github.com/flbraun/poe-palette
A tool I made after being frustrated with alt-tabbing through too many windows and rifling through too many bookmarks.
Would love some feedback if anyone want to try it out.
Looks neat - seems like a model citizen in the vaguely interacting group of tools.
@shy marten When it says "ingame items", does it gather information on an hovered item much like APT and other tools with Ctrl(+Highlight)+C, or is it solely a type-to-find field?
type-to-find, but: https://github.com/flbraun/poe-palette/issues/10
My guess is the latter, but someone used to another tool may be confused by the wording 🙂
I'd like to implement that before Affliction launch, but not sure if I can manage to do so. Haven't looked into the todos yet.
Hey question for someone who made a public client using the developer api. Do I need the local redirect uri e.g. http://localhost:4000 to be listed in the Redirect URIs of my oauth application? And how does the auth process differentiate between public and confidential client, just the redirect_uri being local? Thanks in advance.
For context I want to make my application open source (doesn't do anything useful yet), for normal use someone would just access my website which would be a confidential client. But if a developer wants to make some changes and run it on their own system to test etc. they somehow need to authenticate on their own system, so the locally running instance would be a public client.
Last time I asked about redirect URLs and ports was around here: #tooldev-general message
Given that the URLs and grants are likely to be significantly different, it kind of fells like you'd have distinct app registrations for the purposes.
yeah I saw that couple hours ago, while doing some more research, so I would definitely need to ask for that change in my application. The public client uses the same stuff as the confidential client (- the service scopes) so from that perspective the same application should be fine. But I guess I can just explain it in the email, and if they think a new application would be better thats fine with me too.
My only issue I have now is how to authentication flow would look like for the public client. I have the pkce authorization_code flow implemented for my confidation client and that works. If I understand it correctly for a public client I would just do the same, but without sending a secret key when requesting the token from "https://www.pathofexile.com/oauth/token" and the localhost redirect url of course. Is that correct, as I obviously would not want to share the secret key of my application? Would test it myself, but I have first to request the changes :(
you can't use localhost as incorrectredirect_uri
now im confused the docs say: Must only use the Authorization Code (with PKCE) grant type and must use a local redirect URI.
so yeah not localhost but http://localhost:4000/auth/callback/poe to be more concrete
Are you familiar with the fairly recent public clients, that only have localhost as URI and running only in the user's own context?
oh!? sorry about that, I don't use public clients
They're kind of intended for the type of account access that you might want to do with tools like PoB - that don't have any server infrastructure but wish to perform a bit more elevated tasks without resorting to a SESSIONID.
They'd spawn up a browser to auth the user as themselves and get redirected back to a local service port they listen on solely for the auth process.
did it again, I wonder what causes it
maybe running a search, switching trees/item sets, then opening it again
oh yeah, I think it's because the second tree/item set doesn't have clusters
checking before I make an application. Is OAuth required to fetch an account's Unique stash tab's completion and contents via the API if they are made public?
There is some limited stuff that doesn't require OAuth, so was just checking
@fickle yew referencing a poecdn image that's 404
am I crazy or did the trade site used to count crafted prefix/suffix as empty prefix/suffix?
it definitely doesn't now
eg item with 2 suffix and 1 crafted suffix is not returned for empty suffix min 1
not as far as I can remember
guess I'm crazy 😆
some official announcement missing images
https://www.pathofexile.com/forum/view-thread/1085787
https://www.pathofexile.com/forum/view-thread/1640551
https://www.pathofexile.com/forum/view-thread/1749171
https://www.pathofexile.com/forum/view-thread/1819810
https://www.pathofexile.com/forum/view-thread/1591208
https://www.pathofexile.com/forum/view-thread/1683690
some of the announcements missing all contents
https://www.pathofexile.com/forum/view-thread/1015786
does anyone have experience with poe api? im trying to get access token for public client as described in https://www.pathofexile.com/developer/docs/authorization#oauth
but when making post request from step 4 i get 403 response with content looking like this
make sure you're setting your user agent correctly
https://www.pathofexile.com/developer/docs/index#guidelines
forgot about that, thank you
Hi there, are there dictionary of official GGG translations of in game terms (to other languages), parsed from in game translations?
I believe that they store all translations in dat files, mb someone parsed them
Those are the files we use to get the english translations for PoB
Oh, thank you, that exactly what i was looking for!
The classic off by 603 error
quick mafs
Anyone happen to know the inventoryId for weapon swap?
It's Weapon2 and Offhand2 apparently
Path of Exile 2 collected 34 Skill Gems and 24 Support Gems:
https://poedb.tw/us/poe2#Gems
hi guys, is there a way to use the API to track hardcore deaths? is it just by seeing them move from hardcore league to standard?
there is no exp loss in HC?
Not sure if anyone has bothered looking when staring in disbelief at their screen 😄
they're marked as dead on the HC ladder? Unless you mean more for personal characters
ohh its on the ladder not the not the character, right thanks
Also you do lose xp in hc
when you get migrated you still have -10%
ahh nice my existing functionality should work then
https://github.com/grindinggear/skilltree-export/releases/tag/3.23.0
https://github.com/grindinggear/atlastree-export/releases/tag/3.23.0
@compact isle are the new Azmiri ascendancy's meant to have line returns in them? Specifically the Warlock power nodes
reminder text auto-adds line-returns in-game and in-website IIRC
Hey guys, I can't really into PoB dev but I've made some quick dirty changes to some int gems (Arc, crackling lance qual, pen brand, div ire). They all seem to be working right in the normal branch so I'm just gonna drop the act_int.lua here, maybe somebody will find it useful. https://github.com/MarsAndon/Rubbish/blob/main/act_int.lua
I had these values for penance brand (wrong)
baseEffectiveness = 6.23,
incrementalEffectiveness = 0.042557,
I'm getting wrong lv1 dmg values with those, at least in excel
Oh yeah, I messed up somewhere
Looks correct other than your level 40 placeholder value for penance if someone somehow reaches that
That was me learning what I'm doing and I forgot to fix it 
I feel a little troubled because the corresponding talents and colors of the three ascendancy are different.
For example:
You use Primal Wisp to buy Tincture from Warden of the Maji, But Warden of the Maji have Vivid Wisps found passive, not Primal Wisps found passive.
Based on what I can see from https://www.pathofexile.com/developer/docs/reference there are no endpoints for getting Guild Stash data?
The endpoint we've been using (with Session ID auth, not OAuth) is https://www.pathofexile.com/character-window/get-guild-stash-items
isnt there a more accurate POE API docs on github ?
This one?
https://poedb.tw/us/poe-api#/
https://github.com/Chuanhsing/poe-api/
It's unfortunately not very accurate from what I can see
It shows the /api/stash/{league} endpiont as having no response objects 😄
I tried using NSwag to generate a client based on the YAML shared in that repo to no avail. You're better off hand-rolling your own client based on GGG's docs.
Is there another repo you're referring to with perhaps a more up-to-date or accurate OpenAPI spec?
probably not
the public facing API is ... how do i say... lackluster.
also if it's specifically guild stash tab
i thought you can only access the public tabs in a guild stash from the account that registered teh guild. I may be wrong
as opposed to from any account attached to that guild
Nah it's accessible by anyone in the guild
oh ok
there's somethign wonkey about it when I was doing some work with it a while back
can't really remember tho
I don't believe the gstash is exposed in the proper API.
it isn't 
Only ever consumed audit entries myself, never looked for contents.
oh well there ya go
kk. gonna have to remove that feature in our next releaes 
else everyone on reddit will scold me for still including Session ID as an auth method 
step 1: f*$k ppl on reddit.
it is unfortunate that the safer more streamlined alternative doesn't yield access to the same data
GGG literally doesn't have someone that is responsible for the *pub facingAPI
it's an afterthough for those that do the tradesite<>db work
oh dang, I thought Novynn was
He with Many Hats.
Not the kind of thing you'd have a FTE for.
I'm sure Nov does some work with it
It's not a vital business function like most other APIs are - it's more a nice-to-have.
but it's not like a line item in sprints
"not too much on fire, good"
"if on fire, break glass and limit non-ggg requests until fixed"
Who's your User-Agent and what does he do?
🤣

@bright ridge what are you working on?
I'm the dev for the Chaos Recipe Enhancer
oh dang
😉
I finally got OAuth integrated with the app. just working on migrating all of our API service calls to the OAuth enabled endpoints
Sure thing, thanks for your support 🙂
It uses neither
oh custom?
It's a custom built desktop app
nice

Under the hood it's running .NET 7 (soon to be upgraded to 8) and WPF
Our package is less than 10 mb. I'd like to keep it that way
any interest in licensing the overlay package? I have an app for POEnexus.com that needs an overlay component.
idk how to write that stuff
it's needing a rewrite, funny enough
we have a long way to go as it's still usntable years into building this thing hehe
my priority this league was in the auth stuff since that required setting up some back-end infra on the cloud
rewriting the overlay component will be my focus going into 3.24 and beyond
right on. if we don't find someone to get the overlay done this league, I'll hit you up ~3.24
SnosMe published the overlay stuff he made for Awakened POE Trade
yeah electron
CRE crashes on me every 6 sets or so these days, hopefully overlay rewrite will fix it up
haha yeah it's unfortuante and i do also run into the crashes. tons of null pointer exceptions
I'm not going to fall into the "how hard could it be, just gonna take a peek" trap this time.
oh @craggy beacon Quitty told me you are the guy I should talk to about the 2 apps i'm trying to get working for POEnexus.com. If you got any time in next week before launch I'd love to bend your ear about a couple of things.
I probably will have some time what sort of things?
Mind if I take it to PMs?
Yeah no problem
guild stuff for OAuth is on my todo list but we quickly came up with concerns of the privacy of other members in your guild. It's sort of weird since in this case you aren't the resource owner unlike stashes/characters etc
but then requiring the account requesting the details be the guild leader seemed too much
that's some good insight. thanks for the info! i'll be on the lookout for any developments on this in the future 🙂
though for just stash tabs that's less of a concern... hmm

Novynn, any chance of getting an item added to you API updates list?
there's no way uniquely identify the current active league *name, like if you wanted to get the leauge name dynamically.

you need the league name entered manually somewhere beforehand. whether it's hardcoded or selected
Even if we had a way to get active temp leagues you'd still need to make a selection since there's a few variants
- softcore trade
- softcore ssf
- hc trade
- hc trade
- ... (ruthless variants, private leagues, etc.)
yeah, and only way to do that is by knowing the name beforehand. i was just hoping they could add a unqiue word or something to the text of the JSON for the league so that you could pull the name from that dynamically
The league endpoint doesn't require you to be authenticated and can be accessed dynamically
That's how we populate our league dropdown without having to manually update any code
correct, but without user input yo uhave no way of identifying the league name
i mean i guess i could do it subtractively
Curious to know your use case
Is this a custom app that will only ever be used in say, Trade SC Temp league?
And if the user wants to use it in Standard or SSF Temp league etc. it won't work? cuz in that case wouldn't they need to pick anyways
so it's like 2 fold
-
how do i populate the options presented to my users? <-- dynamic fetch using leagues endpoint
-
how do i get the name of a league before it comes out (for instance, Afflication is not currently returned by that endpoint) <-- i don't know the answer to this question
yeah it's for my Trade system app i'm wokring on, along with other things. I've jsut been hardcoding the league name once it comes out
because a lot of things require you to have the league name for API calls, etc
there annoyingly isn't a concept of an THE "active league" outside of marketing material and one manual place I update for ladders to work >_>
GGG, ninja, etc
right, that's why I was hoping the output of https://api.pathofexile.com/leagues could have just 1 unique value / text somewhere that woudl allow you to identify the [ ]
the league itself gets set up in the backend once the game is the right version so like 3 hours before it starts
description "Journey to the Karui Afterlife and enter The Trial of the Ancestors.\n\nThis is the default Path of Exile league."
even if you call it had the word current in there, it would be enough
Ahhh that's a nice catch. In that sense ye it's definitely default huh
you have to remember all this stuff is set up with the idea that there would be separate hardcore and softcore leagues running simultaneously so knowing which single individual one is active/current isn't a thing
leagues are just options for you to pick on the character screen
marketing makes it seem more :^)
we can possibly hook into the manual ladder thiiiiing
where is it pulling the description from in the JSON output ?
ggpk should have the "string" in there
because the word Default appears 3 times i the output, and I've been considering using that to subtratively get the league name
ActiveSettings.dat I guess?
so your idea is to put "current": true on all of the challenge leagues in that endpoint?
no not even adding a var key
jsut adding the word in the description
but it seems like the desc is used for multiple league variants
I mean.. every league that's in the league endpiont response is active tho so I'm still having trouble wrapping my head around what you need this for 
Fond memories of Anarchy/Onslaught, Domination/Nemesis, etc.
liek if i wanted to dynamically get the league name, I'd have to search for the phrase default Path in the desc which gives me the entries for the league and NOW the Ruthless league. (Ancestor, and Ruthless ancestor)
if you app requires users or yourself to manually check or input the league name then it doesn't matter, or if you hardcode it once it's releaved
but if you don't, and you want to get it dynamically (and not have to change the code), i'd have to fitler the previous, then truncate the name out of the 2 remaining entries
so you just want the current league category rather? Like for 3.23 you want whatever endpoint you use to somehow return "Affliction"?
tbh all y'd ahve to do is change the DESC for Ruthless [League] to ...default Ruthless Path of Exile... but it looks like the description is taken from the same one for the league...
so that way if you parse the JSON and then search the Description value for default Path, you'd only get the entry for the league
if you wanted to go as far as to add a key value pair for the league entry, 🤷 not sure you'd need anything for it on the backend ever tho
I'd say that it'd be nicer with a clear informational field somewhere over a secret convention you have to be in the know to leverage.
it's much easier for me to change an API than it is to go harass someone who comes up with those and when they ask why I just say "complicated web reasons
"
i'd agree too
but that requires a structure change
hey, if we could get a unique* key value pair for all the nameology of each game / league type, that'd be great
but that still wouldn't give you the active one
just trying to get some unique value added the entry for the league so ppl can dynamically identify the league name. where is up to you! 🤪
i'm pretty sure it changes array position as well, so i don't think that's static
minor question of little concern, but where does one submit PoB bugs?
If we avoid jumping to suggesting workarounds, what's the concrete problem you run into and what abstract information do you wish you had to make your choices?
Is there a need to somehow know the current "league category" as mentioned, being the human-facing keyword of the marketing league?
Is there a need to somehow classify all the leagues if they're in this category?
Does it interact with private leagues and events - both ones based on the current league, permanent leagues and voided leagues?
git
Preferably the GitHub page: https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/new/choose
And more importantly, what tool use case does this enable - the whole reason for it?
right i mean, if GGG has no reason to need to uniquely identify the base league entry, then there's nothing I can really do. I'll jsut keep having to manually enter/hardcode it or get teh name subtractively

it's entierly minutia
i was honestly just hoping whoever wrote the descriptions could be a little more descriptive. (and use a unique phrase within one of them)
I legitimately would just recommend:
Settings.LeagueName = LeagueList.First();
That's your base league / default league
for what dataset?
I think you're asking too much without being clear in your ask and not understanding that the APIs they have to put out there can't cater to the needs of every single specific app and its specific use case it might have
Moreso, you haven't been clear in your specific use case
I've posted this quite a few times
https://api.pathofexile.com/leagues?type=main&realm=pc
is that systematically any different than my example ? https://api.pathofexile.com/leagues
JSON looks the same
@primal schooner Again not thinking about what they can do and won't do, just the desires and rationale.
yeah i get that you were just generally positing
Correct.. it is the same endpoint. Mine just had some other parameters. I'm not sure if you understand how APIs work based on this
Which is fine, I'm happy to help anyone learn and understand.
i mean, i've only ever used data that was found within a JSON. if there's some way to get metadata from that endpoint, ya i don't knwo how to do that
Here's a neat article I'd recommend: https://www.cloudflare.com/learning/security/api/what-is-api-call/
I like what CloudFlare puts out, they have some neat tools and services
i mean is there other information in the console that is returned other than the data in that JSON package?
where are you getting Settings from?
Oh don't linger on my code snippet, that's from my app. My codebase
I think it's best to focus on fundamentals right now
Learn everything you need to know about HTTP, the protocol that powers the entire web.
I think right now it's a great time to ask some higher level questions for your self to answer, do a bit of research, and then once you have grasped a few of those fundamentals you can apply them to certain use cases and build some really cool stuff!
can you deconstruct what your function does from your code snippet?
currently for my app, I have to hardcode the league name into the leagueName variable. once that variable is set, I can use all the API calls that require the leagueName variable in the GGG/Ninja/etc endpoints
Why can't you just add a drop-down to select the league from the league endpoint
the point was to not have to use hardcoded or user-entered data
which will be required for other things I'm working on.
is that really worth it for the sake of something u would have to update once per league max
that's why i was saying it's not really important
it seems like a mountain out of a molehill
and i was jsut hoping whoever wrote the descriptions for the entries would just slithly modify what they were putting in there as opposed to copying and pasting
How do you know which league to select without user input
yeah, i can do it dynamically anyways. the question was moreover to see if GGG needed it for any reason and if so kill 2 birds w/ 1 stone.
What if I play HC ruthless
It is a league for GGG just a permanent one (no end date)
I'd just use the endpoint and default to the first one with an endpoint as base selection
technically that's a game mode
what do yo umean by "the first one" ?
first in the array built by https://api.pathofexile.com/leagues ?
Yeah just use the data to fill a drop-down and preselect what fits your use case most
yeah, that's fine, but in the cases where there's no user input on teh front end, how do you get the name of the league?
Just select the first in the list.
Which league there's many
again true, there's only ltierally a once every 3 month use case
which "list" are you referring to
We're still talking in circles I feel
The API you linked returns a list of objects
https://api.pathofexile.com/leagues is a JSON format of an array
so idk what list you are referring to
The one list you've been talking about for the past few hours 
The list of leagues. Yes. Array, List, interchangeable vocabulary
Exactly. Select Standard as a default. Then hand-select the league you want after that.
so idk how using the "1st in the list" helps
Second in list is also a valid option
the entire point is to get the name of the league dynamically
Or first that isn't called standard
the app isn't user dependant
i'm literally jsut trying ot get the name of the league dynamically
Take the list sort entries by start date
so now if we are into algorithmically determining the name, I'd just do it my way.
In the case of mid-league events, like the ones just held, those would show up first. Keep that in mind
Pick the last one that matches the rules you want
all I was saying was taht there was no unqiue identifier for the league
Which league
You can code your own rules for what you want to pick. I think it's unreasonable to ask the developer of the League API to hand-bake your rules into their API.
[insert current league name here]
There are many current leagues tho
Trade league, ruthless trade, HC trade, ruthless HC trade?
but there is only 1 current league name
And it's trivial to extract from currently available data
so yeah, filtering is the only way to do it.
right, which is why i said it was, and was only wondering if whoever wrote the descriptions might consider adding the word ruthless into the ruthless league descriptions
It's under the rules key
what is under the rules key?
An array of rules for each league you can check - if it has either ssf or ruthless it's not what you want
not all game modes ahve rules
ie the default league game mode has an empty array
Yes that is what you filter for
So if the array is empty then it could be what you want
If you want SC trade league
Then you filter by empty rules and start date
Or by the name being standard
filter description with This is the default Path of Exile league. and rules is empty?
There'd like 100 ways to do this
yes, there's ways to do it. if you functionally filter. my way works fine as well. I was just saying there's no single unique identifier.
Yes it'd be redundant
i do like empty set rules and startAt
Redundant and like novynn said, there's no functional aspect to the leagues marketing name as an identifier except that one ladder spot, so putting in work to add something like it doesn't make sense
the league announcement page no longer uses "PoE/Item/DeferredItemRenderer" but chunk.js. Is there any reason?
front-end tech from 2023 😄
these got swapped around last minute to make more sense. The livestream has old content
"PoE/Item/DeferredItemRenderer" is more comfortable for programmer to handle
you're not supposed to be using it
does Warden of the Maji use Primal Wisps or Vivid Wisps?
it's a reuse of the forum parser module and you can get a structure similar to public stash, which is very useful
can be used to know in advance the approximate format that public stash can obtain
the OAuth docs are updated before release with all that information
scraping it from website files is not kosher at all
wish to know the transfigured gems format
The embedded items on the announcement page usually have json you can use to test stuff out
if I want to pull a list of prices (say, skill gems), what's the easiest service to do that on? I can't tell if poe.ninja has an API, perhaps it's not public
How can i make Path of Building sim faster? :/ i recently gota new computer and its no faster then my old one. can i allocate more power to it or something?
i was looking for PoB discord to ask, but chould not find it
There's no user-facing Discord for PoB, most of the user-to-user discussion tends to happen on normal Discord servers and TFT.
On performance - it's largely single-threaded so a CPU with better single-core performance may run it better, but depending on what you do it can also be affected by frame rate.
In general, don't put things in Full DPS that you don't really need.
That's the primary thing that tends to bog it down as they drastically increase evaluation cost.
well i have an i7 13700k so, it gets the best it can get wiht 1 core im sure
yeah i get that
I've got no idea if the future updates with 64-bit runtime and a newer LuaJIT will help that kind of performance much.
hope we wone day get 64 bit and multithreading ❤️
half the fun is the build making so
64-bit is already in beta with some annoying windowing bugs, it's opt-in in options. It's going to get behind as work has progressed past since but could be fun to see if it changes performance.
I wouldn't hold my breath for more threading - the monolithic blobby state of the program makes it hard to do much more than amortize the costs with coroutines that run a small increment per frame and longer isolated subscripts.
64 bit is not inherintly multithreading right?
Completely separate concept.
exactly
also i understand like 20% of those words
il tell santa i wish for multithreading, thats all i can do ❤️
i already feel sad for them, new ball lighting changes made their implentation so mutch more complicated
The primary effect of 64-bit on PoB is that it gets more address space so memory won't be as cramped, and some of the Lua implementation gets more efficient.
The downside is that pointers are larger so memory use is slightly higher.
64gb ram, no issue 
The runtime update also pulls in a way way newer LuaJIT version, which probably has some improvements.
every bit can get their own gb,
Don't worry, we can leak it all away with undo states 😉
❤️ pls do, let me test if it all works well
itrs so overkill, i just did not want to care comming 5 years
The biggest glitch in the beta (which is from a month or two ago) is that the window may become unresponsive on non-primary monitors and maximization is wonky.
I had hoped to land this before 3.23 but it snuck up on me 😄
The renderer is so much faster it's not funny.
if you are part of the dev for pob, sounds like it, i thank you for your service ❤️ , nothing is as cozy as to sit in pob before league and planning builds
Zao is honestly a PoB wizard. Does all the hard shit, leaving the rest of us to do all the tiny petty shit.
You're drawing the rest of the owl 
poe.ninja has an API, but it's undocumented. In fact, the entire website is rendered from that API. Check your browser's dev tools to see which endpoint data is loaded from. For skill gem prices of the Ancestor league you're looking for https://poe.ninja/api/data/itemoverview?league=Ancestor&type=SkillGem
Does anyone know when POB will be updated?
updated with what
When there's enough things worth releasing.
Tree could be mostly ready already, uniques can start going in soon, skills has to wait for data mining 3h before launch.
The team in this phase only really has access to the same information as you, the expectant gamer.
In particular, as always, skills cannot be implemented in any sane way from teasers alone, not even the 20/20 type reveals.
The most those tend to give is early headaches when thinking about how to support weird new interactions.
So basically POB will update when league will start
Or some time after
Ty for answer
You may get a QoL release beforehand, but don't expect anything that's not known.
do coordinates in UIImages include right/bottom? otherwise most images end up with odd dimensions
as in, 1419 476 1674 731 is width 256 or 255?
PyPoE computes the width as x2-x1
All my tools have worked with x,y,w,h so "someone else's problem".
I've always done it the same way when hand-cutting.
So to answer your question, the width would be 255.
I was going to suggest looking at if anything had a value matching the rightmost column, but everything is padded for drawing.
kinda odd that the background is 255px then 😦
will there be a Vaal Double Strike of Impaling? or will a successful Vaal Double Strike of Impaling turn into a Vaal Double Strike?
vaal skills will stay normal
same as how alt qual gems are now, base version keeps the alt effect, vaal is vanilla on the same gem
You can Vaal a transfigured gem, but the granted Vaal skill is the old normal one just like it was with alternate qualities before.
How exactly do cluster jewel proxies work? The "position proxy" node defines the angle offset for node 0?
@velvet fog https://poedb.tw/us/Modifiers#Mods doesn't seem to show any content currently.
Seems good now when at home.
are we allowed to make mods by reading and writing memory or is there a certain sdk we should be using?
neither
what tools can we do?
okay cool ty
Absolutely no memory reading, messing with files, network traffic, etc.
Core guideline: don't be a dingus and don't use any toolkit that tries to work around the ToS.
cool so it's just interacting with the api, but how can I show it up in game like some of these tools? like an overlay
They're mostly separate windows with transparency above the game, sending limited keyboard actions.
hmm okay ty
The primary way of exfiltrating information about an item in-game is to send a Ctrl+Highlight+C in response to an user action to get an advanced item description on the clipboard of the item under the cursor.
Trade applications tend to read the client log file which is allowed, parsing chat messages.
The third party ecosystem for PoE isn't overly large and there's no mods like you'd see in other games.
By design.
yeah makes sense
Pretty sure some transfigured gems exists only to troll PoB devs at this point
hey guys, was checking images in the passive tree json, but looks like https://web.poecdn.com/image/passive-skill/ascendancy-background-0.png?9e205cbe gives a 404. Does anyone have a mirror or a copy of this image please ? (It looks like it also has the new ascendancies in it but I can do without for now) (every zoom variant of the image gives a 404 also)
the images are in the repo under the assets folder
the URLs are just there for when 3.23.0 goes live
oh damn you're right I guess I'm too tired to see things clearly, thanks
looks like the patchcdn url has changed from http://patchcdn.pathofexile.com to https://patch.poecdn.com (@civic crane l assume that's why poe-dat-viewer is getting 404s?)
anyone here a maintainer on https://www.poewiki.net or know if they are in any other channels?
There's a dedicated Discord for the Wiki as well
@zenith zodiac ty, fixed
👋
i cant find any place in TOS that prohibits memory reading actually.
Falls under 7b.
It's extremely against the terms of use regardless if you can read or not. I strongly recommmend you drop the topic and do not do it.
Docs explicitly calls out interacting to be against 7b: https://www.pathofexile.com/developer/docs#policy
They're loosely written to capture all the circumvention that people try to do with malicious reads.
im sure thats their intention but id say they have no case. But i do agree, dont release an app that does it.
Don't make an app that does it.
probably counts as reverse engineering
I wonder if I'll ever figure out how tile heights are encoded in data files - it's one of the things I've got on my list to ask if I ever run into a level generation person.
One of those long-term mysteries that elude me.
this isn't a court, trying to rules lawayer will not do you any good
I guess one could attempt to take them to a civil court over the ToU in a relevant jurisdiction and find out the fun way how little the legal system cares about technical loopholes and instead rule on the spirit of the wording and by following prejudicates.
What is this poster originally about? just curious cause never seen it before
Scarfolk is a fictional place in the UK that is kind of stuck in the 70s and has all sorts of satirical and subtly unsettling creations around it, like that series of informational posters.
Ahh i see
Afaik TOS have never really been tried due to companies not wanting to open that can of worms.
But i mean its best to err om the side of caution if you care about your account
Still interesting from a programming/research pov for those that dabble in that
I find that there is enough to delve into without touching and risking the integrity of the game we all care about.
I've got a lot of stuff I can't publish as it would aid cheaters and hackers.
For PoE its way more fulfilling to do positive work that retains the goodwill toward the tools community.
"case"? I wouldn't expect them to take you to court unless you're doing something extremely egregious and probably only if you're making money or something.
What would happen is that you and everyone who uses your software would get permanently banned, possibly with no possibility of unban.
My app doesn't do any sort of memory reading or anything aside watching the Client.txt log file with the user's explicit permission. The overlays we construct are all based on the data we get from the API, everything is hand-rolled and nothing from the actual PoE game client (assets etc.) are used.
If you're interested in the codebase have a gander (hint: it takes a lot to make something like this come together): https://github.com/ChaosRecipeEnhancer/EnhancePoEApp
Hey guys, me again with my tired eyes. Looking at the azmeri sprite in the tree.json, the first zoom's image size is 203x167, but the actual file in the assets folder (ascendancy-0) is only 110x96. Am I missing something here again ? It makes my sprite calculation off and going out of bounds 🤔 (the same thing happens with every zoom level)
"azmeri" uses ascendancy-0.png not background-0.png
yeah it's a typo on my side sorry
i'm actually using ascendancy-0 but the issue remains
I think likely your data.json is out of date
I'll grab it again
okay weird, that's it but I'm pretty sure I started working on this yesterday while you commited this two days ago
thanks again for the fast response, it has some perks to work at night when it's day for you guys hehe
np, also helps that I'm mostly just keeping an eye on this database thing
If i can provide one nitpick that tickles my brain, some fields are still snake_case while most of the new stuff are camelCase 🙂
Gotta keep you on your toes.
you make me use snake case in my clean codebase 
PascalCase enjoyer here 
hi guys, the API seems to be slow / behind the game data by quite a bit now? just me?
2023-12-07 04:19:53 check 1 cookingzombiefalling leage Hardcore level 1 exp 0
probably been about 5mins or so now
things like stashes only reliably get flushed/synced on zone loads, not sure about characters - have you changed zones?
nope just camping the starting area, maybe thats why
Ty, i might check it out if I wanted to make a tool, i dont have any ideas for tools like this, i wanted to practice playing with memory using c++ but since it’s not allowed i wont do it.
are the new gems simply new items/gems, or they modify existing ones somehow?
should be safe to say new items
Oh hey, a torrent.
Anyone else getting a 404 on the torrent post?
Huh, had to refresh while on the page, that prompted the download. That was weird
updated this to include the new passive skill tree URL information
Yep. Also missing all the bundles that could have data files in it, if someone were to be silly and search for delimiters and try to slice out files 😄
is the entirety of the information found in the GGPK known from the communities current ability to RE ?
Not quite sure what you mean there.
like the actual stats / abilities of the new minions
for purposes of spectre'ing
oh nvm i think i see the names on the frontpage
There's some file formats pertaining to client/server objects and actors that may not quite be fully explored, and some tables who don't have all of their schemas mapped out, both type-wise and purpose-wise.
There's also some things that are not known to the client at all.
Those are likely sourced from the Item Filter post.
these look like all teh names of the mobs from the league
oh just the ones yo ucan buy
Indeed.
ah kk
where is this information built from? https://poedb.tw/us/Syndicate_Operative
I'm assuming it's scraped
Yep it is
Mix of data files and tabular data.
wouldn't that be in the ggpk, or is it the part that only comes after the launch?
While you can generally generate a reasonable spectre definition from puzzling together data, much of their AI and skill effects can be very weird.
The preload as it currently exists is largely useless.
At best you can squint at bundle filenames and infer things from those.
For the bundles that are present, you have no index to slice them up once decompressed.
For the bundles that are not present, you have nothing.
Without the index, you have no filenames for bundled files.
i'm just wondering where that stuff is generated from
While you could decompress something like Bundles2/Art/2DArt/BuffIcons/4K_9.bundle.bin, you then have a whole lot of files concatenated together with no names and a lot of work to find where one file ends and the next begins.
poedb, the wiki (and PoB) pieces together meaningful information from several parts of the data files, in ways that I don't care to know about.
Chuan likes to showcase any little sliver of information on their exceptionally well-oiled website.
The wiki tends to work more on what's actually released.
ok, so basically, the information is really only available after the league goes live
All the "traditional" data mining tasks of figuring out what DAT files there are, how they have changed since 3.22.2b and how to connect together all the things - that starts with the league patch 3h before launch.
ah kk got it
Historically it has sometimes been possible to do some of those things as the GGG redactions have been imperfect, but this time they did a solid job of it.
Did you see that you're getting more fields in the league API by the way?
noice
Anybody else having an issue with the Client DL ?
too many ppl hitting DL server, maybe?
worksforme™️
stays at 0 for a bit then bounces up to like ~1mg then back down to 0
is there only 1 DL server?
It's a whole honking CDN for file delivery.
(in NZ) or is it distributed to US node as well?
I forget the name - Highwinds?
It's one of the Big Ones.
Patching also talks to a patch server to determine what to obtain, the protocol of which is described in PyPoE but which I've never really bothered to look at.
Mine is doing this too, for what it's worth
Aye
...no it's definitely a CDN...
when too many concurrent users goes from a good problem to a bad problem.. lol
same 1st time ever
I mean even if it's a CDN, don't they all have to pull a copy from a single server?
patchcdn changed
patchcdn is Highwinds, patch is on CF
i'm assuming their copying started at 11am as well
oh I missed that, what is it now?
You typically preseed the CDN if you expect demand.
Name: 5c3e588941d14ffb8518633c807228b9.pacloudflare.com
Address: 172.65.204.172
Aliases: patch.pathofexile.com
spectrum-patch.pathofexile.com
typically
thanks!
Steam DL still works, regardless. Superior to GGPK anyway 😉
steam looks fine
This is good tho, getting the mandatory snafu out of the way early before the league even starts.
ultimatum 
grrr client jsut crashed back to 0%
It's still hitting Akamai IPs.
nothing in event viewer.. 🤔
[2a02:26f0:9500:10::]
When the patcher restart, it always start to 0% of what miss, doesn't mean you loose previously downloaded stuff
If you downloaded the torrent the patch is only 1.16GB
I have 8.23g after one restart so it's a little bit more
8.67 as per screenies above.
oh ya derp
I did the torrent 1 time, but I did the thing that bricked my installation
and had to reinstall the whole game
so i don't do that any more
It is possible to finish, just did.
It feels like my client is rate limited on the "new" cdn
Downloaded the whole game on steam at 12% standalone 
Apparently zao has the direct hookup
how do you tell what IP / data connection an application is connecting to?
I have like 70mb downloaded on my assets thing while steam did the entire update
netstat or Resource Monitor.
I should've prepared my DAT measuring scripts beforehand, shouldn't I?
I had IPs like [2a02:26f0:9500:10::b833:fcab] in mine, which are from Akamai's blocks.
Missing intermediate hops is normal, relies on the routers to give any hoots about TTL and ICMP.
so, is there a difference between the steam client and the standalone in terms of patching?
need a work around for this
oh should i jsut DL the torrent?
my download seems much better now
Added/removed DAT64: https://gist.github.com/zao/e2219482541f711498fc95b00f960af9
descendancy heehee
I was just going to say the same thing 
huh isnt the patch already up, why do you need torrent
mapdeviceportalformation.dat64: 6 portals in a line, here we come?
cause my patcher is not DLing very well
ah idk steam patched it in like 3 minutes >.>
.>
oboi here we go
2023/12/08 18:46:18 ERROR failed to parse dat file error="failed parsing dat file: format specification inconsistent with data file (spec defines 233 bytes/row, file has 249 bytes/row)" path=Data/ActiveSkills.dat64
2023/12/08 18:46:18 ERROR failed to parse dat file error="failed parsing dat file: format specification inconsistent with data file (spec defines 296 bytes/row, file has 312 bytes/row)" path=Data/BaseItemTypes.dat64
2023/12/08 18:46:20 ERROR failed to parse dat file error="failed parsing dat file: error reading field AdditionalFlags of row 0: unexpected value in high half of longid in array (0000000e00000009 0000000000000009)" path=Data/GrantedEffectStatSetsPerLevel.dat64
2023/12/08 18:46:21 ERROR failed to parse dat file error="failed parsing dat file: format specification inconsistent with data file (spec defines 88 bytes/row, file has 80 bytes/row)" path=Data/GrantedEffectQualityStats.dat64
2023/12/08 18:46:21 ERROR failed to parse dat file error="failed parsing dat file: format specification inconsistent with data file (spec defines 231 bytes/row, file has 135 bytes/row)" path=Data/SkillGems.dat64
2023/12/08 18:46:21 ERROR failed to parse dat file error="failed parsing dat file: format specification inconsistent with data file (spec defines 304 bytes/row, file has 336 bytes/row)" path=Data/PassiveSkills.dat64
dont think ive ever seen it so fast lol
@primal schooner You could try https://inya.zao.se/poe-misc/AfflictionPreload/Content.ggpk if you're desperate, not sure how stable it is.
That's the preload.
i'm DLing the torrent
Rate: 34370.2 / 0.0 KB Uploaded: 1612531.4 MB
Didn't close my client down last night. 😄
do i see 1.6 TB upload right there
client is doing better
Not that many peers so I guess that you're getting a good amount of that upload.
oh client DL'er started working
I see 41 suckers still desperately downloading the torrent 😄
still slow tho
they are racing
oh dang client jsut took off
35meg / sec
ah there we go 50meg / sec solid
Looking on reddit, seems like quite a few people are having download issues.
thank god
Most of the time I'm not bothered by mediocre internet speeds, but then I see you guys post speeds like that and I can't help but feel a little jelly.
well i mean i pay for gigabit internet so when i see 100 KB speeds i get physiclaly sick
boom done lol
DL'd 95% of it in 5 minutes
unfort first 5% took 50 minutes
🤷
anyone knows what the two foreign rows and an int at the end of Characters do? must be related to alt ascendancies?
yeah that's for the api but i'm assuming the data is correspondant
well one is character class definition and the other is data of an existing character 🤷
i don't work with the DAT much, can you paste a SS?
Where is the first place GGG publicly disperses information? Twitter>website>?
Error: DelveCraftingModifiers: real row size 234 vs schema size 235
now they remove columns
i'm working on fixing some dat tables
you think that's worrying, look at this:
2023/12/08 18:46:21 ERROR failed to parse dat file error="failed parsing dat file: format specification inconsistent with data file (spec defines 231 bytes/row, file has 135 bytes/row)" path=Data/SkillGems.dat64
what the fuck did they remove
all the alt qual gems?
well i just do this
makes it pretty easy to see where it went wrong
but half the gems missing, prolly moved it to another table D:
that would be painful
well i cant fit boolean in 2 chars
uh wish i had previous version to compare
size differences for 3.22.2b and 3.23.0 dat files: https://gist.github.com/zao/40c9fe88e1005798ffd1015230f22733
Zao got that BDE for DAT files
did they touch the passive tree this league?
Not much, mostly the descendancies.
might be why
prob alt stuff gone
not yet, updating timeless jewels 😄
looks like the new gems arent in the SkillGems.dat
They're in gemeffects.dat
what happened to alternate quality? is it gone?
Yes
All existing alternate quality gems have now become regular superior quality.
Aye.
anyone figured SkillGems yet?
dat-schema has some updates, PoB gang is going mostly for GemEffects
trans gem have altered icon via shader?
I got really sidetracked by the new hideout 😄
Considering that the art now has the gem gem and golden icon separated in the art, it's quite likely that there's processing going on.
hey i need hglep with awakened poe trade macro, im on w11
it doesnt work becuase if i use portable, it puts whoel blackscreen and i cant run installer neither
@civic crane
hey
i need kinda help
there's real issue on Poe awakened trade macro installer. and im w11 user
First of all when i clicked the installer, it didnt worked at all but i fixed it by activating Compatibility on Windows 8 and it worked the install and all is correct
But when it launches and it says
When awakened trade macro appears like this, the whole screen of poe is in black or grey screen
and if i use Windows or something , the game seems working well and done
And if i kill awakened poe trade macro process in window tray system, all got turned into normal or back whatever it was.
hmm so why do gems have many GemEffects now?
Have you read the patch notes, lol?
i thought the new gems were just new items
Gotta cleverly deduplicate things to generate them all.
Nobody can help me with my issue of poe awakened tade macro ? 😭
so now theres Id column in GemEffects and also in GrantedEffects >.>
Probably not the priority for anyone. I recommend not messing around with compatibility modes, might worsen things more than it helps.
You are the first one with this problem, I have no clue
When i launch the program and i open path of exile
the awakened poe trade icon appears and it puts blackscreen
just saying
where do you get duplicates?
chaosrecipeenhancer just fails on open. Guess api server might be bashed atm
I recommend being nice to the infrastructure.
GGG filter servers seems to be serving outdated copies of 3.22 filters
causing lots of issues
dunno if any GGG people are watching
is GrantedEffectStatSetsPerLevel fixed yet?
ye i already arrived at it too, the fields got mixed up
is it actually attack/offhand crit chance for the two crit fields?
Something like that, the only skills that have entries in the offhand row are the shield skills
so thats what we called it
anyone found a use for extra fields in Characters? Or what the last column of PassiveSkills refers to. what even has 64288 rows o_o
