View Bug Report
FCOIS Unique Ids aren't respecting item level unique factor
Bug #: 4163
File: FCO ItemSaver
Date: 07/30/22 01:43 PM
By: TechyShishy
Status: Fixed
TL; DR:
I first experienced this on Tazgol's Ancestral Axe, but I've since reproduced it with crafted Iron Daggers, level 1 and 4. I also crafted a traited level 1 Iron Dagger to confirm the exclusivity. I've included the resultant markedItemsFCOISUnique entry for all 3 Iron Daggers. Notably, it ends up with only 2 entries, leading to this bug:

Code:
["43535,0,1,0,9,0,0,1,2190528011,0"] = true,
["45024,0,1,1,9,0,0,1,2190528011,0"] = true,
Longer version:

Unique Ids don't seem to be respecting level as a factor, and as a result, marking one item marks all other items that are sufficiently similar. For example, if you craft 3 Iron Daggers, one level 1, one level 4, and one level 1 but with a trait, and then try to apply any mark to either the level 1 untraited dagger or the level 4 dagger, both of them receive the mark. The level 1 traited dagger remains unmarked. Looking at the ids in the SavedVariables explains why this occurs, for some reason, when marking either the level 1 untraited dagger or level 4 dagger, a single entry is created that apparently matches both daggers.

Here's an imgur album with a reasonably full set of data about my client state and the bug in action: https://imgur.com/a/HQm6X7f

And here's one of the images itself:


For now, I'm swapping to ZOS Unique Ids as a workaround.

RSS 2.0 Feed for Bug CommentsNotes Sort Options
By: Baertram - 07/31/22 04:59 AM
Thanks for the detailed info, I'll have a look if the level passed in is not working anymore. Hopefully it will be an easy fix.
By: Baertram - 07/31/22 06:51 AM
I've tested this ingame with an itemlink of a rubbedite dagger CP160 (tb -> merTorchbug):
/tb FCOIS.CreateFCOISUniqueIdString(nil,nil,nil,"|H1:item:43535:366:50:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0|h|h")

Returns
[1]43535,160,1,0,1,0,0,0,,0
So the level 160 is in as 2nd parameter.

Are you sure you did enable the level checkbox at the settings menu of FCOIS uniqueIds to be included into the unique ID?
By: Baertram - 07/31/22 06:51 AM
I'll try th same with a crafted rubedite dagegr in my bag, using bagid and slotindex
By: Baertram - 07/31/22 06:53 AM
Crafted one which was added as bagid 1 slotIndex 5:
/tb FCOIS.CreateFCOISUniqueIdString(nil,1,5,nil)
[1]43535,160,1,0,1,0,0,1,3816622778,0

Level is 160 again, so all okay.

Will see if transferring this to the SavedVars file somehow get's corruted then
By: Baertram - 07/31/22 07:20 AM
I've found the error.
If you change the FCOIS unique ID settings for the parts to include (level, quality, ...) it will not reset the "last cached uniqueId string" for the same item.
e.g. the string for the rubedite dagger is build and includes the level. You change the level afterwards in the settings to not be relevant anymore.
After that you unmark the dagger and mark it again -> the created uniqueID string still contains the cached level allthough it was disabled.
So maybe you had enabled the level in the settings and thus the string was not containing the level properly.

I'll reset the cache as you change the settings now and have a look at the cached data too so that different levels, quality etc. also will need to invalidate the cache for that itemId.
By: Baertram - 07/31/22 07:50 AM
Hi Again,

could you please logout of the game, backup your SavedVariables (especially FCOIS) and then try this beta version of FCOIS.
It should fix the bug with the changed "level" (or other) settings of FCOIS uniqueIDs.

https://github.com/Baertram/FCOItemS.../heads/PTS.zip
Please only extract the FCOItemSaver folder to your live/AddOns folder and remove/delete teh original live/AddOns/FCOItemSaver folder there first (do not simply overwrite!).

I think the bug you described only happened as you had changed the criteria of the FCOIS uniqueIds in the FCOIS settings and then marked any item where the bagId and slotIndex did not change (like FCOIS unique criteria says "exclude level", craft 2 daggers of different level, mark 1, both get marked, change FCOIS unique criteria to include the level, remove markers, mark 1 dagger, both get marked again due to cached data.

Thanks for your feedback if it works as expected now.

BR
Baertram