#tooldev-general

1 messages · Page 8 of 1

worthy cape
#

Chatty cow-orker came by the office 😄

#

It was probably MercuryTrade or something similar:

cold wedge
#

the core features looked the same

worthy cape
#

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.

cold wedge
#

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

worthy cape
round ingot
#

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

frank drift
worthy cape
#

Just a bit discontinued.

frank drift
#

fork is still semi-actively developed

#

I use it

daring moss
#

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.

worthy cape
#

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)

daring moss
#

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

worthy cape
#

What bit would be manual? The sprites section contains all the information you need to make a reverse lookup, doesn't it?

daring moss
#

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

worthy cape
#

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.

daring moss
#

I imagine the PoB one is going to be a massive pain

worthy cape
#

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.

daring moss
#

That's roughly what I've been doing so far, but in Rust with some imgui stuff

worthy cape
#

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.

daring moss
#

oho? next-gen PoB?

frank drift
#

another zao Soon™️ project

daring moss
#

Do you know if the distance for every orbit is defined somewhere?

worthy cape
frank drift
#

oho

worthy cape
#

I forget where the orbit parameters are stored. Some are in the readme in the skilltree repo.

daring moss
#

ye, the angles are in the readme

worthy cape
#

The radii are in the JSON.

#
{ "constants: {
"skillsPerOrbit": [1, 6, 16, 16, 40, 72, 72 ],
"orbitRadii": [0, 82, 162, 335, 493, 662, 846]
}}
daring moss
#

OH

#

dangit, thank you

#

I'm blind

worthy cape
daring moss
#

lmao I'm doing something super wrong

#

love it

#

this is the arcane/profane chemistry wheels btw

#

at least it is consistently wrong

daring moss
#

mad respect to everyone involved with PoB

median marsh
#

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?

hazy fiber
#

sounds like you grabbed the wrong texture file? (a lower res variant?)

median marsh
#

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

daring moss
#

Do the little mastery graphics in the skill texture have any function other than messing around with people

worthy cape
#

Which ones?

daring moss
#

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

worthy cape
#

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?

daring moss
#

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

hazy fiber
#

are they not the ones for clusters?

daring moss
#

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

compact isle
#

definitely a bug that those are in there. Looks like it included all masteries / keystones / etc as normal nodes too

carmine merlin
#

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)

compact isle
#

yep I'll try to do a pass over them all once this fix is in

marble yarrow
#

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

compact isle
vestal pond
#

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

oak estuary
worthy cape
rigid oxide
#

what if he's trying to save space in his custom ggpk history store by using the file from the game's folder KEKShook

worthy cape
#

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.

vestal pond
worthy cape
#

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.

south dragon
#

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.

neon plume
#

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

civic crane
#

new col for totem mtx, will update now

daring moss
#

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/

zenith zodiac
#

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

livid mist
#

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

grave wigeon
#

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.

carmine merlin
grave wigeon
trail cradle
# daring moss short answer to getting the data out is that unless you have the schema or rever...
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

plucky leaf
#

hi guys, is there a certain API that can see the most used skill gems currently in the league like how poeninja does it

frank drift
plucky leaf
#

i have no problem with the currency api

frank drift
#

the alternate, aka what poeninja does, is crawl the entire ladder + the people who connect their accounts

supple glacier
#

I don't know what a pull request means 🙂

hazy fiber
#

open means not in

#

merged means it is in some version of it

supple glacier
#

Ok thx

glacial gyro
#

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!

zenith zodiac
# glacial gyro anyone aware of a way to pull all possible stat tiers for the various types of i...

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?

GitHub

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

zenith zodiac
zenith zodiac
oak estuary
#

Well obviously 😛 Wondering more why you wanted PoB's specifically

#

Instead of grabbing the raw data or something

zenith zodiac
#

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

south dragon
#

Remove skill special effects, is there any tutorial?

south dragon
velvet fog
south dragon
glacial gyro
#

hey @velvet fog any idea where the stat tiers are sourced from on poedb pls?

velvet fog
#

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.

#

the mods part of incursion, delve and synthesis are manually maintained table

candid ridge
zenith zodiac
stable zodiac
#

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

fickle yew
stable zodiac
fickle yew
zenith zodiac
trail cradle
#

is there a way to filter craftofexile affinities to impending doom?

grave wigeon
#

Where does people fetch gem info? Or do i need a scraper for that (Scrape from poewiki)..?

worthy cape
#

Note that if you're sourcing things from the wiki, you should use the API endpoints rather than scraping page text.

grave wigeon
#

So there is a api for this data?

#

that is publicly usable?

grave wigeon
#

oh sweet, this will get me going. Thanks zao

worthy cape
#

You write queries that resemble the SQL-like language that the cargo tables on the wiki are built with.

grave wigeon
#

oh so its not a usual rest api.. 😄

