#tooldev-general
1 messages ยท Page 133 of 1
I am not saying you can't make mistakes
But you being that neglectful to even think about consequences should never just be blamed on management
he wasn't neglectful, he was doing his job
in exactly the way he was trained to do his job
How is it not neglectful to write a script that generates random imeis that are used to block phones
because that's his job
Yeah that goes nowhere disagree
blaming the guy misses the point completely
guarantee you that you or anyone else in his position with his training wouldn't have done any better
I also blame the guy
Can also guarantee I test that stuff with a single entry before going all guns blazing on prod
Maybe they read and misunderstood a StackOverflow article on how GUIDs and large hashes "don't collide" and applied that to these identifiers? ๐
Is there a way in pob to update gem stats? I noticed some of the awakened changes are not yet active in there
they really require ggpk data so wont be updated till release
Wasnโt sure if there was a manual way but Iโll just add the new bonus to gear to make it work for now
Friend LocalIdentity did a manual pass based on release notes and textual gem info last league.
"Never again" I believe the verdict was ๐
@somber tapir Note that there's a field in Configuration that lets you type in any random mods you want.
Thanks
This DOES NOT include support for the new gems. Those will be added on the 3.16 release day and after.
We Poe players can't read 
pob should add an application tooltip to tell users not to ask for new gems every time they open
"please write the line $randInt from the patch notes to agree to the usage license"
Leisure Suit Larry-grade quiz on whether you're an adult on startup, but for developers.
I almost wish that one of those PoB ZIPs passed around on cloud drives would actually have beningly malicious code in it, just to teach people some security hygiene.
Bad zao
But yeah would be better to teach them that you just need to switch to Dev and download the zip
Or I guess not because people would report bugs for unstable versions
It wouldn't surprise me if people are running into issues now due to having builds touched by possibly unstable intermediary versions.
someone write a dev version readme
Does that line number include the hidden stuff? ๐
Maybe then the solution would be nil
I'm confused
Binary convertion is hard
somewhere around 2 min mark they mention that its actually a "seo in beyond 100 seconds" ๐
intended playback rate: 7x
Completely agree with @grave wren on that discussion. You just don't fuck shit up. Either you like your job, or you get another one, especially if you're qualified for that kind of job... but one thing you don't do, is being neglectful.
What's strangest to me is the prevalent fear of getting fired for making mistakes.
Shit happens, you learn and fix your routines. If you're not actively negligent and things break, that's on your processes.
Yes, making mistakes is a whole different story.
Whenever there's a "post mortem" like this from the US, there's always a prevalent thread of "imma get fired"
However, when mistakes happen (and should be allowed without the fear of getting fired etc), should come with introspection and learnings.
Yeah unsure if I wasn't clear but obviously I am not perfect and make mistakes but they're on a different scalie due to different views
Great way to get people to mask accidents that no-one noticed.
Right. At the same time the notion of blaming the organization and/or management is to me slightly outdated
Then again, it's kind of interesting how the system even allowed to sink all those phones
Where are the checks and balances in that system? ๐
I don't think Telco has many of these
"Do as many mistakes as you want, as long as you learn from them and don't repeat the same mistakes over and over again" is kind of a pretty decent mantra
Within reason though
just don't be like a couple of my coworkers who refuse to take responsibility for their mistakes~
GitLens has a feature that always displays git blame for each line. Hard to not take responsibility if there is a paper trail
I literally showed this one guy the blames, didn't make a difference
Maybe it was his cat
@simple ravine I choose you
can we kill off breakout and just have you use threads if you ever need ot breakout?

Not sure if there's any information to persist in there since the bundle thing, but most of it should be codified in docs by now.
moved it into the ferret hole
glad I'm not the only one with one of those XD
every move you make every key you tap we'll be watching you 
poe-reddit-meeting-202? emote-archive? questions-overflow? I'm not a regular here, but consider my curiousity peaked
used to be 4 questions channel
we store all our old emotes
there was a reddit meetup at exilecon
I think lab was the first ever retired channel
Sorry in meetings still. Yeah, we have threads now, so not needed imo

this travesty of an API I'm working with sends a 200 with a body of {} instead of a 204.
How nice of them.
Would've expected an error key in there.
Oh, 204... don't even know what that's off-hand, "no pony"?
204 is success without content
204 No Pony sounds pretty nice
meanwhile their Delete User call does send a 204. but you have to call it once to deactivate the user and again to delete them, information that would be terribly useful to have in the body ๐
so who's going to write a bot that automatically replies to messages that link to fandom with the poewiki link? ๐
Hey, does anyone know where to get a full list of item categories?
on the trade site, they have such filter.
Type Filters -> Item Category
https://www.pathofexile.com/trade/search/Standard
But when i receive item props from account stash api GET /stash/<league>
there is no category prop.
In type definitions for item they mention extended prop, which suppose to contain category, subcategory and affixes, but i am not getting it.
https://www.pathofexile.com/developer/docs/reference#types
Maybe there is some hidden param i can add to request?
bot? 
I wonder how hard it is to write a regex with what they posted replaced with poewiki
we could add a censor

not very XD s/pathofexile\.fandom\.com/poewiki.net/g
I fuckin did it

if you want to force people on your server of choice that uses blargbot here's the command !!censor add pathofexile.fandom.com -d {replace;{args;0;{argslength}};pathofexile.fandom.com/;poewiki.net/}{newline}{newline} The Old fandom wiki is no longer maintained please use the new community wiki instead, thank you. -w 0
Does this proc on other languages like Russian?

fandom was here? wow...
there are russian urls?
I donโt remember how that all works but the new one only has English content yet I think.
blyat this is english server
korrekt
do you want to get cheeki breeky komrade
?
https://poewiki.net/ru/wiki/Path_of_Exile_Wiki
The Old fandom wiki is no longer maintained please use the new community wiki instead, thank you.
This is where cheeki breeki lives
New DL: https://mega.nz/#!EV1xBBAB!PB8EQQc4F9UUt64Id7TZFWcVGWgtzt0ieznUypS3hPI
This is where cheeki breeki lives
life of boris meme
Like say someone has a discussion with someone in English because itโs the server language but wishes to link a Russian page.
Anyway, just wanted to mention it, your choice ๐
Informed decisions ftw.
You into post-rock?
looks like they're still in the server, haven't talked in a while though. this is their last message #wiki message
I can feel that, poedb was censored by r/pathofexile for years
black?
hmm i did find one or two interesting tracks on youtube but not really
mathcore ร la Protest the Hero or Speed/Thrash Metal like ZnรถWhite (Act of God was great)
Symph, folk, ...
i really should go sleep... - gn
I see, you and I have quite different tastes then. gn
niche example to use for speed/thrash lol
pathofexilezfandomzcom
I bet daddy Tencent isn't too happy with that Taiwan TLD ๐
Huge!

