#tooldev-general

1 messages Β· Page 18 of 1

pseudo ocean
#

i dont buy account, i ask what they can do

carmine merlin
lean void
#

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.

civic crane
#

@modest path @lone ingot interval stuff has been added

modest path
#

@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

daring drift
#

why can't I improve the set? I click and nothing happens.

carmine merlin
frank vine
#

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)

lapis cipher
#

I would assume GGG will make it available sometime in the future on their official website (just like what POE 1 has).

compact wigeon
#

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.

lone ingot
#

almost there, making a condition builder was more difficult than I thought

#

who knew that you could do this kek

Show
  Height > 1 2 3
worthy cape
#

Very useful.

safe haven
#

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 }}
safe haven
#

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

frank drift
#

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

safe haven
#

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.

lone ingot
#

you can yeah, I'll work out how to do it eventually

#

havent even looked for it in the files yet πŸ˜„

safe haven
#

Oh wow, I assume the Shaper sounds you can preview in FilterBlade are only in PoE1 client? lol

lone ingot
#

they are maybe in the PoE2 client

safe haven
#

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

frank drift
#

yes all poe1 sounds are in poe2

safe haven
#

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.

frank drift
#

more unlikely

#

filter system seems untouched other than renames

safe haven
#

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.

frank drift
velvet fog
#

added

hazy wigeon
#

Okay which one of you dinguses opened a PR to add treesitter support for handling poe filters Pogott

#

I wonder if GGG themselves did that at some point O_o

#

is there a ggg dev that uses neovim or something

lone ingot
#

I noticed it in my neovim as well lol, thanks whoever did it

lone ingot
#

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
timid notch
zenith zodiac
wind lily
#

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

hexed mesa
shell imp
wind lily
shell imp
#

Depending on what you want and your skillset rolling your own might be easier.

wind garden
#

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

upper island
#

Hi, is there up-to-date documentation for the content.ggpk file format available anywhere?

calm adder
timid notch
#

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

calm adder
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?

calm adder
#

Sorry, I'm unaware of a tool that does an "all in one" unpack and returns json files

timid notch
#

Ah alright, I'll figure something out then. Thank you for the suggestions all the same

oak estuary
timid notch
#

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

oak estuary
timid notch
#

I'll shoot them a message, cheers

cobalt quartz
#

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?

hexed mesa
#

idk where you got those numbers from, but this isnt a support channel

cobalt quartz
#

But there arent any solutions in there unfortunately.

hexed mesa
#

theres no support channel, because this discord isnt run by ggg, if you want support use email or forum

cobalt quartz
#

Already have an email sent. Everyone in the company is away for Christmas I guess.

hexed mesa
#

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

wet zenith
hazy wigeon
wet zenith
#

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.

hazy wigeon
#

I gotta figure out how to make a treesitter setup at some point, figure out LSP support for poefilterx

gritty crow
#

One message removed from a suspended account.

golden knot
#

Is that...a trade whisper?

#

that's a new one for this channel

frank drift
#

especially considering the direct trade message system now

narrow burrow
#

I’m hoping someone here has experience with the Public Stash Tabs API for Path of Exile. I have a couple of questions:

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

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

grave wren
narrow burrow
gilded tree
narrow burrow
# gilded tree 1) is hard to answer, it heavily depends on your implementation. (and btw, eve...

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

worthy cape
#

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

narrow burrow
worthy cape
#

Can't say.

tawny ravine
#

Can we get loot filters on console pls. Fckn eyes are dying out here

formal kraken
mental wyvern
#

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

calm adder
modest path
#

You'll need to explicitly list what tables you actually want

timid notch
modest path
#

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

modest path
timid notch
#

OH

modest path
#

:)

timid notch
#

Thank you, that will probably come in handy 😁

modest path
#

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

timid notch
#

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

modest path
#

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

timid notch
#

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?

modest path
#

No, you will end up questionably sane

#

While developing this

timid notch
#

Ohhhh

#

πŸ˜‚

#

Yes you are probably right

modest path
#

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

timid notch
#

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

modest path
#

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

timid notch
#

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

compact wigeon
#

I heard the word data being used and it tickled my brain

modest path
#

Definitely data, not information, from our end lol