worthy cape
#

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.

grave wigeon
#

aight. Thanks a lot. Im sure i can get my data with these tips

zenith zodiac
green rose
#

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

frank drift
#

what specifically are you trying to do?

green rose
#

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?

oak estuary
#

Yes. I imagine chuan just finds the data that is new for a league and pulls all related images.

green rose
#

Yea was just wondering how he even finds it, thanks.

oak estuary
#

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

green rose
#

@velvet fog sorry for the @, if you don't want to reveal your secrets its fine.

velvet fog
#

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.

green rose
velvet fog
green rose
daring stag
# green rose Ok this seems way more involved than I was planning lol. I will just stick to p...

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

GitHub

Data mining utilities for Path of Exile in Docker. Contribute to HeartofPhos/exile-export development by creating an account on GitHub.

GitHub

Data mining utilities for Path of Exile in Docker. Contribute to HeartofPhos/exile-export development by creating an account on GitHub.

green rose
stone stone
#

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

🤯

stone stone
#

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

rigid oxide
#

a few questions about the stash river api

  1. can the same stash appear more than once in the same change id? if yes, presumably all instances but the last will be empty?
  2. 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
compact isle
#
  1. no
  2. 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
worthy cape
#

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.

pallid wraith
#

Why does it sound ominous

#

Oh

compact isle
#

nothing too crazy

compact isle
slender patio
#

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.

worthy cape
#

Sounds like the kind of thing you'd query occasionally centrally and cache.

slender patio
# worthy cape 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

worthy cape
#

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.

slender patio
#

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.

craggy beacon
worthy cape
#

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.

slender patio
rapid pagoda
slender patio
rapid pagoda
#

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

shy marten
#

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.

shy marten
carmine merlin
#

you can just click on the links from PoE ninja before chrome turns the above into a trade link

shy marten
#

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 !

rocky sorrel
#

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.

civic crane
#

tldr something weird with your drivers/compositor and can only be solved by you

viral junco
#

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.

frank drift
#

no, not really

#

the guideline with OCR is it has to be user-initiated and one-time, no continuous screen scraping

viral junco
#

Oh...

frank drift
#

you can ask GGG but the response will most likely be that they discourage the development of that kind of third party tool

viral junco
#

That's a shame. Would the support email be the best place to inquire?

#

Or the forums?

viral junco
#

Automated response

worthy cape
#

Still a human, but it's definitely the archetypical response.

viral junco
#

No way GGG support has a 15 second response time.

worthy cape
#

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.

formal kraken
#

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

viral junco
#

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.

foggy stag
frank drift
foggy stag
#

I grabbed the text PoEWiki

oak estuary
worthy cape
#

I hope you're using the wiki API rather than scraping page texts.

compact wigeon
#

Looks to be manually grabbed then hardcoded

foggy stag
#

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.

foggy stag
foggy stag
thorny cargo
#

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

worthy cape
worthy cape
#

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.

frank drift
#

famous last words

glossy oracle
#

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

I'm not aware of any way, but other people know better than me

glossy oracle
#

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.

pallid wraith
#

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

glossy oracle
#

I was unaware the wiki had a discord. I've joined that now and can ask there too. Thank you! 🙂

pallid wraith
#

No problem

glossy oracle
#

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

velvet fog
#

ggpk contains bundle files, steam will expand all files in ggpk

oak estuary
glossy oracle
#

Divination Cards

#

Thank you both!

#

I'll look into this a bit more later tonight, but these are great leads

rapid pagoda
#

Wires77 is correct that the compressor used in bundles is Oodle, but that's only one part of the picture

glossy oracle
#

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.

rapid pagoda
#

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.

glossy oracle
#

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.

mossy delta
#

has anyone used the anaconda navigator?

subtle bluff
#

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 ?

worthy cape
#

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.

subtle bluff
subtle bluff
worthy cape
subtle bluff
#

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

worthy cape
#

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.

subtle bluff
worthy cape
grave wren
#

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

subtle bluff
grave wren
#

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

subtle bluff
#

i really liked it

pallid wraith
carmine merlin
#

@subtle bluff Exile levelling is supported in Lailloken-UI btw

worthy cape
#

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

velvet fog
#

prediction is added before the name and linked to the official forum

velvet fog
hazy fiber
#

being able to "drag" it when its zoomed out seems like a mistake, and doesnt give good feedback, but overall it looks cool

swift beacon
#

Nice. I made something similar a while back, but it's definitely still a work in progress.

velvet fog
#

wow, I'm planning this too

swift beacon
velvet fog
#

filling in location information for each chapter

velvet fog
swift beacon
#

Awesome

velvet fog
#

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
worthy cape
#

Oh gods. The new league name won't be confusing at all.

civic crane
#

oh no, league name collides with delirium

worthy cape
#

😸

calm adder
#

