#tooldev-general
1 messages ยท Page 137 of 1
(Incidentally, it disappoints me to no end that "Bone Zone" is not a potential name for Graveyard or Crypt type maps, even though "Zone" is in the word list)
apologies for the horrendous formatting, but here's a dump https://oriath.net/words.html
you'll kind of have to guess which tags are relevant to maps, they aren't split out in any obvious fashion
... wait. do you mean the former? I'm failing to see how rare names could be useful for that
ahhhh, okay
so yeah, you'll find "Cyclopean" listed as a potential prefix for items tagged "urban", "dungeon", or "temple" -- and presumably Tower is "dungeon" (I didn't check)
I think the only tags which get used for map words are beach dungeon cave forest swamp mountain temple urban. (Now wondering what happened to island and plains.)
to save you a few steps, I think this is all of the map words
Does anyone know where something like _.index.bin is in ggpk of macOS?
I donโt recall any differences apart from possibly the version field in the standalone pack. Steam uses the exact same data files as PC.
Not sure if my Hackintosh even boots anymore, as is tradition ๐
This is from the standalone one
Gonna have to copy them out, but it seems highly unlikely that the pack format should have changed.
All my infrastructure is underperforming and macOS can go diaf.
sigh
I should not have gotten up from the sofa, this still insists on UTF-32LE...
@vestal pond Sorry, I'm of no help today, got some stuff to work through.
It does not matter, thank you so much for your willingness to help
It's in there somewhere.
(offsets meaningless here of course, as GGPK files are not deterministic across people)
Bundles2 has 226 entries here, so you're probably missing a ton of them.
The above is from adapting the GGPK template for 010 editor from UTF-16LE paths to UTF-32LE paths and hardcoding 2 entries in the GGPK chunk rather than thinking the version value is a child count.
my god! why do I keep making this kind of stupid mistake
still really curious why they did that. macos uses utf-8 most places, not utf-32
copious amounts of std::wstring in the client ๐
oh... oh no ๐ฆ
@worthy cape Are you Chinese?
Nope, Swedish.
zao? ่ตต?
Took my nickname from an article on C++ in a home computer magazine in my youth, written by two brothers Zhao ๐
I saw Chinese in your game path and thought you were Chinese
Ah, heh. I had copied chuan's path there to illustrate how the tool could be used.
I did install WeGame to try for myself with the help of Google Translate on the phone, but haven't gotten around registering a QQ number to log in with.
I can give you an qq number
Thankfully the problem seemed to be more about command line handling than the Tencent version itself, so I only have to fix that code.
Wait for me
I'll register my own some day, I assume it's possible for foreigners.
Play online games in China need real name authentication to prevent underage addiction to games
Ah, only saw the text on the website and login screen requiring a QQ number. I'll probably not bother then as the data formats seem the same.
I'll focus my work on the hideout tool instead - have made some progress now on matching tiles for rooms: https://i.imgur.com/BaqO358.png
Is this thing going to be open source? I need this stuff.
Still have to figure out how to reinterpret the keys for rotation and flipped tiles.
The biggest problem I have now is that there is not enough information to uniquely place tiles in a hideout like it does in the game without manual work or reimplementing level generation.
I don't want to touch the level generator in any way, so it's going to be a bit of a manual process to populate layouts so that they look similar enough to use as hideout backgrounds.
I don't know how much of this I want to open up, as it has the possibility to be misused.
I'm planning to do some custom client work and need to use these
Tool is also very tied to my local delivery system for game files, fetching them on-the-fly from NAS.
Trade 502, everyone panic 
/trade 502 am I doing it right?
@velvet fog While doing some wiki digging I noticed that the icons for the Expedition stackable currencies seem to be off-by-one for Greater Artifact and up at https://poedb.tw/us/Stackable_Currency, seems like the 1x1 icon for Greater is missing and the rest have slipped up one step.
Any tool devs around who interacted with PoE's OAuth API? I recently got my stuff for it but no matter what I try, at the step where I trade in the code for an access token I always get shouted at for apparently wrongly using GET instead of POST, while I explicitly made sure that is not the case 
okay
managed to debug this stupid thing
for anyone who might run into it too: I forgot to include the www. at the start of the /oauth/token url so I was handed a redirect to include it
and it seems like my client of choice decided that when following redirects it should always change the method to GET
@daring moss At least your client complies with spec
Note: For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 307 (Temporary Redirect) status code can be used instead.
https://httpwg.org/specs/rfc7231.html#rfc.section.6.4.3
Thanks for the flashbacks to an early job I had in researching and improving the client ecosystem for WebDAV file access, including support for client certificates and redirects to other hosts on all sorts of verbs.
(the storage system had a fallback mode where it could "proxy" downloads for somewhat incapable clients, but the primary access method was to make requests to the access node and get redirects to dumber storage pools for high throughput and distributed access)
@hazy fiber I noticed the maximum physical hit taken is still calculated incorrectly in pob, I don't know if it's helpful or if it's bottlenecked by other issues but here is how it should be calculated: https://www.desmos.com/calculator/tc2o94ynkp
the issue is this sorta breaks with damage taken as with a pool of a different size, I was planning on fixing it but havnt come up with a good solution, for instance https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/4120 is only a VERY minor improvement and doesnt fix different pool sizes nor the armour issue but is a 70+ line change
what do you mean by 'pool'?
if you have any idea how to do max hit taken correctly, please be my guest, but currently its just using super old quick and dirty logic from when I initially implemented it, by just dividing the pool size by the conversion amount and the damage taken mult of that type and picking the smallest value
eg life + es, if you have taken as chaos the "pool" is not the same for the phys damage and the chaos damage
also the current max hit taken doesnt factor in modifers to enemy damage (as thats more recent and currently only applies to ehp)
would you mind giving a concrete example so it's easier to understand
using a similar example to what you linked, you have 3000 life, 2000 es (same 5000 "pool"), 10000 armour, 1 end charge and 25% of phys taken as chaos, whats the maximum hit taken?
I assume the 25% of phys to chaos applies before any reductions?
yes, taken as is a very early step, and we will assume 0% chaos res
ok, give me a second to put it in
hey guys, does anybody know how the x and y values for groups in the skilltree json works?
or more specifically, where the origin point is on the tree
I'm assuming the origin is in the middle like so but I'm not 100% sure
the reason I'm asking is because I'm working in canvas where 0,0 is the topleft most point of the canvas, so wondering if I gotta do some math to translate the values
thanks, i think looking through that lua file is gonna help a lot ๐
bit out of my depth here
Seems to be a bit complicated, you might find something of interest in PoB's soup or in @mortal bone 's https://github.com/PoESkillTree/PoESkillTree
There's definitely peeps around here that know how it all fits together, especially after half of tooldev made atlas tree apps ๐
well, it seems it definately uses 0,0 as the middle ๐
Looking at renderGroup, it seems to be largely like that.
i have something that if you really really squint resembles the tree now ๐
๐
i know its only squares but damn im so happy its starting the resemble the tree, was a big step ๐
0, 0 is the middle, but that middle is based on the min/max x/y. For example, the atlas tree has 0, 0 at the bottom middle
wanted to make a small tree for the discord bot embed too but it looked bad when scaled down 
Drawing the wrong thing poorly gang unite! https://i.imgur.com/VHRlHtU.png
another question for those knowledgable about the tree, are the icons for the nodes centered on their location or are they anchored to the topleft
i.e do I draw the circle for the node around with the location of the node as the origin point?
so for this example https://i.imgur.com/wOIBN0Z.png is the circle or the icon in the wrong place
sorry to bother again, working on positioning nodes now relative to the group currently stuck on calculating the correct angle
I'm wondering how the orbits array is used for a given group
so i understand that a node has an orbit prop and orbit index prop, and that the orbit prop relates to the distance of the radius from the group, and the orbitindex is the index of angle at which it is positioned
I see emmit's solution uses some logic to determine the array of angles dependant on the number of skills per orbit, so I have implemented that as well
Passive skill tree JSON is used by the official website and many other community tools to display the skill tree.
so oxid is the index of the number of skills per orbit correct?
ya
okay, I understand that
but how is the orbits array of a group used?
i.e
1:
nodes: (15) ['5865', '38999', '24528', '59920', '63673', '29630', '48904', '8592', '63583', '42861', '50024', '32251', '57560', '9271', '29294']
orbits: (4) [0, 2, 3, 4]
x: -11294.2
y: 3798.7
tells you that group contains those orbits
use $node['o']
o Radii of orbit (0 to 4, orbitRadii = [0, 82, 162, 335, 493])
oidx index on the orbit (skillsPerOrbit = [1, 6, 12, 12, 40])
okay, I think I was confusing myself then
the group.orbit array is irrelevant to position I guess
orbits is associative array of orbitals (i.e. SkillTreeNode.oidx), but you can discard this for render
yep yep working on rendering at the moment, already feel like im drowning ๐
If I knew the full scope of my project when I started I would never have tried. Keep on trucking ๐
what im not sure about is how you know the index of skillsPerOrbit for a given node
so a node has an orbit and orbitindex, orbit references the orbitRadii and the orbitindex refernces the index of an array of angles based on how many nodes there are if I understand correctly
but the array of angles is calculated using the skillsperorbit
not sure how I know this for a node
Have you seen the listings at https://github.com/grindinggear/skilltree-export/#notable-changes?
yeah seen that
I have a function that takes in a value of skillsPerOrbit and returns an array of the angles
what im struggling with is how do I know the skillsPerOrbit for a nodes orbital? I know the index of it in that array of angles if you know what I mean
but I need to know how many skills are in the orbital i.e 1, 6, 16, 40 for a given node
Ah.
No clue there really, did my best to not find out while people were doing it ๐
๐
Isn't that just the first table in the page that zao linked?
scratch that
what I mean
the orbit of a node tells you both the radius and the number of segments in its orbital?
return 2 * Math.PI * node.oidx / skillsPerOrbit[node.o];
amazing thank you, my brain didnt connect that at all
starting to look like the actual tree now ๐ https://i.imgur.com/M82nCqI.png
That wont be completely accurate. You need to calculate the angles: https://github.com/EmmittJ/SkillTree_TypeScript/blob/ecdeabebf8ef1768f3b72bdb654ee8e40ab5edb2/models/SkillTreeData.ts#L288
Then you can use the angles: https://github.com/EmmittJ/SkillTree_TypeScript/blob/ecdeabebf8ef1768f3b72bdb654ee8e40ab5edb2/models/SkillNode.ts#L142
thanks emmit yes this is what I was doing, I found your code in the first link and made a similar function
my mistake was not understanding that the orbit of a node also describes the amount of segments in its orbital
Anyone willing to share how they handle the API's ratelimits? the whole "they can change at any time" shenanigans kinda scare me into fucking it up haha
do you update buckets with each request you send out?
ahh, okay
I was worried specifically because of this line in the docs:
These limits are dynamic and can change at any time depending on our requirements.
sounded like they might change multiple time in an hour
fair enough
looks like I have to write my own leaky bucket implementation 
Prolog
oh, looks like that is completely separate from the language haha
this is the implementation I use https://www.swi-prolog.org/
there isn't any rate-limiting written in it yet unfortunately
Yay, name conflicts again between old established terms (the Prolog programming language) and this here Prolog, whatever fancy web/app product without awareness of the past.