compact wigeon
#

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

timid notch
#

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

compact wigeon
#

Ah yeah there's some inspiration to be had there for that for sure

modest path
#

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

timid notch
#

Using one of the exported GGG jsons to render it on a canvas or something?

compact wigeon
timid notch
#

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

modest path
#

@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

timid notch
#

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

modest path
#

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

timid notch
#

Do you have any public projects in the wild right now?

modest path
#

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

compact wigeon
#

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

modest path
compact wigeon
#

The fact that it freezes the UI while recalculating isn't great kek

modest path
#

Just solve the travelling salesman problem already

compact wigeon
#

Oh yeah duh

modest path
#

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

compact wigeon
#

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

timid notch
#

Regex for the skill trees is almost mandatory

#

It's built into the game, right?

modest path
#

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

timid notch
#

I actually haven't checked, but noticed when using the trees in Maxroll/Mobalytics that regex wasn't supported

modest path
#

@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

timid notch
#

Its invisible to you?

modest path
#

Yeah the blinking is waaay too subtle

timid notch
#

Oh right

#

It's actually an accessibility issue lol

modest path
#

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

modest path
#

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

strong patio
#

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

lone ingot
#

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

rapid pagoda
charred lake
upbeat gazelle
#

is there an api for the trade and currency exchange?

mental wyvern
calm adder
mental wyvern
#

Localisation*

#

Sry

calm adder
#

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.

strong patio
#

Okay thx

mental wyvern
#

Ig made their own parser?

calm adder
#

@velvet fog is a wizard and has lots of custom tools I'm sure πŸ˜›

mental wyvern
#

Well would be happy if he shares a trick or two πŸ˜…

worthy cape
#

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.

mental wyvern
#

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

lone ingot
#

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

zenith zodiac
modest path
#

Any more hilarious data bugs in there

zenith zodiac
lone ingot
#

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

lone ingot
#

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

zenith zodiac
#

l can add a redirect

lone ingot
#

did you just add this new browser thing or did I miss it originally?

#

this is sweet

#

it even has thumbnail previews Pogott

zenith zodiac
#

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

modest path
#

That roomba has a lot of work to do

lone ingot
#

any idea how poewiki is matching baseType onto unique?

#

(it's just querying trade isnt it)

errant coyote
#

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

lone ingot
#

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

strong patio
#

Atleast from my research that was the case

errant coyote
#

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

lone ingot
#

filter on item levels and mod names and drop all on the ground at temple of chaos

errant coyote
lone ingot
#

you can just use poe2db and click on each mod you're interested in

worthy cape
#

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.

lone ingot
#
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

errant coyote
#

and thanks for the dropping on the ground and filtering there

lone ingot
#

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

errant coyote
#

itemfilter will be much better either way - for the ability to apply multiple rules at once

lone ingot
# lone ingot any idea how poewiki is matching baseType onto unique?
GitHub

Collection of Python Tools for Path of Exile. Contribute to Project-Path-of-Exile-Wiki/PyPoE development by creating an account on GitHub.

strong patio
#

Good to have a source of unique item names that isnt the trade site

frank drift
#

pretty sure iv mentioned that already

#

not 100% of uniques have a uniquestash entry though afaik

strong patio
#

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

frank drift
#

at least the one iv had was incomplete vs the trade site

strong patio
#

seems to be missing 1

#

Actuaoly im comparing to my db. and ive definitely manually added some

frank drift
#

Strugglescream iirc, and the unique relics

strong patio
#

From what I know some of those rare uniques were missing

#

I think the trade items list is complete now tho

frank drift
#

trade is complete to my knowledge yes

strong patio
#

Oh i get u

rapid pagoda
lone ingot
#

they do

frank drift
#

uniquestash is more for linking art with names afaik

lone ingot
#

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

lone ingot
#

just need the baseTypes now, time for trade API

errant coyote
modest path
#

MTXCrabArmourCrabsOnKill yes, I want this

clever thistle
#

best i can do is "Delerium", "Irresistable", "Waistgate", or "Wareclast" (also in the dat files)

rapid pagoda
clever thistle
#

brutal

safe haven
#

Okay, this is much more comfy for me now when adding or changing stuff in my item filter

carmine merlin
#

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

carmine merlin
lone ingot
#

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

GitHub

Path of Exile filter generator app. Contribute to jchantrell/chromatic-poe development by creating an account on GitHub.

#

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)