Aight does pob github have a certain readme for sending merge requests
I fixed this stupid thing
CONTRIBUTING.md, that's the standard for OSS projects
aight
We donโt have them for the new wiki yet, want to make sure thereโs editor support before we fork the site
pro90 no stop
where do i find gem numbers in pob files? i'd like to change shield crush numbers to see the dps loss
src/Data/Skills/act_str.lua: name = "Shield Crush",
found it there, but my non-programmer brain cant comprehend it; how do i lower its base damage?
Shield Crush now has a base Attack Time of 0.8 seconds at all gem levels (previously 0.85-0.76 seconds). Now has 3 to 4 Added Physical Damage per 15 Armour or Evasion Rating on Shield at gem level 1 (unchanged), up to 5 to 7 at gem level 20 (previously 4 to 6). Now deals 4 to 6 Base Off Hand Physical Damage at gem level 1 (unchanged), up to 172 to 258 at gem level 20 (previously 286 to 429).
change incrementalEffectiveness = 0.033900000154972, to incrementalEffectiveness = 0.0263, for the base damage scaling and change the values after the 0.80000001192093, 1.2000000476837 in the levels table to change how much damage it gets from armour and evasion
can also change the attack time value to be 800 to match the new time of 0.8s
thanks
its better than i anticipated tbh
went from 15.6 to 15.1 without any changes made to the base shield armour
Skill definitions are in that lovely intermediary format closely aligned to the source data, which is further interpreted by calcs. Kind of why it was a royal PITA for the manual implementation from notes last league.
I am trying to fix the shaper of storm more multiplier without a bandaid patch which hasn't been working since January. There is a function that calculates it perfectly in calcOffense which is "calcLib.mod(skillModList, cfg, "EnemyShockEffect")", this correctly gives back the shock value, taking into account the more mod conditionally to lightning being the highest damage. In my case, I have 130% shock bonus, which is 2.3 multiplier * 1.25 = 2.88, as it should be.
The issue is in CalcPerform, the "function" that calculates the output.CurrentShock, which takes the greatest value between either the amount of shock you've put in configuration or your guaranteed shock value. In this file at line 2689, it uses "1 + modDB:Sum("INC", nil, "EnemyShockEffect") / 100" to calculate shock effect multiplier... which obviously ignores the more modifier from shaper of storms(and is a replication of the math anyways), but for some reasons, if I call calcLib.mod(env.player.mainSkill.skillModList, env.player.mainSkill.skillCfg, "EnemyShockEffect") in calcPerform, it returns 2.3, instead of 2.88, meaning there's some context I am obviously missing
After further digging, in the context of calcOffense, modStore:More(cfg, ...) is returning 1.25 (as it should) but is returning 1 in calcPerform
@simple ravine azure fn to update game version died
@haughty steppe sent you an inv to the PoB discord. People there might be able to help
Oof will check
{insert Azure/MS poking-fun-of here}
probably has to do with patch server changes
When your powerpoint got out of hand...
144hz powerpoint?
154 slides? I hope they aren't full of text like some ppl do
Andersen is a Cloud Enterprise Solution Architect, all they do is bubbles and arrows.
@compact isle Do you know if the new percentile roll is common for all defence types of hybrid items?
Otherwise, this is calculated to be the average percentile of all base defence type values.
The wording is a bit scary
What are you even quoting?
The documentation
Better with words tbh, otherwise you have to watch a video or something of the presentation to understand what the deck is about
anyone know under what conditions Off Hand Accuracy is equal to Main Hand Accuracy while wielding a Sword applies? Must I be dual wielding swords? must the main hand be a sword? does it work if the main hand is an axe but the offhand is a sword? In all 3 cases I am wielding at least 1 sword
yeah it is common if I'm understanding you correctly
I ask because ES have a higher max than others, so a hybryd es/armor that my filter see at 110 could maybe be 115 on ES and 105 on armor
I hope differents rolls are impossible but I'm not sure because it would be negative for ES hybrid bases
right okay, I'll put together an example soon to clear up any confusion
A sample copy/paste of an item would be ๐ฅ
for what part?
For the defense variation percentage (can't remember the term right now)
oh hmm that might be on the advanced text
but the percentage isn't represented otherwise
Hmm, okay, so we'll have to just compare the total value to the base + mods?
so each defence on a hybrid is scaled proportionately so a good ES roll is a good armour roll as well on an ar/es item
so the percentile is the average of those rolls in their brackets and might change slightly depending on the ranges that can roll but should still be sufficient for determining "goodness"
So to be clear, a 50% perfection roll will be 105 on pure armor item, 110 on pure ES item and 107.5 on an hybrid armor/es?
Ornate Ringmail
Armour: (259-298)
Energy Shield: (54-62)
if you get a roll of:
Armour: 293
Energy Shield: 61
that would be 87%
Ok, i'm wrong from the beginning, sorry
the armour / ES rolls are affected by the same "perfection roll" so you couldn't have Armour: 298, Energy Shield: 54 for example
Ok, it's good ๐
I didn't understood the default value, I was thinking 100 being the "old" static value, 110 the new perfect for armor/eva, 120 for es
Having directly the percentile of perfection is of course easier and logic
The "For equipment" was misleading to me, I don't use "equipment" for "item without defense value" but the rest of the phrase make sense so idk, probably my fault anyway
equipment is a new terminology this league so it's natural that it's unfamiliar ๐
I think the first phrase mislead me too
This new roll was introduced to us as "extra" defence, so "Filter by base Defence percentile." was intuitively a 0-1[12]0 range to me
Anyway, the implementation is good, the league is saved, thanks for your time ๐
where do you grab the new* tree JSON from?
@compact isle omg, all filter options on trade are now of type number instead of mixed string/number ๐ฅณ
We cut it down to 85 slides ๐
i remember that abyss sockets were boolean at one point - that doesnt happen anymore?
not sure what you mean, but Im speaking about stats such as Allocates # was of type number, Area influenced by # was a string. Backend actually handled both same even before, but if you open this query in browser you will not see option value correctly selected
ah you meant the format of the stat id with the {type}.id_***
i thought you meant that a field type changed its type from string to number
the abyss socket did not fit in with the others and was a bool while the others were strings iirc. was a while ago though
finally got https://poeskilltree.com/ updated ๐
So, I do need to fix that ๐ ins/outs used to not be correct in the older trees. I will have to research when they were fixed
perfect ๐
also, there is a problem displaying the "connected" mastery icon
Thankfully I got github actions setup so I can build/deploy without manually deploying the site
how long did it take u to find my msg to quote? ๐
I am hoping for new assets when the site launches
They had some really nice looking assets I'm the launch preview
tbh to me the new tree is a little bit too modern, too much rgb rainbow ๐
turns out pathing is really hard when I don't make everything in/out ๐
"36542": {
"skill": 36542,
"name": "Intelligence",
...
"out": [],
"in": [
"4397",
"37569"
]
},
is a good example of how badly the outs/ins are done...
according to the tree, you can't path through this node...
how many day one bugs are we going to find in the tree ๐
hmm... maybe u should take into account if something is a mastery or not? "a node needs to have at least a single taken neighbour that isn't a mastery to be able to take it"
or what is the issue you're trying to solve here? ๐
Yeah, I was just hoping that a generic path finding algorithm would take care of this...
but seems like that isn't the case
why would anyone want to path through there anyway? what a weird idea
just take the right path and you will be fine... gosh, ppl have problems this days
๐
@velvet fog changes in dat64 filenames: https://gist.github.com/zao/34f857dd0ad75dff062833131f94246d
Hellscape
Big fan of hideout doodads
oh..QuestRewards is back
Indeed.
What am I missing about Rory's BaseDefencePercentile example from yesterday? Shouldn't a roll of 293 Armour, 61 Energy Shield be 98% instead of 87%?
293/298 => 0.983
61/62 => 0.983
(293+61)/(298+62) => 0.983
I can't see how one could get 87% from this example? [Edit: Rory corrected my misunderstanding! The BaseDefencePercentile value measures the bonus faux-quality, not the total base defence of the item. So (293-259)/(298-259) = 0.87.]
Novynn โ Yesterday at 7:16 PM
Ornate Ringmail
Armour: (259-298)
Energy Shield: (54-62)
[7:16 PM]
if you get a roll of:
Armour: 293
Energy Shield: 61
[7:17 PM]
that would be 87%
don't directly divide, the percentile is within the range of the rolls not from 0
so Armour: 259, Energy Shield: 54 would be 0%
I understand, thank you so much! I get it now.
=(293-259)/(298-259)
or in the case of hybrids
=((298-259)/(293-259)+(62-54)/(61-54))/2
but essentially yeah
I'm so curious about what people are doing with forks of the skilltree repo
can I submit a PR to buff my favorite nodes?
yeah it was the only reason against hosting them on github :/
luckily we can block pull requests from non-contributers I just have to click a button every 6 months
so I just need to obtain contributor status first, gotcha
yeah you get this cool red name too
Probably has some information distribution caveats tho ๐
okay google, how do I create a csrf attack
You can just look: https://github.com/grindinggear/skilltree-export/network Looks like fixing a mastery image name, and a NO-OP commit so far
Fun fact: it looks like the interface that you use to scourge items is called the "microwave" internally.
just need a microwave mtx for the item scourge UI
@compact isle Any info on how the masteries will be presented in the character API yet?
Petition to change โscourge itemsโ to โcooked itemsโ
I hope that internal terms donโt gain traction in the community, as it kind of shines a public light on the stuff that toolies look at when trying to gather the facades intended to be shown.
I like it when theyโre quaint inside trivia and doesnโt throw away actual hard work in naming and polishing things.
It kind of also ruins the organic nicknames people come up with when twitch chat and Reddit is full of people trying to inform about the secret knowledge.
Iโm a big fan of how Noodle treats anything mined as pretty much non-canon and not intended as part of the cohesive vision.
ppl don't read the pins anyway
but at least we tried
They generally haven't that I'm aware of. Nobody calls Delerium "affliction" for instance
Although I think the community arrived at the same nickname as GGG for Blade Sentries ("SpikeRoomba")
Another weird internal name that comes to mind is "super corruption"
Hey guys check out my new community flipping tool! https://www.reddit.com/r/pathofexile/comments/qdb4qe/introducing_poeflipcom_a_new_community_tool/
12 votes and 11 comments so far on Reddit
lol thanks
realized that my base types use deprecated CDN url
Btw @civic crane I wanted to say that you did a great job on the dat viewer, really good tool
@compact isle you able to paste the new wording on The Squire unique shield for the modifier having to do with "grants gem quality"?
Quick fix before league start
red text = stat is not supported by PoB yet, just wait ๐
ah got it
will be good in next release
updating <github.com/poe-tool-dev/dat-schema>
40KB/s ...
Anybody have experience with PyPoE? Running the UI with
python __init__.py in the ui folder launches the program, but when opening the ggpk an error happens when sorting
warnings.warn('Invalid tag %s - seeking next valid tag' % e.args)
Traceback (most recent call last):
File "c:\games\path of exile\pypoe\PyPoE\ui\ggpk_viewer\menu.py", line 91, in _update_ggpk_model
self._thread.ggpk_file.directory.walk(self._ggpk_sort)
File "c:\games\path of exile\pypoe\PyPoE\poe\file\shared\__init__.py", line 556, in walk
function(**data)
File "c:\games\path of exile\pypoe\PyPoE\ui\ggpk_viewer\menu.py", line 85, in _ggpk_sort
node.children = sorted(node.children, key=sorter)
File "c:\games\path of exile\pypoe\PyPoE\ui\ggpk_viewer\menu.py", line 84, in <lambda>
sorter = lambda obj: (isinstance(obj.record, FileRecord), obj.name)
AttributeError: 'str' object has no attribute 'record'
ui in pypoe was never updated, use https://github.com/aianlinb/LibGGPK2
Thank you. Serves me right for not checking this.
well, I updated tables that awakened interested in. now doing Scourge specific tables
Anyone decoding HellscapeMods or Passives?
just checking - i assume that columns descriptions are user-inputed and GGG did not accidentally nerf delve monster life, right? https://cdn.discordapp.com/attachments/520749115714437130/901146964320743484/unknown.png
can someone explain why is it set up this way instead of employing a function of depth?
delve is non-linear, perhaps table is just easier instead of function with ten ifs in it
that is more of the case "if depth > 0": do one stuff, "if depth > 150": do another stuff, "if depth > 600": do yet another stuff
shallow depths will need special handling yes, but surely it can become a function after a certain depth
at this point, after handling all special cases, why bother
make it so that time is not the only factor limiting your progress after 6000
1298361813-1303823249-1259482630-1407101139-1353656797 how about Scourge ๐ค
There seems to be a typo in one of the stat descriptions: "10|# \"La Prodige envoie tous les Boss en mรชme temps" missing a closing " right after the # and there's an odd blackslash there too, probably that's the culprit?
@compact isle it should show tooltip isn't it? ๐
I simply ignored that line for now (actually just ignoring any malformed stat description line in my case)
Easier to tune and special-case, and might as well use the tried-and-true setup.
Did they mention renaming of fossils? O.o
Changed CurrencyDelveCraftingEnchant.names.1 (Original: Enchanted Fossil | New: Deft Fossil)
Changed CurrencyDelveCraftingSockets.names.1 (Original: Encrusted Fossil | New: Fundamental Fossil)
I found it interesting that they apparently changed instead of replaced the scarabs. So the new Expedition scarabs are still called ParandusScarab, at least in some places.
Makes sense, but a bit confusing.
omg ggg ty for adding this duplicate Added Small Passive Skills grant: 3% increased Effect of your Curses
just wait until you discover the defensive mechanic concept that wasn't included in expedition
oh huh, when did the Traditional Chinese translations sneak in
No-one expects the Chinese Translatisition.
looks like it's new in 3.16
nice error reporting on the patch version thing
nice.
aha, that's what you get for using preview version lol
breaking changes
You get to keep both pieces.
@rapid pagoda I forgot completely about providing DATs and stuff. Index server is coming up milhouse now.
man, WorldAreas went on a crash diet. 724 -> 554 bytes/row
related to WorldAreaLeagueChances I assume
ahah yup same row count
https://oriath.net/atlas/ is updated
@compact isle when do we get the sweet new tree assets ๐
when we switch to WebGL :p
Ah, nice. I am assuming there are some shader effects happening?
Yep
https://reddit.com/r/programming/comments/qdlela/breaking_npm_package_uaparserjs_with_more_than_7m/
take care if you have that package somewhere
Node is a disease 
or maybe it's more accurate to say that JS is a disease, and Node is a poor excuse for a cure
I'm happy to put all the blame on Node
Node wouldn't be filled with so much nonsense if JS had a proper stdlib
still happy to
Hey, my friend wanted me to make an app for league that you can run over borderless games, like a trading tool. I'd be interested in doing the same with POE as well.
I was wondering 1) is there a wiki or something for dev-specific can read to help developing POE apps since i'm super inexperienced and starting from zero.
- would python, say using tkinter or pyside 2 be able to produce a reasonable gui or should we both learn more JS/TS for node.js etc
tkinter is a non starter, not sure about qt (pyside)
- There is the https://www.reddit.com/r/pathofexiledev/ subreddit, but it's not very active. Other than that, check the pins in this channel, read the developer docs https://www.pathofexile.com/developer/docs, read the source code of existing tools, or ask your questions here
- Tkinter is sufficient for simple overlays. Pyside6 for Qt 6 is out, use that over Pyside2. Learn the language you're interested in, they all let you develop PoE apps
thanks! So there isn't a discord?
omg, i didn't checkout the pins mb.
This is the discord
import tkinter
root = tk.Tk()
...
root.overrideredirect(True)
root.lift()
root.wm_attributes("-topmost", True)
Why is Tkinter a "non-starter" for you?
Ah ok, i was wondering if there might be a dev-specific one
In case you're wondering, this is what you need to make an overlay with Tkinter
well, i've been looking into different languages and tools so haven't really tried with any of them. From a brief look at the tkinter docs I know part of how to make something transparent but only really how to use the preset themes
I'm really new lel. I did use tkinter in an assignment like 6 months ago that's it
Also new to discord, just discovered pinned msgs lel
Looks like there's version 3 SMD files now.
Short question: Is there really no guild-stash API, similiar to the account-stash-tab api, or am I missing something?
get stash log csv with web POESESSION
Hmm, that might work... a trip into the hell of regex-string-parsing and item-matching-by-name it is...
... not what I was hoping for but better than nothing - thank you for that suggestion.
As a matter of happenstance, my PoB runtime fork runs on GL ES v2 on top of ANGLE ๐
At least the log is easier to obtain than with my stash-snitch in the past, which had to paginate for ages to obtain history.
Technically my website also run on webgl, but using pixijs as a framework on top of that. I should really just learn out to GL and be done with the framework
Primary reason for PoB is to get away from horribly broken OpenGL implementations and context creation, but the ease of batching and shaders if you wanted to is nice.
Many USB-C docking stations are high on the shitlist, for example.
Meanwhile the ANGLE-powered PoB runs well in an unaccelerated virtual machine, somehow.
The one problem I have is like the 1.3gb of assets you have to load makes web gl shit itself depending on the browser...
^_^
Looks like the only thing it can't run on is iOS haha
Imagine doing the same thing, but as a common GUI rendering layer for desktop apps
Isn't that what QT tries to be?
"Qt", and yep, they have some attempts.
I saw SideFX Houdini uses Qt 5
is it good though? i think I recall some comments on people wanting to get away from it?
Yeah, sorry Qt my phone autocorrected for whatever reason
It's an OK platform to lock-in to, but it has its downsides.
Lots of NIH stuff for everything from containers to text, some out of necessity, some out of spite.
I'd probably go for it if I had to develop a non-game GUI application.
Honestly, I just want html and css as my frontend, but I don't want to run something like electron to do it....
The biggest problem I have with html/css frontend which would require Electron or similar today, is that you'd have to deserialize->serialize->deserialize your app logic
unless you write it all in the frontend ๐
That is fair haha I think you end up with something like blazor when you do the latter haha
Right, and then I'd try MAUI first just because
In terms you'd understand, it's as if you go all-in on C# and MS technologies ๐
Less dead-ends tho.
lolwat
Stuff like Qt Quick and the other more declarative UI stuff is kind of like the XAML junk that MS has.
While proper Qt is more traditional WinForms-like.
There's probably more since I last cared.
My exposure to Qt these days is mostly when research software at work felt a need to depend on it and we have to get the bastard compiling.
Got to love when a "desktop library" fails to build a component because your kernel headers are too new.
Sounds productive
(QSerialBus with some low level hardware access bullshit, I believe)
Most VFX tools are written in Qt nowadays: https://vfxplatform.com/
VFX Platform : Reference Platform for VFX Software
JUCE seems popular too.
There's not really much choice if you want to write GUI software, especially if your artistic users think that macOS is still good.
I've written a few applications using the official Python bindings for Qt by now, and it's pretty decent
It's getting more ergonomic with time, although the developers don't seem to understand Python very well. I've ranted about this before here ๐
Qt# doesn't seem to get a lot of attention
No official bindings. I'd just use one of the many MS silo projects then
https://github.com/poe-tool-dev/latest-patch-version up and running again, cc @civic crane
God-dammit, Python... ran into an exception which I had a try-except block for, except I had gotten the syntax wrong so it raised a NameError and took down my whole service.
try:
os.chmod(fdesc.name, 0o644)
os.link(fh.name, hash_path)
except e:
pass
A kingdom for a language that doesn't break at runtime.
@fickle yew its in the div card list ๐
Gotta have some Easter eggs...
Always nice when there is a name overlap between prophecy and div cards...
i'd take that prophecy off of you for 38c if you ever find the one with 7ex reward ๐
welcome
I had this issue when I wanted to map buyout-tags to items
so annoying
Sounds like you need some more robust tooling ๐ My IDE complains, my linter complains:
PS C:\Users\...\PycharmProjects\...> flake8 "C:\Users\...\AppData\Roaming\JetBrains\PyCharmCE2021.2\scratches\scratch_6.py"
C:\Users\...\AppData\Roaming\JetBrains\PyCharmCE2021.2\scratches\scratch_6.py:35:8: F821 undefined name 'e'
Haven't managed to find out if PyCharm does remote development well or much at all.
Besides, you wouldn't want to use base except clauses anyways, that's an antipattern. All functions in the os module raise OSError on failure, so just handle that instead
All this is running on remote hosts and setting up a relevant runtime env locally is bleh.
You should have a linter at least
Why read docs when you can just guess? ๐
It's not in the docs, that's why I'm telling you ๐
Also, you want to limit try-except blocks to single fallible statement. Like so:
try:
os.chmod(fdesc.name, 0o644)
except OSError:
pass
try:
os.link(fh.name, hash_path)
except OSError:
pass
3.10 docs talk about OSError https://docs.python.org/3/library/os.html
I was reading the pathlib docs on methods, which just are thin wrappers around os.*
Oh cool, that wasn't always there
pathlib is very nice tho
Was just about to preach about pathlib ๐
vscode sufficiently angry now that I've actually installed the Python extension...
file_descriptor_name = pathlib.Path(fdesc.name)
try:
file_descriptor_name.chmod(0o644)
except OSError:
pass
file_handle_name = pathlib.Path(fh.name)
try:
file_handle_name.link_to(hash_path)
except OSError:
pass
Snippet using pathlib. It gets better when the file descriptors/file handles are also already path objects
If you want to do something tith the errors, you can do something like that:
...
except OSError as e:
print(e) # or better yet, use the logging module
which you were probably going for
Not overly interested in logging anything, as this part only fails when there's another racing request for the same file.
Line 71 protects against general re-entry, link failure means that someone else just got past that guard and raced us to writing a temp file.
I see. Looks shaky though. You might want to use something like https://github.com/Tinche/aiofiles