Yeah I just thought so, wasn't affliction the internal name for Delirium 😄

golden knot
#

affliction2023rewardtypes.dat

swift beacon
#

That was my first thought too templarLul

rapid pagoda
#

AfflictionNoNotThatOneTheOtherOne

worthy cape
#

Afflictwon.

golden knot
#

Afflic2ion?

clever thistle
#

The NewAffliction™ from Apple

formal kraken
clever thistle
#

NewIfliictionPad (spelling not included)

sick oxide
#

AfflictionProMaxS

#

New_New_Affliction_v2023

formal kraken
#

affliction3.final.really.poe

daring moss
worthy cape
#

I wonder if I'll manage to tie my projects up for the next league. Inya is creeping in scope something bad.

shy marten
#

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.

worthy cape
#

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?

worthy cape
#

My guess is the latter, but someone used to another tool may be confused by the wording 🙂

shy marten
#

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.

digital stirrup
#

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.

worthy cape
#

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.

digital stirrup
#

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

velvet fog
#

you can't use localhost as redirect_uri incorrect

digital stirrup
#

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

worthy cape
velvet fog
#

oh!? sorry about that, I don't use public clients

worthy cape
#

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.

frank drift
#

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

viral junco
#

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?

clever thistle
viral junco
# clever thistle

There is some limited stuff that doesn't require OAuth, so was just checking

haughty steppe
frank drift
#

@fickle yew referencing a poecdn image that's 404

frank drift
#

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

pallid wraith
frank drift
#

guess I'm crazy 😆

near sage
compact isle
near sage
#

forgot about that, thank you

vapid badge
#

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

carmine merlin
#

Those are the files we use to get the english translations for PoB

vapid badge
velvet fog
#

but scroll to bottom, only 391 items

formal kraken
#

The classic off by 603 error

velvet fog
#

Specials have same issue too

#

Total: 2880, but only 2277 items

worthy cape
#

quick mafs

outer jay
#

Anyone happen to know the inventoryId for weapon swap?

outer jay
#

It's Weapon2 and Offhand2 apparently

velvet fog
light tide
#

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?

worthy cape
#

Not sure if anyone has bothered looking when staring in disbelief at their screen 😄

compact isle
#

they're marked as dead on the HC ladder? Unless you mean more for personal characters

light tide
#

ohh its on the ladder not the not the character, right thanks

green rose
#

when you get migrated you still have -10%

light tide
#

ahh nice my existing functionality should work then

carmine merlin
#

@compact isle are the new Azmiri ascendancy's meant to have line returns in them? Specifically the Warlock power nodes

compact isle
#

reminder text auto-adds line-returns in-game and in-website IIRC

uncut lake
carmine merlin
uncut lake
#

I'm getting wrong lv1 dmg values with those, at least in excel

carmine merlin
#

Oh yeah, I messed up somewhere

#

Looks correct other than your level 40 placeholder value for penance if someone somehow reaches that

uncut lake
velvet fog
#

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.

bright ridge
#

The endpoint we've been using (with Session ID auth, not OAuth) is https://www.pathofexile.com/character-window/get-guild-stash-items

primal schooner
#

isnt there a more accurate POE API docs on github ?

bright ridge
#

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?

primal schooner
#

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

bright ridge
#

Nah it's accessible by anyone in the guild

primal schooner
#

oh ok

#

there's somethign wonkey about it when I was doing some work with it a while back

#

can't really remember tho

worthy cape
#

I don't believe the gstash is exposed in the proper API.

craggy beacon
#

it isn't Sadge

worthy cape
#

Only ever consumed audit entries myself, never looked for contents.

primal schooner
#

oh well there ya go

bright ridge
#

kk. gonna have to remove that feature in our next releaes Sadge
else everyone on reddit will scold me for still including Session ID as an auth method cryge

primal schooner
#

step 1: f*$k ppl on reddit.

bright ridge
#

ehh, i completely understand tho. session id is so hacky

#

1 click auth is so nice

primal schooner
#

true

#

i mean, all api should use double handshake auth

bright ridge
#

it is unfortunate that the safer more streamlined alternative doesn't yield access to the same data

primal schooner
#

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

bright ridge
#

oh dang, I thought Novynn was

worthy cape
#

He with Many Hats.

primal schooner
#

it's just not a priority

#

at GGG

worthy cape
#

Not the kind of thing you'd have a FTE for.

primal schooner
#

I'm sure Nov does some work with it

worthy cape
#

It's not a vital business function like most other APIs are - it's more a nice-to-have.

primal schooner
#

but it's not like a line item in sprints

worthy cape
#

"not too much on fire, good"

primal schooner
#

"if on fire, break glass and limit non-ggg requests until fixed"

worthy cape
#

Who's your User-Agent and what does he do?

primal schooner
#

🤣