errant coyote
#

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

lone ingot
#

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

formal kraken
lone ingot
#

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

civic crane
errant coyote
#

the only difference I found was in goldmodprices records (precicely their lack of) -

modest path
lone ingot
velvet fog
errant coyote
# lone ingot

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.

mental wyvern
mental wyvern
formal kraken
#

@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

lone ingot
#

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

formal kraken
#

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

lone ingot
#

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

formal kraken
#

can still have an export button imo

#

or do it periodically/on focus loss

#

should probably be a setting though

lone ingot
#

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

formal kraken
#

I'd just want a good undo/redo (possibly visual) and 'save states' everytime I press export

lone ingot
#

undo/redo is in some parts at the moment, still need to wire it up to a few things

formal kraken
#

the undo'redo doesn't need to be that far back either, never have the desire to undo stuff from a previous session

lone ingot
#

undos/redos I was thinking of just letting it be configurable

woeful gulch
#

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?

carmine merlin
woeful gulch
#

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?

carmine merlin
#

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

woeful gulch
#

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?

ashen aspen
# woeful gulch anyone know how to get (or compute) the es/armour/evasion to input into the trad...

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?

woeful gulch
#

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

velvet fog
velvet fog
#

This list is the result of nearly 1,000 items compiled using trade api query. There may be some missing modifiers.

woeful gulch
#

where/how are trade search hashes/ids generated?

hexed mesa
#

only gods know

#

if you want to generate trade api queries then you can use query parameter instead of the hash

woeful gulch
hexed mesa
#

hashes expire after some time so reusing them is not the greatest idea

woeful gulch
#

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?

hexed mesa
#

given this message, i dont think so

barren plume
#

anyone tried poe-dat-viewer cli for poe2? i may be too stupid to config it correclty πŸ˜„

fervent radish
#

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

oak estuary
#

You can always just follow posts from #old-game-news since all patch notes are posted there.

fervent radish
#

I've thought about this but doesn't that include both games?

#

Does that also include console?

hexed mesa
fervent radish
#

Specifically PoE 2 PC patch notes

swift beacon
#

@civic crane is it possible to add a downloadable JSON export for the POE2 schema like there is for the POE1 schema?

civic crane
swift beacon
#

Ah, I see. Missed that. Thanks.

loud flint
#

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 Pog

modest path
#

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)

loud flint
#

In all seriousness: I'll probably just write it in Tauri

#

Been jamming with Rust lately

mental wyvern
#

Javafx ftw

sand elbow
#

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

sand elbow
modest path
#

@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

civic crane
#

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)

modest path
#

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

flat perch
#

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

modest path
#

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"

civic crane
flat perch
#

perfect ty

modest path
#

@flat perch Have fun with the preformat functions. They're my favorite part.

civic crane
modest path
#

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

flat perch
#

Are we sure they don't do string interning?

modest path
civic crane
#

i had only one idea, give a hint to validator that it's not CJK table and not accept any chars from that range

modest path
civic crane
#

interning is used (whole match)

modest path
#

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?

civic crane
#

they're null terminated, so they have no choice

modest path
#

Do you remember where an example is of interning being used?

#

I believe you, I'm just curious

civic crane
#

open any table sort by string

modest path
#

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

formal kraken
#

@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

flat perch
#

Idk how translations work in ggpk but can you see if different languages align

lone ingot
lone ingot
#

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

formal kraken
lone ingot
#

that was my plan (kinda) with search

#

filter on "expert" and be able to click the "dex" parent node

rapid pagoda
modest path
rapid pagoda
#

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

modest path
#

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

rapid pagoda
#

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

modest path
#

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

worthy cape
#

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!

modest path
#

@worthy capeDon't worry, poe3 will be out in 15 years and you can join in then if you're available

frigid nova
#

@velvet fog not sure if you're aware but i think the minion numbers on poe2db differ from in game numbers

modest path
#

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)

#
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

velvet fog
zenith zodiac
zenith zodiac
#

