#tooldev-general

1 messages · Page 1 of 1 (latest)

pliant cipher
#

Have any of y’all worked with websockets and the live trade API in C#? I finally got my requests to not return a forbidden and instead I’m getting a 426 upgrade required response and I have no clue what to do now

#

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

tawny agate
pliant cipher
#

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.

pliant cipher
#

Well, actually it might not be that. Hm.

surreal oar
#

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

flat star
#

Hi all. Tell me how to open the DAT file for work? (HarvestSeeds.dat)

#

Or where do I download game data to use it? I'm interested in crafting harvest, workbench and bestiary

hazy fiber
#

my advice is pypoe or repoe or similar

carmine merlin
flat star
worthy cape
#

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.

flat star
#

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

worthy cape
#

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.

flat star
#

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?

worthy cape
#

I don't know if there's any convenient tables of the Harvest actions.

oak estuary
worthy cape
#

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 😄

flat star
#

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

worthy cape
#

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.

worthy cape
#

This just in - Zana left us to go to a rave. 😉

waxen musk
#

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

waxen musk
#

doesnt help that libggpk still hasnt been updated sadge

waxen musk
#

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

oak estuary
waxen musk
#

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?

oak estuary
#

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

waxen musk
#

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 😐

oak estuary
#

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

waxen musk
#

it just used StatsKeys with Stat1Value/Stat2Value etc

oak estuary
#

Here's the export script if you want to look through the logic

waxen musk
#

ye found that already

rapid pagoda
#

... huh. TIL: the Unreal Engine source repo includes Oodle source

frank drift
#

what's the license?

hazy fiber
#

iirc unreal engine is "source available" not "open source"

rapid pagoda
frank drift
#

I was wondering what the consequences of looking were

rapid pagoda
#

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.
rapid pagoda
#

And what do you know, I now have a functioning ozip. On ARM64.

worthy cape
#

Heh, cute. I've idly wondered how the UE integration worked but never looked.

#

Probably for the best considering the license.

surreal oar
#

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

orchid light
#

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

worthy cape
#

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.

formal kraken
#

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 😦

orchid light
#

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

surreal oar
#

just a WIP snapshot of my "make a build item shopping list" tool lol

ripe dawn
#

have a spanish channel?

surreal oar
ripe dawn
surreal oar
#

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 =/

carmine merlin
hazy fiber
#

hopefully included* its been in the works for a very long time

carmine merlin
#

Yep although will be on the beta branch within the next week hopefully

#

Looks like this atm, but will probably change

surreal oar
#

big oof lol!

frank drift
#

what does the whisper button do?

#

seems like a trade search link would be way more useful

hazy fiber
#

copies the whisper

#

and the trade search is right there?

carmine merlin
frank drift
#

yeah that seems questionable compared to just giving a trade search link

#

someone'll like it I'm sure though

oak estuary
#

You also have the trade search link, though?

dense shore
#

That looks like a dank feature

buoyant dagger
#

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

#

Nevermind it's definitely the former, can't read

oak estuary
#

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.

formal kraken
#

Image from the wiki. Is there art that matches the ascendancy images for the character (unascended) classes?

worthy cape
#

Rectangular without border?
Probably names like Art/2DArt/UIImages/Common/IconStrDex in Art/UIImages1.txt

#

example source:

formal kraken
#

yeah

#

ah that's perfect

#

zao mvp as usual

grave wren
#

time to update my old imgs

worthy cape
#

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.

formal kraken
#

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 templarLul

grave wren
#

syncthing is neat

worthy cape
#

I've more than once used woof to serve an arbitrary directory over HTTP as a ZIP.

formal kraken
#

I am considering sshfs from WSL

#

but that's probably stupid

worthy cape
#

Almost as sketchy as tar | base64 into the terminal's copy buffer and a similar paste on the other end 😄

formal kraken
golden bane
#

If you don't need the permission/ownership management of samba, I've found NFS to be much easier to handle than SMB

formal kraken
worthy cape
#

Technically if you enable the SFU features and pray, never had much luck with it.

#

Not sure if it's still around in 11.

golden bane
worthy cape
#

I don't remember if I ever managed to mount NFS in my WSL2, I think something crucial was missing.

formal kraken
#

nice. Only ever had bad experiences with samba, granted last time I tried setting it up was when windows vista just came out

worthy cape
#

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.

buoyant dagger
#

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

surreal oar
pallid doveBOT
#

Please don't post discord invites

neon plume
#

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.

rapid pagoda
#

(In fact, it is supported if you write out the converted JSON to temporary files. But that seems kind of clumsy.)

neon plume
#

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

rapid pagoda
#

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

neon plume
#