craggy beacon
primal schooner
#

@bright ridge what are you working on?

bright ridge
#

I'm the dev for the Chaos Recipe Enhancer

primal schooner
#

oh dang

worthy cape
#

PES3_Pitchfork 😉

primal schooner
#

been using that for like 3 years now

#

thnx for all the chaos

bright ridge
#

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 🙂

primal schooner
#

yeah... not sure that's possible

#

does CRE use electron or overwolf?

bright ridge
#

It uses neither

primal schooner
#

oh custom?

bright ridge
#

It's a custom built desktop app

primal schooner
#

nice

craggy beacon
bright ridge
#

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

primal schooner
#

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

bright ridge
#

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

worthy cape
#

Imagine writing and maintaining your own bespoke application runtime.

#

cough PoB

bright ridge
#

rewriting the overlay component will be my focus going into 3.24 and beyond

primal schooner
#

right on. if we don't find someone to get the overlay done this league, I'll hit you up ~3.24

craggy beacon
#

SnosMe published the overlay stuff he made for Awakened POE Trade

primal schooner
#

yeah electron

frank drift
#

CRE crashes on me every 6 sets or so these days, hopefully overlay rewrite will fix it up

bright ridge
#

haha yeah it's unfortuante and i do also run into the crashes. tons of null pointer exceptions

worthy cape
#

I'm not going to fall into the "how hard could it be, just gonna take a peek" trap this time.

primal schooner
#

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.

craggy beacon
#

I probably will have some time what sort of things?

primal schooner
#

Mind if I take it to PMs?

craggy beacon
#

Yeah no problem

compact isle
#

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

bright ridge
#

that's some good insight. thanks for the info! i'll be on the lookout for any developments on this in the future 🙂

compact isle
#

though for just stash tabs that's less of a concern... hmm

worthy cape
primal schooner
#

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.

bright ridge
primal schooner
#

you need the league name entered manually somewhere beforehand. whether it's hardcoded or selected

bright ridge
#

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.)
primal schooner
#

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

bright ridge
#

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

primal schooner
#

correct, but without user input yo uhave no way of identifying the league name

#

i mean i guess i could do it subtractively

bright ridge
#

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

  1. how do i populate the options presented to my users? <-- dynamic fetch using leagues endpoint

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

primal schooner
#

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

compact isle
#

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

primal schooner
#

GGG, ninja, etc

compact isle
primal schooner
#

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

bright ridge
#

Ahhh that's a nice catch. In that sense ye it's definitely default huh

compact isle
#

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

primal schooner
#

where is it pulling the description from in the JSON output ?

compact isle
#

the ✧・゚backend✧・゚

#

meaning the game backend

hazy fiber
#

ggpk should have the "string" in there

compact isle
#

oh there is that thing for the in-game popup

#

yeah

primal schooner
#

because the word Default appears 3 times i the output, and I've been considering using that to subtratively get the league name

compact isle
#

ActiveSettings.dat I guess?

primal schooner
#

but it shows up in the entry for std, league and league HC

#

which is confusing

compact isle
#

so your idea is to put "current": true on all of the challenge leagues in that endpoint?

primal schooner
#

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

bright ridge
#

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 Hmmge

worthy cape
#

Fond memories of Anarchy/Onslaught, Domination/Nemesis, etc.

primal schooner
#

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

compact isle
#

so you just want the current league category rather? Like for 3.23 you want whatever endpoint you use to somehow return "Affliction"?

primal schooner
#

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

worthy cape
#

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.

compact isle
#

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

primal schooner
#

but that requires a structure change

primal schooner
compact isle
#

but that still wouldn't give you the active one

primal schooner
#

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

ebon hill
#

minor question of little concern, but where does one submit PoB bugs?

worthy cape
#

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?

worthy cape
primal schooner
#

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

bright ridge
primal schooner
#

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)

bright ridge
#

I legitimately would just recommend:

Settings.LeagueName = LeagueList.First();

That's your base league / default league

primal schooner
#

for what dataset?

bright ridge
#

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

bright ridge
primal schooner
#

JSON looks the same

worthy cape
#

@primal schooner Again not thinking about what they can do and won't do, just the desires and rationale.

primal schooner
bright ridge
#

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.

primal schooner
#

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

bright ridge
#

I like what CloudFlare puts out, they have some neat tools and services

primal schooner
#

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?

bright ridge
#

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

#

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!

primal schooner
#

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

grave wren
#

Why can't you just add a drop-down to select the league from the league endpoint

primal schooner
#

the point was to not have to use hardcoded or user-entered data

#

which will be required for other things I'm working on.

silent tree
#

is that really worth it for the sake of something u would have to update once per league max

primal schooner
#

that's why i was saying it's not really important

silent tree
#

it seems like a mountain out of a molehill

primal schooner
#

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

grave wren
#

