#tooldev-general

1 messages Β· Page 20 of 1

loud flint
#

Will do so today

rancid tinsel
loud flint
#

I do want to add an advanced version of the parser that also returns the mod tiers actually, but that's definitely a bit further in the horizon

rancid tinsel
#

yeah that would be harder because stats would have multiple matches and I think some are combined

loud flint
#

Yeah I think without advanced copy it might be impossible sadly

#

Here's to hoping CTRL ALT C comes to PoE 2 πŸ™

rancid tinsel
#

are you gonna also release the fancy tooltip ui you've created

loud flint
#

Was just about to say actually! That's also on the TODO for today - I want to write the regular web components version as well first so I can release it with both React and web components as v1

rancid tinsel
loud flint
#

Svelte? πŸ‘€

rancid tinsel
#

Svelte ❀️

loud flint
#

I'm planning to make the renderer work in all major frameworks, so watch out for a Svelte package as well

#

If you want to integrate it I'll prioritize it higher

rancid tinsel
#

yeah would be great

#

I was planning to create it myself but if you do, I can contribute instead

gilded tree
ashen aspen
#

i found some issues parsing a few items.. should i be patient for the next release or open github issues? ;)

loud flint
#

I'll work on fixing them immediately

loud flint
#

Pushed a few of the fixes, thanks for the report! πŸ™ Also pushed it to an NPM package:

https://www.npmjs.com/package/poe-item-parser

inland kestrel
#

Can someone remind me which data file has the mod domain, gen type, group, etc?

#

nevermind... it's just mods

scenic epoch
#

Anyone hear an update for PoB for PoE 2? The latest thing I heard was a release today (1/13), but I don't see anything on GitHub

formal kraken
#

Maybe local wants to give an update but they are still hard at work

strong jacinth
worthy cape
strong jacinth
#

Ty zao ❀️

lone ingot
#

(itll basically be the same as react, syntax near identical)

loud flint
#

Noted! Plan (in this order) is then:

Svelte
React
Solid
Vue
Angular
Web components

lone ingot
#

why do typescript generics have to suck so much mavenRage

velvet fog
#

PassiveSkillsHash is unsigned in the passive skill tree, but signed when searching in trade.

ashen aspen
#

i finished a canvas renderer last night

shrewd junco
#

is path of building releasing today for poe2?

velvet fog
empty mango
hexed mesa
#

easy to have powerful generics in a language where types dont actually mean anything

loud flint
#

πŸŽ™οΈ damn you dropped this

calm adder
#

@hexed mesa I think you forgot | null> at the end of your sentence

loud flint
ashen aspen
#

let's see if i will actually integrate this into a discord bot

#

discord bot dev is annoying imo

shrewd junco
#

@velvet fogthanks

crimson basin
hexed mesa
#

typescript is not a thing, its a psyop

empty mango
#

in that case types don't mean anything anywhere then since it all ends up in machine code anyway πŸ˜„

cobalt wolf
#

How do we filter on waystones?
client does not recognise class named "Map" and there is no rule named "MapTier"

frank drift
#

and "WaystoneTier"

cobalt wolf
frank drift
#

FilterBlade is up, you can always look there

olive nacelle
#

When grabbing item data from the trade site, I see there is a field called "indexed". I assume that indicates when the item was listed for trade? Is there anyway to determine when an item was created? Ideally, I'd like to be able to tell whether an item was created before or after a patch

cobalt wolf
frank drift
#

it's just accumulated experience at this point

cobalt wolf
#

or did he guess it?

frank drift
#

by manually testing things

#

which was mostly me

#

also people like nomad, thmsn

cobalt wolf
#

ok, kinda wonder if we should just try to ask ggg to release this info

#

i don't see why it would be kept a secret

frank drift
#

poe2 filter code seems to be a fork of 3.18 poe1 filter code + some generally buggy hacks to support new poe2 types/features

#

ggg simply hasn't had time to even get filter support working properly, much less document it

cobalt wolf
#

that's fair, will hope to get this info released sometime in the future then

solid quartz
foggy stag
torpid sonnet
#

is there any current way to hit the trade site?

compact wigeon
torpid sonnet
#

i've found a way, im trying to dabble with a price checker

lone ingot
#

also full of seemingly endless edge cases

#

(that's what I was bitching about fyi)

#

e.g. restricting from a union type using string literal or enum is so much harder than it should be. I read for 4 hrs yesterday about it and still dont get it

#

if you have enum with 10 unique values and 10 classes with a property type = 1, type = 2 etc for each enum value but then conflicting types on other props e.g. value: number, value: boolean and then union those classes into a type, you can isolate it but then as you pass the isolated type around, it has a pile of areas where intuitively it should work but it just doesnt

loud flint
#

If you're using Enums in TypeScript you're doing something wrong to be fair

#

as const for the win

lone ingot
#

this is fine

enum MyEnum {
FIRST = "first",
SECOND = "second",
...
}
#

I tried the same thing with as const for a bit and still had the exact same issue, I'll push it up today and someone that's a genius at ts types can look at it if they want πŸ˜›

#

(it's a factory function that creates classes and takes in parameters for those classes constructors)

loud flint
#

I'm not sure if I like this pattern vs. manually writing all tests directly in the test file, this definitely feels like less effort to write new test cases

#

I guess I could name the test cases differently based on what they're testing

#

"Ah yes, 6.ts, the edge case"

velvet fog
#

There will be a Taipei Game Show next week (Jan 23th to 26th), and Path of Exile 2 is on the list of exhibitors, but Hotcool said there will be no official personnel present.

crimson basin
mental wyvern
loud flint
#

It’s growing on me, I like it for stuff like this

#

I do need to name them differently tho

grave wren
#

I've done similar things but mostly put it all in one big json which then got evaluated - it's nice if you know the system well and can easily add new cases but at some point you can spend too much time on it if you also want to cover more than 1 assertion πŸ˜„

loud flint
#

For sure - it definitely works for now with this catch-all "Hey I just want to simply run the parser on all these cases" - but I am going to change the approach a bit when it comes to testing the invidiual bits of the parser

ashen aspen
#

i'd probably do it like this:

  • put each ctrl+c item into its own .txt file with a descriptive name (headhunter.txt)
  • in your item.test.ts, iterate all txt files, creating one test for each, naming the test after the filename, parsing the json file
  • if a fitting json file (headhunter.json) exist, assert it is equal to the parsed txt output
  • if no fitting json file exists, create one (establishing a baseline)
  • manually edit new .json file to match expected output

doing it like this, you don't have to write code for new items and basically just paste a new txt file when you need a new test.
might be worth thinking about if it is ok to check for equality of jsons here or if it's better to compare js objects, which would require you to write .js files instead of .json.

supple oasis
#

@somber mortar would you mind adding OS tags to EE2 issues ? (eg. os:linux, os:windows, os:mac), I would like to help poeple trying to run ee2 on Linux and this would make it easier to see anything linux specific:) Thanks for the awesome work !

somber mortar
supple oasis
#

sure thing

somber mortar
#

And for question stuff I’m probably going lean towards converting them to discussions, it makes them slightly harder to find, but GitHub added it so you can mark answers like SO which can be helpful instead of a list of comments

supple oasis
#

DIscussions tend to get overlooked becuase they are not indexed that well, but if you pin a reminder to people to check discussions first on top of the issue view it might work

pure jay
#

this is not the place for user questions because poe 2 trade site complains about internal error while trying to check prices through EE2. Sorry if this is the wrong channel to ask.

oak estuary
#

Trade site seems to be having issues, yes, but the proper place to ask about game issues is the forums, including issues with the website

wind garden
#

isn't trade just down for maintenance?

#

seems pretty clear

oak estuary
#

The down for maintenance message wasn't in place a few minutes ago, trade searches were just returning internal server errors

pure jay
wind garden
loud flint
#

@rancid tinsel I've been struggling with getting my Svelte build to work for SSR (ie. it bundles document-calls into the dist file). Do you have any good templates for setting up a light weight Svelte library (preferably with Vite so that I can extend it to easily support other frameworks)?

#

Once I get this stuff building v1 of the renderer is ready

loud flint
#

Big problem is that it's not a svelte-first project

#

Hm

#

Actually I guess I could do some magic

rancid tinsel
#

maybe create one and copy paste

loud flint
#

Yeah will have to tweak the configs a bit to allow <insertLib> entrypoint as well but good starting point, ty

ashen aspen
rancid tinsel
ashen aspen
#

That’s a pretty nice addition to an item parser/renderer, basically being able to create trade links next to rendered items

wet forum
rancid tinsel
#

just trying to make some sense of the search

ashen aspen
#

Which is pretty much what I’m working on right now. I might implement something similar myself

rancid tinsel
#

nice

loud flint
# wet forum So you want a web component?

Yeah but web components feels... awkward to use, so yes the baseline implementation will probably be something like:

web components for the basic parts
lightweight framework wrappers to render the web component and/or do extra logic

rancid tinsel
#

I'm trying to build a tool to suggest a price, but without a public api, it's not gonna happen

ashen aspen
#

Sounds like a very hard problem to solve given that price is meta and supply/demand dependent

rancid tinsel
#

yep

wet forum
#

that way you author in a nicer api, and just consume it whereever

loud flint
#

Oh nice

#

Svelte is not the "main" output tho, basically all the entrypoints will be

my-library/react
my-library/svelte
my-library/solid

etc.

Thus the idea of web components behind it all with a thin wrapper on top

#

Which basically will just be a shell component using the underlying web component

#

Got the builder working so now I'm just migrating my old code to the new repo

loud flint
#

I also need to implement all properties that the parser now supports

#

After that I'll push Svelte and Solid entrypoints

lunar crypt
#

see svelte -> happy

#

no one even cares about react pepeLaugh

scarlet ruin
# loud flint After that I'll push Svelte and Solid entrypoints

don't make it too hard on yourself. Unless your main goal is to learn how other frameworks work. A plain vanilla js library (with or without web components) would suffice in my opinion. Anyone who needs a specific version for their framework should be able to write a wrapper, depending on the complexity of your lib of course. Personally i prefer to integrate a JS library even if the author offers a specific implementation for my platform. That way i don't have to worry about framework version collisions and don't have to wait for the author to bump the framework versions that prevent me from updating my project. Second, i can control the integration part and do it in the most idiomatic way I think is appropriate for my platform or project.

clever hornet
#

so suggestion to the devs for the mercs can we get an auto cast for the skills instead of having to switch ammo then fire id rather use the skills in my binds then have to basic every time

#

sorry if im in the wrong chat here

grave wren
dense shore
#

I swear ppl just see the word DEV with some blinking rgb colors and full send it, on side note has there been any news of further pob release delays?

strong jacinth
# dense shore I swear ppl just see the word **DEV** with some blinking rgb colors and full sen...

Sorry for not being able to get the release out yesterday. I wasn’t able to finish it before I went to sleep and I’m spending my birthday today with family so release will 100% be tomorrow

I’ll release it after the PoE 2 patch is out so it’ll include all the game data from that

dense shore
#

Neat, I dont have twitter and trying to see ppl's pages without account is practically impossible

#

Like this is what I see without an account, gl trying to find latest posts when they are in random order with backlog of last 5 years

#

but should we wish him happy birthday marauderthinking

strong jacinth
grave wren
#

Link to the post worked for me without an account you just don't see comments or multi message posts completely

tiny cargo
#

https://status.d420.de/
Nitter (Alternative front end for twitter) took quite a heavy hit but some instances still work

loud flint
ashen aspen
strong jacinth
#

Holy, that's pog

wind garden
#

ruh roh

worthy cape
#

Is that the Spell Echo I hear so much about?

wind garden
#

lol

#

someone used spell echo on the website

#

this wasn't here before was it?

strong jacinth
wind garden
#

but we don't have crucible in poe2

#

or is that a spoiler for upcoming content

ashen aspen
wind garden
#

I tried refreshing with shift+f5

#

check here, how does it look for you?

ashen aspen
wind garden
#

well shoot

#

what the heck

ashen aspen
#

clear local storage

wind garden
#

guess I'll delete my browser cache

#

ya

compact isle
#

removed the front-end stripping in favour of backend stripping because it was causing issues for some people with πŸ₯”-devices

wind garden
#

still there after clearing my local storage/cache

strong jacinth
#

This is what i see on my phone

wind garden
#

I'm using brave

#

let me try chrome

compact isle
#

hm this probably means the you're local CDN edge didn't clear...

ashen aspen
#

poggies

wind garden
#

wow, it works in chrome

#

but not in b rave

#

that's surprising

#

and it USED to work in brave

compact isle
#

I purged caches again, maybe hit the clear cache button on the website in brave and see if it works now

strong jacinth
wind garden
#

probably, i'm likely just blind and never noticed

#

any of you guys use brave that could try?

hushed relic
#

not usre if it was brought up, the new tablet is called "Overseer Precursor Tablet", not "Overseer's" as mentioned in changelog

#

might be useful for someone

strong jacinth
wind garden
#

alright, thanks for trying

#

I'll see what I can figure out. idk if there's any other cache I haven't cleared yet

#

but seems to be local issue

#

maybe claude can help me πŸ™‚

ashen aspen
wind garden
#

pog?

#

sounds like a wicked trade opportunity

strong jacinth
#

Lol unavailable stat

#

Rip

wind garden
strong jacinth
wind garden
#

so so much

#

I've been developing an angular app in electron recently. It's so strange and different than all the C# development I've done up unti this point.

wind garden
#

as in the mods are now correctly searchable?

#

or you can no longer access them at all?

#

seems the former

worthy cape
#

Their search link showed the stat properly when I clicked it at around five past.

#

@ashen aspen How did you find the stat in the first place?

ashen aspen
#

how did i find it without it being the the ui list?

#

i noticed the mod was now hoverable (showing mod level and range), which i knew it wasn't before. so i just right click inspect element on the mod line and the mod id (explicit.stat_3991877392) was right there in the html (even when it wasn't on the data/stats endpoint yet)