ah, damn, ok, didn't realize that... now to pray I don't have to rewrite ooz in Go...

#

just have to write a generic interface and switch based on WASM or x86

#

god this is growing in complexity very fast

rapid pagoda
#

Oh neat, I missed that. I need to take a look at what SnosMe did there -- might be usable in gooz as well

neon plume
#

I doubt it, it seems to just compile C++ to WASM with JS bindings

formal kraken
#

why would you need that in a browser?

#

Surely it's better to pre-generate this stuff at build time

neon plume
rapid pagoda
neon plume
formal kraken
rapid pagoda
#

It'd still fix an outstanding issue where it fails to build on ARM 🙂

neon plume
formal kraken
neon plume
formal kraken
#

so you trade json for poe files + ooz

neon plume
formal kraken
#

yeah but instead of going through all that, you can just serve the json files

neon plume
#

hmmmm

formal kraken
#

which can also be re-packaged to be actually efficient for what you need instead of just being plain data

neon plume
#

yeah, I'd probably repackage it into some compressed binary format

#

or maybe just a gzipped json

formal kraken
#

cdn/web-server is gonna take care of that

neon plume
#

the biggest gain I get from not pre-generating is that I wouldn't need to ship an update every time PoE updates

formal kraken
#

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

neon plume
#

sure, but that's still some level of maintenance

#

which, if I can, I would like to avoid

formal kraken
#

you realize that a pob equivalent will take constant maintenance templarLul

neon plume
#

the thing I hate most about the format the CDN ships is... pretty huge

neon plume
#

although, not that the PoB data is particularly small

rapid pagoda
#

… 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

neon plume
#

obviously on the web version I would pull stuff in on-demand

carmine merlin
#

timeless jewels are over half that 42mb if you are including those in the size

#

25.2mb in zipped form atm

neon plume
#

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

neon plume
#

soo, interesting how https://patchcdn.pathofexile.com/ seems to serve an SSL cert meant for CN=*.ssl.hwcdn.net ?

worthy cape
#

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.

neon plume
#

ah yeah, I remember that

neon plume
rapid pagoda
neon plume
#

ahh, ok, that's just for display...

rapid pagoda
#

IIRC, most of the time loading the index is spent in decompression code

neon plume
#

not in my (albeit limited) testing

rapid pagoda
#

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

neon plume
neon plume
#

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)

neon plume
orchid light
#

Are we allowed to programatically call https://www.pathofexile.com/api/trade ?

frank drift
orchid light
#

Meaning if we use it for personal use it's fine but not for public use?

frank drift
#

personal or public, just don't abuse it and be prepared for implementation details to change

orchid light
#

Sounds good

violet path
#

read up on the rate limits

gilded tree
#

And also adjust your user agent

velvet fog
#

Is Lake of Kalandra the name of the league? The first time I met an league that wasn't a single word.

frank drift
#

backend name could still end up being "Kalandra", guess we'll see

compact isle
#

currently most things are called "Lake"

#

but the league name itself will be "Lake of Kalandra" yeah

pliant cipher
#

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

worthy cape
#

Sounds fun - fork all the things 😄

pliant cipher
#

I could

#

I probably should.

#

There’s already a fork but it’s like 4 years old and 1k commits behind

worthy cape
#

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?

pliant cipher
#

This library literally uses its own implementation of a http request

worthy cape
pliant cipher
#

If I have to dig into HTTP message specs on the byte level to add this I’m out

violet path
#

i believe there are some tools that used to use websockets for the trade api

worthy cape
#

The very finest clownware.

violet path
#

i don't know if you've looked any of those up

pliant cipher
#

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”

simple ravine
#

isnt websockets integrated into .NET in System.Net nowdays?

#

sorry, new job, lots of meetings

pliant cipher
#

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

worthy cape
#

http vs. https or something silly?

#

Ah.

pliant cipher
#

And Poe wants 1.2

simple ravine
#

That, you can set in your HttpRequest options

#

Are you using .NET 6?

pliant cipher
#

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

simple ravine
#

Let me check a few things

#

on a work laptop where I don't have any dev tools

pliant cipher
#

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.

simple ravine
#

You can use ConnectAsync(Uri uri, HttpMessageInvoker? invoker, CancellationToken cancellationToken) and use the HttpMessageInvoker much likely

pliant cipher
#

Okay

#

I’ll take a look

simple ravine
#

Also, I'm assuming you use wss:// and not ws://

simple ravine
#

@pliant cipher also take a look at System.Net.ServicePointManager.SecurityProtocol, if you set that u can probably simplify your life

pliant cipher
#

Will do

#

The ws// isn’t valid anyways on the api, made that mistake

compact isle
naive haven
#