How do you know which league to select without user input

primal schooner
#

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.

grave wren
#

What if I play HC ruthless

primal schooner
#

STD hardcore ruthless isn't a league

#

(idk if that exists)

grave wren
#

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

primal schooner
#

technically that's a game mode

#

what do yo umean by "the first one" ?

grave wren
#

Yeah just use the data to fill a drop-down and preselect what fits your use case most

primal schooner
#

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?

bright ridge
#

Just select the first in the list.

grave wren
#

Which league there's many

primal schooner
#

again true, there's only ltierally a once every 3 month use case

primal schooner
bright ridge
#

We're still talking in circles I feel

grave wren
#

The API you linked returns a list of objects

primal schooner
#

so idk what list you are referring to

bright ridge
#

The one list you've been talking about for the past few hours kekw
The list of leagues. Yes. Array, List, interchangeable vocabulary

primal schooner
#

each entry 0-15 is an array object

#

oh

#

ok well entry 0 is Standard

bright ridge
#

Exactly. Select Standard as a default. Then hand-select the league you want after that.

primal schooner
#

so idk how using the "1st in the list" helps

compact wigeon
#

Second in list is also a valid option

primal schooner
#

the entire point is to get the name of the league dynamically

compact wigeon
#

Or first that isn't called standard

grave wren
#

But you don't know which league the user is in

#

That's the whole point

primal schooner
#

the app isn't user dependant

#

i'm literally jsut trying ot get the name of the league dynamically

grave wren
#

Take the list sort entries by start date

primal schooner
#

so now if we are into algorithmically determining the name, I'd just do it my way.

bright ridge
#

In the case of mid-league events, like the ones just held, those would show up first. Keep that in mind

grave wren
#

Pick the last one that matches the rules you want

primal schooner
#

all I was saying was taht there was no unqiue identifier for the league

grave wren
#

Which league

bright ridge
#

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.

primal schooner
#

[insert current league name here]

compact wigeon
#

There are many current leagues tho

grave wren
#

Trade league, ruthless trade, HC trade, ruthless HC trade?

primal schooner
#

but there is only 1 current league name

compact wigeon
#

And it's trivial to extract from currently available data

primal schooner
#

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

grave wren
#

It's under the rules key

primal schooner
#

what is under the rules key?

grave wren
#

An array of rules for each league you can check - if it has either ssf or ruthless it's not what you want

primal schooner
#

not all game modes ahve rules

#

ie the default league game mode has an empty array

grave wren
#

Yes that is what you filter for

compact wigeon
#

So if the array is empty then it could be what you want

grave wren
#

If you want SC trade league

primal schooner
#

standard has an empty rules array as well

#

so again

grave wren
#

Then you filter by empty rules and start date

compact wigeon
#

Or by the name being standard

velvet fog
#

filter description with This is the default Path of Exile league. and rules is empty?

compact wigeon
#

There'd like 100 ways to do this

primal schooner
#

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.

grave wren
#

Yes it'd be redundant

primal schooner
#

i do like empty set rules and startAt

compact wigeon
#

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

velvet fog
#

the league announcement page no longer uses "PoE/Item/DeferredItemRenderer" but chunk.js. Is there any reason?

compact isle
#

front-end tech from 2023 😄

compact isle
velvet fog
#

"PoE/Item/DeferredItemRenderer" is more comfortable for programmer to handle

compact isle
#

you're not supposed to be using it

velvet fog
#

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

compact isle
#

the OAuth docs are updated before release with all that information

#

scraping it from website files is not kosher at all

velvet fog
#

wish to know the transfigured gems format

craggy beacon
#

The embedded items on the announcement page usually have json you can use to test stuff out

fallow zinc
#

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

bleak tartan
#

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

worthy cape
#

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.

bleak tartan
#

well i have an i7 13700k so, it gets the best it can get wiht 1 core im sure

#

yeah i get that

worthy cape
#

I've got no idea if the future updates with 64-bit runtime and a newer LuaJIT will help that kind of performance much.

bleak tartan
#

hope we wone day get 64 bit and multithreading ❤️

#

half the fun is the build making so

worthy cape
#

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.

bleak tartan
#

64 bit is not inherintly multithreading right?

worthy cape
#

Completely separate concept.

bleak tartan
#

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

worthy cape
#

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.

bleak tartan
#

64gb ram, no issue pepecool

worthy cape
#

The runtime update also pulls in a way way newer LuaJIT version, which probably has some improvements.

bleak tartan
#

every bit can get their own gb,

worthy cape
bleak tartan
#

itrs so overkill, i just did not want to care comming 5 years

worthy cape
#

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.

bleak tartan
#

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

compact wigeon
#

Zao is honestly a PoB wizard. Does all the hard shit, leaving the rest of us to do all the tiny petty shit.

worthy cape
#

You're drawing the rest of the owl brittlL