compact isle
#

definitely seems like something isn't uncaching right

#

but yeah this patch should have solutions for all of the problematic jewel mods

ashen aspen
# ashen aspen poggies

when i took this screenshot, the mod definitely wasn't in there, cause i specifically searched for it

#

but obviously other changes where in there already, hence the screenshot

hushed relic
#

Something is wrong with Playstation filters

compact isle
#

the data endpoints are cached separately

hushed relic
#

SOME get it to work

#

but we have so many people complaining, filters just don't load or don't do anything for them

#

may be a caching issue, idk

strong jacinth
#

I've read that some have restarted their consoles and it worked after that

daring moss
# compact isle removed the front-end stripping in favour of backend stripping because it was ca...

Interesting. I'm using a Ryzen 5 3600 together with an RX 6700 XT (not potato I would argue) and had massive performance issues with the mod search in the past. It was somewhat better in Chrome vs. Firefox which I usually use and I always just assumed it is another one of those problems I have that nobody else has ever experienced (my tech seems to hate me in general). It feels like this change make it a lot more performant for me.

worthy cape
#

I'd relate to my search experience but I don't think I've ever traded in PoE2 yet πŸ˜„

loud flint
#

hi zao big fan

acoustic gust
#

Did anyone figure out how the radius jewel trade hashes are calculated?

velvet fog
#

Which jewel?

acoustic gust
#

The rare mods

#

They both use the stat "cold_damage_+%" the only difference is the radius mod has a different tag in mods dat file.

velvet fog
acoustic gust
#

That just seems to build the trade query based off the returned json data. Which isn't helpfully for computing it directly from the GGPK data. I am referring to something like this. #tooldev-general message

velvet fog
#

I also hope someone can solve the following hash algorithm too
WzI1LDE0LHsiZiI6IjJESXRlbXMvR2Vtcy9TdXBwb3J0L0VsZW1lbnRhbEJ1cnN0U3VwcG9ydEdlbSIsInciOjEsImgiOjEsInNjYWxlIjoxfV0/717e468ab8/ElementalBurstSupportGem.png

calm adder
#

But quite clever by @compact isle or whoever did it this way at GGG.

#

This doesn't work for the Passive Skills in Radius also grant mods as @acoustic gust mentioned - the reason is that, similar to my message here:

#

.

#

The stat that gets added to the passive skill isn't the only stat that is hashed

#

There are two stats specific to these mods that are relevant:

#

local_jewel_mod_stats_added_to_small_passives and local_jewel_mod_stats_added_to_notable_passives.

#

Let's look at an example.

acoustic gust
#

Ahh I didn't see them makes sense thats how it works.

calm adder
#
{
  "id": "explicit.stat_3669820740",
  "text": "Notable Passive Skills in Radius also grant #% of Damage taken Recouped as Life",
  "type": "explicit"
}
#

The "trade hash" in this example is 3669820740.

#

To get to that value we need to first find the stat for #% of Damage taken Recouped as Life.

#

That is damage_taken_goes_to_life_over_4_seconds_% (I found this by looking through the mods the jewel can have at poedb and then searched for the according stat in stats.datc64).
The HASH32 of damage_taken_goes_to_life_over_4_seconds_% is 3225429806. (this can also be calculated manually by doing MurmurHash2(damage_taken_goes_to_life_over_4_seconds_%, 0xC58F1A7B)).

#

Then we need the stat local_jewel_mod_stats_added_to_notable_passives and it's HASH32 which is 1950420994.

#

This can also be calculated manually the same way as damage_taken_goes_to_life_over_4_seconds_%.

#

And now - similar to my post here.

#

We concatenate the uint32 representation of those hashes and then hash it using the "trade seed":

#

Which gives us:

#

, the value used in explicit.stat_3669820740.

acoustic gust
#

Thanks for figuring that out.

calm adder
#

this works the same way with small passive skills in radius ... just using this stat instead: local_jewel_mod_stats_added_to_small_passives and it's corresponding HASH32 1498395485.

calm adder
calm adder
#

This is everything at once/tl;dr:

public static void Main(string[] arguments)
{
    uint clientSeed = 0xC58F1A7B;
    uint tradeSeed = 0x02312233;

    uint damageTakenRecoupedAsLifeStatHash = MurmurHashAlgorithm.ComputeMurmurHash2(Encoding.ASCII.GetBytes("damage_taken_goes_to_life_over_4_seconds_%"), clientSeed);
    uint passiveSkillStatHash = MurmurHashAlgorithm.ComputeMurmurHash2(Encoding.ASCII.GetBytes("local_jewel_mod_stats_added_to_notable_passives"), clientSeed);

    byte[] value = [];

    value = value
        .Concat(BitConverter.GetBytes(damageTakenRecoupedAsLifeStatHash))
        .Concat(BitConverter.GetBytes(passiveSkillStatHash))
        .ToArray();

    uint tradeHash = MurmurHashAlgorithm.ComputeMurmurHash2(value, tradeSeed);

    Console.WriteLine(tradeHash);

    Console.WriteLine("Press any key to exit.");
    Console.ReadKey();
}
vivid inlet
#

i wonder how do they handle hash collisions

calm adder
#

see this message for source

carmine merlin
#

I always wondered why mods had random underscores after them

vivid inlet
calm adder
#

I think GGG only adds underscores to values that would have had a hash collision without

#

so the stats/ids without underscores simply don't currently have a collision I suppose

carmine merlin
#

Seems that way. I think I remember seeing mods with 2 or 3 underscores on them at one point

calm adder
#

for example πŸ˜‚

vivid inlet
#

nice πŸ˜ƒ

carmine merlin
#

I wonder if someone is adding those underscores or if they have a script that just keeps adding them until it doesn't find a collision

foggy stag
velvet fog
#

I have always wondered why there is underscore, and finally there is an answer

hard river
#

@carmine merlin , Will PoB be just updating through the normal updater built in or is PoB for PoE2 going to be a seperate branch / installer?

oak estuary
#

Separate installer

carmine merlin
#

Going to be out very soon

calm adder
#

Big thanks to you and the collaborators for the hard work!

honest coral
#

Stalin collaborators

somber sail
# carmine merlin Going to be out very soon

I’ve lurked into the repo and saw that there was an attempt to rewrite this in different tech - is this still somewhere on the roadmap or not?

In case it is, I am happy to help from every aspect of it

carmine merlin
#

Rewrite in go is the current approach some people are taking

somber sail
neon heath
#

is there a third-party application in PoE 2 or PoE 1 where you can see the metrics of sales at the auction of certain items? As an example, I send a similar implementation in WoW (wowpricehub)

and how difficult is it to implement this for PoE2 if I am a developer?

honest pine
#

economy tab on poe.ninja for poe1

#

not sure about poe2 as of yet

wind garden
#

very difficult for poe2 since there's no api yet. There are a few similar tools in development right now but I believe they use fetch APIs which are not officially supported.

#

poe.ninja did this for poe1 but I don't think it had any certain way of knowing what items were "sold", only inferred based on when they were unlisted.

carmine merlin
somber mortar
#

great work!!

wind garden
#

oh shoot, i just realized it's saturday in NZ

#

novynn's not coming online to restart live search

#

sadge

honest coral
#

assuming we will need to manually add a modifier for demonform stacks?

#

ie inc. spell damage

clever saddle
#

Any way to create a character URL to import to PoB2?

loud flint
clever saddle
oak estuary
#

Look 2 inches above that screenshot

stoic grove
#

PoE2 characters aren't even shown on the characters page under one's account yet, right? So presumably they'd have to do that first/too.

loud flint
#

last time i help someone

fierce rose
#

Are there docs for the poe2 api? πŸ€”

loud flint
#

There is no PoE 2 API

honest coral
wraith jasper
#

Anyone else getting this?
As soon as you allocate Loyal Hellhound?

vestal lotus
#

anyone know of a greasemonkey script/ahk script/chrome extension that supports copy pasting poe2 trade site items to get the item text (suitable for import to PoB)

#

a copy paste button seems not implemented on the poe2 trade site, but it is on poe1 trade site

#

I have the workaround of hitting the "direct whisper" button and then ctrl + c the item link ingame after the whisper occurs but i think people will hate me whispering them when all i want is to copy their item to PoB

hearty zodiac
#

What am i doing wrong?

#

nvm, i see the applications are disabled

loud flint
#

think i found the issue kekW

gloomy palm
#

Am I the only one that can't seem to clone PoB2?

lone ingot
#

general question for github action release pipelines + changelogs - anyone used anything in the past that they recommend? Ive used conventional commits + release-please in the past but wondering if anyone else has seen (or ideally used) other stuff in the wild

lone ingot
worthy cape
gloomy palm
lone ingot
carmine merlin
#

Yeah nothing we can do. We contacted support so have to wait

lone ingot
#

maybe GH has preventative measures in place for high traffic repos that have just gone from public to private

#

or sorry, opposite, private to public

#

or maybe it's just classic distributed system issues, who knows

carmine merlin
#

Maybe yeah. Not sure who got the email though as there’s 3 of us

foggy wind
#

Hey guys, I am a .net dev and I was just sitting here playing on Xbox wishing I had something like the price check overlays for PC and I was thinking I could probably make a cross platform mobile app with MAUI pretty quickly to handle the OCR from camera, from the TV (I gotta test but it should work I have no issue scanning a QR off the screen for sign in’s etc..). I figured this was the best place to ask. Which of the price checkers for Poe2 on GitHub use OCR/Screenshots and is there a β€œfavorite”. The idea is to use the phone/tablet to scan the item and then pass the screenshot/data to the original app I.e bypass the direct screenshot and use the device camera. Then we can price check on console without manually typing in the attributes.

With blazor/maui hybrid I can probably re-use one people are familiar with and just make it open in app instead of an overlay and reuse all the parts I can.

lone ingot
#

I dont know if the pricing data would be available in anyway for xbox, ps, etc. anyone know if there was APIs for trade in poe1?

ashen aspen
#

Can’t you just list an item for trade, look up your own item on the trade site, and then use that as a base for a new trade search?

#

Sounds more reliable than some ocr stuff, although more convoluted

worthy cape
#

I don't think tools use OCR if they can avoid it - historically only really APT cared to try it and that was in very constrained scenarios like transfigured gems and other heist rewards; where Ctrl-C wasn't available.

honest coral
#

this is a crazy intuitive thing to be included... very nice job. dunno if you could see a visualization of aoe before in pob for poe1 but just noticing now, and its great for visualizing my hexblast/despair aura aoe radius

worthy cape
#

Yeah, it's been in there since forever, a bit sneaky.

zenith zodiac
zenith zodiac
foggy wind
#

Well I guess those of us on console will have to suffer, type in the specs of the item on the site, or use a computer for selling stuff.. was an idea though. Thanks for the replies!

#

Would be amazing if Poe gave us a way to stream the drops for your character, or even just what you pick up, from the site.

#

Ggg^

zenith zodiac
foggy wind
proven cradle
#

Asking around no luck

#

It says weapon swap comboes isnt implemented but the points are

honest coral
#

probly better off manually doing it tbh

honest pine
rocky bobcat
#

general question for github action

gilded tree
ashen aspen
#

could build something around that..

proven cradle
foggy stag
#

Is it possible to get boss names from the client data? I'm making a tracker that scans events in client.txt for deaths, level up and so forth. The Executioner talks and that is logged, so was curious if I could extract a list of boss names

I tried browsing PoE data viewer from snosme, but have not found anything yet

hazy fiber
#

the boss names are in there, with all the other monsters, so no you have to make your own list of bosses

foggy stag
hazy fiber
#

I havnt looked at the poe2 tables but I assume MonsterVarieties should still have every monster type in it, but again, thats not going to help you figure out which are bosses and which arnt

foggy stag
#

Hmm, may or may not be relevant boss indicators πŸ€”

#

As well as the boss healthbar πŸ€”

calm adder
foggy stag
#

Sadly I can only define colum names in the config for the cli right now

lone ingot
#

the keys are based on shared schema. possible we could just name the keys unknown_1, unknown_2

#

maybe base it on the length or something, not sure

#

but yeah if you want to hack it, pull the llib and point it to your own schema for now

twin grail
lyric umbra
#

has there been any cases where a piece of software written to compliment the game was technically not completely in line with the ToS but got GGG's approval anyway?

#

have they even approved any third party software?

frank drift
#

no

#

they do not "approve" anything

lone ingot
#

sending inputs to the game has always been a somewhat grey area, just recently I was trying to find the basis for "1 user input to 1 sever side action" but couldnt dig it up

lyric umbra
#

i mean the general rule of thumb is to just not be a dumbass I suppose, if it feels wrong it probably is and I respect it

lone ingot
#

yeah I mean, dont cheat, dont read game memory, dont abuse the servers, etc

#

be respectful to the software others have made and be respectful to the infra which costs a lot of $$ if misused

lyric umbra
#

but there are certain cases of tools that I've seen floating around that technically break the ToS in more than one way but don't actually provide the user with any advantages other than being able to just play the game at a higher framerate than 5

#

I wish some of that got approved, or rather make these options available ingame

lone ingot
#

if it's for graphical stuff, I doubt GGG ever changes their stance on lower quality graphic settings

#

they want their game to be recognisable

lyric umbra
#

I suppose that's fair. I'll just continue complaining about the performance instead then πŸ˜›

trail chasm
#

If im using POB2 to search the market for items, would I prioritize full DPS, Combined DPS, or Hit DPS for ice strike monk? I'm kinda confused on the difference between the 3

indigo urchin
#

