#tooldev-general
1 messages Β· Page 18 of 1
this is not a support channel for the game, make a thread on the forums https://www.pathofexile.com/forum/view-forum/2214
Without the alts/scourings present, it would be Really nice to get the API character-window/get-stash-items.
Script kiddies would go galore on this. I would.
@modest path @lone ingot interval stuff has been added
@civic crane Is graphql being used anywhere directly? Like does poe-dat-viewer or anything else use the graphql directly to generate queries or anything?
Haven't really used it before myself; it seems fine, just "big" for what's going on in schema-land
why can't I improve the set? I click and nothing happens.
this is not a support channel for the game, make a thread on the forums https://www.pathofexile.com/forum/view-forum/2214
anyone made a item viewer for characters? like a player card type vibe, that shares stats and equipped items kind of thing
considering doing something like it and looking for refs
since there's no api I'm probably going the good ol' mouse positioning, copy paste, image rendering route
(for poe2)
I would assume GGG will make it available sometime in the future on their official website (just like what POE 1 has).
There is no guarantee that apis in poe1 will exist in poe2, once apis are made available there. I'd caution against doing work for a poe2 tool based on assumptions made from poe1.
almost there, making a condition builder was more difficult than I thought
who knew that you could do this 
Show
Height > 1 2 3
Very useful.
Super cool
I'm still trying to build a filtering template based around Python and Jinja2. The json dumps from RePoE fork are proving useful.
{% set crafting_base_types | condense %}
{% for base_type in base_types %}
{% if "wand" in base_type.tags %}
{% if "no_lightning_spell_mods" not in base_type.tags %}{{ base_type.name|quote }}{% endif %}
{% elif "body_armour" in base_type.tags %}
{% if base_type.tags|contains_any("dex_int_armour", "int_armour") %}{{ base_type.name|quote }}{% endif %}
{% endif %}
{% endfor %}
{% endset %}```
Gives me a nice and simple line of base type names I can feed to the `BaseType` filter condition:
```jinja
BaseType == {{ crafting_base_types }}
Is there maybe a named list of item filter sounds? Just want to map them to something in my template, like "ting" for the ting sound lol
the internal "name" is just the number, the easiest way to preview it is on filterblade; I'm not aware of any "community name" list
Oh you can preview the built-in sound alerts from FilterBlade? That hadn't occurred to me, kind of just assumed that could only be done for custom sounds but it makes sense.
you can yeah, I'll work out how to do it eventually
havent even looked for it in the files yet π
Oh wow, I assume the Shaper sounds you can preview in FilterBlade are only in PoE1 client? lol
they are maybe in the PoE2 client
This must be tested immediately... let's see if I can do that
Holy, they are in the PoE2 client. Nice!
Well, at least the one I tested: PlayAlertSound ShDivine 300
yes all poe1 sounds are in poe2
And maybe more? I wonder
Well, nothing numbered works beyond 16. Maybe there are named sound alerts specific to PoE2, but I wouldn't know them.
Yeah, I think I read somewhere here yesterday that the filter system in PoE2 is based on an older PoE1 version. Maybe a consequence of whenever PoE2 branched off of PoE1's codebase.
@velvet fog could you add a link to https://poe2db.tw/us/Relics on https://poe2db.tw/us/Items ? ty
added
Okay which one of you dinguses opened a PR to add treesitter support for handling poe filters 
I wonder if GGG themselves did that at some point O_o
is there a ggg dev that uses neovim or something
Maintainer: ObserverOfTime chronobserver@disroot.org
Vim-fork focused on extensibility and usability (Mirror of https://github.com/neovim/neovim)
I noticed it in my neovim as well lol, thanks whoever did it
I made ggpk.exposed break @zenith zodiac (I love it btw, the image stuff is so nice)
Error 1101 Ray ID: 8f97fcd33f205d25 β’ 2024-12-29 07:13:27 UTC
Worker threw exception
https://snosme.github.io/poe-dat-viewer/ just loads an image of the data? Is that to prevent scraping?
thank you. l found some errors in the logs and l believe they're fixed now, lll check again tomorrow
oii got a general question for poe1 tooldev
is it okay to use my own POESESSID to acess my characters stash and items and passive tree?
and use the json from the "character-window" api calls for my own statistical uses for my character?
searched hard for a policy on this, the reason im going this route is cuz GGG disabled the ability for people to make new OAUTH applications..
which means that i cant make requests with an OAUTH client_id because i have none..
or well, rather the reason i want to go this route, i just tested it and it seems great, but i dont want to violate any Terms of Usage too
technicially speaking is just taking the rawdata i have of my character anyways, and representing it in a different way..
if GGG likes me not to do this tho please anyone let me know, i can also just not (instead of getting banned or anyting)
but oh it would be nice to work on, ama webdeveloper anyways and i lovee json
or well alternatively i'd love to be allowed to apply for making an OAUTH registered tool, if thats still a possibility..
its generally acceptable to use POESESSID for tools, though it is against TOS as all reverse engineering is against TOS, but plenty of tools did that in the past and still do. keep in mind that all the apis that use it are internal, therefore they can have breaking changes at any point without prior announcement.
If youβre looking to download character and stash contents, Acquisition can do that, and is an approved OAuth application.
hmm.. i could try that and pick what i need from there..
is it also neat json that comes out? xD
Depending on what you want and your skillset rolling your own might be easier.
Might have found why the "Remember Me" button isn't working on login. the payload is including it twice in the form data.
&remember_me=0&remember_me=1&hash=
if you don't check the box it looks like this
&remember_me=0&hash=
unfortunately @compact isle isn't back till the 8th
Hi, is there up-to-date documentation for the content.ggpk file format available anywhere?
Don't know if this helps - it's not the content.ggpk container format but the bundles within: https://github.com/poe-tool-dev/ggpk.discussion/wiki/Bundle-scheme
There's also https://github.com/adamthedash/poe_data_tools this, which was made recently, but again, working on the already extracted bundles like the steam client uses them
I'm trying to wrap my head around all the tools available for exporting data from POE2, but I'm not 100% sure on how to do it. Different tools for POE1 vs POE2, etc. I just want to export items + modifiers, gems, and passive tree nodes and have them in a usable format, preferably JSON. Can anyone lead me in the right direction?
This is what my browser looks like right now lol
https://snosme.github.io/poe-dat-viewer/ is a good start @timid notch
I see you can get data with poe-dat-viewer, but you have to manually export each file as a JSON through the UI?
And it looks like some of the columns have unknown types at the moment, I'm guessing that's just because its still trying to be figured out since the game is still new?
Yes, correct, you can see the schema's the viewer uses at https://github.com/poe-tool-dev/dat-schema
Sorry, I'm unaware of a tool that does an "all in one" unpack and returns json files
Ah alright, I'll figure something out then. Thank you for the suggestions all the same
@zenith zodiac maintains a subset of the exported json for wiki usage: https://repoe-fork.github.io/ (sourced from https://github.com/repoe-fork/RePoE/tree/master/RePoE/data)
That's just POE1 data though, right?
Looking in gems.json, Spark has the POE1 description
Oh I see there's a poe2 directory, but it only has items, mods, buffs, and unique data
https://repoe-fork.github.io/poe2/ might be the spot, but skills aren't exported yet. You'd have to check with Ivy, yeah
I'll shoot them a message, cheers
Any of you brilliant fellows figured out why the game incessantly crashes, without error or notice for 20-50% of the people trying to play it?
idk where you got those numbers from, but this isnt a support channel
There is no "support" channel (conviently I might add).
I got the number from 300+ pages on the forums complaining about it.
But there arent any solutions in there unfortunately.
theres no support channel, because this discord isnt run by ggg, if you want support use email or forum
Already have an email sent. Everyone in the company is away for Christmas I guess.
and if there are no solutions, well that sucks for you i suppose, just wait for the holidays to end and probably they will fix the game eventually
@hazy wigeon and @lone ingot the loot filter tree-sitter grammar was added a long time ago. the grammar can be found here: https://github.com/tree-sitter-grammars/tree-sitter-poe-filter
(Sorry for the ping, saw you 2 spoke about it)
Yeah I was curious who did that, that's so awesome haha
yeah, i noticed it randomly when i accidently opened the loot filter in WSL π i was like "why haven't i seen this before, when did it get added". turned out, it was a few years ago.
I gotta figure out how to make a treesitter setup at some point, figure out LSP support for poefilterx
One message removed from a suspended account.
especially considering the direct trade message system now
Iβm hoping someone here has experience with the Public Stash Tabs API for Path of Exile. I have a couple of questions:
-
Server Requirements: What kind of server resources would I need to use the API for tracking items (the one that streams you all of the info)? Specifically, Iβm curious about SSD, RAM, CPU, etc. (not considering users only base needs for now)
-
Application Registration: I checked the API documentation, and under "Registering Your Application," it says: βWe are currently unable to process new applications.β Does this mean itβs currently impossible to create new applications? How long has this restriction been in place?
Any insights would be greatly appreciated!
Thanks in advance!
re 2. yes you currently can't register as GGG currentl yhas no resources for it - #tooldev-general message
when was this done?
because if they will enable it in a couple of weeks/month i can start develeopment and testing now and get access later
ppl mentioned session id as temp solution i can use it to dev/test untill then? it works for publish stash tabs api ?
- is hard to answer, it heavily depends on your implementation.
(and btw, even if you get access at the moment, there's no poe2 api)
there seems to be an api, its just not documented
https://www.reddit.com/r/pathofexiledev/comments/1hkw8m8/poe2_api/
my implementation is along the lines of fetching the data once through the stream and i store, query, parse it myself, so i has almost no burdon on poe api but i need to do alot of stuff, but get a lot of control and customization
main question is storage tbh, i have no idea how much data will the api send me ;D
Note that the API mentioned in there seems to be the one powering the trade site queries/listings, not the psapi of the public stash "river".
you are right, any info on if or when river api will be available?
Can't say.
Can we get loot filters on console pls. Fckn eyes are dying out here
Fastest way to get these is, to study, learn programming, get best in your field, send an application to ggg, get hired, add the lootfilters to console and then quit and go back to playing
Hey all, dunno if this is the right channel
I'm interested in making a build website for poe2 but obviously the API is not out yet. Is there any other way to get ingame data like items and the such via an unofficial api?
Appreciate any help
https://repoe-fork.github.io/poe2/
https://snosme.github.io/poe-dat-viewer/
https://github.com/poe-tool-dev/dat-schema
slightly necro, but https://github.com/SnosMe/poe-dat-viewer/tree/master/lib will export all the tables as json for you - it's what poe-dat-viewer uses behind the scenes
You'll need to explicitly list what tables you actually want
I know it will do it manually, you gotta click export data right? I was hoping for a tool that I could run on the command line or automatically update the data with
And don't expect the tables to ever be fully reverse engineered - only a subset of hte data is actually useful for common tool development
That URL is to a specific dir - read the README in it
OH
:)
Thank you, that will probably come in handy π
That tool has the benefit of using the CDN to get exactly the data it needs, too, which means it won't go download 80GB of shit and you don't have to feed it anything but a config
I'm working on a build guide site, https://stillsane.build. Need items, mods, and gems. Once I get the courage to tackle building the passive tree I'll need that data, too
Share your Path of Exile 2 builds with others.
Your domain is probably going to refer to the author by the time you get into it
The harvested data is not exactly fit for human consumption
What do you mean it will refer to the author? Like the author name I have in the current template?
So I should remove that before it becomes part of my SEO lol?
The amount of work that goes into pob and other community tools is... Lots
Getting up to speed /with/ all the preexisting stuff is pretty hard, and all the common paths are figured out already
It's fun though :)
Standing on the shoulders of giants
I wonder how Maxroll and Mobalytics made all their POE2 stuff
Probably from having a bunch of developers and having years of experience over the course of POE1
Btw, language-wise there are varying levels of tools and various levels of activity - Depending upon what you want to use and how dependent on other stuff you want to be you may be re-implementing existing stuff, or having a complicated data gathering pipeline
I wonder if I could reuse some stuff from POB, at least for rendering user-friendly data. Looks like a MIT-like license, but not sure if that would be considered bad form
I heard the word data being used and it tickled my brain
Definitely data, not information, from our end lol
Anyway hi
To randomly join the conversation, I'd hesitate to reuse rendering stuff from PoB mainly because it's pretty hard to work with lmao
Maybe rendering was the wrong word, I meant converting modifiers and other things into a user-friendly format
Unless they already have that in the exports
Ah yeah there's some inspiration to be had there for that for sure
I believe the exports have a table with that kinda hydrated in it; reimplementing it is pretty interesting given the stat descriptions and their functions
Did you implement your atlas tree from scratch?
Using one of the exported GGG jsons to render it on a canvas or something?
I forked emmitts poeskilltree and changed the algorithms for pathing new allocations. I'm a data analyst, frontend makes me itch, algorithms is where its at
Oh I missed the first part of your bio π
I'm the opposite, but trying to pickup more backend skills. Learning a ton of devops stuff lately, gonna have to touch database stuff real quick here though
@timid notch I think the most digested version of the mods on items for poe1 is mods_by_base.json in the RePoE (python) repo, but the python tools tend to feel rather inactive to me, and that file has a format that I would call very strange
I know that for poe2 the direct references between bases and available mods (and their weights) is gone, but there's a path through some other table that at least lets you see what's possible
I was talking with Ivy and they said they would add gems.json to the top of their priority list, maybe I should also ask for a mods_by_base.json for POE2
Not sure if any of hte opensource stuff has item text rendering handled yet
I was slowly working with a friend on reimplementing a bunch of that in rust before poe2 came out - since then I'm even more slowly working on re-doing the required parts of that to get back to where we were data-availability-wise
There's a decent amount of forward progress on getting rust tools for going all the way from the CDN to usable libraries, but it's definitely not finished yet
Do you have any public projects in the wild right now?
I do not currently, though I don't think my friend would have an issue openening our work up, though it's not particularly functional atm (and is poe1-specific)
I think it was ivy who has repos up for the oodle/ooze bundle fetching stuff, though I think right now it's just listing files in bundles
Thankfully other people have picked up the pathing torch, so it's looking less and less likely that I'll be updating path of pathing
Path of Pathing has one of the most sane ux's for allocating points btw. Explicit vs implicit nodes, explicit excludes. Love it
The fact that it freezes the UI while recalculating isn't great 
Just solve the travelling salesman problem already
Oh yeah duh
A skill tree equivalent where you can search for things (e.g. minions nodes, melee nodes) and hide/exclude them all) would be super helpful for how my brain works
Or select stats you're specifically interested in and have them highlight a bit
I'm an ops guy, so probably not super helpful in this area, but good ux is good ux
Actually bulk exclusion support would probably cut your number of connections in the graph by a lot, given the degenerate case of using all points to travel completely linearly as far as possible woul d get heavily trimmed in possibilities
I had some grand designs for a panel where you could define stat weightings to alter the distance values of nodes, allowing you to tweak the pathing
Never got anywhere with it though, and my new job tickles that part of my brain enough that I don't feel like doing cool algorithm crap in my free time
Yeah, turns out working on something for money tends to consume the same energy that working on it for fun would consume. But you get paid for it so that's probably good :)
I actually haven't checked, but noticed when using the trees in Maxroll/Mobalytics that regex wasn't supported
@timid notch hmm, I haven't checked if the regex search works in the skill tree window, as the skill tree window's highlighting is invisible to me
Its invisible to you?
Yeah the blinking is waaay too subtle
it does appear to support regex
Does not appear to support negative lookbehind assertiosn.. I can't remember what the boundaries of hte inventory search I dug into ages ago were
I can confirm that abusing backtracking in the passive skills search field will also lock up your game lol
Anybody know if there is anything but null-terminated utf-16 strings in the variable-width data section of .dat* files? And do all known references to those strings always start at the beginning of a valid utf-16 string?
Oh the arrays are stored there too
Anyone know if there is a reliable way to search for level 21 gems? Seemingly corrupting no longer changes the gems "level" and I dont know how to search based on the modifier of +1 level to the gem
This is in regards to the trade site/api
I don't think there is a way currently @strong patio
and yeah, the in game skill tree highlighting needs work for sure. I can barely see it and ended up using the web versions from mobalytics/maxroll instead
Variable-width data sometimes contains arrays of other types. Not often, but sometimes
If you guys do open source it I'd love to contribute. Been picking up rust on the side for the guts of a year now, trying to weave in some real use cases to apply it outside of work π
is there an api for the trade and currency exchange?
Tyvm, can't find location though, am I blind?
What location are you talking about exactly?
Hm, have never looked into localised files - I know that for PoE1 there are some localised folders here: https://repoe-fork.github.io/ (French, German, etc.) - maybe there are no dat schemas for PoE2 yet.
Okay thx
Seems like it, though I wonder how poe2db parsed the data
Ig made their own parser?
@velvet fog is a wizard and has lots of custom tools I'm sure π
Well would be happy if he shares a trick or two π
For toolmakers and data gatherers, it's might be a matter of not having extracted it or not being keen on dealing with ten times the amount of data. The representation of localised content vs. the base English is straightforward.
A big hurdle around localised stats/items tend to be if you have a need to parse user/API-sourced data back into the original stats and mods.
Awakened PoE Trade for example only supported English and Russian languages due to their need to go from Ctrl-Alt-C "advanced mod descriptions" into trade-searchable stats to filter on.
Path of Building does a lot of string matching on modifier text into their own internal representation and only supports English.
I get that but in my case im only interested in the name and description of the text for the localised parts, unfortunately I don't know much about parsing files so this will be a hurdle
I thought of doing it by hand but that's alloooot of work
Anyways thanks alot for the help either way, I will prob find a way to get it done
@formal kraken if you want to have a mess around with a POC web version https://jchantrell.github.io/chromatic-poe/
keep in mind conditions aren't functional yet, I am still working out the best way to do them. also the web version was hacked together over an hour and doesnt have an export for the actual filter yet π
also still need visual buttons for undo/redo, save, etc. it uses the windows binds for them if you want to use them. also context menus via rclick on a lot of things
there's like ten million things to optimise but it's functional bar the conditons at least
lm not too far from getting stat descriptions working in pypoe, then ll be able to add them to the repoe export. doesn't seem like the files have changed too much from poe1 but there are a couple of changes
Any more hilarious data bugs in there
for poe1 mods by base used crafting weights, but those are removed from the data files. l've heard there's a gold prices table that can be used to link mods to bases but l haven't looked at it yet
another bug btw @zenith zodiac
Error 1101 Ray ID: 8fa5c9f81ba15557 β’ 2024-12-30 23:25:25 UTC
Worker threw exception
I was trying to find the awesome pic I found of an observatory in a desert
can you paste the url?
I got it when I attemped to cut off a bit of the URL my browser remembered, the initial load worked and I cut it down to this https://image.ggpk.exposed/4.1.0.11/art/textures/
oh I get it now lol
I didnt see the subdomain
l can add a redirect
did you just add this new browser thing or did I miss it originally?
this is sweet
it even has thumbnail previews 
yeah the www was the last thing l added, but it's been there a while, l think the redirects from base domain weren't working though so its more discoverable now
That roomba has a lot of work to do
any idea how poewiki is matching baseType onto unique?
(it's just querying trade isnt it)
Do you know how to launch client with updated .dat64c files? Should you repack ggpk file? or just put them as single files?
The thing is I would like to have the game client to show tiers of prefixes of relics. It could be about adding records to goldmodprices or somewhere else, but definitelly involves client files change
modifying the game files is against tos
suggest against doing it, easy way to get your account permabanned
you can filter on relics via item filters (Im prettty sure)
item level and mod names, assuming they're like all other items
That was how I did it. Uniques are completely and entirely ommitted from game files
Atleast from my research that was the case
I have like 5 tabs of different relics and need a good way to mark low-tier ones to get rid of those... something to estimate an item looking at it's tooltip. Remembering all the 170 mods looks like a harder challenge than developing something
filter on item levels and mod names and drop all on the ground at temple of chaos
use poe2db to get list of mods https://poe2db.tw/us/Relics#ModifiersCalc
thanks, I can read mods.datc64 as well ) ... rows 12200 through 12369
you can just use poe2db and click on each mod you're interested in
While it's a noble goal, all modification of the game client is strictly against the ToS (https://www.pathofexile.com/developer/docs#policy) regardless of intent.
I recommend finding a more compliant way of doing what you want or post feedback about this information gap.
Show
Class == "Relics"
HasExplicitMod "Venerable" "Steadfast"
SetBackgroundColor 185 163 109 255
very simple to do
if you are interested in above item lvl threshold (which you would be if you want to reroll for good relics) then you probably want a separate rule for ItemLevel >= 78 or something
and thanks for the dropping on the ground and filtering there
alternatively you can just filter in stash tab with itemlevel:76
assuming there's a pattern to capture a range of ilvls, I dont know it
itemfilter will be much better either way - for the ability to apply multiple rules at once
I found how the wiki does if for anyone interested, bit contrived but seemingly it works https://github.com/Project-Path-of-Exile-Wiki/PyPoE/blob/b29e69190ec5a31e560320c6315ea6360dd9fc6b/PyPoE/cli/exporter/poe2wiki/parsers/item.py#L2448-L2487
wow thats super useful. Hadnt found this file.
Good to have a source of unique item names that isnt the trade site
pretty sure iv mentioned that already
not 100% of uniques have a uniquestash entry though afaik
from what i can see that list is complete atleast in reference to what the trade sites filters file has
Both of them could be incomplete however im sure
at least the one iv had was incomplete vs the trade site
seems to be missing 1
Actuaoly im comparing to my db. and ive definitely manually added some
Strugglescream iirc, and the unique relics
From what I know some of those rare uniques were missing
I think the trade items list is complete now tho
trade is complete to my knowledge yes
Oh i get u
do unique names not show up in Words.dat anymore?
they do
uniquestash is more for linking art with names afaik
yeah, they're all in there as far as I can tell but there's nothing that deterministic about it for linking to actual items
guess I need to work out how to interact with the trade API for bases
just need the baseTypes now, time for trade API
So... uniquestashlayout data will provide us images for uniques, and the trade site (https://www.pathofexile.com/api/trade2/data/items) will give the list of unique items, but to gather their stats range one will have to query the website?
MTXCrabArmourCrabsOnKill yes, I want this
best i can do is "Delerium", "Irresistable", "Waistgate", or "Wareclast" (also in the dat files)
Delerium League: Players in Area are Cursed with Silence feat. Sarah McLachlan
brutal
Okay, this is much more comfy for me now when adding or changing stuff in my item filter
Anyone have a list of the number of rows in each dat?
Trying to work out some unknown key columns atm and knowing which dat has > 3k rows would make it a lot easier
Used the https://github.com/adainrivers/poe2-data repo to make this list in case anyone else is interested
I forgot to say earlier, if anyone wants to pinch my dat implementation for their own stuff you're welcome to. I am using snosme's pathofexile CLI tool and turning it into a local SQLite DB, the implementation is generic (with some gotchas with SQL reserved words) and you can feed any extracted JSON straight into it https://github.com/jchantrell/chromatic-poe/blob/9df135c57ccb3bef833cbbf4438ec8adb23d2291/packages/data/dat.ts#L92-L181
honestly just pinching the SQLite implementation will be enough for anyone that knows how to run a CLI tool and write SQL, you end up being able to write queries with the shared dat schema like this
(also bear witness to my unholy mega cte query for chromatic's data in that file lol)
The four first bytes of each dat file hold the number of rows
@lone ingot This is what I wanted to fix: relic's mods have tiers server-side, but these tiers aren't communicated neigher to client, nor on trade site.
it's on poe2db, it's definitely in game files unless someone has gone through and manually hovered and typed every mod (sounds painful)
you could do this
Show
Class == "Relics"
HasExplicitMod "of Convalescence"
SetBackgroundColor 185 163 109 255
you should see what I just got working @formal kraken
Gonna take a look when I get out of bed ^^, but what happened to the local version? The local one has more appeal than web to me
they both exist, it's the same code base with some polymorphic runtime stuff
I just got auto filter reloading working on local client and it's so nice
yes, they have families, but it's no different from mods for armor pieces or weapons, which have tiers actually shown in game.
the only difference I found was in goldmodprices records (precicely their lack of) -
For convenience, poe-dat-viewer also has number of rows in a table if you click Data Tables -> Preload Data Tables
version in above vid is pushed and in a prerelease @formal kraken https://github.com/jchantrell/chromatic-poe/releases
except for the bundle that uses zao's libooz suite, most of the tools are developed by ourselves, including dat-sekhemas, which uses AI tools to analyze the Dat format, import into the database, etc.
actually the mods on poe2db aren't fully arranged: there are 10 possible mods for +max honor, +honor resist and %inc.honor restoration. Those are different sets for small (2 cells) and larger relics, and it's expected that larger items give larger effects (but ratio remains about the same per cell), some mods (like +max honor rez) don't appear on smaller relics at all.
that's great news, I guess I will start deving the site soon and add the localised parts later on, thanks alot for the hard work
looking good, the early layout looks dope
@lone ingot the web version doesn't seem to work for me? Saved states get lost and I can't select items, I assume it should be the 'dropdown' on the item row, but clicking it doesn't do anything
it's missing a save button, does ctrl+s work?
I did keybinds first haha, I'll put in a save + export button in top bar in next few commits
ah that might work, it's weird, because it does remember the new filter, just not the contents
autosave + undo/history would be much better tbh
the one issue with auto save is balancing it with writing the actual filter file
to be honest I might go back to pure autosave for the internal representation
can still have an export button imo
or do it periodically/on focus loss
should probably be a setting though
filterblade's approach of taking the last state before save might be fine to do
I'll have a think about it, I basically just didnt want to commit to full autosave because (1) it was pretty resource intensive with my naive and unoptimised solutions and (2) you have to cut off an undo/redo limit somewhere and eventually you cant go completely backwards to an old version
the filter has a version and technically the same way Im doing undo/redos could actually save whole prior versions of the filter, so it could be possible for either approach really
I like the idea of being able to save by choice and having the ability to roll back to a prior state, with like a last written time as a hint or whatever. maybe can do that and store current state without actually overwriting, so you can exit and resume
I'd just want a good undo/redo (possibly visual) and 'save states' everytime I press export
undo/redo is in some parts at the moment, still need to wire it up to a few things
the undo'redo doesn't need to be that far back either, never have the desire to undo stuff from a previous session
undos/redos I was thinking of just letting it be configurable
anyone know how to get (or compute) the es/armour/evasion to input into the trade site from ctrl-c on an item ingame? if the item isn't at 20q (or 0q), it seems hard to calculate an accurate value?
you would need to know the base stats for each item then working it out should be easy. Do you have that data?
no. i was hoping to just multiply by missing quality but that doesn't work due to rounding π
i guess might be easier in poe2 since no sacred orbs / base armor rolls right?
If you're willing to be off by 1 sometimes due to rounding thats fine, if you want to be perfect, you'd need the exact base values
i'm making a mini price checker tool because ive heard of issues with sidekick/exiledexchange
best approximation is current_value / current_quality_if_nonzero * 1.2 right?
i don't 100% understand what you're asking, but here's the formula on how total ES is calculated:
((base es + flat prefix es) + (prefix increase + 40% from iron runes)%) + 20% from quality
in other words: increase the sum of flat es by the mods on the item and the iron runes and then increase that by 20%.
works the same with non-es mods and for example flat phys as well.
you should be able to alter the formula do what you want?
if the quality is for example 7%
how do you calculate the ES for trade site
assuming i don't want to hardcode base es π
if the item's current quality is 0, it's easy - just multiply by 1.2
if it has quality, you're basically subject to rounding errors
unless as localidentity suggested, you know the base armor
https://poe2db.tw/us/Modifiers
seperate different relic in Special
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
This list is the result of nearly 1,000 items compiled using trade api query. There may be some missing modifiers.
where/how are trade search hashes/ids generated?
only gods know
if you want to generate trade api queries then you can use query parameter instead of the hash
Yep thanks! Short urls look nicer though π and I've been having trouble with the trade site asking me to log in sporadically for some reason, and it doesn't seem to preserve the query after login
hashes expire after some time so reusing them is not the greatest idea
Ah sounds like I have to use /api to trigger the request, read the response.id and then just use that?
Yep acknowledged. This is for yet another price checker so the hashes will be for immediate use
Btw is there a ctrl-alt-c equivalent in poe2?
given this message, i dont think so
anyone tried poe-dat-viewer cli for poe2? i may be too stupid to config it correclty π
Is there a way to access data from the PoE forums without scraping?
RSS etc
Interested in coding a discord bot to monitor for patch notes
You can always just follow posts from #old-game-news since all patch notes are posted there.
I've thought about this but doesn't that include both games?
Does that also include console?
quick google led me to this, idk its what you are looking for https://www.pathofexile.com/news/rss
Specifically PoE 2 PC patch notes
@civic crane is it possible to add a downloadable JSON export for the POE2 schema like there is for the POE1 schema?
?? it's a shared schema
Ah, I see. Missed that. Thanks.
Sorry for PoE 1, but made a little program that reads Client.txt for specific messages to track occurences of events
I want to crowdsource some stats there at some point, depending on if next League has Seer/WW/Sentinel etc.
Currently allowing logging of
Seer, Wildwood, Kalandra, Sentinel, Nothing
Will make it into a proper GUI when I have time, time to burn down peoples PC with Electron Apps 
I feel bad for hating electron because it dramatically increased the number of shitty non foss apps that work on linux, which is honestly good, but I don't like my fans wearing out. Electron could singlehandedly save intel.
Also switching from vscode to zed changed my life
(electron -> gpu-rendered rust toolkit)
In all seriousness: I'll probably just write it in Tauri
Been jamming with Rust lately
Javafx ftw
hi, not sure if im in the good channel but is there a way to highlight unidentified loots with tiers in my custom filter ? cant find any syntax for this
there is not
ok π thx for answer
@civic crane What's your preferred type for fields that are empty and ambiguous? e.g. if there's five fully null columns in a row, it could be a bool and an int, or five bools. Seems like given there has to be at least one bool, defaulting to all bools will make the schema obviously invalid if they actually populate any of them with a non-bool?
Relatedly, worldareas.datc64 is a mess of unused garbage
yeah use ints and fill bools, so int,bool or bool,int doesnt matter, it gets validated (if later turns out it's not actually a bool)
Ok party
@civic crane tangentially related, I think in your "is it a valid string" code it'd be helpful to a) check for 0xBBBB or 0x0000 preceding every pointed to string for the column, and b) verify that the pointed to string is either "", " " (there's at least one of these), or more than like 2 or 4 characters long (I don't know if there's proper examples of short ones other than this). My hacky bullshit rust code I'm using locally is doing this and appears to be a bit more accurate
I'm doing some ggpk parsing for fun in my spare time, and I'm not sure how strings are being generated for stats. Example being the Manifold Method notable (poe2). I can read the rows from stats.datc64, but I see no way to generate the relevant 50% increased amount of mana leeched and 25% increased chance to inflict Ailments against Rare or Unique enemies strings. The stat id strings align with those two strings but the text fields are empty
I've also used the same code to take a list of ids from a a few rows of an unknown foreign row reference and print out their id fields strings if they are all valid, which has been pretty helpful for finding which table's data looks "related"
Text field is not the one, you need files in metadata/statdescriptions
perfect ty
@flat perch Have fun with the preformat functions. They're my favorite part.
can you explain these, i'm feeling dumb π
@civic crane first one, I'm assuming that they are not packing multiple strings into the same part of the variable-width data by starting a string in the middle of another string, so all strings should be preceded by either 0xBBBB from the table/variable data divider magic, or a null byte from the previous string - I just realized this might not work as if the data before the string in the variable width data is not a string, but is an array, it could not be 16 bits of null? Unless the array data is null terminated too?
I haven't gotten to writing array handling code because I got sidetracked on schema stuff
@civic crane second one, there's lots of "valid strings" that are just a random symbol like < or a unicode character that has no meaning, and those tend to be short. Filtering them out might filter out some valid strings that are legit just one character, but unless those are common, considering those as invalid drops the false positives a lot
There are obviously lots of string references to "", and in one of the russian tables there's a string which is just " "
I'm sure there are other exceptions
I should probably go look at what the data for an array field actually looks like in the variable-width data so I can know if the preceding bytes being 0xBBBB or 0x0000 assumption can work
I may try to add some field finding code that is more proper to my pile of rust garbage that does tests on windows of bytes and returns validity with some sort of confidence field
oh the arrays are a length then an offset in the fixed table, so they're not terminated in the table
so that screws up the preceding termination assumption, though it still does raise the confidence of a string if it happens
(this wall of text has been brought to you by adhd)
Are we sure they don't do string interning?
Only takes one example to prove me wrong. I certainly hve not definitively searched for one
i had only one idea, give a hint to validator that it's not CJK table and not accept any chars from that range
Semi-related - If you're testing a localized table, you can go run the same test on the translated tables and if it passes there it's even more confident
interning is used (whole match)
With confidence or metadata stored in the schema you could also do things like "this string starts right after a field that is confirmed by a human to be an array" or whatever
Whole match?
they're null terminated, so they have no choice
Do you remember where an example is of interning being used?
I believe you, I'm just curious
open any table sort by string
Oh! Just full strings though, no pointers to halfway inside a string
yeah that makes sense, I was thinking more horrible partial overlap with shared termination
So detecting the end of something else right before a pointed to string starts does raise the confidence that it's a valid string reference
With the complexity of arrays not having predictable ends getting in the way
Hmm, is it efficient enough that interning is used for separate columns? I kinda doubt that
I guess finding two columns in the same table that are a "" should reveal that pretty easily
oh they do for ""
Which means there's probably only one valid "" string per table
Which means that if you've got a column that looks stringy but has separate rows pointing to different identical strings, it's probably not stringy
Interesting that strings are interned but identical array values aren't
@lone ingot for the item selection, it would be nice if there were multiple ways to hierarchicaly organize the bases, for example, e.g. make it possible to have the order armour > boots > expert/advanced > hybrid/es/evasion
or just in general multiple ways to filter/select
not sure if a tree is better than a table
Idk how translations work in ggpk but can you see if different languages align
chromatic is using tauri, it's a lovely framework honestly
I want to put a search box to filter in there and yeah, the layout is alphabetical at the moment at the top level (which I want to rework) and the armour nesting I planned to rework to a format of armour > dex > boots > base
and then base ordered by total stat weight, highest total stat being top of the list (inverse of right now)
Im pretty sure the advanced + expert bases will get binned when the new acts come out so I dont want to build features around them + I want to keep the implementation generic so poe1 can use it also
basically I'd want to be able to enable all evasion expert bases with one click
that was my plan (kinda) with search
filter on "expert" and be able to click the "dex" parent node
you may want to take a look at some of the debug checks I've got in https://github.com/oriath-net/pogo/blob/main/dat/parser.go
oh, hey, I've got local changes to your repo that make it (mostly) work with poe2
you can kind of get a sense of how the dynamic section is populated - it's written to in order, reusing strings but never overlapping anything or leaving gaps (outside of a couple of nulls in very specific places)
writing the contents of string arrays before their offset tables⦠etc
Totally, should be able to tell if all strings and arrays are properly represented in the schema by counting references to the data and ensuring every byte is read at least once
and all places read more than once are referenced as strings
yep, and that's more or less what debug/strict mode in that parser does iirc (it's been a while)
I'm not actively working on it but I'd be happy to accept a pull request
I haven't made it clean enough to PR but will try to do so at some point
I need to validate whether or not the murmur hash code can be shared, that my ignoring of . and .. files is proper, and figure out why the last four-ish files aren't working
It's a bit sad to be missing this era of data mining but also really nice to not have to dig into things every launch.
I hope you peeps are having fun, that's the most important part!
@worthy capeDon't worry, poe3 will be out in 15 years and you can join in then if you're available
@velvet fog not sure if you're aware but i think the minion numbers on poe2db differ from in game numbers
Oh hey the . paths are gone from the current ggpk
There's still an issue with pogo and five files not being found in the filemap (and exactly five things not referenced in the filemap)
I think ggpk.exposed has issues with these files too? @zenith zodiac https://image.ggpk.exposed/4.1.0.11/art/uiart/scrolling_blue_hotmetal.dds?format=png&path=art%2Fuiart%2Fscrolling_blue_hotmetal.dds&dirname=art%2Fuiart&basename=scrolling_blue_hotmetal.dds&storage=https%3A%2F%2Fpatch-poe2.poecdn.com%2F4.1.0.11%2F&type=file&extension=dds&mime_type=image%2Fpng
art/uiart/scrolling_blue_hotmetal.dds:12756905162627799651
art/uiart/scrolling_blue_hotmetal.dds.header:11180433933861564343
art/uiart/scrolling_hotmetal.mat:3666385455144727757
art/uiart/scrolling_hotmetal.dds:10003720821932421671
art/uiart/scrolling_hotmetal.dds.header:12552932054120085568
unconsumed hashes:
hash: 15817290233128298236, file: 2145240
hash: 5398858320810597462, file: 2352552
hash: 7376798601082499872, file: 204270
hash: 7913253169373806476, file: 2407997
hash: 14826844675946579273, file: 168409```
10003720821932421671 is prime so that's neat
I know, I will find time to make a character with no passive impact at all to test the summon value.
yeah those have been missing (or l guess incorrectly hashed) from the poe2 index since it was released. in the poe1 bundle they're one level up (under art instead art/uiart) and don't have an issue
looks like the first unconsumed hash 15817290233128298236 matches art/scrolling_blue_hotmetal.dds.header so this error is probably on GGG's side
there's a rudimentary condition builder now, I'll probably rework it at some point in the near future to filter the toggleable conditions by the classes of the bases in the rule but still, at least it's usable @formal kraken
l've created a diff for the recent schema column name changes, in case anyone else got fucked by that and wants to see what all changed https://github.com/lvlvllvlvllvlvl/dat-schema/commit/db9f3110c12b4065cfef51db798cb60d65fd05a0?w=1
You happen to know the mapping of the others? I'll just hardcode an override in pogo
That was not the message
I meant to respond to
sorry
You happen to know the mapping of the others? I'll just hardcode an override in pogo
<_<
_>
o_O
Oh I see they're just in the wrong dir, so I can hash them without uiart/ and it should be equivalent
art/scrolling_blue_hotmetal.dds,Art,7376798601082499872,,
art/scrolling_blue_hotmetal.dds.header,Tiny_6,15817290233128298236,93555955,1520
art/scrolling_hotmetal.dds,Folders/art/particles/monster_particles/act3_3,14826844675946579273,230424,5636
art/scrolling_hotmetal.dds.header,Tiny_7,7913253169373806476,58362210,1520
art/scrolling_hotmetal.mat,Tiny_6,5398858320810597462,93558323,818
only the hottest metal in here
(this is a buff)
Art/
Bundles2/
FMOD/
HapticFeedback_Heartbeat_VibrationData.wav
HapticFeedback_Impact_VibrationData.wav
Media/
Streamline/
art/
audio/
cachedhlslshaders/
data/
gateway_list.txt
metadata/
minimap/
ps5_session_image.jpg
shadercacheagc/
shadercached3d11/
shadercached3d12/
shadercached3d12_xs/
shadercachevulkan/
shaders/```
is it time to lowercase everything yet
Art/
Art/Videos/
Art/ggdh
[vitaminmoo@moo pogo]$ go run ./ ls Content.ggpk:art
art/
art/2dart/
art/2ditems/
art/microtransactions/
art/models/
art/particles/
art/scrolling_blue_hotmetal.dds
art/scrolling_blue_hotmetal.dds.header
art/scrolling_hotmetal.dds
art/scrolling_hotmetal.dds.header
art/scrolling_hotmetal.mat
art/textures/
art/tmodels/
art/tools/
art/uidivinationimages.txt
art/uiimages1.txt
art/uips4.txt
art/uishopimages.txt
art/uixbox.txt```
stahp
yer killing me
I should probably grab a copy of poe1's content.ggpk to test this before I pr it
Unrelatedly, switching back and forth between rust and go is chaotic

Holy shit that is an amazing emoji
I love it
Go is like "yeah bro I got you unless you need advanced computer science" and rust is like "your line is weak and will die out because you didn't tell me exactly what to do"
let summin := []byte{Vec::new()};
@rapid pagoda https://github.com/oriath-net/pogo/pull/6/files verified it reads the current poe1 and poe2 content.ggpks
awesome, I'll take a look next year π
Heyooooooooooooo
(mostly) working conditions https://gyazo.com/c37eaa2ef856b6162379e906a3b0da92
god the socket stuff is unintuitive though, I thought I had it working 2 times already and it's still broken somehow
this works
Sockets 1 2 3
but this doesnt 
Sockets >= 1
I think >= <= is just bugged with Sockets for now
1 2 3 works as you said, < > work, S SS SSS work
time to implement something hacky for that I guess
> and < dont work for me for whatever reason
Show
Sockets > 2
is that the right syntax @frank drift
== works, like
Show
Sockets == 2
if you want 3 sockets yeah
think Ill just disable gte for sockets
Anyone figured out how to filter on uncut skill gem levels?
i tried "GemLevel", but doesn't seem to work
Did you try item level?
it thinks all gems dropped are GemLevel 0
I don't know the answer, but it rings a bit of a bell from other exiles chatting.
yeah actually it seems like ItemLevel works, it's a strange choice though
Try itemlevel
thanks
What's the highest number of items we've seen in an array in a dat file?
probably 10s, probably not 100s?
The highest I can think of is skill tags for some gems which might get to like 15. Can't think I've ever seen one above 20 or 30
Party; good heuristic for automatically identifying array fields (valid data address preceded by 8 bytes that are all <30 or whatever)
the other one I'm using is that valid data references don't start with 00 bytes which seems to exclude the array length fields as possible string references, but may not hold true if a table has enough array/string columns that a late one only points to data that is after byte 255 or whatever
burn that bridge when I get to it
i made a lightweight item searcher along the lines of awakened poe trade in Python if there's any interest - mostly for my own uses but decided to open source it. will add support for other base types, weapons, etc shortly, and also planning to add poe1 pseudo support via weighted sum filters soon
my garbage pile of rust now correctly identifies all strings and arrays in mods.datc64 automatically
I'll eventually need a nice way to work with mods for filters so open src pls 
I will pull all my data file stuff out of the larger repo it's currently in and get it up somewhere at some point soonish
it really is a garbage pile so far, though
my stuff is as well, I want to bang out a few more baseline features and go back through it with a comb lol
there's some implementations I look at that make me shudder already, at least it works though
Right now I only have fetching strings and arrays in a single table supported, other than that it's just analysis features that print out likely fields and metadata about the table
need to back up and get cdn downloading working at some point
what are people doing to filter out inactive item bases? e.g. Arcane Robe, Enlightened Robe, etc
trade
π
I think there's maybe some hints in the data but not looked too much at it
There's a ton of data in poe2 from poe1 stuff that isn't in poe2
speaking of garbage piles
probably yeah, I am just assuming bc of the heist guys being in kingsmarch
this seems to work
oh I messed up the AND/OR lol, below 45 and armour or starting with the Expert/Advanced prefix with any ilvl
is it possible to make a chat filter or a way to auto report the orb selling spam sites? i can see the chat log in the client.txt but not sure if we can have that level of interaction with the game.
you can stream the client.txt into external program and do whatever you want with it so long as it's allowed in tos, it's how a lot of the trade tools know how to auto invite trades
Lol spawnweight_tags in mods is empty because they cleared it, so all the length fields are 0, but the data blob offset half of it has duplicate entries
but not all duplicate entries
looks like this now @formal kraken
it's likem that after a few hours of grokking the dat files
I've created some of the dumbest when Ive tried to program after an hour or two of looking at data lol
Oh, no, it's overlapping addresses between one local array column and another foreign reference array column
so unless you know what type the array column is between those you can't exlude them by duplicate addresses
I guess that also means that foreign reference array columns can have duplicates indexes, as they're pointing to a table via its index, but if you see an array column that has addresses in the space of hte local variable data with no duplicates, that's a hint that it's more likely local than foreign
hi everyone, does anyone know where the association from mods to base items is defined in the poe2 dat files? been looking through them for hours and don't see it
Best way iirc is the goldmodprices table
The nice association got purged with the mod weights
I assumed it was BaseItem.ModFamily > Mods.Familiies but didnt look into it more than that
oh wow, you are right i see it
Is there an official data structure for the passive tree anywhere? I'd like to analyze it programmatically to try and find atypical builds, but building the model manually would take forever and it would be invalidated on every patch.
it's in the game files yeah, you can make something to process it on patch update
can take a look via https://snosme.github.io/poe-dat-viewer/ in the data dir
presumably official github releases will occur eventually for poe2 too
wow, perfect, thank you!
It might be easier to start off from the published PoE1 JSON to be able to figure out things like how you're going to evaluate a tree and the value of mods at all.
@worthy cape are live searches known to be not working at the moment?
I don't know, not my department.
kk, sry
zeo not omnipotent? 
it seems like trade has just been struggling since poe2 release, when I was actively playing it seemed like my live searches were dropping out at around the same rate the lost login sessions were happening
yeah 100%, just putting it out there as an anecdote
Today is even a public holiday, btw.
same here π
this has been updated with pseudo support for stats and resists
ctrl-c doesn't copy the Grants Skill: ....
Rarity: Rare
Oblivion Roar
Chiming Staff
--------
Requirements:
Level: 58
Int: 133
--------
Item Level: 61
--------
38% increased Spell Damage
74% increased Spell Physical Damage
19% increased Cast Speed
88% increased chance to Ignite
+6 to Level of all Physical Spell Skills```
They're all base-specific, so they're not ambiguous
god knows whom you pinged π
werps lol
Too many people on this discord lol
I assume the granted skill level is ilvl determined but am basing that on not having looked
yeah
See https://www.poe2wiki.net/wiki/Gem_socket for the LUT mapping ilvl to skill level and sockets.
thanks @worthy cape
I have the start of a control-alt(rip)-c item parser in rust for poe1, but had to resort to watching my clipboard for items because I didn't have oauth access yet... Parsing them is not fun, even with the bonus alt view
rust is (not) fun
Yeah but it's got good forward momentum in the poe tools space
how are you getting the stats from "the bonus alt view"? OCR?
This was poe1, control-alt-c gets them there. Not on poe2 (yet?) though
ah assumed poe2 my bad
trade site has more info on poe2, but not great. Here's hoping they get back to poe1 parity there and it wasn't a conscious removal for increasing trade friction
Also here's hoping the oauth access I got for poe1 after poe2 came out eventually includes poe2 so I can resume writing the itemtext parser :)
yeah fwiw @hazy fiber and I have figured out a few of the values we think are correct (life and damage for attack minions) still havent figured out the spells though
I added Minion Life on the website, but the Minion Damage values ββare a bit confusing.
Anyone here know the backstory with the two URL/socket resources for checking the current patch number? I assume someone discovered those by monitoring their network traffic during the game startup? Has GGG said anything about them? Wondering if it's a "go ahead and use them but they might change" or "we can't stop you but we don't like it" kind of thing.
patch.pathofexile.com 12995
patch.pathofexile2.com 13060
and you should use version 7
l'm pretty sure the azure function referenced in #tooldev-general message is the one on poe-tool-dev https://github.com/poe-tool-dev/poe-patch-update/blob/master/src/PoeFetchLatestPatch/PatchNumFetcher.cs
which was before my time
going to announce chromatic and put in into beta if any of you nerds want to test it 
so many people getting their accounts compromised lately. makes me think there's some 3rd party app people are using that's harvesting sensitive data. Like PoE Overlay has 400k downloads but I don't think it's open source so no way to verify what it's doing.
I mean it's true though, open source makes things easily trustable
accusing people of stealing user data is not ok
not snos
PoE Overlay II is a desktop app for price checking and trade help in Path of Exile 2, succeeding the popular PoE Overlay for Path of Exile 1, with seamless trade site integration.
this
snos app is open source
there's basically only 3 possible answers to all the account compromises,
- Data breach (unlikely)
- Browser Malware (extension, think this is probalby most likely)
- 3rd party app/overlay
many of the people that had their accounts comprimised were not using any apps
if you're going to make accusations you better be well informed and careful
could also just be a breach in some other service with overlapping credentials
I didn't accuse anything, other than stating the objective fact that the project was not open source
(can we have mfa please GGG)
you can't claim you weren't accusing them
I can', because I didn't
Personal note on auditing: even open source software is really hard to audit.
Even if the source code you see in repositories actually corresponds to the binaries you obtain from releases and auto-updates, there's often quite a lot of it and understanding a non-trivial project enough to tell what it does is hard in the best of conditions.
Anything longer than the script everyone ran to see their lifetime entitlement takes proper effort to squint through, especially if in a language or on a platform you're not familiar with.
very true
it's true, at least it can be audited though
if you can decompile the binary, AI can help quite a bit with the analysis.
short of decompiling, looking at network traffic, etc
Standalone PoE tools have been quite faith-based since the beginning.
ya. I've been a member of this group since beta. I recognize most of the big tool developer names from all the effort that has gone into them and the discussions that happened in this very channel.
which is why it's hard to trust new tools that are closed-source and pop up out of nowhere once poe2 launches
anyways, I didn't mean to stir up trouble and upset people. Just be careful what you install and maybe change your password semi-regularly.
PoE Overlay has been around forever
while I don't like the author's choice of selling to Overwolf, that's not grounds for baseless acussations
like I said multiple times, I wasn't accusing poe overlay of anything. I was using them as an example of a close-source tool. You're the one misreading what I said.
I can see how you could interpret what I said as accusing them, but I clarified what I meant.
turns out you cant do this for whatever reason
Show
BaseType == "Faded Crisis Fragment"
heyo - do any of yall know if there's a js parser for ctrl-c yet? i'm assuming snos's only works for ctrl-alt-c?
Oh I guess exiled exchange must be?
I think those Pinnacle Key basetypes are just bugged
it's been reported to GGG
sweeet
Do you have any thoughts on the safety of Sidekick and Exiled Exchange?
I'm not going to endorse anything since I haven't even personally looked at the code, but they're widely used
Exiled Exchange even discourages you from logging in with it or entering your POESESSID
my personal favorite tool is the community fork of PoE Overlay, but that's been stuck in rewrite hell for a very long time
yeah fair enough. that's why i wrote my own but it seems silly to go any further with it.
i wonder if it's possible to run exiled exchange as a web page (and just have users manually ctrl-c and paste in the item data)
that's true but it seems as there are currently account takeovers, folks are more cautious
very few people are more cautious, I expect
I did see one person say he wasn't using filters because he was afraid of being hacked though
at least two people were when i asked π #2βcrafting-advice message
I'll need an item parser at some point in the future... π
wts item parser, all the divines and other valuable stuff in your stash

ouch, busted
why does discord s/// put a trailing slash in the replacement. Blasphemy
RCT = Real Code Trading, not allowed!
Substitution syntax is the weirdest thing they implemented for Discord, particularly as it trips up oldschool nerds that are used to it from IRC where messages are immutable.
I feel called out right now/
I do it every now and then to point out a funny substitution of someone else's message and it goes and mutates one of mine instead ^_^
It's almost as bad as up to edit last message by default
Up-edit is my bread and butter.
Up is for spamming the same thing over and over, not revisionist history
Lol
Oh man you just reminded me of a thing
A job I used to work at had irc ops sort of commands on an irc bot
Which worked fine for being a thrown together clump of horror
Until one weekend one of my coworkers made another bot that used markov chains, trained on a bunch of ex employees irc history, to replace those ex employees with bot versions
Which was hilarious because they had no restrictions on responding to eachother
But they also had all the commands for the ops bot in their history
All fun and games until one of them triggered a deploy

The alleged account stealing and the thing where I've been getting logged out of the trade site constantly for like a week give me the squinty eyes
l've added an exporter for gems and skills to https://repoe-fork.github.io/poe2/. skills.json has a similar format to gems.json from the poe1 exporter, but it doesn't include gem item data. the old format had actually been obsolete for a while, ever since they added gems that grant multiple skills a while back, but it was even more obsolete for poe2, because now skills can contain multiple statsets too (each stat set is a tab in the skill info) so l took the opportunity to rework the files. there is now a separate skill_gems.json that contains only gem data, with a list of skills granted by each gem that can be looked up in skills.json
wasn't the logging out of trade thing a "hotfix" to people scraping the internal trade api?
No idea
I always understood it as just sed
made post on reddit but it's stuck in waiting mod approval purgatory 
That's what I mean. Us old beards are used to making jokes in sed; a habit that's incompatible with Discord silently using a limited set of sed expressions for message editing.
I must admit, I am somewhat of an impostor as a 24 y/o who has only used IRC to talk to some niche communities in the past
Protocol-wise it's abysmal with opaque message length limits, no well-defined encoding, very little in-band formatting and no real offline presence.
There's some upsides in that anyone can run a network if they wish without being beholden to some central company and whims like Discord.
It was a nice formative era but it largely had its run π
very grateful for discord, I cant imagine irc scaling up to the amount of people online nowadays lol
it could technically, it'd just be pure chaos
I remember people making software that would allow them to "always be online" and read message history for channels of their choosing by acting as both a client and server, sort of an intermediary. Forgot what this was called
How is discord any different from having a bunch of channels on an IRC server in terms of scale?
user management, content moderation (the bad stuff you dont want to know about or see)
the social stuff mostly
Ah, right, we'd be suffering from a lot of spamming
Personally I've always found Jabber/XMPP to be really fascinating
And Matrix
that's what I mean by chaos, it'd be very hard for people trying to manage it. discord can already be really chaotic on its own with all the tooling they give
"Bouncers"
On scale, some Discord servers have half a million members with well over 100k online. There's a lot of clever deferred work there.
what they do with their db boggles my mind
Self-hosted systems are neat, but they tend to be quite a bit more insular and not having to deal much with the burden of moderation.
Their tech stack is very cool, yeah
Still bitter that Google kind of ruined XMPP tho π
how they can store that much and make it that performant and still have all the redundancy etc
What did google do to XMPP?
Google Talk "kind of" implements XMPP in a way that doesn't interoperate well with anyone not running Google Talk.
Ah
this is a good read if you havent seen before https://discord.com/blog/how-discord-stores-trillions-of-messages
Been a decade or so since I was into it all, but it was a drag on what could've been a nice ecosystem.
I've heard TFT is or was the biggest discord server by traffic, PoE is scary
Matrix is neat but a lot about the application ecosystem there strongly encourages you to have exactly one identity.
Right, they moved away from cassandra to scylladb plus a custom rust thingy in top, no?
TFT would definitely be close to the top if not the top
TFT is 17th on the Discover page.
I liked this post, because I am an Elixir/BEAM shill https://discord.com/blog/how-discord-scaled-elixir-to-5-000-000-concurrent-users
it still boggles my mind that i can just start scrolling in some random dead channel and stream back results (reasonably) seamlessly
the only server I havent seen that work well in is TFT funnily enough
You can definitely see Discord stretch at the seams there - when role or channel changes happen it can render the server unresponsive for a good chunk of time.
dbs are hard stuff, it's been the bottleneck in every single project ive ever been a part of
ez, just offload the db to your clients' computers
I still want to get Inya into a better shape for my personal use.
I did say by traffic
now that we have webassembly we can just store a full-on sqlite db in localstorage 
I was actually using that in the original chromatic implementation pako haha
isn't chromatic a desktop app?
it's very nice honestly, my grievance is that it stores itself under the same key in localstorage
(probably using something like electron?)
it's desktop and web where the only difference is desktop native features like auto in game reloading
ahh, I see
it uses tauri, which is basically electron that doesnt suck
yeah, tauri is awesome
maybe Im too hard on electron but π
nah, electron is bait
I am definitely not biased towards Rust
Especially full-stack Rust on Tauri
https://www.leptos.dev/ feels great
tauri is a dream to work with, they have a pile of plugins that just work out of the box
Some better than others
fs is basically node fs that works natively on js/html
and yeah, it only graduated to v2 just recently and it's real open source, things will always get better
Personally I'm not a fan plugins exposing stuff to JS which encourages developing your logic in JS
Like I would rather abstract DB access away to Rust
leptos actually uses the same state model as solidjs, which is what a lot of chromatic is written in
And only use JS/HTML as presentation layer
I wrote a lot of chromatic in ts simply becasue I knew it'd take 10x longer to do it in rust haha
Fair haha
my plan is to work backwards and migrate stuff into rust
all the data stuff first most likely
Aye, you can easily migrate stuff to rust and call out to it
I do like the look of leptos though, you can use it with tauri now
You can use anything with Tauri, to be fair
In the end tauri will let you bundle whatever folder you want as your "web" assets
wish you could swap out tauri's backend for go though, there's technically bindings, no one has implemented them yet though
never heard of it, it looks nice at a glance
lots of stars as well
it basically is go tauri, very cool
I like their approach for exposing stuff to frontend
(of course I would still encourage using tauri because rust is awesome)
I think tauri still has an ecosystem advantage anyway, plus Ive been enjoying learning rust (even though it's pain stakingly slow)
is this available somewhere atm? :)
cool, thanks
feedback welcome, if you have any you can put it in my DMs considering you're in here (same for anyone else)
I'll probably make something functional for drop sounds tomorrow and then slam my head into making a colour picker that doesn't suck (why doesnt <input type="color"/> support alpha in 2025* btw?)
will do
iirc the problem is that not all native colour pickers support alpha
state of the web man
If you want fun web stuff with alpha, look into transparent video some time.
Here's the atrocity windows 11 makes you use.
I want to use native solution but you just cant, so you have to either implement something custom or make ui gore like this
I wanted to use that for the wiki's divination card backgrounds, but noped out real quick.
IIRC this is the exact same thing we had in paint back in windows xp?
transparent video is a pain indeed, especially in mobile safari. got it to work eventually only for apple to break it again in a browser update
ie11 throwback
Kinda funny how apple is turning into the microsoft of browser compat
webm is easier to work with with transparency fyi
yeah, browsers being in company's control is a recipe for disaster
I forget which web platform library was the weird one, but Tauri uses the OS webviews, right?
yeah tauri and the one pako linked above both use webview, it's a nice way to build apps really
tauri you can technically build once deploy everywhere incl android/ios
Saw some developer on X long ago have some Opinions on the quality and up-to-dateness of those.
I worked on a tauri app over a year ago and had problems developing it together with a friend because he was on an ancient version of macOS
build once with an * though, it's multiple builds and obviously conditional stuff like os specific features
there is a benefit to bundling your own chromium
it's true, but it's also just a lot
but from my experience as long as you don't use extremely new web tech and offload most of the logic to rust (where you can do platform specific stuff easily) your app isn't any less fragile than a regular web app
chromatic is 50mb installer at the moment and I could cut it down by half prettly easily, most of it is just imgs
at least in chromatic's case it doesnt build for mac 
I just didnt turn it on, no mac rn and I didnt want to go through the headache of finding someone that also somehow plays poe on it to test
ah
the build worked when I did run it in github actions from memory, just yeah, I felt like it was a pretty unlikely combo
if someone makes a big song and dance about it Ill consider it, just hard to actively support something I dont use
I wish there was a converter from electron to tauri. I'd switch over immediately. (of course thats not realistic though since going from js to rust)
Hmm. Iβve been itching to rewrite Acquisition from scratch since the c++ at its core is 10 years old, and lots has changed both in Qt and on GGGβs side.
Some one claims they can get all pairs from poe in game currency exchange...?
Anyone care to elaborate on the sorcery ?
Someone reverse engineered an API behind the exchange and then automated it?
There's been people who have been doing that since settlers league came out
Very much not something I'd recommend getting into as its is way outside of any grey area and straight up not allowed
or just automated clicking
anyone know if the default filter sounds are hidden away in the dat files somewhere?
if you just need the sounds https://drive.google.com/file/d/1elOEfvSzFY7dhTMhPVHUlzvtbImS7C1R/view
thank you, exactly what I needed
I'm not 100% sure but I believe they are in one of the banks in <GAME_DIR>\FMOD\Desktop
I think it's <GAME_DIR>\FMOD\Desktop\ItemFilter.bank
For future reference
@velvet fog Stash Tab Sales period is incorrectly displayed on other language sites except English. Could you please correct it?
fixed
IRC is still far better than discord. The ephemeral nature of IRC forced important discussions to happen via mailing lists which we now have archived (forever). Itβs also an open standard that can run for as long as we have working computers.
With discord we are locked into a proprietary private system where all of the valuable discussions are locked up on channels and arenβt archived or searchable off platform. Discord was a decent replacement for team speak, mumble etc. itβs a terrible replacement for community communication imo.
Fair number of good points there.
If you're focusing on FL/OSS - sure, many projects tend to encourage trackability but there's also quite a bit of "corridor chats" with all the important decisions and information solely in chat.
Discord's lack of archivability and search engine immunity sure is a big problem if you're into preservation.
If you're looking at apples for apples, neither platform has the persistence you'd like built in; if anything IRC is worse as the only traces is logs that individual clients or bots keep.
That's good, it's actively discouraged to keep logs. Chats should not be preserved, they are not documentation
If you don't keep logs, how are you then supposed to refuse someone's recollection by bringing up receipts from years ago? π
But tbh the big upside of irc is the culture imo (and a not shitty client)
My channels were predominantly social, not project specific. #gamedev, ##c++, #foobar2000.
If you're using IRC more for project production, then yeah, build relevant project infra.
Which forces quality content to migrate into mailing lists, git issues, wiki updates etc. As you said, itβs less a problem for fun gaming stuff.
However, as a younger audience is less and less familiar with older oss tools we are at risk of losing important things as discord is so easy to get into.
twitch chat was originally IRC which was fun, could just connect an IRC client to it
Isn't it still, with some extensions?
Was that when it was Justintv?
could be
At some point they switched to ircv3 with a bunch of custom extensions
then and for some time after twitch split off I think
On Discord locking things in, has any of you peeps ever had the misfortune of running a unfunded project on Slack?
The surprise "90 day message event horizon" a while ago was a fun wakeup call there, where suddenly you had to go paid or not access anything past recent history.
I don't think they let you just connect IRC clients to it any more but I could be wrong
probably been 8 years since I bothered opening IRC
At $job we have 60 days retention and they think it's a good thing
There's almost 1k people in #general there, as it doubles as end-user support:
IRC is still big for nix open source projects.
slack runs almost entirely off of dynamodb π΅ so it's understandable I guess..
Most of the time the conversations and conclusions are brought into GitHub wiki pages and issues across the repos, but some stuff just gets lost to the sands of time.
Libera has a bunch of big channels as well, #archlinux, ##rust
Iβm in both those. Haha
π you and me both
btw its very easy (although violates tos) to preserve messages from discord, discord client is just a shitty browser
you can just use the web client in a browser and do pretty much anything
Is there a chance for adding Authorization security? So we are not scared to lose our account?
was it already requested to support?
I would feel more safe if I could accept my login through my smartphone or something
I doubt you'll need 2fa on 3rd party tools
Not up to date, is there some RePoE etc. for poe2 which can just dump me all assets?
Ah looks like repoe-fork is updated, but I can't find a download all thingy?
download all the json files? you could try downloading the 'github-pages' artifact from the latest actions run https://github.com/repoe-fork/repoe-fork.github.io/actions/runs/12593723741
Repository of Path of Exile data for tool developers - remove stat_translations json, commit full export Β· repoe-fork/repoe-fork.github.io@0d01694
if you're looking for the item art l didn't add that as l think the limit for a GitHub pages upload is 500mb and l've made www.ggpk.exposed to serve images etc directly instead
yeah looking for all the art
Seems like the file contains the 2d art
Thanks
if you want a link that always points to the latest artifact this one should work: https://nightly.link/repoe-fork/repoe-fork.github.io/workflows/export/master/github-pages
l'm pretty sure the current artifact only includes item art for uniques for poe2, l've added image export back to the poe2/base_items exporter and it's running now, should be done within an hour (assuming it's not over size)
if anyone's interested in the technical details of ggpk.exposed, there's a project-level overview at https://github.com/ggpk-exposed. it mostly exists because there are more assets l wanted to add to repoe but l couldn't fit them (and git isn't a great place to store images etc anyway)
cool repo(s), ty!
@worthy cape I was wondering if you know what the circumstances regarding OODLE are. I'm fiddling around with a C# application and want to extract the bundles and, while there are some packages for C# to deal with OODLE compression, all of them require a native oo2core_<X>_win64.dll and suggest grabbing one from the game Warframe.
RAD Game Tools, the authors of OODLE, don't seem to offer it directly (I assume it's paid?) but I saw that there are open source implementations like your (forked) repository https://github.com/zao/ooz.
Could I "just" go ahead and implement it in C# to not rely on a third party DLL that I "snatched" from Warframe?
Or are there license restrictions?
Oh gods, the licensing situation on it is quite weird given the origins is by something like an reimplementation from reverse-engineered runtime libraries.
There was a hubbub on one of the compression forums about whether it was derived from stolen source or not, but given the clarifications from the RE person the owners seemed fairly chill about its existence.
The original was "GPL" and my added contributions are lifted from various projects of mine that usually are MIT licensed but I've not bothered to put in any copyright comments.
Regardless, that's not exactly a great license for things if you want to ship it in anything; something like lvy's oozextract in Rust is probably way cleaner.
On using it from other languages, porting the code to native C# is a big job considering the amount of often-ambigious byte and bit-twiddling, but you could definitely C++/CLI some bindings around it.
I personally don't care what anyone does, I inherited a mess already.
I see, do you know the stance of RAD Game Tools on open source implementations of OODLE?
this is the forum thread btw https://encode.su/threads/2577-Open-source-Kraken-Mermaid-Selkie-LZNA-BitKnit-decompression?p=49927#post49927
Here's my open source Kraken / Mermaid / Selkie / LZNA / Bitknit decompressor:
http://www89.zippyshare.com/v/w9ng4xIg/file.html
http://s000.tinyupload.com/?file_id=...41619321065487
Thanks!
Cheers, was trying to find the exact one.
These days the company is owned by Epic and the library and its source code is available in Unreal Engine.
afaik c++/cli isn't a thing in new .net era, better to use native libs and bind to c api
oozextract is just a direct port of ooz to rust. it's currently 2-10x slower than the original, but in theory should be easier to generate dotnet bindings for
I designed Bun to be FFI-able C, which it largely does except for the GGPK VFS, which was more of an afterthought as I always used Steam.
Yes, you can use PInvoke or unsafe code like Oodle.NET (https://github.com/NotOfficer/Oodle.NET/blob/master/src/Oodle.NET/Oodle.Compress.cs#L13) does here.
Probably way easier to do the GGPK and bundle processing yourself tho, and just call into the block decompression.
I don't do community data mining anymore, tools mostly exist as they exist.
But is there a functional difference to the "official" DLLs that are shipped with games like Warframe?
From a developer's standpoint I'd have to use interop on both DLLs, the "official" one and ones build by your or zao's open source code, right?
If I don't want (and probably can't) reimplement the ooz code in C# that is.
memory safety is the main difference lm aware of. the cpp code reads from (and writes to?) memory offsets specified in the input with minimal bounds checking, the DLL puts more effort into safety, the rust code should be 100% safe (the only unsafe code is to call a sse prefetch instruction, if that feature is enabled).
I see, thanks for your answers!
Apart from any differences that may have come in with later DLL versions for decompression the community libraries are probably "fine" to process game files with.
Back in the day I had some worries that newer versions of the compressor/decompressor might render ooz unusable, but it hasn't happened yet.
l feel like it's not too hard to port to another language, and there are enough test files (in oozextract repo, and powzix/ooz) to get good coverage so you can be confident that it works
oh, one feature that is missing from ooz is verifying checksums, but l've never found a file that has a checksum so it's kind of moot
I'm new to POE and poe dev, can someone point me to where I can look up the values for the item modifiers stat_<hash> ?
implicit.stat_3885405204 for example
maybe stats.json from the trade site?
If those are the values from the trade site then I don't think you can look them up in the game files - trade site seems to use a different, non-public seed/customized MurmurHash for those values.
yeah to go to game stuff you have to i think match the text from https://pathofexile.com/api/trade2/data/stats with text in some description files
Yes from the trade site, thx for the reply
A few days ago I tried to figure this out myself - I wanted to see if I can hash the ID of a stat and then send it to the trade api to filter results for https://www.pathofexile.com/trade2/search/poe2/Standard/L60jOWlTn (Against the Darkness) because the stats of it are currently not listed in
https://www.pathofexile.com/api/trade2/data/stats
Thanks for the tip!!
I thought I was being super clever by just trying to brute force the MurmurHash seed and even found a potentioal seed, but it seems like GGG internally uses a modified murmurhash function and I was getting a different seed for every Id I tried to bruteforce the seed for
this isn't perfect for all of them, and has some really manually done ones but you could use this one generated for ee2 https://github.com/Kvan7/Exiled-Exchange-2/blob/master/renderer/public/data/en/stats.ndjson
(If that makes sense, am bad at explaining π )
It does make sense. However, I would expect that GGG just uses a salt when hashing, rather than a different function
Oh yeah, absolutely - that's what I meant basically
MurmurHash isn't a particularly complex function - you could just incorporate a salt in the algo itself
They are doing this in the game client at multiple occasions at least
so I suspect they could to the same server side
l would be surprised if there's a direct mapping from game file stats to trade stats, since some of the trade stats include two game stats (e.g timeless jewel modifiers where the 'in the name of' gets baked into the trade stat but it's variable in the game stat text)
lol not what I expected, I changed the patch cdn url and renamed a few dat64 to datc64 and my ggpk parser/exporter seems to be working
any resource on how to read and render active skills? trying to make sense of this: https://repoe-fork.github.io/poe2/skills.json
Ig it's similar to poe1 structure
trying to achieve the hover effect on skills on maxroll guides
Who had the genius idea to use an u8 bitset to represent classes and that now breaks for poe2? ... definitely not me
Does anyone have a nice, clean, cutout simple poe 2 logo, ideally an svg?
thanks, kinda starting to get it lmao
Has anyone converted the game data skill tree into the poe tree json format?
Does someone know how HASH16 and HASH32 within mods.datc64 are calculated?
What do you need to calculate them for?
Nothing, it's just pure interest π
Random trivia, stats.datc64 seems to use MurmurHash2(<ID>, 0xC58F1A7B) to calculate the HASH32.
Example: MurmurHash2("level", 0xC58F1A7B) == 1043633784
Edit: Seems to be the same seed for mods.datc64's HASH32 field as well.
Okay, I think I just figured out how the hashes in https://www.pathofexile.com/api/trade2/data/stats are generated.
Let me verify it before I post complete nonsense, though
Alright, so let's take this entry from the poe2 trade api stats for example:
{
"id": "explicit.stat_3299347043",
"text": "# to maximum Life",
"type": "explicit"
}
The corresponding stat in the game files (data/stats.datc64) would be base_maximum_life with the index 117. Using a tool like poe-dat-viewer we can see that the HASH32 of base_maximum_life is 3882154373 - not the value the trade site api uses, but still relevant.
To get 3882154373 in the first place we can either take it from the HASH32 field or calculate it doing MurmurHash2("base_maximum_life", 0xC58F1A7B).
To then get 3299347043, the hash the trade site uses, we hash the previous result again with a different seed: MurmurHash2(3882154373, 0x02312233).
I've tested a couple of the "trade stats" now and this seems to work.
what about {"id":"implicit.stat_1573130764","text":"Adds # to # [Fire] damage to [Attack|Attacks]","type":"implicit"},?
Do you know what mod this is?
Ah, I see - the mod has 2 stats, attack_minimum_added_fire_damage and attack_maximum_added_fire_damage but only 1 hash
hmm
ah got it
Bit of trial and error
awesome
3113488325 is the HASH32 of the stat attack_minimum_added_fire_damage and 501099642 is the HASH32 of the stat attack_maximum_added_fire_damage
that was a nice puzzle
way to go man, hall of fame stuff right there
where did 0xC58F1A7B and 0x02312233 come from?
good old bruteforce π
So that's basically the salt they're using?
and like you pointed out, the trade site is using a different one
wow, outstanding work man
That's the algorithm, you can see the seed is XOR'ed right at the start with the length of the input as "initial value" of the hash before doing the bit dwiddling
that's very cool find π looking around in stats i just encountered interestingly named stat local_unique_jewel_break_timeless_jewel_calculators π
How do you use .csd files?
For example, metadata/statdescriptions/skill_stat_descriptions.csd
Actually nevermind, I don't think these are the files I'm looking for π
yeah, those are used by the game to generate stat text for mods and gems. it's pretty complex
does anyone know how stat requirements for gems are calculated?
and drop levels for uncut gems? edit: looks like that's in uncutgemtiers
UncutGemTiers + UncutGemAdditionalTiers for drop levels
no known formula, but you can use trade search to get stat requirements
Player level required is in ItemExperiencePerLevel
Stat requirements in PoB are calculated based on this
-- From PyPoE's formula.py
function calcLib.getGemStatRequirement(level, isSupport, multi)
if multi == 0 then
return 0
end
local a, b
if isSupport then
b = 6 * multi / 100
if multi == 100 then
a = 1.495
elseif multi == 60 then
a = 0.945
elseif multi == 40 then
a = 0.6575
else
return 0
end
else
b = 8 * multi / 100
if multi == 100 then
a = 2.1
b = 7.75
elseif multi == 75 then
a = 1.619
elseif multi == 60 then
a = 1.325
elseif multi == 40 then
a = 0.924
else
return 0
end
end
local req = round(level * a + b)
return req < 14 and 0 or req
end```
level is the levelRequirement based on the table above^
@velvet fog ^
can't calculate Armour and Accuracy Rating
getGemStatRequirement() isn't match poe2 attr reqs
You using the table in MonsterTypes?
Those ones you have wrong have 50% inc armour
ya, for Lv28 (Gem Level 14) Skeletal Brute, base Armour 250, MonsterTypes +70%, 250*1.7=425
for your level 9 Warrior in your spreadsheet above that's 106 armour * 1.5 = 159
Brute is lvl28 = 250 armour * 1.7 = 425
You're looking at SkeletonWarrior for the brute when the brute is SkeletonBrutePlayerSummoned
264 is in-game armour
The skeleton has a shield which im guessing adds to the armour value
Skeletal Brute don't have a shield
Hmm maybe something in the .ot files for them
metadata/monsters/skeletons/playersummoned/brute/skeletonbruteplayersummoned.ot
version 2
extends "Metadata/Monsters/Skeletons/PlayerSummoned/SkeletonPlayerSummoned"
BaseEvents
{
set_minion_formation_frontline = true
set_minion_formation_order = 3
}
Stats
{
melee_conditional_step_distance = 14
active_skill_hit_damage_stun_multiplier_+%_final = 50
}
So some stats there but not armour hmm
The act file includes the movement speed for the minion right down the bottow too incase you're interested
Run =
"
walk_maul_01
: speed=222
: max_speed=275,
jog_maul_01
: speed=333
: min_speed=275
: max_speed=450,
run_maul_01
: speed=500
: min_speed=450
: max_speed=550,
run_maul_02
: speed=600
: min_speed=550
: max_speed=650,
sprint_maul_01
: speed=700
: min_speed=650
: max_speed=750,
sprint_maul_01
: speed=800
: min_speed=750,
";
hmm..I found a note for armour
math.floor((10 + 2 * level ) * ( ( 1 + dat("GameConstants"):GetRow("Id", "MonsterDamageReductionImprovement").Value / dat("GameConstants"):GetRow("Id", "MonsterDamageReductionImprovement").Divisor / 100 ) ^ level))
math.floor((10 + 2 * level) * 1.067 ^ level)
Yeah that's how it's actually calculated for PoE 1 armour
Does using that formula get the right number?
nope
and you don't have anything on your character that would give the minions more armour?
Arsonist/Sniper have correct Armour values
hmmm
Armour = BaseArmour * (1+MonsterTypes.Armour*3)
GameConstants.MonsterArmourBase=3
ahhh
calculate Lv28 Skeleton Brute Armour is 250 * (1+0.7*3) = 775, in-game 772
I thought the 3 value would just replace the 10 in this
agree
Yeah it's just for the regular armour formula which simplifies to this
math.floor((3 + 2.5 * level ) * ( 1.045 ^ level))
That gets you 250 base armour for level 28 mob
It's gotta be something in MonsterVarieties then
MonsterVarieties does look like it has a StatInterpolation value at the end now
I used those to simplify the formula to this one #tooldev-general message
added Minion Damage, Minion Armour, Minion Energy Shield
Added Minion Level in Gem Progress
My hero, when I wrote PoE1 code I spent almost a day writing parsers to match trade stats to game file stats. You are a savior! Now I actually have motivation to do something with the PoE2 data
Yeah we were working on adding something that could look up PoB items and make a trade search for them. This should make it a lot easier
I donβt feel there is a big change, but I still need to compare it with the Stats list before generating the trade query.
Does anyone know if there is a API or other neat way of accessing the Atlas map outside of the game, for once own account ?
there are currently no apis for poe2.
Okay thx
working on a react component to render items with tooltips etc. if anyone is interested I can make it a repo
What would you want to do with this?
some calculus for min max
Is there any API for querying prices on the poe2 currency exchange?
Not right now
thanks
This is directly useful to what I'm doing right now - Thanks! (heuristic-based auto-detection of dat file column types). I should be able to use this to positively see if a column is a hash and override any other possible types as it'll be 100% accurate
Nice, glad it's useful to you!
That one is much cleaner and more precise than most of the other type detections I've come up with so far
Stuff like arrays have to have an address that points within the local variable width data section, and have a length that's less than like 30, and have address values that are ordered based on their offset in the table data
Pretty fun to write though
Funny hash-related story - Google Cloud Bigtable's docs originally recommended hashing your keys under certain circumstances to guarantee even distribution (with some other complications like adding a few partition bytes to the front of the key to make things you're going to read sequentially group together some arbitrary amount). They do not recommend hashing anymore because it makes looking at perf issues or weird data incredibly inconvenient because you have to brute force the key to figure out what it was pre-hashing
Currently it just says
Hashed values. Hashing a row key removes your ability to take advantage of Bigtable's natural sorting order, making it impossible to store rows in a way that are optimal for querying. For the same reason, hashing values makes it challenging to use the Key Visualizer tool to troubleshoot issues with Bigtable. Use human-readable values instead of hashed values.
Hey guys, I'm looking for a way to get a price check of all POE2 currency. Daily update would be more than enough. Does something like that already exist, and if not, what would be the easiest way to go about automating this?
Nope
there's two or three poeninja-type sites for poe2 using the trade api, plus poeninja2 should be out soon
use my site / api if u want https://poe2scout.com/economy/currency
that being one of them
Those all have to be the trade site's currency section, not the currency exchange, right?
Scraping trade site's api?
the poe2 ones yeah