no more fishing content expansions vanquished

dire apex
#

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?

tawny agate
#

Don't know if it's enough for you or if you still want an offline one

dire apex
tawny agate
dire apex
#

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.

frank drift
#

well documented

#

.pepeLaugh

dire apex
#

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.

frank drift
#

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

dire apex
#

That is good to know. I've asked others and it seems that it's actually a context free language.

rigid oxide
#

it's what he uses for his .filter files which are a superset of normal filters as far as i understand it...

rapid pagoda
frank drift
#

in the game files? not actually sure, I pull everything from poedb

dire apex
frank drift
#

poedb down?

neon plume
#

indeed

worthy cape
#

Loads currently for me.

velvet fog
#

fixed, should be back

verbal flower
#

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?

frank drift
verbal flower
frank drift
worthy cape
#

Are you using the trade river API, the private stash API, or copying from the game client via clipboard?

velvet fog
#

Seems impossible

verbal flower
#

Thx!

worthy cape
#

Turns out that the model renders way better when you actually sample the texture atlas correctly when generating the material.

velvet fog
#

Art/2DArt/UIImages/InGame/ItemsHeaderUniqueLeft.png
Art/2DArt/UIImages/InGame/4K/ItemsHeaderUniqueLeft.png
are different image

violet path
#

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

frank drift
#

yeah pretty weird

formal kraken
#

What are the valid characters for an account name? Is there something on the website what the allowed character set is?

velvet fog
#

Maybe any utf-8 in 23 characters, beside specials like ' " *

formal kraken
#

I accidentally created an account assuming German umlauts won't work, but they did...

grave wren
#

fun fact the only working german umlaut in char names is ü

formal kraken
#

Ä worked

worthy cape
#

Eisbär riot!

formal kraken
#

I am now the owner of the account äasd

grave wren
#

just tried still only ü working for me

worthy cape
#

accounts -ne characters

grave wren
#

but thats char names as stated :p

formal kraken
#

Oh char names, my bad

worthy cape
#

I love the user friendliness in PoB's importer where users get the pleasure of URL-encoding their account names.

#

(text is hard, yo)

formal kraken
grave wren
#

i am personally offended that mjölner is called mjölner and i cant use an ö in my char names

formal kraken
#

good one

velvet fog
#

There are some limits, chinese and english characters cant mixed

formal kraken
#

I need something to test

#

or better something I can copy paste to create one

formal kraken
#

thanks

#

Guess I'll also have to install a new font templarLul

worthy cape
#

All the tofu.

grave wren
#

i like boxes

carmine merlin
#

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

verbal flower
#

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

civic crane
#

maybe, no, no. You can check trade tools on github, they have prebuilt files to match "stat string - trade id"

verbal flower
#

Thx!

abstract goblet
#

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.

oak estuary
#

Parse the ggpk for that information via something like RePoE

abstract goblet
#

Thanks

pliant cipher
#

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

frank drift
#

.NET documentation LULW

#

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

pliant cipher
#

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.

pliant cipher
#

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

pliant cipher
velvet fog
#

Use win+shift+s to crop screen, and ctrl+v to here

pliant cipher
#

I don’t have discord on this computer

velvet fog
#

Web works

pliant cipher
#

Oh, true lol

tawny agate
#

@fickle yew I'm curious, there are a technical reason for some item prices not being tracked? Like Leadership's Price

fickle yew
tawny agate
frank drift
fickle yew
fickle yew
frank drift
#

Leadership's Price is almost impossible to display an accurate price for anyway, like Ventor's but worse

tawny agate
grave wren
#

couldnt you just make a listing per max res sum?

violet path
#

going down that road eventually gets pretty unwieldy I'd imagine

storm granite
#

anyone in here good with python that could help me out with some problems

rare jasper
#

just ask the question 🙂

#

use a pastebin if it has a lot of text/code

storm granite
#

well its just a couple of practice python problesm but i guess i could

rare jasper
#

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

grave wren
#

also just ask away dont ask to ask

storm granite
#

well it is pretty off topic for the discord :,)

simple ravine
simple ravine
pliant cipher
#

It’s different from HttpClient

#

I’ve opened a issue on GitHub for the .NET runtime, maybe it’s the behavior they want

simple ravine
#

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?

pliant cipher
#

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.

simple ravine
#

Well, that's not the ideology of .NET

pliant cipher
#

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

worthy cape
#

Fun fun.

#

Isn't the source of a lot of the framework open now, or is it still a bit closed?

pliant cipher
#

It’s open source

#

I found the exact spot it’s happening

worthy cape
#

I guess the design decisions aren't noted there.

pliant cipher
#

It’s just an older API I think

simple ravine
#

