#tooldev-general

1 messages · Page 92 of 1

worthy cape
#

😄

#

I'm really happy that I managed to make some progress, been spending the last week or so on instrumentation to see what on earth goes wrong in some of my parses.

#

15k files, doesn't scale well to look at them one by one.

#

Made some tooling to look at problem points in a parse and spit out statistics on whether the bytes at that spot seemed to be floats, quaternions, small scalars, etc.

golden bane
#

you can make your own dictionaries very easy

worthy cape
#

We recently moved most of our syslogs to zstd, nice middle ground of perf and compactness.

golden bane
#

nice!

oak arrow
#

mainsites stranglehold on affixes still pretty sucky

#

not even with hybrids but straight up I actually almost bought this and it was just wrong

frigid nova
#

@polar island ah thanks, thats exactly what i was looking for

#

Is @oak arrow claiming official tradesite displays wrong tiers?

#

@polar island I assume it would take too much processing power to compute all possible mod affix combos for every item

#

what input/output would you be looking for

wind garden
#

@chrome topaz is there something going on with poe.trade? It's over 10min behind poeapp.com

simple ravine
#

Are there similar delays with poeapp?

#

I mean, you're faster than them all right?

chrome topaz
#

@wind garden the river's probably lagging again

wind garden
#

but poeapp isn't delayed

#

only poe.trade

chrome topaz
#

well maybe he's closer to the servers or getting a faster lb node, from my point of view it's consuming stuff as fast as it can be downloaded

simple ravine
#

probably a network cable on fire thisisfine

#

best procrastinating decision

worthy cape
#

Some day I'll tear down my $25 Linode that just burns money on my blog container and a Discord bot.

#

Some day ™

#

It used to be the minspec that I needed, but they've done "free" upgrades since.

#

So it is like five times more powerful than what I started out with, but haven't gotten around downgrading it.

simple ravine
#

Digital Ocean has managed kubernetes

worthy cape
#

I used to run my own private game streaming relay on it.

simple ravine
#

for like $10-15 a month

worthy cape
#

Half-arsed something together with nginx-rtmp to get something that had way less latency than justin.tv did at the time.

#

Well, might've been twitch by then.

chrome topaz
#

there's vultr $2.5/mo servers

worthy cape
#

The blog is a clusterhug, the software went from reasonable (albeit node) software to "we only support the previous Ubuntu LTS, lol".

#

So I run it in a huge multi-gigabyte container, just because I haven't been arsed exporting all the entries to a static site generator yet.

chrome topaz
#

at least it's web scale

worthy cape
#

^^

simple ravine
#

People ask why you should have lots of RAM

trail cradle
#

oh hey I'm in a similar situation. but I did the downgrades so it's a $10 instance now :P

worthy cape
#

Probably wise, I had some historical disk needs.

winged carbon
#

I have a question is there any legal item price checking tool ?

violet path
fallen arch
#

I'm drawing a blank here, maybe someone can help... I vaguely recall seeing a tool posted to the subreddit which helped identify specific affixes that would improve your dps... does anyone know what I'm talking about, or was this a fever dream?

fallen arch
#

Hmm... some of that looks familiar... If nothing else it give me a place to start, thanks!

#

I was kinda wondering if it'd be possible to put something together that could, without leaving the game, give you an idea of how an item would affect your overall dps and stuff, maybe offer crafting suggestions or whatever...

chrome topaz
fierce birch
simple ravine
#

Snap

#

What's TeaBox?

fierce birch
#

its an in-house scripting tool. I was building a game world

simple ravine
#

Ah

#

Next computer will definitely consider having 128 GB

#

but I want to do some research on whether DDR5 is on the horizon or not

winged carbon
#

@jade adder this what u sended is legal to price things ?

#

i dont want to get banned or sumfin

jade adder
#

Wrong jeff

winged carbon
#

OmgxD

#

so who can i ask ?

slow forge
#

Yeah it is legal

#

Illegal tools would be the ones that make more than action per one button press

#

Trade macro doesn't really do anything with the game

#

It just copies item info with Ctrl+C and after that it works with 3rd party websites

winged carbon
#

Oh ok , it gonna be really helpfull cuz im new here and i have no clue how to trade stuff without knowing prices

#

i mean it works ?

#

since i dont want to be bad person which destroys selling prices somehow thats why im asking too

slow forge
#

Just get the Trade Macro

#

It's an accurate-enough source for prices

winged carbon
#

Thank You

boreal path
#

Hi lads, i have a question about the public-stash-tab API. In the response, each Item has an Id. The explanation for this Id on the official documentation is "item id, will NOT change if you use currency on it". My question is, however - Does an item maintain it's ID if it's listed by different sellers, or in different stash tabs? For example: I list a Headhunter that has Id 10. Then i remove it from my public stash tab, trade it to someone, and he lists it in a public stash tab. Will that specific Headhunter still have Id 10?

#