looks like the first unconsumed hash 15817290233128298236 matches art/scrolling_blue_hotmetal.dds.header so this error is probably on GGG's side

lone ingot
#

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

zenith zodiac
modest path
#

That was not the message

#

I meant to respond to

#

sorry

lone ingot
#

πŸ˜„ was gonna say

#

was confused

modest path
#

<_<

#

_>

#

o_O

#

Oh I see they're just in the wrong dir, so I can hash them without uiart/ and it should be equivalent

zenith zodiac
#

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

modest path
#

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

worthy cape
modest path
#

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()};

clever thistle
rapid pagoda
modest path
#

Heyooooooooooooo

lone ingot
#

go and rust, like yin and yang

#

i wish i could have the tauri backend in go

lone ingot
#

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 heh

Sockets >= 1
frank drift
#

1 2 3 works as you said, < > work, S SS SSS work

lone ingot
#

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

if you want 3 sockets yeah

lone ingot
#

think Ill just disable gte for sockets

cobalt wolf
#

Anyone figured out how to filter on uncut skill gem levels?

i tried "GemLevel", but doesn't seem to work

worthy cape
#

Did you try item level?

cobalt wolf
#

it thinks all gems dropped are GemLevel 0

worthy cape
#

I don't know the answer, but it rings a bit of a bell from other exiles chatting.

velvet fog
cobalt wolf
#

yeah actually it seems like ItemLevel works, it's a strange choice though

velvet fog
#

Try itemlevel

cobalt wolf
#

thanks

modest path
#

What's the highest number of items we've seen in an array in a dat file?

#

probably 10s, probably not 100s?

carmine merlin
#

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

modest path
#

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

woeful gulch
#

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

modest path
#

my garbage pile of rust now correctly identifies all strings and arrays in mods.datc64 automatically

lone ingot
#

I'll eventually need a nice way to work with mods for filters so open src pls Demon

modest path
#

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

lone ingot
#

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

modest path
#

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

lone ingot
#

what are people doing to filter out inactive item bases? e.g. Arcane Robe, Enlightened Robe, etc

frank drift
#

trade

lone ingot
#

πŸ˜„

frank drift
#

I think there's maybe some hints in the data but not looked too much at it

lone ingot
#

there was poe1, doesnt seem to work for poe2

#

heist confirmed?

modest path
#

There's a ton of data in poe2 from poe1 stuff that isn't in poe2

#

speaking of garbage piles

lone ingot
#

probably yeah, I am just assuming bc of the heist guys being in kingsmarch

lone ingot
#

oh I messed up the AND/OR lol, below 45 and armour or starting with the Expert/Advanced prefix with any ilvl

rare stump
#

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.

lone ingot
#

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

modest path
#

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

lone ingot
#

looks like this now @formal kraken

modest path
#

Oh, no, I just did an off by one error

#

or did I

#

My brain is mush

lone ingot
#

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

modest path
#

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

pseudo ocean
#

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

modest path
#

The nice association got purged with the mod weights

lone ingot
#

I assumed it was BaseItem.ModFamily > Mods.Familiies but didnt look into it more than that

pseudo ocean
candid quartz
#

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.

lone ingot
#

it's in the game files yeah, you can make something to process it on patch update

frank drift
#

presumably official github releases will occur eventually for poe2 too

candid quartz
#

wow, perfect, thank you!

worthy cape
#

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.

wind garden
#

@worthy cape are live searches known to be not working at the moment?

worthy cape
#

I don't know, not my department.

wind garden
#

kk, sry

frank drift
#

zeo not omnipotent? shock

lone ingot
#

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

wind garden
#

well, everyone's been on vacation

#

so kinda expected

lone ingot
#

yeah 100%, just putting it out there as an anecdote

worthy cape
#

Today is even a public holiday, btw.

wind garden
#

same here πŸ™‚

