#tooldev-general
1 messages · Page 1 of 1 (latest)
There’s… not really anything to upgrade, I’m considering getting a headless chrome browser or something and making requests via that but that seems wayyyyy overkill
I think I need TLS 1.2 but i can’t find where the ClientWebSocket exposes that
That's how websockets work, the upgrade response tell you that you can switch protocol
Yeah I think it’s using TLS 1.0 and the API isn’t happy
I’m probably going to switch libraries to a different implementation, I don’t think I can change it. Thanks.
Well, actually it might not be that. Hm.
I'm on my happy little solo dev adventure, and I'm just showing this here bc it took way too long to get this right, and I feel like I accomplished something XD
Hi all. Tell me how to open the DAT file for work? (HarvestSeeds.dat)
I understand correctly that I can take resources for my application from the site https://poedat.erosson.org/dat/v1/tree/
Or where do I download game data to use it? I'm interested in crafting harvest, workbench and bestiary
game data comes with the game, from the ggpk
my advice is pypoe or repoe or similar
Can also use https://snosme.github.io/poe-dat-viewer/
I don't know what is GGPK and how to use pypoe or repoe
The game data files come compressed in bundle files, either directly on disk with Steam installations or inside a Content.ggpk custom archive format with the Standalone game.
Inside the bundles there are the Data/*.dat files which each contain tabular data for which the columns are not fully known and tool developers have to guess what kind of data is where and what it's name/purpose is.
Once you have enough of a schema for the data fields, you can start reading out their contents and relate tables with each other.
PyPoE is a common Python tool/library to export tables according to its schema or work with those relations from Python code.
RePoE is a GitHub repository with a tool to use PyPoE to construct more human-accessible datasets for items and other types of entities, as well as having that specific data pre-exported in JSON.
If you're doing one-off exports, poe-dat-viewer tends to have the most recent shared community schema and can export tables one by one interactively to JSON.
I need to use the game recipes on the site. I thought to find a place where I can write them out to my DB. But perhaps there are resources that simply come from recipes so as not to increase their database
It depends on what you mean by "recipe". You might be able to find the text used for the lists in the user interface, but you will not find any logic for what the craft actually does.
yes, I only need the very essence of the recipe (what is written in the game for users)
the number of options confused me even more) Can someone help me understand how best to use these games on my site?
For beastcrafting and the bench there's this cooked table: https://github.com/brather1ng/RePoE/blob/master/RePoE/data/crafting_bench_options.json
I don't know if there's any convenient tables of the Harvest actions.
Probably want to use https://snosme.github.io/poe-dat-viewer/ and export the data for HarvestCraftOptions.dat, but I don't know what exactly you'd need
Heh, this JSON has some wild fields...
JunMaster2LocalIncreasedPhysicalDamageAndImpaleCrafted2 has "master": "Sister Cassia"
Whatever you wish to achieve it's probably not as easy as you think, you've got to do some lifting 😄
I want to create a site where it will be possible to indicate what kind of crafting has reached the property on the subject. To do this, I need to be able to access the list of crafts on the site
so to speak, sites with natural objects for the extraction of objects with the discovery of saints and in some order they must be applied. for this I need a list of all the recipes on the site
On something completely different...
Heh, I'm not sure what I expected when I pointed my new shader compiler at all the materials in the game but apparently a folder of half a million compiler artifacts is one of the outcomes.
For each material in the game I generated one shader source file, two compiled shader objects, two log files and two disassembly dumps, and one JSON file with constant bindings.
There's 84.5k materials in the game.
Good thing I disabled graphviz debug output beforehand, that'd also dump 1+N shader graphs for each material.
This just in - Zana left us to go to a rave. 😉
anyone knows how to use new granted effect stat sets? im having trouble getting gem damage progression, FloatStats are always 0.8-1.2 or smth
doesnt help that libggpk still hasnt been updated 
https://poedb.tw/us/Developer_API#data-export try dat-schema
uh i have the schema but i cant make sense of the fields
like, every skill gem has spell_minimum_x_damage of 0.8 and spell_maximum_x_damage of 1.2
according to FloatStats and FloatStatsValues
https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/docs/addingSkills.md#combined-data here is PoB's tutorial for exporting stats, you should be able to find what you need in there. The format is slightly different, since we massage the data before usage, but the fireball example there should still hold for the .8 and 1.2 values you see
ok FloatStats with BaseResolvedValues works better
ok i see about the interpolation thing, but BaseResolvedValues seems to have the same value as the result of that calculation. is there any benefit to doing the actual interpolation instead of just using that value?
BaseResolvedValues is new. We actually have code to use that instead, but ran into an issue around DoT damage being incorrect, so we switched it off
new as in added after granted effect stat sets? because previously there were no interpolations at all i think
im trying to update RePoE, its old code just exported StatKeys/StatValues and it had all the final values without doing any calculations
i'm also missing the flags like base_is_projectile in fireball example, AdditionalFlags column doesn't seem to help 😐
interpolations have been in the ggpk for years at this point
The exporter may have done the calculation itself, I'm not sure how RePoE works
it just used StatsKeys with Stat1Value/Stat2Value etc
ImplicitStats from GrantedEffectStatSets gets you this, it looks like
Here's the export script if you want to look through the logic
ye found that already
... huh. TIL: the Unreal Engine source repo includes Oodle source
what's the license?
iirc unreal engine is "source available" not "open source"
"look, but don't touch"
I was wondering what the consequences of looking were
or, to be more specific
;// Copyright Epic Games, Inc. All Rights Reserved.
;// This source file is licensed solely to users who have
;// accepted a valid Unreal Engine license agreement
;// (see e.g., https://www.unrealengine.com/eula), and use
;// of this source file is governed by such agreement.
And what do you know, I now have a functioning ozip. On ARM64.
Heh, cute. I've idly wondered how the UE integration worked but never looked.
Probably for the best considering the license.
~~Hi guys, does anyone know how to get itemId from an item name or unique id? ~~
I'm trying to go from a PoB item to then request the price from poeninja
I've had no luck with itemOverview with their API, so I'm just taking to most recent day of the item's price history
sooo it turned out missing &language=en is what killed my overview calls XD
@worthy cape quick Q, should we only backoff when a 429 is responded from the PoE api? Or should we implement a backoff regardless of the 429?
I would aim to never exceed the rate limit as I believe it puts you in backoff as soon as you do.
Probably good to have some headroom too if you're using IP/Account rulesets as other traffic from the computer can interfere with your counting.
yeah if you hit it, it's too late
and don't be as close as possible to the limits when you're sharing the ip with something or someone else, my tool broke on league start because I was browsing the website 😦
We will be running the tool from gcp, so the ip is the same everytime
Ok we will build a respecting system in
Since we are querying public data we shouldn't have an issue with account limiting only IP
just a WIP snapshot of my "make a build item shopping list" tool lol
have a spanish channel?
for this discord channel, or for a specific tool?
In this discord
I don't see any rules requiring english, so I think you can speak freely, but I also don't see any channels dedicated to other languages =/
Wanted to let you know something like this is being included in one of the next PoB updates by the way
hopefully included* its been in the works for a very long time
Yep although will be on the beta branch within the next week hopefully
Looks like this atm, but will probably change
big oof lol!
what does the whisper button do?
seems like a trade search link would be way more useful
looks like this
yeah that seems questionable compared to just giving a trade search link
someone'll like it I'm sure though
You also have the trade search link, though?
That looks like a dank feature
Is the user putting their own trade link in and pob retrieves results, or is pob populating the search? If it's the latter, will it work with rares or uniques that have different versions or mods? 
Nevermind it's definitely the former, can't read
PoB will create its own weighted search url for you based on the DPS value to your build. In regard to your latter question it'll be whatever is on trade.
Image from the wiki. Is there art that matches the ascendancy images for the character (unascended) classes?
Rectangular without border?
Probably names like Art/2DArt/UIImages/Common/IconStrDex in Art/UIImages1.txt
example source:
time to update my old imgs
If you've got loose files from the game, squint at Art/UIImages1.txt for the entries you want, then use process-image.exe from https://github.com/zao/poe-utils/ to convert the whole sheet or slice rects out to PNG.
Ah, there's even Art/2DArt/UIImages/Common/4K/IconStrDex if you want fancier res.
nah small res is perfect, and process-image worked like a charm
Now I just wish I had something better setup for moving files between my linux laptop and windows pc than nextcloud 
syncthing is neat
just setup a samba share
I've more than once used woof to serve an arbitrary directory over HTTP as a ZIP.
Almost as sketchy as tar | base64 into the terminal's copy buffer and a similar paste on the other end 😄
ah I guess the good old python -m http.server would do
If you don't need the permission/ownership management of samba, I've found NFS to be much easier to handle than SMB
Win 10 has a builtin NFS client?
Technically if you enable the SFU features and pray, never had much luck with it.
Not sure if it's still around in 11.
Yeah
I don't remember if I ever managed to mount NFS in my WSL2, I think something crucial was missing.
nice. Only ever had bad experiences with samba, granted last time I tried setting it up was when windows vista just came out
My WSL2 currently uses cifs as I assumedly had no luck with proper NFS.
Oh right, there's no systemd/systemctl so it's a Pain to get the relevant services running.
WSL2 has it's own weirdo MS init and tendency to shut down the backing VM whenever the last prompt closes that trips me up all the time.
I don't have it running anymore but as of 6 months ago or so wsl2 and nfs worked pretty much flawlessly for me as long as I mounted both on the other end
https://github.com/Dav1dde/pasteofexile/tree/oauth/app/assets/asc in case you need the images
updated to add function to the top right checklist, and allow prices to be editable =] for people who like a long term "shopping list" approach
Please don't post discord invites
Hey @rapid pagoda I just found your amazing pogo repo and I would like to use it as a library for my PoB rewrite in Go, however I am hitting a minor roadblock. You have pre-defined JSON definitions that you then embed in the library (https://github.com/oriath-net/pogo/blob/main/dat/parser.go#L51-L52), but I would like to depend on an external source (specifically https://github.com/poe-tool-dev/dat-schema's resolved JSON). Any chance you could make it more generic and accept external definitions? It's fine if you don't want to, I was just hoping I wouldn't need to rewrite this part.
This is very nearly already supported. Take a look at https://github.com/oriath-net/pogo/blob/main/cmd/schema2json.go and parser.SetFormatDir()
(In fact, it is supported if you write out the converted JSON to temporary files. But that seems kind of clumsy.)
ah, nice, the thing is, I am making the rewrite web-based, which means I don't exactly have a filesystem
I think if you could turn the embedded format into an interface, I could define a struct that would match up with the parsed format
Oh. Uh. Be aware that pogo has a cgo dependency in gooz, and I don't think that'll build for wasm targets (if that's what you have in mind)
But if you'd like to write a patch which allows a format source to be specified as a fs.FS or delegates it to another object, I'd be happy to accept that
ah, damn, ok, didn't realize that... now to pray I don't have to rewrite ooz in Go...
oh, hmm, I might be able to pull it off after all: https://github.com/SnosMe/ooz-wasm
just have to write a generic interface and switch based on WASM or x86
god this is growing in complexity very fast
Oh neat, I missed that. I need to take a look at what SnosMe did there -- might be usable in gooz as well
I doubt it, it seems to just compile C++ to WASM with JS bindings
why would you need that in a browser?
Surely it's better to pre-generate this stuff at build time
I am still deciding on whether I want to pregen or not, as this way it would give me a lot more flexibility at runtime, and smaller initial package
I mean, that's basically what cgo is doing too. gooz's problem is that the C++ source includes some x86-specific intrinsics
right, but afaik if you are building against WASM target, Go explicitly disables CGO?
why more flexibility and the pacakge would actually be larger because you need to include the code for ooz etc. You can just serve the generated data lazily or let your backend handle it (if there is one)
It'd still fix an outstanding issue where it fails to build on ARM 🙂
there will be no backend, and the source for ooz is tiny (in contrast to the absolute mass of pre-generated JSON I would be shipping)
but you would also ship the poe files?
basically, all of this I wouldn't need to ship with the app https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/dev/src/Data
so you trade json for poe files + ooz
nope, there's a CDN I just learned about
yeah but instead of going through all that, you can just serve the json files
hmmmm
which can also be re-packaged to be actually efficient for what you need instead of just being plain data
yeah, I'd probably repackage it into some compressed binary format
or maybe just a gzipped json
cdn/web-server is gonna take care of that
the biggest gain I get from not pre-generating is that I wouldn't need to ship an update every time PoE updates
but yeah probably can easily exchange the format later
well you don't, you just need to upload the new files
but yeah instead of ggg uploading you would have to do it
sure, but that's still some level of maintenance
which, if I can, I would like to avoid
you realize that a pob equivalent will take constant maintenance 
the thing I hate most about the format the CDN ships is... pretty huge
oh, absolutely, but one less thing to worry about
although, not that the PoB data is particularly small
… only 42M? 🙂
-rw-r--r-- 1 barks staff 329M May 13 13:41 Data.zip
although, tbh, that's every data file for every major version
obviously on the web version I would pull stuff in on-demand
timeless jewels are over half that 42mb if you are including those in the size
25.2mb in zipped form atm
hmm, I think that downloading from PoE's DAT CDN might still be better, as this would still be just the first-open cost, and not runtime cost.
assuming worst-case, that's ~80MB to download
would also mean I can support all languages with no extra effort
soo, interesting how https://patchcdn.pathofexile.com/ seems to serve an SSL cert meant for CN=*.ssl.hwcdn.net ?
I assume that's why https://snosme.github.io/poe-dat-viewer/ pulls through a proxy?
Too bad my private data service isn't public, arbitrary historical loose and bundled data files over HTTPS.
So nice to be able to pin your software to a particular PoE release ;)
I ended up going for bundles again in my tools, extracted files at my scale just ran into all sorts of bottlenecks.
Writing an efficient IO layer for that was fun.
ah yeah, I remember that
@rapid pagoda sorry to bother again, but is there a reason you have used an array for your index, and then sorting it? https://github.com/oriath-net/pogo/blob/main/poefs/bundle/index.go#L123-L125 You could use a map and treat the path as an index. I'm just trying to reduce the initial load time as much as possible, and it seems like just loading the index takes a whole second.
Listing the contents of a "directory" is much easier with a sorted array
ahh, ok, that's just for display...
IIRC, most of the time loading the index is spent in decompression code
not in my (albeit limited) testing
Huh. Maybe I remembered wrong. Seems odd that sorting an array of strings (with a bit of tag data) would be such a slow operation though
but yeah, looks like if you just changed that to accept a generic fs.FS instead of a string and then calling os.DirFS(path) I think I could make the rest work
it would be even more amazing if you could move the embed to a different package, and then pass it as a value to this one
but for now that wouldn't matter that much (while I'm still developing this)
managed to make it work on my fork, I can make a PR if you'd like https://github.com/Vilsol/go-pob/blob/main/data/dat/dat_test.go
Are we allowed to programatically call https://www.pathofexile.com/api/trade ?
private api usage is tolerated, but not explicitly allowed
Meaning if we use it for personal use it's fine but not for public use?
personal or public, just don't abuse it and be prepared for implementation details to change
Sounds good
read up on the rate limits
And also adjust your user agent
Is Lake of Kalandra the name of the league? The first time I met an league that wasn't a single word.
Correct
backend name could still end up being "Kalandra", guess we'll see
currently most things are called "Lake"
but the league name itself will be "Lake of Kalandra" yeah
I figured I should ask again, but does anyone know of a good websockets library for C#? I’d like to use the live trade API but all the libraries for using websockets in .Net kind of suck, Marfusios/websocket-client (which wraps the framework’s websocket client) returns an 426 “upgrade required” for me when I try to use it and I can’t use sta/websocket-sharp because I need to be able to set the headers on the request and for some reason the author doesn’t believe that’s “good websocket design” or something so just won’t include it in the library
Sounds fun - fork all the things 😄
I could
I probably should.
There’s already a fork but it’s like 4 years old and 1k commits behind
No advice from me tho, I seldom touch the platform more than build the SteamRE family of tools.
@simple ravine Got any good/bad advice on .NET websockerinos?
This library literally uses its own implementation of a http request
https://github.com/xPaw/SteamWebPipes seems to use Fleck but that's just serving.
i believe there are some tools that used to use websockets for the trade api
The very finest clownware.
i don't know if you've looked any of those up
I have, but I’m rolling my own in .Net
I think the others are in JS
Or ruby or something
Can’t remember
Oh, this actually shouldn’t be bad
I just like… don’t understand being like “yeah I don’t personally see a use case for exposing a method to add custom headers to your initial request, if a endpoint needs that it’s bad design”
isnt websockets integrated into .NET in System.Net nowdays?
sorry, new job, lots of meetings
It is, but it’s returning a 426 upgrade required for me and I have no clue what else I can do to get it to “upgrade”
I think it’s using TLS 1.0
And Poe wants 1.2
But the websocketclient doesn’t expose that
It just uses whatever it wants based on your runtime and architecture and stuff
I could not find a way for the life of me.
I think there’s is a work item for the system library to expose that but it’s not added yet
Also some systems just don’t support it, like windows 7
Using the standard library
It’s been frustrating lol
Yeah if you find a way or have a working example let me know.
If I try and connect to the live trade site using a standard httpclient (not websocket) with my headers and such it seems to work, but just “freezes” cause the standard is different. Then using the same headers in the websocket client returns 426.
You can use ConnectAsync(Uri uri, HttpMessageInvoker? invoker, CancellationToken cancellationToken) and use the HttpMessageInvoker much likely
Also, I'm assuming you use wss:// and not ws://
@pliant cipher also take a look at System.Net.ServicePointManager.SecurityProtocol, if you set that u can probably simplify your life
Yes
Will do
The ws// isn’t valid anyways on the api, made that mistake
psych turns out we're going with "Kalandra" 
no more fishing content expansions 
I wish to make a parser for the item filter so it's validity can be checked, but I'm not sure what kind of language the item filter is. I'm assuming it's a context free language, but I'm not sure. Can anyone confirm or confute my hunch?
If you upload your filter with the API, it will validate the filter for you
Don't know if it's enough for you or if you still want an offline one
I'd like to make an offline one because when new content comes out I don't think the filters based on the new leauge's info (like this https://www.pathofexile.com/forum/view-thread/3265282) will be validated until it releases.
My guess is the new API is online after the maintenance, like 2 hours before league start but only @compact isle can confirm
The other reason I'd like to make an offline one is because if I develop it further I can use it for testing something that generates item filters. If I'm not wrong about it being a CFL. The parser should be easy to make because the rules are well documented at https://www.pathofexile.com/item-filter/about.
They kind of look like production rules for a context free grammar and if nothing is missing there they basically provide the language just not in a BNF notation.
actually it looks like it's been updated since I last looked at it
devil's in the details of course, especially if you're going to try to validate parameters
this is inaccurate, for instance
it will work on anything that happens to have an internal enchantment name, including blight ring enchantments (aka anoints), but excluding blight amulet anointments
That is good to know. I've asked others and it seems that it's actually a context free language.
just in case you'd like to use something as base, neversink has this https://github.com/NeverSinkDev/FilterPolishZ/tree/master/FilterCore
it's what he uses for his .filter files which are a superset of normal filters as far as i understand it...
oh no are the extra anointments actually in a completely separate field? ☹️
in the game files? not actually sure, I pull everything from poedb
Thank you, I knew about neversink, but I had trouble finding this one.
poedb down?
indeed
Loads currently for me.
fixed, should be back
hello guys, is there any way to find out the number of open / closed affixes when you get information about an item in a chest?
what do you mean by in a chest?
stash i mean )
if you ctrl+alt+c it copies full item info, including what's a prefix or suffix
Are you using the trade river API, the private stash API, or copying from the game client via clipboard?
Seems impossible
Thx!
Turns out that the model renders way better when you actually sample the texture atlas correctly when generating the material.
Art/2DArt/UIImages/InGame/ItemsHeaderUniqueLeft.png
Art/2DArt/UIImages/InGame/4K/ItemsHeaderUniqueLeft.png
are different image
some people over in the science discord were able to change the unique header image by changing their resolution
so sorta unclear if its a real teaser thing or not
yeah pretty weird
What are the valid characters for an account name? Is there something on the website what the allowed character set is?
Maybe any utf-8 in 23 characters, beside specials like ' " *
Tyty
I accidentally created an account assuming German umlauts won't work, but they did...
fun fact the only working german umlaut in char names is ü
Ä worked
Eisbär riot!
I am now the owner of the account äasd
just tried still only ü working for me
accounts -ne characters
but thats char names as stated :p
Oh char names, my bad
I love the user friendliness in PoB's importer where users get the pleasure of URL-encoding their account names.
(text is hard, yo)
I have the perfect feature for that:

i am personally offended that mjölner is called mjölner and i cant use an ö in my char names
There are some limits, chinese and english characters cant mixed
do you have a fully chinese account name for me?
I need something to test
or better something I can copy paste to create one
All the tofu.
i like boxes
At least if you copy the whole web address for an account it url encodes it to the clipboard
Not sure if that's a chrome feature or what's doing it though
hi, i'm new and want to check things for value in the chest.
pathofexile.com/character-window/get-stash-items
This is how I get a link to my chest, but these items do not have the "explicit.stat" parameter, which would allow me to form a request to poetrade.
pathofexile.com/api/trade/data/stats
From here I get "explicit.stat".
I'll have to match between the item's "explicitMods" and "explicit.stat" to form a json that will get the mods cost.
Is there some easier way to convert "explicitMods" to "explicit.stat"?
Or is there some other way that will let me get things already with "explicit.stat"?
Or maybe there is a way that will allow you to get a response from poetrade without "explicit.stat"?
maybe, no, no. You can check trade tools on github, they have prebuilt files to match "stat string - trade id"
Thx!
Is there an easy way to get a list of all affixes for a specific item type (any available API or something)? Like cluster jewel vs map vs boots.
Parse the ggpk for that information via something like RePoE
Thanks
I fixed my websocket issues in .Net, turns out some of the headers for the request are set automatically for you, so my requests had doubled up info in it. I wish the documentation told me that, lol
.NET documentation 
the one job I did .NET they used an "open source" SSH library that was just a code dump from a Japanese company with comments stripped and no documentation
Yeah I’m opening a issue for the runtime
It’s doesn’t seem correct that you have the option to manually specify request headers but the runtime has undocumented behavior to always add request headers, without respecting what the caller specified
PLUS the the request is created internally, and the response is not directly exposed, so you can’t even see what the headers are before the message is sent.
Yeah it’s not good
Definitely gotten better
But there’s some REALLY bad examples of documentation for stuff like (I think) controllers and routing and related things being spread out over 15 years of literal magazine articles and all over the MDSN docs
Yayyy
Use win+shift+s to crop screen, and ctrl+v to here
I don’t have discord on this computer
Web works
Oh, true lol
@fickle yew I'm curious, there are a technical reason for some item prices not being tracked? Like Leadership's Price
Usually I only exclude corrupted items
Make sense, this one is corrupted by default
might want to make an exception for items that drop corrupted
Then I need to add a manual exception.
Yeah I do one item at a time
Leadership's Price is almost impossible to display an accurate price for anyway, like Ventor's but worse
For most player yes, but for example, if you want to start a CoC build to work early in league you can disregard bad rolls
In 3.19 it may not be an option anymore with the Brittle nerf
couldnt you just make a listing per max res sum?
going down that road eventually gets pretty unwieldy I'd imagine
anyone in here good with python that could help me out with some problems
well its just a couple of practice python problesm but i guess i could
If the question isn't PoE Specific, there's a python discord that may work better
if you're trying to apply python to a specific PoE problem though, go right ahead and ask
I'm not an expert, but I've written three small python scripts for PoE data analysis
also just ask away dont ask to ask
well it is pretty off topic for the discord :,)
This is incorrect. You can manually set whatever you want, as long as you use the proper methods for it
Back in the good ol' days, documentation was amazing. When they open sourced .NET and made .NET Core, it all went downhill for a long time.
You can specify the headers however you want as I did, I was using the proper method in the Options.SetRequestHeaders, however the runtime ALWAYS adds 4 specific headers to ClientWebSocket connection headers, no matter what.
It’s different from HttpClient
I’ve opened a issue on GitHub for the .NET runtime, maybe it’s the behavior they want
HttpClient also sets some request headers. IIRC
I'm guessing that some are required for WebSocket to work properly, so they're set for you, for convenience?
Yeah, that’s what I’d assume. I think request headers are set automatically in certain frameworks like when using the HttpClientFactory, but headers are not set when manually creating a HttpClient. It’s just odd to me that the runtime would just always add those headers even if specified, possibly malforming a request that would otherwise be valid
Let the developer shoot themselves in the foot.
Well, that's not the ideology of .NET
I mean, you can implement your own HttpClientFactory and specify whatever you want in the headers automatically. In fact, I’m doing that basically using DelegateHandlers. You have total control over the request before and after with HttpClient, but not with ClientWebSocket
Fun fun.
Isn't the source of a lot of the framework open now, or is it still a bit closed?
I guess the design decisions aren't noted there.
It’s just an older API I think
There are plenty of design notes, but it's a bit difficult to find
It's an older code sir but it checks out
Well, there's one header that HttpClient spits out, and it's the Host header, which is required for stuff to work
I'm assuming that it's the same for WebSocket
Hey guys why is poeninja no longer indexing archnemisis?
it seems kinda early and we cant use the builds for inspiration anymore
probs automated based on when this league was initially meant to end and next start
league got pushed back a bit and he probs just forgot to update the start/end time
@compact isle Suppression is spelt incorrectly in tree data but is spelt correctly ingame / actual mods.
many art assets are misspelled and it's not really worth fixing them
I'm not sure who currently maintains @knotty bluff, but it's not handling /r/PathOfExileBuilds correctly, see: <#ggg-tracker message>
Nevermind, I'm pretty sure this fixed it https://github.com/ccbrown/gggtracker/pull/104
https://www.pathofexile.com/item-data/mods or poe-dat-viewer
If you really must scrape the wiki, you’re better off just querying the data tables via the api
Ah, fair enough!
now that ggg is hosting the wiki I'm sure they can handle a little extreme scraping (:
or cloudflare can anyway
@compact isle one thing I noticed today, on PoE Trade when you click on "Copy Item", the data that's copied does not include any information about any Incubations like Incubating Item even though those are displayed in the trade representation of the item.
incubators also aren't show in-game if you copy/paste an item
If someone sends a trade link to you, there doesn't seem to be a way to see how they wanted it sorted. E.g. if they had a weighted statgroup or 4, and wanted to sort by a certain one, it would automatically sort by price instead. I don't want to over-ping right before league start, but is this something you could add, Novynn?
^ something on the radar
Is there somewhere a ready-made database with tiers of item mods or with unique items?
@verbal flower craftofexile.com has every item mod I believe, unique items tiers aren't really known, the best data for unique tiers we have is here: https://old.reddit.com/r/pathofexile/comments/nzm9xz/datamined_unique_item_tier_list_from_inscribed/
thx!
@velvet fog @oak estuary @civic crane There's some new DAT files in the 3.18.1e patch.
Data/CorpseSinkVariations.dat64
Data/PortalAudio.dat64
Data/PortalAudioEvents.dat64
god damn it, the oauth login broke for me, I am just getting 400 errors when trading in the code and I cant see why
there some mistakes in stat translations where positive stat are copy-pasted into negative string.
I wonder if they reviewed them or players will be running clueless with negative values 
they're being reviewed
Big congrats on hitting SVN revision 200'000 by the way.
(assuming that's what the big number in the client version number is, at least 😄 )

release tags/3.18.1d 199539
release tags/3.18.1e 200221
Good to see it's actual changes. One of my old companies had a commit every 100000 commits that was just "🎉"
That's a fun one, getting 401 on all API calls: debug_assert!(self.headers.set(name, value).is_ok());
😦
and obviously it works locally
nothing has changed with OAuth this latest patch
if you DM your IP to me I can investigate further (DM's temporarily opened closed again)
@compact isle nah thanks, I found it. debug_assert!(self.headers.set(name, value).is_ok()); the debug_assert does not get compiled in a release build ... that's why it works locally
hah nice
Everyone wants their patch notes
🔥 🐶 🔥 this is fine
huh
start making your dummy account botnets now
ah right I was waiting for someone to find that
You have the convoluted browser sign-in for users that run into CF challenges already, right?
APIs will still allow guest, it's just the front-end that will require login

for reasons that will be revealed 
I was just about to ask who was abusing the frontend but not the APIs, lol
we'll need to figure out an OAuth plan for the trade site eventually
trade is becoming official api
(not early as 3.21)
please tell me you will have an actual auction house that doesn't require player interaction ....
but can only be accessed when logged in and not via API (to stop bot sniping)
😬
trade manifesto says no still stands
Where be trade manifesto?
Ah… so I get it. But it doesn’t stop the behavior, just makes it more arduous. I was hoping with the digs at TFT …
No-one tell users about Jason before Path of Building is done, ok? 😄
There is a diff viewer online updated somewhere already?
bit hacky but new tree works, need to find a way to properly support it though
i couldnt get mine to load up just got bunch of errors
yup
I have a PR up for it atm if your desperate, but it needs to be supported properly before its actually added
is there extra steps besides gameverisonslua and 3.19 tree folder
yes, the tree data is missing the assets dictionary, becouse they moved away from image assets to sprit sheets in 3.18.1 and we apparently didnt catch it
so I am loading old tree data and stealing their indexes to "incorrectly" load the assets
In a case where an actor has both a minimum and maximum action speed, which one takes priority? Just posting here in case a dev notices and has an answer, don't want to distract this close to release.
@compact isle any plans on allowing divine orbs prices to be rounded to 0.1 step
Anyone know if this is a character class in a non ggg client? 贵族
Chinese according to google
mh nvm I just though of googling on poedb: https://poedb.tw/cn/Scion it's a Scion
So I was just going through a dump of all paste on pobbin, turns out there are very few pastes with foreign character classes

Nice touch with the
localized hacking attempt.
(possibly
but I'm not sure our southern brothers are sophisticated enough to get online)
is there a timeless jewel tool available that would filter out already spec'd nodes? i'd like to find all the militant faith seeds that don't change my +1 charge (and other notables) to something else
full set threshold=5
all collected, looks like
what does full set thresholdd mean?
i thought it means i have to have 5 full sets sorry im new palyer
numbers above are 5 full sets
im pretty sure i do not have 5 full sets though the problem is
does anyone know how to get a program to read chat
All chat (almost) goes in the Client.txt log file. There's some projects to monitor the file for you and notify you in some way, or you can observe it yourself.
(players that have restrictive national privacy laws like South Koreans don't record in the log)
@carmine merlin sorry for dingdonging you, do you know how can I see "how this keystone affects my build"?
i was slingering in pob with 500-1000 range of wurms total recovery per leech but nothing changes at all
If text is red in PoB it is not applying, if text is blue it is applying. Also this isn't really the channel for this, one of the help channels would be able to help you too
no like, sorry for dingdong again. is there a way to see how much less damage taken I have in PoB from that keystone?
Look on the Calcs page in the defences section, should look like this
love you!
thank u very much ❤️
yeah it doesnt work.
https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/3620 same issue with this
Pretty sure the stat on the belt is different from the stat Strength of Blood looks for. I'm not an expert on SoB calcs, but an immunity build would be pretty simple if they were the same
probably but strange.
yeah this is my life leech on hit rate.
with keystone
without keystone
https://github.com/deathbeam/PathOfBuilding-1/commit/735c164a7de8ca8491d613b608e25aff90c63d66 the code below seems like not in ModParser anymore 
send me a build link
700% increased total Recovery per second from Life Leech does not affect the maximum leech rate, only the max life that can be recovered from a single leech instance.
50% increased Maximum total Recovery per second from Life Leech is the mod that increases the max leech rate and would affect strength of blood
@slim pilot have a read here https://www.poewiki.net/wiki/Leech
sorry for the trouble and all dingdongs mate
and thnx for clarification.
Please don't post discord invites
There wouldnt happen to be a handy code snippet for decoding the POB paste? I was hoping to just take POB pastes and extract items from them
They're XML that has been compressed with zlib Deflate and then base64-encoded, replacing + with - and / with _.
That is, to reverse that you replace - with + and _ to /; base64-decode, and zlib Inflate:
local xmlText = Inflate(common.base64.decode(buf:gsub("-","+"):gsub("_","/")))
yep
@compact isle Any plans on adding bulk buying ala how poe.app functioned in the old days? Where you could say pick 5 different maps (and tiers) and itd find users that sold all 5 maps and create whisper string containing all 5 maps and total price. Also bulk buying sextants with the modifier you want.
might be offtopic for this channel tbh
you can already do the map part
pretty sure that exists for any bulk item
also probs dont ping him this close to league start
sextants are harder because the mods on them don't have a name or identifier I can steal creatively re-use
you cant do that for the map
i was wrong
oooh
The sneaky option is "Group by Seller", IIRC.
ah ok
This world is an illusion, exile.
thats why then, i moved to tft for bulk buying
@compact isle Will reflective mist item be new mod tier or new mod pool? Wonder how it descibe in trade api. Will it be a quality like attribute?
I guess you mean items from Reflective Mist, not the itemized tablets.
Ya, my fault
unsure what you mean by mod tiers/pools sorry
the trade site generally deals in stats and these will just be negative (or positive) values of those
I assume the question was whether there were new mods to describe the new values in current ModGroups like IncreasedLife, above eg "Prime"; new ModGroups entirely; or some sort of scalar
that answers it as far as the trade site though
I'm curious about how the system is going to deal with hybrid mods, like if more than one mod contributes to say flat life, whether it'll negate the whole of flat life or if it's individually.
Time will tell on that one, I reckon.
I would definitely bet on individual mods being affected
Mod ranges seem like a bit of a moot point on reflected items though. It's not as though you can divine them
don't forget mirror+recomb shenanigans are gone too
Recombs are stealth nerfed btw, don't support mirrored items anymore.
ah
crafting league is over, welcome to the anti-crafting league
hoping for the filter/tool newspost soon
what are you expecting to see in there? Nothing interesting as far as I'm aware
@compact isle in the 3.19 tree with the sprites (3.18 used to have assets), it looks like the BackgroundStr , BackgroundStrDex, etc. are missing. Is this intended?
this stuff
map tiers, and just fun to see the names of everything
there was an annotated 0 watchstone atlas that someone made like yesterday from the stream. https://cdn.discordapp.com/attachments/527818090658922497/1007694404410167356/unknown.png
right, but still somewhat annoying to derive tiers from that
yeah since we don't render them on our tree
cool, just checking
dealing with the new line sprites is going to take a lot of work...
Looks pretty good to me 🙂
stop snagging WIP pics... not done yet
looks great 
same mod, just with values that fall outside the normal range (whether that be negative or boosted or whatever)
😄
is there any way to get version control (like git) for pob builds? usecase: multiple people working on a build together
you can probs just use version control (like git) on the xml
Please don't post discord invites
Seems to be around 10% increase per difficulty of tile that it can boost the modifier value… am I right?
For a 5x5 tablet it would max out at 170% boost …
@fickle yew with the increased importance of good rolls on uniques are there any plans to support that on poe.ninja? e.g. at least low roll is X, high roll is Y
I think there is enough combinatorial explosion from skill gems 
have fun setting up the trade links
any suggestions what the best source nowadays for finding (community sourced) drop restrictions (boss, league, or general pool) for uniques? i noticed some annotations on poedb but not sure if there is a simple programatic way to access these.
does poedb server render everything?
should be 160%, must a entry room
Send a PM to ChronoExile#8324 -- the maintainer of the Unique Item Thread. Chrono created a comprehensive Unique Item spreadsheet that includes columns for community-sourced drop restrictions, which you could tear into a file. (It's just a spreadsheet, but it's the most well-maintained and up-to-date source of which I'm aware.)
It is something I've explored a few times. It's pretty hard to do well unfortunately plus the combinatorial explosion @civic crane also mentioned. Ideas are very welcome for how to represent it.
to do it in a non-manual way, you would probably have to correlate prices with certain rolls being high vs low
sounds like a ton of work
I've considered making a small graph like the history sparkline which would give an indication of the distribution of prices. This might give an indication of how much the prices vary and that it might be one of the items that's more affected by stats.
It’s an interesting problem (tracking unique price by its rolls) you’d likely need more info like: for a given unique what mods can it roll, what are the max roll of those mods, what mods are important to its price, does it need to roll 100% or is 90% fine
Yeah and that is very hard to know. If you try to deduce it from pricing information it is also a vector for gaming prices. You could have humans classify it.. But that requires a lot of game knowledge and effort.
A graph would be nice. My first idea was about giving a warning if the variance reaches a threshold. Or displaying some percentile values. A graph would be superior though I guess
Dunno if you could add lines in the graph to show percentiles.
maybe you could just have some warning saying rolls matter a lot and are not reflected in the price, but anything about prices for each roll is just gonna be ridic, esp. during less popular times in a league
Yeah. The big problem is communicating it in a compact way that makes sense to many people. Even just something like the confidence rating has caused a bunch of confusion since ninja started. Mostly that people don't understand it (which makes perfect sense) and see prices that are way off and complain.
Maybe something like the upper and lower average of the median for prices of a unique
Which could show that a price is heavily influenced by rolls (if the two values differ largely) and even if someone controls the upper 50% it shouldn't matter too much?
But maybe 50% isn't good enough, since e.g. On a max REs roll you'd just want the max not 1 below the max so it's actually more like 1/3rd or even less which is expensive (also probably bought out quicker, means trash accumulates). (just thinking out loud)
I think seeing a large variance in prices with a large supply would be enough to warn me that I should check the rolls. E.g. If the bottom 90% are all priced within 10% of each other (or fit some curve), but the top 10% jumps in price. Not all uniques have just one cliff, so you can still look at an overall picture
I imagine it would be hard to identify items with good rolls, against items with bad rolls but just overpriced, when only given the pricing information
Maybe that’s something that could be made easier to understand via visualisation though?
A box plot might even help 🤔
Yeah most likely. I'll experiment with a few prototypes.
Yeah that seems like a good way to visualize, just bad to show progress over the league. Works but not as visually pleasing
When I form a json request, it gives strange results (filters are disabled, but the trade returns unidentified items, for example). Maybe someone knows what's wrong?
https://www.pathofexile.com/trade/search/Sentinel/Dp9zpRgT5
Easy to visualise with candles on a timeline though?
The way ggplot2 does confidence intervals should also be relatively easy for folks to grok
Detect which part of the item correlates with price increase eg reservation+qual for ashes. Determine at which point there is a noticeable price increase over multiple items. Show that as a secondary/alternative graph. Would perhaps work?
Yeah that works, but I would prefer a smooth line
Something like the ggplot2 graph I posted could work then
Yeah that looks good
I have a system which is kinda working but isn't that perfect for every item and every iteration. But in most cases it seems okay currently. Biggest problem is that not every attribute is important for a higher price of a specific item. Most of the times people only care for some.
@velvet fog https://poedb.tw/us/Modifiers error 500
thanks
Is there a place where all in game modifiers and their locations are listed? such as all skill tree stuff, all uniques and their mods ? I found the skill tree one here https://github.com/grindinggear/skilltree-export/blob/atlas/data.json, looking for unique names and the mods related to them
Uniques are the worst things in the game.
The recipe for assembling an unique item is server-side, clients only have the mods themselves named in an intentionally obscure way. You pretty much have to assemble them yourself from trade observations and guesswork.
Trade stats api?
API-wise, not sure how much the wiki is exposing.
POB has all the uniques i think, Did they do it manually as well?
I'm thinking of the case when there's multiple mods with the same stats and if you associate the wrong one, rebalances will not take properly.
Yep.
It's not exhaustive but that's also a good source of data.
yeah they re done manualy and thus can often have mistakes or go out of date
oh jeez, found it on github, yes it looks like manually done https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/dev/src/Data/Uniques/jewel.lua
@carmine merlin when gathering this data manually (unique item with their mods), which source (checking each item in game or wiki or something else)did u guys use?
In game (trade site) or patch notes.
Sometimes GGG ninja changes some wording, so we don't catch it, but if it doesn't change behavior it also doesn't matter
oh i see, man that must take lot of time(at least for first time) even if we automate it somehow (going through each unique on trade site). I read that GGG is making being logged in a req for trade site, so going through hundreds of uniques to gather mods would probably will lead to timeout at some point. Wish they had a specific page with unique item and their mods on official website.
I get the impression that it's one of the last areas of the game where there's things to explore and discover.
A lot of the other ships have already sailed but that one is still in port ^_^
iirc at one point some uniques were in the dat files (many years ago) I feel like they are omitted for a reason, and thus unlikely ggg will ever add a wiki page or whatever for them
I am willing to make a proper dataset with uniques and mods but I wish there was some otherway then doing it manually or using trade site (dont want to make that many requests)
@velvet fog might have it partially automated or is just really fast at finding the new stats as they appear on the trade site and correlating them to new uniques. Probably a better way to do things vs. PoB. PoB has the added headache of keeping legacy variants, though, even those that don't exist anymore
would you say https://poedb.tw/us/Unique_item is the best we got unique database-wise?
I use the public trade api to autocorrect uniques and rarely encounter errors
I see ty
if they were, it was before 0.11
I think it was some point between 2.0 and 3.0 and it was only a small subset of the uniques, but I could definitely be wrong
you can infer the presence of unique items from files like UniqueStashLayout, and you can sometimes infer unique mods from stat translation files, but the full mods + ranges are a mystery until they show up
and yeah that ^
Hi, everyone! I've got a quick question about PoB Fork.
I've been having problems with it for quite some time now, and haven't been able to figure out why it's doing what it's doing.
Does anyone know where, and who to possibly talk to, to possibly help me with this?
PoB won't allow me to click on anything, well it does but nothing shows up unless I min/Max the screen. So I literally have to min/max the screen for any of my selections to show up...
Any help would be greatly appreciated!
other people have had similar issue, one sec
this thread might help you, but theres a few other similar ones https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/4109
Thanks, I'll have a look into it. Hopefully it helps. not being able to use PoB isn't that great.
Hi, sorry to bother if anybody brought it up already but wanted to ask about bens helm echoes of creation not necessarily working in pob as it doesnt even have roll able values past armour and life, and stuff like seismic cry not benefiting from the more damage modifier @carmine merlin
text on helm is red means its not supported yet, open a feature request on github
alright will do thanks
when does the pob update for new league come out usually?
tyty
I may or maynot have increased his workload
Oh i see tyty, I haven't used pob for league start build making myself (only copy pasted pastebin lol) so wanted to try this time if I can.
How... would one go about and use Energy Blade in PoB or it not supported yet?
There's a configuration box that enables and replaces your weapon
Ah, I'm blind thanks!
PoB update out with new tree and uniques btw
does anyone have exp converting the poeninja api to dataframes for pricing? like jewels or uniques
make sure you filter out foil/6link versions, and have a way to get prices for specific variants of items with the same name
still looking for a tool that lets me filter notables to not be changed by militant faith. might be possible with the pob tool and im just too dumb to use it 
https://poe.maxroll.gg/ has great tooltip display
Maxroll covers Path of Exile Character Build Guides, Class Ascendancy, Resources, League Starter & Leveling Info, Endgame, Boss and PoE Currency Farming Guides.
looks very familiar
Not be changed = base_devotion
In my tool atleast. Which is +5 to devotion (no other changes)
So maybe look for something similar in other tools if you are using others.
I had someone with same question that i solved recently
So basically in this pic, those 5 skills that i chose are unchanged in all those seeds
Lmk if i misunderstood your problem though or if i am wrong
nope this is exactly what i needed, thanks! a lot more options too than i was expecting
you can technically do that in PoB as well, but its a bit less intuitive
if you filter out only those notables, and then minstat devotion it should work
Cheers, i had a dm with same exact problem as yours in last 2 days so i remembered. 😄 Happy to help.
Maybe i should change name from base_devotion to base_devotion/unchanged i guess
unchanged would be the most intuitive for sure. i did mess around with your tool earlier but didnt figure this out
although if youre searching for total devotion then that might not be ideal
My tool doesn't work for small passives, only notables so it can't tell total devotion anyway (i haven't used militant faith so not sure if i am right or wrong abt this)
small attribute nodes get changed to +10 and everything else in radius gets +5. if a notable is changed it doesnt give any devotion
so it does sound like unchanged or something similar would work
what do you mean by minstat?
PoB factors that in if you search for total_devotion
"minimum node weight"
it still seems to bring up results that changes notables
if you want 5 notables to not be changed and have 15 small nodes you should get 150 + 25 devotion, so you can minimum node weight of 175 is devotion is 1
oh i get it
for me the search brings up results with total weight 110-135, so i believe only the results with 135 would work
with filter nodes ticked and only those notables allocated
its much more of a pain to do it in PoB atm than keshs tool
but you can do it
yep, thanks
was looking to setup a live search, but with 2600+ results that might not work
@compact isle can't visit old league page, example https://www.pathofexile.com/sentinel
ah yep we'll sort
and if you care, there's missing/broken images on a bunch of the old league announcement pages
do you have an example?
@compact isle https://web.poecdn.com/image/breach/ss/EnterTheBreach3_thumb.jpg on https://www.pathofexile.com/breach for instance
mostly the really old ones, not terribly concerning
Can I safely assume that the list of classes and ascendancies in the tree json is always the same (e.g. scion is always index 0)?
https://github.com/erosson/poedat/issues/2#issuecomment-1217073464
Sad times, Erosson’s poedat API is going bye bye
A bit more detail https://github.com/erosson/poedat/issues/3#issuecomment-1217070800
for this whole league there some tables that break my dat analyzer, going to rewrite this C file in rust, maybe it will get fixed by accident 😄 wonder why this started to happen only this league
How much of the data that you require isn't provided by RePoE?
idk, this is what I'm using rn (maybe some unused field because of old leagues being removed), plus stat translation files
Is that format produced from your own tool?
yes, you can use this config, but how is not documented ( https://github.com/SnosMe/poe-dat-viewer/blob/master/lib/src/cli.ts)
A tool that's in JS ❤️
Looks like it could be doable
Where could I find an example config.json?
as I said no docs, interface ExportConfig in that file
Right understood
glad they did it, because implementing it with stash folders and korean privacy is not fun
Remove-only stash tabs can no longer be set to public
Guess I have to step up my game then.
So the in game whisper button is why the site has to be logged in now, cool
I was betting on some level of console integration
I guess that's the most we're getting
So we may send any message to ingame with poesession?
sounds like it https://twitter.com/@pathofexile/status/1559738393797722112
@crimsonfalconer The Direct Whisper feature has the same spam characteristics as pasting the message into the game (which was already possible and easy). We ban people who spam with it.
the message is generated by the website backend
Can't enter any custom passphrase content?
nope

I guess we'll find out eventually, but does this eliminate the previous "Whisper"/"Contact..." textual copies or does it supplement them?
It'd be fun to see the reaction from people who edit prices when their lives become harder. 😄
Never mind, it was actually covered in the thread if I had read it 
currently looks like this (when you're eligible for direct whispering)
Somehow I managed to miss the big honking screenshot in the post last night.
it was retroactively added
Ah!
maybe it's finally time to replace _ in client log with item name 
I made sure they did that for 3.19
Has anyone ever tried to make a atlas tree pather? Wondering how hard it would be to make a tool that allows you to select an X amount of nodes on the tree, and then calculate the most efficient route to them
I know PoePlanner does it for single nodes that you hover over, just wonder just how much of a pain it would be to make it work with multiple nodes
its a pretty simple graph theory problem, the issue is that its only guaranteed to be point efficient and not the optimal tree for your given nodes to do that you need to assign a weight to every node and then solving that isnt simple
simple does not mean quick to run though
@compact isle I hear that the trade site seems a bit weird now. Supposedly items listed in forum shops long ago show up as listed half a day ago and it's even showing items from banned players.
Is the loss of listing times (useful for filtering I guess) expected or something accidental?
Old post dates: https://www.pathofexile.com/trade/search/Standard/yVRDMggiR vs. https://www.pathofexile.com/account/view-posts/김미로
Banned user results: https://www.pathofexile.com/trade/search/Standard/3mRjdWKS5
this is expected, we've re-indexed all item data this time around
That problem is quite complex to solve(complex as in time complexity). It is called Steiner Tree Problem (https://en.wikipedia.org/wiki/Steiner_tree_problem) There are a lot of graph libraries for various programming languages that have an algorithm for this but they are designed for very large graphs and use approximations. None of the ones I tried returned actual optimal results. I am sure there is an algorithm finding the optimal result but it will be slow for sure. Approximate ones I tried gave pretty good results but I could always locate some pathing that used less points.
Hi everyone
I'm trying to get started with getting some game data about items into my web app. I've found a few tools, RePoE, PyPoE (and a few forks of it), Snosme's poe dat viewer, etc. etc.
Now, I'm not sure what's currently the most straightforward way to get item data and mod data in a format that's easy to read (in my case, JSON would be preferred).
Any tips about this?
Poe dat viewer has the option to export in JSON
RePoE is nice if what you want has already been exported
Poe dat viewer is great for "debugging" or exploring game data but it dosen't have any sort of programmatic interface so not great for working with in an automatic way
RePoE is great, however the exported dataset is incomplete
PyPoE is a tricky one, the original project isn't maintained and there's many forks but they're all forked for the specific projects that they support, there isn't really a "general" replacement
Thanks for all the responses! I've finally got RePoE to work (somewhat) but it fails, e.g. when parsing the base items module. (Because of some specification row size mismatch).
I guess it's because it's outdated with the newest patches?
If you're using the original one then yeah, it hasn't been updated and wont be updated in the future, i'd advise using a fork, but even those have their own caveats
Wiki api as soon as we’ve run pypoe to update the data we have
I never remember the wiki api
It is a thing, maybe not the best thing, but a thing nevertheless
is there a way to search messages older than 3ys here?
how about a SQLite database representing the game data
The list:y types are going to be a bit of a pain.
JSON arrays 🙂
Fun fact - my C++ storage for a DAT table is nlohmann::json.
I needed a variant type capable of expressing the DAT column types as a return value and JSON objects were already in the codebase 😉
"temporary hack"
Yeah I feel like storing the game data as a strict columnular format would be difficult to do initially and then maintain over time
I've already done it
Oh! I see, how has that been maintaining the changing structures?
A pain, but I have to do that anyway when data formats are changed. (And it's been a while since I updated the formats, I need to get back up to date on that.) But the database schema is all autogenerated; there's no extra work involved there
but the upshot is that I can do things like:
sqlite> SELECT Words.WordlistsKey, Words.Text, group_concat(Tags.Id) FROM Words, json_each(Words.SpawnWeight_TagsKeys), Tags ON json_each.value = Tags.rowID GROUP BY Text LIMIT 15;
WordlistsKey Text group_concat(Tags.Id)
------------ ---------- ---------------------------------------------------------
2 Abode urban,default
2 Abyss dungeon,cave,default
2 Aegis focus,shield,default
2 Angler fishing_rod,default
2 Anthem focus,default
2 Apex mountain,temple,default
2 Apparatus heist_equipment_tool,heist_equipment_weapon,default
2 Arbiter abyss_jewel,default
2 Arch bow,default
2 Arrow quiver,default
2 Artifice sentinel_drone,default
2 Badge focus,shield,default
2 Bait fishing_rod,default
2 Band ring,default
2 Bane axe,sword,staff,sceptre,bow,claw,dagger,wand,mace,default
sqlite>
auto generating the schema sounds pretty awesome, nice one!
also being able to run basic join or group by sounds like im at home :p
@wraith jasper If you want to toy around with a corpus of DAT64 files, I assembled this for someone recently: https://zao.se/~zao/poe/dat64-loose-3.11.2b-to-3.18.1d_199539.zip
You can use a copy of this to relate build IDs, rough timestamps and version strings: https://inya.zao.se/poe-meta/builds/public
@rapid pagoda Not sure if you ever set up your own source of DAT64, but might be fun for you too.
Is that a bundle of the packed dat data?
payload.ndjsoncontains rows like{"path": "Data/AbyssObjects.dat64", "build": 5836038, "sha256": "4be81dcb49077826577161720a054a786beb6cd4cb57475f52746abf6057c0ba"}, mapping a build and path to a filename with the contents indexed by data hash.
refhas files likeref/4e/4be81dcb49077826577161720a054a786beb6cd4cb57475f52746abf6057c0ba.bin.
You can reconstitute a build's directory tree by hardlinks or symlinks accordingly or relate it based onpayload.jsonentries alone in dedicated tooling.
It's deduplicated on file content hashes to save significant transfer/disk space.
yeah that zip size is crazy small for how much data is in there
My infrastructure has the ability to fetch a manifest of all the extracted files in a release (or all the bundle files in a release), allowing one to obtain files of interest by hash.
This ZIP was built from a small subset of the backing storage of that with some ad-hoc scripts.
The result is still the packed data through right?.... if we could do that with decoded values that would be sick!
All files are indeed as they are stored in the bundles, no interpretation.
Well it's at least half the problem!
@compact isle In Lake of Kalandra, the item you received the most recent whisper for is highlighted in its stash tab. Is it based on regex of message string? or only worked for direct message?
regex but if it isn't a direct whisper then it has to fall-back on stash name matching to know where to highlight
@compact isle Don't know if you can answer this or we are going to find out about it ourselves, but any changes to the seed values of timeless jewels?
or did the thought process behind Exalt to Divine meta change included this in mind?
Basically even if seed values remains unchanged, no ones going to use divines for 1 in thousand chance to get good one because of divine orb value.
(just realised that you might not know much details about this so sorry for the ping, I am not going to delete this otherwise it would just confuse you as to who pinged you)
torrent waiting room
I'd like to update a custom SSF item filter I have in preparation for the league. Is there a list somewhere of new base types and uniques introduced in 3.19?
For example, I know there are new ring base types and new skill gems, but the specific names are not called out in the patch notes.
https://www.pathofexile.com/forum/view-thread/3294085 i think this is the one u r looking for?
Yes! Thank you
Cheers
does anyone here know how poe ninja rankings work? do they go off of official ladder?
I wonder because I remember times where I was supposed to be on the ladder but I wasn't, despite having a public profile. Is there a way to force the site to refresh my char for example, import it?
it's straight ladder, takes about 24 hours to crawl
rasmus tries to cull characters with removed equipment and such
did you have a weird build?
does that imply it's also 24h delayed?
I don't remember specific instances but I usually play pretty meta stuff
no triggered spells, no minions, no item-based skills
yes, each person on the ladder is generally crawled ~24 hours, except for first few days of the league
I've had it happen early on too
where you were on the ladder but not poeninja?
it's actually mostly only in the first few days that I keep an eye on ladder to gauge my progress against the fastest players
I was nowhere to be found despite being high enough level to be on page 1 or 2
at least for my ascendency, probably as a whole even
if it happens again where you're on the ladder but not on poeninja after poeninja has time to update, you can ping Rasmuskl
is that helpful? I don't want to be annoying, it's not exactly important
total vanity/curiosity thing
he doesn't mind afaik
Torrent up
is gamestats.dat usually in the torrent ggpk?
most dats are not in the torrent
no dats in the torrent
List of added/removed DAT64 files, no contents available: https://gist.github.com/zao/6be47a67c69ccf8474bf2d63cc343512

It is faster than 24 hours most of the time. The best way to make sure you get updated is to gain experience (or be level 100) - otherwise it will skip for a while to prioritize more active characters.
@compact isle Any chance for an API endpoint that just gives the current poe version at some point? That information simply isn't available anywhere that I can find 😅
what is that relevant for?
he want to know the endpoint like https://www.pathofexile.com/ladders/league/Standard for ladder fetching
a version is a different thing to a league 🤔
what the league name is Kalandra or LakeOfKalandra for https://www.pathofexile.com/api/ladders/Standard ?
It is useful for league launch day. Which passive tree is being used right now. Pob also requires a tree version to be embedded in the data files etc. And also just knowing that a new version is running 🙂
does ugh blanking on name... know poedb.tw is down ?
oh is the ggpk available and being parsed / updated?
Patch is indeed up, I'm sure chuan is doing unholy things to it 😄
ok, so it's down for updates. not down
i'm so stoked about this divine change.. i think it's going to be utter chaos the next 3 days... lol
pun intended
props to our new champion MicrotransactionAppliedInventoryItemArtVariations, tied with MicrotransactionPeriodicCharacterEffectVariations for first place in the "longest data file name" league
Filterblade pls don't display bearer token from error on page.
For anyone digging, I've got this for now:
type HarvestCraftOptions {
Id: string
Text: string
HarvestCraftTiersKey: rid
Command: string
Parameters: string
AchievementItemsKeys: [AchievementItems]
HASH16: i32
Description: string
IsEnchant: bool
LifeforceType: i32
LifeforceCost: i32
SacredCost: i32
_: bool
_: [rid]
}
All wild guesses ^_^
I'm still trying to update stuff I never got around to in 3.18. 
you guys leak the new harvest crafts?
implicit = "Gain 38 Life per Enemy Hit by Attacks\nGain 14 Mana per Enemy Hit with Attacks",```
^ new claw implicit... why is one `by attacks` while other one is `with attacks`?
cause Engrish is tough? 🤷♂️
got legendary beasts weights data?
used to be on poedb, right now it isn't though. don't know if they removed it or just isn't in again yet
hey how long does it usually take for dat schema to be updated?
depends what you're expecting to be updated. there's lesser used data files which are multiple leagues out of date
so I was working on updating numbers on haste in PoB for my own checks, and I'm modifying act_dex.lua, is that the wrong file to mess with? I updated the skill gem table with the new GGPK values, but it doesn't seem to have any effect on my dev version.
they are already updated on the main dev branch so that might be why
I did a merge with origin/master and didn't see any update, but perhaps I mixed up my commands
eh, origin/dev maybe?
also act_dex.lua is a generated file made by the exporter, so changes will get overriden
my gits a little rusty
you need to edit the .txt file in exporter
Yes, origin/dev
Thanks, looks like I hadn't rebased my PR for awhile either, going through and fixing that up as well
PoB update with support for all the new skills and changes is out
uh the main stuff, items gems etc. anything we can do to help it? where does it even come from, guessing?
but mostly want to know how long it usually takes, haven't really used this stuff before esp around league launches
All of the data is extracted from the game files. Note that the preload torrents don't have any of that data. PoB gets access to the game data it needs when the patching servers go up again on the league start patch, a couple of hours before league start. If the structure of the game data didn't change (too much), the extraction is all automated. Sometimes, there is need for adjustments. Work on all of that can only start shortly before league launch. Pre-release skill gem data from teasers is mostly useless, since it usually contains only am single data point per gem (at level 20) and it's not worth the effort to mock them in PoB
im talking specifically about the schema, not the actual contents
that's squarely a manual process involving a lot of squinting at hex dumps and cursing
ah, figured as much, sounds fun
speaking of schemas, https://github.com/oriath-net/pogo/commit/e7f2f77413ab492b2bf905f7b80faf7678fcdc82
Formats look sound, but most fields aren't decoded yet
product of today's squinting and cursing 😄
also, built a shim version of gooz which calls into a real Oodle implementation 🐙
Code crimes \o/
https://github.com/oriath-net/goodle it ended up being pretty simple
An OodleLZ wrapper for Go. Contribute to oriath-net/goodle development by creating an account on GitHub.
(still need to test the windows version, I literally just wrote this so I could stop running under emulation)
(aaand the windows build doesn't work at all, need to do some research)
Am I late to the party, had a nice thunderstorm with no electricity for whole day 
the "new" archnem mods from the looks of it
theres an extra int field at the end of soundeffects.dat, seems to be 200 for most effects
oh i guess the squinting isnt done 😦
characters.dat is still in the works?
It's more annoying to read but I've updated some specs here, including characters.dat
https://github.com/Project-Path-of-Exile-Wiki/PyPoE/commit/83e1c07bd305da0f12147e78f3321243bc638022
sounds good thanks, i need it for pypoe too
I guess these are probably needing an update then https://www.poewiki.net/wiki/Modifier#Mod_Generation_Type
Modifiers generally change various aspects of the entity they are affecting. Most commonly modifiers apply stats, however they can also apply buffs or grant skills and can often be found on items, monsters, strongboxes or areas.
A modifier should be seen as an instance of change applied to an entity. A basic modifier does nothing on its own, it ...
I did some research on Characters and character-related things too, https://github.com/oriath-net/pogo/commit/0cdf03f314744d375451ff4f6fe90122f9476430 is what I came up with
- Characters
- CharacterAudioEvents
- CharacterEventTextAudio (new in 3.19)
- CharacterPanelStats
- CharacterPanelTabs
- CharacterStartQuestState
some of that commit is historical, I'm supporting data files back to 0.11 🙂
Hi all. Is there now a stable/correctly working tool for viewing/uploading content from ggpk? I tried different versions of VisualGGPK and when using it, errors occur / some tables (which are referenced in others) are empty.
I need to save (correctly) in any format data from ggpc to load into sql base
udp. I read the channel, found answers to my questions.
Ah, you mean "DAT tables" by "content from GGPK", not actual content from GGPK 😄
I want to make an instrument in addition to pob. Which will select from everywhere (pantheon, mods-uniques, tree, etc.) suitable logically, where there will be all kinds of selections (for example, for types of skills- only melee) where I can change all possible characteristics with sliders to assess damage / survival.
Pob a great tool but I'm missing a lot of quality of life mechanisms in it.
First I need to fill the database with data, I did not find a convenient method to get everything, I will have to combine different things.
the information that is here on the channel as a whole is enough, thanks.
Oh great. End-users are hooking the game with mystery binaries from the internet to remove the widescreen black bars.
Gonna be a mess when they end up banned.
Sets a dangerous precedent in conditioning players that hooking with random binaries is fine and provides infrastructure for people who want to do worse things. 😦
does HideoutDoodads work for you?
your schema has 60 bytes when it should be 61
I am now trying to look in VisualGGPK mods.dat and it gives me an error "actual record lenght 399 isnt equal to that defined in DatDefenition.json" 395.
As far as I can see the schema comes from here
https://github.com/poe-tool-dev/dat-schema/releases
As far as I understand, this table has changed during the update and the schema has not yet been updated? Just wait and the scheme will be updated or try what to do yourself?
IIRC, there's now a list of keys into ModFamily.dat, not sure where I saw that but probably PoB.
One can interactively experiment with schemas to some extent in poe-dat-viewer, but someone eventually needs to get some PRs going to the dat-schema if your tooling relies on it.
The schema is definitely not fully updated.
I haven't gotten a crash due to hideoutdoodads yet, but I haven't tried exporting all items yet either.
I've just been fixing them as I go, doing what I need for the task I'm working on for the wiki.
i fixed doodads, didnt check where the two new keys point but they did reorder the fields substantially
@compact isle are you guys going to provide the updated tree via GGG github by any chance? your online tree is different than what 3.19.0 preview has
oh yeah sure I can do another export
ty
bleh looks like the spritesheet's hashes are changing
those are pushed now
ty sir
thank you guys! https://atlas.omri.io, my atlas tree overview tool, was just updated for 3.19 following this as well 🙂
@velvet fogHey chuanhsing, i wanted to ask if the change to how modgroups are shows on poedb resulting in them appearing as "ModFamily###" is deliberate or is it a display bug of some sort :
It's a bug and will be fixed soon. You should already know that CorrectGroup has been changed to list.
Yeah i noticed it was now a list, way easier to handle in the game with cases where a mod needs to affect multiple "modgroups" at once, no need to fiddle around with add_tags and special weights if the tag is there anymore im guessing. Thanks for replying.
inf effective health pool? is this bug or some weird combination of stuff leads to this?
fixed
The effective healthpool number comes from running a simulation a certain amount of times. If it doesn't find that you die within a certain number of hits then it will list inf. This almost always is due to life/es gained on block. You can disable it at the top of the configs tab
tyvm, I dont have any life/es gain on block in my build, just some life leech. By disabling that config it shows fine now, ty.
thanks for the speedy fix
@velvet fog FYI it looks some mods from more niche mod categories like delve and incursion are missing their modgroup data on poedb, ModFamily: undefined, i checked the game data files and there is indeed a modgroup under the groups array (that was for amulets) :
is it okey what GGPK Viewer already 5 min showing nothing just write "Sorting GGPK directory" ? or this tool doesnt work ?
Hello, idiot question here: How can I extract a texture from my game files?
I'm trying to find the textures for Janus. The in-browser model viewer I found doesn't even load the textures properly.
poedb.tw model viewer specifically. Texture's a little shifted
And he's not looking all that great underneath all those meshes, either
does anyone know a stash tab river change id that is right before kalandra start?
forgot to save one
1615578448-1619091892-1565253411-1737443924-1681338788 is what I can come up with
@compact isle Thanks! Also I read on the API docs now that you need service:psapi authorization scope for the stash api, but http://pathofexile.com/api/public-stash-tabs?id=1615578448-1619091892-1565253411-1737443924-1681338788 seems to work fine without any authentication. So I'm confused.
I assume you only need OAuth then to bypass the 5 minute delay?
if you were to have permission for that (which I don't have (obviously) nor need)
In most cases you can't take textures and use with the geometry data directly.
Both positions and texcoords are modified by the material graphs in an extremely flexible way.
There's muddling of texcoords based on time, there's skeletal animation, there's a popular node that samples a single texture multiple times with shifted texcoords to produce several samples, there's even ray marching-type of logic.
Texture samples are also scaled and biased with a multitude of artist-driven controls to achieve the desired look and textures can pack all sorts of data in their channels, it doesn't map directly to the legacy/PBR material workflow you may expect from modelling packages.
A competently interpreted material graph ends up something like this, in rave mode:
Or very underlit:
Neat, thanks for the explanation! Makes sense why the few modelviewers were janky as well as not around for too long.
The only real way to render things is to implement a fair bit of the render pipeline and generate actual D3D11/12/Vulkan shaders.
Web shader languages are probably not viable targets unless you can cross-compile well enough, and something like glTF or other formats that assume a fixed intent for textures is completely out.
Yeah, I can do a decent enough job for my own interest, but I don't even try to get the appearance to look exactly how it does in-game because I feel that would just be way too complicated.
I think you mean VisualGGPK2
It use the DatDefinitions.json by default, and it's not updated to 3.19 yet
If you want use the schema from https://github.com/poe-tool-dev/dat-schema/releases
Check the checkbox above
btw, last two fields are CostScalesWithStackSize and a second AchievementItemsKeys
Ah! Suspected something like that.
i lost all hope trying to find what causes awakened poe trade and poe overlay not to evaluate items...other options work but CTRL+D just refuses
Log says: warn [clipboard]: No item text found. {"text":""}
i tried reinstalling,changed dx11/12/vulkan,full screen,borderless,run as admin nothing seem to affect it
Idly musing, I wonder if one could use ETW to find what processes activates when one hits the shortcuts.
something else is capturing ctrl+d
I believe it in the APT FAQ
might be discord
Given that the actual log is not shared with context it's hard to tell, but I'd expect that it's the second press with the advanced item copy that gets intercepted as the initial APT churn seems to trigger.
could you guide me on how i can track it maybe?
it is really frustrating to play without any price checking tool
i tried turning everything off besides game and overlay had same result
There's a lot of things on a system that may steal a shortcut like Ctrl+Alt+C (if Alt is your highlight key in PoE), including things like display control panels and other fairly fundamental programs.
As the nothing-happens page that explicitly outlines the problem says, when stuff like this happens without much trace the programs that steal the key have done so in an annoyingly invisible way making it very hard to track down.
even with chaged keybinds log in APT says: warn [clipboard]: No item text found. {"text":""}
poe overlay shows
@visual briar you can close APT, you don't need it to track this issue, your goal is https://snosme.github.io/awakened-poe-trade/nothing-happens
seems like it dosent copy to clipboard
for a moment it did work just now! after i alt-tabbed multiple times i was able to price check 2 items but when i right clicked with my mouse to move it stopped working again
I've tried this before, it still gave me an error. I can’t attach a screenshot, for some reason the discord does not allow me to insert them into the message.
I don't know c# and python, but I can read code(get a general idea), I tried everything before posting here.
Then I tried pypoe - it didn't show an error in the console, it wrote that it saved the dat I needed, but the folder I specified was still empty.
how the heck does poe do restartless patch
cant figure out a way to do it
server swithcherou ? but that would be insane, so thight is the change
on the fly data change in db and cache with access protection while it happen ?
why is a change in the database needed? Probably the next time you join an instance you get a new version, similar how web servers can do restartless upgrades, new requests get the new stuff
that would be feasible, but only for number valeu and disabling/enabling code
And not every patch is restartless, so stuff that does require some access control (database e.g.) still can happen
that's feasible for everything that doesnt require an updated client
but I agree a technical write up from ggg would be very interesting
Client code, while server changes are merely configuration
From what I've gathered, they don't do blue/green deployments
the configuration must be extensive to allow for malleability in rapid fixing
Yes, but worth it. Imagine having to restart due to every small change being hard-coded. It'd create a real headache and monetary loss.
Compromise - introduce slight headache by utilizing configuration and feature flags early on as a 'culture'
Much like test driven development
it's a good practice anyways, less magic values and usually better organized code
If you want to up the stakes even further, you could always assembly swap (hot reload logic), but I highly doubt that is being done. That requires rigorous security controls in your processes and pipelines
with my mental model of the poe server setup, I think that would be relatively easy
you can slowly migrate clients to new server instances when the enter/exit maps/areas
easy = possible
I reckon it's all just draining old instances and any freshly started ones go to nodes that have the update deployed.
If it's critical that they can't leave people on old instances, they could assumedly just club those after a particular time.
Apart from people who idle in HO/town or intentionally keep a zone alive, instances have a typical max life of not too many minutes, they rotate out naturally.
(all guesswork from the outside of course, but good luck ever getting details on actual trade secrets)
@velvet fog
sir, i'm wondering: is bestiary weight completely not available anymore, or is it only temporary?
removed in recent version
Hello Guys,
i tried the Awakend Trade Macro. I got the Problem that all Hotkeys working except the CRTL+D command. And I dont have any possibility to go to the sttings, becouse i dont have any thing on my screen after i press the comand Shift+Space
I woud apreciate any help so i can use the Macro.
Greets
i have an old version of the weights if you need them, but yeah they're gone now
very sad, thanks (got the old weights saved, no worries)
I have no idea where to report bugs of PoB, but timeless jewels do not affect High Voltage.
As best I can tell, there are three categories of patches at GGG: client hotfixes, server hotfixes, and full patches. You're interested in the second one.
The PoE server architecture spins up an "instance" server process for every in-game area players can visit, e.g. world areas, maps, and towns. When you open a map, for example, part of the delay before the portals open is (possibly?) that server process starting up.
Server hotfixes replace the code that runs those servers for all newly created instances. Since it doesn't touch the client, none of the code or game data that affects the simulation can change, but server-only logic like item and monster generation is fair game
(And as far as data is concerned, the game is heavily data-driven -- even some things you'd expect to be hard-coded like the logic for Harvest crafts is actually controlled by scripts in data files.)
some games do some pretty impressive things to the client without patching it
but I don't think PoE is really set up for that
Thanks for the detailed answer !
Yep we know about that bug. Will be fixed in the next update
Anyone know when awakened poe trades getting updated for the new items and bases?
Does the poe trade site allow searching via a GET query string? (e.g., custom search a term)
yes, take a look at the links used on poe.ninja for some examples
oh, that's right - thank you
likely in next hour
@civic crane I'm sure you've been asked this a million times so I apologize in advance; I loved the old exalt/chaos ration lookup in the top left corner of the price check dialog. Is there plans to update this for divine ratios? It was just convenient 🙂
My PoB seems to be "stuck" in minion mode. I have unchecked "minion stats" from calcs, but if I pick life, it only shows me minion life and crap
nvm it's the old bug where full dps breaks the tree
Is Offense/defense just broken in power report?
known issue
I have a dumb question for you all.
How can I convert bin files in Bundles2/Audio/Dialogue/NPC folder to usable music files?
Oonga boonga way of ffmpeg, ffprobe and some random golang code didn't work.
All data in Bundles2 are in a bulk-compressed bundle file format.
You need either a tool like Bun's bun_extract_file or something like VisualGGPK2 to list and extract files.
(or if you wish to roll your own, parsing of _.index.bin, an Oodle decompressor, our file format descriptions and some elbow grease)
Each bundle contains several files laid out end-to-end and compressed in blocks. To access a file one needs to find the blocks that contain it and decompress+slice the data out.
Seems like shit is complicated
bun_extract_file search led me to https://snosme.github.io/poe-dat-viewer/ this, would it be useful?
nvm I don't even have Content.ggpk for extracting rn
Standalone and Steam has the same data, except that Standalone wraps it in a Content.ggpk file. Inside that you still have the same Bundles2/ structure as Steam.
Bun source is at https://github.com/zao/ooz/ and pre-built at https://zao.se/~zao/poe/bun-x64-Release-g462332b.zip. The command line tool understands both GGPKs or Steam installations.


