Quick Reply
Search this Thread
Scholar
Original Poster
#1 Old 29th Mar 2023 at 11:31 PM
Default What does s3oc "fix integrity" option do?
I haven't found a lot of description of this option, and I don't have enough understanding of how packages work to understand the description in the app's help.

Someone in the Sims 3 Mod Organizer comments noted that if you use the "Fix Integrity" option in s3oc, it fixes the "File contains non-zero unused bite(s)" warning that is thrown by this tool. I tried that, and it works. However, this option also renumbers the object, so if it was already used on anything in your game, it will be removed/replaced. Since the stuff I have throwing that error is stuff I pulled from a custom lot I downloaded, that's less than ideal.

I made note of the the original instance id and put it back after running "fix integrity," which is a cumbersome process the way I know it -- first replacing using S3OC and then replacing in S3PE -- but when I did that, the s3mo error was removed AND the objects already in my save were preserved.

So... clearly this integrity thing is doing something that doesn't require the object itself to get a new instance, but I don't actually know what it's doing anyway. Is there a way to fix integrity while preserving the instance id of the object?

Echo Weaver's Simblr: http://echoweaver.tumblr.com/
A portrait in stubbornness - Playing the same legacy since 2009
Sample a Brave Legacy: http://sims3sample.illation.net
Inventor
#2 Old 5th Apr 2023 at 8:17 AM
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!
Scholar
Original Poster
#3 Old 5th Apr 2023 at 3:25 PM
Thanks. This is helpful.

The two-stage replacement of the OBJ resource IDs is something I do for custom foods, and it seems to work. In this process, you use the replacement feature in S3OC to replace the existing instance ID with the instance ID you want. THEN you open the same object in S3PE and manually replace that same instance. S3OC replaces the internal references but not the external ones, so that's why you need the S3PE step.

It's a pain in the butt to do this, but I guess I'll probably do it anyway. There seems to be some value in having the integrity fixed on the cc in addition to the fact that it makes s3mo work better.

Quote: Originally posted by CardinalSims
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!


Since you're the only one who has answered, and this is more than I knew before, it's a big help! This is getting pretty deep into modding tech.

Echo Weaver's Simblr: http://echoweaver.tumblr.com/
A portrait in stubbornness - Playing the same legacy since 2009
Sample a Brave Legacy: http://sims3sample.illation.net
Back to top