Jump to content

[Question to Devs] Caching Issue


Recommended Posts

Apologies for my english, i'm italian :p

How already stated from peardox in First Mod Tutorial the game has a caching issue on the saves so if you have already obtained an item in the game you can't change it via mod, you have to re-obtain it .
I encountered this problem with one of my mods (check comments to understand better) where i have missed a status effect. I have tried to change it and knowing the caching issue i made a promotional item for people that have already obtained the object. In this way they could drop/sell the item and use the new one w/o pay again the price.

But i have also wrong the fix..  the item GUID was the same, and it has clashed with the GUID that was already in my vendor's lootlist totally disabling it (the whole lootlist). After that i was no able neither to add the items contained in the lootlist with the console. Hence i suppose it disable not just the loolist but also all the contained items.
To solve it i have changed item's GUID and debug name (just of the one of the fix) making a new item (a clone). But now people that using the fix are even able to acquire a clone of the item from vendor. To avoid that i should fix also the vendor lootlist removing the item but this bring me in the previous situation and in a sort of loop. Imho this system can just create problems to anyone (modders&users)

So please can we have a more tidy way to work?
Explain those things to users isn't simple and could just create confusion, could you try to fix in some way this issue?

Thnks in advance

Edited by kilay
  • Like 2
Link to comment
Share on other sites

I would add another issue to this system: the Mod Manager 'Refresh' Button. Please remove or fix it, atm can only create troubles

It doesn't work as expected and could be a potential Mod/Save Breaker , talking again of my pistols some users have experienced some weird issues so i have tried to make a couple of tests and i discovered that my fix works only if properly added
 

  • if i launch the game w/o the fix ticked-- save-- Mod Manager-- tick my fix--refresh button and load the savegame --> BUGGED items & lootlist and if the user make a saves on this scenario the items already obtained before the fix will be forever broken in that savegame
          
  • instead if i launch the game w/o the fix ticked--save--Mod Manager--tick my fix--refresh button--- EXIT-- restart the game and load the savegame --> IT WORKS as expected

    Here the save and the two mods modules

     
Edited by kilay
Link to comment
Share on other sites

This APPEARS to be a result of a cached LootList going on what BMac says

 

My best suggestion for this one is OBS-dependant

If the Refresh Mods button actually checks ALL saves and invalidates any that are new - another cache issue but less severe

 

