#tooldev-general

1 messages Β· Page 19 of 1

strong patio
#

currency exchange is thoroughly untouchable

#

uses trade site data yep

frank drift
#

poeninja/poeninja2 use the stash river api

modest path
strong patio
#

Interesting that no one has tried to automate the currency exchange data pulling.

#

Yeah its not allowed but im sure someone would have tried by now haha

modest path
frank drift
#

oh people have done it yeah

modest path
#

someone posted a graph a few days ago in here

strong patio
#

I saw someone on reddit try to do something like this

#

told him it was against tos

modest path
strong patio
#

and he deleted all comments about how he had done it

modest path
#

so poeninja2 has to also just be based on the trade site

strong patio
#

i dont think hes bothering a rewrite right? Just gonna wait for oauth

frank drift
#

right

strong patio
#

No clue tho that would just be my assumption

modest path
#

Has there been any confirmation of oauth for poe2 existing and/or timelines?

frank drift
#

none

strong patio
#

soon^tm

#

not even soon really. just. planned^tm

modest path
#

A concept of a plan

strong patio
#

a concept of a plan indeed

modest path
#

Hmm, why are foreign row references 128 bit values in the tables and array data. future tables longer than 2^64 rows? Gonna need a bigger hard drive

timid notch
#

I'd definitely be interested, otherwise I'm gonna roll one myself

#

In RePoE there are some .json files, are those constructed by the project by linking a lot of files, or are they exportable from poe-dat-viewer from a specific file/table?

modest path
#

Def some are aggregated from other table data

#

item_mods_somethingsomething iirc def is

timid notch
#

Ah kk, so its better if I just grab their json files manually

modest path
#

If you want the prejoined data; yeah. If you want to not be dependent on their exact methodology, better to join it up yourself

timid notch
#

That sounds like a lot more work πŸ˜…

mental wyvern
#

Its still alot of work trying to assemble and link the json together but still better

#

Still trying to make sense of it, the docs will an update on the repo to reflect the new changes since its showing stuff for poe1

timid notch
#

Putting together skill gems right now:

Get skill from skills.json using `grants_skills` array
Get metadata from base_items.json using `base_item.id` string
Get skill gem image filename from the metadata```
mental wyvern
#

Will prolly make a pull request when I sorted everything out brain wise

modest path
#

Just wait until you get frustrated with having dependencies in other languages and start using the dat files yourself

timid notch
#

Still sane, exile?

modest path
#

NARP

mental wyvern
#

He already uploaded other languages

lone ingot
#

I've said it before re linking dat files from snosme's lib but people are welcome to pinch my sqlite implementation used in chromatic

#

e.g., the ${Table.NAME}.Field syntax, Field is the column name in the shared schema/dat viewer

#

the data is obviously sql-like so imo it's the easiest way to work wth it

mental wyvern
#

How much coffee though

timid notch
#

nervously laughs in frontend dev

mental wyvern
#

He even called it dat.ts

#

Jokes aside crazy work, will poke around that

modest path
lone ingot
#

just pull it and run the ./ci/setup.sh

modest path
#

e.g. arrays of foreign keys not actually being foreign key types

lone ingot
#

it'll make a local DB in the root dir called chromatic.db, you can just write queries in the same file, it's nothing complicated, just a glorified script v

mental wyvern
#

Sqlite?

lone ingot
#

you can technically map them to json fields then do sqlite json syntax for joins but the performance is just absolutely bin tier

modest path
#

yep

lone ingot
#

probably postgres is the better choice if you want to handle the array stuff

#

hint for people using that sqlite implementation, AI is very good at working with json files and SQL πŸ˜›

mental wyvern
#

No sqlite is fine

lone ingot
#

Ive been tring cursor editor and it's basically able to auto fill entire queries

mental wyvern
#

Cant just believe some one else is using it

lone ingot
#

sqlite is the best

#

one of the best things we have in whole industry really

timid notch
lone ingot
#

small and reliable, can put in source, can send it around easily and can easily query it

#

also amazing for tests

mental wyvern
#

Where you get the poe2 data from though? Doesnt look like repoe data

lone ingot
#

e.g. if your prod db is a sql and you want to do unit or intergration tests you can just sub in a prebuilt sqlite db for those tests and do the real thinng (over mocking or something else dumb)

mental wyvern
#

And transactions for inserts

#

Ig for this app its not necessary

lone ingot
#

chromatic db gets built in like 2 or 3 seconds if the patch data is cached

mental wyvern
#

Made a trading site for gw2 and without optimization tricks sqlite was painfully slow

lone ingot
mental wyvern
lone ingot
#

that's the config of what I am pulling for poe2 right now

timid notch
#

Thats how I got all my images so far. Is there a way to pull all files from a directory instead of listing them all individually?

lone ingot
#

like I said you can just pull the src and run ci/setup.sh and work through the errors, you just need rust + node 18+

timid notch
#

Didnt see much documentation on it

lone ingot
#

there isnt that I found, I asked snosme about it and ended up porting some of the lib's code to my own code base to do it

#

in retrospect I could have also just wrote the config.json again in CI with the known list of files and reran snosme's tool, eventually Id like it all to be code driven though. probably pivot it entirely to rust to learn a bit more later down the line

#

that dat.ts file is an abomination imo but it works poggers

worthy cape
#

(I now have semantic satiation typing that message out, thanks for that πŸ˜„ )

modest path
#

I am so ok with rust calling everything by size basically

#

I can never remember any of the greybeard names for types and their sizes

#

@zao bit magnitude

worthy cape
#

Considering the horrors of LP64 vs. LLP64; numerically sized types are a good thing.

modest path
#

Why are there no exponent modifiers on poe2. For when more isn't enough

#

I had to look up LP64 vs LLP64 and that is truly horrific

worthy cape
modest path
#

Something that consumes stacks and doubles per stack consumed could be an exponent that was useful I guess, as long as there was some sort of cap

lone ingot
#

added sound mangement ui thing, that was a royal pain in the ass to get working with web+desktop

timid notch
#

Or is that just for loot

frank drift
#

filters can only interact with ground loot

dull portal
#

hey guys, is someone here who can help me with the graphic settings? i have a new computer since yesterday and i think that my graphic settings are not ideal and im not sure what the problem is

marble zephyr
#

Hmm, has anyone noticed, on occasion, a trade message doesn't appear in Client.txt? They are otherwise visible just fine in the game, and the item is highlighted correctly, fwiw... catthinking

tiny cargo
marble zephyr
#

Well shoot, that seems relevant! It would be lovely if they could still log what they can, at least some anonymized indicator that a trade happened. But, thank you for this πŸ™‚

worthy cape
#

Kakao redaction has indeed been around since a long long time.

analog pagoda
#

so basically I need 120% evasion?

#

70% less evasion

#

I need 120%?

calm adder
trim moon
#

if im going to be using Art, which route would u suggest is the easiest, storing it in my own git, linking it from someone else's like eg /repoe or directly linking to poecdn links. and has anyone stored the art for hotlinking?

timid notch
#

Yesterday I exported the images for all the skill gems in the public folder of my NextJS project. I don't know if that's the easiest way, but it gave me all the images with proper names to link from other data that I'll need

trim moon
#

since im only using a few images, like about 50, preferable to store in my own git folder ?

timid notch
#

I don't know how "available" linking to the images on RePoE will be, and the CDN uses lots of random pathnames (and I don't even know if you'll run in to CORS issues)

trim moon
#

yea true

timid notch
#

I'd say so, keeping them in your repo or hosting them on your own CDN

trim moon
#

best to host where project is

#

cool

timid notch
#

Do you know how to export the images with poe-dat-viewer?

trim moon
#

cos i saw another guy's project, hotlinking directly to a poecdn url, and was wondering, if that is not a bit unethical

trim moon
trim moon
timid notch
#

poe-dat-viewer is a Node package you use globally, it gets the PC client files from its own CDN

#

You just specify which files to export as images

trim moon
#

so publicly available dat? i dont need poe installed on pc?

timid notch
#

Nope

#

But you can configure it to use your local POE files if you had them

#

And yes to your first question haha

#

Exporting a few hundred images took a few seconds

#

And make sure you install ImageMagick like the readme says

trim moon
#

what version do i input in this screen...

trim moon
timid notch
#

That's the web interface, the link I have you has instructions for the CLI tool

trim moon
#

ohk i'll read thru now

timid notch
#

You can still get the images from that web interface, but there will be a lot of clicks, and if you have to do it again or update the CLI tool will be better imo

#

Either one will convert the .dds files to .png

trim moon
#

ok im gonna try it out and bother u if ever πŸ˜›

#

a bit later though

timid notch
#

Bet

trim moon
#

thanks for the assistance

timid notch
#

And the versions are listed in that image you screenshotted, POE1 is 3.25.3.4 and POE2 is 4.1.0.11.2

trim moon
#

ohkk lol yea i was wondering why it was there but ...

trim moon
#

that helped quite a bit, it dl's the stuff straight to my folder

#

but i'll have to learn the subdirectory structures to use in the json

#

thanks a lot bro

formal kraken
#

this is the second time you post here and again it's the wrong place

tawny ravine
#

Do something about it

oak estuary
#

"What are you going to do, ban me?", he says

safe haven
#

Anyone know if Distilled Emotion recipes are currently in any of the RePoE data exports?

wheat temple
#

Did anyone else have these inconsistencies with the DPS Calculation of the Webpage with lightning & fire damage?

Lightning seems to be bit less than calculated
Fire seems a bit more than calculated

modest path
#

There was at least one convo in the past about dps numbers on the trade site

#

iirc it came down to when to round and what parts of the calculation were int32s generally

wheat temple
#

yeah so the values of webpage are not rounded?

modest path
#

Some real fast revisionist history right there

#

@wheat temple From my light experimentation some of the numbers in the poe2 UI may have both ends of a calculation derived from one of the raw numbers (e.g. cast rate vs casts per second don't line up with one being calculated from teh other, they line up with both being calculated from a pre-rounding one of them)

wheat temple
#

the joke is that Cold damage has 100% match with my calculations

modest path
#

I went from "lets calculate the dps from the base mods" to "can I reliably calculate the cast rate or casts per second from eachother" and the answer was "ehhhh"

#

And they're literally both displayed in the UI next to eachother and representing the same fundamental stat

#

If you collect enough data changing every part of every calculation you can probably reverse engineer where the rounding and flooring is happening

#

😬

worthy cape
wheat temple
modest path
#

@worthy cape has the bliss of being able to look and the terror of being unable to scream (publicly)

wheat temple
#

I need to have base database access of ggg to find out how the value is miscalculated

modest path
#

@wheat temple Easy! All you gotta do is at a minimum violate TOS, and at a maximum violate federal law!

#

Alternately get a job and an NDA

worthy cape
wheat temple
#

lol

modest path
wheat temple
#

@zao just to be clear, I actually do look for a job as a fullstack developer, but I am not finished with my degree

modest path
#

Video game programming is like normal programming but there's people whipping the people whipping the people whipping you

modest path
#

And you can't delete anything out of the git repo because that's the patina and taking it off ruins the resale value

wheat temple
#

so basically I can apply as an intern web dev, fix your webpage issue, and go back grinding t15 maps ? πŸ˜„

worthy cape
#

If you're a webby person, the first page has the listing IIRC.

modest path
wheat temple
#

no way someone did what I was thinking of rn

modest path
#

It's all been done

worthy cape
#

A [visual] glitch with my build got fixed yesterday, does that count?

modest path
#

@worthy cape Was your "build" rollback-crashing servers for profit?

worthy cape
#

Anyway, quitting is overrated; I aim to be here for a long while and fix all the things.

worthy cape
wheat temple
#

If I apply, its fully remote, or do I have to move to ggg headquarters?

modest path
worthy cape
#

Most positions are on-site, as noted at the top of the page.

modest path
#

Don't worry @wheat temple, the dropbears are disgusted by fear and seek more nourishing prey

wheat temple
#

well then, no ggg job for me. If you reside to take 100% remote jobbers, you can dm me

modest path
wheat temple
#

well it does work. Ever heard of electrocuting collars?

modest path
#

I mean you only get one electrocution; how are people supposed to learn

wheat temple
#

if they are usb charged, you might get more than one

wheat temple
#

Well now I am done with that and start rounding too πŸ˜„

trim moon
wheat temple
#

Big oof

trim moon
#

and APS possibly not rounded to the nearest, in trade site calc

wheat temple
#

But it can't be that it almost has a difference of 2-3dps at times

#

That's just too much for rounded values

trim moon
#

yea i thought so too, but i just stuck with the conventional method of Integers for the flats and the given aps of a weapon base

wheat temple
#

I already started digging way deeper kek

trim moon
#

cos it aligns with the ingame numbers, whilst trade number at lowermost looks off

wheat temple
#

Game has Hex values stored in Memory for every Item Damage Calculation. I found the same stuff you sent me

#

But it only really has that issue with lightning and fire damage

#

Chaos, Cold etc are fine.

trim moon
#

but , i wouldnt be too worried if its off by 1-3 dps, cos u get a fair estimate either way

wheat temple
#

Yes that is true but it bothers me DivineOrbSad

trim moon
#

lol but yea endgame % increases will make u feel like u are being nerfed or something

wheat temple
#

Yes

trim moon
#

are u applying quality increase to the flats before the APS multiplier

wheat temple
#

Yes

#

My table at the top of chat has the programmed calculation in Excel format

#

Human readable

#

πŸ˜‚

trim moon
#

yep i looked at it

#

sent u a pm

safe haven
#

@velvet fog
This might be dumb, but is there something equivalent to this functionality on poe2db? I wrote this console script to search for Distilled Emotion recipes based on the emotions I have available. I run this script in browser console on https://poe2db.tw/us/Distilled_Emotions

var ownedEmotions = {
    greed: 1,
    guilt: 1,
    ire: 1,
    paranoia: 2,
};

var recipes = [...document.querySelectorAll("td > div.implicitMod")];
var counter = 0;

new Set(recipes).forEach(function(el) {
  var owned = {...ownedEmotions};
  var row = el.parentNode.parentNode;
  var emotions = [...row.querySelectorAll(".item_currency")]
    .map(el => el.textContent.replace("Distilled ", "").toLowerCase())
    .filter(function (emotion) {
      var include = false;
      if (owned[emotion] && owned[emotion] > 0) {
        owned[emotion] = owned[emotion] - 1;
        include = true;
      }
      return include;
    });

  if (emotions.length === 3) {
    ++counter;
    row.style.display = 'block';
  } else {
    row.style.display = 'none';
  }
});

console.log(`Showing ${counter} Notable Passives.`);
sterile sail
formal kraken
safe haven
shell imp
#

I have a poe1 question--for items retrieved as json objects from the api, are icon urls pointing to https://web.poecdn.com persistent, or do they expire like trade hashes?

  1. The api is currently returning items with icon urls that remind me of the trade site: https://web.poecdn.com/gen/image/WzI1LDE0LHsiZiI6IjJESXRlbXMvRGl2aW5hdGlvbi9JbnZlbnRvcnlJY29uIiwidyI6MSwiaCI6MSwic2NhbGUiOjF9XQ/f34bf8cbb5/InventoryIcon.png

  2. However, acquisition has a test dataset captured sometime in 2018 where the "icon" fields look like this: http://webcdn.pathofexile.com/image/Art/2DItems/Armours/Helmets/HelmetStrDex10.png?scale=1&w=2&h=2&v=0a540f285248cdb64d4607186e348e3d3

Asking because I'm redoing acquisition's broken test suites in advance of a rewrite for poe2, and I just noticed the change.

oak estuary
shell imp
#

Thanks, I was guessing that, but I'm not a web guy.

tacit basin
compact isle
#

you guys sure do chat a lot over the holidays πŸ˜„

formal kraken
shell imp
compact isle
#

thankfully yes, a much welcome holiday

#

and now I have to remember how to do my job again

wind garden
#

Yayyy, welcome back πŸ™‚

#

Is getting back to work like the community meme where the room is on fire?

stable solstice
#

Will there be total rework of poe website for release of poe2? I mean current website is kinda old technology and very bad for accessibility like screen readers etc

compact isle
compact isle
gilded tree
#

rewrite in zig

compact isle
#

the speed at which some community people whip up some wasm'd sites with all the languages has me feeling like an old slow man Oldge

oak estuary
# compact isle they don't expire

That surprises me, do they not get rebuilt if the assets change? Aren't people able to just hotlink to that URL instead of the old one?

compact isle
#

being able to hotlink URLs that we've provided is intended. Randomly grabbing any image out of the GGPK via the website is not

trim moon
#

welcome back

#

is it the 8th already, shows 7th here, shoulda said, the 8th in Hawaii

compact wigeon
#

We're in new zealand and it's definitely the 8th here.

stable solstice
#

Guys who are deploying patches will come back 13 or they are in office already?

wind garden
compact isle
#

live search doesn't scale so that doesn't surprise me

wind garden
#

What kind of solution is there for that. Doesn’t sound like you can β€œjust add more servers”

loud flint
#

New Zealand isn't even a real country?

#

Nice try

#

Also not sure this has been flagged here yet, but PoE 1 website forces me to log in... pretty much constantly

#

Very much noticeable when dealing with trade

#

(Also not even the correct place to flag it, woops)

hexed mesa
#

i think someone mentioned some time ago that it passes remember me parameter twice/incorrectly or something like that

#

this

loud flint
#

Ah nice

hexed mesa
#

though @compact isle was away so pinging just in case he missed it

loud flint
#

Weird that the backend doesn't handle that correctly (aka using the last value)

#

Although the RFC for URL params is... weird to begin with

modest path
#

Aren't duplicates treated as an array classically

loud flint
#

I think that's non-standard behavior

#

But shrugR

#

Been a while since I delved deep into that

modest path
#

Oh the login page definitely does it as post data and is definitely sending an array

loud flint
#

OHHH gotcha

#

Then yeah

compact isle
#

not having remember me just means that the cookie in your browser is session based

#

which shouldn't expire unless you close your browser or something

loud flint
#

Weird, it DEFINITELY expires even when not closing the browser

modest path
#

Def happening more than than on browser close for me

#

iirc before when I glanced into it the session cookie was being sent but rejected by the server, didn't dig that deep though

#

'cause I couldn't reliably reproduce it

#

I def always have like 10 random trade urls open in the background so I'm not even closing all windows

compact isle
#

yeah I know there is an issue just having a very hard time reproducing it with dev tools open

#

it's definitely nothing to do with the cookie / remember me stuff though

loud flint
#

I'll try to get a detailed example

modest path
#

@compact isle burp suite free can be really helpful for stuff like that - You can generate a ca cert and set a proxy in a browser profile and have it man in the middle all traffic, record it, and let you look at exact bytes sent/received later

loud flint
#

Also top left, my account stuff is missing?

#

Not sure if that's an intended thing or not, but the logout issues started happening since that disappeared

compact isle
#

that's intended

loud flint
#

Gotcha

#

I think something around that change might have broken things

#

From my anecdotal experience at least

modest path
#

(it is more generically a penetration testing proxy that can let you basically breakpoint requests and edit what is sent or received)

quiet finch
#

Has anyone figured out all the math behind how to draw the passive tree? Particularly the connection lines and arcs. There's this "orbit modifier" value that is part of each connection, and I haven't quite figured out how it relates the connection geometry. This is my current truth table I've come up with so far:

  • if node1.group == node2.group && node1.orbit == node2.orbit && orbitModifier == 0, draw the shortest distance arc between them along their shared orbit
  • else if orbitModifier == 0, draw a straight line between the nodes
  • else, draw the shortest distance arc between them along the orbit with orbit radius indexed by orbitModifier

This looks all mostly correct, except in some cases when the else is reached, the arc angle is correct but the direction of the arc is not (bowing in vs. bowing out). orbitModifier can be negative, and I assume that has some correlation with how to determine which direction the arc should bow. But it's not as simple as positive bows one way and negative bows the other.

calm adder
wind garden
calm adder
wind garden
compact isle
gilded tree
loud flint
#

Oh, hi Mark

#

:kekw

#

My Nitro expired damn

worthy cape
loud flint
#

Jira so full you need a second Jira

modest path
loud flint
#

πŸ‘» Rumors has it, if you say Jira 3 times in front of a mirror, a project manager will come along and ask you to update your estimates

modest path
#

I thought that caused someone who doesn't know what they are doing to edit the base level definitions of fields, adding them to every type of ticket all at once instead of the one type they meant

worthy cape
#

I feel so blessed, having only ever been exposed to RT, Redmine and GH issues, if you count those.

#

RT's primary drawback is that it's very mail-oriented and if you bottompost or interleave messages like normal nerds do, many mail clients hide the response completely below the "oh, this is just the quoted reply" ellipsis fold.

#

It made me a top poster.

modest path
#

GH issues are great due to being lightweight, but not great when the soc2 evidence guy wants a list of every issue related to a thing and people aren't consistent

worthy cape
#

Oh right, Trac and Trello too; I've repressed those.

loud flint
#

Trello aint too bad

#

Used Linear a fair bit which is a more... modern alternative I guess? Surprisignly enjoyed that a lot

worthy cape
#

My old boss installed a plugin that made old cards have a wilted and aged look. Shotgunned the whole board πŸ˜„

loud flint
#

Damn you Jira, damn you!

#

The sneaky ad

worthy cape
#

Linear looks kind of neat at first website glance; but not exactly the most Bing:able name.

gilded tree
loud flint
#

Yeah sorry, definitely meant to specify Jira alternative

floral marten
quiet finch
floral marten
#

Anytime

#

other case use line

exotic egret
#

Linear was great when I used it at a previous job. Love it

#

Although I looked at it recently again and I felt like it's become more opinionated which isn't really a good thing

loud flint
#

The curse of all software

#

@compact isle I was able to look at the error with devtools open, and seems the POESESSID is expiring sooner than expected on the server side

oblique vapor
#

Last week, I heard someone mention that the login form has two remember_me. Could that be the reason I get kicked out after an hour?

loud flint
#

Nah we discussed this above

#

Shouldn't be

oblique vapor
#

Well i try another browser but still kick me out too.

compact isle
sterile sail
# safe haven Yeah, exactly.

If you still need, here's one I hack together pretty quickly.
https://poe2emotions.pages.dev/

Many similarities to the ones already available, so I added a shareable track list. Which help you track how much distilled is needed for your target list. I've play around with it and haven't experience any bug yet so it's pretty good to go.

stable solstice
#

trade session login is not working on chrome and brave, even using normal email or steam login method

worthy cape
hearty sapphire
#

hi all BlobWaveGif i'm new here (and in poe in general). i found a funny placeholder art in the game files and i'm wondering if i can share it here?

#

i looked it up and it seems it hans't been shared before so i'm not sure if it's not allowed or if nobody else has seen it yet

quiet finch
#

among us art?

hearty sapphire
#

YES HAHA

#

i didnt see anybody commenting on that 😭

worthy cape
hearty sapphire
worthy cape
#

I think someone showed the art shortly after EA launch, it's still amazing.

hearty sapphire
#

cool haha

#

i'm planning on coding a discord rpc integration that gets the artworks from the game files directly, so this was a fun surprise :)

loud flint
#

Probably planted by Zao

worthy cape
sterile sail
worthy cape
#

All the cool kids are still in acts <_<

sterile sail
#

I'll add some notes and alert and ship out tmr.

compact isle
#

session bug fixed

#

πŸ‘

modest path
#

Lemme guess; cloudflare cache on death effects were doing more damage than intended, so cached item expiration was one-shotting nearby cookies

hearty sapphire
#

art was extracted from game files and cropped programmatically + map IDs/names and class names retrieved from poe2db (couldn't find them locally) so i don't have to keep updating much manually

worthy cape
hearty sapphire
#

player level!!

velvet fog
#

great feature

worthy cape
#

What information do you base that off?

#

I know that things like ExileKit had a hard time tracking that in the past as I don't think you can necessarily tell which character the player is on and their level?

calm adder
#

X (Y) is now level Z messages from Client.txt?

#

where X is character name, Y is class and Z is the level?

hearty sapphire
#

yeah thats all im doing right now, if you switch to another character the rich presence will be outdated

calm adder
#

I needed the info once too. I wish the client would just log it into the file when logging in with said character

worthy cape
#

Do party members get logged that way too, assuming one has friends?

hearty sapphire
#

if there are logs for switching characters that could be easily fixed. i only have 1 character rn so i don't really care tbh :p

#

no idea

calm adder
modest path
#

only if your friend doesn't level in korean

worthy cape
#

Neat project tho, does Discord have any noticeable rate limits there?

calm adder
worthy cape
#

Only ever briefly looked at integrating Discord SDKs for my own code.

calm adder
#

It's hard to keep track otherwise

hearty sapphire
velvet fog
#

Does ggg have plan to implement 2FA? or other security login

lone ingot
#

anyone have that diagram link for how mods and baseTypes relate?

velvet fog
#

for poe1?

lone ingot
#

for both games, really

modest path
#

Security shit is always low priority until it's the only priority

#

Then some asshole lawyers and specialists make more money in like three weeks than you make in a year

velvet fog
# lone ingot for both games, really

in poe1:
BaseItemTypes.TagKeys + BaseItemTypes.InheritsFrom.TagKeys
intersection
Mods.SpawnWeight_TagsKeys + Mods.SpawnWeight_Values

in poe2:
BaseItemTypes.TagKeys + BaseItemTypes.InheritsFrom.TagKeys
intersection
Mods.ID
intersection
GoldModPrices.SpawnWeight_TagKeys +GoldModPrices.SpawnWeight_Values

carmine merlin
#

@lone ingot note that for PoE 2, the gold mod prices only shows the spawn tags for normal mods on gear and misses a bunch of bases like flasks, charms, jewels and corruption mods

lone ingot
#

why did we name it gold mod prices πŸ˜„

carmine merlin
#

cause it's meant to be a table for selling / buying items from vendors

#

I'm almost certain it is not meant to show the spawn weights in the file and it was a oversight. GGG made a very consious choice to try and remove all info from the game files that shows the spawn location and weights for mods

lone ingot
#

possibly yeah, there are some other weight tables as well though e.g. UncutGemAdditionalTiers

#

I dont mind about the weighting, just need a list of names by base/class/etc

carmine merlin
#

Forces you to scrape the trade site to find where the mods can spawn

lone ingot
#

yeah, I mean the only alternative is a structured dump made available by GGG

#

querying trade API just feels dirty, it's so inefficient

wheat temple
#

but how about a designated tooling API that just has all the values needed?

#

that would be too easy

#

right?

lone ingot
#

dumps have a low cost as it can just be put on github or similar, downside of APIs is cost and complexity

#

patch data doesnt change so static is completely fine

wheat temple
#

hmm true

#

If any GGG employee reads this, is dumping the system memory greyzone or against TOS?

#

cause that would basically make devs scrape for the correct pointers in the dump, so it can be accessed without them having to do a structured one. We can just build a structure above it

lone ingot
#

against tos from memory, same as packet inspection

wheat temple
#

yeah but its not memory directly. its a snapshot

#

ofc its against TOS to access memory, because there is the chance of manipulation. but you cant manipulate the game of a snap

#

like once I have 2 sets of dumps with all values I need changed on both, I can do scans, pinpoint the correct values, do a pointermap and there I have all info

#

would be interesting to know if ggg allowed that

#

if yes, I am willing to build this instant

hearty sapphire
#

i think that similarly as discord custom clients are against tos but discord doesn't ban you unless you abuse them, it should also be fine to read the game's memory as long as you don't write/abuse it...

#

i'm not familiar with how ggg operates, but this is what makes sense to me idk

#

for example, it should be pretty easy to get the current character's name, level, class and map by reading into the game's memory to build a discord rich presence integration. this wouldn't be harmful, but it's against tos so... blobgrimace

worthy cape
#

For a concrete answer you would have to ask support.
From my past as a community tooldev, no form of memory access has been allowed historically, regardless of how indirect and sneaky it is.

velvet fog
#

support will answer no for every dev request

lone ingot
#

imo it just gets too tricky to rule right and wrong with dumping memory

hearty sapphire
#

true

lone ingot
#

especially if networked stuff makes it way into memory

#

which pretty likely has stuff that's purposefully hidden

wheat temple
hearty sapphire
#

that's why for me it's basically this: it is against the rules, but you know you're not doing anything harmful, so proceed at your own discretion 1117nekocatshrug

lone ingot
#

technically yeah, I just wouldnt encourage it

#

it's networked game, if they wanted to know if it's getting dumped they'd be able to figure it out

hearty sapphire
velvet fog
#

Tool dev role is assigned by discord mods, not ggg

modest path
#

It's def getting dumped; I ain't linking here but there's very public forum posts of people using CE by having poe as an unprivileged user. Maphacks, bots, auto flasks/logout, atlas fog of war removal. I hope ggg realizes that with their newfound success comes a tremendous increase in the quality of groups attempting to exploit/sell cheats/bot

wheat temple
#

oh well

worthy cape
lone ingot
#

speaking of, can I get the tool dev role? πŸ˜‡

wheat temple
#

Me too, me too πŸ˜„

lone ingot
#

had a few msgs from people on discord already inquiring about chromatic, figures it probably helps

#

has there ever been impersonation problems in the past?

hearty sapphire
#

i wonder if there's a list of poe 2 tools somewhere? i'ld like to take a look at what everyone is doing

worthy cape
wheat temple
hearty sapphire
lone ingot
modest path
#

is that sfw lol

#

😬

lone ingot
#

@modest path

worthy cape
modest path
#

Might end up rewriting the history of your account existing, eh

wheat temple
velvet fog
worthy cape
modest path
#

@velvet fog I play poe and have been called a tool numerous times; does that count?

wheat temple
#

lol

velvet fog
#

url required

modest path
copper steeple
grave wren
#

you'll likely just have to link your tool(s) to the mod bot and ask nicely to get the role here but its still a fan discord

#

so nothing much to gain for it but cool green name

strong patio
lapis cipher
#

Hello, what’s the Class for Uncut Skill Gem, Uncut Spirit Gem and Uncut Spirit Gem? I can’t find them on poe2db
Do they not have Class?

lapis cipher
#

Ahh. Are there any other drops that don’t have Class?

frank drift
#

might be a couple, I couldn't say offhand

#

presumably a bug

velvet fog
#

and Meta Skill Gem

jolly obsidian
#

Hello, I am curious if anyone here knows the folder and file structure of the internal game files, specifically the OBJs. As I understand it, I need that to access the specific model I want via the model viewer

#

And I wanna see/rip a certain model from the game

jolly obsidian
#

This is the model viewer, yes, but I need to know where the file is I am looking for

calm adder
#

You can see the virtual path in the panel on the right hand side

#

/Art/Models/MONSTERS/HyrrisSister/rig_fc39650b.obj for Queen Hyrri Ngamaku for example

jolly obsidian
#

But it does not work for every item

#

I would like to see what the path to this is, for example

calm adder
# jolly obsidian But it does not work for every item
version 6
SkinnedMeshData "Art/Models/Pet/CurrencyOrbCompainion/rig_ee9f1034.smd"
Materials 1
    "Art/Models/Items/Currency/textures/ExaltedOrbc.mat" 1
BoundingBox -32.4605 -33.0763 -82.6294 32.4604 33.0763 0.0820859
BoneGroups 0
#

It's this one I think

jolly obsidian
#

May I ask how you figured this out?

calm adder
worthy cape
jolly obsidian
#

Thanks

strong patio
#

Uses the trade api

#

The one the website uses

mental wyvern
#

But the undocumented one on the trade site

mental wyvern
#

No but I assumed it's some official api

velvet fog
#

Even poe1 doesn’t have an official trading API, so don’t look forward to poe2.

somber mortar
velvet fog
#

updated

somber mortar
#

Thank you!

tawny merlin
shell imp
#

@velvet fog may I also request adding Acquisition to poedb tools for poe1? It has been around since 2014. I have been maintaining it since 2023 and I will add poe2 support when the official API is released.

Category: Trading and Economy
URL: https://github.com/gerwaric/acquisition
Description: Offline character inventory and stash tab search tool, with forum thread shop management.

rose gyro
#

Hey all, looking for feedback from more experienced players on this reworked Gear Quick Filter design for poe2filter.com, before I start implementing and testing. Is this clear, does this make sense, did I forget something?

lyric umbra
#

does anyone know how the hashes are generated for item searching? i quickly looked around but couldnt really find much. like I need to know how a specific search turns into the query that becomes part of the URL

formal kraken
formal kraken
#

@velvet fog poe2db seems to be down, in case you don't know already

strong jacinth
formal kraken
#

ah back up again

#

yeah I am sure, it was the cloudflare error

modest path
#

I think it goes down semi-regularly for a db backup

worthy cape
#

I'm still baffled to this day that Steam has weekly maintenance and almost no-one notices.

loud flint
#

I also practice DB fallover

#

Something goes wrong, my DB falls over

worthy cape
#

Always fun when someone in chat shouts about Steam being down and you look at the watch - "yep, it's Tuesday".

strong jacinth
#

I'm lucky my DBs are small so there hasn't been an issue yet KEKW

velvet fog
somber mortar
velvet fog
#

Metadata/Items/Rings/AbstractRing point to ggpk file system metadata/items/rings/abstractring.it

version 2
abstract
extends "Metadata/Items/Equipment"

Base
{
        x_size = 1
        y_size = 1
        tag = "ring"
}

Mods
{
        inventory_type = "Ring"
}

and recursive Metadata/Items/Equipment.it to get tag = "ring, default"

modest path
#

Anybody know what .it stands for in those file names?

#

item template? "I made up this formaT"?

#

"utf-16 Is the besT"?

worthy cape
#

One of those questions I often asked myself while digging through the wealth of extensions back in the day πŸ˜„

calm adder
worthy cape
#

Not for mortal eyes.

calm adder
modest path
#

So it stand's for "It's zao's faulT"

#

More likely it's "InTern" format because clearly some intern thought it was a good idea to make a markup format from scratch

worthy cape
#
  • .et - Especially Textual
  • .it - Intentionally Texty
  • .ot - Organic Text (no .gmo!)
#

(make something up and get the community to agree on it πŸ˜„ )

modest path
#

p sure that was the same idea the original creators had, but "the community" was the rest of ggg

#

And by "rest", I mean the ones that weren't on their 90 day probationary period

#

NZ probationary period is very different than Australian probationary period

worthy cape
#

In the past I've just assumed something like "item type", "object type", "entity type". Not much point in referring to them by anything but extension really.

modest path
#

If it's lost or mostly lost internally I'm laughing

#

We had a service at my previous job called "gbc"

#

turns out it was short for "gooeybuttercakes"

worthy cape
#

I haven't had any need to find out, enough other cool stuff to find.

modest path
#

There are really two schools of naming shit

#

The "we should name it something relevant" crowd, and the "we should name it random bullshit" people

#

the relevant crowd are correct in the short-run

#

the random people are correct later, because no service named after a ghostbusters character is wrong

#

but services named after what they do are always eventually wrong

zenith zodiac
#

l was going to say that .it files are older than nz's 90-day trials but google says they introduced them in 2009 so l guess my timeline is out of whack

worthy cape
#

After my move, I can't keep track of which server of mine is in which country and what it does.

modest path
#

Where'd you move from?

#

i'm going to india in a couple days (from oregon) for a temp visit due to my company being acquired and /that/ seems extreme to me

worthy cape
#

A quick bing says trial periods are up to 90 days and cannot be used for these work visas, while probationary periods are more flexible.

zenith zodiac
#

also itfiles were only added in 3.20 so l'm double wrong

worthy cape
#

I forget when, but in recent history the wiki/PoB had to be fixed to read from the correct file type as the extensions reconciled.

#

Few years ago, maybe?

modest path
#

Amazing

#

Sweden to the underside of the earth is quite a move

worthy cape
#

3.20 probably checks out.

#

Might've been ot/et before that then?

zenith zodiac
#
Overview
===============================================================================

+----------+------------------------------------------------------------------+
| Path     | PyPoE/poe/file/it.py                                             |
+----------+------------------------------------------------------------------+
| Version  | 1.0.0a0                                                          |
+----------+------------------------------------------------------------------+
| Revision | $Id: 7a5298970325b6a84c2aa71ac7110ed058bf51f0 $                  |
+----------+------------------------------------------------------------------+
| Author   | Omega_K2                                                         |
+----------+------------------------------------------------------------------+

Description
===============================================================================

Support for .it file format.

Starting with version 3.20.0 of the game items use .it files instead of .ot
modest path
#

et phone home?

#

I remember once when someone was asking me why a thing was named the acronym it was, and we had to dig into it in the git history for a while, only to find out that I had named it

worthy cape
#

I think my deepest delve found the answer in something like revision 22.

modest path
#

Niko intensifies

calm adder
#

I wonder what algorithm GGG uses to generate the endgame atlas.

#

If it's similar to how the Delve chart in PoE1 is generated.

#

Some sort of graph I'd guess

wind garden
#

@compact isle is there a formula behind the relative value of divine orbs? It used to be 800 and now it's like 116930. Why so large?

somber mortar
#

This got changed? yay!!

#

guessing this was a way to fix the trade site putting items listed for a div before items listed at 10 exalts, I think the ratio was something like a div was worth 7.5 exalts

runic pasture
#

For the upcoming PoB for PoE2, the calculates are based on observed testing in the game or actual game code?

formal kraken
#

publically available information, tested mechanics and just game knowledge

neon plume
#

Does anyone know if anywhere in the ggpk bundle is the game version?

delicate tapir
#

Hi !

Category: Trading and Economy
URL: https://github.com/LorenzoDv/poe2-trade-discord-notification
Description :I just developed a browser extension that adds a button to the trading site, allowing users to share an item with their friends on Discord using webhooks. Instead of taking screenshots, you can now share directly. The extension can be installed via the store or manually.

Many people are hesitant to install extensions due to concerns about hacking account with keylogger, which is why I’m making the code public to show that it’s safe. What do you think? Could this be useful?

swift beacon
neon plume
#

hmm, I guess that works...

calm adder
#

Relevant code is

public async Task<string> GetPatchNumberAsync()
{
    using TcpClient client = new TcpClient();
    await client.ConnectAsync("patch.pathofexile.com", 12995);
    using NetworkStream stream = client.GetStream();

    await stream.WriteAsync(new byte[] { 1, 6 });
    byte[] bytes = new byte[1024];
    await stream.ReadAsync(bytes, 0, bytes.Length);
    string str = Encoding.Unicode.GetString(bytes[35..(35 + (bytes[34] * 2))]);

    client.Client.Close(100);

    string patch = str.Split("/", StringSplitOptions.RemoveEmptyEntries).Last();
    return patch;
}
neon plume
#

but ig scraping the EXE will work for now

calm adder
worthy cape
#

What even are versions?

loud flint
#

exe probably only contains the client patch version, whereas the server can be wildly different? i assume

neon plume
#

the client is what I'm after

worthy cape
#

I found out the fun way for the Hideout Editor that the game data doesn't have enough information to identify it.

calm adder
#

What I mean is that the exe contains a version like poe2_production tags/4.1.0f where as the "unique" patch number is 4.1.0.12.3 - idk which one you need

neon plume
#

actually where in the exe do you see the version?

calm adder
#

hexeditor

neon plume
#

neither exiftool or peres found it

#

ah

calm adder
#

or a sophisticated equivalent

neon plume
#

damn my disassembly skills are rusty, can't even find a version in the binary

#

although it doesn't seem to be in any of the usual spots, and searching for it found nothing

calm adder
#

Am using steam version, don't know if it makes a difference

#

string is stored as ASCII, not utf-16

neon plume
#

omfg I am an idiot I was searching for 3.18 (version I'm targetting) on the latest version of the game

modest path
#

It's just a cached hit to the socket endpoint in the screenshot posted a bit ago

neon plume
#

I need to get the version of the data that I have rather than latest, I want to remove one more step from my data extractor

modest path
#

note that exe version and cdn version are not the same

calm adder
#

yes, small changes sometimes don't change the exe version but do change the cdn version

calm adder
#

meaning it's possible that there are multiple cdn versions that correspond to 4.1.0f

modest path
#

Fo sho

lone ingot
#

I added imports to chromatic, which is experimental at the moment but working for a good majority of cases (tested on cdr + filterblade lite)

#

so many little edge cases with parsing existing filters, the filter spec on the website isn't entirely accurate

#

e.g. operators are mostly optional and pretty much all string rules work like a fuzzy match a lot of the time

#

had no idea

#

also the colour picker is less UI gore now πŸ˜„

#

if you're using it and find a bug give me a poke

loud flint
#

I'll have to give it a shot soon! What's the ETA on PoE 1 support?

#

I know you had it on your TODO

lone ingot
#

very soon

#

I wanna go back and play my ssf guy in poe1 so probably one of the next things I do lol

loud flint
#

Yeah that's where I would have needed this as well, did a small private SSF League with my brothers, had to tweak the filter a lot to spot certain div cards/bases etc., Filterblade is great but having it like this would be even better

lone ingot
#

Im working with poeladder dev for a unique completion/holy grail rule

#

that'll be going in also

frank drift
lone ingot
#

filterblade can technically also build around the stuff poeladder is exposing for unique completion, might be worth a chat

loud flint
#

also hi cdr big fan

frank drift
#

what do you mean by instant feedback?

loud flint
#

ah thought it would preview correctly here :(

lone ingot
#

desktop has auto in game reloading and keybind to export

#

work flow is very fast when you are making edits

frank drift
loud flint
#

sometimes it takes minutes for the filter to update

#

(for cloud sync)

lone ingot
#

if you configured filterblade to do local exports it would work with a keybind for the reload

frank drift
#

by local saves I mean local filesystem, you can save directly to the filter directory instantly

lone ingot
#

you can make the keybind with awakened poe trade

loud flint
#

oh interesting, that specific feature i haven't explored

#

i still like the UI of Chromatic Sadge

#

(much love to Filterblade as well)

lone ingot
#

I basically just wanted full local tool and little abstractions, the trade tiering that happens in filterblade isnt useful for ssf either

#

I remember mid settlers I logged in one day and changed some stuff and a bunch of uniques got moved around haha, even though I was on stable settings

#

mega useful for anyone in trade but Im way too picky to have things changed for me

frank drift
#

that is a blessing and a curse of filterblade yeah, you are always on the current version, and sometimes the core of the filter does get changed

#

you can use locks to mitigate it somewhat if it matters to you

lone ingot
#

I only ever noticed it on uniques really, Im sure there was some minor things I missed though

#

think it's good for everyone in trade really, though it does have the "filterblade" effect where it ends up unintentionally raising prices of hidden uniques πŸ˜„

#

I remember a few leagues ago there was a reasonably common unique that was getting corrupted a lot that the market exhausted and it was hidden (or in a lower tier rule that commonly get turned off by people?) on filterblade strict+ or something and it was like 20c per haha

lone ingot
somber mortar
#

wooo! finally got tiers working! tbh this was such a pain to get running

#

pretty please let me copy advanced item descriptions soon please :)

oak estuary
#

Do you just not show a tier when it's ambiguous? I see Evasion rating doesn't have one

somber mortar
#

the note there as a "hey this one is kinda good" sort of thing

inland kestrel
#

@somber mortar you're deciding to use the old poe1 tier ordering?

somber mortar
inland kestrel
#

I don't suppose you're planning to provide an option to use the tier system that matches the game 😁

somber mortar
#

I could probably, but at the moment it isn't worth the dev time. most of the stuff i just wrote for this will get ripped out the second we can copy advanced item descriptions, so it is difficult to choose between dedicating time to stuff that will become obsolete or actually just playing the game instead :)

inland kestrel
#

I just imagine over time we'll all just get used to what the game is showing for various mods. It'd be nice if EE2 could still visualize this. I mean... I understand the confusion (I don't love it either) but it's also confusing seeing it stated different in EE2 than the game

#

can copy advanced item descriptions
this is confirmed coming?

somber mortar
#

no word as far as i know but I would assume it is (hoping it is)

inland kestrel
#

or actually just playing the game
and yeah, i definitely get this. πŸ˜„ I actually was thinking about what to do about highlighting the top tier in my own tool (... vs just playing the game)

formal kraken
#

for me that's a big feature, not having to lookup the max tier for mods

somber mortar
inland kestrel
#

I think what I'm going to do is just have a giant basetype affix lookup table to know the best tier. This won't work on some items where the affix name is the same for multiple tiers but I'm okay with that

somber mortar
formal kraken
#

would've been better if they used the rank terminology

#

in poe 1 the bench crafts are 'ranks' where R1 is the worst

#

aka poe2 tiers

inland kestrel
formal kraken
inland kestrel
#

why would it be?

#

hybrid mods have their own affix names

somber mortar
#

feel free to, there are some problems with it, mainly hybrid stats and stats with multiple values like adds # to # phys to attacks

somber mortar
formal kraken
#

do you get the mod names from the ctrl+c?

inland kestrel
#

oh, sorry. I forgot we're talking about advanced item description. I was thinking of my trade tool (which does get itemized affixes)

somber mortar
inland kestrel
#

😦 Yeah, sorry. Yeah, you've got it a lot rougher @somber mortar. The lookup table I need is muchhhhh more straight forward.

                    "mods": {
                        "explicit": [
                            {
                                "name": "Fletching",
                                "tier": "P0",
                                "level": 1,
                                "magnitudes": [
                                    {
                                        "hash": "explicit.stat_1200678966",
                                        "min": "5",
                                        "max": "15"
                                    }
                                ]
                            },
                            {
                                "name": "of Sequencing",
                                "tier": "S0",
                                "level": 1,
                                "magnitudes": [
                                    {
                                        "hash": "explicit.stat_3283482523",
                                        "min": "2",
                                        "max": "4"
                                    }
                                ]
                            }
                        ]
                    },
#

imagine the advanced item descriptions providing you name, tier, range, and hash 😌 deep sigh

somber mortar
#

yeah i would probably not get the hash from them but it would save a lot of time.

#

although I would unfortunately still need my tables since I wouldn't be able to trust the tiers from the text

#

unless they add some way for me to know if it rolled top tier based on something in the advanced text

loud flint
#

Soon πŸ‘€

#

Once I have the parser working the plan is to make components like this for PoE 2 like I have working for PoE 1 for all major frameworks (and vanilla html)

mental wyvern
#

Building the frontend component is not hard, doing the backend stuff is what annoys me atm

#

Mind sharing how you parsed and formatted data? Will probably use repoe for this but understanding what I need from the tables is a bit tiresome

loud flint
#

It’s just using the CTRL C item from ingame, no fancy parsing outside regex

#

I already have the frontend component 100% working with poe 1 items just need to tweak it a bit

#

I’m making everything open source once it’s done

stable solstice
#

The higher, the better tier make more sense imho. If they want to introduce more so what they should do make -1, -2 lol?

loud flint
#

Oh wait that was for the message above mine I guess, woops

mental wyvern
#

no its for you

loud flint
#

Oh nice

#

Then yeah it's just super simple regex parsing and a bit of logic to manage the cursor index to read data, the input from CTRL C looks like this:

Item Class: Wands
Rarity: Rare
Storm Needle
Siphoning Wand
--------
Requirements:
Level: 78
--------
Item Level: 81
--------
104% increased [Spell] Damage
101% increased [Lightning] Damage
+175 to maximum Mana
+5 to Level of all [Lightning|Lightning] [Spell|Spell] Skills
34% increased Cast Speed
+33 to [Intelligence|Intelligence]
#

Whole thing is no more than 100 LoC right now, but missing a few crucial things (implicits, requirements etc.)

mental wyvern
#

yes but how do you get all automatically

#

I like to have a database with all items you know

#

with images and stuff

somber mortar
mental wyvern
#

can only use repoe for that unless I do some autoit scripting and parsing ingame

loud flint
loud flint
#

this is an older copy

somber mortar
#

currently the brackets are from items in chat, items in inventory don't have them anymore

loud flint
#

Ah yeah makes sense, this is from something someone sent me in chat

#

I need to build a small DB of test cases from various sources

somber mortar
#

hopefully that doesn't break stuff too much for you :)

loud flint
#

Nah I just optionally parse them if they exist

#

Works without as well!

somber mortar
#

cool cool

loud flint
#
  protected parseAffix(affix: string): string {
    let indexLBrace = affix.indexOf('[')

    while(indexLBrace !== -1) {
        const indexRBrace = affix.indexOf(']', indexLBrace + 1);

        if(indexRBrace === -1) {
            return affix;
        }

        const property = affix.slice(indexLBrace + 1, indexRBrace);

        const splitProperty = property.split("|");

        affix = affix.replace(`[${property}]`, splitProperty[0]);

        indexLBrace = affix.indexOf('[', indexLBrace + 1);
    }

    return affix;
  }

This is the logic, pretty simple

somber mortar
#

yeah, i'm just using regex for my version not terrible at all

loud flint
#

Close enough kekW

#

Need to boot up the game again to double check how things look there

ashen aspen
#

i always wanted to do a discord bot where you just paste the item into a channel and the bot parses that and turns it into an image of that item

loud flint
#

that's one of my goals with this project actually

#

it's already somewhat done

ashen aspen
#

i got the basics of that working but never finished it

#

nice

loud flint
#

except it goes Sanity CMS -> webhook -> screenshot -> Discord

#

but plan is to make it fully generated without having to use headless chrome

ashen aspen
#

i then imagined some links below that like "open item in craftofexile"

#

got that working too.. but it's too complicated, i had to hook into the js of coe to make it work ;)

loud flint
#

already done for poe 1

#

using klavyeRs parser under the hood

#

but writing my own from scratch for PoE 2 items (and eventually for PoE 1 items because there's a lot of still uncaught edge cases with those parsers)

ashen aspen
#

ah, cool :)

#

yea, there's some

loud flint
#

Writing the parser for PoE 2 is much more simple tho because it doesn't have to deal with legacy enchants, crucible items etc. kekW

ashen aspen
#

for now ;)

compact wigeon
ashen aspen
loud flint
# ashen aspen how are you doing the screenshot?

Rough TL;DR is:

Sanity sends webhook payload to the backend
Backend grabs the item from the payload
Spins up a puppeteer instance
Navigates to URl containing ONLY that item
Takes screenshot
Sends to Discord

#

SUPER dirty but does the job

ashen aspen
#

heh, kinda funny cause i it it the same way

#

but basically spinning up chrome for this sounds heavy

loud flint
#

Yeah it's way overkill kekW

ashen aspen
#

would be cool to create item images in some bitmap lib

loud flint
#

Yeah indeed, that's what I want to do

#

Just haven't gotten that far

#

Too many things on the TODO

ashen aspen
#

there was some open source python tool that is able to do tit, but it was pretty outdated

loud flint
#

I'll try to find the time for it soon, probably before the new PoE 1 League starts

#

For reference I help manage a mirror shop, so x-posting new items to a Discord really helps for visibility

ashen aspen
#

that's nice. i'll follow you on gh to keep up to date with this

#

ah cool. i looked at sushis shop website to figure out how it's done there too

loud flint
#

That's me!

#

Well, I'm not Sushi, but that's my work

ashen aspen
#

figures

#

heh

loud flint
#

Trying to make as much as possible of this open source

#

But gotta clean up a lot of the code first

#

FWIW the sushi shop uses the above GH repo for the rendering

ashen aspen
#

good to know. when i started looking into this, i thought there might be some lib every popular poe community tool used

#

but it seems everyone reimplements it and there's 20 solutions to the same problem

loud flint
#

Solving problems is half the fun cat_party

ashen aspen
#

indeed

loud flint
#

Who maintains RePOE atm?

lone ingot
#

@zenith zodiac afaik

#

maybe others, unsure

worthy cape
# somber mortar yeah, it makes a lot of things easier in the code(like **way** easier), and also...

This is all my own personal thoughts.
I'm not sure if it's a good thing to introduce a different ranking system that actively conflicts with the game, as that may lead to players communicating the "tiers" to each other with either confusion or having to qualify what tiering system is in use every time.
Maybe call it something distinct from Tier, like the suggested Rank that has historical precedent or a new word all-together?
The bet on things becoming obsolete is something I understand from past dev, but what if the new ways are intended to stay?
Again, this is my own thoughts, no indication of future to come.

loud flint
#

hi zao big fan πŸ‘‰ πŸ‘ˆ

worthy cape
#

Oh, by the way, you still have Snos' Discord ID hardcoded in the source code πŸ˜„

somber mortar
# worthy cape This is all my own personal thoughts. I'm not sure if it's a good thing to intro...

idk, I'm probably leaving it as tiers for right now right now. from my limited hearing of other players talk about it, they still call the best tier T1. I 100% agree that having a naming convention that is different from the game will lead to some confusion.
The absolute easiest thing for me would probably be to add a setting "use legacy tiers" which would be disabled by default and when enabled switch from new tiers to old tiers (I would argue there should be a setting for in game too).
I think the comment about Rank was that the game could have potentially used Ranks to be more clear that higher is better instead of Tiers, since tiers have the notion that lower is better and 1 is best.

worthy cape
#

There's definitely a schism between the old guard that are used to their ways and everyone that sees the current tiering in-game and on trade2. πŸ˜„

somber mortar
#

yeah, overall naming stuff and changing conventions are both difficult :)

worthy cape
#

I never looked at this before, how do you determine what the "T1" of a mod is; is it possible to always do so in the presence of unobtainable mods and unique mods?

somber mortar
#

The bet on things becoming obsolete is something I understand from past dev
This was mainly in reference that a lot of the stuff I'm doing right now is hacky since I'm assuming i will be able to rip it out if I am able to copy advanced item descriptions

worthy cape
#

I'm thinking of things like Elevated mods in the past that you'd consider being outside of the regular tiering, for example.

#

In any way, it's nice to see you on Discord and talking about your project.

somber mortar
somber mortar
worthy cape
#

Ah, name-based.

loud flint
#

Honestly this community reminds me of the 3rd party dev Riot community back in the days

#

Love to see it

somber mortar
#

Should ones with underscores be ignored? they are listed on DB and look like they exist based on the trade site

somber mortar
# worthy cape Ah, name-based.

The tier itself is actually calculated on the frontend, based on how many mods are higher values for a stat that still are valid for the current item class

loud flint
#

Sounds similar to how I solved it for a few outliers in the PoE 1 data

compact wigeon
#

Outliers are a pain in the ass. I always hated adding hardcoded fixes for edge cases that got invalidated by a new patch in path of pathing.

worthy cape
#

Underscores in IDs were historically introduced to avoid hash collisions.

loud flint
modest path
#

Re: inverse tiers, maybe display the maximum if known instead of reversing them? Hell, the game should display the maximum or have the info available in the ultra hidden alt hover that gives you the name of the mod

#

Leaves open the possibility of omitting the max if you can't figure out what it is

golden knot
#

Agreed, keep consistent with the game and enhance the information: T1/5 or T4 (7) etc.

#

And we can all hope GGG either does the same enhancement or reverses things back to T1 = best

somber mortar
somber mortar
#

well did end up finding that one, description file was just ordered wierdly

zenith zodiac
worthy cape
#

You, yourself and lvyrΓ©ne.

zenith zodiac
#

does anyone want admin on the repoe repo btw?

clever thistle
#

the repoe repo peepo?

lone ingot
#

we could say "top tier mod" in place of t1, etc

#

my intution says GGG didnt make t1 best to allow for design space above t1

#

if you think about it, if +100 hp is tier 1, how do you release something better than that? do you make 120 hp the new tier 1 then downgrade the rest? how does that work for all the things tied to it like weightings, 3rd party tools etc

#

it sucks for right now but I think it makes thing easier long term

velvet fog
#

Let Ghazzy ask this question in the interview

formal kraken
golden knot
#

Since the tiers are just a visual label (presumably calculated and cached once per game build), when they introduced new T1 mods, the underlying IDs of the existing mods ensured nothing broke. They all just changed their tier label.

zenith zodiac
#

why show tier numbers at all? just show the number that actually matters: level requirement

hazy fiber
#

because people want to know if theres an upgrade available, and poe2 has the issue alot less (I assume because of how tiered rares work?), but poe1 has some mods that are BIS that have very low level requirements relative to the rest of the mods (eg life)

#

so level requirement runs into a similar issue as the current tiering
in that people need to use third party resources or memorise the info

#

but I am sure certain tech billionares would prefer level req

fleet helm
#

does anyone knows someone from support? , my account was blocked and i really wanna play

calm adder
#

This isn't a support channel, we're not GGG employees.

hazy fiber
#

2:30 am is not a good time to get support to help you is my assumption

fleet helm
#

i know this isn't a support channer, i sent it like 4 days ago and i can't log in, i guess i'll wait more days, thanks anyway

calm adder
#

That sucks but we can't do anything to help you sadly. Support will eventually get back to you, rest assured.

modest path
#

After seeing some recent videos, I think being able to click items on the ground without dragging them to your inventory is robbing us of feeling their weight, lowering their perceived value.

somber mortar
#

this is something that I hope is addressed in the interview/patch info on sunday

carmine merlin
#

Should slow the cursor down and vary it based on the items weight too

lyric umbra
#

man I really wish we were allowed to read at least some parts of process memory

#

I want to add rich presence to this game without it being hacky as hell

#

I also just really despise poe2overlay

somber mortar
#

Is there a site for poe2 like poe.ninja that is ready for/accepting api queries? i know poe2scout.com and orbwatch.trade both are doing stuff like poe.ninja but I dont think either have an available api yet.

wind garden
#

There isn’t an official poe 2 api yet. So it’s difficult for tools like that to offer an api that doesn’t have official support themselves.

loud flint
#

Plan is to ONLY be a b2c API middleman for PoE 2 stuff

#

Ie. no own frontend, just API for other tool developers

#

Also working on like 3 other things, damn you side project scope creep PEPEHANDS

golden knot
#

Are you me? lol

#

Side Projects Anonymous

loud flint
#

My node_modules footprint on my machine is growing ever larger

frank drift
loud flint
#

oh yeah would you look at that

frank drift
#

I've just been doing my own trade queries

somber mortar
#

yeah, looked at them with f12, plan would be to just transform whatever one i use to follow the poe.ninja schema since that is what ee2 already uses. just wanting to double check with devs before using

loud flint
#

Getting there πŸ‘€ Would people want requirements that doesn't exist to be returned as undefined, 0, or key missing?

#

Next step is parsing mod tiers from the above values as well

clear plover
#

under "Registering your Application"

We are currently unable to process new applications.

#

does that mean that I can't create a new app?

loud flint
#

Just means any applications wanting to use Oauth/stash/official api won't be processed right now

#

So yeah

clear plover
#

how long has it been like that and are they ever restoring it?

loud flint
#

Since PoE 2 launch ish, a bit before

#

And yeah I guess they will once there's less load internally

clear plover
#

I just spent hours setting up a dev environment only to find that line as I was starting to go through the docs

loud flint
#

If you're planning to develop and app for PoE 2 you're not missing out, there's no official APIs yet

clear plover
#

I would probably support PoE2 also but I am just sick of the tab search tools for PoE1

#

regex is a lackluster solution, especially with how clunky the map tab UI is

loud flint
#

I wouldn't hold my breath, there's probably still a ton of things to do with regards to PoE 2, but hopefully they open applications up again soon Prayge

loud flint
clear plover
#

hey you guys might appreciate this, it's a starting character planner/sharer I worked on last year for some of the older fallout games

loud flint
#

Oh shit love the UI

clear plover
#

no images were used in that

#

that's all procedural svg trickery and css

#

I was originally planning on adding full level plans but have been out of the fallout mood for a bit

#

it looks good but it's performance is terrible on some machines and browsers

somber mortar
#

oh, awesome! I thought I had heard somewhere that it wasn't getting updated but if it is then this works!

wind garden
#

oh no way

#

is it being made by rasmuskl?

frank drift
#

yes

loud flint
#

Okay I'm pretty happy with this

clear plover
#

yours is slightly less crammed

loud flint
#

yeah there's some very minor things left

clear plover
#

and more readable

#

as a result

loud flint
#

yeah i like the slight extra spacing

#

i think i'll keep it like that honestly

#

Couple edge cases left with items, need a larger sample size for testing parsing

loud flint
#

Sadly the copied items doesn't contain which elemental damage it is, so will just have to render them like this

#

I think I might have a huge edge case with corrupted items

#

But for now time to deal with magic and unique items

worthy cape
loud flint
#

Less edge cases than I thought, more than I would have liked DESPAIR

clear plover
#

looks great IMO

loud flint
#

was a pita to handle flavor text + corrupted without breaking all the other items

#

but worked

somber mortar
#

it looks amazing!

loud flint
#

That's not what either of you are gonna say when I open source the parser kekW

#
  parseFlavorText() {
    if (!this.corrupted) {
      this.corrupted = this.parseCorrupted();
    }

    const rarity = this.parseRarity();

    if (rarity !== "Unique") {
      return undefined;
    }

    const indexesOfDashes = this.getIndexesOf("--------");

    let indexFrom = -1;

    if(this.corrupted) {
        indexFrom = indexesOfDashes[indexesOfDashes.length - 2];
    } else {
        indexFrom = indexesOfDashes[indexesOfDashes.length - 1];
    }

    const nextLineBreak = this.input.indexOf("\n", indexFrom);
    const nextDash = this.input.indexOf("-", nextLineBreak);

    return this.input.slice(nextLineBreak, nextDash).trim();
  }

CAUGHT

#

absolutely filthy but it does the job

clear plover
#

control + c parser?

loud flint
#

Yup!

#

Parser and renderer

clear plover
#

I would've done it dirtier in terms of memory probably

somber mortar
#

hey if it works it works!

clear plover
#

.split("------------")

loud flint
#
[1.22ms] Parse
#

Not bad

#

Can probably get that sub-ms

#

1.7ms in ts-node, 1.22ms in bun

oak marsh
#

Never worked with any APIs, what am i doing wrong here?

#
def search_items(query):
    url = f'https://www.pathofexile.com/api/trade2/search/'

    response = requests.get(url, headers=headers, params=query)
    if response.status_code == 200:
        formatted_json = json.dumps(response.json(), indent=4)
        print(formatted_json)
    else:
        print(f"Error: {response.status_code}")

query = {
    "query": {
        "name": "Fate Call",
    }
}

search_items(query)

> Error: 404
loud flint
#

And my Python is rusty, but I think you have to send it as json=query

#
def search_items(query):
    url = f'https://www.pathofexile.com/api/trade2/search/poe2/Standard'

    response = requests.post(url, headers=headers, json=query)
    if response.status_code == 200:
        formatted_json = json.dumps(response.json(), indent=4)
        print(formatted_json)
    else:
        print(f"Error: {response.status_code}")

query = {
    "query": {
        "term": "Fate Call",
    }
}

search_items(query)

This should be correct, at least works for me

#

You also need a user agent in the header of the request

#
headers = {
    'Content-Type': 'application/json',
    'Cookie': 'POESSID=YOUR_SSID;',
    'User-Agent': 'Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24',
}
#

For what it's worth: I wouldn't recomend the PoE tradesite API if it's the first API you ever work with, primarily because it's technically unsupported, and difficult to work with if you're new.

#

Not trying to discourage you or anything

velvet fog
#

Cookie is POESESSID and you should use your contact in User-Agent

loud flint
#

Woops forgot that last part 😬

oak marsh
#

thanks a lot! how you understood that correct to use "term" and not "name". maybe you have some sort of template for filters?

loud flint
oak marsh
#

ah, i see, thanks! as far i can understand i cant get more then 100 items with same filtered stats, if so, is there other method to get all items? the final goal of this exercise is collecting database of items for ml project

loud flint
#

IIRC those are not 100 items, but 100 result sets which you can make another request for to get the actual items

#

I want to say it's 10 items per result set but I could be wrong

somber mortar
#

i think thats right from what I've seen

#

although I haven't messed with that too much apart from bug fixes

clever thistle
clever thistle
hexed mesa
rose gyro
#

do you have a link to more information about all of your projects/tools?

#

Question: apparently Filterblade can sync filters to PoE2, does that mean GGG enabled their API's?

#

Developer docs still mention they don't accept new applications, maybe they opened it up for existing users?

loud flint
loud flint
loud flint
rose gyro
calm adder
#

similar to what you can do when you create an online filter manually

rose gyro
#

oh wow, interesting. any idea whom i should contact to get access to that API? I sent a mail to support but they told me they couldn't help me.

empty mango
rose gyro
#

yea that's what i read. not really equal playing field then if someone who already had access, can use that even for poe2... sucks :/

hexed mesa
#

as per docs realm is pc, xbox, or sony. so no idea whether it works for poe2. as far as I know both novynn and scopey said that there are no poe2 apis so wouldn't be surprised if it's just for neversink

loud flint
#

could be that docs are just not updated, i think account-wide stuff is supposed to work with PoE 2

hexed mesa
#

though there's a chance that docs are just outdated and lower priority atm

devout siren
#

Is there a trade api for poe2

loud flint
hushed relic
#

I received 0 replies or communication

#

The online filters were just back

#

And the old oauth started supporting poe2 as a platform

#

Actually tried getting a reply from a GGG guy about it regarding consoles, but complete radio silence

#

Maybe they're still on vacation, but they're in discord, so idk

compact wigeon
#

Things have been suuuuuper busy here so there hasn't been much capacity to spare. I'm doing my best to help out, though I'm still quite new so if anyone ends up getting incorrect information from me, then.. uh.. sorry? πŸ˜„

compact wigeon
hushed relic
#

Don't worry it was a private conversation with one of your colleagues, none of it is your fault

compact wigeon
#

Now I'm confused.

cobalt wolf
#

For Poe1 i could get item data in a big json file, is there such a thing for poe2?

loud flint
hushed relic
loud flint
#

Well would you look at that @hushed relic

#

Seems your prayers have been heard

hushed relic
#

Also should have renamed myself

#

@compact wigeon sorry :D

#

Forgot

compact wigeon
#

I'm confused again, what are you apologizing for?

loud flint
#

in this thread: two wannabe canadians

hexed mesa
hushed relic
#

I've changed my nick to alwaysfloat instead of neversink

#

I thought it'd part of confusion

carmine merlin
#

I was wondering why you replied after Alwaysfloat was pinged haha

compact wigeon
#

Okay now I'm less confused. The name wasn't part of the confusion, I knew who you were kek

#

The reason I posted was because I'm going to be starting to help out with oauth applications so we may be able to open those up again soon. Hopefully.

hushed relic
frank drift
#

I need to hurry up and get a filter out so I can at least beat Sides

compact isle
#

online filters don't work for console yet, so we were waiting for that before announcing anything

loud flint
#

Probably not a question for you but the game team, but do you know if there's any plan for CTRL C ingame to return implicits for weapons that grants skills? Ie. this one

compact isle
#

I don't know what's happening with Ctrl+C stuff

loud flint
#

I feel like there are some cases here I've forgotten, anyone with a second eye?

#

I could also add parsing for things like life flasks and waystones

worthy cape
#

Quest items?

loud flint
#

Oh good one!

#

Charms as well, just remembered

charred lake
#

I've seen items with 2 of the enchant looking texts on em anyway, think it's that

loud flint
#

Seems to work, thanks!

#

Didn't have any corrupted items, had to corrupt a random rare πŸ˜‚

copper steeple
carmine merlin
#

I think the colour codes are in the game files somewhere

loud flint
#

I just did the good ol' color grab, but yeah I think they're also in the game files

carmine merlin
#

Not sure if these are for text

velvet fog
#

metadata/ui/uisettings.xml

loud flint
#

MVP

#

Need to clean up the code a bit then I'm ready to release v1.0 at least

#

I wonder if I should separate the packages or not (parser and renderer)

#

Probably makes the most sense

somber mortar
#

Is there a good way to find the roll ranges for uniques' mods? The base+goldvalues+mod tables doesn't seem to work since uniques sell at a fixed cost. With the changes to uniques in new patch, I would like to actually write a real way to get the info if possible, since my previous solution was manually entering the roll ranges from poe2db

carmine merlin
#

Roll ranges come from the stat files in the game files

loud flint
#

Also: clean up the code kekW

bitter kiln
#

is PoB for poe 2 expected to release this week?

somber mortar
loud flint
#

But I might hold off a tiny bit in case the CTRL C changes in the near future

somber mortar
#

adding tests for the parser i'm using is something i have been putting off doing for a while now πŸ˜…

#

also awaiting the copy advanced text addition at some point hopefully :)

somber mortar
calm adder
zenith zodiac
primal pewter
#

I just took at look at the poe2 data and I knew that the spawn weights were removed, but I didn't expect the spawn tags to be removed as well. So currently the only way to know what spawns where is to go through gold prices? It feels like that probably wasn't intended by GGG and may be limited in terms of what information it provides, so if I want to figure out what can spawn where, the actual best way is scraping the trade site (or poe2db / craftofexile who already did this)?

primal pewter
#

Thanks! Trade api here i come... sad

rancid tinsel
somber mortar
loud flint