fulldps = everything you include in fulldps (marked so in skills) - this can combine different skills
combined dps = the damage you deal by hitting + any ignite/poison/other damage source applied by your skill
hit dps = dps from hits excluding other sources

#

i THINK

trail chasm
#

so just to make sure hit dps would also include things like elemental damage, crit chance, attack speed, etc.

indigo urchin
#

i believe so

trail chasm
#

in reference to a quarterstaff

indigo urchin
#

just not ignite if you deal a bunch of fire dmg

trail chasm
#

ah that makes sense, it was pretty confusing. Thanks man

indigo urchin
#

someone will correct me if im wrong but that's what ive gathered from using pob in the past

sand thicket
#

hi, i was wondering if there was some official record of individiual trades that i could access

loud flint
#

cdr is green feelsgood

compact wigeon
#

It's a good colour for them

twin grail
frank drift
floral marten
#

anyone know in witch stat description is this stat?, in game only have one stat, so i'm not sure if this intended or if the stat description is missing, any advice?

oak estuary
#

Apparently that stat works in-game, mechanically, but doesn't have a description. Didn't know that was possible

crisp kestrel
#

Item Class: Quarterstaves
Rarity: Rare
Wrath Cry
Expert Crescent Quarterstaff

[Physical] Damage: 175-361 (augmented)
Lightning Damage: 2-132 (augmented)
[Critical|Critical Hit] Chance: 12.31% (augmented)
Attacks per Second: 1.85 (augmented)

Requirements:
Level: 72 (unmet)
[Dexterity|Dex]: 150 (unmet)
[Intelligence|Int]: 59 (unmet)

Sockets: S S

Item Level: 78

40% increased [Physical] Damage (rune)

152% increased [Physical] Damage
Adds 2 to 132 [Lightning|Lightning] Damage
+157 to [Accuracy|Accuracy] Rating
+2.31% to [Critical|Critical Hit] Chance
23% increased [Attack] Speed
+15 to [Intelligence|Intelligence]

Wait, what do these square brackets mean?

daring moss
#

unfortunately the section about server side actions does not come with a source

crisp kestrel
#

then i asked him to CTRL+C by himself. He got no square brackers output

#

πŸ”

loud flint
#

I think it's specifically for when people link you in chat, not sure exactly what it's used for

#

Wouldn't be surprised if it might be some localization stuff

daring moss
#

My guess would've been those help tooltips

loud flint
#

Oh yeah true

carmine merlin
#

Yep it is the help tooltips

loud flint
#

Forgot about those

carmine merlin
#

We strip them all when you add items to PoB

loud flint
#

Yeah I had to write logic in my parser to strip them as well

crisp kestrel
#

πŸ‘Œ

#

Creating a program to quickly check, is it worth it to qual20% + put runes into weapon candidate for upgrade. Maybe this is too silly for trade league, i dunno. I play ssf now

#

"CTRL+C"

crisp kestrel
#

next step is to create ui with popup window

loud flint
#

If you don't feel like writing all the edge cases I made an item parser that should output the data you need! There's a ton of edge cases already

#

Although seems like you're using Python or Rust?

crisp kestrel
#

Rust

loud flint
#

Time to write a full fledged Rust port? NODDERS

daring moss
#

Kinda surprised you're actually parsing fully "manually"

#

Instead of using something like nom

loud flint
#

Pls fix

worthy cape
#

You mean the auction hou...

loud flint
#

Also, to not meme for once, would it make sense to have a #755139879305871360-announcement channel where things like the above could be posted?

lone ingot
#

also registrations open just in time for me to start on the new features, woo

oak estuary
somber mortar
#

What options do i have about sites hosting download pages for ee2? I am currently only hosting a download page at my github pages site, and for some reason it didn't cross my mind to buy the exiledexchange2.com domain. I just saw a reddit post about it, and there appears to be a download page there. It doesn't appear to be malicious right now but I'm not sure what I should do about this.

strong jacinth
#

Looks like someone registered the domain 2 weeks ago

#

But a scan shows no detections

worthy cape
somber mortar
#

yeah i'm filling out a contact form to cloudflare domains right now

strong jacinth
#

Almost sounds like someone is trying to host the download to potentially take credit for your hard work.

somber mortar
#

tbh I'm less worried about that, and rather more just that it could be switched to link to malicious files

frank drift
#

fortunately most likely just someone trying to skim ad revenue

loud flint
#

Not sure Cloudflare Domains will do anything sadly

somber mortar
#

yeah, I think this one isn't the cloudflare domain like registrar service, but the one to contact the owner of the domain

loud flint
#

Ah right gotcha

#

So you're basically trying to reach them to ask them to kindly not?

strong jacinth
somber mortar
strong jacinth
#

@somber mortar not sure if it's something you want to do or not, but maybe post on reddit encouraging people to download it from github instead of that .com website?

loud flint
#

Hopefully you manage to reach them tho, and that they don't have any bad intentions 🀞

somber mortar
#

That probably wouldn't be a bad idea, I'll go spin up a reddit account then since I nuked mine after the third party app thing

crisp kestrel
#

I just needed to grab a couple of things, so I didn’t even think about nom and friends honestly

worthy cape
#

I've tried using nom every now and then when I mined in Rust.
Every time - they completely re-imagined the library with most examples/docs/guides around it being either inapplicable or barebones.

#

Back then it was fairly OK albeit a bit cumbersome to write binary parsers for larger file formats in it, but you had to thread quite a bit of parsing state around.

#

I think that every parser I've written in Rust or C++ has had a different parsing paradigm inside, sometimes because the formats vary but sometimes just as part of finding a good abstraction.

daring moss
#

Interesting. To be fair, I've only done very rudimentary things with it but I assumed it would be somewhat mature given it is "just" a parser combinator library

worthy cape
#

Back when I was using it, there would be a new major version every time I got back to Rust.

daring moss
#

Most of my experience with this style of parsing comes from Haskell and Parsec

worthy cape
#

The curse of using crates where they're still finding their footing on what they want to be.

#

Parsec in Haskell was nice as you had a lot of the implicit state lifting done for you with transformers.

daring moss
#

Sounds painful

worthy cape
#

Until when you make a mistake and your parse just vanishes into thin air and you have absolutely no idea where you went wrong.

daring moss
#

I think AttoParsec solved some of that?

#

Might've been a different one

#

There was one parsec alternative with extremely good documentation

worthy cape
#

Probably. Been well over a decade since I last touched the ecosystem.

daring moss
dense shore
loud flint
#

Pins are less visible imo

carmine merlin
#

Yeah a channel called tooldev-announcements would be helpful. Just make it so only GGG peeps can post in there

#

or a select group of other people too but I assume it'd be 99% GGG web dev posts in there

modest path
#

Re: rust parsers, winnow is pretty ok for text stuff. For binary I found it to be horrible and used the bytes package which is great other than not being seekable

somber mortar
sour cosmos
#

Where can I find guides for loot filters with all available data?

hexed mesa
#

if you are asking about basetypes and whatnot, use poedb i guess

sour cosmos
lone ingot
#

you can give chromatic a go to explore it interactively if you want, it has a preview of the rule in text @sour cosmos

sour cosmos
lone ingot
#

@modest path check DMs, not sure if you have them filtered or not

wind garden
#

@compact isleyou had mentioned the cause of live search's current problems (about 1/10 changes actually make it to the browser) being server capacity related. Is there a priority to increase that capacity in the near future?

swift thorn
#

Guys, is there a way to access internal trade API? I'm doing a filter through the browser with JavaScript, but it feels rudimentary

inland kestrel
#

My question is, if trade2/search returns has more than 100 results but only 100 result hashes are provided, how can I get the rest of the results (i.e., the next page of results)?

worthy cape
inland kestrel
#

and I'm not talking about the 10000+ matches limit

#

Well, if I wanted to search the items I have publicly listed (and say there are 972 results)... is there a clever way to enumerate all of the items?

buoyant ridge
#

Hey, I'm wondering what sorts of functions you're allowed to automate without breaking ToS- Specifically considering a mass reforging macro for waystones

#

Does anyone know if having something like that take control of your character would be acceptable?

#

Obviously not going to bother making it if not

inland kestrel
#

"sort":{"indexed":"desc"} would work if pagination exists. I'm not sure of another way to eventually enumerate all though

worthy cape
buoyant ridge
#

I see

swift thorn
#

Do we have means to read stuff from PoE2? Is there any docs somewhere that I can read up?

worthy cape
#

The applications fall under the same restrictions, built on top of the same ToU.

inland kestrel
swift thorn
worthy cape
#

The APIs that the developer docs describe are the "proper" ones that are available through OAuth scopes. The trade and website APIs are more for internal function.

swift thorn
#

I'm really sorry for asking this here, but simple Google researched didn't helped me much

swift thorn
#

Thank you

buoyant ridge
# worthy cape The developer docs covers how actions must be user-triggered, may not do differe...

Thank you!
Reading that, I have a question about this here clause
Would it be considered cycling between "different things" if it just shift clicked on items with each button press, but different ones?
I.e. something like: (in pseudocode)
When button pressed:
If reforger top full, shift-click reforger top
else If reforger bottom empty, shift-click lowest tier waystone that there are 3 of
else If reforger bottom empty, shift-click waystone of same tier as contained
else if reforger bottom full, (shift-)click on the reforge button