(learning F# and hoping to write a small app that tracks people flipping items, basically watching if the same item is re-listed by another account within some timeframe)

#

TLDR: does "id" on Item response back from public stash tab API maintain the same Id if the same item is listed by different people?

chrome topaz
#

it's different for different sellers

boreal path
#

Oh, well, then that's sort of a dealbreaker for my project 😃 Thanks for info.

fathom spruce
#

if only it wasn't

#

you could do some interesting item tracking

boreal path
#

I reckon it's still possible to do, with severe limitations - basically only for items that have rolls, you can compare those. Of course. this would be majorly inaccurate, as sometimes you have people with items with the same rolls, or perhaps the item was rerolled with a divine orb. But to some degree it'd be possible to see if someone listed an item, and then if that item with exacly the same rolls is re-listed by a different account within some timeframe.

#

A bit more complex though than just going with an item's Id :-p

chrome topaz
#

that's pretty much why they made it change so you can't track ppl

grave wren
#

Did it ever not change btw?

simple ravine
#

@polar island can u go sha256-hash all items with their mods and name, and see how many collissions there are?

#

all items with mods that is

#

🙏 😄

#

sounds like a plan!

#

my gut feeling says there would be quite few collisions actually

#

if you factor in name, baseItemType, itemLevel and stats with their rolls

#

maybe... the reason why I might not factor that in, is if you would want to track if someone took an item, and 6-linked it

#

problem would be uniques, guess one would have to take those out of the equation

#

for me it's moot anyways, I think. my use-case would be to identify people who snag up items for cheap and quickly re-lists them for higher price

grave wren
#

cue: dangerzone

simple ravine
#

a trade helper is actually one of the functions I'm working on with my app

#

trade helper and trade/item macro combined, because I want to make sure an item is sold for the right price

#

and some other nice things

worthy cape
#

Got the structure of fmt figured out the other night. Gonna start rendering some geometry later. \o/

simple ravine
#

noooice

#

what kind of models are stored in fmt?

#

all the models?

worthy cape
#

Seems like a subset of smd, static meshes mostly

simple ravine
#

Ok, so non-rigged things?

worthy cape
#

Many projectiles and greeble, many doodads

#

Pretty much

#

There’s some fields I have blocked out but not figured out the meaning of yet so they may be slightly more expressive.

simple ravine
#

I think someone figured out before, for the rigged stuff. I think I have Malachai as an obj file somewhere

#

There was a website a couple of years ago that listed models from PoE

worthy cape
#

Yeah, chuanhsing has some format specs too for smd but it’s not fully mapped iirc

#

Got a decent parse out of those already but am lacking a bit of the effect stuff needed to make them go

simple ravine
worthy cape
#

Sprint goal is to get at least geometry out of fmt so I can do arm rooms justice

#

Or so I hope

simple ravine
#

ah

#

arm = hideouts?

worthy cape
#

Kind of

#

An ARM is a larger square grouping of tiles, an area is made up of a bunch of ARMs in a graph stitched together.

#

A hideout area has a single big premade ARM

simple ravine
#

So it's for areas, the one that they generate the layout from?

#

I think I saw some random generation for tiles/areas demonstrated at GDC

worthy cape
#

An area has one or more arms placed

#

Prefab rooms if you like

simple ravine
#

ah ok

#

Do you have a way to "convert" the fmt files to something like .obj?

worthy cape
#

With some effort, sure

#

I also have an OpenGL testbed with Dear Imgui to look at things

#

Gonna work on this when I tire of playing the actual game tonight 😃

simple ravine
#

😃

worthy cape
#

Currently at mAx stuffing my face with burgers

simple ravine
#

Would be cool to export the 3d art weapons etc

worthy cape
#

A lot of the ground art for weapons are fmt, for example

#

Not sure about held ones, probably too

simple ravine
worthy cape
#

Ooh.

simple ravine
#

it doesn't seem to convert them properly though, it seems

#

trying to load them into Cinema 4D now, they are eh.. not looking right

worthy cape
#

Heh.

simple ravine
#

some seem to work

worthy cape
#

This should be a single 16-bit count of submeshes.

simple ravine
worthy cape
#

They also have missed that if there's more than 0xFFFF indices, the indices are suddenly 32-bit ints.

simple ravine
#

It could not parse Starforge correctly

#

Ah so that is the same for both fmt and smd?

#

or have you messed with smd as well?

worthy cape
#

I begun with SMD, so have all those fully loaded.

simple ravine
#

ah ok

#

trying to get a grip of how complex the obj format is

worthy cape
#

Reasonably straightforward, apart from the quirks.

#

It's easier to write than to read, as there's some stuff like how triangles have separate indices for positions/texcoords/normals.

simple ravine
#

ah seems text based

worthy cape
#

And how negative indices index from the back of the collection read in thus far.

simple ravine
#

yeah tried with both zBrush, C4D and Windows 3D thing

#

none could open that Starforge properly

worthy cape
#

Which file did you start with?

simple ravine
#

looks like it has huge (incorrect) positions on some vertices

#

There is an .fmt for it as well

#

Unsure what the difference is between the two though

#

.smd file is 34kb and .fmt is 31kb

worthy cape
#

This seems to be bailing out on negative values for the U component of texcoords.

simple ravine
#

you do know your 3D stuff!

worthy cape
#

The geometry in both the SMD and FMT has the same number of vertices/indices.

#

FMT file has some optional fields with values I have not quite yet figured out.

simple ravine
#

wonder if it's a new format they're using, or if it has a separate use

worthy cape
#

SMDs are typically coupled with a corresponding .ast for the skeleton and animations.

simple ravine
#

hmm, so it's after the model stuff, but before the string table?

worthy cape
#

And a .sm for the material mapping.

#

FMTs have three sections of unknown information, one between the submeshes and indices, the other two between the vertices and the string table.

#

I've called then d0, d1, d3 in my spec.

#

The last one is coolest, it seems to have some leaked memory contents in a fixed-length field. 😄

#

SMD stands for "SkinnedMeshData" by the way, according to the SM file.

simple ravine
#

but .fmt wasn't in there at that time

#

Are they all 8 bytes, the 3 unknown pieces?

worthy cape
#

See d0_t, d1_t and d3_t there.

#

Types inside are my best guess as to what seems to parse out well.

simple ravine
#

a bit difficult to read this, trying to parse it

#

ubyte d0, d1, d2, d3; ?

worthy cape
#

A header of four bytes. They're the counts for the later blocks.

simple ravine
#

ah

typedef struct {
    ubyte unk[6];
} d0_t;
#

so it's 6 bytes?

#

of "unk"

worthy cape
#

Aye.

simple ravine
#

oh wait, if i read this right, it can be 0 - N of those 6 bytes

worthy cape
#

There's d0 number of those 6-byte blocks, yes.

simple ravine
#

then there's d2 that is unknown still yes?

worthy cape
#

It has always been 0 in all the 15k files in the current GGPK.

simple ravine
#

ok, so likely a terminator?

worthy cape
#

So it's either an unknown kind of block count, or d1 is actually an 16-bit count.

#

As d1 has been large in some files, it's probably a 16-bit count but I can't tell with the current files.

simple ravine
#

ok

#

well that makes more sense than a terminator there now that i think of it

#

heh

worthy cape
#

Everything's there for a reason, except the things that are just there to mess with me.

#

Like the constant "0x4" in the middle of SMDs.

simple ravine
#

so, the same as the version of the fmt?

#

oh in smd

#

hmm

#

well, either way I am impressed you figured this out

worthy cape
#

😄

simple ravine
#

what kind of dev job do you do at your job?

worthy cape
#

Current job is sysadmin at a HPC centre, primary task is compiling third party scientific software for our researchers.

#

So a lot of smashing my face against build systems and compilers, fair bit of debugging when it explodes.

#

Before that, a disturbing interest in C++ and gamedev.

simple ravine
#

You're the unsung hero with other words

worthy cape
#

Getting a bit tired of it, as there's always something broken.

#

Would be kind of fun to try my hand at actual software/game dev, where you build novel things and have some actual ownership of source code.

#

I started fiddling with game file formats as I had done a bunch of renderers but never managed to make any assets, so I figured I'd look at how existing professional assets looked, and figuring out how to render them right.

simple ravine
#

You interested in the artistic side of it as well, like 3D modelling etc?

worthy cape
#

Nah, completely incompetent at that, and I can't really understand how people can operate Maya/3DS.

#

I've dabbled in 3D Studio since I was a kid, but not an artistic bone in my body.

simple ravine
#

hehe

#

I'm kind of strange. I have some artistic side, but also programming

crimson epoch
#

Anyone know if the poe.ninja JSON API provides pagination support? Like, being able to query for a range of Base Types in a large list of them?

#

currently trying to look into my own pagination solutions to display a partial list of these items on an Android device

worthy cape
#

Mine loads it properly 😃

simple ravine
#

@worthy cape Nice, you export that to obj or in yout opengl thing?

worthy cape
#

That's just directly in my viewer.

simple ravine
#

ok

worthy cape
#

Loads in Win10's 3D Viewer, thus it's perfect 😛

simple ravine
#

ooh nice!

worthy cape
#

I even managed to emit submeshes, seems like this mesh has two identical swords, one slightly smaller.

#

So probably a effect layer or so.

#

Ah yes, Art/Textures/Items/weapon/swords/uniques/StarForge/StarForgecns.mat and Art/Textures/Items/weapon/swords/uniques/StarForge/StarForge_glowc.mat

#

I haven't even started on material files yet.

#

Those are key-value files tho, so reasonably easy to go to textures.

#

Nothing I have code for currently of course, but familiar.

simple ravine
#

this is badass 😄

#

my urge for all of them intensifies 😄

#

@worthy cape Can you try the poe logo ones?

worthy cape
#

Do you have filenames?

simple ravine
#

Art\Models\Misc\PoE logo

#

Art\Models\Misc\PoE logo stand alone

#

Art\Models\Misc\ggglogo

hazy fog
#

looks like transistor art

worthy cape
#

I only export fmt currently, so SMDs are off-limit 😃

#

Seems like the handedness is off, file is mirrored in 3D Viewer.

simple ravine
#

hmm there seems to be some rotation issues with that one

worthy cape
#

I export the coordinate system as-is, PoE's is a bit weird.

simple ravine
#

ah, I had flip z axis on

simple ravine
#

@velvet fog Do you have anything that takes models and converts them to objs?

velvet fog
#

ya, same as zao, convert smd/sm/mat to obj/png/mtl

simple ravine
#

would you like to share the thing, so I can try to convert some things?

velvet fog
#

mat/sm are plain-text

simple ravine
#

How would one convert this to .obj?

velvet fog
#

just wrote some php code to test the smd

simple ravine
#

Right. I'm just unfamiliar with the formats.

cosmic saffron
odd parcel
#

does anyone know how the hover effects in the forums work?

rapid pagoda
#

which "hover effects" -- like on items?

odd parcel
#

yeah nvm figured it out. thought it was a pure css thing but there's some js code to handle it

velvet fog
#

they use js to render DeferredItemRenderer

wind garden
#

someone should make a chart of the % of scammers that have korean character names

#

guarantee it would be > 50%

crisp ledge
#

has anyone ever attempted some kind of scammer list? Seems like an incredibly daunting task with huge holes for abuse

#

scanning the account names for characters seems like the literal easiest part of that

grave wren
#

Many wanted to but it seems like a bad idea all in all. Most scams can be avoided by checking the item in the trade window. Only selling hideouts is really prone to scamming as is bossing.

velvet fog
#
Art/Models/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.amd
Art/Models/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.ast
Art/Models/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.sm
Art/Models/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdge.fmt
Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdge.ao
Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdge.aoc
Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.ao
Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.aoc
#
FixedMesh
{
    fixed_mesh = "Art/Models/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdge.fmt"
}
SkinMesh
{
    skin = "Art/Models/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.sm"
}
#

file extension counts

    [fmt] => 15310
    [sm] => 18278
#

Starforge ItemVisualIdentityID is UniqueTwoHandSword12 and point to Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdgeDrop.ao and effect file Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/uniques/StarforgedEdge.ao

simple ravine
#

theyre so low poly, it's quite hard to do something with it

worthy cape
#

@simple ravine Found the rig for Raging Bees last night, 32 bees á 888 tris each 😃

simple ravine
#

haha

#

would you like to share how you convert them to obj?

#

I have a strong urge to test a few things

quaint pulsar
#

what are good tools

#

im new player

#

it my 2nd league

#

what tools are best

worthy cape
#

In short, print out v for positions, vt for texcoords, then emit a bunch of f 1/1 2/2 3/3 faces with 1-indexed indices.

#

If you're asking about my actual tool, it's part of my poe-rs library, in glorious Rust.

simple ravine
#

yeah, i was looking for something that I could compile and run 😄

quaint pulsar
#

som1 tell me man

#

whats godo tool

simple ravine
quaint pulsar
#

wahts best prichecker

#

and what other useful tool

#

is there

worthy cape
#

The best tool was inside you all along.

worthy cape
#

@simple ravine Glued poefind and poeconvert together with some shell script, got a 2 gigabyte pile of .obj files now, with no warranty attached 😛

simple ravine
#

oh lord, the savior

#

google drive or similar?

worthy cape
#

I should probably figure out that "cloud storage" thing some day.

simple ravine
#

I'm using G Suite with File Stream installed

#

it's pretty nice

#

and fast

worthy cape
#

Coordinate system is the original one, so you may have to rotate/flip them to match your conventions.

simple ravine
#

thank you very much, sir!

worthy cape
#

cargo run --release --bin poefind -- --ggpk Content.ggpk '*.fmt' | xargs -d'\n' cargo run --release --bin poeconvert -- --ggpk Content.ggpk -t obj

#

The power of UNIX 😛

simple ravine
#

hehe indeed

#

what's cargo ?

worthy cape
#

Rust build system.

simple ravine
#

I think I've seen it before, but never stopped to see what it was

#

ah ok

worthy cape
#

They've got a shipping theme going on, cargo is the tool, packages are crates.

#

By the way, I've been using VS Code's Remote (over SSH) functionality recently for this proejct. It's super awesome.

#

Building and editing remote source on the powerful Linux machine in my kitchen.

simple ravine
#

nice, so you can sit in the couch with a lightweight thing, and use your desktop?

worthy cape
#

So transparent that I forget it's not local.

#

Kind of, using my living room desktop and running on the server-like machine in the kitchen.

#

Kitted out a Ryzen with a lot of memory to do builds on, 16 threads with 64 GB mem.

simple ravine
#

I have never thought of using the kitchen for "server storage"

#

I will have to see how the 'government' in the family thinks about that 😂

worthy cape
#

I've got some wooden shelving and old repurposed desktops and small business servers there, for quietness in the rest of the apartment.

#

^^

simple ravine
#

looks like a lot of the details are in the textures

#

they use really low poly counts

worthy cape
#

Does Cinema4D understand DDS textures by the way?

#

Considering how small things are on screen most of the time, it kind of makes sense.

#

Small triangles hurt fillrate.

simple ravine
#

I dont think so. DDS is DirectX shaders iirc

worthy cape
#

DDS is a texture format that can either contain uncompressed images or block-compressed DXT/BC formats.

#

Including mipmaps.

simple ravine
#

I used imagemagick to convert the DDS to PNG after extracting from brotli

#

c4d and render engines understand mipmaps though

worthy cape
#

Supposedly groks DDS.

velvet fog
#

Is the art 7z contains .mtl?

worthy cape
#

No, just .obj files.

simple ravine
#

only obj

worthy cape
#

If one would want to do it right, one'd export to GLTF or some other reasonable container.

velvet fog
#

trying to support 3d viewer for every uniques

worthy cape
#

It wouldn't be impossible to generate materials, I just haven't bothered parsing .mat files nor figuring out how the mapping goes from item to sm/smd/fmt/mat.

simple ravine
#

exalted orb hehe

worthy cape
#

Saw you posted something overnight about how it's organized, noted that down.

velvet fog
#

Itemvisualidenty.dat contains .ao, .ao point to .aoc contains .sm, .sm contains .smd/.mat, .mat contains .dds

simple ravine
#

are there any smoothing group information in the files by any chance?

worthy cape
#

There's probably normals in there somewhere, and the optional blocks may contain smoothing groups I guess.

#

I just export positions/texcoords currently.

velvet fog
#

There are some unknown flags and floats

simple ravine
#

Interesting. Arakaali has some strange mechanical thing on her

cursive ferry
#

GGG updated the prices of currencies on their trade 😮 (111chaos items is no more after an item at 1ex)

royal forum
#

Has there been someone who's updated MercuryTrade to be less buggy?

royal forum
#

some/all messages won't show up

worthy cape
#

@earnest radish I think @compact isle has some fingers in the forum jar.

rose sapphire
#

RabbitMQ+STOMP plugin behaves strangely. Dead connections appear and the service assumes the user is still connected. Keep alive, heartbeats are useless.

simple ravine
#

@earnest radish I think Novynn does that type of thing

rapid pagoda
#

@simple ravine There's some weird mechanical bits on her arena as well.

compact isle
#

uh no we can't do that @earnest radish because the site is still in English if you access the post in that way

hazy fog
#

maybe jus a div tag with a language denotation so our #ggg-tracker doesn't flood with the same post?

compact isle
#

that's more along something we can do

#

does it still scrape /account/view-posts?

#

I'm more interested in how it gets the link to that page

cosmic saffron
#

if it scrapes surely it can check the parent forum of the thread (breadcrumbs)

#

although if new ones get added it'd have to be updated

compact isle
#

I was thinking that too but some forums have text ids (like news) so you wouldn't be able to tell the language just from that

cosmic saffron
#

I guess the non-www language sites have different mapping for id because the binding isn't quite 2-way

compact isle
#

yeah it can be changed per language or not be set at all

wind garden
#

seriously? new patch and client.txt logging STILL isn't fixed?

#

how hard is it to fix a logger?

#

I think the whole thing with Korean players spamming trade messages is directly related to their messages being ignored by trade overlays

cosmic saffron
#

you mean the intentional filter for kakao players?

compact isle
#

^ it isn't a bug

wind garden
#

huh?

#

whispers from korean players not being logged to client.txt isn't a bug?

wind garden
#

wowwww

#

so players with non-korean names that don't get logged either are likely korean players that chose english character names?

compact isle
#

yeah probably

#

since you can migrate your existing account

wind garden
#

well that's unfortunate

#

should be highlighed somewhere more clearly

#

lot of people still don't understand that fact

violet path
#

so who do we need to send angry emails to to get this changed

#

korean government?

velvet fog
#

that's fine, for garena, they remove accountName from API for unknown reason

hazy fog
velvet fog
#

https://poedb.tw/model?id=Starforge
id could be

  • unique name
  • item name
  • monster name

know bugs

  • can't handle multiple mtl
  • can't find smooth groups
  • can't find normal vertices
  • can't find transparent values
worthy cape
#

Neato

#

I’ve seen that some mat files embed a whole fxgraph JSON. Those will be “fun”.

cosmic saffron
#

waiting for 4.0 where they add physics and chaos orbs roll away from you

#

and fall off the edge of the map in glaciers

grave wren
#

Feels like TQ then - nice

shell slate
#

do you happen to know how far 441112296-457481068-431146867-494240075-469049006 is from the head of the river?

#

I've been crawling the river for the last 20 hours and there's no end in sight still

compact isle
#

441119118-457488008-431152396-494248656-469055920

#

you look pretty close

shell slate
#

ty

velvet fog
#

new version of .mat files and it's json format

velvet fog
worthy cape
#

@velvet fog Well, the game's handedness may differ from your WebGL viewer?

#

What mat files are you seeing that aren't the regular space-separated key/values structure?

#

Only JSON I've seen is in the "Graph" values.

velvet fog
#

Art/Textures/Items/armour/helmet/FractalThoughts/FractalThoughtsc.mat is brotli compressed and is version 4 with json

#
{"version":4,"textures":[{"filename":"Art/Textures/Items/armour/helmet/FractalThoughts/FractalThoughts_normal_DXT5.dds","format":"DXT5","sources":[{"filename":"Textures/Items/armour/helmet/FractalThoughts/FractalThoughts_normal.png"}],"count":1},{"filename":"Art/Textures/Items/armour/helmet/FractalThoughts/FractalThoughts_colour_DXT1.dds","format":"DXT1","sources":[{"filename":"Textures/Items/armour/helmet/FractalThoughts/FractalThoughts_colour.png"}],"count":1}],"defaultgraph":{"version":1,"overriden_blend_mode":"Opaque"},"graphinstances":[{"parent":"Metadata/Materials/DielectricSpecGloss.fxgraph","custom_parameters":[{"name":"AlbedoTransparency_TEX","params":"'Art/Textures/Items/armour/helmet/FractalThoughts/FractalThoughts_colour_DXT1.dds' DXT1 Wrap Wrap 1 "},{"name":"NormalGlossAO_TEX","params":"'Art/Textures/Items/armour/helmet/FractalThoughts/FractalThoughts_normal_DXT5.dds' DXT5 Wrap Wrap 0 "}]},{"parent":"Metadata/Materials/Utility/TWEAK_Gloss.fxgraph","custom_parameters":[{"name":"Gloss_MULT1","params":"1.100000 "}]}]}
worthy cape
#

wtf, why did my parser not fail miserably on that?

#

Oh... if let Some(text) = crate::util::vec_to_utf16(file.contents()) {

worthy cape
#

All the v4 ones parse cleanly as JSON, that's nice.

velvet fog
#

my smd parser can't reach end of file, ex: Art/Models/Items/Armours/Helmets/Uniques/FractalThoughts/FractalThoughtsDrop_a23885e2.smd stop at file position 35060, but the filesize is 35092

worthy cape
#

Hrm, I make it to 35068. Got to look at that later.

#

Never was quite sure about the tails of those files, particularly not when the u32 was 3.

simple ravine
#

any correlation with number of objects in the file perhaps?

worthy cape
#

Possibly, haven’t done any large scale tests yet, format spec is from previous runs.

#

There’s an unknown large byte up there, a shape count, a 2/3 at the bottom and then just usually a ton of zero bytes.

simple ravine
#

isn't there standardized formats for this?

worthy cape
#

Not really

#

There’s formats for interchange like FBX, Collada, to some extent GLTF, but they are all primarily meant to represent whole scenes with all sorts of geometry and metadata between creation packages. The closer you get to runtime, the more special purpose you get with more and more structure implied by the engine.

#

It would have been easier if there were some more structure to sync against but the game itself doesn’t really need it, it already knows the format and any tags outside of the version would mean they either ignore it or have to branch and care.

worthy cape
#

Dealing with cooked data means that you can make some assumptions about what data means, as it tends to have a rather direct use in the game as otherwise it would not be there. Geometry data is in the right format for uploading to the GPU as is directly from file and that limits us to the types that shaders typically consume like floats, half floats, unsigned bytes.

simple ravine
#

right, you dont want branched code in those places

#

needs to go in and out without a lot of ifs and buts

velvet fog
#

@compact isle when I click any page on official site, it redirect to https://www.pathofexile.com/game

cosmic saffron
#

did you get logged out?

velvet fog
cosmic saffron
#

try different browser

compact isle
#

yep I can't reproduce here, what kind of browser / platform are you on?

worthy cape
#

@velvet fog I did a tally across all SMD files, I'm missing huge chunks at the end of some, to the tune of 25 KiB on the largest.

#

(Art/Models/MONSTERS/ShaperCthulhuBoss/ShaperCthulhuBoss_armour_8d762861.smd)

#

Mystery header count doesn't really correlate 😦

exotic edge
#

You know what would be cool, if trade macro took all your public stash tabs, and then looked at your character sheet, and gave you a rough value of your net assets.

cosmic saffron
exotic edge
#

interesting! had no idea it existed... awesome! thx!

pseudo ocean
#

are there any 'core' mods/tools that boost the QoL of POE at all?

jade adder
#

there is nothing that modifies the game, only overlays that interact with the game client

#

most notably the poe trade AHK macro

#

most other tools are external tools

pseudo ocean
#

yea i meant in the way of UI simplification, layouts and such

velvet fog
#

had finished .fmt parser too

limpid helm
#

Can someone please explain what the river is that gets mentioned further up?

limpid helm
#

ahh perfect. Thanks @velvet fog

jade adder
#

@pseudo ocean UI modifications aren't allowed

pseudo ocean
#

Oh really? the UI could really stand for some cleaning up and stream lining 😦 Ok well thanks for the information

simple ravine
#

yeah, very clean 😉

worthy cape
#

Started getting some foothold in the SMD trailer, it seems to all be small u32:s or f32s, round chunks of four, and a lot of them are four f32 and one u32.

worthy cape
#

I wish I could web dev. Debug output from my code is 33 megs of <ul> and <table> 😄

#

Got the block structure of the v2 SMD footer outlined, v3 is half-done.

worthy cape
#

I haven't mapped out the meanings, but it seems to be skeleton-like.

simple ravine
#

ah

velvet fog
#

@worthy cape great, thanks

hard bone
#

Is there a working version of LichAlert? (script that say is it abyssal depth with boss or not)

hazy fog
#

as far as I'm aware they removed the line from the log that lich alert read

hard bone
#

Yea nvm, just checked its 'You have entered Abyssal Depths' now in any situation

worthy cape
#

@hard bone You can still look at the loading screen and listen to the music, I believe.

lean wave
#

I had redownload poe last week and my Client.txt just stopped logging the zones. The only "You have entered...." append happens on login. Anyone Experiencing something similar ?

#

ehm If you turn off Local Chat ingame, this situation happens.

eternal valley
#

use this

simple ravine
#

@eternal valley Who is that directed to?

harsh pond
#

any PoB boys got a fix for applying impale?

#

idc if it's crude

wind garden
#

someone needs to update poe trade macro to support a different indexer

#

it'd ridiculous that we're this far into a league and it still takes 30+ minutes for an item to show up in a price search

#

when the same item shows up in leave search after only 2min

simple ravine
#

@wind garden Which site are you referring to as being slow?

wind garden
#

poe.trade

#

xyz always passes off the issue being due to the public stash api being slow

#

and yet his own live search sees the item after 2min but it doesn't get fully indexed for 30min

chrome topaz
#

if you're talking about non live search that's a completely different question

#

when you complained about slow search I figured you meant live search not normal search

wind garden
#

no, i mean non-live search

#

that's what affects people messaging me hours later for an item that's been sold

chrome topaz
#

that said, for normal search it should take ~5 minutes from the live search

#

well, you have to specify it...

#

if you're getting messages hours after, then it's almost certainly a problem with the api

#

so you have to complain to ggg

simple ravine
#

What he's saying is that other's milkshake is better than yours, @chrome topaz

chrome topaz
#

yeah right affixes

#

remeber when they told us about the public api's feature parity

violet path
#

could you use a tool like that to take a search from one site, and translate it into a url for another site?

fervent carbon
#

Anyone know if there's some sort of monitoring dashboard that uses the Client.txt output?

simple ravine
#

monitoring dashboard?

#

that's quite vague

worthy cape
#

Like an secondary screen UI that renders the events, or a web thingie?

hazy fog
fervent carbon
#

I'll take that as a no

like events over time

fervent carbon
simple ravine
#

oh lord that's some janky stuff

worthy cape
#

@simple ravine I have to confess, I copy-pasted code from w3schools the other night. I feel filthy.

simple ravine
#

is that site still around? 😂

worthy cape
#

Whenever I forget to install the extension that filters it out from Google searches, yes 😄

#

Needed a tree-view for my SMD tests, and their janky JS over <ul> was the least horrible thing I could tolerate.

simple ravine
#

there ought to be a css-only way to do that

worthy cape
#

binvis.io is kind of neat, kind of the kind of tool I'd want to have.

#

Classifies bytes of binary files and draws them as a space-filling curve with hovers to see the hexdump.

simple ravine
#

sure looks fun, but not sure what actionable intelligence it presents

rapid pagoda
#

that sort of thing can be a useful tool for guessing at the nature of a binary file -- spotting overall structure, likely entity sizes, a rough guess at entropy

hard bone
#

Strange thing with Koreans Client.txt logging, the last few hours it resumed (and it finally allowed me to sell some maps without pain), but now it's gone again...

#

no there can be no such coincidence

#

was 10+ trades per minute

#

all was caught by companion

worthy cape
#

There could be such a coincidence 😛

wary fern
#

not sure if this is the place to bring it up but, are there still a lot of uniques not in PoB yet? cause I noticed Wreath of Phrecia isnt implemented yet

velvet fog
wary fern
#

ah, I see, thanks

worthy cape
#

@earnest radish poeskilltree.com has Shift-click on jewel slots and nodes to add timeless effects.

#

Links get huge, but hey 😃

wanton belfry
#

Sooo er i had some anti virus react to trade macro, mouse stopped responding and character started moving on it's own. It was located in the merge_trademacro folder

simple ravine
#

Ehh

#

Where did you download it from?

wanton belfry
#

99% sure it was the first github link that pops up when you google the macro

#

file my anti virus linked at was Merge_TradeMacro.ahk

chrome topaz
#

delete the antivirus

wanton belfry
#

Nah, considering the fact that after the warning my mouse didn't respond to me, and it acted on it's own it seemed pretty well warranted

simple ravine
#

delete the mouse

violet path
#

well isn't this useful

#

i've never had an issue with the macro or that file, so either your anti-virus is acting up, you downloaded it from the wrong place, or something else happened

#

can't help much more, maybe check the github page in the issues section and see if its happened to anyone else?

worthy cape
#

Wild guess, you have actual other malware that infected your AHK files. Github repo hasn't changed recently.

worthy cape
#

Looking at the source by the way, the trademacro updates are fetched over https, so low chance of it being a MITM either.

simple ravine
#

@chrome topaz ur site's behind the others, fyi

#

only your site shows my sold items

simple ravine
#

lol they're still wanting to buy my sword... what's up xyz?

golden bane
#

the best in this server

deft jolt
#

depends all on you

#

what prior experience do you have in ahk

pseudo pine
#

Something like this would be a nice start

#SingleInstance, Force ; Force only one instance of the script at once

items := ["First item", "Second item", "etc"] ; Create an array with our items
index := 0 ; Index starts at 0, will be increased by one on every key press

F2::
    index++ ; Increase index value by one, so we can get next item on every key press
    if (index > items.Count()) ; Resets back to one if we reached the last items in the array
        index := 1
        
    Gui, ItemName:Destroy ; Destroy the GUI if it exists already, to make a new one
    Gui, ItemName:New, +AlwaysOnTop +ToolWindow -SysMenu -Caption -Border +E0x08000000 ; Creates the new GUI
    Gui, ItemName:Font, S10, Segoe UI ; Sets the font as Segoe UI size 10
    ; +AlwaysOnTop means it will always be on top
    ; +ToolWindow -SysMenu Removes the task bar button for the GUI and removes the
    ; -Caption remove the gui title bar, so it only shows our controls
    ; -Border removes the gui borders
    ; +E0x08000000 makes it so we can't activate the gui by clicking on it, is you click on the gui it won't focus its window
    Gui, ItemName:Add, Text, hwndhTEXT_ItemName BackgroundTrans x0 y0,% items[index] ; Adding our item text
    Gui, ItemName:Show, x0 y0 AutoSize NoActivate ; Shows our gui
return

(for items.Count() to work, make sure that your AHK version is higher than 1.1.29.01)

wind garden
#

I'm getting offers to buy items that were sold almost 8 hours ago

chrome topaz
#

yeah it broke pretty badly

simple ravine
#

only from poe.trade tho

#

double checked, my stuff is gone from other sites

worthy cape
#

Best thing about running a service is that you get to keep all the pieces when it breaks.

simple ravine
#

@earnest radish well, only poet.trade was unable to remove sold items from my stash tabs. Both poe.com/trade and poeapp.com removed my items after they sold. My items were indexed for more then 8 hours after they were sold on poe.trade

#

The only upstream about that is his hosting provider, I guess?

stone bloom
#

is there a way to limit price on poe.com/trade by setting max price to 2 exalts and still get results priced in other currency? say 100 chaos listings and so on

simple ravine
#

equivalent price

chrome topaz
#

no, yesterday it broke on my side

grave wren
worthy cape
#

Huh, someone apparently made some Java tool that flails the mouse around and OCRs timeless jewels. Cute.

#

If it was one of you people, you're brave for touching OCR, so much pain.

grave wren
#

i tried to for atlas progression but it didnt work nicely at all so i abandoned it 😄

#

if youre above 1080p it doesnt work either way if its the same thing i think of

simple ravine
#

ya, 3440x1440 and 2560x1440, wouldn't work

#

i saw it, and wasnt a big fan of the solution, or stack

#

python and java

worthy cape
#

Back when I played Elite Dangerous, there was a game assistant website whose primary data source was people feeding market data and stock amounts via analyzed screenshots taken when they landed on stations.

#

Even with the extremely limited types of goods and well-defined font, it was extremely brittle and needed training/tuning whenever you changed your resolution and sometimes when you came to new types of stations.

#

Kind of quaint, I think Frontier eventually exposed market data via an API in the end.

simple ravine
#

ooof

worthy cape
#

I think they might only update the datapoints on player arrival so it still would require visits, but so much smoother for something that players did anyway.

#

@simple ravine Been deep-diving into PoE materials by the way, they're rather expressive 😃

simple ravine
#

what do you mean expressive?

worthy cape
#

Materials can contain and refer to "effect graphs", which are like the node-based material editors you might see in Maya or other DCC packages.

simple ravine
#

hmm interesting

#

I have never used Maya, but I'm guessing that's likely what they use at GGG

worthy cape
#

With noodly wires between boxes that do operations at different phases of rendering, so you could have a modulation box that jiggles UVs based on a distortion texture, all artist-driven.

simple ravine
#

I've used 3d studio max (3ds max) and Cinema 4D though

#

not sure if 3ds max has those effect graphs

worthy cape
#

This kind of junk.

simple ravine
#

Ah, everyone is going that route

#

it's pretty nifty actually

#

both Arnold and Redshift implements the same thing, Arnold being from Autodesk

worthy cape
#

From my side, I'm going to have to generate a ton of shader variations to handle all the possible cases, and never be sure if I've missed some rule.

simple ravine
#

Are you sure it's worth it? 😄

worthy cape
#

Probably way past the point of keeping sanity by now.

simple ravine
#

😂

worthy cape
#

Also trying to figure out TDT tile definitions, and way more.

#

Every format I touch leads to like four more.

simple ravine
#

I'm doing simpler type of work heh

#

working on a parser combinator for logs

#

making a desktop app

#

because I am not happy with the current tools I am using

worthy cape
#

I'm amazed whenever I realize that I could literally just make tools to solve problems I have.

#

"just" tho

simple ravine
#

key part is that, "just" hehe

#

I think I am on my 3rd iteration of .dat parser etc

#

because yeah

worthy cape
#

I currently do arm, dat, dgr, fmt, ggpk, mat, rs, sm, smd, tdt, tsi.

#

In varying amounts of completion.

simple ravine
#

nice

worthy cape
#

Every day straying farther from the "I just want to draw hideouts" goal, could probably scope it down by doing everything in plain whitebox materials and ignoring animated doodads, transparency, etc.

#

But it's also fascinating to infer how all the pieces fit together in a shipping game.

simple ravine
#

perhaps do simple version first, so u see something visually

#

and then iterate

worthy cape
#

Project management - my forte 😛

worthy cape
#

Regarding the seventh level, we have a portable ||coffee machine|| UPS at work.

simple ravine
#
public class WhisperTests
{
    [Fact]
    public void IncomingWhisperParsesSuccessfully()
    {
        var str = "@From <-BRO-> DivineZenSlaysThings: does this work?";

        var parseResult = Whisper.Parse(str);
        Assert.True(parseResult.Success);

        var whisper = parseResult.Value;
        Assert.Equal("-BRO-", whisper.FromGuildTag);
        Assert.Equal("DivineZenSlaysThings", whisper.From);
        Assert.Equal("does this work?", whisper.Message);
    }

    private static readonly Parser<char, char> Lt = Char('<');
    private static readonly Parser<char, char> Gt = Char('>');
    private static readonly Parser<char, char> Colon = Char(':');

    private static readonly Parser<char, string> GuildTag =
        AnyCharExcept(new[] { '>', '<' }).
        ManyString().Between(Lt, Gt);

    private static readonly Parser<char, string> FromCharacterName =
        SkipWhitespaces.Optional().
        Then(
            AnyCharExcept(new[] { ':' }).
            ManyString().
            Before(Colon));

    private static readonly Parser<char, string> MessageString =
        SkipWhitespaces.Optional().
        Then(Any.ManyString());

    private static readonly Parser<char, WhisperEntry> Whisper =
        from _ in Char('@')
        from __ in String("From ")
        from tag in GuildTag.Optional()
        from charName in FromCharacterName
        from msg in MessageString
        let guildTag = tag.HasValue ? tag.Value : string.Empty
        select new WhisperEntry(charName, guildTag, msg, true);
}
#

hah nice it works

#

doesn't look like it makes much sense with just one combination, but it'll make more sense when more combinations are introduced

worthy cape
#

(the arrows are between input and output ports on the nodes which I haven't drawn yet, but the gist comes through)

#

The names actually hints us to something interesting... there's probably vertex colours in the mesh data.

simple ravine
#

That OneMinus etc, I recognize that

#

from mod translations

rapid pagoda
#

ever seen Quartz Composer?

simple ravine
#

can't recall the developer's nickname here, but it looks like you got a memory leak

chrome topaz
#

free memory is wasted memory

rapid pagoda
#

leaked memory is also wasted memory

grave wren
#

At least it's used

worthy cape
#

I love how I completely misunderstood the new hideouts. I saw rooms named like hideout.arm, hideout2.arm, hideout3.arm and assumed they were old master-based hideouts with Small/Medium/Large variants.

#

Turns out that I had happened upon the fancy new multi-room hideouts and their sectors.

#

^^

#

Incidentally, this means I've got to actually care about roomsets and topologies after all.

pseudo ocean
#

(ping me if i won't respond in an hour because i might just forget i've send it here)

#

i'm working at PoE item parser to automate filling prices in custom spreadsheets, but it's not as easy as i thought

#

is there any open-source parser for copied item data? or should i just dig into trademacro code to see how it recognizes items>?

wind garden
#

13 minutes difference between non-live search listings

#

what I don't get is the poe.trade listing on the right, JUST showed up

#

but it says listed "12 mintues ago"

#

but it obviously had the listing 12 minutes ago

#

it just didn't show it for 12 minutes

#

is it that far behind processing the data?

simple ravine
#

his stuff is prolly on fire again 🔥

wind garden
#

idk

#

I get when things are delayed at launch and a few weeks after

#

but we're half way through the league

#

and it's just as bad as it was a month ago

simple ravine
#

however, now it seems its not GGG at fault

#

perhaps xyz scaled back his server costs

wind garden
#

it seems to be affecting the site differently though

#

different than yours

simple ravine
#

oh snap

wind garden
#

yesterday poe.trade was taking over 5 seconds to respond to a search request from poe trade macro

#

was like 5-8 seconds

simple ravine
#

what's your monitoring solution poeapp?

#

do you integrate it with your code, or is it one of those automated agent things?

#

got it

#

u use postresql for ur indexed stuff right?

#

oh the secrecy lol

grave wren
#

@polar island we won't shun you for using COBOL

simple ravine
#

only if you use node.js

fathom spruce
#

who doesn't love slinkies?

simple ravine
#

what are slinkies?

fathom spruce
#

A Slinky is a precompressed helical spring toy invented by Richard James in the early 1940s. It can perform a number of tricks, including travelling down a flight of steps end-over-end as it stretches and re-forms itself with the aid of gravity and its own momentum, or appear...

#

or would it be Slinkys since it's a product 🤔

simple ravine
#

What's the context though? 😄

fathom spruce
#

node.js callbacks

simple ravine
#

oh

#

my main arguments against node are threading and performance

#

oh crap, i didn't mean to start a discussion about this, what have i done

#

puts hands on desk for punishment

worthy cape
#

@velvet fog Funny that you used Fractal Thoughts to demo the model viewer, its material is icky PBR with fresnel and bullshit.

#

I put SM and SMD/FMT on the backburner for now, fxgraphs are mind-boggingly flexible. Went back to parsing out TDT and friends now to get some level geometry up.

simple ravine
#

your level of interest in hideout layouts etc is impressive 😃

grave wren
#

@simple ravine one paddling with the ABAP bible for shitting on node

simple ravine
#

ABAP is way worse than Node hehe

#

It's impressive how SAP can keep being relevant in 2019

grave wren
#

did you know sap discovered REST

simple ravine
#

eh?

grave wren
#

IIRC its called RAP RESTful ABAP but i might misremember

#

only half listened at that meeting

#

its amazing how they rebrand anything

simple ravine
#

It's based on a PhD dissertation from Roy Fielding in 2000 at UC Irvine

#

has literally nothing to do with SAP

grave wren
#

i know, but SAP discovered REST for themselves and rebranded it

#

for their customers

simple ravine
#

lol

#

like Apple and touch

grave wren
#

even looking at those code samples is a pita

#

fieldings dissertation reads well tho

#

can only recommend reading it

worthy cape
#

@simple ravine "how hard could it be?"

#

It's a great project to better myself, regardless of what comes out of it in the end.

#

Hopefully some foundational libs and docs, at least.

simple ravine
#

hehe

worthy cape
#

REST was great until it was half-arsedly mapped to HTTP 😛

#

And of course, if people would actually use it for collections of stuff and stuff, and not the abominations that most APIs are now 😃

#

So happy I don't do web-adjacent stuff.

grave wren
#

Even mapped to http it's still open enough to fuck up. I like it tho mostly

hazy fog
velvet fog
worthy cape
simple ravine
#

Well that's an interesting thing though

#

and that limitation is a deal breaker for me, back to poe.trade or poeapp

grave wren
#

templar1 weird

simple ravine
#

I mean, I agree... if 3rd party sites can do it, GGG should be able to as well imho

pseudo ocean
#

yeah, back to poeapp then

simple ravine
#

not to just be negative, but i hear a lot of "it's more complicated than that" etc from GGG in several contexts, meanwhile I really don't buy all of it

#

is it just complicated for them?

#

i.e. recruitment issue?

#

I mean, people have solved more difficult things than this

#

Same thing with the whole 250 people limit for guilds etc

#

it's an engineering problem that has been solved by others, so why can't GGG?

simple ravine
#

wait what do u mean

#

that's hilarious

#

everything is complex to them

#

smh

#

I agree with that.

#

this is the result of the kakao thing btw:

#

all the time.

worthy cape
#

I forget, is the ignore list size-limited?

simple ravine
#

yes

#

zao, here's an idea

#

let's reverse engineer the protocol

#

and make an app that intercepts any whisper

worthy cape
#

@simple ravine I'm happy here, in my "not touching the image or memory" land.

#

I would like to see some API hooks, either on an account service or local client.

#

Any decade now.

simple ravine
#

wonder if u really need that though

worthy cape
#

As far as I know, you need the crypto key.

#

And that's enough to know I don't want to know more 😃

simple ravine
#

but does it change all the time, or isn't it the same key for everyone?

fathom spruce
#

changes, you can pull it from process memory when it's running though /shrug

#

oh wow just read that official trade site thread

#
We'll be raising the limit to 15,000 in an upcoming patch and investigating better methods of signaling this limitation to the user.

best fix "just increase it"

worthy cape
#

@simple ravine typically you use hefty crypto at login time to obtain a more short-lived session key that you use for the rest of the time.

#

Many schemes document for how much traffic a key should be considered good for before you need to rotate it.

#

A key could either be derived from your login secrets or simply assigned as a token from the server. You’ve surely had similar stuff in web service land.

#

(Not quite the same, but same-ish)

simple ravine
#

Sure, but if you can capture it from start to finish

#

The only thing you need to know beforehand should be the 'client certificate'

#

Like any other MITM attack

grave wren
#

it's an engineering problem that has been solved by others, so why can't GGG?

Does it make money? No? Backlog it is. Complexity of funding near infinity .

simple ravine
#

Famous last words

hazy fog
chrome topaz
#

there was a writeup about poe protocol and I think it's solid

#

ie you can't just mitm and decrypt it

stone bloom
velvet fog
stone bloom
#

exactly what i wanted, thanks!

wind garden
#

@fathom spruce what official trade site thread? what's this 15000 limit related to?

fathom spruce
#

official trade site only shows the first 5k results from their database

#

limit will be 15k soon

wind garden
#

does anyone really need more than 5k results??

fathom spruce
#

yes.

wind garden
#

who's going to scroll through 5k+?

fathom spruce
#

this is 5k before sorting

wind garden
#

oh

#

k that's bad

fathom spruce
#

if I filter by lowest price and the lowest price is the 5001 result I will never see it

wind garden
#

i thought 5k displayed

fathom spruce
#

nope

#

on large bulk items like legion jewels the official site shows them at 20-50c

#

on 3rd party sites that filter correctly they're <10c

#

yeah apparently that works. the caveat is you need to have some idea of what the item is worth

#

hah

wind garden
#

doesn't work for rares

worthy cape
#

For rares, if the amount of hits is too high, I tighten the mod constraints to bring the count down and price up.

simple ravine
#

still, it should be fixable with a proper database design

worthy cape
#

I wonder how much load trade puts on shared infra like actual stash storage.

#

If they're downstream their own river, or if it's pretty much just hacked in 😛

simple ravine
#

it is ingested from stash storage to a separate storage

#

it is downstream, isolated

worthy cape
#

I've got fond memories of Bad Company 2 where sites scraping stats completely hosed in-game loadout choice performance.

simple ravine
#

that's some excellent engineering right there lol

worthy cape
#

Sounded like they had tons of technical debt since quite early days, I think they changed some over from Oracle to MySQL, or the other way around.

simple ravine
#

Oracle to MySQL sounds like a weird decision

#

unless they wanted to save money

worthy cape
#

Could be licensing/support-driven indeed.

#

Never touch a working system, especially if breaking it costs a fortune ^^

simple ravine
#

that's how u accrue technical debt lol

#

leave stuff alone for too long

wind garden
#

preview 7 officially released today

#

I know you had preview 7 downloaded a while ago @simple ravine but that was unintentionally made available on the git site and was subsequently pulled

simple ravine
#

they replace it with the latest when they update I think

#

it's on preview 8 now IIRC

#

where did u write it was unintentionally made available, @wind garden?

#

"NET Core 3.0 Preview 7 is supported by Microsoft and can be used in production" NOOIIIICEEE

#

yep, latest u can download now if u want is 3.0.100-preview8-01.3340

wind garden
#

I just remember going back to the link you had posted at a later time and preview 7 was no longer listed

#

had reverted to preview 6

#

I'm assuming that change was intentional

#

either way, preview 7 is official now

#

one weird thing though, the blog post says preview 7 requires VS16.3.0 preview 1

#

idk what happens if you don't have 16.3

fathom spruce
#

I really hope there's a post mortem blog post for all of this

hazy fog
#

ggpk should still be out there so we can mine the new enchants a while

velvet fog
violet path
#

i miss their old bug explanation blog posts

#

why'd they stop? not worth the time im guessing

chrome topaz
#

how hard is that gonna screw up the trade api?

chrome topaz
#

Edit: The servers are now back up! We're planning to write an incident report to let you know what happened. Thank you so much for your patience.

#

oh seems they're done way faster than expected

velvet fog
#

rollback the river too?

chrome topaz
#

no idea

#

if they did then we probs got a bunch of stale items now

fickle yew
#

@simple ravine played around with preview 7 yet? With the go live I guess ninja should do just that.

worthy cape
simple ravine
#

not with 7, @fickle yew but with 6

#

do you install framework on server or do you ship it with the application?

fickle yew
#

--self-contained

simple ravine
#

then yeah

wind garden
#

they have trimmed packages now too as well as single executable

#

haven't really gotten to try them yet though

simple ravine
#

"trimmed"

#

I made a hello world wpf app

#

138 mb

grave wren
#

Thicc

pearl cosmos
#

why when some one hit me my dps is dowing?

#

???????

violet path
#

need some more info

grave wren
#

nah its the wrong channel either way

golden bane
#

And an appropiate channel

hazy fog
compact isle
#

welcome tooldev #N

rapid pagoda
#

N++? wasn't that a flash game

delicate ore
#

@violet path can you make an HC version

#

or give instructions to modify it

#

nvm, i think i see the json it pulls, but what is the correct string to grab HC Legion?

violet path
#

hardcore leagues and other dead leagues usually don't have very accurate data, so I haven't released any of those sheets yet

#

even standard comes up with lots of weird issues

fickle yew
#

@simple ravine Upgraded last night. No noticable change in resource load though. I had higher hopes.

simple ravine
#

what did you upgrade from?

fickle yew
#

2.2

simple ravine
#

biggest change came from 2.0 to 2.1

fickle yew
#

Aw 😃

simple ravine
#

but i would have to see the code to determine where you could make optimizations with 3.0

fickle yew
simple ravine
#

but hey, don't fix nothing that's not broken

fickle yew
#

That's a long list 😃

simple ravine
#

😄

fickle yew
#

My resource usage isn't a problem atm, but I still hoped for an improvement 😃

#

The json change (removing Json.NET) did break a few things though until I just rewired it back in.

#

Upgrade took about half an hour with the changes but looks to work flawlessly so far.

worthy cape
#

Should probably cut a release some day, but that means having to think about whether my API is good yet.

worthy cape
#

Core GGPK access and lookup is stable, different file formats are in varying states of decency.

#

I'm using it to power my 3D graphical viewer.

simple ravine
#

I think you deserve the tool-dev tag

#

I know it's @hazy fog who usually tags them on people

hazy fog
#

🤖

simple ravine
#

thats a scary looking robot

hazy fog
#

I agree HmmCoffee

#

its #43 btw

simple ravine
#

🎉

worthy cape
hazy fog
#

oh I forgot to remove your exile

#

fixed

simple ravine
#

he's rasmuskl#2841 here, should be able to check with him... not tagging him though as it's 3 am in our timezone

radiant hawk
#

seems like the least bad place to ask: anyone using poe-trademacro have issues with it misfiring and spamming inputs? While typing a search in the stash or passives, I randomly get inputs spammed, with effects from spamming chat and sending junk PMs (embarrassing), to one "item on cursor destroyed', which is terrifying (no real damage this time). I'm not 100% sure it's poe-tm since I'm also running mercurytrade so I don't want to file a bug yet, but since the effects are pretty awful it's hard to actually track it down and reproduce it...

radiant hawk
#

wow, pretty sure it actually is mercurytrade

#

with poe-tm unloaded, I typed "f" in the hideout filter decor search, and got a spam of "failed to join instance" reproducably, stopped when I unloaded it

#

way too late to look further into it, but at least this time it did something harmless

#

want to track it down, that stray /destroy or whatever the heck happened is horrifying

pseudo pine
#

Probably some hotkey stuff
"failed to join instance" seems like it tried to do /hideout while you already were in your hideout

snow folio
#

hello all, quick question, the poe website has API information, seems very lack luster documentation, is there an extended version of it that is not so public or is it all they offer?

sleek hornet
#

Using Currnecy cop. getting following error. Failed to obtain currency item rates for Atziri Kill - ExileCon Qualifier league

violet path
#

currencycop uses poe.ninja data right? I don't think they're tracking the event

rapid pagoda
#

Is that even a trade league?

simple ravine
golden bane
#

{"id":"Atziri Kill - ExileCon Qualifier","realm":"pc","description":"Please check the Event Forums for more details.","registerAt":"2019-07-27T19:30:00Z","event":true,"url":"http:\/\/pathofexile.com\/forum\/view-thread\/2602883","startAt":"2019-07-27T20:00:00Z","endAt":"2019-07-28T08:00:00Z","timedEvent":true,"delveEvent":true,"rules":[{"id":"Hardcore","name":"Hardcore","description":"A character killed in Hardcore is moved to its parent league."},{"id":"NoParties","name":"Solo","description":"You may not party in this league."}]}

#

ssf league

radiant hawk
#

definitely something with hotkeys, I have no idea how it triggered a /destroy though. gonna do some searching through the code in a bit

cosmic saffron
#

probably it clicked outside and then hit enter to auto-confirm the popup

radiant hawk
#

that popup really should have a secondary confirmation UI, occasionally people even hit it just from a random system lag spike

worthy cape
#

Protip - don't feed <pre> elements with megabyte-long lines into a browser. They get sad and keel over.

simple ravine
#

Oh you mean like the documentation for the stash river?

worthy cape
#

Heh.

#

This, but with way longer lines literally containing the hexdump of whole files.

#

Should probably ingest it as JSON or call into a web service to get the actual data, takes a while to generate the HTML file.

#

Got it all as JSON already, but feed it into a Rust port of handlebars.

simple ravine
#

I'm not sure what you're trying to do here

worthy cape
#

Take files that are of equal length, print the data aligned and squint at it to see if I can see any patterns.

simple ravine
#

oh

#

would be interesting if there's a way for the computer to see the pattern for you

worthy cape
#

I'm completely stuck on the TDT and TGM files and am looking for inspiration ^^

#

For TDTs I have a leading string table, and then no clue. For TGMs I only know about the very first byte and that there's triangle index-like things at the end.

simple ravine
#

any clue what the files are for?

#

ah terrain

#

there seems to be a tgt file format too

worthy cape
#

Yeah, TGT refers to a TGM as "TileMesh" and has a bunch of materials listed.

simple ravine
#

after the strings looks like either ushort or shorts

worthy cape
#

I'm suspecting some of the counts are implied by files like the TGT or even further up.

#

Got some infra in place now where my parser can tag places of interest in the files, so I could align the hexdumps on things like the end of known data.

simple ravine
#

it's interesting to hilight something, and it highlights the same pattern

worthy cape
#

But still feeling quite lost, as it requires either doing things in the browser or in my graphical viewer.

simple ravine
#

like it does here

worthy cape
#

Yeah, that's not a bad idea.

#

One could also guess to the purpose of the files. One of them has to contain passability/height information, and there should be some info on the connectivity of different tiles somewhere as well.

#

Weekend's almost over, back to the coal mine on monday 😃

simple ravine
#

ooof

#

i got one more week heh

worthy cape
#

Yeah, I’ve been back for like one and a half already, really demotivational when everyone else goes when you get back.

simple ravine
#

Yeah, my entrepreneurial spirit is starting to itch real bad again

#

I wanna do something on my own so bad again

worthy cape
#

A-ha! Made my thing slice from the point where the parser said the string table ended, lots of files with similar lengths then.

#

Also made a theory that they sum to the same for each file length, but disproved that further down in another group 😃

rapid pagoda
worthy cape
#

Sounds a bit like the templates that 010 editor has, interesting.

#

@rapid pagoda What I've found is that the tooling around working with a ton of files in the same format and getting any form of overview is something sorely lacking in the ecosystem.

#

Interesting type of grammar they have there, I wonder how it'd handle things like PoE's string tables, where you have a code unit count up-front and build terminated strings until you've exhausted the table size.

#

Seems like there's script hooks, so doable I guess.

minor moss
#

Could somebody paste an example of a whisper from clien.txt stuck at work and can't check it myself :(

rapid pagoda
#
2019/02/21 18:44:55 765223015 a21 [INFO Client 4712] @To Meruk: thanks!
2019/02/21 18:44:58 765225370 a21 [INFO Client 4712] @From Meruk: ty
minor moss
#

Thanks

simple ravine
#

zao yeah indeed

gray glade
#

Hi, I have a question about PoE API and CORS, is it actually possible to login a user with the /login endpoint and a POESESSID as a Cookie header, on a web-app? When I do the request, I got a cors error: no redirect allowed for pre-flight requests.

#

I have some troubles understanding CORS but it looks like their servers block every request that doesn't come from pathofexile.com, and you need your domain to be kinda whitelisted on their servers rules

#

Sorry if this looks like a noob-ish question, I've been struggling on that since a few days, experiencing a lot of things but nothing working... 😞

somber flax
#

no need to log in if you already have a POESESSID, just send it with your requests

simple ravine
#

u can't use the cookie of another domain in your webapp

#

imagine all the bad things that people could do

somber flax
#

easy to test with an incognito tab and setting the cookie manually.. not sure what you mean @simple ravine

simple ravine
#

he's obviously doing it client side with javascript

#

do you know what CORS is?

somber flax
#

well my point was that he shouldn't need to do the login since he already has the session id

simple ravine
#

doesn't matter, CORS will stop him

#

he needs to do it from backend

worthy cape
#

CORS is mostly there to protect browser users from sites trying to do silly things toward other sites that haven't explicitly declared that it's cool, right?

#

@simple ravine I love how Zoom worked around CORS by abusing image resources when browsers prevented them from doing what they wanted 😃

simple ravine
#

you can get around some with 'jsonp' as well

worthy cape
#

That's pretty much just telling your backend to proxy a request?

simple ravine
#

or the API itself supports it

worthy cape
#

Haven't heard about JSONP since doing webdev in the 00s.

simple ravine
#

it's basically returning a 'var callback = ...' instead of a pure JSON

#

yeah it wasn't a good hack hehe

gray glade
#

can someone explain about jsonp?

#

for more context, I'm building an electron app that will be also available on browsers and I'm currently working on the browser integration (yes, mistake were mades, I made the electron app before the browser one)

#

but since electron have the main context (which is basically the backend powered by nodejs, doesn't have cors restrictions), making my app compatible for browsers is like impossible because of cors on the client-side browser...

#

well, I think I'll wait for the oauth api to be ready... I'm hoping it will be ready for next league 😄

simple ravine
#

that's by design

#

no way around it

gray glade
#

yeah if poe servers have cors policies, there is no workaround

#

but their upcoming oauth integration is meant to have a proper api and allow specific web-services, right?

simple ravine
#

yea

#

there are some funky restrictions though

#

but that's for another day

gray glade
#

oh you have access to their oauth api?

#

what do you mean by funky restrictions? what I need in the future is: player login, retrieve player characters and retrieve player stash-tabs + items

simple ravine
#

if you do it from your backend, you have the same throttle restrictions as you normally would

#

so if your app gets popular u're screwed

gray glade
#

didn't know there is throttle restrictions, like x calls/min?

simple ravine
#

yes, check pins

gray glade
#

but actually I don't have a backend and don't really plan to have one, all calls are made by the client using it's own ip + poesessid, so each user is rate-limited by itself only

simple ravine
#

you're going to need one if you want to us ouath, due to how ouath works

gray glade
#

oh yeah right

#

totally forgot this

simple ravine
#
  1. callback/reidrect url
  2. client secret
  3. refresh token
gray glade
#

yeah it's the same thing that discord is using

#

for bot integrations

simple ravine
#

yes, it's a standard

#

well no, not for bots, they just use client id and secret

#

at least mine does

somber flax
#

got this from rory earlier today, might be helpful: Our OAuth2 implementation currently only allows basic user information, so things such as stash or character data is not included

gray glade
#

yeah already got this info from rory by mail last month

simple ravine
#

well that's only partially true

#

the ouath token works on the other APIs as well, but I guess not officially supported

gray glade
#

I really hope we will see soon the full oauth api, for a game like poe that have a lot of community-made tools, this oauth api looks like a crucial thing to have

somber flax
#

would be nice yes, it's not good to ask users to enter their session id

simple ravine
#

but this was over a year ago, i was testing it out, early stages

somber flax
#

quite a bit of time to implement is that normal for ggg?

simple ravine
#

heheh

somber flax
#

poemap.live appears to use oauth2, any other sites use it yet?

simple ravine
#

not to my knowledge

hazy fog
#

@velvet fog the search here https://poedb.tw/us/mod.php?type=enchantment has a button called maps but that's the wrong term it should be eternal. clicking the button returns no results but if you instead type eternal you get the maps enchants

velvet fog
#

thanks

hazy fog
#

👍

eager rivet
#

Is there past whole trade dumps? I know about the ones on poe.ninja but I am looking for larger datasets where I can see data about yellow items.

deft jolt
#

Not really

eager rivet
#

Hmm, maybe I should take daily dumps and store them somewhere then. Might be useful for various kind of tool devs.

#

The public API is in the form of https://www.pathofexile.com/api/public-stash-tabs?id=############ Is it not possible to put the id from couple of days ago to get that information?

violet path
#

I think @frigid nova might be interested in that sort of thing

simple ravine
#

@eager rivet The stash api will always give you the 'current' result, and there is no way to access earlier versions of the state

eager rivet
#

Oh I see. Thats just for getting the next update then

rapid pagoda
#

IIRC it's kind of in the middle

simple ravine
#

kind of

#

the change id is just a 'container', if you follow the river from 0-0-0-0-0, you will see empty sets

#

that is because there are nothing left in that change set anymore, because they've moved on to newer change sets

rapid pagoda
#

stash tab river is always effectively "give me all stash tabs newer than this point in time"

simple ravine
#

if that makes snse?

rapid pagoda
#

from oldest to newest

simple ravine
#

well, almost

eager rivet
#

So if I start from the Legions first id I should be able to follow every item put into public stashes during legion?

simple ravine
#

Only the items that are currently in a public stash tab

rapid pagoda
#

No. You'll only see stash tabs as they exist now, starting with the ones that have been untouched for the longest time

eager rivet
#

Sorry if i sound stupid. Ok then, does the latest id give every item in the public stashes at that moment?

rapid pagoda
#

The latest ID won't give you anything until it's no longer the latest

#

basically, imagine that all stash tabs are in a big stack of cards. every time a stash tab is modified, it gets pulled out of the stack and put on the bottom (higher change ID).

#

if you start with ?id=0-0-0-0, you start looking at the stack from the top (oldest tabs, lowest change IDs) and reading through it towards the bottom

#

the "latest ID" is a pointer to the current bottom of the stack

simple ravine
#

I kind of use the analogy of buckets, because you can see empty buckets

#

if that's still a thing?

eager rivet
#

So theoretically, if I wanted to get every item in a public stash right now, I'd have to aggregate all item results starting from 0-0-0-0 until the latest?

rapid pagoda
#

Correct.

simple ravine
#

yes

eager rivet
#

Ok thanks for explaining to me

rapid pagoda
#

All leagues are aggregated into a single stream, though, so if you only care about a specific temp league you can use a change ID from the start of that league (so you ignore a bunch of old changes in standard)