shy marten
potent crystal
#

Does anyone know when POB will be updated?

frank drift
#

updated with what

worthy cape
#

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.

potent crystal
#

So basically POB will update when league will start
Or some time after

#

Ty for answer

worthy cape
#

You may get a QoL release beforehand, but don't expect anything that's not known.

waxen musk
#

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?

worthy cape
#

PyPoE computes the width as x2-x1

#

All my tools have worked with x,y,w,h so "someone else's problem".

swift beacon
#

My tool has x1, y1, x2, y2

#

0,0 is top left I believe.

worthy cape
#

I've always done it the same way when hand-cutting.

swift beacon
#

So to answer your question, the width would be 255.

worthy cape
#

I was going to suggest looking at if anything had a value matching the rightmost column, but everything is padded for drawing.

waxen musk
#

kinda odd that the background is 255px then 😦

velvet fog
#

will there be a Vaal Double Strike of Impaling? or will a successful Vaal Double Strike of Impaling turn into a Vaal Double Strike?

frank parcel
#

vaal skills will stay normal

rigid oxide
worthy cape
waxen musk
#

How exactly do cluster jewel proxies work? The "position proxy" node defines the angle offset for node 0?

worthy cape
worthy cape
#

Seems good now when at home.

dense ibex
#

are we allowed to make mods by reading and writing memory or is there a certain sdk we should be using?

dense ibex
#

what tools can we do?

dense ibex
#

okay cool ty

worthy cape
#

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.

dense ibex
#

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

worthy cape
#

They're mostly separate windows with transparency above the game, sending limited keyboard actions.

dense ibex
#

hmm okay ty

worthy cape
#

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.

dense ibex
#

yeah makes sense

tawny agate
#

Pretty sure some transfigured gems exists only to troll PoB devs at this point

drifting merlin
compact isle
#

the images are in the repo under the assets folder

#

the URLs are just there for when 3.23.0 goes live

drifting merlin
#

oh damn you're right I guess I'm too tired to see things clearly, thanks

zenith zodiac
snow whale
ebon oasis
golden knot
civic crane
#

@zenith zodiac ty, fixed

whole ruin
worthy cape
#

Falls under 7b.

whole ruin
#

it does not

#

reading is neither modifying or adapting

worthy cape
#

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.

#

They're loosely written to capture all the circumvention that people try to do with malicious reads.

whole ruin
#

im sure thats their intention but id say they have no case. But i do agree, dont release an app that does it.

worthy cape
#

Don't make an app that does it.

clever thistle
#

probably counts as reverse engineering

worthy cape
#

Don't discuss it. Don't research it. Don't.

worthy cape
#

One of those long-term mysteries that elude me.

frank drift
worthy cape
#

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.

patent notch
# worthy cape

What is this poster originally about? just curious cause never seen it before

worthy cape
patent notch
#

Ahh i see

whole ruin
#

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

worthy cape
#

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.

pallid wraith
bright ridge
# dense ibex cool so it's just interacting with the api, but how can I show it up in game lik...

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

GitHub

🟡📈 Streamline your Chaos Recipe gains! Contribute to ChaosRecipeEnhancer/EnhancePoEApp development by creating an account on GitHub.

drifting merlin
#

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)

compact isle
#

"azmeri" uses ascendancy-0.png not background-0.png

drifting merlin
#

yeah it's a typo on my side sorry

#

i'm actually using ascendancy-0 but the issue remains

compact isle
#

I think likely your data.json is out of date

drifting merlin
#

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

compact isle
#

np, also helps that I'm mostly just keeping an eye on this database thing

drifting merlin
#

If i can provide one nitpick that tickles my brain, some fields are still snake_case while most of the new stuff are camelCase 🙂

worthy cape
#

Gotta keep you on your toes.

drifting merlin
#

you make me use snake case in my clean codebase ReallyMad

bright ridge
#

PascalCase enjoyer here GIGACHAD

light tide
#

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

frank drift
#

things like stashes only reliably get flushed/synced on zone loads, not sure about characters - have you changed zones?

light tide
compact isle
#

better late than never

dense ibex
waxen musk
#

are the new gems simply new items/gems, or they modify existing ones somehow?

frank drift
#

should be safe to say new items

worthy cape
#

Oh hey, a torrent.

bright ridge
#

Anyone else getting a 404 on the torrent post?

worthy cape
#

Not recently.

bright ridge
#

Huh, had to refresh while on the page, that prompted the download. That was weird

compact isle
velvet fog
#

Content.ggpk missing _.index.bin 😦

#

LeagueAzmeri

worthy cape
primal schooner
#

is the entirety of the information found in the GGPK known from the communities current ability to RE ?

worthy cape
#

Not quite sure what you mean there.

primal schooner
#

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

worthy cape
#

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.

primal schooner
worthy cape
#