Bolded the section that I imagine might cause issues

worthy cape
buoyant ridge
#

Ah, well the last one kills it stone dead

#

I take it it's the same deal even if it's for private use rather than distributing to others?

worthy cape
#

Indeed.

buoyant ridge
#

Ah well, thanks for the quick answers!

clever thistle
inland kestrel
#

What do you mean? It sorts if the field has sortable values (as far as I've seen)

#

However, if you search is sorted by price and 100+ are all the same price then it seems random

compact isle
#

it's intentional that you only get 100 results. We don't want you scraping through the trade site to see your entire list of items...

inland kestrel
#

πŸ˜“ do you believe the stash api will be available before release? i'm assuming it's not a high priority

compact isle
#

for 1.0.0 release? Probably yeah

clever thistle
buoyant ridge
worthy cape
#

Not really, no.
It's been touched on in interviews in the past but it's the way it is, is essentially because the game should be playable on an even playing field. A player shouldn't feel a requirement to run mods or reach for assisting tools to order play the game.

buoyant ridge
#

Fair enough- I guess it's just things like this that are kind of mindless busywork with 0 risk

#

What about getting features integrated into the game?

worthy cape
#

There's an EA feedback forum and being in EA, more things are probably up for discussion than usual.

buoyant ridge
#

From experience with smaller games at least, it's sometimes easier to get things implemented if you make the thing first

#

though in this case I suppose it's trivial enough that that's probably redundant at best

#

Oh wait hold on

buoyant ridge
#

Human does the flowchart stuff, machine does the match-3

worthy cape
#

I didn't quite follow the flow, but you're essentially still doing different things in that there's logic picking the correct ingredient to insert.

buoyant ridge
#

Ah, even that is too much?

worthy cape
#

The kind of interactions that the docs intend are things like mapping a F5 press to "open chat, paste /hideout, hit Enter". A single deterministic action for an explicit user input.

#

One can attempt to refine the workflow until you have dedicated little operations for every single envisionable thing one might want to do, but it's still doing something that's not really in the spirit of it all.

modest path
worthy cape
#

These kinds of bulk quality-of-life ideas come up every now and then and while the thought is commendable, they don't belong in the ecosystem around the game.

modest path
buoyant ridge
worthy cape
buoyant ridge
#

Yeah, but the ratio of that to noise is uh

#

It's not good chief

modest path
#

I bet if y'all made two feedback forum pages - "Angry Feedback" and "Constructive Feedback" then banned anyone who cross-posted you could raise the SNR

buoyant ridge
modest path
#

Oo oo use AI for sentiment analysis so you can be on the trendy bandwagon and get 1.3 billion dollars of cash for it

#

Honestly feeding the entire feedback forum into an LLM and asking it for a summary of constructive, popular ideas would probably justify the hole it'd burn in the ozone layer for the anguish it would save versus reading it yourself

#

@charred lake assuming you are the same on github, I'm actively working on adding direct CDN fetching to poe_data_tools

buoyant ridge
modest path
#

Hmm, do the upstream bundles contain duplicate datc64 files in the translation dirs and existing tools just skip or remove them?

charred lake
modest path
#

I have it slurping files from cdn locally - need to figure out why poe2 bundle isn't parsing though

ashen aspen
#

@nova hamlet sorry for the ping, but would it be possible to enable the eimport parameter for coe with poe2? it is currently not working for poe2. although (looking at the js console) it seems that poe2 items get parsed, the items are not displayed in the ui. you can find test import-links here: https://gist.github.com/vimmode/a29c1b900fa3d108184454b4d36fe79d

zenith zodiac
modest path
#

Ahhh! That explains it; I'm currently testing with poe1 due to there being some issue in the index parsing for poe2

nova hamlet
modest path
#

@charred lake https://github.com/adamthedash/poe_data_tools/pull/1 - Initial pull; I'm going to keep going on top of this but just wanted to get incremental before I start making changes that might be in a direction you're not interested in. Current short list is

- Try to get nom errors sane (I'm better with winnow than nom, and I tend to use Bytes over either for binary parsing, but I'll try to fix it with nom somewhat before I change the parser lib out of frustration lol)
- Add some lib surface area meant to be used to easily get a file handle to any content from other crates, maybe document that
- Once some/all of those are done I'll fix up my start of a dat parser/analyzer and get that into a public crate```
Lmk if any of those seem awful or you're already chooching on 'em
#

Oh and I think there may be some sort of bug in the grouping where it's extracting the same files over and over but I'll burn that bridge when I get to it

clear gazelle
oak estuary
#

Nothing in PoE2. Your account name is missing the distinguisher value (#1234)

clear gazelle
#

yea tried with and without it - nothin - "You don't have permission to access this area."

oak estuary
#

Works fine for me, make sure you encode the # as %23

modest path
#

Anybody know the first_file_encode value of 12 in the bundle format?

#

Oh it's Bitknit

charred lake
wind garden
#

I'm seeing 200, 209, 210, 210, 210, 200, 200..., 203, 205, 205, 208, 208

#

actually, it looks like sorting is working fine except for that 209, and the 210s at the start.

#

people find a way to elevate their listings?

worthy cape
#

I believe historically when currency ratios were updated there could be some smear over time as they applied, maybe that's what's happening here?

lone ingot
#

could also be the infra just struggling to keep up with the amount of things being indexed shrugR

wind garden
#

looking at the listing json, there's nothing that seems to correlate with them such as status or listing time

lone ingot
#

judging from that one search, it looks like it's happening based on windows of time. is a service restarting/crashing in that window?

#

more a question for GGG, I'm just making a wild guess based on the steady pace of getting my session invaliated on the trade website πŸ˜›

#

looking at offline goes against that assumption

wind garden
#

all the out of order listings appear to be before 22:06, while everything after that point is in order, 22:47 and beyond

compact isle
#

updating currency ratios takes time, and you'll see weird results until it completes

wind garden
#

ah, that makes sense

#

I should have remember this is a side effect. Pretty sure it's happened before now that I think of it.

modest path
#

Your parser is working, so I'll probably skip the error mucking and head towards getting it usable as a lib

wind garden
#

@compact isle sometimes when a livesearch result pops and you whisper the person but they're offline. Is that because the result was delayed, or is there something else going on?

compact isle
#

probably, it doesn't check if they're online or not when processing

loud flint
somber mortar
supple kernel
#

is pinging tool creators here okey?

#

I wanted to ask the creator of poe2db or craftofexile2 about weights. Is this somthing GGG releases through an API? or do people datamine it? cuz for poe 1 we know the weights. But for poe 2 we dont.

somber mortar
velvet fog
#

Weight information cannot be obtained in poe2 data files

supple kernel
#

oh ok, and in poe 1 the weights where in the data files?

velvet fog
#

mods.datc64

supple kernel
#

Do you think this is philopshy change with GGG?

velvet fog
#

we know nothing

#

coe2 use trade bias as weight

supple kernel
#

Alright, thanks for your answer. Hopefully we get the weightings :)

carmine merlin
dense shore
#

I'm positively surprised this channel didnt get flooded with nonsense just now

ashen aspen
somber mortar
#

yeah that may have been it! I think I'm probably going to use petter's for the hover tooltips once vue gets added as a framework, but for the copy an image to share, like instead of screenshotting, this may have been the one I heard about

ashen aspen
#

yea, i got a discord bot going that does that, which is what i wrote this for as you can't display html stuff in discord..

#

but oh, that would also be a kind of neat idea for ee2.. copy a bitmap screenshot to clipboard on hotkey or something

somber mortar
#

yep that's the thought! It would probably go into the "item-check" part of the code, I just have no idea how images are stored on the clipboard so I would need to figure that out.

ashen aspen
somber mortar
#

awesome! I'll 100% get around to it if it is that easy!

quiet finch
#

anyone know where in the game files I can find the keyword descriptions? Like when you mouse over a dotted underlined word in a tooltip and a new tooltip is shown for that keyword.

frank drift
lone ingot
wind garden
#

@carmine merlin does pob2 have the ability to select the campaign rewards yet? (ie. chaos res, all attributes, etc) Not sure if it isn't implemented or I'm blind.

worthy cape
#

Very sneaky on the right hand side:

wind garden
#

thank you

worthy cape
#

Also eew, the production font rendering looks so weird to me now.

wind garden
#

now if ggg would fix the bug in 'From Nothing' not counting attribtues in range, my attribute numbers would match pob πŸ™‚

carmine merlin
worthy cape
#

Apart from the odd misalignment, they're the future to me.

vital locust
#

Today i accidentally equipped a sceptre which replaced the sceptre i was using that i just spent 3 divs on instead of taking the space that the sceptre i equipped in my inventory it completely dissapeared. It was not in my second equipment set or anywhere on the ground or in my stash. I spent alot of time finding those divs i spent and feel like giving up completely now can anyone help?

crisp kestrel
woeful mason
#

Im trying to install EE2 but im stuck at step6, i cant seem to locate apt-data anywhere in the appdata from the awakened-poe-trade directory. Any advice?

somber mortar
woeful mason
#

Oh I see, Do I skip to step7?

somber mortar
woeful mason
#

I see, thank you. Will try that now

#

All good sorted, thanks @somber mortar. Appreciate the quick assistance

rose gyro
median vessel
#

Anyone else using Exiled Exchange 2? I couldn't figure out why my FPS dropped to 99fps and wouldn't go above. I forgot to boot up EE2, game booted, 243fps. I opened EE2, dropped to 99.

Any ideas why that would limit the games Frames?

#

With it open

#

with it closed.

somber mortar
#

please open an issue for stuff like this probably

worthy cape
# median vessel Anyone else using Exiled Exchange 2? I couldn't figure out why my FPS dropped to...

Possibly, I ran into something similar back with PoE1. Any overlay that shows on top of the game like APT, the TFT list warning tool, and assumedly EE2 makes the game present frames with a different and slower method than it can when nothing is competing with it.
This can manifest as a lower frame rate but also stutters and a less smooth feeling even if the frame rate is there.
For APT I used a workaround by having it open the whole UI in a standalone web browser on my other display, one does that by adding --no-overlay to its program shortcut.

somber mortar
worthy cape
somber mortar
worthy cape
#

Note that OP's problem manifests even when not showing.

somber mortar
median vessel
median vessel
#

I’d imagine I’m not the only one running into this issue though

worthy cape
#

It's a tricky problem as it's Windows itself that has a fast path for GPU applications that it doesn't have to compose with anything else. When you get popups above the window or persistent transparent overlays like what you have here, it has to fall back into a less direct one.
I don't know if you can expose the option in the UI maybe to make it easier to do, or if it needs to be a command line option in order to set things up early enough in startup.

strong jacinth
worthy cape
#

Here for me:
Hardware: Independent Flip - PoE2 without EE2
Composed: Flip - with EE2

modest path
worthy cape
#

I reckon that Wayland still has the position that the prevention of input snooping is a safety feature, eh?

#

Or is it more of a composition problem?

modest path
#

@worthy cape It's possible to do overlays with wayland, I just don't think the lib EE2/Awakened POE Trade use has been ported over

#

I wouldn't be surprised if there's issues due to the wayland people thinking they own my computer though

#

Their default on disallowing programmatic clipboard access pisses me off - If you think it's insecure that's fine, but removing the ability to do it entirely is not reasonable. Make it have a perm or something

#

Fortunately sway actually supports that though

#

NOt 100% positive on overlays being possible but I remember reading something somewhere that made me think it was

daring moss
#

just use x11 /s

worthy cape
#

Simply invent and shepherd a protocol for it all.

modest path
#

I love mailing list flame wars

worthy cape
#

Most of this Wayland stuff is newfangled to me, I'm still quite solidly in X11 land.

modest path
#

@worthy cape So is reality

daring moss
#

iirc ee2 is a fork of apt, which was electron or something?

modest path
#

Wayland is a lot closer than it was a year ago, but it's rough

worthy cape
#

Looks neat for the happy path.

daring moss
#

would surprise me if it was anything but a full-screen window with a transparent background and allowing click-through

modest path
#

I considered looking into that a while back but my typescript/c++ are significantly worse than my rust which is worse than my golang, and I'm already shit at completing my own projects

frank drift
stoic depot
#

@somber mortar how hard is it to add pseudo mods using a weighted sum filter? would be super useful for total attributes and total resistances

frank drift
#

ultimately more detrimental than helpful

stoic depot
frank drift
stoic depot
#

oh, I see. and my guess it's not worth it to get log in functionality (even if just directly copying the cookie to settings)?

frank drift
#

I'm not sure log in even affects the initial query, but clearly not, since the fake psuedo mod feature got removed quickly

#

I'm just watching on the sideline, I'm sure kvan7 can speak to it better

stoic depot
#

Thanks for the info. I just constantly find myself going to the trade website with pseudo mod sums to check anything with stats/resists

crisp kestrel
supple kernel
#

where are these weighting comming from? very spesific numbers.

#

I belived weighting data wasnt obtainable for poe 2.

somber mortar
# stoic depot <@340233612064718851> how hard is it to add pseudo mods using a weighted sum fil...

yeah, this is already added, but as cdr mentioned it was removed due to causing way more errors for most people than it was worth. You can enable the fake pseudo for ele res in settings which only works if you are logged in, but even when logged in, we only have enough complexity for about 1 weighted sum. We can technically do 2, but for the purpose of trying to minimize errors, I only re-enabled the one for ele res, since that is the most common thing that greatly skews the price when you search by only explicit mods.

somber mortar
somber mortar
#

As far as I can tell and guess overall, the main thing is real pseudo mods are most likely calculated when you list an item, ei the trade site adds your item to some database and then fills in some extra columns with calculated pseudo mods at that time. Then when you search a pseudo on the trade site, it just checks another column so there is nearly no cost to it.

What fake pseudo does, in contrast is build an incredibly large SQL statement(or whatever db is used) that is much more complicated than the normal SELECT query. Since this is a runtime cost, its not really feasible to expect this to be allowed when not logged in. I do hope we get real pseudos soon, but since I'm guessing it would take a database schema change, it may be waiting until next league unfortunately.

foggy stag
#

Is there any way to detect what character is currently being played? i'm tracking events in Client.txt and untill your character dies or levels up I have no idea what character you are playing πŸ˜›

oak estuary
foggy stag
#

Dang it, okay :/

frank drift
#

also those are relative weights only for the level of the skill or spirit or support gem, after the game has already decided to drop one

#

it does tell you the lowest loot level a particular level can drop though (at 1 weight or ~0.4% of the available levels) and what loot level has the best odds

mental wyvern
#

Are skills always capped to lvl 20? In the data I can see entries up to lvl 40

frank drift
#

the uncut gems themselves only drop up to level 20, and I only recall through 20 being in the file

#

even if higher existed, iirc you would need loot level 87 for a weight 1 level 21 uncut gem if they existed, which is not achievable

#

can you boost the level of gems much higher through +level effects, well, of course you can

mental wyvern
#

The repoe repo has data where skills have mana cost and stats until lvl 40

mental wyvern
frank drift
mental wyvern
#

Ah

#

Interesting

#

So much work for things that might never happen in the data

#

Mirin the effort

oak estuary
#

In PoE1 you could get above 30 for several skills. The stats for each level are just determined by a function, so adding a handful more levels to the curve isn't that much effort

frank drift
#

you can get pretty close to 40 in poe2 afaik

carmine merlin
#

You can hit 40 with ancestor totems too. I think I saw someone get to 41 with it but it just scales down to 40

modest path
#

Anybody have some notes on the changes between .dat, .dat64, and .datc64?

woven pelican
#

are there any open source tools that let you embed the poe2 passive skill tree in your own site?

velvet fog
#

Which field determines the background image of BuffDefinitions?

#

.dat: 4 bytes key size
.dat64: 8 bytes key size
.datc64: same as .dat64

worthy cape
modest path
#

There was one .dat64 in poe2 previously but I don't see it now; only a couple .dat and the rest .datc64 now, eh

#

I'm going to assume that the etag on the cdn bundle files is hash based and not mtime or whatever given they don't seem to change for unchanged bundle files when a new patch comes out - if anyone knows that's the wrong assumption, please do let me know

clever thistle
#

.dahtdeez

modest path
#

GOT EEM

velvet fog
#

there was .dat64 and .datl64 (for mac), and merge into .datc64

modest path
#

wait maybe they are mtime but they're hardlinked or archive-copied?

#

the pre-dash portion of the etag has a bunch of duplication and are all in the same sort of range so it kinda screams timestamp or something

#

the post-dash portion is more random looking but not all that random looking

modest path
velvet fog
#

there is only 1 .dat right now, languages.dat

modest path
#

mat_table.dat is in 4.1.1.2 as well

velvet fog
modest path
#

it doesn't look like a dat inside though

velvet fog
#

_index.bin will store the file name, as well as the corresponding bundle file name and offset

modest path
#

Yeah, the bundle stuff is all working for getting the dat files out, I'm just trying to add a content-addressable store with smart caching for the bundle downloads and I'd be able to only download things that aren't already locally available if the etag is hash-based and I can figure out what it is

#

otherwise a CAS can only save storage bytes for bundles/files, not download bytes

#

The first part of the etag is def a unix timestamp in hex

#

so I'm guessing that's mtime

#

the rest appears to be non-zero-padded 3 byte something

#

oh it's an nginx etag, it's last modified + content-length in hex

zenith zodiac
errant coyote
supple kernel
#

ok thanks

mint karma
#

Nothing kills motivation like this. /rant

#

If only I haven't had a fulltime job and a pretty busy life!

worthy cape
frank drift
#

2 whole weeks oh no

mint karma
#

Actually been working on the backend as well, hopefully I'll have something during this week

carmine merlin
#

He had the ability to nicely ask but chose to be an ass

frank drift
#

define "game data repository"

worthy cape
#

Most data that the community has mined is from their own special interests and as significant effort goes into that, different groups have different data they expose and use.
It might help people answer if you clarify a bit what kind of data you seek.

frank drift
#

that doesn't really help me understand what you want

worthy cape
#

(I krangled the grammar on that, but I hope the gist comes through πŸ˜„ )

frank drift
#

if you just want to explore, you can browse the game data directly through eg SnosMe's DatViewer

#

certainly you can use what's in PoB also

modest path
carmine merlin
#

Don't rely on our data format to stay the exact same though, things will change and break without warning if you're automatically pulling data from us. Repoe is a better fit for you

worthy cape
frosty hull
#

@somber mortar I dont know if this was mentioned yet but can you add the fuctionality to select a Normal | Magic | Rare item for search. Specifically used for chancing bases that are worth a lot or Magic items that are worth a lot with 2 mods for people that want to GAMBA on them

fierce rose
#

Hope this is the right channel, but does anyone know if there's a way to manually change what a passive node does for adding Heroic Tragedy to POB?

carmine merlin
#

Not sure if anyone else from the community has info on it or if someone has figured it out and is hoarding it again

fierce rose
#

Is it something built into the game that y'all are trying to figure out or something that they have in open data somewhere?

foggy stag
oak estuary
fierce rose
#

oh no >.<

devout aurora
#

@exotic heron I have a questuin,.. i DL'ed that program that tells you the teir/value roll max and lim of the item and how much its worth all in all with the gear it was ID'ED FOR.. AWAKENED PoE Trade program... Does anyone know the button combo to load it: via, in game to see the stats and value

ebon oasis
charred lake
#

Myself and @modest path are working on some tooling to pull data like this out atm. Should have something to dump everything into csv files in the next couple days if that's what you're looking for?

oak estuary
#

This already exists as pathofpathing.com, FYI. Someone made a copy for PoE2 and posted it here a while back also

#

Most of the stuff you're talking about has already been built for PoE1, so there's a high chance a version exists for PoE2 also. Poe2db.tw is a common resource for game data, and craftofexile.com was the place to go for item mods and weightings, though weightings were removed in PoE2

modest path
#

@pseudo ocean Path of Pathing is not maintained because GGG hired the dev, but it's awesome and if it appeared for PoE2 I would rejoice

modest path
#

excitement

#

Unrelated: I had a bug in a benchmark and hit the poe2 version socket kinda aggressively for a bit until I realized that was the issue; If any ggg ops peeps noticed I'm sorry

crisp kestrel
soft ibex
#

Probably a silly question, is there official documentation for the API yet? If not does anyone know when this is likely to be released?

hexed mesa
#

probably before game release

swift thorn
#

is there a way to extract affixes tier information from somewhere besides of manually writing'em?

swift thorn
somber mortar
#

You should be able to I think? Using the dat viewer I don’t have the link since I’m on mobile right now

oak estuary
swift thorn
oak estuary
#

You can read the game files, same as PoE1, there just isn't an official web API for PoE2 yet

#

Both games are covered by the same policy

swift thorn
#

software name or guide would greatly help

#

just a thread so I can pull it >.<

#

I'm lost

zenith zodiac
swift thorn
oak estuary
swift thorn
#

appreciate the help guys

#

I was manually reading the trading site using json in order to extract information >.< felt like the wrong way to do haha

ashen aspen
swift thorn
#

thanks

calm adder
#

@swift thorn Here's how these xyz.stat_<HASH> hashes are made if you need that.

swift thorn
#

I'm currently accessing what it writes manually in the elements of the page, and parsing into useful information, and instead of requiring multiple searches (it only retrieves 10 by default if I use json from what I've seen), I just load it all through using the "load more" button through the api.