There are plenty of design notes, but it's a bit difficult to find

worthy cape
#

It's an older code sir but it checks out

simple ravine
#

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

ivory imp
#

Hey guys why is poeninja no longer indexing archnemisis?

#

it seems kinda early and we cant use the builds for inspiration anymore

hazy fiber
#

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

acoustic gust
#

@compact isle Suppression is spelt incorrectly in tree data but is spelt correctly ingame / actual mods.

compact isle
#

many art assets are misspelled and it's not really worth fixing them

grizzled seal
#

I'm not sure who currently maintains @knotty bluff, but it's not handling /r/PathOfExileBuilds correctly, see: <#ggg-tracker message>

grizzled seal
oak estuary
long sky
#

If you really must scrape the wiki, you’re better off just querying the data tables via the api

#

Ah, fair enough!

violet path
#

now that ggg is hosting the wiki I'm sure they can handle a little extreme scraping (:

frank drift
#

or cloudflare can anyway

odd sail
#

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

violet path
#

incubators also aren't show in-game if you copy/paste an item

oak estuary
#

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?

compact isle
#

^ something on the radar

verbal flower
#

Is there somewhere a ready-made database with tiers of item mods or with unique items?

grizzled seal
worthy cape
#

@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
formal kraken
#

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

civic crane
#

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 templarLul

compact isle
#

they're being reviewed

worthy cape
#

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

compact isle
worthy cape
#
release tags/3.18.1d 199539
release tags/3.18.1e 200221
oak estuary
#

Good to see it's actual changes. One of my old companies had a commit every 100000 commits that was just "🎉"

compact isle
#

hah we do that for issue #'s

worthy cape
#

Seems legit.

#

Working as Designe[r|d].

formal kraken
#

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

compact isle
#

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)

formal kraken
#

@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

compact isle
#

hah nice

formal kraken
#

so the auth header was actually missing

#

Now I can enjoy the rest of the QA templarLul

frank drift
worthy cape
#

Hah, website 502:s 😄

#

Server onslaught buffed.

oak estuary
#

Everyone wants their patch notes

rapid pagoda
civic crane
frank drift
#

start making your dummy account botnets now

compact isle
#

ah right I was waiting for someone to find that

worthy cape
# civic crane huh

You have the convoluted browser sign-in for users that run into CF challenges already, right?

compact isle
#

APIs will still allow guest, it's just the front-end that will require login

worthy cape
compact isle
#

for reasons that will be revealed brows

oak estuary
#

I was just about to ask who was abusing the frontend but not the APIs, lol

compact isle
#

we'll need to figure out an OAuth plan for the trade site eventually

civic crane
#

trade is becoming official api pogchimp(not early as 3.21)

wraith jasper
#

Surely

#

What's next though? Official game data API?

odd sail
#

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)

gilded tree
#

😬

compact isle
odd sail
#

Where be trade manifesto?

worthy cape
odd sail
#

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 …

velvet fog
worthy cape
#

No-one tell users about Jason before Path of Building is done, ok? 😄

tawny agate
#

There is a diff viewer online updated somewhere already?

hazy fiber
#

bit hacky but new tree works, need to find a way to properly support it though

hasty spruce
#

i couldnt get mine to load up just got bunch of errors

hazy fiber
#

yup

#

I have a PR up for it atm if your desperate, but it needs to be supported properly before its actually added

hasty spruce
#

is there extra steps besides gameverisonslua and 3.19 tree folder

hazy fiber
#

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

compact wigeon
#

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.

civic crane
#

@compact isle any plans on allowing divine orbs prices to be rounded to 0.1 step

formal kraken
#

Anyone know if this is a character class in a non ggg client? 贵族

#

Chinese according to google

#

So I was just going through a dump of all paste on pobbin, turns out there are very few pastes with foreign character classes

worthy cape
formal kraken
#

🤔

#

I personally like the script tag as ascendancy name

worthy cape
#

Nice touch with the PEF_Sweden localized hacking attempt.

#

(possibly PEF_Denmark but I'm not sure our southern brothers are sophisticated enough to get online)

formal kraken
#

I am so bad with Excel/Google sheets 😦

#

hehe someone wanted to include a cute bear

brisk frigate
#

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

fickle geode
#

I have my chaos recipe tool stuck like this the numbers doesnt change

late schooner
#

full set threshold=5
all collected, looks like

fickle geode
#

what does full set thresholdd mean?

#

i thought it means i have to have 5 full sets sorry im new palyer

late schooner
#

numbers above are 5 full sets

fickle geode
#

im pretty sure i do not have 5 full sets though the problem is

abstract knoll
#

does anyone know how to get a program to read chat

worthy cape
#

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)