Those are likely sourced from the Item Filter post.

primal schooner
#

these look like all teh names of the mobs from the league

#

oh just the ones yo ucan buy

worthy cape
#

Indeed.

primal schooner
#

ah kk

#

I'm assuming it's scraped

carmine merlin
#

Yep it is

worthy cape
#

Mix of data files and tabular data.

primal schooner
#

wouldn't that be in the ggpk, or is it the part that only comes after the launch?

worthy cape
#

While you can generally generate a reasonable spectre definition from puzzling together data, much of their AI and skill effects can be very weird.

worthy cape
#

At best you can squint at bundle filenames and infer things from those.

primal schooner
#

oh is that why there's no links to all that frontpage info on poedb.tw ?

worthy cape
#

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.

primal schooner
#

i'm just wondering where that stuff is generated from

worthy cape
#

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.

primal schooner
#

ok, so basically, the information is really only available after the league goes live

worthy cape
#

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.

primal schooner
#

ah kk got it

worthy cape
#

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.

worthy cape
#

Did you see that you're getting more fields in the league API by the way?

primal schooner
#

HOORAY!

#

lol no i didn't

primal schooner
#

noice

primal schooner
#

Anybody else having an issue with the Client DL ?

#

too many ppl hitting DL server, maybe?

worthy cape
#

worksforme™️

primal schooner
worthy cape
primal schooner
#

stays at 0 for a bit then bounces up to like ~1mg then back down to 0

worthy cape
#

Stalled a bit at 4.20% (nice) but unblocks periodically.

#

Probably saturated.

primal schooner
#

is there only 1 DL server?

worthy cape
#

It's a whole honking CDN for file delivery.

primal schooner
#

(in NZ) or is it distributed to US node as well?

worthy cape
#

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.

oak estuary
primal schooner
#

in 6 years of playing, never had a patch do this... 🤷

#

you in the US ?

oak estuary
#

Aye

primal schooner
#

probably only 1 Oceanic patch server

#

😕

oak estuary
#

...no it's definitely a CDN...

primal schooner
#

when too many concurrent users goes from a good problem to a bad problem.. lol

formal kraken
#

patchcdn still 404ing

#

😦

primal schooner
#

I mean even if it's a CDN, don't they all have to pull a copy from a single server?

velvet fog
#

patchcdn changed

worthy cape
#

patchcdn is Highwinds, patch is on CF

primal schooner
#

i'm assuming their copying started at 11am as well

formal kraken
velvet fog
worthy cape
#
Name:    5c3e588941d14ffb8518633c807228b9.pacloudflare.com
Address:  172.65.204.172
Aliases:  patch.pathofexile.com
          spectrum-patch.pathofexile.com
primal schooner
#

typically

formal kraken
worthy cape
#

Steam DL still works, regardless. Superior to GGPK anyway 😉

primal schooner
#

oh true is steam working

#

i use client

craggy beacon
#

steam looks fine

worthy cape
#

This is good tho, getting the mandatory snafu out of the way early before the league even starts.

craggy beacon
#

ultimatum despairge

primal schooner
#

grrr client jsut crashed back to 0%

worthy cape
#

It's still hitting Akamai IPs.

primal schooner
#

nothing in event viewer.. 🤔

worthy cape
#

[2a02:26f0:9500:10::]

tawny agate
primal schooner
#

what was teh total patch size?

#

mine says 8.1g

oak estuary
#

If you downloaded the torrent the patch is only 1.16GB

tawny agate
#

I have 8.23g after one restart so it's a little bit more

worthy cape
#

8.67 as per screenies above.

primal schooner
#

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

worthy cape
#

It is possible to finish, just did.

formal kraken
#

It feels like my client is rate limited on the "new" cdn

craggy beacon
#

Downloaded the whole game on steam at 12% standalone KEKW

oak estuary
#

Apparently zao has the direct hookup

primal schooner
#

how do you tell what IP / data connection an application is connecting to?

formal kraken
#

I have like 70mb downloaded on my assets thing while steam did the entire update

worthy cape
#

I should've prepared my DAT measuring scripts beforehand, shouldn't I?

primal schooner
worthy cape
#

I had IPs like [2a02:26f0:9500:10::b833:fcab] in mine, which are from Akamai's blocks.

primal schooner
worthy cape
#

Missing intermediate hops is normal, relies on the routers to give any hoots about TTL and ICMP.

primal schooner
#

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?

craggy beacon
#

my download seems much better now

primal schooner
#

mines still hanging at 0

#

with momentary bursts up got like 1-10meg

worthy cape
waxen musk
#

any .dat updaters pepeHands

#

ah

raw otter
#

descendancy heehee

swift beacon
#

I was just going to say the same thing templarLul

waxen musk
#

huh isnt the patch already up, why do you need torrent

swift beacon
#