Cache mods - something as simple as an MD5 to spot a change would do the job (not secure but we're simply after change in content detection)

 

Might play with this concept next week

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

This APPEARS to be a result of a cached LootList going on what BMac says

 

My best suggestion for this one is OBS-dependant

 

If the Refresh Mods button actually checks ALL saves and invalidates any that are new - another cache issue but less severe

 

Cache mods - something as simple as an MD5 to spot a change would do the job (not secure but we're simply after change in content detection)

 

Might play with this concept next week

 

agree Pear, but my point of view is that this button is bugged.

Just remove it, no one need a fake button that didn't do what is expected.

Next step after that will be remove any items from my Nexus account  to avoid useless reclaims (cuz the modding system about items doesn't allow any kind mistake atm).

I spent about 4 hours to figure this out  and explain to users why this happened.

I will never do a new item until OBS solve/change that istance.

 

 

Edited by kilay
Link to comment
Share on other sites

I recently get into lootlist and vendor and storage etc.

 

I probably don't fully understand the problem you get but I approached the lootlist in a different way.

Any vendor in the game has a storage, the storage can be "populated" by more than one lootlist.

I suppose the lists "one buy" cannot be touched because there isn't a script that can manipulate that, but, the one regenerates can thanks to these script:

 

Void StoreAddRegenerationList(Guid, Guid)

Void StoreRemoveRegenerationList(Guid, Guid)

 

This is vital because can change how you approach the all thing.

The main problem is that each modder should "take" a vendor and populates the list with their items, but the risk to clash with another list of another modder is high because modifies something that's shared in the game.

Adding your own list to a storage makes possible using the same storage by more than one modder without any issue because the items are in just different lists.

 

Why this is important in relation to this problem?

Because each time you upgrade your items you can call the script, remove the list with the bugged item, and regenerate the new one. The effect is immediate, the list is regenerated when the script is called so the user totally avoids the case he can still buy the bugged item and doesn't need to wait a full cycle day/night to get the fixed item.

 

The only issue is how and when run the scripts. It's a tough problem because atm there aren't many event to fire from but something can still be possible. For example, I generate my list when I inspect an item, the woedica club lol.

 

Anyway when I upgrade a bugged item my actions should be:

Remove OldList

Regenerate NewList

Delete old item

Give updated item.

 

The last two points aren't trivial, but I think is the safest way to approach.

Edited by mammasaura
  • Like 1

CzSyX91.jpg

Link to comment
Share on other sites

not sure if that can solve my issue but anyway many thnks for the reply @mammasaura
I try to explain better

in the lootlist there are 4 items (two pistols, a ring and a grenade). in one of my mod version one of the two pistols (The Good) was buggy (i removed a wrong ItemMods) but other items was ok.
Those pistols are either soulbound weapons.

 

So some users have obtained both the pistols and applying my fix incorrectly they broken the items of that lootlist . Some users reported that pistols at some soulbound level (probably the one that i changed) start to not do damage , but initially they worked correctly.  
If in this scenario (fix applied wrong) i try to obtain one of those weapons with console they missing from the data
i think that if they wrong to apply 'any' fix this could happen.

Imho it's a technical problem for any mods not only a matter of lootlists. Also other modders in our group have experienced some weird issues regarding the refresh button and the proper working of the mods.

Edited by kilay
Link to comment
Share on other sites

Another work-around which defo works is a convo mod - this is how I usually test stuff
 
I just use GiveItem(Guid) when testing

This could actually even before 2.1 form a mini-quest, e.g. If you've recruited Aloth I'll give you some cool stuff
 
Convo mods don't have the same problems as lootlists
 
BMac said (somewhere) he's looking into Mod assigned lootlists so that's also hopeful
 
There are a LOAD of useless NPCs (gonna use Darmo for my next one) that serve little purpose that can easily be extended

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

This is something that could happen loading a save without have the proper mods loaded .
also this could potentially broke any savegame.

i just imagine what could happen if you are forced to remove a mod cuz the maker doesn't update it anymore and that doesn't works in future patches

 

How you can see name missing and also character models

 

Pillars_of_Eternity_II_Deadfire_Screensh
Pillars_of_Eternity_II_Deadfire_Screensh
 

 

if you wanna test (it's a really cheated save from a user)

https://www.dropbox.com/s/c30ol0m01hpg8gl/Osiris946984f9-dd01-4fb1-9a2f-9abaca406385%20%28LAX-2ABCDE%29%20trialofiron.savegame?dl=0

Edited by kilay
Link to comment
Share on other sites

The can't load map response is another bug

 

This actually means there's some bad JSON in your MOD or something similar

 

It can come from several sources I've chanced upon so far

 

The most likely is bad JSON so throw your gamebundledata at https://jsonlint.com/

Another one I (stupidly) did was recursive GUIDs - like an ItemMod referencing itself or the wrong type of GUID (not fully explored this)

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

The can't load map response is another bug

 

This actually means there's some bad JSON in your MOD or something similar

 

It can come from several sources I've chanced upon so far

 

The most likely is bad JSON so throw your gamebundledata at https://jsonlint.com/

 

Another one I (stupidly) did was recursive GUIDs - like an ItemMod referencing itself or the wrong type of GUID (not fully explored this)

issue is related to missing mods or clashes between them (cuz user have a really weird list of mods)

Also another issue is about one of my items that is cursed in this save , so the character can't remove the item and the game prevents to load this save without my mods.

The only way to load it properly is know the modconfig.json of the user, but this a even more difficult folder to catch (hidden) for a common user.

 

Edited by kilay
Link to comment
Share on other sites

Posted here rather than in Slack for wider consumption

 

Tried all the stuff you sent me

 

Drziit works regardless - simply a missing string in the Fix version

 

Osiris fails and I can't hack savegames any more (rats)

 

Simple suggestion

 

If you know the broken GUID recreate it in a Fixer mod that has the same ID but is some useless item (crap dagger or whatever) - VERY minimal and worthless Item.

 

That's a good quick test that either works or don't and takes a few minutes to write

 

_IF_ that works you can fix all brokens as long as we as a group have them all

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

I deconstructed the Osiris savegame looking for clues

 

There are 70,515 unique GUIDs in the game

 

There are 10,192 GUIDs in the savegame (didn't do a dupe count so maybe half that number)

 

The savegame has 1,550 unique GUIDs that only appear in the save (I have a list)

 

That's for 272 files which is > 5.6 : 1

 

OK - I'm officially confused now! :(

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...