slim pilot
#

@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

carmine merlin
slim pilot
carmine merlin
slim pilot
#

yeah it doesnt work.

oak estuary
#

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

slim pilot
#

probably but strange.

#

yeah this is my life leech on hit rate.

#

with keystone

#

without keystone

slim pilot
carmine merlin
#

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
#

and thnx for clarification.

pallid doveBOT
#

Please don't post discord invites

whole ruin
#

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

worthy cape
whole ruin
#

ty

#

i love you a lot right now!

whole ruin
#

@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

compact isle
#

you can already do the map part

hazy fiber
#

pretty sure that exists for any bulk item

#

also probs dont ping him this close to league start

compact isle
#

sextants are harder because the mods on them don't have a name or identifier I can steal creatively re-use

whole ruin
#

you cant do that for the map

whole ruin
#

i was wrong

hazy fiber
whole ruin
#

oooh

worthy cape
#

The sneaky option is "Group by Seller", IIRC.

whole ruin
#

i never noticed "group by seller"

#

TIl

#

im a moron

compact isle
#

it's new... last league?

#

time has lost all meaning tbh

whole ruin
#

ah ok

worthy cape
#

This world is an illusion, exile.

whole ruin
#

thats why then, i moved to tft for bulk buying

velvet fog
#

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

worthy cape
#

I guess you mean items from Reflective Mist, not the itemized tablets.

velvet fog
#

Ya, my fault

compact isle
#

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

frank drift
#

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

worthy cape
#

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.

frank drift
#

I would definitely bet on individual mods being affected

rapid pagoda
frank drift
#

right it's just technical curiosity

#

would only matter in standard with recombs

rapid pagoda
#

don't forget mirror+recomb shenanigans are gone too

worthy cape
#

Recombs are stealth nerfed btw, don't support mirrored items anymore.

frank drift
#

ah

rapid pagoda
#

crafting league is over, welcome to the anti-crafting league

frank drift
#

hoping for the filter/tool newspost soon

compact isle
odd sail
#

@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

frank drift
violet path
frank drift
compact isle
odd sail
#

cool, just checking

compact isle
#

:(

odd sail
#

dealing with the new line sprites is going to take a lot of work...

carmine merlin
#

Looks pretty good to me 🙂

odd sail
#

stop snagging WIP pics... not done yet

compact isle
#

looks great pepeP

compact isle
acoustic gust
fervent carbon
#

is there any way to get version control (like git) for pob builds? usecase: multiple people working on a build together

hazy fiber
#

you can probs just use version control (like git) on the xml

pallid doveBOT
#

Please don't post discord invites

odd sail
#

For a 5x5 tablet it would max out at 170% boost …

rigid oxide
#

@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

civic crane
#

I think there is enough combinatorial explosion from skill gems templarLul

violet path
#

have fun setting up the trade links

frigid nova
#

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.

latent topaz
velvet fog
whole ruin
#

cant you snake the rooms?

#

oh i guess you need non used tiles

hazy fiber
#

non-used and non-adjacent

#

so somthing like
XXXXX
OOOOX
XXXOX
XOXOX
XOXXX

minor palm
fickle yew
frank drift
#

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

fickle yew
#

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.

wraith jasper
#

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

fickle yew
#

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.

lapis blade
#

Dunno if you could add lines in the graph to show percentiles.

violet path
#

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

fickle yew
#

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.

formal kraken
#

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)

oak estuary
#

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

wraith jasper
#

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

long sky
#

A box plot might even help 🤔

fickle yew
#

Yeah most likely. I'll experiment with a few prototypes.

formal kraken
verbal flower
long sky
#

The way ggplot2 does confidence intervals should also be relatively easy for folks to grok

whole ruin
#

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?

formal kraken
long sky
formal kraken
#

Yeah that looks good

gilded tree
frank drift
patent notch
worthy cape
#

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.

velvet fog
#

Trade stats api?

worthy cape
#

API-wise, not sure how much the wiki is exposing.

patent notch
#

POB has all the uniques i think, Did they do it manually as well?

worthy cape
# velvet fog Trade stats api?

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.

worthy cape
#

It's not exhaustive but that's also a good source of data.

hazy fiber
patent notch
#

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

oak estuary
#

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

patent notch
#

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.

worthy cape
#

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

hazy fiber
#

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

patent notch
#

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)

oak estuary
#

@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

patent notch
velvet fog
#

I use the public trade api to autocorrect uniques and rarely encounter errors

patent notch
#

I see ty

rapid pagoda
hazy fiber
rapid pagoda
#

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

hazy fiber
#

and yeah that ^

craggy iron
#

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!

craggy iron
gaunt gorge
#

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

