Jump to content

Recommended Posts

That was a lot quicker than I expected - 8 minutes to process 30G of stream decyphered content (someone fix the spell checker - decyphered is a word)

 

What do we have here then?

 

UUIDs are used extensively in POE2 (spell checker...) but there is a disconnect between the UUIDs that's resolved externally

 

The file I've extracted lists every single UUID in POE2 and is JSON encoded for easy reference

 

This involved stream decoding (some are way to big to read into memory) 52,293 files and yields 66,316 UUIDs.

 

Not all the UUIDs are actually in exported - there is no reference between for example a vendor and his / her shop (big clue for @ZapGunForHire here re discounts)

 

To give an example Sanza

            "DebugName": "CHA_03_VD_Sanza",
            "ID": "e86415a7-a98c-425a-ba4b-c4288d49435d",

He's only in ...

 

PillarsOfEternityII_Data/level20
PillarsOfEternityII_Data/exported/design/gamedata/characters.gamedatabundle
PillarsOfEternityII_Data/assetbundles/characters.unity3d
 
Now, his shop
 
            "DebugName": "Store_03_Cartographer",
            "ID": "1522b748-9761-4c17-981c-ebe76dfc5127",

That's only in ...

 

PillarsOfEternityII_Data/level20
PillarsOfEternityII_Data/exported/design/gamedata/items.gamedatabundle

 

[That was a painful grep - took me about the same amount of time to stream-process the same files to extract every one]

 

What we can tell from this is that level20 there is no direct connection between Sanza and his shop other than obfuscated in level20

 

@ZapGunForHire - you can now see why there's no direct connection between factions + a shop, you'll find that the discount is applied in some level file that we have no way of  linking them together  (it's a pain in the ass, I know)

 

I previously did this the other way around for level* which allows for an method to work out what's where.

 

Things get more complicated when we look at Sanza's actual location (level20 has a UUID) that's referenced in Queen's Berth and Netekaha - each are containers for something smaller (this is why I believe Mods not working from a loaded savegame happens - got a report of the uniques failing from a user this AM)

 

OK...

 

That's all the theory over

 

Now to the data structure of the extracted file (it's JSON)

 

This is Sanza

    "e86415a7-a98c-425a-ba4b-c4288d49435d": {
        "cnt": 3,
        "xcnt": 2,
        "gcnt": 1,
        "exported": 1
    }

cnt = total occurrances

xcnt = count in exported

gcnt = count outside exported

 

If we take unavailable items gcnt will be zero and xcnt one or more

 

So - something I know is unique from yesterday's mod ...

    "14d0fd5a-e08c-45ac-baf7-77418ce94d48": {
        "cnt": 2,
        "xcnt": 2,
        "gcnt": 0,
        "exported": 1
    }

[Wait for grep to locate it for me - BRB]

 

I'll do this the other way around (take a known orphan)

 

Grimoire_Arkemyr (who?)

 

OK Arkemyr is a quest giver (kill him and you get his grimoire I guess)

 

If you find a 1 cnt with an xcnt of 1 this is something orphaned

 

Annoyingly the website won't be updated until I post this so gimme a few moments to link them together as I'm documenting it in forum

 

The downloads can be found at http://poe2.ubu.peardox.com/exported/

 

 

 

  • Like 2

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

You're doing the lord's work here.

 

If it isn't too complicated to explain, how does this all work? I'd like to have/make lists for things from the files in other cases as well if possible.Like lists for specific effects/abilities/itemmods/etc (such as grouping all similar effects and their id's together) for easier referencing. I mean... I could just ctrl+f constantly, but if there's a more practical way, you know.

Link to comment
Share on other sites

This is a non-specific count list of everything in POE2

 

It identifies specific things

 

Everything in POE2 has a UUID

 

The purpose of this is to connect things

 

If xcnt > 0 then it's something you can change in the game

if xcnt = 0 you're out of luck

 

The same applies to gcnt but in a diffo way

 

if gcnt = 0 it's an orphan

if gcnt > 0 && xcnt > 0 it's something you can buy or negotiate for

 

There are rare occasions where gcnt = 0 + xcnt = 1

 

This signifies something worth looking deeper into and attaching to a shop somewhere as I did yesterday with "The Red Hand and Friends" (wish I'd ran this one up first in hindsight)

 

There are many upsides to what this makes available to the Mod dev if you know how to use it.

 

A simple example is we can use it to detect Mod clashes (must have posted that one in another thread)

 

By the same methods I use to grab UUIDs I can extract them from Mods so if a Peardox Mod interferes with a TT1 Mod (love the Dead Parrot) I can find out instantly - there's more I can do with all this stuff but need to finish extracting exported 

  • Like 1

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...