Posts: 999
Thanks: 19 in 3 Posts
1 Achievements
From a quick peek at Fix Integrity, it appears to renumber most IIDs and their subsequent references inside of other files (the TGIBlocks, etc). The original purpose being to cleanly renumber the entire chain. It's kind of like having the renumber option under Clone by itself.
From the
S3OC changelog when the feature was added, if this isn't the description you already read: "FixIntegrity now assigns new IIDs in two passes; on the first pass, it assigns IIDs for the resources included in the package (i.e. the "real" IID); on the second pass, it assigns IIDs for all other references (i.e. weird OBJK->VPXY requests and RCOL chunk IIDs); OBJK->VPXY requests use the new IID of the "real" VPXY."
The OBJD/OBJK are just high enough in the hierarchy that changing their instance back doesn't break these references (with some exceptions).
Your method may actually be the least tedious way about it. Something being renumbered resolves the error, but even if you narrowed down the exact culprit it would need to be renumbered in more locations than what you're already doing. Some NGMP and thumbnail references might be lost though, take care restoring the ID for them too. It would make more sense for S3MO to be updated to handle these files rather than the other way around.
My knowledge only comes from following these references backwards when working on hair replacements, so there could definitely be a more informed answer out there though. Good luck!