Also, writing software in Prolog? Brave ๐
not too bad honestly
figured out a stack where I can have it both on the back- and frontend
I wonder how the leaky bucket algorithm applies here. given the api rate limit header format X:Y:Z, I assume your bucket can fit X requests. Does it just leak all of them at once every Y seconds?
writing software in Prolog? no.
oof ouch my heart
thanks for the help dudes, pretty much got the tree nice and rendered now thanks to you guys ๐ https://i.imgur.com/xto14Ta.png
do you decode the .itemblob file format?
Nope. Haven't looked at it much since I mentioned it early in the league
Taking another look at it now, though, I see some interesting structure in it. Part of the structure contains some u16 u8 patterns, with u16 referencing Mods.HASH16 and u8 containing the value of the mod
for example:
Metadata/LeagueInfoPanelItems/Scourge/RageUrge.itemblob:
55 bc a1 3a = BaseItemTypes.HASH for Iron Greaves
00 d4 7b 29 01 00 10 00 00 00 00 00 01 00 00 00 05 04 00 2a 05 00 02
bd 1d 04 -- HellscapeUpsideMovementVelocity1 = 4
7b 16 ... -- HellscapeDownsideReducedColdResistance1 = -20 (not sure where value is)
6c 02 60 c9 23 a8 7b c9 aa b8 04
aa 22 80 5c -- LifeRegeneration1 = 1.5 (two bytes?? how is this encoded?)
e9 24 0b -- IncreasedLife1 = 11
b9 ae 0a -- MovementVelocity1 = 10
a5 5c 0a -- ColdResist1 = 10
00 09 2c 02 04 04 03
It'd be neat if we could get something like this from the stash tab river instead of the JSON. I imagine it'd save a lot of bandwidth.
Yeah, that's the one I'm looking at
Oh, and I bet the 02 before the hellscape mods, and the 04 before the normal mods, are counts.
Metadata/LeagueInfoPanelItems/Scourge/OblivionKeep.itemblob
00 a5 ed df -- Simple Robe
00
e9 7b -- ItemVisualIdentityHash
29 01 00 10 00 00 00 00 00 01 00 00 00 05 04 00 2a 05 00
02
5f 4d 14 -- HellscapeUpsideLightningResistance1
eb ce 01 -- HellscapeDownsideDealNoPhysicalDamage___
02
d2 b1 ce f5 -- WordsHash
2c b8 8e e8 -- WordsHash
04
a5 5c 0b -- ColdResist1
50 35 0d 06 -- LocalIncreasedEnergyShieldPercentAndStunRecovery1
88 45 0a -- FireResist1
e9 24 0e -- IncreasedLife1
00 1e 4c 06 06 06 02 01
aa 22 80 5c -- LifeRegeneration1 = 1.5 (two bytes?? how is this encoded?)
5C = 92, 92/60=1.5
7b 16 6c -- HellscapeDownsideReducedColdResistance1 = -20 (not sure where value is)
it's negative value, 0x6c-0x80=-20
02
60 c9 23 a8 -- WordsHash, Rage
7b c9 aa b8 -- WordsHash, Urge
d4 7b -- ItemVisualIdentityHash
Scourge/Mageblood.itemblob
40 bd 34 3f -- BaseItemTypesHash
00
51 bc -- ItemVisualIdentityHash
29 00 02 00 00 dd 7b 4b 2c 00 3b 01 00
01 -- implicitNum
3d 1f 23 --
01 -- wordsNum
b7 1a 5d d4 -- WordsHash
06 -- explicitNum
22 de 04
89 87 01
8e b5 01
16 69 32
a9 de 19
43 24 19
for those who helped me this is how my app turned out, pretty happy with it! https://poe-skill-tree-planner.herokuapp.com/ shame I didnt have time to finish it
I might come back to it again in the future at some point ๐
the background image would be an easy addition that would make it look better
you mean for like each node group?
there is lots I wanted to add but I spent about 90% of my development time wading through how to actually render the nodes and connections, maths is really not my strong point ๐ฆ
or graphics really
just the big image, unless it's supposed to be there and not loading for me
right clicking the background crashed the tab, fun
Apparently it doesn't work at all in Firefox? Or is one of my plugins misbehaving?
disabled my plugins and still doesnt work, so not just you
not tested in firefox ๐ฎ
no rendering of nodes, but tooltips seem to work, and can move the tree
I would hope so since they're all built on the same tech ๐
;p
yep its borked in firefox, not sure what is causing that
guess its handling the js and the canvas differently
does anyone know why requesting https://api.pathofexile.com/stash/Archnemesis with the stash scope gives me a 401?
am I incorrectly authing?
or misusing the endpoint?
surely your code consists only of one line
surely it does not
so you verified sent headers and can show them to us, interesting
the tooling for prolog is a bit weak so I cannot just verify the headers it sends easily. That's why I was asking if that error only happens on bad auth (pointing at messed up headers) or, if it could have other causes
I have since went through painstakingly manually pushing every little change to my server and trying to use a webhook service to inspect my sent requests and realized that something was, in fact, awry with the headers I was sending, which led me to a fix
after redoing a whole lot of other unrelated stuff
but thanks for this amazing assistance you have provided
use curl or smth fancy with ui for testing.
If something would be broken on ggg side Exilence Next would stop working first
I wasn't concerned about something on their side breaking. I have finally ironed out the kinks in my OAuth client implementation and tried to fetch some stashes to test out the token I got. which failed on my side
I don't see how curl would help me with ironing out problems in my code
verify that what you're doing should work
fair point
I guess I should figure out how to get my token out of there to test stuff with it
ggg fixed it, maybe Art directory now is not special too? ๐
is there any way to get the Stash_ID of a stash tab in game?
no idea, but /api/stash/<league>, /character-window/get-stash-items and /api/public-stash-tabs
@fickle yew https://poe.ninja/challenge/builds/char/Heartiz/UNHOLY_IRON?i=18&search=item%3DUnited-in-Dream%26sort%3Ddps has a broken display for iron mass ๐
Looks pretty cool imo