Feels good man: https://github.com/PoESkillTree/PoESkillTree/releases/tag/3.0.2
I haven't published a release in almost a year and a half now
Does somebody know when baseType moved from extended to root level in the Item struct? Or better said, when was it removed from extended (public stash endpoint)?
https://www.pathofexile.com/developer/docs/reference#stashes
Hello there, i've been getting a captcha trying to use the endpoint of: https://api.pathofexile.com
It kind of sucks cus my app hasn't worked since last halfway through last league
works fine for me, listed and sold item immediately, then a small spam after for like ~4min (underpriced), so everything is good
total elemental res psuedomod, could've been it
a couple of hours ago it seemed like things started to return to semi normal
is LibGGPK2 known to be broken at the moment?
AS Someone who runs alot of heists this is super frustrating that the tooltips dont scale down
cant even find an angle to read it ๐ค
Yep I'm adding them today along with Infused Engineer's Orb
hi guys i really need help i cant play POE. it started on the day of scourge league release. after launching the game it will open after 3 seconds it will close. tried every solution but nothing fix it. tried reinstalling the game 3 times. fixing package. really need help. thanks in advance.
Sorry mate, not end-user support. Consider contacting the techsupport email.
no reply from them. maybe ill wait for days thanks guys
Probably a bit slammed with the release, but they tend to get to you eventually.
ok thanks ill wait
Have you tried downloading new drivers?
They'll most likely ask you to upgrade drivers, run PackCheck (for standalone) or verify your game files (for Steam).
Always a good start, and also prepare a dxdiag.txt
i tried all of that
Between playing sessions I've been working on decoding the SMD v3 files. The beginning of the files contains similar data to the v1 and v2 files, but in a different order, except for the group/shape definitions, which have been moved near the end. In between are some large sections I haven't figured out yet. The v3 files seem to be about 50% larger than v2, so there's quite a bit more data.
Neat. I haven't touched SMD files at all since the Rust codebase, last bit of work was FMT and TGM.
What happend to the keystone images.. they used to be on poecdn, but looks like they disappeared with Scourge? example: https://web.poecdn.com/image/Art/2DArt/SkillIcons/passives/vaalpact.png
Great fun considering that the skilltree JSON still has the legacy paths.
Forgot about the sprite sheets.
Thanks. Guess it's time to look at sprite sheets.
Even the #3 size seems quite a bit smaller than in-game, sprite sheet has like 53x54 for keystones, while in-game is 128x128 (176x176 in 4K).
Kind of explains why my game screenshots were so much crisper than the PoB render.
:/
Time for the community to make a cdn lol
That makes sense since the max zoom level is .3835
I do have a program that generates spritessheets from images. I could see if I could reverse that to make full spritessheets and dumb the json
Scourge tier doesn't seem to be available in the copy-paste data of an item? Is it "guessable" based on scourge mods themselves?
probably an oversight, need to create bug report
seems no, there are passives that can +1 to upside
I've never really played with weighted sums, what should the value be?
ok, now I see whats the issue ๐
I don't see you closing your session, so you should use a context manager here
any rust generics experts. I want it to be like typescript fn<SizeT: u32 | u64> () {} ๐ก or at least accept any numeric type
.into() maybe?
As for relevant traits, not sure if there's much in the way of that kind of genericism here.
I haven't messed with this in some time, but is there a tool right now that can extract the passive-skill art from the ggpk?
Nothing complete, but I've got process-image [1] written for the wiki to slice and convert modern DDS files (with cropping) to PNG, and bun_extract_file [2] to extract files you may want to process.
If you're starting from the JSON, I reckon you could take the image paths and look them up either as DDS files in the pack or via sheet indices like Art/UIImages1.txt for the files and rects to slice out.
If you wish to pack them onto sprite sheets again, I hope there's some sort of tools out there to do it for you.
[1] https://github.com/zao/poe-utils/
[2] https://github.com/zao/ooz/
The spritesheet packing I can write myself. I just needed a half way decent way to grab the latest images (I only have the ones from 3.15).
I wrote a process some time ago to pack the spritesheets for older trees, but those were know coordinates. It shouldn't be too bad to generate the coordinates myself though
[zao@frode passives]$ cat data.json | jq '.nodes[] | select(.icon?) | .icon' | sed -e 's/png/dds/g' | sort | uniq | bun_extract_file extract-files /import/full-bundles/8731581036545953257 icons
Index bundle decompressed, 19373487 bytes
Bundle count in index binary: 27574
File count in index binary: 719123
Decompressed inner size: 14943368
Done, 1009/1009 extracted, 0 missed.
[zao@frode passives]$ find icons/ -iname '*.dds' | parallel process-image convert {} {.}.png
[zao@frode passives]$ find icons -iname '*.png' | wc -l
1009
[zao@frode passives]$
I will also need to do assets since those are also scaled
I will just start with icons though ๐
This doesn't grab the 4K icons tho, probably would have to read some DAT files to find that mapping to hi-res resources.
The asset URLs are weird, as the payload only has some sort of hex-string as path.
Yeah, those have always been the /gen/image path
Passive tree curves are kind of funny too:
4K though ๐คฉ
I will see what I can do haha 4k would be absolutely massive
Traditionally gen/image has had some sort of path in the base64 section, but (at least some) assets are like:
[22,"d149e7a56fe92e1de270bb33005b87f7",{"t":86,"sp":0.3835}]
I guess they're a completely different type of generated-from-art kind of thing.
I think "t": is an index
Some of them do have art outputs though
PSGroupBackground1: [21,14,{"k":"2DArt/UIImages/InGame/PassiveSkillScreenGroupBackgroundSmall","sp":0.1246}]
my bundle viewer still kinda works ๐
I can at least see paths to things
It looks like the 4k art for those is the new stuff?
they look really nice
FYI, this seems to be incorrect (or lmk where in my calcs I went wrong). The screenshot shows two pieces of armor, and their stats from game are in yellow. After applying the formula in reverse to find the base percentile (since the game doesn't give me it), only when I calculated from their respective stats (ARBase%, ESBase%) did I come up with the right AR and ES values again. The HybridBase% is off at low values of armours. I'm guessing this is because the total shouldn't just be averaged, but probably is a weighted average since ES values are much lower?
Also, unrelated, but it looks like the dev docs should be updated for masteryEffectPairs when encoding a passive tree url (Thanks, @mortal bone ). They say "the first is the node skill hash and the second is the chosen effect hash for this node.", when the opposite is true
The docs assume you read the masteries as pairs, so chunks of 32 bits. Then the first 16 bit going from low to high are the node skill hash and the second the chosen effect. If you read them as 2 separate 16 bit ints then the first one is the effect and the second the node
Yeah, the highest bytes are read first which is why they seem backwards
Side note, I am hoping to get a lot of work done for the spritessheets, but I am going on vacation for the next week or so tomorrow. Should be able to work on it when I get back
Is there a live search tool/manager that doesn't require an account?
logging in to pathofexile.com is required for live searches, if that's what you mean
you can't live search anonymously because of abuse
live-search-manager requires an account to use, I don't see why the dev needs to have that in his tool, and I'd rather not use it if there's an alternative
again, you cannot live search without being logged in to pathofexile.com
that tool was blocked by GGG anyway because the devs wouldn't follow the rules
again...
way to be patronising ๐
The tool requires it's own, seperate account.
It's an easy jump to make that account means account, especially if you're not familiar with a tool.
I've used it before it got blocked but don't really remember the account part
Can't see anything about it on the landing page either, but hey.
Huh, TIL
one way of implementing integration with path of exile is to have accounts on your tool/site, but it's not necessary
What functionality is it that it provides other than the website with notifications turned on?
enter the botnet ๐
closed source program for moneymaking. I bet they're using it to datamine profitable live searches
From the demo video, aggregation and easy access to the whisper message from notification.
don't forget to buy more tinfoil at the store
Might also let you enable and disable searches, you know, manage your set.
the tool is dead anyway, so
ah fair, saving convoluted searches is pretty handy overall I guess
great, so back to my original question ๐
Is there a live search tool/manager that doesn't require an account?
If you assume benign intentions, maybe it's an attempt to curb the rampant use of old and broken versions, and get in contact with users that run into weirdness?
I'm not aware of any other tool like that at all
and it got blocked because the author refused to play nice with GGG
I'm looking for an alternative, this doesn't matter. I'm not using the program
maybe when the author open sources it like he says he plans to, someone will fix it to follow the rules and you can remove the account part
Do you recall what it was not honoring? Perhaps there's a "gap in the market" for a tool that actually plays nice, but adds some value to the user
Rate limiting shenanigans.
Hello, It's come to our attention that users of this tool are sending excessive requests to pathofexile.com resulting in their accounts being restricted. Please implement some sort of incre...

if anyone knows java and wants to work on an old project, I found this https://github.com/thirdy/blackmarket
I'm at the good old annoying spot in dev. I want to orchestrate some tasks between tools and my choice of communication between them is "files in filesystem", "shared file-based db", "actual DB".
Gonna have to have multiple machines involved for great fun.
memmap!
and all the containers you can imagine
My container infra is super uncomfortable, so nah.
Multiple physical machines, I might add.
REST API, haven't heard that one yet
miss me with that rest stuff gimme good old rpc
Stuff is loosely coupled and more of a pipeline of tasks with dependencies.
There's external automatic and manual changes to gather, which result in a bunch of acquisition tasks that may require manual input, followed by further processing and finally archival of the obtained data.
So gonna need both drop mechanisms for tasks and staging areas for data interchange. A good cluster filesystem wouldn't be bad right now.
I hate having open-ended problems :D
wrong profession then :p
Way happier hacking on self-contained programs without persistence ^^
\o/
@worthy cape thanks for your process image tool. It is super nice for the UIImages...
also, maybe I am parsing the uiimages file wrong, but I have noticed a few cases where the width of the image is 0 ๐
"D:\ggpk_extract\Art/Textures/Interface/2D/2DArt_UIImages_Common_3.dds","D:\ggpk_extract\Art/2DArt/UIImages/Common/InventoryGlowBottom.png",1002,874,0,37
"Art/2DArt/UIImages/Common/InventoryGlowBottom" "Art/Textures/Interface/2D/2DArt_UIImages_Common_3.dds" 1002 874 1002 911?
Yeah. Seems weird.
Yeah, sorry, I was pasting the output with width/height calculated
I guess that it makes sense to sample from a razor-thin section of a larger image, if the using code uses it as texcoords on a quad that doesn't map directly to pixels.
Constant colour bands left-to-right, but varying top-down.
That can't be captured well if you treat it only as a slice to extract.
oh, I see. That makes way more sense
It's probably a bit wider in the texture there so that it behaves OK with coarser mips, btw.
You can see it for things like inventory squares too, they have a bit of neighbouring cells next to them so that repeats tile nicely.
"loose coupling, high cohesion" they say
So, apparently not all skill icons are actually the same size...

squeeze them! ๐
I thought this was going to be relatively easy ๐
These icons are absolutely massive though ๐
ignore that my sorting algorithm is somehow broken ๐
Created a really bad stab at zoom level 1 ๐ the assets are there and the skill sprites contains the extra zoom level. You can at least rip it apart for now. Note: the "skill sprites" have way too many icons for whatever reason, but they all map correctly in the actual sprite sheets. If you know the icon name you can find the coords
Crispy
I need to do the other assets and make it a proper tool lol
I think the line connectors are going to suck
Nice! I did end up doing a quick dump of the passives folder myself and convert them to png.
That is basically what I did haha
ah crap, ooz (and hence pogo) doesn't build on arm64 because it uses x86 intrinsics ๐ฆ
and the source is not particularly good at explaining what it's actually doing!
anyone using awakened PoE can tell me why i cant search for added damage on weapons anymore? have t1 added cold on a weapon but cant include it in the search anymore outside of general dps
I don't use APT but afaik a) you can click "hidden" to show, b) SnosMe is trying to move people to using psuedo search instead of explicit
b) why is that?
more accurate results
apparently a lot of people that were explicitly searching ex for say, 30 fire res mod when a piece had implicit fire res and fire res mod are now upset that APT is hiding explicit
and pushing people to use psudo res instead
this is just what I gather from discord chat though
Wouldn't that be less accurate if your weapon is only good for something like Battlemage? (Going off of showing DPS vs. Flat explicit)
possibly, not sure about that specific example
I feel like these would be very handy to have pinned, thankfully I looked here while there wasn't much backlog and was able to find these great assets. ๐
They are still very much a work in progress haha the ascendant nodes aren't even the correct size
Fair but it's still a valuable thing to have easy access to and it's much appreciated work. ๐
any brave souls want to help out divining the schema for WorldAreas.dat ?
absolute legend! this should be available on your dat-viewer, right?
yes, don't forget to click Restore schema
i would literally kiss you right now ๐ณ
Did they move those things somewhere else, or just remove them? (from WorldAreas)
I've heard WorldAreaLeagueChances
which also gives us a hint as to what all those unlabelled fields were ๐
however, I'd expect that table to disappear soon -- it's not data which the client needs to operate
^ it needs it for terrain generation
Ah, I figured that would be a separate process, and the server would tell the client which leagues needed to be injected along with the seed. But I suppose that works too.
Hello i have a complaint
im just
GAMING
on these cracked out maps you guys make
๐คฆ
afaik we don't make any maps in here 
anyone remember a tool that had a bulk item search where you could click 'Next' and it would send a whisper to the next listing?
I think it came out between 3.12 and 3.14
Sounds like something tangenting on morality
not my fault Chris wants everyone to get RSI.
it just saves you and alt+tab and a ctrl+v
is there an official endpoint for all basetypes in the game for loot filter andy's?
and/or all classes
Iโm in!
@fervent carbon pretty solidly against the rules, a single player-initiated action must initiate at most one game action and may not cycle state.
While it may suck, it sucks evenly for all and prevents mandatory tools to some degree.
Completely unrelated: I wonder if the upcoming changes to how items may not roll directly contradicting Scourged modifiers will show up in tables.
Guessing they will just add them to the same mod group so they can't roll together
Can you elaborate on why this macro breaks the rules, and not every other trade macro? (x is the macro, - is manual)
- look up an item on the trade website
- copy the trade message
x - parse clipboard, if clipboardContents = "trade message"; do
x - send {enter}<paste clipboard content>{enter} to POE.exe
There's only 1 interaction with the game itself, and that's a chat macro
wouldnt this break double simlar positive mods (eg % fire dmg + fire dmg to spells)
That's not "every other trade macro", and most importantly, they do different things based on different player actions.
The player copies different trade messages and gets different results.
In the end, if you have to argue minute semantics, the idea is sketchy as fuck and shouldn't be, it's against the spirit of the rules and will be judged accordingly.
Your thing is a flask macro with more steps.
1 pasted message = 1 server action, nothing else touches the game. that's what all the other macros do.
I'll take healthy joints and ligaments over "spirit of the rules" any day
I see you're set on arguing until your face turns blue. Please don't.
Have a great life, I guess.
hey so I haven't used the poe api in a long while. do I have to email GGG and ask them for permission to use it? I only ask cause this didn't seem to be the case before. But I guess they need to do it now to keep the serves in check
OAuth access with relevant scopes grants you access to interesting parts without having to deal with session IDs and such.
is HeadlessWrapper.lua supposed to be included with portable download?
User-facing releases strip out Export, probably pixes the headless bits too.
Short answer: no. HeadlessWrapper.lua is more intended for vendoring PoB into your own application than extending PoB itself
ah. i've been trying to start it from golang luajit gopher, but the sha1 library loading gets super krangled. definitely my problem
There was some person in here that tried doing that kind of thing a few months ago, might find something in the channel history.
If it was you, I feel for you ๐
@frank kayak
it wasn't, but if thats the case I might just use python jit instead. saw a few github projects with it lol
i meant the lupa bindings
It's a great library, go for it
I'm looking at serving some static data like file listings in JSON and raw data payloads compressed offline to reduce bandwidth and make the data more cacheable.
How much am I theoretically screwing over browser-based tools that doesn't have easy access to zstd and similar decoders?
(core reason being that Cloudflare has a limited number of page rules and I'd rather not burn them pointing out specific paths)
I don't expect it to be exposed as browser functionality, but like, is it feasible to expect someone that fetches the resource in JS to be able to decompress it via WASM or pure JS or something?
wasm is widely supported in evergreen browsers, but I personally would go for fewer headaches and use brotli
Don't really care much about transparent transport compression, ultimate purpose here is the caching.
how much more can you compress it with zstd vs brotli?
Pretty much a slave to https://developers.cloudflare.com/cache/about/default-cache-behavior
gz then?
First idea was to just rename to .bin and have everything stored and sent uncompressed.
gzip is used everywhere
Well, that's why I'm asking here, as people might have actual experience with it.
and has relatively poor compression performance :/
but i believe you can compress your .bin in transport using brotli with the headers
As far as I can tell, you still need third party JS like pako to do zlib/gzip.
Again, I have extremely little control over headers and serving, as I'm behind CF.
Also, this is static data off a dinky four two-core machine, it doesn't want to do live compression.
I'm not 100% sure, but I do believe you can control that though. It's in their interest to compress their egress
Big "nope" in the Firefox columns ๐
could always polyfill for the few % who use firefox
but either way, during transport i'm pretty sure CF will compress it using content-encoding
or are you worried about your own egress from your server to cloudflare?
I mean, you could content-encode it with gzip/brotli as well, and pre-zip it
you just have to make sure your server on your end reads the file as-is and don't attempt to compress it while including the content-encoding
I have no idea what I'm doing, I had hoped for some wisdom and experience from web peeps on what they were familiar with consuming.
I have absolutely no interest in trying to get my thing to serve things transparently compressed, as the #1 priority is to get it cached on CF.
well, you expressed the desire to reduce bandwidth
That is, the choices are pretty much: "serve uncompressed, or serve precompressed as gzip or zstd"
if you're serving a file that is cached at CF, and the browser sends Accepts-Encoding: gzip (or whatever it was), it'll compress it
It's all application layer concerns; any tricks with transport encodings are uninteresting.
I care a bit about the amount of bandwidth I spend on filling cache, and I care a bit about the bandwidth a downstream user consumes.
alrightey then
But not at the expense of extremely complicating consuming applications.
in my mind, it's like reinventing the wheel though, but whatever floats your boat
btw, nginx config comes with a huge warning to not gzip SSL traffic because of some historical attack.
Trying to get some upfront thinking in here, as it's a bother to alter down the line.
you mean BREACH?
Seems so. I've mostly just run defaults, assuming that it is the healthy thing to do.
Well tbh, that's what your WAF's for to detect
it's only relevant if you're serving dynamic content
the attack is conceptually about making a user's browser perform a bunch of controlled requests, and looking at the compressed size of those requests/responses to determine what's in them
ack.
e.g. if you want to discover what cookies are being sent, you can start guessing at the cookie contents in a query string or something, and look at which requests are smaller (because the query string matched content in the cookie header)
but if all you're doing is serving up public data, you don't care.
I mean, TLS is full of vulnerabilities, raccoon, poodle etc
and the more recent goldendoodle
you got to give them credit for their naming capabilities though, they're hilarious
if you want to mitigate these issues, there most effective option is to enforce TLS 1.3, which drops backwards compatibility
... and afaik, blocks you from serving chinese residents
Got some food for thought, thanks friendos.
@civic crane how do you figure out what the column headers are? :/
Pretty sure everyone just makes them up, but I'd be curious if there was another way, too. We did get a small sample of canonical names from a video from Jonathan about their internal tooling ๐
also some of the ones we have "figured out" are wrong, like the delve depth life/damage scaling are flipped
or were at league start
any part of it in particular?
has anyone gotten POB to work with python-lupa? the pip package doesnt seem to install luajit for the bitwise package
All of it. The last time it was updated in PyPoE is heist.. our spec has 20 rows vs 76 actual
76 bytes, not 76 columns
In pypoe they are rows, but yes
3.16 added a single field to the spec, let me tidy things up a bit and get details
32-bit dat should look something like
pogo: -> Id string @ 0
pogo: -> Name string @ 4
pogo: -> Unknown0 i32 @ 8
pogo: -> Unknown1 i64 @ 12
pogo: -> X f32 @ 20
pogo: -> Y f32 @ 24
pogo: -> Unknown4 i64 @ 28
pogo: -> CitadelName string @ 36
pogo: -> Unknown5 i32 @ 40
pogo: -> CitadelRevealVideo string @ 44
pogo: -> Unknown6 i32 @ 48
pogo: -> Unknown7 i64 @ 52
pogo: -> Unknown8 i64 @ 60
pogo: -> Unknown9 i64 @ 68
I'm currently working on fixing types for dat64
ah, I was pretty close. Unknown1,4,7,8,9 are all longid
idk if it is a bug with path of building, but when i was making some clusters, it is showing a passive named "Frantic Aspect" in medium cluster jewel aura effect, but when i go to craft of exile, this affix just appears in small cluster jewel mana reservation efficiency.
aura effect is no longer available on medium cluster jewels. if you had an aura medium cluster in standard, you'd be able to roll aura passives (like frantic aspect) on it, but those clusters no longer drop
that's why pob still show this option?
probably? it's a kind of weird situation
in fact it make sense, since you can roll this mod on standard..
fwiw I haven't tested this, but it'd be weird if you couldn't roll aura mods on an existing aura cluster jewel
working on WorldAreas now btw. got the overall layout from @civic crane, now trying to line up exactly which unnamed fields disappeared ๐
Thanks, Iโll try this
@velvet fog would it be possible for whenever you have a table of mods with weights on poedb to add a line at the bottom that mentions the total weight of the mods in that block? it would greatly help with estimating the actual rarity of such a mod - manually adding everything up is very tedious
ill try to answer later today when i find some time
https://github.com/oriath-net/pogo/blob/main/dat/README.status.md ever wondered when a data file appeared/disappeared? now you know
only all the time
anyone know if the passives tree icon assets where just relocated or are they gone forever? i'm only getting 404's for these now https://web.poecdn.com/image/Art/2DArt/SkillIcons/passives/gravepact.png
All CDN image URLs moved to the new gen/image format with 3.16 after a league of deprecation.
See channel search for a bit of history on it, and Emmittโs work on building nicer sheets from game data.
New URL format has a base64-encoded blob describing the asset and a secret hash you canโt guess, so you need to get the URLs from an upstream source.
hi @quasi otter @golden bane , i did try to call pob headless in go a while ago and made some small progress towards starting it iirc. i did favour the shopify lua implementation (probably worked best). the run of each start of the headless pob was pretty slow with it - with a cgo implementation or jit it probably would be faster. currently i dont have any time for my project if you want to take a look at the small bits of my pob testing i can grant you access to my repo if you send me your gitlab username.
i probably used https://github.com/kikito/sha1.lua/archive/master.tar.gz and https://raw.githubusercontent.com/davidm/lua-bit-numberlua/master/lmod/bit/numberlua.lua for my last tries at it
https://github.com/VolatilePulse/PoB-Item-Tester/tree/master/ItemTester this is a great start for tinkering with headless pob
Path of Building for some reason does not show Rolling Magma as a skill gem to insert
From what I found, the pob requires luajit and the impl from the python and Go versions use lua5.1
is there some intrinsic reason pob doesn't have a way to generate a table/report for evasion rating?
Lupa uses whatever you have installed locally, preferring LuaJIT over C Lua. If you don't have any local Lua installed, it shoud. use LuaJIT https://github.com/scoder/lupa#id14
i know is legacy code for lua, but it would prob be a bad decision to keep it for that reason only. Its big draw was performance, but it gets crushed by about every other competing lagguage today
esp tying the project to a single impl of lua seems rachety
And updated https://github.com/oriath-net/pogo/blob/main/dat/README.status.md with full status. Lots of red for nowโฆ
you need to sync with dat-schema, it has only 7 invalid tables ๐
You may be underestimating the scope of what I'm trying to do. I'm trying to support dat and dat64 across every available version of the data files
didn't know someone except zao is storing old files to validate against them ๐
is there any simple way to get list of maximum stack sizes and inventory sizes for all items?
width/height is in BaseItemTypes, stack size I'm actually not sure
ah, stack size is in CurrencyItems
What do you mean? There's a breakdown in the calcs tab
i mean the report talbes yo can generate from the tree view
to find good paths
you can a number of other things, but no evasion rating. not sure if was some limitation or just nobody added it yet
Lua is a language where you pick a version, once, when you start a project, embed it and don't upgrade ever again. There is neither a large ecosystem nor new language features worth mentioning, so there are no real drawbacks to this approach
wait, do you mean version as in specific version number of verison as in an implementation? im not sure what you mean by "no real drawabacks"
Did you get hold of the files by the way? Kind of fell off my table as I tinkered on my stuff.
Enough of them that I've got a GGPK representing each major release. I'd still be interested in having some access to your full database, but this is a start
Been working on automation lately, as well as trying to squint out approximate game versions.
I shouldn't have any lua installed to my system, but lupa still runs. I think PIP installed lupa is autobundled with Lua5.4, or at least thats what it sees in the runtime
I may have accidentally downloaded several GGPKs from releases where GGG added supporter packs in anticipation of a new league, instead of the release where the league actually dropped ๐
@civic crane btw, here's a full status report for your schema -- I've automated the generation of this report now ๐ https://gist.github.com/duskwuff/725d2370bb8a5cb4f28fc225505e128c
๐ค based on these rules one could also question if the "are you still interested" or "leave party" or custom "thx" or "1 minute please" buttons that each time whisper a different person are also against the rules... What do you think?
Not super familiar with trade tools since Mercury. If there's a distinct button per entry it feels rather kosher. If it's a single one with the intent to do bulk interaction without user decision and choice, it's way grayer.
The intent of the tool they describe is very far from that, the intent of theirs is more to circumvent wording to do something that could be fully automatic if directly allowed to.
The spirit of a tool that tabulates the active trades you have with the ability to by choice send canned responses to participants that the user picks, with the purpose of managing the onslaught is quite different.
I hope that makes some sort of coherent sense?
It makes sense to me. When interpreted literally, you could say that a "thx" button that whispers a different Player each time you click it, would be disallowed. On the other hand, what I understood from the proposed whisper tool is that you click a button (or use a shortcut),and each time you click it, the next Player in the bulk-exchange trade list is whispered. So i.e. not much different from the thx-button behavior. But morally you could question if it is a good idea to have such "whisper next" button. One could say that there is a slight difference though, being that with the thx button you know who you'll whisper, and repeatedly pressing that same button of that same trade notification, will whisper the same guy; yet a different notification with the same button would whisper someone else.
But yeah, I do agree it's in the dark-gray area compared to the gray area for the "thx button".
The way the โthanksโ button works is within tos. It uses a command /reply(iirc) which is why youโll always whisper the last person who whispered you.
Ones that function in that specific manner of using the game's respond-to-last are fine.
Ones that cycle external state are not.
One feature I used in the past was just to click whisper on trade site and it would focus the game and send it. I think it was part of poe lurker?
Itโs been a while, donโt remember. But that was nice and allowed iirc
yup, that's PoE lurker; that specific feature is a little wonky in my experience and sometimes it doesn't automatically focus + send the message though
yep, but it worked for the most part. also, i would click from my second monitor so no real biggie
focus seems like a really hard thing to get working 100%
even my radeon software doesnt get it right most of the time ๐
if i alt tab a lot, it fails to track focus
502 Bad Gateway for the PoE website, hugs to anyone fighting it ๐
Cloudflare? ๐
Woo, got spammed by someone promoting a PoE tool, but not sharing any servers with me. Totally normal behaviour, but at least it's not CS skins.
Ha, same. They did have TFT in my shared servers, but I watched it disappear as they got banned from there real-time
\o/
Yep same to me
Worst of all, the proposed tool would violate ToU ^_^
Don't think it would, since there's no server side action, just a price check
Would have to repeatedly copy item text on motion.
guess PoE has officially made it
when people are trying to spread malware with messages about it being a price check macro
With a community that loves running arbitrary software from the internet, I'm surprised it's not been more targetted.
just run it as admin, what could go wrong
Search "macro" in this server after getting said spam.
Tons of messages in server about said spam advertisement. Nice try guy. Nice try LOL. Good job on everyone being safe (hopefully)
Subscribe to Faust's newsletter for more computer security advice and sloth maintenance tips.
Next issue will be on how to maximize memory footprint so your ram download finally makes some goddamn sense
Upside of things, if people are more careful, I'll have fewer users that nag me ๐
Meanwhile on Github, I'm linking custom PoB DLLs on the issue tracker <_<
Linking them from GH Actions output is probably better than linking them from zao.se, though ๐
Yeah, GH action artifacts expire after a few months tho and I didn't want to manually kick a new one.
anybody getting messages from an unknown person askin them to help test their poe macro?
See #other-news , scam.
yeah, ddit think that was lefgit
i d/led the rar file but didnt extract anything. im always paranoid though about windows doing something hehind my back .
like when i clicked properties it might have run the file or something
already delete the two nessages so can't report
There's always the possibility of file format exploits in tools you use to look at files or in windows components that look at them.
i don't have the same worries the cat and less
There's also the possibility of gathering information by tracking your clicks on the download server, or leveraging exploits in the browser.
In general, interacting in any way but blocking and reporting has some amounts of risks.
fml
Funny that you say cat and less, depending on flags you can emit things that make your terminal do things.
ionly in raw mode and only certain terminals.
With less you kind of need to make it not filter raw commands explicitly with an option, while cat will happily show you anything as long as it doesn't detect it as binary.
Just saying, they're not remotely immune and depending on configuration, traps can trigger.
yes, but ii understand them.
If you feel confident in your abilities and have a suitably isolated environment, knock yourself out.
windows is an unknwon to me
I'm talking to you as a generic typical person, I don't know your background in infohax.
i know
when in doubt use windows sandbox
how are they sending messages tom me in the first place?
Heard that macOS can't get viruses ๐
it cant when it aleady is the virus
Depends on how you've configured your client on allowing messages from anyone, from people on shared servers, or not at all.
They tend to be on shared servers and then rapidly leave to cover traces or get banned.
i cant reply to them b/c it says no shared server
This storm hit at least TFT, and possibly this place.
ive also seen somone dlete their comments from my pm window
Let's hope that this campaign didn't catch too many users, so that it has a chance of stopping.
what does the virus do?
No idea. Reported and went on with my life.
Not keen on getting anything and not hot on bolstering any statistics.
might make it easier to see if someonw has been infected
anybody here tried PoE Lurker?
I really like the simple UI, but I cant for the life of me remember the random clicks and modifier keys. Wish it was more consistent, but very good direction i thk.
i only use the basical AV installed with windows. anything better?
nah, nothing adds much to Windows Defender afaik
mostly just bloat, and security risks in and of themselves for something like Kaspersky
on pop, is calc.defenses basically the entry point for everything?
The main entry point for the application is Launch.lua. If you're only interested in the calculation engine, that starts in Modules/Calcs.lua, although it is set up in Modules/Main.lua first
i meant more in terms of workload. calc.defenses was just very meaty
Yes, there's happening a lot, mostly due to PoE's intricate game systems
@civic crane btw I've just migrated to a fork of your schemas. have been staring at a bunch of data and will have some patches for you soon ๐
It seems those "price check phishes" only targeted commonly used tool developer accounts
haven't heard anyone else getting them
That's a bold game targeting tool devs
Yeah I got 2 attempts with about 10-30 minute inbetween
I had the one previously, but not this one
๐ฆ
i got one, where's my tooldev role
being serious i think they probably just scraped through anyone that posted here
there ๐
wouldn't be surprised if they got some people asking questions about tooldev rather than the actual devs
I got three, must be the super-green.
Would be "interesting" if the purpose were to infect the build infra of some actual tools.
would fully expect that's the intent, if it was as targeted as it apparently was
someone has to be really naive tho
At least that would be pretty easy to figure out in a lot of cases. Depends on the language though, I guess.
Something like an off-by-one error could take a while to find.
Or steal enough credentials to push a loud malicious executable through autoupdate, reap immediate profit.
it's happening, I'm rendering content of foreign table, not a full sql join, but it's something ๐ will push code after some cleanup
@civic crane Oh neat! I think that's roughly what the internal tools do for named rows too
On a related note, I was thinking earlier that it'd be neat to be able to generate synthetic content for stub tables, like row names and numbers in enumeration tables like Attributes or QuestFlags
That way, you'd be able to do things like assign a name to a QuestFlag and have that show up in tables that reference it.
a counterpoint (which actually calls out Krebs for overreacting): https://research.swtch.com/trojan
I created a pull request for poe-tool-dev/dat-schema which adds exporting of enum tables to the schema
allows me to do stuff like this
Excellent. How do the named values show up in the exported schema?
there is an array named enums which has elements which look like this
"name": "InfluenceTypes",
"enum":
[
"SHAPER",
"ELDER",
"CRUSADER",
"EYRIE",
"BASILISK",
"ADJUDICATOR",
"NONE"
]
},```
Can you add a flag to allow the enum to be treated as 1-based? Some tables like QuestFlags appear to behave this way (or as if there's a 1-based id they're referencing)
You could add an unnamed entry for 0, that should fix it
if you enter _ it should output is as NULL in the schema
See, here's the thing. The enum table inherently has a row count even if those rows are empty, and I've seen situations where the "last" row is referenced
Naming the rows individually and ignoring the table row count works for small tables, but it'd be nice to be able to recognize situations like "oh, this enum table has more rows than we have names for" or "oh, this value is too large to reference this enum"
Hmm yeah thats true
Maybe its possible but i am not familliar with gql, seemed like it was pretty limited with stuff you could do with enums
@compact isle found a weird bug. Two searches, one I include the custom search "contract" and the other I don't. One shows me a rare contract for 1c, and the other only shows me the cheapest of 2c. Both search results include "contract" in the name so I would expect the custom search to pick up the 1c contract, but it doesn't.
No Custom Search String: https://www.pathofexile.com/trade/search/Scourge/5844GODta
Custom Search String:
https://www.pathofexile.com/trade/search/Scourge/elldV8YiL
Note that you're capping out the number of displayed results so sorting may be rather wonky.
name != basetype
is there a better way I should be searching?
I just want to search for a contract (of any base type) that requires perception lvl 3
it's made difficult because all the different contract types are their own base type
ie. Contract: Smuggler's Den
if it were a sorting issue, I shoudl be able to specify a max price of 1c and get results
but no results returned
๐คทโโ๏ธ
ahh there we go
sometimes...i just want that search items box to search for anything in the name or base type
"custom search" is like "Contract*" not "*Contract*"
does it work that way to improve performance?
thought you can put "*Contract*" to get the behaviour you want
yeah
custom searches on text is much slower than using the category filter
\*
\o/
@compact isle tbh i don't know why you keep term search, haven't found single usecase for it ๐
it's closer to "base type" but it has a few extra uses
unrelated... i just had the most hilarious idea.
so cloud service providers are introducing 'chaos engineering as a service' where you can inject faults to services and record what happens etc
how about trolling our colleagues by sprinkling some chaos monkeys in production without any forebodings ๐
Not distinguishable enough from their usual deployments.
searching for rare items with novelty names, like "Plague Corona, Vaal Mask" ?
I used to use term search for searching flasks when I was lazy
a lot harder to do that now though ofc
would have to remember the name of the t1 mod out of the 10 different tiers
eagerly awaiting the introduction of the new "of the Jackalope" movement speed suffix
I was convinced at first that ggg stopped using 1-based around abyss league, but looks like I was wrong. Still have no clue what's the difference
I suspect that what's going on is that the real tables have an integer key that counts up from 1, and that's what's actually being referenced
I have the same question, partly from 0, partly from 1
As far as QuestFlags go, I'm pretty certain that the server version of that data file has not only a 1-indexed ID, but string names. Those names appear in some NPCTalk scripts in calls like triggerer.SetQuestFlag() (which I guess are ignored by the client)
Anyone have advice on interpreting /Metadata/PassiveSkillGraph.psg?
The old PyPoE parsing isn't working for the 3.16 data.
Since when was dagger / wand weapon combination a thing?
there use to be a bug that let you do it, but iirc it was wand in offhand with melee mainhand
and got patched ages ago
people have been doing wand/sword since day 1 of league
maybe you can do some modification of that energy blade bug to do wand/dagger
yeah it should work for any offhand
turn wand into an energy blade, socket other melee weapon, turn energy blade off
wasn't actually sure what energy blade requires
Itโs pay as you go
thanks, so as long as it shows "free" I shouldn't have to pay anything I guess... I'm confused because I'm running a discord bot on heroku and I was expecting to have to pay something
The free tier gives you quite a bit of juice
You can also set up alerts iirc
I have a feeling that's kind of intentional -- confuse people with pricing enough and they'll just pay for more
cry in AWS
AWS pricing isn't that bad tbh. There's a lot of separate line items but at least it's clear what you're getting
no but it's really confusing, there's tons of services
I ended up getting a bill when I tried "for free"
(a very small one, let's be honnest)
(but still a bill)
Also, fun tip: spot instances can be super absurdo cheap if you're willing to put up with occasional restarts. Like $2.50/mo cheap
I'm considering using a GH repo as a catalogue service to serve a small JSON file, kind of like how PoB checks manifests against the repo to find out if it should update.
Are there any limits in request counts and delay until updates take between GH pages and raw file access in a repo?
From what we've seen, updates can take up to 5 minutes. Not sure about request count limits. GitHub doesn't show raw download stats, but during a major update, files are probably getting hit several thousand times at once.
I've heard some reports of people having to retry the update, but nothing definitive
I guess that if PoB works, my tool would too.
GitHub Pages sites have a soft bandwidth limit of 100GB per month.
GitHub Pages sites have a soft limit of 10 builds per hour.
Seems like rate limits for repos are more about individual users/IPs.
The Homebrew and CocoaPods projects have run into some issues with the ways they use GH, but your tool is probably going to be fine
Just got to avoid polling it on every startup I guess.
And/or make sure your queries can be cached. GitHub probably won't mind if you make a single request for a small file at startup, especially if it's a HEAD request or GET with If-Modified-Since
anyone else getting really weird behavior on trade site where it onyl shows 2 results with "load more". Clicking "load more" immediately expands and then collapses the results back down to 2 results.
you're probably using an extension that groups together identical search results
ah you're right
it was better poe trading
disabled the extension and it's working now
"load more" always worked for me, even if it can be a bit jarring, maybe it couldn't fetch the next page of results
I didn't mean to describe it as a bug, if the entire next page was just more results from the same player the extension collapsing that back down to 2 results is the expected behaviour, it just updates the item count or whatever on the first listing that player had, it's just jarring if you don't notice that happen I guess
hey, i think i found a bug
the life leech node that Rangers get when playing TR doesnt work when you play a shadow
- this is not the place for those kinda bugs, its for tools not poe itself
- that bug makes no sense, leech is leech
Probably just not doing enough damage
Assuming the node youโre talking about is a percentile one and not a flat integer recovery
what an interesting item
they put it in the microwave, but took it out before clicking the scourge button
being way over the required corruption level is weird though, maybe the requirements changed?
afaik you can collect for current + next level of krangle
so the total now should be lvl 1 + lvl 2 krangle exp
only for maps in 3.16.0c
I love that there's slivers of a build planner in PoE already, with un(der)documented speculative insertion of jewels in the tree: https://www.youtube.com/watch?v=y_iebZu527g
but now i know
โข PoE School Playlist: https://bit.ly/3xKbQmw
โข Build Guide Hub: https://www.poe-vault.com/guides/ghazzy-guide-hub
โข Crafting Guide Hub: https://www.poe-vault.com/guides/ghazzy-craft-guide-hub
โข My Build Guides: https://www.poe-vault.com/guides/ghazzy-guide-hub
โข My take on the state of trading: https://youtu.be/zJ5veMnwBBo
โข ...
I just posted that in our guild discord. Crazy feature. I used to make PvP only characters to check that, lol
can carry +# more jewels from last portal inside tree ๐
got achievement without allocating ๐ this is totally a bug
about time, tbh. the whole business of "you can't see what that cluster jewel does without investing a bunch of time/resources or using the PvP-only-character trick" was kind of BS
(also PvP only characters are gone now soโฆ)
Party's over, hotfixed.
GGG fun police