I know it's a brute force method, but seems that will be easier to mantain since the stats id's won't change. And I'll also write into the elements themselves further information such as how much the dps increases by adding an iron rune and what would be min and max reroll ranges for divine orbs

#

(I'm not a web developer, just bruteforcing my way through >.<)

#

I'm basically just grabing from the generated element structure and parsing instead of the bigbrain method of getting straight from the "db"

#

good thing that at least it's organized enough

compact wigeon
oak estuary
#

They correspond to the stats from the GGPK

velvet fog
#

It's stat position

charred lake
#

Hope this is useful to some people - most of the datc64 files for poe 2 exported as CSVs using Ivy's schema. Doesn't include ones where the schema failed

strong patio
#

https://mirrormarket.org/
This site seems to be taking prices from ingame exchange using ocr and script to change tabs (I can only assume). Just checking wether something like this is allowed or not...

frank drift
#

if it's all manual capture, that would be okay

#

but of course there's no way it's being collected without automation

strong patio
#

okay yeah thought as much.

strong jacinth
#

Don't think it's automated cause watching the exalt to div market I ain't seeing it move

frank drift
#

you mean they're lying about "every few minutes"?

#

because at a glance it does seem to be updating reasonably often

#

ah, it does seem to be only once a day...

#

but either they're breaking TOS or they're lying

strong jacinth
#

hard to tell without diving too deep into it, how does sites like orbwatch or poe2scout gather their data, I assume the same way?

strong patio
#

Well I can tell you πŸ˜† . Not the same way. We both purposefully steared clear of the ingame currency exchange as that was understood to be untouchable. Im not about to sit at my computer and click on different tabs every couple of minutes for OCR to scrape... Neither is who ever made mirrormarket

#

divine seems to be updating every 1 minute and a half. I respect the hustle but it feels slightly bad to see someone just so blatantly break the rules.

strong jacinth
#

oh yeah just seen it update then

#

for a good 10 mins though I didn't notice it move

#

for their sake I hope they aren't breaking TOS KEKW

strong patio
#

Watch divine. Since that price moves more frequently on the exchange its more obvious how often it updates.

#

Specifically inspect and look at the websocket connection.

ashen aspen
#

sounds like they have one instance of poe2 running for each currency item

frank drift
#

yikes

ashen aspen
#

ah no.. this is totally possible without user input and with just one character. you just create bogus orders that will never be fulfilled, keep the window open and OCR the exchance rate (which is updating)

loud flint
#

Yeah that's similar to what I did

#

The latter one

frank drift
ashen aspen
#

i mean, scraping data from the trade site is technically also against tos

#

but i don't have a horse in this race.. was just interested in how they do it.

modest path
#

So is account sharing but "elon" is still wrecking it

#

Kinda curious why I haven't seen anything about banning the people who temporalis exploited, either

ashen aspen
frank drift
#

completely false equivalence to an OCR bot

ashen aspen
#

i'm not talking about that, talking about automatically and regularily reading data from the trade site/api

#

(i.e. a bot)

frank drift
#

completely different

ashen aspen
#

oh well, i guess this can't be a constructive discussion.

frank drift
#

when you're trying to equate API use with OCR bots in the game client, yes, it can't be "productive"

modest path
#

I think the actual wording of the ToS is ambiguous in some places (e.g. what's the difference between reverse engineering dat files vs reverse engineering the binary with a debugger or ghidra), but in practice it's relatively well understood where the lines are

ashen aspen
ashen aspen
daring moss
#

on an unrelated note, I wonder how long that site is going to be around. Even if they got someone to pay for all the accounts and none of the characters ever got banned, that is still going to be a lot of compute they will need running 24/7 just to OCR some data

ashen aspen
#

hopefully we'll get an "auction house" api at some point :)

frank drift
#

hard to imagine the accounts wouldn't get banned eventually

daring moss
#

Personally I think running a permanent OCR tool isn't in breach of the terms of use tbh

#

like, isn't it exactly the same as having OBS up all the time and streaming your game? You're not interacting with the game at all

loud flint
#

It probably is, so mine was triggered by keybind

#

Just to be safe

daring moss
#

Fair

#

but, you could realistically have it streamed to a different machine where you do the OCR, and at that point nothing infringing is happening on the sysem that actually has the client running

#

and it'd all be about the user's intentions

ashen aspen
strong patio
daring moss
#

we don't have a trade API for poe2 at this point in time

#

no official one, that is

#

you could argue that making use of the endpoints used by the trade site is in breach of TOS

ashen aspen
#

i'm sorry, but how does that change what the tos says? :) i understand that tos is a legal document and the reality of things often look different and certain things are tolerated.

strong patio
#

the one the website uses is undocumented but available to other peoples usage

daring moss
#

what I've seen is GGG tolerating people using it to a certain extent

#

IMO the trade-site's API is to be looked at separate from the official API

strong patio
#

Algood. Every other tool uses the trade site api. If you guys want to go over the grey line into the black. Feel free (:

ashen aspen
#

we're just discussing stuff :)

strong patio
#

dude... your site just got "leaked" as well. oh no how inconvenient πŸ˜†.

#

Gotta respect it haha

ashen aspen
#

hah so now i'm the owner of ..

daring moss
#

Hm? Whose site?

ashen aspen
#

let me look up the name

#

sorry i just think it's an interesting topic

#

i don't plan on crossing any tos lines or something

strong patio
#

πŸ‘

daring moss
#

Does

Utilise any automated software or 'bots' in relation to your access or use of the Website, Materials or Services.
consider "looking at" as "in relation to your access or use of the services"?

#

and if it does, is that still true if you were to run OCR on a streamed video of the game?

strong patio
#

Who knows. Precedent has been set for the trade api being fair to use in other apps by awakaned trade from poe1. No precedent has been set for what mirrormarket is doing. Always has to be a first.

#

This is a nice piece of obfuscation but mirrormarket has more than 10 items listed. In talking to the dev early on he stated on reddit that he was going to automate the switching of the item. When promted that this was possibly against tos. He deleted his comment.

strong patio
#

πŸ˜‚

ashen aspen
#

that's my screenshot. i just tried to find out how they do it

strong patio
#

Yeah sorry ill bump your comment so thats clearer

daring moss
#

wasn't your comment along with that screenshot that it is easy to track multiple items because you can put up multiple orders?

ashen aspen
#

yea

daring moss
#

I don't see hst ever claiming to be the dev

ashen aspen
#

of corse. cause it is ? :)

strong patio
#

how many orders hst?

#

Could u service this way

ashen aspen
#

idk, you'd have to fill the window

#

am i arrested? this is kinda funny

#

people discussed how it's possible and i tried to figure it out

strong patio
#

Okay you guys are very clearly not actually looking for a discussion but just trolling. This conversation serves me little now.

daring moss
#

Huh?

ashen aspen
#

stop suspecting me of some weird poe crime without a basis lol

strong patio
#

Discuss amongst yourself (:

ashen aspen
daring moss
#

That's what I assumed

rose gyro
#

Interesting. I actually thought of manually taking screenshots of exchange rates on in-game exchange, and processing them with ocr afterwards; hadn't thought that would be against tos (no bot involved; you're doing nothing with the client,...)

#

(before i used poe2scout, when i was doing the tiering manually =p)

#

but do i understand it correctly that the guys from mirrormarket.org use a bot to click the different currencies?

strong jacinth
#

I think it's speculation at how they're doing it

#

They could be breaking ToS or they could be doing it legit

frank drift
#

it's not speculation if you read up

#

they're very clearly using a bot farm

strong jacinth
#

I haven't read up, been asleep KEKW

#

But if they are then I guess what can you do. Report it?

strong patio
#

It is interesting tho. In theory if ocr is allowed to be automated. U could do what they do with enough accounts completely legally. Just need 1 account per 10 items

frank drift
#

karma gets you eventually

strong patio
#

But they’re very clearly not doing it this way

#

Or maybe they are?

#

Impossible to say with certainty

strong patio
#

But it still hinges on wether ocr automation is allowed

rose gyro
#

aaah, right!

strong patio
#

My thoughts as well cdr

daring moss
#

Where are sites like poe2scout getting their data from, then? Or is that only trade-site data like ninja?

strong patio
#

I am the dev of poe2scout

#

ninja is built using the stash river

#

built my site using the same api that the trade site uses

strong jacinth
#

Is Trade up-to-date now? Cause i remember the ratio was off

strong patio
#

trade site has ratelimits in place. 30 requests in 300 seconds. My site runs a script every 6 hours that goes through all items and fetches the current list of items. Records the prices this way.

#

I guess in theory this might not be allowed either? But I think this is closer to a grey area than macroing the game client

#

By ratio do u mean the exalt to div ratio?

#

The way my fetcher works doesnt interact with thier own valuation. Fetches either by div or exalt at a time rather than both mixed.

strong jacinth
#

Yeah I guess just that ratio, is that the only one it bases listing's off?

strong patio
#

I'm not sure what you're meaning.

strong patio
strong jacinth
#

Right

strong patio
#

However this normalised value is updated manually/ intermittently.

modest path
#

Re: OCRing vs OCRing over a video feed, that's like the same difference between reading memory directly and reading memory with a DMA card, and I'm willing to be that either of the latter would get you banned. It's pretty clear that regardless of what the ToS says, GGG is ok with a certain amount of data mining, and very not ok with manipulation of the game client beyond insanely simple single press/single action macros for gameplay. Think of the ToS like the boilerplate HR paperwork you signed when you got onboarded at a new employer - It's there as a backstop to give them control in the event that reasonability breaks down, even if your boss doesn't give a shit about HR stuff under normal circumstances.

#

I personally think read only memory analysis should be allowed as skeezy people are going to do it anyway (e.g. the early archnemesis effects preload on map join shit), and ggg doesn't have the budget to prevent it (to my knowledge one kernel anticheat managed to detect dma cards configured a specific way once).

daring moss
modest path
#

If it were above board non-skeezy people could do it and report exploits to ggg

#

I also understand that allowing it would make it very difficult to detect map hack overlay type shit, or auto health pot macros in the future

strong jacinth
daring moss
#

I could very well be entirely wrong on that though

modest path
#

I mean if you want mega grey area you could have a twitch group or something where people stream their market stream when idle and someone without a copy of the game OCRs all the videos and for the info... Pretty clearly against the spirit of the ToS but could involve no ToS breaking

#

People are definitely using auto pot shit via memory reading (which should be detected and banned). Randomizing input latency is not a tough problem from the hiding point of view

#

And yeah I definitely appreciate being able to play on linux without intrusive anticheat, hoping skeezlords don't ruin that.

#

I also hope APIs are coming, and GGG is cloning anticheat people while they clone the support staff repeatedly

strong jacinth
#

Can only prayge

strong patio
strong jacinth
#

Yeah

strong patio
#

Although that argument could indeed be used for reading ram so it would be a dangerous precedent for GGG to set.

lone ingot
#

I can see why it would be frowned upon but I have no idea how you would stop or enforce it

#

it feels like it's in the same territory as webscraping and similar activities, where technically it's frowned upon and has rules like robots.txt but is actually quite hard to rigidly enforce

#

agree with vitaminmoo sentiment on read only memory, the archnemesis map load is a good example of people doing it anyway

#

same with packet inspection, it's the same in my mind. frowned upon and definitely in the questionable territory, but how do you enforce it?

#

(short of kernel anticheats I guess, which also get defeated)

strong patio
#

Yep

lone ingot
#

for the OCR market guy, the "bot" farm is technically within the rules if it's 2 clients per desktop. I say "bot" loosely as it's likely just a game kept open with OCR running and zero input. is that a bot by the game's definition? I'd say probably not as there's no input (as it's not necessary, because the game doesnt DC you or anything)

sturdy drum
#

Hi yall I am the dev of MirrorMarket, just wanted to introduce myself and say hello. I love all the tools Ive seen for POE2 and this was the first time Ive contributed to a community so Im really excited to be a part of it

oak estuary
#

You should maybe read up on the last couple hours of discussion, lol

sturdy drum
#

I read up b4 I posted. I didn't even know there was a tooldev channel until this morning πŸ˜…

lone ingot
#

how does it work @sturdy drum ? I am just curious at this point πŸ˜„

strong patio
#

That would be enlightening to the discussion

#

Although you owe us no explanation to be fair πŸ˜†

sturdy drum
#

Honestly I loved all the speculation and also suspecting hst as the dev

#

I think for now let's hold off on the precise mechanics of that one.

strong patio
#

I knew there was 2 devs and then these 2 people who seem quite defensive join a discussion. Felt fishy πŸ˜†

sturdy drum
#

Ciadora I love how you organized all the currencies. There are 2 of us yeah, I am the lead. well okay my wife does our infra and devops haha but shes not a dev

#

so 2.5 people you could say

#

I have a couple questions, prob noob questions but I am new to all this. What is the river (or something like that referenced in regard to api and trading sites)? also, does POE 1 have an api for the currency exchange?

ashen aspen
#

yea, love how i get weirdly attacked for something i didn't do and then the real person shows up and it's all well and dandy

strong patio
#

Do u think you were active in the discussion in good faith @ashen aspen ?

sturdy drum
#

HST is lying we're in on it together /s

lone ingot
#

the trade API in PoE1 is basically like an event stream right?

strong patio
lone ingot
#

I havent used it but Im guessing that's where the river analogy (if that's right)