hazy fiber
#

text on helm is red means its not supported yet, open a feature request on github

gaunt gorge
#

alright will do thanks

patent notch
#

when does the pob update for new league come out usually?

tawny agate
#

When it's ready

#

The 2.20 PR is already open, shouln't be long I guess

patent notch
#

tyty

hazy fiber
#

I may or maynot have increased his workload

patent notch
#

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.

void blade
#

How... would one go about and use Energy Blade in PoB or it not supported yet?

oak estuary
#

There's a configuration box that enables and replaces your weapon

void blade
#

Ah, I'm blind thanks!

carmine merlin
#

PoB update out with new tree and uniques btw

viscid cove
#

does anyone have exp converting the poeninja api to dataframes for pricing? like jewels or uniques

violet path
#

make sure you filter out foil/6link versions, and have a way to get prices for specific variants of items with the same name

brisk frigate
#

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 vanity

velvet fog
compact isle
#

looks very familiar

patent notch
#

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

brisk frigate
#

nope this is exactly what i needed, thanks! a lot more options too than i was expecting

hazy fiber
#

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

patent notch
#

Maybe i should change name from base_devotion to base_devotion/unchanged i guess

brisk frigate
#

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

patent notch
#

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)

brisk frigate
#

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

brisk frigate
hazy fiber
#

PoB factors that in if you search for total_devotion

hazy fiber
brisk frigate
#

it still seems to bring up results that changes notables

hazy fiber
brisk frigate
#

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

hazy fiber
#

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

brisk frigate
#

yep, thanks

#

was looking to setup a live search, but with 2600+ results that might not work

velvet fog
compact isle
#

ah yep we'll sort

rapid pagoda
#

and if you care, there's missing/broken images on a bunch of the old league announcement pages

compact isle
#

do you have an example?

rapid pagoda
#

mostly the really old ones, not terribly concerning

formal kraken
#

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

wraith jasper
civic crane
#

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

wraith jasper
civic crane
#

idk, this is what I'm using rn (maybe some unused field because of old leagues being removed), plus stat translation files

wraith jasper
civic crane
wraith jasper
#

A tool that's in JS ❤️
Looks like it could be doable
Where could I find an example config.json?

civic crane
#

as I said no docs, interface ExportConfig in that file

wraith jasper
#

Right understood

civic crane
#

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
templarLul

worthy cape
velvet fog
oak estuary
#

So the in game whisper button is why the site has to be logged in now, cool

frank drift
#

I was betting on some level of console integration

#

I guess that's the most we're getting

velvet fog
#

So we may send any message to ingame with poesession?

frank drift
compact isle
#

the message is generated by the website backend

velvet fog
#

Can't enter any custom passphrase content?

compact isle
#

nope

worthy cape
worthy cape
#

Never mind, it was actually covered in the thread if I had read it PES_Clown

compact isle
#