uh guys need to ask some sort of stupid thing
as I always develop apps for myself, first time ever trying to publish something and dunno how to hide config.yml
like it has headers, and header has my dev OAuth 2 key
python
wait if i config it with env, add it to gitignore ppl will download it and it willnt work because of no oauth key. are we sure this is the right way?
Stuff that interacts with PoE web infra I believe is kind of assumed to have some part of it hosted dealing with the OAuth junk.
yeah I need to host bearer oauth on a server...
no if you dont share your env your setup wont work
https://www.pathofexile.com/developer/docs#guidelines
OAuth Credentials
Keep your credentials safe.
Don't share your account or application's credentials with anyone else.
Don't include any application keys or credentials in your code.
Don't embed keys or credentials in a distributed binary.
this is literally hardest part of the code it is better to use myself I decided.
@worthy cape Do you have an updated version of the arm doc https://zao.github.io/poe-doc/arm.html ? I can't parse the line between the apa entries and the k-lines. And the k-lines does not have an integer number of lines either.
I'm in the process of updating it now that I have figured out more stuff, but for the things you wonder about:
The x-by-y number of entries is determined by the width/height values in the earlier 1-by-1 entry. If that one isn't a k-entry, I assume 1x1.
Between the 2*(a.0 + a.1) entries and the k x-by-y section there are a number of lists, each of which has a count followed by that many entries, vaguely parsed like this:
auto ver = ret->version_;
size_t const d_kinds = ver >= 29 ? 6 : ver >= 26 ? 5 : ver >= 20 ? 10 : 9;
for (size_t kind = 0; kind < d_kinds; ++kind) {
size_t d_count;
po.reset().integer(d_count).eol();
for (size_t i = 0; i < d_count; ++i) {
auto &d = ds[i];
po.reset().integer(d.x_)
.spaces().integer(d.y_)
.spaces().real(d.h_)
.spaces().quoted_string(d.key_)
.eol();
I haven't done any mass parsing recently, do you have any particular files that are weird?
Pushed my current notes, should be reasonably correct.
There is no integer line before k-lines, how to deal with it?
Earlier in the file there is a single k-entry. The first two values in that is width/height of the big grid.
Ex: k 13 13 2 2 0 0 39 39 39 39 39 39 39 39 1 3 1 1 0 0 0 0 0 0
This indicates that the room has 13x13 tile keys in the big grid, and the rest of the digits are about constraints on the room as a whole.
so it will contain n-height k-lines
Aye, there will be 1x1.height number of lines, and each line will have 1x1.width number of entries.
The first line is the bottom-most row of the room, that is, the one with the lowest Y coordinate in the world.
There, the doc CI has run.
I've only recently gotten the details of the constraints figured out, so there can be inaccuracies as the docs diverge from the code.
A visual example that might help to orient yourself: https://i.imgur.com/P2hzzjF.png
I started with Uthred's arena which was a mistake, as things there are rotated several times before it reaches the configuration that it has in the real game ๐
karui shores is a nice complicated room for visualization purposes :3
Ooh, that's fancy. Seems like you've got quite a bit more sorted than I do.
I'm always surprised when new areas take time to load until I look at the console and see my backend churning:
All those angled lines along the edges of tiles, what part of the data do you source them from?
I'm quite happy I don't need to care about most aspects of level gen for hideout vis, but a lot of them still matter and I have some big open problems still about walkability of tiles as the data there is in undeciphered formats.
this is how I generate tile meshes
Ah, derived from the edge indices.
arm versions
[14] => 110
[15] => 2
[16] => 26
[18] => 73
[19] => 7
[20] => 36
[21] => 45
[22] => 3096
[23] => 13
[24] => 4
[26] => 7713
[27] => 2070
[28] => 534
[29] => 3492
[30] => 1743
[31] => 2609
works well with new document for all current .arm files
exception blank line in some arm, Metadata/Terrain/EndGame/MapSlumPrecinct/Rooms/SlumWalkway/var_1.arm
version 22
2
"Metadata/Terrain/RuinedCity/SlumArch/city_slums.gt"
"Metadata/Terrain/RuinedCity/SlumArch/city_slum_arch.et"
7 7 1
1 1
""
0 1
k 7 7 0 0 0 0 21 21 21 21 21 21 21 21 1 1 1 1 0 0 0 0 0 0
Heh, had a workaround in my source for that:
// Parse b_upair
if (po.is_next_newline()) { po.reset().eol(); }
Metadata/Terrain/Act6/Area14/Rooms/shrine_1_1.arm missing solo k
It has an s instead, it can possibly be any of the five types of entry. All entries not k I believe have a grid of 1x1.
In the case of this shrine room, the room is uninteresting geometry-wise with just a standard fill tile as its only tile, the point of it is the attached shrine AO and the blood decals.
Assorted footer lists
v14: doodads, decals1
v15~v22: doodads, decals1, decals2
v23~v26: doodads, decals1, decals2, unkArray2
v27: doodads, decals1, decals2, unkArray2, unkLine3
v28~v31: doodads, decals1, decals2, unkArray2, unkLine3, unkLine4
Spent a while tonight trying to figure out how I was somehow misinterpreting Karui Shores as the area seemed to be missing a lot.
Turns out that my viewer is still using late 3.16 data files via my data delivery service while my expanded reference tree on disk is current 3.17.
Heh. Whoops
What are you using for data storage, btw? I recently discovered minio which is pretty neat (S3 compatible, locally hostable)
How much disk space is there now for historical data?
Still using my homemade system with hash-addressable loose files on a web server (170 gig) + 20 gig of index JSON.
Havenโt counted how much the raw releases take as itโs hard to measure on the current RAIDz volumes but somewhere around 11 TB.
My C++ codebase caches the index files for the releases I care about on the client machine and fetches data files on demand.
Went for the simplest approach that worked there rather than a local database server or database file, as I had trouble tuning for query performance and had no good solution for multiprocess access.
Newest innovation on the data front is that Iโve started zipping the releases for long term storage and processing, as the file system traversal cost too much.
Download and ingestion is still manual so that why Iโm behind on what is available to my testbed.
heh -- I did something similar a while back: https://github.com/oriath-net/pogo/blob/main/poefs/open.go#L59
170g seems fine, want to build one for myself
Current data tree with individual zstd compression: 196G
That figure could be a bit of a lie, not sure if du gives correct output on this machine. Roughly 2 million distinct payloads.
how are files stored? ex: /15d/15d41118c63554a3ebf6aeb5ffa28a74903d98eb3d3730a161e083a03e163f7a?
Yeah, named by content hash, in directories of first three hex digits to keep the file system happier.
2000000/(36*36*36)=42.8
Index files are NDJSON with entries of hash, path, path hash and file size.
Something not JSON would make loading faster for sure.
I prefer MySQL
One goal for me was something that could run on user machines without any external services or with only file databases like sqlite3
Modern SQLite supports JSON (https://www.sqlite.org/json1.html), which is pretty nifty. You can even index JSON properties if you're feeling wild
In total 2M unique files, 1M unique paths, 250M file entries.
You start needing a ton of indices for queries and the data is hard to shape or partition in any way that makes it good to query.
Decided to focus on the actual tools rather than universal access to data for a while.
Itโs really neat however to run the viewer on a new computer and see it populate the local cache on the fly.
Depending on what kinds of queries you want to run, it might make more sense to structure the database as one row per path + file hash, with the row including the range of versions that file existed in.
It'd make queries for "what files existed in this specific version" more difficult, but would dramatically reduce the number of rows required, and would make displaying changes to a file / in a directory much faster.
plan to try it out on the 29 major release https://poedb.tw/us/DepotDownloader#Manifests
Hall of Grandmasters /w Grandmasters Stats
https://poedb.tw/us/Hall_of_Grandmasters#Grandmasters
https://poedb.tw/us/Karui_Shores added Topologies link to https://poedb.tw/us/Epilogue_Karui_Island
Kind of funny to see "apa", "bepa", "cepa" there - they're the foo/bar/baz kind of metasyntactic variables I used at the time for unknown stuff. "apa" being "monkey" and the rest being nonsense are you go through a/b/c/d ๐
You seem to have misspelled "Dimension", there's 16 alternatives per hex digit so two digits puts you at 256 directories so ~7813 files per dir.
https://api.pathofexile.com/leagues/Archnemesis
leagues api still shows "endAt":"2025-02-04T22:00:00Z"
๐ต this is the league that never ends
it goes on and on, my friends...
Plenty of time to work on tools in other words.
Very cherry-picked outcome but Iโm quite happy about todayโs work, definitely time to hit the sack: https://i.imgur.com/RpLsdm1.png

Looks great
is modding allowed in poe?
"no"
You may not alter or interfere the client or its data files. You may run third party tools that adhere to a set of rules, typically showing overlay windows above the game and doing specific client actions in response to user actions.
See the ToS, but this is the short list: https://www.pathofexile.com/developer/docs#policy
So like I cant change the ui or grab damage numbers?
Correct. There is no mechanism for either of those.
dang
you could make an overlay, but no messing with the program
Does anyone happen to know how the ImplicitTagsKey array in Mods.dat is composed? Are some inherited Tags derived from sources outside of Content.ggpk?
In many cases two Mods with the same ModType will have the same ImplicitTagsKey array. But there are exceptions, such as:
rid Id ModTypeKey ImplicitTagsKey
16942 JunMasterVeiledColdDamageOverTimeMultiplier___ 6309 [715,663,717,637,318,310]
17538 ColdDamageOverTimeMultiplier2h1_ 6309 [715,663,637,318,310]
In other words, these two Mods have the same ModTypeKey but different ImplicitTagsKey arrays, in this case with 717 => "unveiled_mod". So ModType alone is not sufficient to know all inherited Tags. But I can't seem to find the other contributing sources (if they exist).
As far as I'm aware, there are no other sources at runtime -- the data files are ground truth as far as the client is concerned. The server probably has similar files with some extra columns that aren't present on the client side.
Right. I've searched other data files trying to find ones from which those arrays might be composed, without success. I wasn't sure if I was merely overlooking something, so I thought I'd ask if anyone already "knows" that those particular data are not in the ggpk (thus implying that particular field is derived from non-client sources). Probably too esoteric for someone to incidentally know, but I figured I'd ask anyway!
thank god, I started writing my own map mod regex tool and was also wondering where to find the info in words.json. turns out you created the tool already! thanks โค๏ธ
The arrays are part of Mods.dat. The data format supports arrays as a native data type
Yes, I know -- the example I used above is from Mods.dat. Maybe I'm being unclear. I'm not talking about the data structure itself.
- Mods themselves can have Tags, covered by
TagsKeyinMods.dat.TagsKeysays "Here is the list of all the explicitly-applied Tags on the Mod itself." - Mods can also inherit Tags from components, covered by
ImplicitTagsKeyinMods.dat.ImplicitTagsKeysays "Here is the list of all the inherited Tags this Mod received based on other components, such as ModType." But the information about which components contributed which Tags is not present here.
I'm looking for the list of all contributors to a given Mod's set of inherited Tags.
Unfortunately the answer seems to be "that list of contributors cannot be discerned from the ggpk alone", but I figured I'd ask here as a longshot.
as I remember, there are at least 4 Tags type used in Mods.dat, Spawn/Added/Generated/Implicit
Spawn: intersect with BaseItem
Added: added after Mods applied
Generated: multiply after Mods applied
Implicit: intersect with Craft
@mortal bone you're making poeskilltree right? I would like to change the skill tree link on pobb.in which goes to the official website to poeskilltree.com or maybe a fullscreen overlay/modal. What do you think?
@formal kraken sure, I don't have any issues with it being used. Everything is cached through cloud flare, so it wouldn't be any extra cost to me.
awesome, mind me experimenting with embedding it through an iframe?
this might require you to change some headers though
Feel free. I am not sure how good webgl does in an iframe
aight, I'll try some stuff locally, performance should be the same though
Did someone already write a PoB code parser in Go?
xml is pain so if I can save myself to write the data structures it would be great
maybe not in go, but there should be somone around who has one in somthing other than lua
There are plenty and it's not hard to do
I ask because with the std lib of Go you can't "dynamically" unmarshal xml like json, you have to declare explicit data struct, I hoped someone already did this part
i know one exists for python didnt see it for go yet
damn I can't ping deputy tooldev anymore
yeah you're on your own for new tooldevs now 
enjoy your meaningless role 
Youโve gone and become a free ferret? 
Has anyone found any surprises in the current patch due to DX12 support being added, or is it much the same?
I'm a bit afraid that the material fragment system might've been touched, but hopefully it's much the same.
I noticed that they removed loading screen and now I see texture streaming in action ๐
Unsurprising to anyone, my data tooling is still in shambles.
hey I'm pretty new to coding, but I'm trying to create a tool that helps price bulk currency sales by taking clipboard information from poe and then finding the chaos value of the stack via poe ninja's api
I've managed to learn how to call the api and get a string of the json but I'm kind of stuck on how to do anything more 
using C#
at the moment I'm able to get the information from the user's clipboard and will eventually be able to parse out the stack size, and like I said I've got the api's output
just not sure of how to access these fields in my logic for working out sale price of the user's hovered currency stack
to give you an idea of how I'd like this thing to work:
- User hovers over stack of currency and hits ctrl+c
- Program takes clipboard information and gets value of the stack (in chaos) from api
- Copies something like
2280/19to user's clipboard for easy sale
@brave steeple if you want to learn coding keep doing, but from practical view poe.ninja is not best for bulk pricing. More items in stock you have, more price you can demand, but poeninja prices are for 1 qty.
So to correctly get price you need to make request to the trade api, at this point you're just reinventing price-check apps (Awakened Poe Trade, Poe-Overlay fork)
appreciate the response and I do plan on continuing regardless of whether or not this pans out
I was mostly looking for an easy way to get the 2280/19 string into poe because for some reason my brain sucks ass at pricing stuff
and everyone has told me that for a project you should try and automate something that you already do ๐
If you dont use mentioned tool it's confusing for new player indeed
you know I've been using awakened poe trade I think since it was first released and never noticed that 
jesus christ 
well maybe I'll finish it even if it's not useful, or find a new project to improve with
Maybe I'm misremembering, but isn't there a way to convert prices to chaos orb equivalent directly in a poe trade api request? I swear I remember seeing something like that a while back, but can't find it now
Like I swear it had something like {chaos: 150, exalted: 1.5}. But maybe I'm thinking of a different api
I wouldn't trust pathofexile.com exchange rates anyway
they can go weeks without being updated because of the db design
I usually exploit the hell out of the incorrect rates
There is a browser plugin that does the conversion and shows both on the website, maybe you're thinking of that?
which uses poeninja for the rate
the internal rates cdr is talking about get used when sorting by chaos equivalent
Anyone having problem with Mercury Trade not tracking the trades anymore?
the overseer still works
but it just doesn't track my trades anymore...
how do you guys determine the type of item being hovered from the clipboard data?
are you mostly matching the string?
for example: if clipboard string contains "Stackable Currency", set item type = "Currency" ?
that's how I did it for my little tool but I'm looking into expanding into everything poe ninja api provides
yes, section by section, line by line, using switch'es or maps where is needed
can always take a look at the code of other tools
that's a good idea!
I tried that a bit but I'm not knowledgeable enough yet to know where to look for that stuff
I only know C# and a bit of python
Hi y'all ๐ I'm working on a little tool to track how long you've been playing and suggest breaks. Part of the plan is to parse Client.txt for area changes and consider whether you're in a monster zone or not, offering reminder when you enter a safe zone. String matching the log for "You have entered" isn't hard, but what I'm wondering is...
Is there a handy dandy dataset of areas that includes their categories, so I don't have to manually type up a list..?
Might be some field in WorldAreas.dat maybe but not sure if any of that data is accessible easily.
Ugh, that's messy. Combination of IsTown, IsMapArea, IsHideout, IsLabyrinthAirlock maybe.
that sounds like it would work! quick question... what is WorldAreas.dat / how do I access it? ๐ฌ I don't know much about how PoE's data is stored or data mined. I tinkered with RePoE for something in the past but I don't think that has world information. Looks like PyPoE might be what I need? The docs mention using ggpk viewer to browse .dat files...
You can squint at the data with https://snosme.github.io/poe-dat-viewer/ and if the PyPoE scheme is enough up to date, it can export tables to JSON files.
RePoE, much like the wiki, is fed by PyPoE data but only a subset of it is used.
DAT files are data tables with each entry a row, with columns indicating assorted properties.
In the case of WorldAreas.dat, each row is a zone and you've got its identifier, human-readable text and a lot of flags.
Oh hey, there's an "Export data" button ๐
perfect, thanks!
@nova hamlet do you have any plans to have any sort of forum / db for community supplied emulator scripts? (on or adjacent to COE.com)
You mean simulator sequences?
Kranglandrantor 9001
like, after someone builds a gear crafting script in the simulator
having the option of marking them public / tagging / posting to a db
yeah
Well yeah im working on it
sorry was lookign at wrong tab
I already have a couple of contributors who have their poe accounts whitelisted to log in (using oauth2), they can save their sequences and classify them
ah right on
ok. i'm working on some stuff w/ PathOfMatth he's building a bunch for a dataproject
The recipees sections where you can browse them isnt live atm and i'm working on it. The saving of sequences is live just for a set number of users atm
Yeah i saw that path is building a document for crafting recipees using the sequences, he's one of the whitelisted accounts, only recently
have you emailed / DM'd him instructions on how to log in / submit?
The reason why its not public yet is there needs to be some kind of vetting process of the crafts so the library is actually valid and not full of irrelevant things, which is something Matth aluded to as well
will you be able to sort by user?
Yes he asked me for them when he began his stream earlier, he just didnt switch over to that yet, i'm guessing he's gonna go through the current crafts and save them sometime.
i mean, most ppl are going to use one person, or by item type, so like maybe there's a weighting system by users (verfied) / views count?
Sure, i'm planning on actually having a crafter page as well where all a specific user's crafts will be there. Also expected costs for using budget as a search constraint
Some users will probably be whitelisted to have their crafts always validated, like ghazzy, matth, tft elite crafters, etc.
yeah, seems a reasonable path
Its just front end JS with JSON datasets, using jquery so its not hell
ah kk
There is a room on TfT called craftofexile-simulator i think, where people can submit crafts there also, that was another possible avenue for vetting them
I try to use TFT as little as possible.
@nova hamlet I hate you, the Kranglandanator 9001 is a drug harder than PoB atm
what will be really cool is, after there is a healthy DB of all these user submitted crafting scripts, Neb could employ some AI to have a De-kranglandanator 9002, where you paste an item into it, and it breaks down the steps of how to craft it.
Seems risky, Elesshar could sue
idk who that is
The dream
But yes the only way i see it being possible to paste an item and it finding the optimal way to craft it is by having a huge library of crafting recipees to check it against, having a script outright figure it out just from methods/affixpool is insanity considering how stupid complex the crafting system is.
definitely doable, but not easy
there's learning AI that could easily deconstruct items once there's a significant library of crafts processes
just generate every possible craft, maybe it would finish before heat death of the universe
Hi I cant find how list items like armour by API ? Some one knows ??
I found something but there is no method to do that https://www.pathofexile.com/developer/docs/reference
Hi everyone, i want to use this here from the poewiki and who do I need to ask for permission? https://www.poewiki.net/w/images/1/18/Minimap_icons.png
poewiki has the license of content in the footer
Yeah but who owns poewiki?
You don't need permission from anyone, just respect the license
maybe it's about hot linking, but you shouldnt do that anyways, the link might change at any point
File provenance can be seen in pages like https://www.poewiki.net/wiki/File:Minimap_icons.png
Yes, but I want api json data, and links you provided don't show how I can request for it. First is site table, I don;t want read data that way to program, and second is some code from second hand not native API request. Is there API request to read items ?
nope, ggg doesn't have one
It must be, the item tables from poe site are made with such request but we don't see this, then there is such request...
Ok I will email to Them
The website data can be built serverside without the need for an API endpoint.
The wiki can sometimes act as a data source via the cargo API as well, but to be honest, RePoE or your own DAT work is the best bet.
GGG just doesnโt have (or may not necessarily want) that data in an endpoint.
Ok, first I requested for this on poe site
The target audience for the website is humans, with some endpoints useful for other tooling like the passive skill trees and character info.
Similarly the trade site has most of its API to serve itself, with a limited surface to construct searches.
The real API API is the one outlined in the dev docs and is the basis for most real (web)apps.
should be fine to use, it's being served by cloudflare in any case
@long sky Am I using the search at https://www.poewiki.net/wiki/Special:ListFiles?limit=50&ilsearch=&user= wrong somehow? I don't seem to be able to find anything at all with the name field.
Tried to look up the license for the file mentioned but had to construct an artificial URL from the file info page of another media file.
Nope that seems borked somehow
I've never tried to search for media files that way before ๐ค
appears to be an old bug ๐ https://www.mediawiki.org/wiki/Topic:Pwjch65m0lbr7n8e
will sort tonight once I'm no longer working
Gotta love when you find bugs over a decade old ๐
Just made a tool for the vendor search string:
https://veiset.github.io/poe-vendor-string/
I'm very open to suggestions and if anyone finds something else they want as an option in the string let me know.
Path of Exile Vendor Search Tool
I guess you could handle optimizations for some combinations
r-r-g|r-g-r|g-r-r|r-r-b|r-b-r|b-r-r could become r-r-[gb]|r-[gb]-r|[gb]-r-r
Yeah, I tried to do some optimizations, but still room for improvements
I'll add that one, thats pretty practical
It's probably okay to replace [rgb] by . in a lot of cases
yeah, I feel if you get the error message you can just choose a broader option I guess
It should be updated with your simplification idea now @tawny agate, thanks for catching that one!
thats a good point too
@compact isle Hi! I think pseudo mods for added damage are not working correctly. What I mean by that is, instead of using actual values from added damage stat it uses the average of those values.
For example lets say we have an item with Adds 14 to 16 Cold Damage to Spells, one would assume that pseudo Adds # to # Cold Damage to Spells would be Adds 14 to 16 Cold Damage to Spells, but instead it uses average of both values, so it ends up being Adds 15 to 15 Cold Damage to Spells
https://www.pathofexile.com/trade/search/Archnemesis/55LKGanSa
that's the correct behaviour as each stat only stores one value so min/max ranges like that are averaged

Anyone have a list of all possible rare map names? or a large list of maps. Working on a search string generator for map mods and I want to avoid matching rare map names
I guess i am ๐
https://veiset.github.io/poe-vendor-string/#/maps
A very rough prototype so far, missing a few mods and map names, but the code gen works.
Just started on it today so there are probably some bugs too
Your tool looks solid!
Did you also generate the unique search queries?
That was a fun little puzzle
For the map mods
I mean the regex you end up using to uniquely match map mods
I am taking the other modifiers, map names and rare names and generate it
Sweet
Similar approach as I'm doing.
https://github.com/veiset/poe-item-gen/blob/master/src/main/kotlin/org/veiset/poe/generateMapMods.kt
Yep. I really like the language.
Im just generating the typescript data files directly
Saves me a lot of time/work
Hah! That's indeed pretty madman
That sounds like a pretty complicated pipeline. How does the beautiful soup work?
Ah. I see
But yeah, the map search was a feature request from someone on Reddit when i posted the tool for early leveling items.
So i tried to implement it, still a little work left. Oh you did?
I see I'm missing the armour mod. Is that new? Hm
I guess the wiki isn't too up to date
That's a great source! Thanks
I hope you don't mind me making a tool similar to yours
I'll give you a shout-out on the github page
just appeared on trade with 2 items listed > 1year. wiki says introduced in 1.3.0 
Related mayhaps? https://www.pathofexile.com/forum/view-post/24590208
will be a crafted stat sneaking it's way into explicit due to how we index thingies now
yeah, I'm not against that explicit searches for fractured and crafted, it's just odd that explicit stat appeared NOW
we reindexed from the beginning again so it picked it up as something new
"sentinel combinations are all server side, so players can't reverse engineer it"
challenge accepted? ๐
new poorfishwife project
sigh unzips
I don't like the hideout-affecting MTX, given that I'm still working on my hideout editor ๐
I've fallen into the trap of "how hard could materials be now again?" https://i.imgur.com/fWIIHJc.png
Starting to understand how things fit together again, hand-generated Tane's opaque material and half-arsed the lighting logic.
Might get away with a lot of cheating via the shader preprocessor, given how my experiments are going.
The Unique Stash Tab search filter can now be used to search the modifiers on stored Unique Items.
probably only if you own item, otherwise need to store list of mods clientside
stored Unique Items
ye
Acquisition still not working https://github.com/xyzz/acquisition/issues/576
leagues API returned malformed data :Error transferring http://api.pathofexile.com/leagues?tipe=main&compact-1 - server replied: Forbidden
I wonder if xyzz will patch before league start
I assume http just needs to be changed to https
Is there something I can use in the meantime that does the same thing?
hasn't been updated since 2018
think you're out of luck unless there's a fork
what does it do?
searches all your stash tabs/characters
procurement did the same thing back in the day, and i know of looty which does something similar but is a chrome extension
There was something similar... even the name was similar to Looty. It was written in Go and did the same thing, I can't find the repo. Maybe deleted? mhhh
Canโt you do that with exilence?
unique sentinel have different base item type name in press/video/website, ex: The Hollow-Eyed Skull has Ivory Stalker Sentinel and Ancient Stalker Sentinel.
is there any overlay with step by step / checkpoint system for leveling, similar to Questie for wow?
can you trigger something from an overlay app using text log from the client? (like talking to NPCs at certain points through the acts / leveling process | you emotes when you enter certain areas, etc )
there's a few, someone just posted a livesplit setup to reddit recently
you can get area from client.txt, that's about it
the logic of keeping track of what step you're on just from area can be a bit complex
does POB work in windows 11? i just fresh reinstalled and lua errors i cant trace
There were some hiccups in earlier builds. What kind of error do you get?
fresh from fork
always shows on launch, randomly pops up time to time in open planner, wont let me check for an update either it seems button dead
got the link to the post?
can't seem to find it
https://www.reddit.com/r/pathofexile/comments/uhftak/livesplit_is_a_sleek_highly_customizable_timer/
This reminds me of a previous issue where users had files that existed, could be opened, but could not be read from when trying to populate the build list...
Is your user profile or build directory on OneDrive or some other uncommon storage technology? If so, make sure that OneDrive is actually logged in and that files sync properly.
ooh, secrutiy gateway and switch in the same thing
definitely wanna get one of those
apparently there is a Pro version as well
yeah, I could put this on the wall in the hallway where my fiber modulator is
i cant really put my usg 4 pro there, because, yeah, it's loud as an airplane
but a wall mounted one, would in my opinion only be feasible if it's pretty quiet, or even fan-less
i'm thinking of replacing my fans to 40mm noctua fans
yeah, i was at the local computoring store, but they didn't have those, so have to order some online.. will let you know when i get to it
how do i find out what is outputed to client.txt?
by reading it? ๐
Either by yourself or leveraging one of the existing libraries to monitor it.
As for which data is logged to it, it varies over time as the client evolves.
I colleague of mine tried to soundproof his rack
Spoiler: he failed
I chucked it into a wardrobe, in the bottom, and soundproofed that part of it
that helped a lot
Yeah, totally.
He tried to kill all the sound tho but the airflow was really problematic after that. The rack was getting bigger and bigger and at the end he stopped ๐
is there any way the find poe logo as svg form ?
I doubt that it even exists, I think it's a rendered 3d model
Heh, there's a while since I last poked at it... https://i.imgur.com/0bA0Hbw.png
IIRC, it's a boring 2D image these days, I forget where.
Your best bet is probably the press kit.
Current game file path for 3.17 is Art/2DArt/Logos/POELogoScarsOfTheAtlas.dds.
is there any public software out there that parses the client.txt file and creates an API you can access with other services?
also, is there any way to change / add what gets outputted into client.txt? like adding NPC speech, etc
I see that global chat shows up, and I have the option for 'Output Dialogue to Chat' checked, but it is not showing up in client.txt (whereas global messages are)
I'm assuming that means they just show up in the chat dialogue box in the client.
no, Client.txt is primarily a debugging tool for GGG developers -- other uses for it are an afterthought at best
Can anyone point me to the rough location in PoB where physical damage reduction from armor is calculated using the configured enemy physical damage?
I assume it uses some string concatenation -> variable name hack, as searching for enemyPhysicalDamage doesn't yield any results.
I think you want CalcDefence.lua at around line 1081.
Looked this up for another bug report in the past, there's indeed a whole lot of damageType.."DamageReduction" kind of constructs.
I'll look into that part, thank you.
Meh, it seems to go through too many modifiers before reaching the physical damage reduction calculations. Wouldn't be easy to change it, it seems.
Got it working.
I think I found a typo around line 1550 though.
Damage.ManaWhenHite = DamageIn.ManaWhenHit or 0 * speedUp
Hey all, was wanting to get back into the development my fork of the Acquisition tool, and wasn't sure if there was much interest from others? I know that there were a few issues with it recently that should hopefully be resolved, but wasn't sure if there were any features that would be nice to have (especially if it's a feature that's only in premium tabs right now)? Otherwise I'm just going to be brainstorming for now, since I was sort of getting back into PoE itself right now.
Anyone know if there is a mapping file for various id schemes for mods? 1 Added Passive Skill is Astonishing Affliction <> local_affliction_notable_astonishing_affliction <> AfflictionNotableAstonishingAffliction <> explicit.stat_2428334013 (trade)
no, we don't know based on what data trade id is gnerated, so dumb text matching
thanks, I'll just use string distances then
the first two are connected through configuration files in Metadata/StatDescriptions -- that one's in Metadata/StatDescriptions/stat_descriptions.txt and looks like
description
1 local_affliction_notable_astonishing_affliction
1
# "1 Added Passive Skill is Astonishing Affliction"
plus a bunch of translations for other languages
and to connect some more dots: AfflictionNotableAstonishingAffliction is the id of a row in Mods.dat (and a ModType but that's probably not what you care about). the first (and only) stat applied by that mod is local_affliction_notable_astonishing_affliction.
Ah, that makes sense. One is the stat other is mod. And I can just use string matching to map the english text to trade id
yeah, the trade id may not be linked to the data rows in any usable way
converting from stat description strings to stats is, unfortunately, a bit of a "turn hamburger into cow" situation
you can try to match based on the stat descriptions but it's a lossy process
I got surprisingly far, my use case is limited with cluster notables so it isn't hard to match them. I am trying to calculate most profitable cluster base+harvest reforge combinations ๐
@compact isle question regarding the latest teaser with the Witch Forbidden combo of Nine Lives - will the special node info of these nodes be included in the tree data (i.e., like for anoint-only nodes)? We are trying to figure out if we will have to special case things for PoB
what a great question I'll find out
looks like the plan is to tease them over this week so we won't release them with pre-release tree data and no pre-release tree data this league because there are no changes aside from minor formatting
at the point of release you'll have .dat files anyway which is probably preferred over it being in the tree export?
I'm not sure if we actually have tooling to generate the passive tree JSON from game data files.
it's not really related to the passive tree it's just a keyworded skill like others
my guess is it wont be on tree becouse it doesnt have a place to be, nor an icon
PoB currently assumes they are on tree and the logic it uses is tree logic iirc
but we can force it on tree for PoBs purposes
and just give it a generic icon
they don't have icon art so yeah you'll need to be a little creative
yeah, we will have to put them on the tree to show players/users that it's allocated and allow them to see the DPS and eHP impact
there already exist tree nodes that can be hidden (e.g., cluster expansions), wonder if they can be used/abused
I dont think wed need to hide them, treat them the same as the anoint only notables
I have to imagine there's going to be counterparts for other classes
anybody here good w/ C# and interested in helping w/ a small project involving auto-splits for LiveSplit ?
๐
What unholy and cool things does this newfangled thing do?
"Group by Seller" seems new.

sort by highest price 
That scratches the eternal itch of "I would like to know if a seller has all the things I'm out to buy" when grabbing maps for completion, a set of breachstones for an invitation, etc.
Trade message parsers are going to have fun tho...
Hi, I'd like to buy your 3 Sacrifice at Noon, 30 Sacrifice at Dawn, 3 Sacrifice at Dusk, 12 Sacrifice at Midnight for my 16 Chaos Orb in Standard.
There's nothing worse than knowing that someone you trade with might have the other components you want, but it's too risky to try to talk to them as you're very likely to run into language barriers and confusion, risking the whole trade ๐
yeah that's the reason we have the language flags on that page (currently missing, fun!)
Is this something that's ready to share with others, or still in flux?
the "legacy exchange engine" is powered by the regular consumer so it's still quite far behind which means comparing between them is not great atm
aside from that go for it
seems to break when the values get too high for seller to fullfil trade, but gives a "bad" (as in no error) error message
as each slider is capped correctly to sells max, but not when grouped
Here is this nice new toy. Oops, I broke it
yeaaah hopefully I get a chance to improve the max stuff before 3.18 release
definitely on the radar 
if you atleast give error message instead of the blank message that would help
meanwhile in legacy engine, 0s and infinity ๐
"hello, yes, I'd like to take you up on an infinite number of frags, plz"
@compact isle should I switch to new api, or wait ~2 weeks from league start? hopefully you load tested it ๐
it's a lot faster and less load on us to use the new one
but the old one should be fully backwards compatible with pre-3.17.4.4
don't you confuse players with this button? compatibility on api level is good, but I dont see any reason as a player to use old engine
in case it explodes we can switch it the legacy one to being the default
here's a quick and dirty table I made for easily looking at types of eldrich implicts you can get on bases =]
(it shows the value to be found when using an exceptional eldrich currency and it ignores the empowered near unique boss and near pinnacle boss versions of these mods)
Asking for Oauth login shortly before a league launch 
You're not alone it's the most popular time 
Damn, I thought surely nobody does that before a league launch 
@compact isle quick question, on the atlas tree json the keystone frame url gives the passive skill tree keystone frame, is it possible to get the new one ? ๐
finally got around to updating the website: https://poeskilltree.com/?v=3.18.0-atlas&c=3.17.0-atlas
๐ฎ is the 3.18 tree out?
Lots of yellow.
Yep, since a day or so.
๐ฎ even the git branch has it, totally missed it
thanks
damn I love the formatting of the news post
not gonna read it, but it looks nice 
only the 3.18 atlas from what I can tell
Nine Lives etc. aren't in the passive skill tree per se so there's not much to update.
does anybody know of a site that does the atlas tree planning, but can save multiple layouts per single page (akin to the POB tree manager)? I thought I saw a website that did that recently on a video and I'm trying to find it again..
I believe it was PathOfAtlas - but IDK if it's updated for 3.18 yet (edit: doesn't seem to be updated)
On a slightly related note, my atlas tree quick-view tool is updated for 3.18: https://atlas.omri.io/. You paste in your tree link (from the official website, or PathOfAtlas, or you can export the POE one from poeplanner) and it shows a visual breakdown of it. Great for looking at a bunch of builds at a glance
Created by /u/IcyRespawn
I'm working on one that will allow that !
not yet like POB with multiple trees in one build, but one with save capabilities
but it's on my to-do list
Anybody know the dev / how to get a hold of the person who dev's Chaos Recipe Enhancer?
@primal schooner In the past I have used Github issues to communicate with kosace (https://github.com/kosace/EnhancePoEApp/issues)
Actually based on more recent commits/issue responses, looks like the current dev is https://github.com/HiMarioLopez fwiw.
if they don't publish a contact method, can you contact ppl through Github?
@bright ridge is the maintainer I think
Howdy man, feel free to DM me and I can help you with whatever you need! Thanks
Also, unrelated to that conversation, how can I get the Tool Dev role?
you use to just ask ferret for it, but hes gone now
I dont think anyones been made tooldev since
I think @worthy cape handles that now?
hi all
hi
@pulsar moat who manages tool Dev roles now?
You can just message the Modmail bot in the top right for verification, link your tool and proof that it's yours, plus ideally some sort of discussion thread of your tool on the forum or reddit
Thanks for the insight 
Pretty much.
assistant to the regional manager
What's the question / issue?
I chatted with Meatbox yesterday
with reference to poedb.tw and the ggpk scrape what does dropLevel mean ? https://poedb.tw/us/Mirror_of_Kalandra
the minimum level of the monster for it to be able to drop
correct
pretty sure that's not true.
at least, not from standard drop mechanics
league mechanics etc can bypass that of course
yeah
strongboxes too potentially
strongboxes while dropping +2 level etc i presume
is path of building not updating for 3.18?
We are, just havenโt released one yet
Torrent's up, not that it matters much.

torrent had Data, but no Sentinel*.dat
Ooh?
missing stat_descriptions.txt too
Nice to see that they've gone back to the old way of just removing some bundles, there's a fair number of Data/ files missing due to how some bundles were removed.
Changes in DAT sets in index:
-Data/Bloodlines.dat64
+Data/DroneBaseTypes.dat64
+Data/DroneTypes.dat64
+Data/ItemClassFlags.dat64
+Data/MapStashUniqueMapInfo.dat64
+Data/MavenJewelRadiusKeystones.dat64
+Data/MicrotransactionChargeVariations.dat64
+Data/MicrotransactionPlayerShieldVariations.dat64
+Data/SentinelCraftingCurrency.dat64
+Data/SentinelDroneInventoryLayout.dat64
+Data/SentinelPassives.dat64
+Data/SentinelPassiveStats.dat64
+Data/SentinelPassiveTypes.dat64
+Data/SentinelPowerExpLevels.dat64
+Data/SentinelStorageLayout.dat64
+Data/SentinelTaggedMonsterStats.dat64
+Data/TableCharge.dat64
-Data/UniqueMapInfo.dat64
@velvet fog Of those, SentinelPassives and SentinelPassiveTypes seems to extract fine.
Is there gonna be a commit/tag for 3.18 on https://github.com/grindinggear/skilltree-export ?
atlas branch is the only thing that changed, it's been updated for about 2 and half days https://github.com/grindinggear/skilltree-export/tree/atlas. there's also a pre-release tagged 3.18.0: https://github.com/grindinggear/skilltree-export/releases
that's just the atlas tree right, not the skill tree
See channel history, Novynn mentioned that there wouldn't be a JSON because the passive skill tree is barely touched.
ah thanks, missed that then
aight, Ill just use the 3.17 commits for 3.18
pog it's alive: https://atlas-builder.app/
Plan and build your Path of Exile Atlas trees
feelslagman
it's burning cpu
i'll check
15% of my cpu
there's a lot of wonky stuff I'm sure I can get some optimisations done
you're full blast rendering even if there are no interactions. You need to switch pixi to manually call update and only if there is an interaction with the canvas, something like this:
private _tick(): void {
const newTime = Date.now();
let deltaTime = newTime - this._lastTick;
this._lastTick = newTime;
if (deltaTime < 0) {
deltaTime = 0;
}
if (deltaTime > 1000) {
deltaTime = 1000;
}
this.viewport.update(deltaTime);
if (this._dirty || this.viewport.dirty) {
this._app.render();
this._dirty = this.viewport.dirty = false;
}
requestAnimationFrame(() => this._tick());
}
Also performance seems pretty bad, I assume you recreate too many sprites on every update or your setup is very inefficient (e.g. arc masks may be an issue)
I've been there, in the end I got my tree to render at vsync speed (not atlas, normal tree)
but takes a bit to figure out the bottle necks
thanks I was definitely going to look at this I knew it
I've just set it up and forgot about that
that's the JS heap
it really looks like you allocate textures/sprites every frame
otherwise looks good! Just the tooltips are a bit too big for my taste
also you might wanna grab the fontin font
laggy for me too, used 30% of my CPU
nom nom nom
@bright ridge Hey, I think the just-released build bricked the app. At least for me it crashes on start. Got a stack trace in my windows errors if that helps
Thanks! Was about to download VS2022
Scheduled patch time in 20 min.
I guess that's my signal to start looking for a build 
:p
nah the ranger cdr node was removed a while ago ๐
nec/occu or ascendant are your picks now
that's a sick build
no reason to ever not play a witch
only uncool for your fingers
Probably just gonna default to DD because I wanna play HC this league, but this looks actually fun with boom booms (profane bloom)
Why do I always get the urge to work on my tools way too late just as the league starts?
Same ๐ฆ
kinda glad i didnt have to touch @regal mural at all ๐
Not playing the game anymore tho, so there's still dev time \o/
Who knows, maybe this weekend I'll finally get around automating some stuff rather than searching bash history across several machines for commands to edit.
nonononono, you need to make a search engine that indexes all your devices' .bash_history
That's probably half the things I need, serves mostly as a reminder of which gosh-darn VM I put things on now again.
My infra is definitely not designed for containers anywhere, last time I tried Docker I became extremely sad as they didn't believe in working IPv6.
And of course these days their license shenanigans make me extremely vary of every touching them again.
I've been eyeing Hetzner's recent dedicated server offerings, they seem way nicer these days than when I tried using them back in 2011.
For just five dรถner meals a month I could get a nice chonk of a machine with 64 gigs of RAM, a couple of terabytes of disk and unlimited gigabit traffic.
Hetzner was always good
but yeah the dedicated stuff was pretty expensive, but the vps'es were pretty decent and affordable
Their stability was abysmal back then in my datacenter on the virtual machines, I had a fractional nine of uptime.
How much is 1 Dรถner where you're from?
Support and resources were mostly in German so I was feeling extremely hosed.
Ah, yeah that was never an issue for me (as a German)
Depends, but around 8.6 EUR/dรถner.
Not sure if the cited prices are with or without the 25% VAT, but 40-45 EUR/mo for a dedi.
i pay 6.50-7 here if i want the good stuff
This being a full meal with fries, soda, salad.
Kimsufi was also pretty good to me
also germany
Not that many stands and hole-in-the-wall places, kind of falls under pizzerias here.
at a Dรถnerbude?
yes
Anyone else casually refreshing SteamDB? ๐
rural south west
damn, rural Bavaria and Vienna still have the good old 3-4โฌ Dรถners with good quality
check if its dรถner and not just "drehspieร" :p
My local dudes make a quite nice one in sammun bread with veal, parsley, sumac and some yoghurt garlic sauce.
Lightyears ahead of the default kebab.
ever since covid started I havent had enough Dรถner ๐ฆ
I still WFH so I pop by once a week or so and pick up two meals, one for that day and one to reheat the next day.
On PoE - I desperately need to update my dataset as my asset viewer and hideout editor still runs on 3.16.3 ๐
Made quite some progress in the last few weeks on shader codegen from materials, just a bit more graph wrangling and I can start generate shaders similar to the previous hand-ported ones.
your hideout viewer looks amazing, any plans to develop it into a bigger tool?
The plan has been to build it out to a point where it can reasonably accurately show a hideout while providing bulk editing functionality.
I'm just one dude tho and there's so much PoE stuff that I haven't figured out yet.
The big things missing currently are:
- no idea how many subtiles encode height and walkability - this is needed for positioning decorations;
- picking the correct tiles for rooms and filling in a level requires manual choice in many situations;
- placing rooms at the correct place in the level and relating decoration locations to that.
And of course, all of the actual editor logic.
Been working for the last few months on the three mesh types and their materials, as well as layout logic and the meaning of the tile and room formats.
Motivation is a bit hampered by that I don't ever know if I can actually release this to people as it has some kind of mandatory dependencies on specific versions of game data to be meaningful.
too many breaking changes in the game files?
Apart from being told that I may not touch an user's game files, the unknown version of them is a big problem.
Formats evolve over time and new content often requires engine functionality that I may not have support for.
DAT files can change in the middle of a league, leaving a crucial part of data lookup broken.
Without bringing my own copies of files, I can't lock the tool down to a specific game version as there may never have been that version on the system.
@velvet fog Steam patch up on DB.
fixing schema for every dat update
"shield charge" renamed to "table charge" in enchantment DAT?
what the
they did add a TableCharge.dat
"Charges at a targeted location or enemy, picking up a table along the way and repeatedly doing cutlery damage to enemies in a small area in front of you."
Only available if wearing cloth armour.
@velvet fog why do the forbidden jewels list by ascendancy and not by class
They each have an ascendancy key, which happens to be one of the ones of each class.
Witch is keyed as Necro, Scion as Ascendant, whatever the base for Champion is as Champion.
bruh, let me report bug ๐
Can't ping Novynn on release day? ๐
Anyone working on schemas yet, or focusing on the game? ๐
already fixing ๐
sorted now
ha ha ha holy shit biodiff is amazing
I never managed to get it to behave well with my types of input files
it doesn't try to align content by default, you have to hit f3 to make it do that
(in case you missed that like I did at first)
Always find it interesting looking at traffic on release day
same
can I join?
Times have definitely changed https://www.reddit.com/r/pathofexile/comments/xb15z/i_guess_interest_in_poe_is_increasing/
poedb is ready for sentinel https://www.reddit.com/r/pathofexile/comments/upb6nr/poedb_is_ready_for_sentinel/
pretty big regression: the whisper button gets hidden behind the next item on the trade site when using a vertical monitor and the compact two-column layout
I can't seem to ping novynn I hope he sees it
Heh, I even get some wrapping maximized at 150% desktop DPI if names are long enough.
hey guys, sorry for posting it here [did not find a better place to ask for help], but I just updated my PoE and the moment I launch PoE [the game opens, screen goes black], the process is instantly shut down... did anyone have the same problem? if so, how can I fix it? :/
Sorry mate, can't help you. I recommend mailing techsupport or keeping an eye open on the bug forum.
Okay thank you!
Only related bug I've had is if I click too quick to skip the logo it crashes out on the main menu, but that's been for a good league now.
Verify integrity of your Steam install of the game or run PackCheck on the Standalone, they'll tell you to do that.
Oh great!
Thank you a lot for your time!
I'll do that, if it does not work i'll contact tech support!
What's this for, mysterious stranger?

Anybody got time to help me w/ a super simple Overlay for POE ?
I think this stat is "broken": if I'm not mistaken, you're supposed to be able to select the keystone from a drop-down ๐ค
clear cache
There is two .. chance to suppress spell damage on trade site. First one doesn't work.
@compact isle ^
Anyone knows why awakened poe trade gives this error? Error: Temporarily Unavailable; Please use the New Exchange Engine
Not much to do until SnosMe gets around changing APT to use the new engine for bulk exchange, I believe.
Trade website has gotten a fancy new engine for bulk exchange with cool features like grouping listings if you look for more than one thing at once.
all tools using the old bulk engine are broken now
ah F, cause I was searching how to use new engine in settings, but nvm then
not just APT
is there any good trade tool like awakening? or just wait
wait
f
what is the new exchange engine endpoint?
There's an "engine": "new" (or "legacy") request field in endpoints like https://www.pathofexile.com/api/trade/exchange/Sentinel
If you go "legacy" it's going to 503 your face.
{"error":{"code":7,"message":"Temporarily Unavailable; Please use the New Exchange Engine"}}
The responses probably differ in some way which might make it Fun to implement in third party tooling.
Like there being a an array with offers that support the new "collapse": true grouping functionality.
(got no idea how the old API looked and can't make requests to compare these days ๐ )
recombinator shenanigans?
For sentinels two rares can combine into an unique sentinel according to the league splash images.
Maybe a rare outcome of items is something similar?
Or recombinators?
I know, just wanted to link the screenshot I alluded to.
So maybe something sneaky hiding behind "Sometimes, the resultant item is modified unpredictably"?
Heh, that Windripper shows up in the main search dropdown now on trade, I guess that's populated with everything that has been seen.
So say it's not recombination - what kind of drop sources could there be for such perversions?
Uberยฒ encounters, some weird keystone?
Or some weird glitch?
(I have no idea about the league mechanics, I don't play)
My reason is thankfully not league-related, it's just this body of mine ๐
Something weird with Stalker/Pandemonium rewards I guess, but still, weird.
usually those are royale bases leaking through
ooh, that makes some sense
Do you have a list of all unexpected ones, chuan? I know of 3 total currently:
- the 2 which แแแแ แ posted above: Windripper Long Bow, Lightbane Raiment Chainmail Vest;
- and the 3rd being Relic of the Pact Carved Wand (two instances).
Relic of the Pact shouldn't exist at all on Sentinel SC (Ultimatum-specific), but it's likewise on the wrong basetype (Carved Wand instead of the expected Spiraled Wand): https://www.pathofexile.com/trade/search/Sentinel/JbyRVdWFl
same as your post
Only 5c for that? Seller probably doesnโt realise what they have
Thanks so much for the additional example!
The only historical example of this occurring of which I'm aware is Aurseize Fishscale Gauntlets (should be: Steelscale Gauntlets). We've never found one that actually exists, but it's still searchable like that on /trade. This is almost certainly not the same bug since the unexpected Aurseize Fishscale Gauntlets occurred long ago, but it's very interesting to see a modern bug producing a similar unexpected basetype result.
Right, I hear you and definitely agree that it could in theory be a crazy undocumented stealth feature of "clever use of game mechanics" -- but Relic of the Pact existing is way unexpected (given that it's both Ultimatum-exclusive and on the wrong basetype too).
Do we have a list of royale unique items?
How do you enable pob doing math in the background again?
need to use old exe
Whatโd we change there and when?
Vsync/sleep stuff?
yeah it sleeps main thread while alt tabbed doesnt it?
I think sorting and download still work when tabbed out as they are on separate threads, and I know we had some discussion on instead fps limiting it in background instead
Last I looked there's some conditionals both on being visible and having mouse focus, not sure I ever followed the logic fully.
I think the visible logic broke recently hence the reports of black screen in background
but not sure, never looked at it myself
Hmm, that kind of makes some sense.
hello programmers you may get a chuckle from this
we [at my work] just got a request for our letter we send in the following form
translated to ASCII on a data disc and mailed to them
Aaw, no EBCDIC.
how does one even populate the disc ascii isn't a language
is there an API available for ninja?
do you have a sample URI for essences?
cheers~
managed to find it by filtering on api/data https://poe.ninja/api/data/ItemOverview?league=Sentinel&type=Essence&language=en
Chrome's "type" column is the much less useful "fetch" as opposed to "json"
it's not going to happen, Gretchen
Another krangled unique https://reddit.com/r/pathofexile/comments/ury54p/bugged_altar_drop_kaoms_tabula/
dropped from "eldrich mobs drop unique items" from searing exarch altar
aha
some dev krangled the implementation of that I guess
game took "unique items" much too literally
thats the funniest one so far, thats a jewel, on a body armour
Error base type summary
Unknown:
- Deerstalker Rawhide Boots (1 in store)
- Hrimsorrow Rawhide Gloves
- Magna Eclipsis Rawhide Tower Shield
- Reckless Defence Lacquered Garb
Space before name: The Torturer
16 Royale Uniques:- https://poedb.tw/us/Royale (The Royale prefix was added to avoid affecting the original unique display)
PoEDB provides things come out each league, as well as items, uniques, skills and passives. Path of Exile Wiki editing functions.
In case it wasn't in notes or clear from /trade, all the royals were deleted (can confirm, the divinarius was mine)
Aw
wild guess, maybe some internal testing list of uniques was/is being referenced instead of the normal list
theres still a relic of the pact listed, but most seem gone
will probs disappear as well, next time they log in
Relic of the Pact Carved Wand disappeared
Is there a place to report bugs with the trade site?
Wow that looks broken. Thanks for letting me know.
Is there an actual reddit post for that since it came as a reddit preview?
Thanks!
Hear me out, mobfilter
Tool would allow you to select mods or Set up combos that are rippy and put a death skull or tombstond over their head
Most are hasted or somthing anyways so with normal human reflexes its hard to see the mods before you rip
Fun idea, but not for here as tools can't do anything around this.
the client doesn't give us access to that (inside of TOS)
what's the name of the overlay tool that assists with trade help, like having a button for PMing ppl that send you trade request while in a map, etc
most trade tools do that I would think
Anybody familiar with Overlay / client.txt interaction interested in helping me w/ some guidance on a small project? PM me
@compact isle garena taiwan public-stash-api return english content, all website item are english too. can't use chinese in channel.
yep they're working on it
anyone know of any trade helper overlays that are open source?
https://github.com/SnosMe/awakened-poe-trade
https://github.com/PoE-Overlay-Community/PoE-Overlay-Community-Fork
:heavy_dollar_sign: :hammer: Path of Exile trading app for price checking - GitHub - SnosMe/awakened-poe-trade: Path of Exile trading app for price checking
do either of these assist with PMs ?
i'm looking for the one(s) that lets you respond to ppl that message you from trade site
is poe overlay a platform, or a specific tool like awakened?
Overlay Community does messages, it's a tool like APT
Not sure what ones there are since MercuryTrade.
deprecated 2020 ๐
It died off for assorted reasons, but that doesn't stop the actual overlay for having meaning.
(Java tho ๐ )
yeah
actually there's a community fork of MercuryTrade too
still actively developed
I use it
some features like timers aren't easy to get all in one tool
is there a tool/program that makes a sound notification when your flask effect is over
oh my god I asked this in global and..... Is auto flask macroing really that common?
I just want a notification
Instilling Orb
-> Used when Charges reach full
Thereโs no way for a tool to tell whether a flask has expired.
The best you can do is to listen for keypresses and start a timer of known duration but that doesnโt handle them running out from other reasons or queuing.
oh I thought I could use a color detector or something but im not sure if you guys use like a tool base or something
Continuous OCR goes against ToU I believe.
damn it
guess ill just spam "flask alerts" in chat when they interview chris wilson
Hrm, might be mixing it up with not being allowed to perform actions based on screen reading.
yes please
Well, it kind of falls under the โinteract with gameโ forbidding section I guess.
In any way Iโm not aware of any framework commonly used to do so performantly.
Adapt your play style or lobby in proper venues for notification onslaught ๐
there's tools that put a timer up, and there's tools that copy and overlay your flasks in the center of the screen to make them easier to see
anything beyond that mostly falls afoul of TOS
wait the overlay in the middle one sounds awesome do you remember what its called?
Thanks!!
anyone having issues with awakened poe trade? it's not showing the little icons for me when ppl whisper me for trades
Iโm not aware of any such feature in APT. Are you perhaps mixing it up with another tool?
hmm i thought it was apt
it's the small clickable icon that appears at the bottom and clicking it innvites them to party and then trades them on second click
that should be poe lurker
ohhh right yeah thanks
@compact isle any hint why query works through api (id: 9XL4EMmuK) but fails when opening in browser "Failed to load search state. The search is no longer valid."
oh, it's loading now, I guess some eventual consistency is on backend ๐ฅฒ
anyone have insight on why https://poe.ninja/api/data/DenseOverviews returns a different chaos value from what would be shown on a particular https://poe.ninja/challenge/currency/* page?
@snow whale because they are cached by CDN, and the point in time at which the cache was made affects prices. (here 22 min diff)
ah, that makes sense. also seems potentially problematic :\
it also explains why I get two different prices when I keep making the same request ๐
seems like some alternate quality skill gems don't have the correct Level listed on the rendered page? E.g., https://poe.ninja/challenge/skill-gems?name=anomalous cremation levels 16 and 19 should say 1. I.e., /api/data/DenseOverviews correctly reports the variant as just 1 and 1/20, but the webpage shows 16 and 19/20.
this is more like poe.ninja works, and it seems to not be critical to rasmus rn.
Unlike poedb poe.ninja gets item info only from public stash tabs and not from game files. Since Heist gives you lvl 16 gems you see them in page too
Does Viktor (Exilence Next) peruse this channel?
I believe I've seen him around
They have their own discord too
Any way to get a complete list of AtlasPositions?
it is constant, at least for jewels (exceptional) and jewelry (grand)
I believer greater and lesser is also constant, but never paid attention to specifics
might be the tier of the base
or just the type
it would definitely be nice to exclude rings/amulets since they share currency with belts