strong patio
#

So if you like listen to it constantly then you can ingest a pretty solid picture in your own db about what is listed in public tabs etc

lone ingot
#

I mean an event stream sounds like the most efficient way to let everyone know about the changes computationally

sturdy drum
strong patio
#

currency exchange?

lone ingot
#

I guess there's a commit number/timestamp number type thing happening

strong patio
#

The one in game? That's inaccessible to developers

oak estuary
#

poe.ninja listens to the river. There is no currency exchange API

sturdy drum
#

Ah okay thats what I was wondering. If there is no API in poe1 I suppose unlikely they will add it to poe2?

lone ingot
#

yeah, basically listen to river for x amount of time and perform aggregate operation on all similar events

sturdy drum
#

I see now why its called the river okay thanks

strong patio
lone ingot
#

e.g. for all divine orbs in 24 hours, check listed price and perform avg sum of all listed prices for that period

#

so you basically store a cache of some maximum time period, do math and throw away stuff that starts falling outside of that time period

#

and then long term store your math outputs

#

(assuming this is what poe.ninja is doing)

strong patio
#

This is why the old sites for poe1 are not updated yet

#

No point rewriting logic for something that GGG plans to implement

#

Although they have said that the poe2 api implementations are liable to difer from poe1

sturdy drum
#

Eh nothing a good ol ETL pipe cant solve πŸ˜›

#

Do yall actually play poe2 much or just dev all day

strong patio
#

Everyone is different.

lone ingot
#

but yeah zgrill, when you put something into your stash and then change zone, that creates a new event (or commit number or whatever you want to call it) on the event stream (river), most things just observe the river as it has all the info needed really

sturdy drum
#

thank you for the explaination nomad, thats a LOT of events I imagine

strong patio
#

@lone ingot does this mean it works like a blockchain. If u start ingesting from the initial change then you can read all the way through. Or do they throw out old events. Im sure they throw it out after a certain time right