currently looks like this (when you're eligible for direct whispering)

worthy cape
#

Somehow I managed to miss the big honking screenshot in the post last night.

compact isle
#

it was retroactively added

worthy cape
#

Ah!

civic crane
#

maybe it's finally time to replace _ in client log with item name templarLul

compact isle
#

I made sure they did that for 3.19

light jolt
#

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

hazy fiber
#

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

hazy fiber
worthy cape
#

@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

compact isle
#

this is expected, we've re-indexed all item data this time around

eager rivet
# light jolt I know PoePlanner does it for single nodes that you hover over, just wonder just...

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.

distant bobcat
#

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?

carmine merlin
#

Poe dat viewer has the option to export in JSON

frank drift
#

RePoE is nice if what you want has already been exported

wraith jasper
#

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

distant bobcat
#

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?

wraith jasper
#

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

long sky
frank drift
#

I never remember the wiki api

long sky
#

It is a thing, maybe not the best thing, but a thing nevertheless

crude perch
#

is there a way to search messages older than 3ys here?

rapid pagoda
worthy cape
#

The list:y types are going to be a bit of a pain.

rapid pagoda
worthy cape
#

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"

wraith jasper
#

Yeah I feel like storing the game data as a strict columnular format would be difficult to do initially and then maintain over time

wraith jasper
#

Oh! I see, how has that been maintaining the changing structures?

rapid pagoda
#

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>
wraith jasper
#

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

worthy cape
#

@rapid pagoda Not sure if you ever set up your own source of DAT64, but might be fun for you too.

wraith jasper
worthy cape
#

payload.ndjson contains 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.
ref has files like ref/4e/4be81dcb49077826577161720a054a786beb6cd4cb57475f52746abf6057c0ba.bin.
You can reconstitute a build's directory tree by hardlinks or symlinks accordingly or relate it based on payload.json entries alone in dedicated tooling.

#

It's deduplicated on file content hashes to save significant transfer/disk space.

wraith jasper
#

yeah that zip size is crazy small for how much data is in there

worthy cape
#

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.

wraith jasper
#

The result is still the packed data through right?.... if we could do that with decoded values that would be sick!

worthy cape
#

All files are indeed as they are stored in the bundles, no interpretation.

wraith jasper
#

Well it's at least half the problem!

velvet fog
#

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

compact isle
#

regex but if it isn't a direct whisper then it has to fall-back on stash name matching to know where to highlight

patent notch
#

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

velvet fog
#

torrent waiting room

odd aspen
#

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.

patent notch
odd aspen
#

Yes! Thank you

patent notch
#

Cheers

fallow zinc
#

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?

frank drift
#

rasmus tries to cull characters with removed equipment and such

#

did you have a weird build?

fallow zinc
#

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

frank drift
#

yes, each person on the ladder is generally crawled ~24 hours, except for first few days of the league

fallow zinc
#

I've had it happen early on too

frank drift
#

where you were on the ladder but not poeninja?

fallow zinc
#

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

frank drift
#

if it happens again where you're on the ladder but not on poeninja after poeninja has time to update, you can ping Rasmuskl

fallow zinc
#

is that helpful? I don't want to be annoying, it's not exactly important

#

total vanity/curiosity thing

frank drift
#

he doesn't mind afaik

fallow zinc
#

fair, I'll check if I see it happening

#

thx

carmine merlin
#

Torrent up

rigid oxide
#

is gamestats.dat usually in the torrent ggpk?

hazy fiber
#

most dats are not in the torrent

velvet fog
#

no dats in the torrent

worthy cape
fickle yew
#

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

compact isle
#

what is that relevant for?

velvet fog
#

he want to know the endpoint like https://www.pathofexile.com/ladders/league/Standard for ladder fetching

compact isle
#

a version is a different thing to a league 🤔

velvet fog
fickle yew
# compact isle what is that relevant for?

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 🙂

worthy cape
primal schooner
#

does ugh blanking on name... know poedb.tw is down ?

#

oh is the ggpk available and being parsed / updated?

worthy cape
#

Patch is indeed up, I'm sure chuan is doing unholy things to it 😄

primal schooner
#

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

rapid pagoda
#

props to our new champion MicrotransactionAppliedInventoryItemArtVariations, tied with MicrotransactionPeriodicCharacterEffectVariations for first place in the "longest data file name" league

pine ridge
#

Filterblade pls don't display bearer token from error on page.

worthy cape
#

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

rapid pagoda
#

I'm still trying to update stuff I never got around to in 3.18. templarSad

worthy cape
#

^_^

#

I've been meaning to make a DAT width diff since patch hit, ENOBRAIN.

primal schooner
#

you guys leak the new harvest crafts?

hearty mural
#

there is a list on reddit, not sure if legit

#

divine and reforge keep * gone

odd sail
#
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`?
primal schooner
#

cause Engrish is tough? 🤷‍♂️

late schooner
#

got legendary beasts weights data?

violet path
#

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

waxen musk
#

hey how long does it usually take for dat schema to be updated?

rapid pagoda
#

depends what you're expecting to be updated. there's lesser used data files which are multiple leagues out of date

graceful barn
#

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.

hazy fiber
#

they are already updated on the main dev branch so that might be why

graceful barn
#

I did a merge with origin/master and didn't see any update, but perhaps I mixed up my commands

#

eh, origin/dev maybe?

hazy fiber
#

also act_dex.lua is a generated file made by the exporter, so changes will get overriden

graceful barn
#

my gits a little rusty

hazy fiber
#

you need to edit the .txt file in exporter

oak estuary
#

Yes, origin/dev

graceful barn
carmine merlin
#

PoB update with support for all the new skills and changes is out

waxen musk
golden bane
# waxen musk uh the main stuff, items gems etc. anything we can do to help it? where does it ...

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

waxen musk
#

im talking specifically about the schema, not the actual contents

rapid pagoda
#

that's squarely a manual process involving a lot of squinting at hex dumps and cursing

waxen musk
#

ah, figured as much, sounds fun

rapid pagoda
#

product of today's squinting and cursing 😄

rapid pagoda
#

also, built a shim version of gooz which calls into a real Oodle implementation 🐙

worthy cape
#

Code crimes \o/

rapid pagoda
#

(still need to test the windows version, I literally just wrote this so I could stop running under emulation)

rapid pagoda
#

(aaand the windows build doesn't work at all, need to do some research)

civic crane
waxen musk
#

hey what is MOD_GENERATION_TYPE 30?

#

thanks for the updates ❤️

hazy fiber
#

the "new" archnem mods from the looks of it

waxen musk
#

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 😦

waxen musk
#

characters.dat is still in the works?

wise copper
waxen musk
#

sounds good thanks, i need it for pypoe too

long sky
#

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

rapid pagoda
#

some of that commit is historical, I'm supporting data files back to 0.11 🙂

worn heath
#

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.

worthy cape
#

Ah, you mean "DAT tables" by "content from GGPK", not actual content from GGPK 😄

worn heath
# worthy cape 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.

worthy cape
#

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

waxen musk
#

your schema has 60 bytes when it should be 61

worn heath
#

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?

worthy cape
#

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.

wise copper
# waxen musk your schema has 60 bytes when it should be 61

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.

waxen musk
#

i fixed doodads, didnt check where the two new keys point but they did reorder the fields substantially

odd sail
#

@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

compact isle
#

oh yeah sure I can do another export

odd sail
#

ty

compact isle
#

bleh looks like the spritesheet's hashes are changing

odd sail
#

ty sir

past merlin
#

thank you guys! https://atlas.omri.io, my atlas tree overview tool, was just updated for 3.19 following this as well 🙂

nova hamlet
#

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

velvet fog
#

It's a bug and will be fixed soon. You should already know that CorrectGroup has been changed to list.

nova hamlet
patent notch
#

inf effective health pool? is this bug or some weird combination of stuff leads to this?

carmine merlin
patent notch
#

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.

nova hamlet
nova hamlet
#

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

worn heath
#

is it okey what GGPK Viewer already 5 min showing nothing just write "Sorting GGPK directory" ? or this tool doesnt work ?

tepid stirrup
#

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

lusty musk
#

does anyone know a stash tab river change id that is right before kalandra start?

#

forgot to save one

compact isle
#

1615578448-1619091892-1565253411-1737443924-1681338788 is what I can come up with

lusty musk
compact isle
#

it's still public

#

but if you're using OAuth you need that scope

lusty musk
#

if you were to have permission for that (which I don't have (obviously) nor need)

worthy cape
# tepid stirrup poedb.tw model viewer specifically. Texture's a little shifted

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:

tepid stirrup
worthy cape
#

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.

swift beacon
#

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.

vestal pond
rapid pagoda
worthy cape
#

Ah! Suspected something like that.

visual briar
#

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

worthy cape
#

Idly musing, I wonder if one could use ETW to find what processes activates when one hits the shortcuts.

frank drift
#

I believe it in the APT FAQ

#

might be discord

worthy cape
#

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.

visual briar
#

could you guide me on how i can track it maybe?

#

it is really frustrating to play without any price checking tool

visual briar
worthy cape
#

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.

visual briar
#

even with chaged keybinds log in APT says: warn [clipboard]: No item text found. {"text":""}
poe overlay shows

civic crane
visual briar
#

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

worn heath
# vestal pond I think you mean VisualGGPK2 It use the DatDefinitions.json by default, and it'...

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.

worldly tapir
#

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 ?

formal kraken
#

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

worldly tapir
#

that would be feasible, but only for number valeu and disabling/enabling code

formal kraken
#

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

worldly tapir
#

good point yes
instanciated server side calculation allow for that

#

thanks

simple ravine
#

Client code, while server changes are merely configuration

#

From what I've gathered, they don't do blue/green deployments

worldly tapir
#

the configuration must be extensive to allow for malleability in rapid fixing

simple ravine
#

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

formal kraken
#

it's a good practice anyways, less magic values and usually better organized code

simple ravine
#

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

formal kraken
#

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

worthy cape
#

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)

late schooner
#

@velvet fog
sir, i'm wondering: is bestiary weight completely not available anymore, or is it only temporary?

velvet fog
#

removed in recent version

still oriole
#

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

violet path
late schooner
#

very sad, thanks (got the old weights saved, no worries)

valid jasper
#

I have no idea where to report bugs of PoB, but timeless jewels do not affect High Voltage.

rapid pagoda
# worldly tapir how the heck does poe do restartless patch

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

frank drift
#

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

worldly tapir
carmine merlin
grand glen
#

Anyone know when awakened poe trades getting updated for the new items and bases?

inland kestrel
#

Does the poe trade site allow searching via a GET query string? (e.g., custom search a term)

rapid pagoda
inland kestrel
#

oh, that's right - thank you

inland kestrel
#

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

haughty steppe
#

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?

slim pilot
#

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.

worthy cape
#

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

slim pilot
#

Seems like shit is complicated

slim pilot
#

nvm I don't even have Content.ggpk for extracting rn

worthy cape
#

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.