#tooldev-general
1 messages · Page 126 of 1
Hrm, has 7b always had that meaning and been about the game files as well? I had thought that “data” there referenced the client’s memory.
Yeah, curious if 7b includes programs that read the ggpk
it would say memory if it meant memory
My hideout decoration tool is extremely dead in that case and I’d like the last few years of work back.
I guess that I may have read it optimistically then, thought I was in the clear as I never touched the code.
Fuck. 3D view and most of the top view is out then, as is decoration visuals in lists. No walkability nor bounding boxes.
Intent has been all along to run freestanding of the game but requiring a copy of the pack for data reasons, otherwise only interacting via user-exported/imported .hideout files.
Sure wish I hadn’t started building awareness and support in communities lately 
As for the new docs, they’re super nice and appreciated. Formatting on mobile iOS is a bit wonky and super zoomed in but is workable.
I just saw that the public-stash-tabs endpoint is also mentioned there, do you maybe know how long we have to make the switch?
seems backwards compatible without OAuth
Oh, I read it like that you should use oauth for all endpoints at some point. Mostly because of the second paragraph
seems they are co-existed, you can use POESESSID or OAuth token to get /api/profile.
unless they need a oauth scope to use service:psapi (public-stash-tabs)
Might be a newbie question but, is there a good way to parse POE items into Json format? Taken from clipboard
There's no good way, no.
Squint at the text, try to parse and emit what you feel is a good schema, cry.
Haha okay, That's what i was gonna do, but i wanted to make sure somebody hadn't made a public library that did this.
@compact isle
Interacting with our web APIs requires a private service hosted elsewhere to store OAuth client credentials securely.
This seems backwards. Surely the goal should be to avoid having tool creators build a central repository of client tokens? If what you actually mean is OAuth client secrets, you should be specific about that
And I'd like to echo Zao's concerns about 7b. I feel like either there's a disconnect with regards to the definition of "interact with" or this is a giant rug-pull
not sure what you mean. This is in the context of executable applications and they shouldn't contain your OAuth client credentials. They can locally store tokens if they want since those are short lived
zao seems to have been under the misconception that we endorse extracting game data which we do not and never have. We just haven't acted on the accounts engaged in it
on the other hand us publishing these documents doesn't mean we're looking to change our existing level of enforcement
it's like a mutual silent agreement. don't do nothing stupid, and we won't have a problem
@compact isle my oauth thing, can u re-enable it at some point? and add the new capabilities
I lost that domain, but I'll let you know with a new domain / name if I make something useful
@rapid pagoda I reached out to support for clarifications with my full use case before bed last night and got a very kind reply that they would not allow the use of a tool that interacts with the GGPK nor suggest creating a tool that does so.
I’m fine with it and will scrap this thing, maybe there’s a sliver of functionality that is still possible without.
@compact isle question on the new character passive tree API return. It seems that the Small Passive Skill stats of a Cluster Jewel are also being reported as stats granted to Jewel Expansion sockets. Is this intended?
I see this on a large cluster jewel expansion socket from the retrieved data:
[1]={
expansionJewel={
index=2,
parent="7960",
proxy="13201",
size=1
},
group="expansion_11",
icon="Art/2DArt/SkillIcons/passives/MasteryBlank.png",
in={
[1]="0"
},
isJewelSocket=true,
name="Medium Jewel Socket",
orbit=3,
orbitIndex=1,
out={
},
skill="9408",
stats={
[1]="2% increased Attack Speed"
}
},```
the stats is what's surprising me
This is the cluster jewel
[6]={
baseType="Large Cluster Jewel",
descrText="Place into an allocated Large Jewel Socket on the Passive Skill Tree. Added passives do not interact with jewel radiuses. Right click to remove from the Socket.",
enchantMods={
[1]="Adds 8 Passive Skills",
[2]="2 Added Passive Skills are Jewel Sockets",
[3]="Added Small Passive Skills grant: Staff Attacks deal 12% increased Damage with Hits and Ailments\nAdded Small Passive Skills grant: Mace or Sceptre Attacks deal 12% increased Damage with Hits and Ailments"
},
explicitMods={
[1]="Added Small Passive Skills also grant: 2% increased Attack Speed",
[2]="1 Added Passive Skill is Expansive Might",
[3]="1 Added Passive Skill is Overlord",
[4]="1 Added Passive Skill is Smite the Weak"
},```
Before you fine people here came up with a solution for the "technical patch" changes to the GGPK, @carmine merlin reached out to Chris about it. We PoB devs were offered some extra CLI arguments for PoE's Client.exe to dump the .dat files we need. Now following this discussion, it makes a lot of sense why we never got it. Still, there seems to be some internal disconnect around 7b and its relation to third-party applications that directly rely on data from the game files, like PoB
any different between dump from Content.ggpk and using Client.exe to dump the .dat files?
I'm doing a talk at Auckland Python Usergroup regarding my project that uses poe api. Hope to see some of you there, but will get it recorded also. https://www.meetup.com/NZPUG-Auckland/events/kchjtryccgbcc/
Unfortunately a bit too far for me 🙂
Here's the project if anyone is interested: https://gitlab.com/hammersmake/poepillow/-/tree/master/poepillow
if you want to present this, a good tip is to wrap wide lines ahead of time.
Looking over the code a bit, it doesn't seem to be very Pythonic, making use of modern language features or to be PEP 8 compliant.
Definitely wrap the longer lines, but most of the offenders are just overly terse in general.
For your API requests for example, the line length becomes perfectly fine once you make good use of Requests instead of inflexibly reinventing URL builders:
charprof = requests.get('https://www.pathofexile.com/character-window/get-items?accountName={}&character={}'.format(accountname, charname), headers=header).json()
endpoint = "https://www.pathofexile.com/character-window/get-items"
params = {"accountName": accountname, "character": charname}
charprof = requests.get(endpoint, params=params, headers=header).json()
Good job with the project in general though. I'll watch the recording once it's live
thanks for the feedback.
@simple ravine we aren't allowing access to more scopes until updated ToS goes out, hit me up if I forget
yep looks like a bug, I'll get a fix in. In the meantime you can safely ignore stats on jewel sockets afaik
also if anyone finds anything else weird with the cluster jewels let me know. It took a bunch of copy paste and similar arcane rituals to get working
@compact isle the orbitIndex on keystones is reported as 1. I was expecting it to be 0, not that it really matters.
the orbit index is correct, it's used to calculate the angle from the group it belongs to
(and a value of 1 for keystones matches the client)
@compact isle there is one other thing, on the passive tree itself every node has a unique skill ID (which is equivalent to the node ID)
Example for 3% increased Attack Speed being:
[918]= {
["skill"]= 918,
["name"]= "Attack Speed",
["icon"]= "Art/2DArt/SkillIcons/passives/attackspeed.png",
["stats"]= {
"3% increased Attack Speed"
},
["group"]= 383,
["orbit"]= 2,
["orbitIndex"]= 7,
["out"]= {
"28221",
"15144"
},
["in"]= {}
},
[28221]= {
["skill"]= 28221,
["name"]= "Attack Speed",
["icon"]= "Art/2DArt/SkillIcons/passives/attackspeed.png",
["stats"]= {
"3% increased Attack Speed"
},
["group"]= 383,
["orbit"]= 2,
["orbitIndex"]= 5,
["out"]= {
"24643"
},
["in"]= {
"918",
"48768"
}
},```
even thought the stat is the same, the skill value is unique
this is not true in the cluster nodes
yep, you can't make that assumption with the subgraphs since they are generated at run-time and not a hash lookup into an existing table
example:
[0]={
group="expansion_11",
icon="Art/2DArt/SkillIcons/passives/LightningDamagenode.png",
in={
[1]="11"
},
name="Lightning Damage",
orbit=3,
orbitIndex=0,
out={
},
skill="49817",
stats={
[1]="12% increased Lightning Damage"
}
},
[5]={
group="expansion_11",
icon="Art/2DArt/SkillIcons/passives/LightningDamagenode.png",
in={
[1]="7960"
},
name="Lightning Damage",
orbit=3,
orbitIndex=5,
out={
},
skill="49817",
stats={
[1]="12% increased Lightning Damage"
}
},
they have the same skill value
okay, that's fine. I work around it
my advice is to keep track when you're in a subgraph and to generate your own key based on the group key + index
yeah, exactly what I'm doing
I already got PoB working with importing using the new API
was just pointing out a few instances of things that surprised me
now if you could also provide timeless jewel alterations to the tree in that jewel_data .... 🙂
hah oh man
Shouldn’t be too bad ... although no idea. This nodeId { removeStats = { some stat identifier }, addStats = { some other stat identifier } }
it's bad
there's a crazy subsystem that handles where modifiers to stats that were added come from so that when you socket / unsocket jewels it handles each case correctly
and the website has no access with any of those systems
I am don’t know why I assumed that the game server would do a periodic memdump/snapshot of character data for web server availability. Sounds like it’s component based which is more efficient from a performance perspective
it isn't stored data
@odd sail player's oauth character api support bandit and the pantheon, any plan to add it to pob
@velvet fog I can look. Should be fairly easy. Wasn’t tracking it though.
@velvet fog so I mis-read what you said. I assumed POESESSID was enough. We currently don't support OAuth / OAuth2 in PoB
we could add it but it's a bigger effort than just adding logic for the extra character data. We would need GGG to grant us an oath login (which I believe rory can provide if appropriate need is communicated)
Issue is that we are not a web-based service
Would that be restricted to the player's own bandit/pantheon choice?
Is this only during the third party tool's runtime? What does this mean for the GGPK tools like PyPoE?
see Novynn's reply a few messages before that, what I got out of it is that data extraction is officially disallowed but they're probably not going to go out of their way to punish people for it
@fickle yew @velvet fog @chrome topaz @earnest radish @silent vapor
Here are the updated and final file structure changes for PoB 2.0.
These changes will be live on the dev branch soon.
Assets/ -> src/Assets/
Classes/ -> src/Classes/
Data/ -> src/Data/
Export/ -> src/Export/
Modules/ -> src/Modules/
TreeData/ -> src/TreeData/
GameVersions.lua -> src/GameVersions.lua
HeadlessWrapper.lua -> src/Headlesswrapper.lua
Launch.lua -> src/Launch.lua
LaunchInstall.lua -> src/LaunchInstall.lua
UpdateApply.lua -> src/UpdateApply.lua
UpdateCheck.lua -> src/UpdateCheck.lua
runtime-win32.zip -> removed, extracted to runtime/
tree-*.zip -> removed
Which I still feel is a dangerous policy. If "interacting with the game data" is officially forbidden but actually tolerated, that sends a message that the rules are flexible and can be ignored. (Which I know isn't the case -- but it's a matter of what impression is being given.)
I see. Thank you
whew that was a scary moment. I had a bug in a script I was using to socket watchstones in the Atlas screen. Unfortunately I only opened my inventory and it came close to hitting the button to delete my 2ex watchstone in HO
guess I need to include some pixel tracking to make sure it's in the right screen
@compact isle not sure if this is intentional or not, but i believe currently https://www.pathofexile.com/character-window/get-passive-skills returns no x-rate-limit in the response header.
@minor charm for me the target market of actual players factored into my decision, as they are more likely to get into trouble when something malfunctions like some file locking issues or other unexpected interaction with the patcher/game. A developer working offline to prepare a bit of data for a tool or service is a bit different and is unlikely to cause support load, create bad PR or trigger anti-cheat or whatever.
(this all my own reasoning)
There hasn’t really been any user-facing tools like this outside of asset replacement, asset stealing, and I assume cheats historically, so it’s in a bit of a weird place.
Say something changes that breaks part of my tool, may it be something common like specs for base item types or world areas or something more core like file formats for models or tiles or topologies, my tool is dead in the water and there would be negative energy toward GGG from at least part of the userbase even if told that the tool is running on pure hope.
Worst case with a sufficiently popular tool is that it would actually affect what changes might be made to what is effectively implementation detail.
The mod manager for Beat Saber has left a bit of an impression on me in that regard 😄 :
change the name Mod to Wiki or any other 3rd Party Tool, it seems to be fine too
The most disheartening thing to me is that 7b is grouped under written permission and you reached out to get that but they declined.
I hadn't thought of the repercussions of the end users. But yeah the end users would be super salty if they got account banned or something because your tool didn't comply with the ToS.
Was there much negativity towards GGG from the Awakened PoE Trade API rate limit saga? I thought everyone sort of understood the tool was doing something it shouldn't ?
Don't know if there was much explicitly around that and the Chaos Recipe thing, albeit I'd reckon that such sentiment probably existed in particular communities and the overall instability definitely had a negative effect.
Worst thing about this is that I have to come up with names for new projects. 
bunch of idiots crying that ggg should get better servers or put trade in game if the api is going to be overloaded by their badly written tool
Fancy colour you got there
Wasnt there much bigger problem this league than just artificial api traffic from tools?
is there a addon/mod that makes a sound when you hover over items in your inventory, sort of like a "clank" sound, is that even possible? (not sure if its ok to ask here)
I'm not aware of anything like that
i see
only way i can think of doing that is if its easy to read client memory (assuming the tooltip text is in one accessible location ) and then having a program that plays a sound of your choice when it sees a specific bit of text
alternatively: something that just looks at what is in your clipboard when you Ctrl + C with Path of Exiles as the active window and alerting when certain text shows up
@molten basin The only methods that you have for obtaining information is for the user to explicitly initiate an action upon which you can invoke Ctrl-C to get information about the hovered item via the clipboard, or attempt to OCR a screendump.
You cannot do anything continuously and you may not read game memory nor network traffic.
As Jaz second paragraph touches on, that's how Awakened PoE Trade implements almost all its features like map filter alerts, price checks, etc.
Interacting with the process memory is very against the ToU.
I see, thanks for the response fellas
People digging into Unreal-based games are going to have a fun time going forward - https://twitter.com/rygorous/status/1378043386918174720
Oodle Data/Network/Texture plugins now ship as part of UE 4.27 and are available to all UE licensees. https://t.co/YkgyRFaRLC
135
Datastore protip - despite some claims online that LMDB does incremental growth of the file on Windows, it's only ever in the master branch and never hit a released version.
I found this out the Fun Way with a 100 GiB file in my user profile and a bunch of gnarly code that I now have zero use for.
I have only heard 'meh' claims and bad stuff about LMDB.
I've dug myself into a corner a bit when it comes to naming PoE releases. I had plans to use things like the "build ID" from Steam to uniquely order them instead of messing around with guessing x.y.z.w versions, but they're not too easy to tell, and things like preloads don't have them.
I'm guessing builds are not 1:1 with patches ?
They are, a build is a grouping of depots with particular manifest IDs
Well, they're not 1:1 with user-facing changes in version numbers as there's hotfixes and undocumented updates.
ah ok
Just peeked at the client.txt the only thing in there is the current patch version via url
The thing I'm toying around with now ingests a release's DAT files, deduplicates them and stores a file list per imported release.
diff list per release ?
The idea is to have some before/after relations between builds and tooling to deduce spec changes.
Intelligent use of language variants and 64-bit/UTF-32 versions of DATs to guess column types and extents, as well as datatype guesses.
"hey, this column here is 99.5% equivalent to that column previous release, it's probably the same"
It's not major problem for my personal use as I know build IDs for everything I care about and can just make something up for the preloads; but if sharing the resulting DAT spec it kind of helps if there's an universal way of referring to versions.
Historically I've used the manifest ID for the content depot, but those have no innate ordering and are unrelated to game versions.
(PoE builds are these days made up of three depots; Content, Windows Binaries, and macOS Binaries)
@minor charm In any way, the spec helper idea has been bubbling around my mind for a while but I've had more immediately productive things to develop until recently 😉
That's pretty interesting and fair bit more complex than what I was imagining lmao
I'd be trying to keep everything as similar to upstream if it was my project
In the past on the Rust implementation I did things like run a gang of probes against the possible columns in a single DAT file, trying to tell if it could be a legal float, a number small enough to be an foreign key, a string reference, a possible list of something, etc.
In that case I rendered the output to standalone HTML and broke my browsers 😄
how to determine a legal float?
brrt haha
In that case, I ruled out anything NaN and anything sufficiently huge.
Denormals and very tiny numbers are still common, unfortunately.
manifestID is from Steam yeah ? not the game client ?
Not that I think that DAT files have floats anyway.
@minor charm Yes. A revision of a depot's content has a manifest ID. An app may have multiple depots associated. A build is an app nailed at specific manifests for each depot.
gotcha
All of this utterly irrelevant if you use Standalone and the patch server, of course.
As long as you can invent your own order numbers the use of the tool is internally consisted for a specific dev, but when trying to share the specs the actual numbers may matter.
Like if you go "this spec for BaseItemTypes.dat applies to builds 6091145 through 6210913", that is meaningless for someone that numbers their imports by date or version or imaginary numbers.
However, most of the historical data in poe are not of high value
I guess not for most.
They do. One example is the X/Y coordinates in AtlasNode
Patch 3.13.2.1 1.72GB, small patch
I wonder what kind of tech is Nvidia and Microsoft using to show overlays in exclusive fullscreen games without minimizing them or changing anything. Windows Gamebar and Nvidia Filters work in fullscreen poe, but software like trade price checking do not.
Our type of overlay is a somewhat transparent application window showing on top of the game.
Their type of overlay is the inside-the-process kind of thing, quite likely sneaking in via the compositor or the user side of the driver.
ah I see. interesting thanks
I like how ref|string and ref|list| stands out rather clearly when comparing different language DATs, and also hint to the shape of dat vs. dat64.
(string of ! and . indicate whether that byte of the fixed-width fields are identical across language versions, assuming that rows are in the same order)
Hi, just saw API application are handled manually by mail
Someone know if it's usually fast?
It's less important to me if I can't prepare my app before the league launch 🙂
@earnest radish The recent docs still say to mail rory - https://www.pathofexile.com/developer/docs
I am interested by the private stash API, I guess I will have to wait
You could always mail and find out 🙂
I will try, for science 🙂
^_^
Just saw on the last post
Rory Rackham (who was in charge of the development of the Ultimatum expansion)
I guess my mail will not be p0
Registration is currently handled by us directly at our discretion. You can make a request by emailing roryv@grindinggear.com with your details and requirements. and /api/character and /api/stash are still waiting ToS update
I'm a different Rory 😄 but unfortunately I don't have much time to handle requests right now with the short time before release
My bad, I know your name as "the API person" but I just saw "Rory" and I made the shortcut
I agree it made more sense if it's your job 🙂
Enter the Roryverse.
roryv != roryr
I wonder if anyone asked @compact isle on whether the trade site could support things like the itemized temples, or if it'll be a bit arbitrary what you can search for and not once 3.14 comes 😄
Sounds like it could be Great Fun.
Well, there was not support for searching for captured bosses in itemized rituals this league, so maybe there will be the "great itemization update"
Indeedily.
yeah it'll be easy to search rooms in temples. The reason I didn't put the effort into captured bosses is because they were only relevant for challenges that were easy to complete anyway
I had to do one of the maps 10 times to capture the boss 
Run the scraper on a public cloud instance. A lot of providers have unlimited ingress bandwidth... 🙂
is it possible to know if poe keyboard input goes to a textbox without reading memory?
Nope.
woohoo my app being kinda slow to start isnt my fault
Does Path of Exile not interact with IMEs?
Hey I'm a Final year Comp Sci student using an apple mba (m1), keen to help up for tool dev tests/ mac compatibility stuff
with the 3.13.2 release, I've been messing around w/ POE on my mac.
@safe pulsar Do you have Go 1.16 or later installed? I'd be curious whether pogo (https://github.com/oriath-net/pogo) works correctly
I'll check it out and let you know
Thought of that but not sure if you could leverage that in any legal way, probably signed junk like anything else on the platform.
So ggg is manned by clones of Rorys and Marks 
I believe they have some dupes of Chris and Ash as well.
Hi everyone, sorry stepped away from a POE league data visualization project i was working on.... and came back to see that all the API docs have disappeared and seem to be tracking a possible change to request limits??? I was wondering if there are any GGG posts or what the latest changes to the API is???
@warm matrix Which docs were you consulting?
From GGG there's the newly made https://www.pathofexile.com/developer/docs site, and things like the Swagger is still around.
I think at last glance I was looking at the DEVdocs at https://www.pathofexile.com/developer/docs/api
Ah, go up one directory then for the new pages.
gotcha! Thanks a lot!
what the fuck
i mean it is a spawn weight 0 mod
but even so that should 100% be a suffix, especially given that all other curse map mods are suffixes
so random update, the atlas isn't being shuffled in 3.14 so the map generation parameter won't be changing
Our Standard stash tabs thank you
certainly cuts down on the amount of manual slogging I have to do with maps too 😄
ah also ctrl+C-ing items in-game will get advanced info if that button is pressed
I'll try to get more details and examples uploaded this week
aka ctrl+alt+c? nice
yeah, unfortunately it isn't in like JSON or anything but I managed to sneak some formatting in there after it was implemented so that it shouldn't be too painful to parse
if it's possible people will do it
@compact isle will the advanced info also be present on the stash river?
no, getting that information is too slow so it isn't feasible for us to put it into the river
making a tool for yourself (no permission to use APIs on behalf of other accounts) doesn't require that
so essentially client_credentials-only clients are in a different space, I'll look into clarifying that in the docs
might also want to specify which "client credentials" you're referring to in that phrase -- is that referring to the client secret (single value associated with the application), the access token (per user), or both
it says OAuth client credentials, so it means your client secret
if it meant access token it would say that etc etc
we've been over this before
I'll change it to this:
Interacting with our web APIs on behalf of other users requires a private service hosted elsewhere to store your OAuth client credentials securely. Embedding your client secret in the executable in this case is not allowed.
And that answers my question as well. "Credentials" isn't a standard piece of OAuth terminology so it could be interpreted in unintended ways
it isn't "credentials" though it's "client credentials" which is a standard piece of OAuth terminology
I finally automated map generation updates this weekend.. And now you tell me I don't need it... 🙂
oh no I was too late 
Ready for league after this one 
It's been on my todo list for 10 leagues, so I think it was time anyway 😄
they'll definitely do a shuffle again, those game designers love making complex things shakes fist
Did you update cluster jewel importing to Ninja yet?
But Man does the shuffle keep mapping fresh
"oh boy cant wait to spam my t9 atoll again this league" that some players felt mandatory to do for some reason
every time I see the map tier list on the bulk exchange I die inside a little more
Wait ppl still trade for maps
I think I bought at least ten different ones on trade this league for atlas completion.
If you're feeling like there's too little churn, maybe organize them by watchstone count instead of tier so I don't have to consult https://oriath.net/atlas/ so much 🙂
(I would incidentally trade my left Vaal orb for a map stash tab in-game that grouped by watchstone count instead of tier)
watchstone count? like conquerors completed?
Like how the top tier of a map is the four-stone version, the one below the three-stone version, etc.
It's always a major chore to sift out the 3-stone T14s every single league when trying to do content that cares about tiering like conquerors or 10-ways.
For that kind of content, the actual tier is irrelevant, it's how stoned it is that counts.
There's some prior art to the use of "watchstone count" in-game in cards like https://pathofexile.fandom.com/wiki/The_Price_of_Protection
You can circumvent this by doing the inner regions first
I avoid 3 stone outer sectors like its bubonic plague
I mean, get rid of the "false" T14 maps once you only care about 4-stone ones. For progression it doesn't matter quite as much.
I don't know where the bogus maps come from, but they sure end up in my stash tab over time.
Might be drops that are untied to atlas state or something.
I've not had any of the bogus maps if I don't mistakenly have 3 watch stones on outer sectors
from any drop source other than horizon orbs.
Maybe I was running into the same old set every time through when sifting out maps for Prove Your Worth, I was under the assumption that they somehow dropped from something so it would be pointless to remove them.
Gah, the end time for the Ritual league in the API is one hour off from what's said in the news post.
https://www.pathofexile.com/forum/view-thread/3078209 says "Monday April 12th at 2PM PDT" while the API says 2021-04-12T22:00:00Z
Timezone issues maybe?
News post is unlocalized and posted after most countries transitioned, so a bit weird.
Hope it won’t end like last league 😄
Which of the 3 times you mean?
Would this be a good place to look for freelancing engineers to work on some PoE tooling?
sexy spambots 
@fluid wave Not sure if people are overly interested in bringing money into what's mostly a hobby.
Collaborators and advice, maybe.
I don't think we wish to see our platform used for monetization
It’s for finishing an open source tool that I don’t quite have time for anymore 😦
?
a bored engineer might help you for free
Payment still stands 😄
Don’t expect anyone to work for free, even if it’s open source
So what's your tool doing?
Currently it’s aimed at following streamers characters when they are online, scraping their character data and creating like a timeline for their progress. Could of course be expanded to any account, but that’s the idea
Kind of like ninja but more oriented to following the evolution of a single character?
Currently I use it to just see like “how has their character changed since I last watched?”, so I diff their character state
Yeah
Definitely not my realm of competence.
Got some other functions planned too but got a new job a few weeks ago and my energy for coding is consumed by it 😅
ar-be-ta!
Jobb jobb
I had some plans to work on some tooling between leagues, but 40 challenges ran late and then I spun up Doom Eternal for relaxation instead 😄
But yeah so, I don’t believe I can find anyone to help me get it to a functional state without paying, so here I am 😬
Maybe I’ll check with the Exilence guys, they are Swedish too
There's a bit of overlap with race tooling, but somewhat different goals and timespans.
Poe-racing does similar things but not for the character journey
i am pretty sure ninja planned something like this at some point
question is if its still on the roadmap
poe ninja does have history mode, where you can see the state of characters at different points in the league. I am not sure what the granularity of it is
roughly every day for the first week (I think it takes ~36 hours to cycle through all characters?), then every week
Still working on like the diff functionality between snapshots. Right now I get something like this: https://gist.github.com/bittermandel/d997250ec2726dc9ce49abdbc3f1a2a6
The diff is unequipping a ring, so it's deleting (from Item to nil)
Can't wait for your thing to notice someone gear/gemswapping regularly 😄
the diff between unequipping a 6L item is around 1k lines 😄
@frank drift That's for an entire ladder right?
right
New TOS changes regarding the site and API
Reverse engineer, de-compile or disassemble the Website, Materials or Services or seek to establish the technical processes, operations and communication protocols of the Website, Materials or Services through any means, including without limitation by reference to the input or output of the Website, Materials or Services or the internal structure and workings of the Website, Materials or Services.```
and
```Website APIs: Grinding Gear Games may, from time to time, make available application programming interfaces to enable third-party sites and services to access certain in-game data via the internet ("Website APIs"). Grinding Gear Games may modify, add, remove, replace or upgrade any or all of its Website APIs (including the data fields of those Website APIs) at any time at its discretion. You must comply with Grinding Gear Games' technical documentation and policies (as published and as updated on the Website from time to time or as otherwise notified to you by Grinding Gear Games) regarding use of the Website APIs ("API Policies"). Without limiting the foregoing, you must comply with the Website API call limits set out in the API Policies or as otherwise notified to you by Grinding Gear Games, and not attempt to circumvent those limits.```
I feel this is more aimed at those blanket category "private indexers and notification traders"
to clarify, under 23, should i not be analyzing and/or reporting any of the trade website API responses?
the wording does imply that but it overreaching giving them the ability to apply it how they want
it leaves the door open basically for them to use it for a lot of things
im curious because i often post related to that API on the forum, but if it is now against TOS, i should stop doing that
I am sure that it will not be applied in that manner
but it does the leave the door open to say... "Did you break the TOS to figure out this bug"
like you found a bug while you are doing something to dissemble the API and you simply reported the bug
this gives them the ability to check and if found you were breaking ToS to find the bug, they can use it on you
it does very much feel like it would diminish bug reporting definitely
@compact isle could we have clarification if using the trade (fetch/search) API is against ToS now?
0 votes and 0 comments so far on Reddit
conspiracy: in the league after Ultimatum trade site will get item import using new ctrl alt c, price checkers will be blocked by user agent 👀
that section is mostly targeted at people asking if they can reverse engineer the game protocol "for education"
the website part is to help us move people to OAuth instead of using their POESESSID to find internal website APIs we don't want third parties using
to my understanding most of the tools that interact with the trade site do so without a user session
thx for clarify Novynn, btw cant wait for the new ctrl+c/v 🙂
the problem with account-based keys is that then we lose the ability to monitor / manage requests coming from a specific tool which in the past has caused a lot of server stability issues (downloaded ladder tools etc)
I do understand the niche for that kind of auth but yeah we don't have a good solution to that right now... and if we did it it would need a heavy-hand on the rate-limits
@fluid wave Did some work on tracking character progress - you might find this useful for checking equipment diffs https://github.com/briansd9/exile-diary/blob/45c35568b4483cdb1d1c38e790a74a2ef2c1c33c/modules/GearChecker.js#L271
Cool, thanks @broken cloud!
I probably need to figure out the slot thing as well, right now it's just diffing two arrays which ends up wrong if the snapshots are too far apart 🙂
But the plan is to be able to diff two timestamped snapshots with eachother and see which items have been updated/created/deleted etc
What's your target language or project you want to make, an API? A website?
It's made in Golang and is for browsing in a web UI
Spent most of my time handling marshalling of the get-items/get-passive-skills APIs and the UI development so far
This is a long shot, most likely, but is there a field/flag to be aware of if a stat is scalable with buff effect? I know "buffs" are kind of tribal knowledge right now, was going to clear that up some. Notably, some aspects of guard skills are affected and some aren't
are horticraft station inventories visible to the api provided the proper permissions or is it just stash/inventory items?
I was thinking of building some tool for this small private league I'm gonna be playing that keeps track of people's drops/items/currency/etc and want to know if there are any limitations before I dive in.
i don't think they're stored on the api anywhere to my knowledge
esge made a tool last league that did some ocr (if i remember correctly how it worked) to convert a picture of a horticraft inventory into text and that's about as far as it's got
it would certainly be useful if they were though
There’s no access to them at all, in my community we just had a bot with commands to add/remove/search crafts, no OCR shenanigans.
Cludged in the tree data into PoB while they work on the official release for 3.14:
thanks, I shall yoink that for pob.party
thanks king
Is there a tool/utility to consolidate multiple pastebins?
Is this a whole path of building or do I need to replace a file in my current one with this?
its just the tree data
So thats a no on the tool/utility to consolidate pobs from multiple pastebins?
what do you mean by "consolidate"
So I go to a forum thread and they're like "I have these 9 pob links for different things" and they're all single tree and single gear set, and I want them all in one savefile
some creators are really good and give you all that prepackaged but I just want a way to make it easier to consolidate them when they don't
never heard of anything like that, but would be technically feasible at least
Great, how do I make that?
you would have to parse the pastebins first, probably by loading them into headless PoB and turning them into savefiles
Isn't it all XML?
then you might be able to parse the savefiles more easily and move the data around, never looked at a PoB savefile
convert the pastbin contents to xml, and just add it to each other?
youd have to rename the trees/item sets so theres not multiple called defualt, and the gems would be an absolute mess
and skills
skills have their own containers, but its all xml, right?
or at least I can take the pastebin and easily convert it to xml
Yes it's all in the xml
https://github.com/poediscord/poediscordbot/tree/master/poediscordbot/pob_xml_parser
Is how I do it in my bot
fantabulous, y'all are a bunch of peaches
like I said only thing you really need to lookout for other than configs (which should be the same based on your use case) would be renaming tree/item sets
I'm just gonna let you input a label for each pob you input, have up to 5 designated to browse and one target, so it'll be messy but I'll get a prototype going before friday noon
If anybody wanted to test out new fireburst numbers I did these hacky changes to data/skills/other.lua (Only changed level 20 entry)
Anyone here familiar with the "Proxy Server" option in the PoB community fork? What it does, what it can be used for? Thanks
@lusty glade It's a common web thing for when you can't connect directly to the internet and need to talk to a HTTP(S) proxy inbetween.
A proxy server is a service that takes requests and forwards them onward, returning the response to the original caller. You typically see them on corporate and academic campuses, to restrict and monitor traffic.
For development you can use them for fun stuff like intercept, log, and modify requests and responses.
PoB 3.14 tree update is out btw
So my POB community fork just crashes when I try to open it. I have re-installed it a few times now. Anyone know what my be causing it?
Looks like I am missing config file.
You may want to file an issue on the github repository for the community PoB fork.
The configuration file is a red herring, it's one of those things that's created on demand as you may alter things and is not an error. Your fault lies around enumerating and creating the OpenGL context.
(this place is not for end-user support)
A perfectly normal startup of a freshly installed 2.0.0 has:
Does anyone know where to find the manifest.xml in pob branch
I can't find the file anywhere even in my doc
wdym? its in the base PoB folder
@dull roost it's not in my non-portable version for some reason
is there an api for poe forum or do i have to scrape it by myself?
@vague aurora https://www.pathofexile.com/developer/docs/reference no api for poe forum
Do you know of any limitations about scraping the forum without GGG gonna come and slap me :-D
you could follow https://www.pathofexile.com/developer/docs/index send a request by emailing roryv, no idea any rate-limit on that
make sure you update the tool if you haven't, I don't think the author is on here though
i have update hours ago to last version,1.22
is strange , i have use it before ,and today i was trying to see if everthing is fine for next league and this happens
I'm pretty sure the author has their own discord linked on the github page
oh let me check.ty m8.
Copying an item's description with Ctrl + C now also copies the Item Class.
Do we already know if it's in the first line? Would be a great help to write efficient parser
Novynn was talking about possibly having examples, but not sure if that panned out.
since it wasn't in the "item and filter" post presumably not
anybody here work on Laravel regularly?
*crickets*
Bundles2/Data/ is clean
@primal schooner yes from time to time. I've got a PoE API client that registers as a service provider for Laravel
still need to do some integration testing on it though
It previously worked fine from the CLI but I haven't updated it to include the new changes that they released few weeks ago.
@rapid pagoda pogo seems to work for me on an M1 mac
you'll regret that later...
@rare jasper Since the tech patch I don't ever plan on playing for league start, but will probably have a nice nap in the afternoon after work ^_^
@worthy cape sorry for poking you at 4AM
every time I hover over a passive point I get this error, really dont want to remake everything after working on it for awhile. Can it be fixed?
Try the PoB Community discord
No worries, I have notifications off at night; natural wake-up ^_^
Pretty sure that issue is fixed in our next patch
oh cool 🙂
waiting on that stream LI 🙂
Think patching server will go live in around 14 hours from now so will start streaming around there. Unless we find data files in the torrent that we can work on
oh sounds good, i was expecting gem info from the torrent but maybe I've confused myself
.dat deletes, but .dat64 is inside, working on it
Same stuff included as last league @velvet fog or not sure?
awesome, thanks for confirming
poedb should be updated soon
I did the exact same build and when I was done crafting it started happening again 😦
You on 2.1.1?
no 2.1.0
We just pushed an update
Good to hear
@carmine merlin Heyo, query: How do you go about calculating/getting the stats for minions? Im looking over the Poedb info for Spectral Wolves and trying to figure out how that data could be translated into the stats for PoB's spectral wolf minion.
it's pulled out of the grantedEffect
The skill is in other.lua if you want to modify with the level 25 values
name SummonRigwaldsPack
Im trying to figure out the lv 25 values is the thing
Im not sure what you mean, are you referring to the added phys buff from the wolves? Im trying to find out the base damage of the wolves themselves
Like for the lv 20 wolves, where did this value come from? Where was it found/located/datamined, is it on poedb somewhere?
Datamined
is there an open source tool for this process at the moment? Id like to go through the steps to extract that info and see how it works now
poedb doesnt list the base dmg values of minions anywhere then, does it?
PoEDB provides new things come out each league, as well as unreleased skills or MTX, as all of the information is directly datamined from the game itself.
This is all I can find on poedb which doesnt really explain where it came from or how it was calculated, nor does it corrolate to the values PoB gives at any level
PyPoE for python, libggpk/2 for C# both on github
there is a list of tools on the poe wiki
I dunno how up to date it is
is there a spot often that folks dump the output of the datamine for perusing, without needing to run the extraction yourself?
poedb
poedb 
_<;
Wait does poedb have raw dumps somewhere then?
Im getting the impression whats shown on the site itself is calculated values from the raw stuff, do they have the raw values somewhere?
nah, joking
@velvet fog https://poedb.tw/us/Grasping_Mail should be put in ultimatum, new atlas base
Also looking at RePoe, the monster stats are also dumped as just single values and not ranges, and it indicates that data was extracted via PyPoe
IE: https://github.com/brather1ng/RePoE/blob/master/RePoE/data/default_monster_stats.json#L16
a lot of the raw data is in the game data files
@viral panther https://www.pathofexile.com/forum/view-thread/3079980 not in atlas base
Thats what PyPoe extracts from no?
that'd explain the weird flavour text
Head's up, if anyone uses bun_extract_file I've got a new build that handles GGPKs with no FREE blocks.
https://zao.se/~zao/poe/bun-x64-Release-g462332b.zip
https://github.com/zao/ooz/commit/462332b24cd861c81d96c402139612b2b5e538a5
Got to love few-line-fixes 😄
@compact isle you guys have a typo for Helm Enchantments for Lancing Steel
Lancing Steel has 20% chance t ocount as consuming Steel Shards without Consuming them
for both Merciless and Endgame
@compact isle did you guys change statInterpolation and how it's used?
I don't know about that sorry
@velvet fog did the stat interpolations change. We can't export a bunch of things from the new ggpk
new table called CostTypes.dat
middle one is a key to another table it seems, just not sure where yet
It's Stats.dat
@velvet fog do you export every skill? Noticing some mana cost oddities for some levels of some skills, like Animate Weapon is 0 for the first few levels, wondering if you saw the same
@velvet fog did you have to change anything to get gem quality stats to work again? It's the only thing not working for us now
oi lads - does anyone know if new auth API will cover different regions (and potentially platforms)? speaking about na/eu vs kakao client and pc vs consoles
Am I correct to assume the torrent doesn't include all dat files yet (such as BaseItemTypes.dat, etc... ?)
@carmine merlin same as before
Thought that might be useful pin for anyone who looks into this stuff.
Yeah, the dat listing is there (I got that too from extracting the _.index.bin), but the actual bundle.bin in which these dat files are located, isn't present in the torrent it seems...
No, those are the ones successfully extracted regardless.
oh, ic... didn't notice. Thx for the list though. I guess I'll wait for the patch, the small amount of data that is present, isn't enough to do a full 3.14 update of asset files I need.
Yeah, even if you try piecing things together from languages and different bitness/stringwidths it's still a bit lacking. Nice preview of the specs you might have to touch tho.
@timber path If you're using my Bun thing, there's a version built today linked earlier that handles GGPKs like the preload has that has no FREE blocks.
Thanks for the heads-up on that. I believe one of my tools is still using one of your dlls though. The rest of the bundle & dat reading was moved to c# and improved upon to allow reading of dat files for which specs/definitions are lacking/incompleted/out-dated. It currently does the job, but I simply need all Stats.dat, BaseItemTypes.dat (and some other) files for all languages, so torrent's data won't cut it for me.
Ah, OK, all changes this year is just resiliency when files are missing.
@velvet fog do you know what changed in ModType.dat?
Also keys0 seems to be removed from Mod.dat ? any more info on that? just remove it? or is it replaced ?
1124189575-1131486309-1090698076-1222941913-1172554100 and now for Ultimatum
anyone have the Tainted Oil image on hand?
@rain pasture poedb has it https://web.poecdn.com/image/Art/2DItems/Currency/Oils/VaalOil.png?w=1&h=1&scale=1
@compact isle any reason to make double pseudo prefix?
nah that snuck in, I'll revert it but it'll be slow to expire from various caches
do you rely on it having the (pseudo) prefix on item results?
nope
ok two comments...
- Why on earth wouldn't you proactively migrate account data?
- Why on earth aren't there integration tests catching these things, as in measuring increased time taken per test from baseline, on each PR.
gg.
Easy to find an unexpected bottleneck with massive load that didn't show up in other measurements. Hard to create realistic load.
not related to tool development 😄
That too 😄
I love the imagination of the powers that be, always finding something new for league start.
@simple ravine Lots of work you don't have to do if you are lazy about it.
Any reason why ctrl+alt+c gives you old style and new style data?
Rarity: Rare
Bramble Bite
Driftwood Wand
--------
Wand
Physical Damage: 5-9
Critical Strike Chance: 7.00%
Attacks per Second: 1.40
--------
Requirements:
Level: 16
Dex: 27
Int: 30
--------
Sockets: G B
--------
Item Level: 7
--------
9% increased Spell Damage (implicit)
--------
11% increased Spell Damage
Adds 1 to 4 Lightning Damage to Spells
+1 to Level of all Physical Spell Skill Gems
15% increased Stun Duration on Enemies
+87 to Accuracy Rating
Item Class: Wands
Rarity: Rare
Bramble Bite
Driftwood Wand
--------
Wand
Physical Damage: 5-9
Critical Strike Chance: 7.00%
Attacks per Second: 1.40
--------
Requirements:
Level: 16
Dex: 27
Int: 30
--------
Sockets: G B
--------
Item Level: 7
--------
{ Implicit Modifier — Damage, Caster }
9(8-12)% increased Spell Damage
--------
{ Prefix Modifier "Apprentice's" (Tier: 8) — Damage, Caster }
11(10-19)% increased Spell Damage
{ Prefix Modifier "Lithomancer's" (Tier: 1) — Physical, Caster, Gem }
+1 to Level of all Physical Spell Skill Gems
{ Prefix Modifier "Humming" (Tier: 9) — Damage, Elemental, Lightning, Caster }
Adds 1 to 4(4-5) Lightning Damage to Spells
{ Suffix Modifier "of Steadiness" (Tier: 6) — Attack }
+87(80-130) to Accuracy Rating
{ Suffix Modifier "of Impact" (Tier: 5) }
15(11-15)% increased Stun Duration on Enemies```
hrm, that seems… excessive
I'm not in the game atm (queue...) so I got this from a friend, hopefully he didn't mess it up. So yea seems excessive as ctrl+c is still giving the old style
btw I'm definitively happy with the advanced data. Makes life so much easier
@worthy cape @fickle yew not that unrealistic imo, pretty common where I come from
test automation catches a lot of things
^test what
there's some bug with ctrl-c, it seems to append to the clipboard
tried spamming and got a clipboard with 3-4 times the text
@rapid pagoda Upside of things, doesn't break old tools just because you hold another key.
Like say you have Ctrl-Alt-W for looking something up on Wiki, that'd count as Alt I presume.
- unit testing - business invariants/logic
- integration testing - transactions, processes
- load testing
fairly common to have a baseline of time taken, and warn (or decline PR) when commits are increasing from the baseline significantly.
Correction. ctrl+alt+c only gives you the advanced mod description data but as @hollow knot just said, the ctrl+c/ctrl+alt+c seem to append (sometimes?) to the clipboard instead overwrite the clipboard.
On-topic for the channel - does the new Fragment tab have any API differences, or is it the same with differently-rendered slots?
same
I passed the ctrl+c stuff along to the client folks, seems like if you alternate between advanced mode and not it will just keep appending
🤨
it seems to store the values on the item somehow, if i ctrl-c another item it gets just that one..
if we then ctrl-c an item we spammed earlier it gets the all the duplicate item 😄
yes exactly what I'm seeing
rough day for servers
hmm, got in. can't create character... "Operation timed out"
auth server seems to be down
ya, now it's saying "operation requires the account to be logged in" instead of "operation timed out"
Hi all o/ I'm working with PyPoE Exporter atm and edited the spec for AtlasNode.dat to match the actual row size post-update, however I am now getting an error that I am unfamiliar with, and am unsure what the root cause might be.
This does not occur for all files. (WorldAreas.dat exported successfully.)
Anyone know offhand why this might happen? (err log in next message)
Not sure how PyPoE handles offsets out of bounds, or specs that might be wider than expected.
Hook up a debugger maybe?
worth doing, will check back if I find anything new. ty
those errors could come from ggg removing fields in a dat file, which can lead to misaligned fields if the spec isn't updated correctly.
Interesting, I'd considered this but I thought that would display as a specification row size error. Not always?
Not if the row size doesn't change, lol
It's entirely possible for the format of a data file to change without the row size changing, if columns change order or if the combined size of added/removed columns sums out to zero
I see, interesting
if more columns are added than removed, you only see the the spec size error and it wouldn't be obvious that any column was removed at all
@lean spindle There's a lot of stuff shifting and changing types, so depending on how forgiving it is, it could very well crash out.
My tools, had they been written, would've helped with this 😄
Oh, what were you working on, in particular?
The idea is a tool that has multiple sets of Data files from different releases and distinct specs associated with each.
I'm envisioning some helpers that would look at previous versions of the tables and specs to guess the layout of new specs; and also correlating the contents of different-language and different-bitness/char-width files.
Kind of like the built-in viewer in the PoB exporter, but richer.
Still not sure on the UI design and where to take it, but it would've been handy at league launch.
Fancy. Having an archive of past data files and specs to help with building the new ones definitely sounds useful :)
Slapping them all in a leveldb and deduplicating on content hash, so should scale OK.
PoB update with new skill gems is out
@worthy cape I wonder if this approach might be valuable… https://twitter.com/8051Enthusiast/status/1381955607364796418
Possibly for some of the looser matching. I'm using something similar in 010 editor currently for external comparisons.
Some of the things would require a bit more type-awareness to see through the data offsets to the actual data.
@compact isle It looks to me like some information that is in ctrl+c is not present in ctrl+alt+c.
ctrl+c - ctrl+alt+c
Earthshatter creates +1 fissures (enchant) - Earthshatter creates +1 fissures
Adds 39 to 66 Physical Damage (fractured) - { Prefix Modifier "Flaring" (Tier: 1) — Damage, Physical, Attack } Adds 39(32-43) to 66(66-78) Physical Damage
To me, this would mean that ctrl+alt+c is incomplete and we would need to parse the ctrl+c as well... Anything you can pass on / look into?
https://www.reddit.com/r/pathofexile/comments/msmty4/ultimatum_launch_server_issues_and_streamer/
Oof didn't think they manually started league migration
0 votes and 0 comments so far on Reddit
Is there any way to buy the devs some pizzas or something? I know how it is being in this incident situation and it sucks so hard
any one can help me hier?
Official tweet: "To our fellow devs, be careful with your database page sizes" https://twitter.com/pathofexile/status/1383366993445670914
The server stability issues appear to be fixed 🤞 To our fellow devs, be careful with your database page sizes. Thanks to the entire community for their patience today. This was a rough one.
We hope you enjoy Ultimatum!
774
Can anyone tell me more? Curious about how DB page sizes can cause this kind of catastrophic failure, but my pay grade never got this high before I turned my back on the industry
Too small page size will require several page reads to read a record. Too big of a page size will make you read more than what you need. It depends a little on how big a typical record is.
definitely broken, one Ctrl+C press - three texts concatenated 😅
Hey guys, im on the fuel beacon quest and my fuel cart is stuck at a corner? Not moving, mobs also frozen? Ive attempted to start a new realm/version but that is also stuck. Any ideas?
Anyone have any insights as to why item filters would be broken? Mine haven't worked at all this league. Just using stock neversink ones on my account
nice game guys
Nice channel choice
channel seems irrelevant tbh, the shit ggg gives is negative here or anywhere 🙂
lemme guess shud have sent an email? my bad, that would have fixed stuff..
/s
No you should use #1┃general not the chat for tooldeving
im just clowning around, got my clown nose and all
game is a circus why not roleplay along ❓
but ill follow your advice, thank you kindly sir
wtf? in town
cpu usage 40%+ with fps lock on 75
Hello friend. This does not seem to be pertaining to tool development.
thread for help?
Somewhere else, or mail tech support if you want to actually dig into it.
sry anyway
@rapid pagoda Do you have any plans on updating the audio section with some sassmaster bits, or is it too early?
I typically give everyone a little time to discover content themselves before revealing it all. Which is a good excuse for not spending the time to run the update 😆
Ah, win-win ^_^
I've also been planning for a while to parse and display Betrayal triggers and Heist conversations, but need to figure out how to display that
And I've also been thinking about changing the site from being organized by audio directory to being organized by actual NPCs, based on parsed NPC talk rows. But that would be a much bigger change
Is the planning room banter of Heist in there? There's so many nice interactions between rogue couplings, but exploring them is a mess.
I believe so. It's in NPCConversations.dat
Id string
Unknown1 u64
NPCTextAudioKEys i64[]
AudioOffsets i32[]
Unknown4 i32
AudioOffsets is used to introduce delays between lines, or to make lines overlap
I have a feeling that there's a table somewhere for all of The Trialmaster's lines, with a ton of conditions, since a lot of the lines are very specific
Is there a tool that shows each of the games servers status/health? I don't mean CA, EU, etc... I mean something like Login, Auth, Load, Public Instance, Zone Instance?
No API to query that and the protocol is off limits, so not really.
I've been thinking for a while about an interchange format for data type definitions. How would other tool developers feel about something like:
<format file="NPCTextAudio.dat">
<field name="Id" type="string" />
<field name="CharactersKey" type="r64" />
<field name="Text" type="string" />
<field name="Mono_AudioFile" type="string" />
<field name="Stereo_AudioFile" type="string" since="2.1" />
<field name="HasStereo" type="bool" since="2.1" />
<field name="Flag0" type="bool" since="2.1" />
<field name="Inflection" type="string" since="3.0" />
<field name="Unknown0" type="i32" since="3.12" />
<field name="Unknown1" type="i32" since="3.12" />
<field name="Unknown2" type="i32" since="3.12" />
<field name="NPCKeys" type="i64[]" since="3.13" />
<field name="Unknown3" type="r64" since="3.14" />
</format>
where i32 means a 32-bit integer, i64[] means an array of 64-bit integers, r64 means a 64-bit integer which is a row ID (fefefefe semantics), f32/f64 for floats, etc
yes I know it's XML and XML is icky but it's not complicated XML and it's nicer to edit/comment/etc than JSON, imo
Gonna get a bit messy if you start doing until=, and I'm still not sure if fields have ever moved around.
Not sure if the types are quite expressive yet, I had some trouble mapping all the distinct types from stable.py into types when doing my Rust reader.
There's a lot of ref|T there, for example.
Right now in my tool I'm writing separate exporters from my own representation to spec.lua, stable.py, etc.
Do you see any need for padding/unknown fields, to have a spec in which you've not quite figured it all out yet?
Without having to invent Unknowns for it if the underlying type is not known.
Everything I've run into which PyPoE represents as ref|T is either a string, a list, or a nullable integer. This syntax represents those as string, T[], and r32/r64, respectively
And I'm not particularly bothered by Unknown padding fields
How does this map to the distinctions between 32/64 DATs?
It doesn't. I haven't tackled that yet. 🙂
I would love it if I could cut down the possible field types in my tool, as one of the features I want to have is guessing the type of fields.
... okay, whose idea was it to add "Upside Down" as a language, with the localized language name ndsᴉpǝ poʍu
^_^
maybe they hired australian staff 
Do these formats get changed up regularly, like between major patches and so on? I'm just wondering for how long something like this would be relevant before they change stuff.
That's what the since (and until) attributes are for
NPCConversations.Unknown1 is DialogueEvent
NPCTextAudio.Inflection had gone for a while, it's bk2video now
updates format files :)
@minor charm Typically they change around league start, but sometimes mid-league like last one.
There's a bunch that tools don't use and as such, they may rot for a long while.
A fair bit of the lack of wiki updates is because pypoe's spec may not quite be up to snuff.
Which is also why some peeps still try to make tooling better around it, as it's core to anything from PoB to wiki 🙂
is pypoe no longer updated?
anyone using kosace enhancer and can explaine me how to set it up?
kosace the chaos recipe tool
@compact isle what is better for trade, ALWAYS use "Collapse Listings by Account" or request multiple api/trade/fetch and group on client side?
If "Collapse Listings by Account" is better, can you expose in API number of listings (or at least boolean) that were grouped into one.
it's pretty situational so depends on when you're using it imo
I mean don't want trade to be dead because every request from tool will use "Collapse Listings by Account" 🙂
as far as I know it's cheap, we can't return that we collapsed or how many without it becoming expensive though
Dunno if this is the right channel to ask this in but uh.. for someone that doesn't really know much about coding.. how hard would it be to implement the two skills from Atziri's Rule to PoB?
pretty easy
what happened to the "Show node power featuer?"is it still available or only that power report, it takes ages to calculate
"full dps" makes it do a lot of calculations
fireball ignite damage does not get increased by cruelty in pob
ingame it does
needs fixing
hm website's not doing too hot, another ddos?
says down for maintenance, would expect it to be unavailable if it were ddos
@compact isle Hey, there's not way to filter out "Split" items on the trade site
Did anyone create/find the definition for the UltimatumModifiers.dat?
@chrome topaz We had some guild members appear in-game as if they were not in the guild anymore for a bit, not having chat, tag, nor guild stash; might've been some "unnoticeable" background maintenance.
Or completely unrelated, of course 🙂
Dang, UltimatumModifiers is wide. Some 1-wide fields that are all zero too, so hard to align things.
Yeah, I've been trying to make sense of it too... I know there are atleast two string fields in there
@timber path What tool do you use to play with DAT these days? Mine is not ready enough yet, so I use PoB 😄
took me 5mins to define columns, verified by dat32 and dat64.
more difficult task is to find the name of foreign table, and give names to columns
edit: last 2 bytes in HASH column are booleans, hash is 16bit
@civic crane what's the strategy you're using to find these? Just make them all ints and check which ones are references to strings?
no, just looking at possible types (color coded)
@civic crane do you happen to know what happened to Mod Tags?
not sure what you mean
ModType.dat changed from 3.13 to 3.14
it used to tie into Tags.dat I believe, but doesn't seem to
ah good point I'll look into adding it
those ctrl+c problems should've been fixed by the last hotfix btw (needs a client restart to work)
@compact isle on trade site... not sure if this has always been the case but you can't search for stuff like "reduced" (e.g., Rain of Splinters "% reduced totem damage"). Instead you have to search for "increased" and flip the search conditions
I vaguely recall it used to not be that way
it's always been that way
unfortunately allowing the weighted sum search makes it hard to fix since it would expose that the underlying values aren't what you expect
@odd sail Tags in ModType.dat had moved to the end of Mods.dat
List of keys I assume
Will check later tonight when I can. Thanks
Do you know by any chance If radius of AoEs for AOE skills is stored in any table?
Nope, never found that
Do you know how ActiveSkills or GrantedEffects link to BuffDefinitions?
Haven’t tried so no...
I just noticed filterblade has ZiggyD as one of its meta keywords 😛
is there something like repoe but for unique items? im looking for a way to fetch a list of unique map names
id rather not have to hardcode and manually update
maps are in the data file and can be fetched by PyPoE or whatnot
which is how I generate https://oriath.net/atlas/atlastool-data.js
alright ill give that a look ty
tables to look at in particular are AtlasNode, Maps, and WorldAreas
@fickle yew something is horribly broken, no currencies above Prime Regrading Lens are showing up on poe.ninja
Looks like someone is messing with the exalted price.
ya
Thanks for the heads up. I'll take a look.
It's recovered on its own now.
Has anyone noticed differences between the .dat64 files and the .dat files? Found an extra chunk in Mods.dat in the dat64 version today, throwing off our offsets.
@ebon oasis tooldev https://github.com/esge/PoE-HarvestVendor make thing
K thanks
@compact isle is there going to be a way to search using "Split/Non-Split" as a criteria?
@wind garden #tooldev-general message
ah thanks
anyone know the specific reasons why openarl chose to write pob in lua?
isn't python pretty good for web stuff? django etc, or not hip enough in 2021 anymore?
i write almost everything in Python. some C, C++, and Delphi, too. but i was thinking about porting POB to Rust as a first Rust project. probably client-server arch, so you don't have to update the client just to update skills, items, etc. just didn't know whether there were any good reasons for Lua, other than preference.
Nothing arl specific but it is traditionally very embeddable and lightweight, kind of like your average Lisp. Shallow abstractions, OK error recovery, decent C interop.
So many tables.
Back when I did Python interfacing, there was quite strong pushes in the community that you should “extend, not embed” Python with a blatant dismissal of embedding it for things like games, in the Python world view you run as an extension to a Python centric program in the interpreter.
I’ve tried embedding approximately every language under the sun 😄
yeah that's pretty cursed
client.txt should be in utf8 encoding right?
you think that's cursed? witness: https://www.cappuccino.dev/
It's so cursed it died in 2018 it seems, at least from the looks on the website
last announcement was "yay, we made it to 1.0, we have so many plans"
"*crickets*"
Hi everyone. About the mtx draw box. I am sobad luck. Bought 30 box. Got 12box is repeat open get same aura and other. What we can do with the repeat mtx? Can combine?
Are the PoB community guys aware that Prism Guardian isn't working in the latest version?
When socket groups are assigned to Weapon 2 with it equipped (in weapon 2) the gems are still showing as reserving mana not life
best bet for PoB is to check the github issues, and make a ticket if there's not one already for your issue
I don't know how much LocalIdentity et al read this channel
I have heard reports of Prism Guardian reserving life being broken, I'd bet there's a ticket open but haven't checked
You're right, I forgot that its on github, problem with self updating programs is I haven't redownloaded it for years, lol
It is listed as a current issue
Yep its known, fixed in the next update @dull roost
oh yeah, it's dead as a doornail. but it's the concept that's cursed -- compiling a weird ObjC-JS hybrid into JS on the client side
transpilation is dead, long live webasm
oh wait, typescript
i'll give that a pass
exalted price broken again
@fickle yew more than that, almost everything is broken into uselessness at the moment
Looking into it.
I'm almost at the point where I'm considering updating my own stash tab indexer again to buy bulk prophecies/bases
hmm, is there a way to find more than the first 100 results from an official trade site search?
not really, workaround is to use "Buyout Price" filter for pagination
How do these manipulations actually work?
Like, are there a ton of weird listings or just a few that trips it up?
Like the ex for ex ones?
yeah I settled for that
yeah I'd love to find something better for that reason
It's kind of intended for human consumption, where you probably need to refine your search if you find yourself scrolling in the hundreds.
(sans some corner cases that don't behave well like blood-filled vessels)
with the new "Collapse Listings by Account" it's even lower chance that you need more than 100 results
Exalted restored and extra checks added to avoid further manipulation.
what! 1c isn't 67 mirrors!, what a scam
"Collapse Listings by Account" is the exact opposite of what I want 😛
I'm trying to find bulk bases
thanks for the quick response
e.g. I'd like to find people that have 4+ i86+ stygian vises listed to save me time while buying
up to some maximum price I'm willing to pay
I usually try to find someone on TFT for that sort of situation, but if you managed to use trade search maybe you could get some good deals
yeah I wrote a quick python script
so it can miss items if there's more than 100 at a certain amount of chaos
but other than that it works (using 'price pagination')
can only talk about my page but I would say both. It's quite obvious that if you get a ton of weird listings that your price could get affected. So you have to work against that, for example with weights.
If you internally calculate currencies and one is fucked up, probably more are getting affected. With that more and more will change.
//edit: okay, I removed the example. Not that it destroys something.
I guess there's some upsides to the somewhat manual rebalancing of the "true ex-value" on the official trade site.
It seems that actually a lot of wrong listings (people selling an ex for 1/130 of a chaos because of trade syntax) made it much easier to manipulate this time. I wonder why that increased though.
I mitigate a lot of other things like what @gilded tree mentioned but this was not an issue before.
I saw that on poedb the catalysts are listed under blight ^^ Don't know if maintainer uses this channel
@velvet fog
would there be any interest in maintaining an open source community spec for the ggpk? could be nice for all tools to contribute and share from the same spec.
For the DAT formats, or for the GGPK itself?
dat formats
There's been talk every now and then to have an universal DAT spec, but my tools are very behind, @rapid pagoda has some OK ideas, and there's probably more.
Yes. Yes yes yes. #tooldev-general message
yeah, that suggestion is fine enough for me, i have basically no opinion on the format, just the existence of it
it seems like there are a few tools all with there own specs, might as well centralize it
that way, when pypoe falls super behind like it has the last few leagues, it could instead reference some central spec
curious if @velvet fog would be interested in contributing
since they seem to have the most up to date spec
My idea has been to have a core spec with variants that work for different versions of the game; and exports with field renaming to what different tools expect in their own specific formats.
Life's been busy as always lately tho, so not much progress; PoB's exporter beats my tool for now.
@worthy cape can you remind me which tool is yours
bun_extract_file, poe-rs, poe-doc, and poe-cpp with the hideout editor
Started making a DAT spec finder tool after the editor fell through, with the intent to try to divine things from multiple versions and variants of the DATs.
would be really nice, imo
Inspired by the PyPoE and wiki struggles ^_^
as i build more tools on top of pypoe and repoe i get clogged each league by spec madness
https://github.com/SnosMe/poe-dat-viewer/blob/master/lib/src/dat/schema.ts this is what info I'm expecting from schema
What's the difference between enum0 and enum1?
Anyways that looks roughly similar to what I had in mind, with the exception of inline versioning. Also, there's two types of row ID columns in data files (32-bit and 64-bit)
that's some weird things happening in dat files, <#tooldev-general message>
Oh, huh, interesting
Ah, base offset.
1-based is no longer used for new tables
The resource costs references are 0-based I think, f.ex.
irc the last one using 1-based is near Abyss league
(keys may always have been, very unversed in history)
Although I think there are also a few which are references to empty-row tables
@compact isle why does this work like this?
I even set my search to exactly chaos exactly between 0.5 and 0.5
Silly people listing in decimal instead of fractions?
Note that it actually rounds the cost down in the whisper too.
There's a bit of equalizing of decimal values to avoid people going for miniscule amounts below nominal to beat the sort order.
I don't understand why it's handled differently than it is in the bulk trade search
chaos only rounds to the closest 0.5c
ex rounds to the closest 0.1? but everything else is 0.5 iirc
my guess is just how their database sorts stuff
seems like it would be way easier to literally take the value in the UI box and store it as a decimal
if they put in a weird fraction, it shows up in search priced as a weird fraction
@tacit birch thanks
it matters because it's basically impossible to buy currency at the listed price because they're out of date and already sold. But you should be able to make a live search and message them as it's listed. Except the price filter doesn't work on anything worth less than 1c
@wind garden iirc, it was to prevent people getting top listings with prices of .9999
it makes sense for non-bulk items
also makes sense for items worth more than 1c
but for items worth less than 1c, it's very necessary
is anyone really goign to care if someone lists something for 0.99c isntead of 1c? no. Would they care if they listed for 149.99c? yes
if behaves like a bug because the search UI does not match the results
nothing is preventing them for listing at 0.6c. It's int he note, that's what it's actually listed at. The only difference is the search result isn't showing you 0.6c, it's showing you 0.5c.
It'd just be a race to the bottom with the expectation that you pay 1c anyway. Bulk items aren't special, they still show up under the regular search, don't they?
I don't think they do
yes people care
you'll get tons of manipulation by people to get their stuff to the front
e.g. listings for 0.95c
there's a way to do it already and it's quite profitable
enabling it more would definitely be detrimental
I did some work and I like it much better now
(the left hand side is sticky so if you scroll down it always stays on screen, as is the search bar/buttons
this doesn't add value tbh. I'd like to see auto expanding/hiding of filter groups and filters itself based on selected item category or selected item name. And even better make item category as a row of buttons (optionally with icons) than the current dropdown
Is there a way to get more than the first 100 results of a search, without building my own stash tab index? I am interested in the distribution of prices for items, not just the cheapest/most expensive/average.
@velvet fog
❤️ Love poedb, great tool
@lusty musk add stats
add stats?
Just add stats
it certainly adds a lot of value for me personally, it reduces scrolling by a lot
no idea what you mean by that
U have ho place for stats
do you mean requirements? it's on the right hand side
yes it's there
And u have place for 1 or 2
I'm sorry I have no idea what you're suggesting
Stat Filter
add stats bro
repeating it word for word is not going to suddenly make me understand
what about that?
You're missing the point, people are already doing this, the search filter just isn't working properly on them. These fusings are actually listed at 0.65c because that's what the bulk trade picks them up as. Except when you manually search for them, the results say 0.5c instead. It should not work this way.
Maybe bulk trade items need to get special treatment. I'm not sure the best solution. But as it is, you cannot search for bulk trade items in a live search and get accurate prices if it's listed in fractions of a chaos (which is basically every bulk trade item).
so you can't make the argument (it's to prevent people from listing in fractions of a chaos) because they are, and nothing is preventing them.
do ppl really live search currency
seems pointless as you can just make your own listing instead
It’s not the same thing
And even still, it’s just another way of saying, “ya it’s broken, oh well”
if you're in a hurry, whispering someone who just listed some currency can be a shortcut to a fast trade
https://www.reddit.com/r/pathofexile/comments/mxu05p/poemaplive_to_shut_down_another_victim_of_gggs/
@frigid nova @worthy cape @civic crane https://github.com/oriath-net/formats started this thing 🎉 will import a bunch of formats from PyPoe shortly
@rapid pagoda oh nice! i was going to suggest we have pobcommunity own it
with the hope that having it joint owned it will be less likely to fall behind in maintenance
if you'd be ammenable to that, the pob community maintainers signed off on being interested in maintaining it
orthogonally - @woeful sphinx pointed me to https://github.com/aianlinb/LibGGPK2/blob/master/LibDat2/DatDefinitions.json as a pretty updated spec - you could start with that as well
If they're comfortable with the format, that'd be fine. Or I can add them as collaborators on this repo
Also, I've just imported all the defs from PyPoE. Not all of them work with the current release, but it's a starting point
We were going with TOML instead. Easy to edit by hand and easy to emit JSON/YAML/XML from it
If you want to start with pypoe's spec, the one in my fork has the changes from 3.14 (which I based on the spec @frigid nova linked).
There's also the poe-tool-dev (or whatever it's called) github orga, which might be a suitable place for such a project since it already has a wiki about the ggpk format.
- I'm against
Unknown01Flag01Key01field names, it's a visual noise that prevents quickly scanning by eyes columns with known/unknown data. Such fields must be empty strings, if someone requires loading fields into Map structure they can be renamed at load time.
- League specific introduced tables (league name as prefix) should be grouped into one XML file
- Don't use XML comments, they are not bound to any node, just floating around, can't be transformed into other structured data formats
- vertical aligning using spaces is such a bad idea that was described numerous times why
r32, r64: 32/64 bit row identifiers- wrong, misleading name. Size can be as low as 32 (dat32, referencing row in same file) to large as 128 (dat64, referencing row in foreign file). Correct name for this type isrow, size of which depends on dat mem model and location of row it references
It's a very good idea to create a collaborative repository for the dat specification
@civic crane if you're not already invited, I can invite you to the organization and you could create a repository in there, where everyone can find it easier and contribute to the dat/documentation and whatnot
@civic crane Point by point:
- The fields need some kind of unique name for the tools to work. Removing the names or the fields entirely makes it impossible to represent the data unambiguously in some formats (like JSON), and makes it harder to discuss them. PyPoE was already using those types of names, so it's easiest (and preserves compatibility) to keep that convention
- Why? One XML file per data file is a lot easier to keep track of, both for humans and tools.
- I don't feel like the current comments need to be structured data. They're notes made during the development of the spec. If we want to have some kind of extended description of a field's contents, that might make sense to include within the data
- shrug It makes it easier for me to work with? But it isn't as though the alignment is inherent to the format, it's just how I've authored the initial files
- I haven't taken a close look at 64-bit data files yet, and I'll deal with that when I get there. If that means changing r32/r64 to shortid/longid, so be it, but I don't want to combine them into a single type that requires additional information to handle
if someone requires loading fields into Map structure they can be renamed at load time- less open tabs in VScode when editing related files and navigating I think
- additional information to handle, if so then types
rowselfrowref
I'd argue that specs for the 64 bit dat files are more valuable than for the 32 bit ones. Not only is this the format of the future, when 32 bits support gets dropped eventually, also for the last few league release patches, the 64 bit dat files were not removed, which means a 3-4 hour head start for third-party devs, provided you're able to read them
@golden bane I can basically guarantee that'll change now that you've pointed it out 😉
can pogo parse mod localization files? it looks PyPoe is now "officially" dead so i'm looking to switch...
Which files? I can check real quick
i think it's txt under Metadata/StatDescriptions but i'm not overly familiar
PoB only needs the English mods, but it shouldn't be hard to make the exporter read the others as well
ah by localization files I meant english files, I don't care about other languages
Ah. I don't currently do any parsing of anything outside Data/ but pogo can read those files out of the bundles
Then PoB is already able to read them
The StatDescription files are structured text and have all the languages alongside each other, e.g.
description
1 heist_coins_from_monsters_+%
2
1|# "{0}% increased Rogue's Markers dropped by monsters"
#|-1 "{0}% reduced Rogue's Markers dropped by monsters" negate 1
lang "German"
2
1|# "{0}% erhöhte Menge fallen gelassener Signa der Abtrünnigen von Monstern"
#|-1 "{0}% verringerte Menge fallen gelassener Signa der Abtrünnigen von Monstern" negate 1
ok I'll take a look at what pob does
it looks pretty close to what I'm doing with pypoe now, thanks
@golden bane is there any doc about how to run pob export?
It's at the bottom of CONTRIBUTING
alright sweet
in my vision schema repository also uses gh ci with release action that create concatenated xml, c# classes, rust, pypoe py file, json, ... whatever we add buildscripts to it
and where do you "Obtain a copy of an OOZ extractor"? is https://github.com/zao/ooz the newest updated version?
Okay, the docs are a bit out of date, you need bun_extract_file specifically from zao's repo
ok let me try
If you don't want to build it yourself, I can send you a compiled version
got it to work, looks good
And since it came up, I've started work on dat64/datl support in pogo. I've got it successfully parsing a simple data file (Acts.dat64) already
Personally agree with these points
Before I start updating things, any major objections to shortid and id as new names for row references (currently r32 and r64 in my spec files)? A quick scan of the formats directory shows that most (94%) currently known row IDs in PyPoE are r64, so it makes sense to have that be the implied default
r64?
64-bit row ID reference
ah
Actually, make that shortrowid and rowid. We already call a lot of fields Id which aren't row IDs, so having a type id is confusing
What format are you writing it in? Are we putting it in poe-tool-dev org?
XML for now, oriath-net/formats. I'm still open to some form of shared ownership or a different format but this is what I've got for now
Ok cool, let's talk more about it sometime. I'm a bit biased towards JSON rather than XML, but whatever machine-readable-format that is somewhat understood by others
My main gripes with JSON are 1) the trailing comma thing and 2) no native comments. I love it dearly for interchange (it's what pogo uses for exporting data) but it's not super fun to edit
I'm still really curious what the story is behind the datl (UTF-32 strings) files.
they removed Data.*.bundle.bin files in Heist, and then removed Data/ directory in Ultimatum. I think they will remove more in next torrent publish.
So I was asking about this prior but would like to poke in again as its still important to me, if one wanted to go through the steps to datamine the base damage of a specific minion, in this case Spectral Wolf Companion, or if theres a repo somewhere with latest datamined values, where/what/how would I go about this?
Im looking for figuring out what the base, raw damage is of the Lv 25 spectral wolf skill Law of the Wilds gives, GGG buffed this from "lv 20" to "lv 25" which is, for the most part, meaningless as I understand it becauses they could assign any damage value to the lv 25 wolves they please, really.
How do I figure out, or calculate, or whatever what the damage of this change actually is?
Or, more specifically, in PoB, where did the devs pull these numbers from? What steps would I do to reproduce getting these numbers now but for the newly patched lv 25 version of the skill?
@hazy wigeon Talking from a PoB perspective here...
The skill that summons it is SummonRigwaldsPack, and the minion summoned is SummonedSpectralWolf.
The skill has an array levels of levels for the skills it grants, in this case two entries of level 10 and level 25 Summon Spectral Wolf: https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/77ae3a8/src/Data/Skills/other.lua#L2609-L2662
The numbers in the array correspond to the parameters to the list of stats, taken left-to-right as you go down the list of stats. Each parameter is interpolated according to the statInterpolation values; where 1 is static, 2 is linear, and 3 is a weird effectiveness kind of thing. If I recall correctly, the minion's actor level is the levelRequirement field.
The minions are rather boring melee ones, defined as such: https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/77ae3a8/src/Data/Minions.lua#L204-L223
They're generated from tables in the game data files according to the logic in the Export app from these entries:
https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/77ae3a8/src/Export/Minions/Minions.txt#L40-L42
https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/77ae3a8/src/Export/Skills/other.txt#L651-L671
As for the previous meaning of the granted level 20 skill, it depends on if the minion and skill definitions were different in the past, or if it's a matter of comparing levels 10 vs. 25 of the skill.
Regarding the logic that computes the values you see in Modules/Calc*, I'm staying far from that since my last look 😄
Is it reasonable to assume then that the Required Level of the "skill gem" from the datamining, corrolates to the mined damage values of the actor?
So it used to be lv 70 req, now its lv 78 req. Does that mean they likely buffed it from summoning lv 70 wolves to lv 78 wolves?
Previously it read [20] = { 30000, 10, 10, 8, 65, 8, 16, levelRequirement = 70, statInterpolation = { 1, 1, 1, 1, 1, 1, 1, }, },.
Seems like a reasonable assumption to make, but PoB is all just modelling around what beliefs of what the data stands for; but it's how spectres and minions in general work.
just a random heads up but we're handling OAuth applications via oauth@grindinggear.com now (it still goes to me but also to other people)
so what you're saying is they put you behind a load balancer
@fickle yew hey, i cant search for uniques, skill gems and etc and website's crangled for me and i think its because of CORB, what should i do in that case?
Those CORB warnings are only about ad resources so shouldn't affect the site. It does look very weird though. Are you just using a standard up-to-date Chrome?
What's the exact Chrome version if you go to Help > About Chrome?
Cant do it atm, will send it when i will get to my pc
@fickle yew okay, poe.ninja was broken because chrome was ***ing with me(it couldnt update for some unknown reason even though i started updating process multiple times), now it works okay, ty for help
Good to hear. Mystery solved 🕵️
anyone here implemented the new scopes for stashes/characters in OAuth? kinda want to bounce it with some1
@fickle yew is there a field from the poe.ninja API that determines relic vs. normal uniques?
There was a way to buy things faster using poe.trace.macro where you could CRTL click the whisper on the trade site and it would send it in game. Is there anything still like that?
My path of building isnt showing me the difference in nodes. It should show me damage per point, gains, etc etc
I looked and couldnt find anything
@last violet Working correctly. Notice the line "No changes from allocating this node...". If you're expecting to see a difference, make sure you have the right primary skill selected
thanks!
Probably looking for poe trades companion
thats it
I believe item class is exposed with a value of 9.. Happy to check later. Otherwise it's also part of the item id as relic I think.
It's been a couple of years 😅
Ah, I saw "relic" in the item id, itemClass works much better, thanks!
Hi, I would like to know if there is any chat bot available or in development for poe.
Bots that play the game are obviously not allowed but chatbots are harmless if not used to spam messages.
I would like to implement a chatbot for our guild so that it could respond to a couple of simple price check commands, common questions, even perhaps integrate it with a potential future guild stash management bot that could transfer items between protected tabs to introduce a more complete solution for guild stashes, initially to provide a !starterpack command that gives a tabula and goldrim for new players.
Ideally the bot should communicate with ggg servers directly so that it doesn't need to keep the game alive with a gpu all the time... I learned to read the game memory from last time but I still can't understand how to communicate directly with the game server api
GGG does not allow that
ye but it would be really cool to have that and It's probably not gonna be something they will really bother
any kind of headless client I would expect they would definitely bother
hm... I suppose there must be some systems within it to prevent it then, that will probably be too difficult
its likely slippery slope, theres not a good reason to have a chatbot but developing the headless client it needs to run could be used for other bots as well as some of its functionality
so the chances it would be allowed is defs 0 without permission from ggg themselves
also reading game memory or spoofing communications to the server is not allowed for the same reason
from what I have read on the subject (no firsthand knowledge), the game client/server protocol has measures in place which prevent this
Super forbidden to reverse-engineer and interact with it, so don't, even if your use-case is arguably benign.
theoretically... if ggg went to take action against guild chatbots cause of the headless cli who would they ban/suspend? the guild, the guild admin, the bot account or all of them?
anyone using the headless client, and whoever developed it extra hard
so likely no one from the guild would be affected, right?
wait... do you mean interecting with the bot?
oh no... that would be bad
unless it became public that they knew TOS-breaking software was being used and didn't report it
regardless
just don't
don't even think about it
might also be helpful to open a neversink filter and look at it
I finally got around to combining gems 1-19 (level and quality). Should see more alt quality gems now.
nice!
should help neversink potentially too / anyone else using poeninja data
my bro have problems can't connect have solution ? i die vs conqueror and disconected now i have this message
@coarse egret This channel isn't for game troubleshooting, contact tech support or use the forum.
They will tell you to run PackCheck or Steam's file verification to start with, so start with that 😄
no chanel on discord ? hum okey i try
GGG has no real user-facing presence on this Discord, it's all community-to-community.
ok
@golden bane so just trying to play with exporting mods some more and I can't find where this array is supposed to come from - https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/77ae3a8563c4bbdefe022cf20cbea06499d1bf0e/src/Export/statdesc.lua#L201
I see it's using loadDat here https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/b125fd95b93529eef08aac1c184312e07f513421/src/Export/browse.lua#L15 but the actual function is long gone from the repo (it used to be in _common.lua but that was removed a while ago)
I need to look into it more, but it seems like that's just dead code. Thanks for reporting! That Lua doesn't throw errors when stuff like this happens is my least favourite part of the language :/
Aren't most interpreted languages like that? If the file never gets run you'll never see the error.
That codepath only gets executed for a mod on a unique map, which PoB doesn't export, that's why we've never come across the bug. Openarl must've been exporting everything at one point, I guess?
@compact isle "Collapse Listings by Account" filter sets collapse: {option: "true"} as string, but when you open generated url in new tab backend returns it as JS boolean collapse: {option: true}, which causes UI to not pick up actual filter value and it shows "No"
it does throw the error for me, it just seems the mods which are problematic aren't being used by the default mods export script
oh yeah the unique map is correct, it's one of these "boss drops # additional #"
not sure if people around here know anyone, but poe.ninja has a memory leak somewhere and keeps getting oom killed by chrome, just fyi
has been a problem for a few weeks
that's @fickle yew
I haven't noticed any issues though
think it will be useful if you add page link and how much time to wait
Sure, let me start up a new tab now and keep an eye on it. I am pretty sure ive seen it on both the currency page and a specific build page
but let me verify
https://poe.ninja/challenge/builds?item=Shavronnes-Wrappings&skill=Bane
this was the last page that oom'd , it's been sitting there overnight probably
Thew few tabs I just opened are sitting around 200m each, ill keep an eye on them
They are around 600MB each now, just sitting idle there.
Thanks for the heads up. I'll take a look. Ads or no ads?
Considering giving cluster jewel bases another try... Thinking about doing:
- All the passive node variants (% increased lightning damage)
- Number of small nodes added
- Level ranges (based on mods): 1-49, 50-67, 68-74, 75-83, 84+
Thoughts?
Cluster jewels are still confusing me ¯_(ツ)_/¯. I mentally still live in the 2.4 era of PoE 😄
Cluster jewel trading for me:
- Find random blue cluster jewel
- Put into unpriced public stash
- Random person whispers 60c offer
- Frantically try to price the jewel
- Fail and sell hoping I didn't get scammed
haha pretty much
There's groups of passives added that are of equal value to players but I don't know if those are meaningful or universal enough for culling listings; like how 4-5 passive mediums cost the same number of points to traverse, and where if you only care about a specific subset of the notables on 9-passive ones, they're as good as an 8-passive.
Yeah but I think most of those should be caught by my combined categories?
This could actually be a candidate for some ML. I've been quite vocally skeptical to the methodology to price items here before... but this might be a good thing to try.
Reason being, if my guess is somewhat right, that it depends what's meta, and the ingoing parameters might change over time.
The meta affects the price of the bases but the price difference between a base and a finished jewel should be mostly affected by the crafting costs. For the estimated price of a jewel using the cost of a base and crafting materials should be possible and be independent of the meta.
You mean that people who buy cluster jewels are looking for bases rather than a finished product?
This is only partially correct, any setup that can easily be generated via a more advanced method can be made cheaper than it sells for, also the other thing is crafting bases up tends to be worth it in many cases as even if you dont the super valuable combo you are likely to hit some secondary combo thats also worth somthing
needed flask clusters last league, estimated cost to craft: 4.5ex, price on market, 4.8ex, bought 20 bases and crafted em up and sold any lesser combos, total spent : 18ex, total profit, 2 finished jewels + 34ex
No, they are looking for both I guess.
For example when minion builds were the meta build in blight. +3 elder bone helmets were expensive, but the base as bound fossil already were expensive. The prices are different at the moment due the different meta, but the difference (crafting cost) should be independent of that. It will always take X fossil and a base to make one. If something is meta the price of the base will rise and the price of the materials too (Simpler examples are HH and ancient orbs or unique 6L and fusings).
The price of a finished item should converge to what it takes to make it.
Well, there are 2 ways of determining how to cluster (group) things together, either by observing several properties (modifiers, labels) and their prices (value), or by using meta/domain-knowledge. The former we can automate.
But I think I was a bit premature in thinking ML might work in the scenario to solve rasmus' predicament
Well, it still can work. Using the knowledge just could circumvent the meta problematic you mentioned.
what you could do is pull in other information, one that rasmus already has, which is the builds, and categorize cluster jewels based on that, to understand which builds uses what to determine a categorization of some sort
but there's likely a lot of overlaps
@fickle yew ads, the new video ones i suspect are doing this, that same tab is using 2.1gig of memory today
I have to kill them , want me to get a profile?
Sure.
it crashed while trying to save the profile
Also feel free to just block the ads. Most likely the cause.
ok, all ads or just the specific video ones? i am not sure how to do just some and feel bad about not supporting the site
Just block all, it's fine. I don't mind. I also don't nudge people to not block 😅
I'll bring the memory issue up with the ad provider. Thanks for reporting it.
I'm naughty enough to block about 30k of ad domains in my router's dnsmasq. Quite convenient
Well that's where I draw the line. What's your ip so I can ban you?
You do know I was joking, right? 😅
Haha yes of course 🙂