woeful gulch
rancid tinsel
#

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```
modest path
#

They're all base-specific, so they're not ambiguous

rancid tinsel
#

god knows whom you pinged πŸ˜›

modest path
#

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

rancid tinsel
#

yeah

worthy cape
rancid tinsel
#

thanks @worthy cape

modest path
#

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

rancid tinsel
#

rust is (not) fun

modest path
#

Yeah but it's got good forward momentum in the poe tools space

woeful gulch
modest path
woeful gulch
#

ah assumed poe2 my bad

modest path
#

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

frigid nova
velvet fog
#

I added Minion Life on the website, but the Minion Damage values ​​are a bit confusing.

golden knot
#

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.

velvet fog
#
patch.pathofexile.com 12995
patch.pathofexile2.com 13060
#

and you should use version 7

lone ingot
#

going to announce chromatic and put in into beta if any of you nerds want to test it BlobbleWobble

wind garden
#

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.

frank drift
#

huh

#

that's rather rude

lone ingot
#

I mean it's true though, open source makes things easily trustable

frank drift
#

accusing people of stealing user data is not ok

wind garden
#

not snos

#

this

worthy cape
#

PoE Overlay is the name of a program.

#

Not overlays in general.

wind garden
#

snos app is open source

#

there's basically only 3 possible answers to all the account compromises,

  1. Data breach (unlikely)
  2. Browser Malware (extension, think this is probalby most likely)
  3. 3rd party app/overlay
frank drift
#

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

lone ingot
#

could also just be a breach in some other service with overlapping credentials

wind garden
#

I didn't accuse anything, other than stating the objective fact that the project was not open source

lone ingot
#

(can we have mfa please GGG)

frank drift
#

you can't claim you weren't accusing them

wind garden
worthy cape
#

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.

wind garden
#

very true

lone ingot
#

it's true, at least it can be audited though

wind garden
#

if you can decompile the binary, AI can help quite a bit with the analysis.

lone ingot
#

short of decompiling, looking at network traffic, etc

worthy cape
#

Standalone PoE tools have been quite faith-based since the beginning.

wind garden
#

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.

frank drift
#

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

wind garden
#

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.

lone ingot
#

turns out you cant do this for whatever reason

Show
  BaseType == "Faded Crisis Fragment"
woeful gulch
#

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?

frank drift
lone ingot
#

maybe GGG tried to hide them or something, no idea

#

at least the class works

frank drift
#

it's been reported to GGG

lone ingot
#

sweeet

woeful gulch
frank drift
#

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

woeful gulch
#

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)

frank drift
#

I don't think almost anyone would use that

#

people want convenience

woeful gulch
#

that's true but it seems as there are currently account takeovers, folks are more cautious

frank drift
#

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

woeful gulch
rancid tinsel
lone ingot
#

I'll need an item parser at some point in the future... πŸ˜„

rancid tinsel
#

wts item_parser, 20 divines πŸ˜›

#

still broken for many things

modest path
#

wts item parser, all the divines and other valuable stuff in your stash

worthy cape
rancid tinsel
#

ouch, busted

modest path
#

why does discord s/// put a trailing slash in the replacement. Blasphemy

rancid tinsel
#

RCT = Real Code Trading, not allowed!

worthy cape
#

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.

modest path
#

I feel called out right now/

worthy cape
#

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

modest path
#

It's almost as bad as up to edit last message by default

worthy cape
#

Up-edit is my bread and butter.

modest path
#

Up is for spamming the same thing over and over, not revisionist history

worthy cape
modest path
#

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

worthy cape
modest path
#

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

zenith zodiac
#

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

daring moss
modest path
#

No idea

daring moss
lone ingot
worthy cape
daring moss
#

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

worthy cape
#

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 πŸ˜„

lone ingot
#

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

daring moss
#

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

daring moss
lone ingot
#

user management, content moderation (the bad stuff you dont want to know about or see)

#

the social stuff mostly

daring moss
#

Ah, right, we'd be suffering from a lot of spamming

#

Personally I've always found Jabber/XMPP to be really fascinating

#

And Matrix

lone ingot
#

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

daring moss
#

Ahh

#

Right, I remember ZNC

worthy cape
#

On scale, some Discord servers have half a million members with well over 100k online. There's a lot of clever deferred work there.

lone ingot
#

what they do with their db boggles my mind

worthy cape
#

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.

daring moss
#

Their tech stack is very cool, yeah

worthy cape
#

Still bitter that Google kind of ruined XMPP tho πŸ˜›

lone ingot
#

how they can store that much and make it that performant and still have all the redundancy etc

daring moss
#

What did google do to XMPP?

worthy cape
#

Google Talk "kind of" implements XMPP in a way that doesn't interoperate well with anyone not running Google Talk.

daring moss
#

Ah

lone ingot
worthy cape
#

Been a decade or so since I was into it all, but it was a drag on what could've been a nice ecosystem.

frank drift
#

I've heard TFT is or was the biggest discord server by traffic, PoE is scary

worthy cape
#

Matrix is neat but a lot about the application ecosystem there strongly encourages you to have exactly one identity.

daring moss
lone ingot
#

TFT would definitely be close to the top if not the top

worthy cape
#

TFT is 17th on the Discover page.

daring moss
lone ingot
#

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

worthy cape
#

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.

lone ingot
#

dbs are hard stuff, it's been the bottleneck in every single project ive ever been a part of

daring moss
#

ez, just offload the db to your clients' computers

worthy cape
#

I still want to get Inya into a better shape for my personal use.

frank drift
#

I did say by traffic

daring moss
#

now that we have webassembly we can just store a full-on sqlite db in localstorage CatJam

lone ingot
#

I was actually using that in the original chromatic implementation pako haha

daring moss
#

isn't chromatic a desktop app?

lone ingot
#

it's very nice honestly, my grievance is that it stores itself under the same key in localstorage

daring moss
#

(probably using something like electron?)

lone ingot
#

it's desktop and web where the only difference is desktop native features like auto in game reloading

daring moss
#

ahh, I see

lone ingot
#

it uses tauri, which is basically electron that doesnt suck

daring moss
#

yeah, tauri is awesome

lone ingot
#

maybe Im too hard on electron but πŸ˜„

daring moss
#

nah, electron is bait

#

I am definitely not biased towards Rust

#

Especially full-stack Rust on Tauri

lone ingot
#

tauri is a dream to work with, they have a pile of plugins that just work out of the box

daring moss
#

Some better than others

lone ingot
#

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

daring moss
#

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

lone ingot
#

leptos actually uses the same state model as solidjs, which is what a lot of chromatic is written in

daring moss
#

And only use JS/HTML as presentation layer

lone ingot
#

I wrote a lot of chromatic in ts simply becasue I knew it'd take 10x longer to do it in rust haha

daring moss
#

Fair haha

lone ingot
#

my plan is to work backwards and migrate stuff into rust

#

all the data stuff first most likely

daring moss
#

Aye, you can easily migrate stuff to rust and call out to it

lone ingot
#

I do like the look of leptos though, you can use it with tauri now

daring moss
#

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

lone ingot
#

wish you could swap out tauri's backend for go though, there's technically bindings, no one has implemented them yet though

daring moss
#

which effectively is tauri but for go

lone ingot
#

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

daring moss
#

(of course I would still encourage using tauri because rust is awesome)

lone ingot
#

I think tauri still has an ecosystem advantage anyway, plus Ive been enjoying learning rust (even though it's pain stakingly slow)

ashen aspen
lone ingot
ashen aspen
#

cool, thanks

lone ingot
#

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

ashen aspen
#

will do

daring moss
lone ingot
#

state of the web man

worthy cape
#

If you want fun web stuff with alpha, look into transparent video some time.

daring moss
#

Here's the atrocity windows 11 makes you use.

lone ingot
#

I want to use native solution but you just cant, so you have to either implement something custom or make ui gore like this

worthy cape
#

I wanted to use that for the wiki's divination card backgrounds, but noped out real quick.

daring moss
#

IIRC this is the exact same thing we had in paint back in windows xp?

ashen aspen
#

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

daring moss
#

Kinda funny how apple is turning into the microsoft of browser compat

ashen aspen
#

webm is easier to work with with transparency fyi

lone ingot
#

yeah, browsers being in company's control is a recipe for disaster

worthy cape
#

I forget which web platform library was the weird one, but Tauri uses the OS webviews, right?

lone ingot
#

yeah tauri and the one pako linked above both use webview, it's a nice way to build apps really

daring moss
#

yup, tauri uses whatever is bundled with the OS

#

so it is less stable than electron

lone ingot
#

tauri you can technically build once deploy everywhere incl android/ios

worthy cape
#

Saw some developer on X long ago have some Opinions on the quality and up-to-dateness of those.

daring moss
lone ingot
#

build once with an * though, it's multiple builds and obviously conditional stuff like os specific features

daring moss
#

there is a benefit to bundling your own chromium

lone ingot
#

it's true, but it's also just a lot

daring moss
#

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

lone ingot
#

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 kek

daring moss
#

Huh, how?

#

What did you do to make the mac build fail?

lone ingot
#

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

daring moss
#

ah

lone ingot
#

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

somber mortar
#

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)

shell imp
#

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.

fiery trench
#

Some one claims they can get all pairs from poe in game currency exchange...?

#

Anyone care to elaborate on the sorcery ?

shell imp
#

Someone reverse engineered an API behind the exchange and then automated it?

daring moss
#

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

frank drift
lone ingot
#

anyone know if the default filter sounds are hidden away in the dat files somewhere?

lone ingot
#

thank you, exactly what I needed

calm adder
#

I think it's <GAME_DIR>\FMOD\Desktop\ItemFilter.bank

#

For future reference

tranquil token
#

@velvet fog Stash Tab Sales period is incorrectly displayed on other language sites except English. Could you please correct it?

idle dome
# worthy cape It was a nice formative era but it largely had its run πŸ˜„

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.

worthy cape
#

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.

formal kraken
#

That's good, it's actively discouraged to keep logs. Chats should not be preserved, they are not documentation

worthy cape
#

If you don't keep logs, how are you then supposed to refuse someone's recollection by bringing up receipts from years ago? πŸ˜„

formal kraken
#

But tbh the big upside of irc is the culture imo (and a not shitty client)

worthy cape
#

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.

idle dome
#

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.

frank drift
#

twitch chat was originally IRC which was fun, could just connect an IRC client to it

worthy cape
#

Isn't it still, with some extensions?

idle dome
#

Was that when it was Justintv?

frank drift
#

could be

formal kraken
#

At some point they switched to ircv3 with a bunch of custom extensions

frank drift
worthy cape
#

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.

frank drift
#

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

formal kraken
worthy cape
#

There's almost 1k people in #general there, as it doubles as end-user support:

idle dome
lone ingot
#

slack runs almost entirely off of dynamodb πŸ’΅ so it's understandable I guess..

worthy cape
#

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.

formal kraken
idle dome
formal kraken
hazy fiber
#

btw its very easy (although violates tos) to preserve messages from discord, discord client is just a shitty browser

frank drift
#

you can just use the web client in a browser and do pretty much anything

analog pagoda
#

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

dense shore
#

I doubt you'll need 2fa on 3rd party tools

formal kraken
#

Not up to date, is there some RePoE etc. for poe2 which can just dump me all assets?

formal kraken
#

Ah looks like repoe-fork is updated, but I can't find a download all thingy?

zenith zodiac
# formal kraken 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

GitHub

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

formal kraken
#

Thanks

zenith zodiac
#

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)

zenith zodiac
#

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)

GitHub

ggpk.exposed has 6 repositories available. Follow their code on GitHub.

calm adder
#

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

GitHub

Open source Kraken / Mermaid / Selkie / Leviathan compressor - zao/ooz

worthy cape
# calm adder <@128835688366997504> I was wondering if you know what the circumstances regardi...

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.

calm adder
#

I see, do you know the stance of RAD Game Tools on open source implementations of OODLE?

worthy cape
#

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.

empty mango
#

afaik c++/cli isn't a thing in new .net era, better to use native libs and bind to c api

zenith zodiac
#

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

worthy cape
#

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.

worthy cape
#

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.

calm adder
#

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.

zenith zodiac
calm adder
#

I see, thanks for your answers!

worthy cape
#

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.

zenith zodiac
#

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

charred temple
#

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

somber mortar
#

maybe stats.json from the trade site?

calm adder
somber mortar
charred temple
calm adder
calm adder
#

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

somber mortar
calm adder
#

(If that makes sense, am bad at explaining πŸ˜… )

charred temple
calm adder
#

MurmurHash isn't a particularly complex function - you could just incorporate a salt in the algo itself

calm adder
#

so I suspect they could to the same server side

zenith zodiac
#

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)

formal kraken
#

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

mental wyvern
#

trying to achieve the hover effect on skills on maxroll guides

formal kraken
#

Who had the genius idea to use an u8 bitset to represent classes and that now breaks for poe2? ... definitely not me

formal kraken
#

Does anyone have a nice, clean, cutout simple poe 2 logo, ideally an svg?

mental wyvern
formal kraken
#

Has anyone converted the game data skill tree into the poe tree json format?

calm adder
#

Does someone know how HASH16 and HASH32 within mods.datc64 are calculated?

oak estuary
#

What do you need to calculate them for?

calm adder
calm adder
#

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.

calm adder
#

Let me verify it before I post complete nonsense, though

calm adder
#

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.

zenith zodiac
calm adder
#

Ah, I see - the mod has 2 stats, attack_minimum_added_fire_damage and attack_maximum_added_fire_damage but only 1 hash

#

hmm

zenith zodiac
#

awesome

calm adder
#

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

charred temple
charred temple
calm adder
charred temple
#

So that's basically the salt they're using?

calm adder
#

you could say so

#

yes

charred temple
#

and like you pointed out, the trade site is using a different one

#

wow, outstanding work man

calm adder
empty mango
#

that's very cool find πŸ™‚ looking around in stats i just encountered interestingly named stat local_unique_jewel_break_timeless_jewel_calculators πŸ˜…

timid notch
#

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 πŸ˜…

zenith zodiac
#

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

velvet fog
#

UncutGemTiers + UncutGemAdditionalTiers for drop levels

#

no known formula, but you can use trade search to get stat requirements

carmine merlin
# zenith zodiac and drop levels for uncut gems? edit: looks like that's in uncutgemtiers

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 ^

velvet fog
#

can't calculate Armour and Accuracy Rating

#

getGemStatRequirement() isn't match poe2 attr reqs

carmine merlin
#

You using the table in MonsterTypes?

#

Those ones you have wrong have 50% inc armour

velvet fog
#

ya, for Lv28 (Gem Level 14) Skeletal Brute, base Armour 250, MonsterTypes +70%, 250*1.7=425

carmine merlin
#

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

velvet fog
#

264 is in-game armour

carmine merlin
#

The skeleton has a shield which im guessing adds to the armour value

velvet fog
#

Skeletal Brute don't have a shield

carmine merlin
#

Hmm maybe something in the .ot files for them

velvet fog
#

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
}
carmine merlin
#

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

velvet fog
#
        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)
carmine merlin
#

Yeah that's how it's actually calculated for PoE 1 armour

#

Does using that formula get the right number?

velvet fog
#

nope

carmine merlin
#

and you don't have anything on your character that would give the minions more armour?

velvet fog
#

Arsonist/Sniper have correct Armour values

carmine merlin
#

hmmm

velvet fog
#

Armour = BaseArmour * (1+MonsterTypes.Armour*3)

carmine merlin
#

Interesting

#

Wonder if thats only for player minions or all monsters

velvet fog
#

GameConstants.MonsterArmourBase=3

carmine merlin
#

ahhh

velvet fog
#

calculate Lv28 Skeleton Brute Armour is 250 * (1+0.7*3) = 775, in-game 772

carmine merlin
velvet fog
#

agree

carmine merlin
#

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

velvet fog
carmine merlin
#

MonsterVarieties does look like it has a StatInterpolation value at the end now

carmine merlin
velvet fog
#

added Minion Damage, Minion Armour, Minion Energy Shield

#

Added Minion Level in Gem Progress

primal pewter
# calm adder that was a nice puzzle

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

carmine merlin
#

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

velvet fog
#

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.

open hollow
#

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 ?

zenith zodiac
open hollow
mental wyvern
#

working on a react component to render items with tooltips etc. if anyone is interested I can make it a repo

fresh horizon
open hollow
sharp steeple
#

Is there any API for querying prices on the poe2 currency exchange?

sharp steeple
#

thanks

modest path
modest path
#

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.

rose gyro
#

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?

modest path
#

Nope

frank drift
strong patio
frank drift
#

that being one of them

modest path
#

Those all have to be the trade site's currency section, not the currency exchange, right?

#

Scraping trade site's api?

frank drift
#

the poe2 ones yeah