mapdeviceportalformation.dat64: 6 portals in a line, here we come?

primal schooner
#

cause my patcher is not DLing very well

waxen musk
#

ah idk steam patched it in like 3 minutes >.>

primal schooner
#

i've downlaoded about 800meg in 45 minutes

#

yeah i'm on standalone

waxen musk
neon plume
#

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
waxen musk
#

dont think ive ever seen it so fast lol

worthy cape
#

That's the preload.

primal schooner
#

i'm DLing the torrent

worthy cape
#

Rate: 34370.2 / 0.0 KB Uploaded: 1612531.4 MB

#

Didn't close my client down last night. 😄

slim pilot
#

do i see 1.6 TB upload right there

primal schooner
#

client is doing better

worthy cape
#

Not that many peers so I guess that you're getting a good amount of that upload.

primal schooner
#

oh client DL'er started working

worthy cape
#

I see 41 suckers still desperately downloading the torrent 😄

primal schooner
#

still slow tho

#

they are racing

#

oh dang client jsut took off

#

35meg / sec

#

ah there we go 50meg / sec solid

swift beacon
#

Looking on reddit, seems like quite a few people are having download issues.

primal schooner
#

thank god

oak estuary
#

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.

primal schooner
#

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

#

🤷

waxen musk
#

anyone knows what the two foreign rows and an int at the end of Characters do? must be related to alt ascendancies?

primal schooner
#

they added teh new alt ascendancy info to the end of the char api

waxen musk
#

ooh didnt know thats a thing

#

oh its api not dat schema ofc

primal schooner
#

yeah that's for the api but i'm assuming the data is correspondant

waxen musk
#

well one is character class definition and the other is data of an existing character 🤷

primal schooner
#

i don't work with the DAT much, can you paste a SS?

#

Where is the first place GGG publicly disperses information? Twitter>website>?

waxen musk
#

Error: DelveCraftingModifiers: real row size 234 vs schema size 235 NotLikeThis now they remove columns

primal schooner
#

lol

#

dang GGG always obfuscating their DAT files... those rascals

civic crane
#

i'm working on fixing some dat tables

neon plume
#

what the fuck did they remove

primal schooner
#

all the alt qual gems?

waxen musk
#

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

primal schooner
#

bobo bo bobobo

#

you ever watch that TV show?

waxen musk
#

well i cant fit boolean in 2 chars

primal schooner
#

yeah no i get it I just laughed

#

TF ?

#

😉

waxen musk
#

uh wish i had previous version to compare

worthy cape
primal schooner
#

Zao got that BDE for DAT files

neon plume
#

did they touch the passive tree this league?

worthy cape
#

Not much, mostly the descendancies.

formal kraken
#

my parsing code for gems broke 😦

#

makes sense I assume the format changed

neon plume
#

prob alt stuff gone

formal kraken
#

ah

#

did you figure out the new indices?

neon plume
#

not yet, updating timeless jewels 😄

formal kraken
#

looks like the new gems arent in the SkillGems.dat

oak estuary
#

They're in gemeffects.dat

waxen musk
#

what happened to alternate quality? is it gone?

oak estuary
#

Yes

worthy cape
#

All existing alternate quality gems have now become regular superior quality.

waxen musk
#

whats superior quality? 😮

#

oh, just normal

worthy cape
#

Aye.

waxen musk
#

anyone figured SkillGems yet?

worthy cape
#

dat-schema has some updates, PoB gang is going mostly for GemEffects

civic crane
#

trans gem have altered icon via shader?

worthy cape
#

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.

pseudo ocean
#

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

pseudo ocean
#

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

waxen musk
#

hmm so why do gems have many GemEffects now?

oak estuary
waxen musk
#

i thought the new gems were just new items

worthy cape
#

Gotta cleverly deduplicate things to generate them all.

pseudo ocean
#

Nobody can help me with my issue of poe awakened tade macro ? 😭

waxen musk
#

so now theres Id column in GemEffects and also in GrantedEffects >.>

worthy cape
civic crane
pseudo ocean
#

the awakened poe trade icon appears and it puts blackscreen

#

just saying

waxen musk
whole ruin
#

chaosrecipeenhancer just fails on open. Guess api server might be bashed atm

worthy cape
#

I recommend being nice to the infrastructure.

frank drift
#

GGG filter servers seems to be serving outdated copies of 3.22 filters

#

causing lots of issues

#

dunno if any GGG people are watching

waxen musk
#

is GrantedEffectStatSetsPerLevel fixed yet?

carmine merlin
#

I have it fixed for PoB

waxen musk
#

ye i already arrived at it too, the fields got mixed up

#

is it actually attack/offhand crit chance for the two crit fields?

carmine merlin
#

Something like that, the only skills that have entries in the offhand row are the shield skills

#

so thats what we called it

waxen musk
#

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