Asked for by a user over email who ran into trouble filing it here. Sims 2 custom content splits a recolor from the mesh it paints, and installing one without the other leaves an invisible or red-flashing item in the catalog with nothing in the game to say why. Same failure in Sims 4, where a lot of CC is marked "mesh required" and the mesh is its own separate download.
Most of the work is already done. scanPackage parses the DBPF index of every mod and keeps every Type/Group/Instance key, and findResourceOverlaps cross-references those keys across the whole library. What the scan never does is read a resource's contents, which is where the references live. For Sims 2 that means the 3IDR, which lists the TGIs a recolor needs - a small, stable format that SimPE and Delphy's Download Organiser have always read. Sims 4 keeps the mesh key inside the CASP, whose layout moves between patches, so that one needs re-checking after game updates rather than being written once and left alone. Sims 3 isn't worth doing; CC there ships complete.
The hard part is Maxis meshes. A recolor of a base game mesh points at a resource in the game's own packages rather than anything in Downloads, so checking references naively marks a large share of any real library as broken. Either index the game install once (its path is already resolved for Sims 2/3/4) or only check references that are themselves custom and stay quiet about the rest. The second is cheaper and is what the community tools settled on.
Two smaller things. PackageInsight drops its keys above maxRetainedKeys (8192) to keep the cache bounded, and merged collections are exactly where meshes end up, so provided-mesh keys need to sit outside that cap. And the scan is behind the "Scan inside mods" setting, so the check inherits it - fine in itself, but the UI has to account for the warning being absent when it's off.
Sims 2 first, surfaced in the detail panel next to the conflict warning. Sims 4 after, if the CASP parsing holds up.
Asked for by a user over email who ran into trouble filing it here. Sims 2 custom content splits a recolor from the mesh it paints, and installing one without the other leaves an invisible or red-flashing item in the catalog with nothing in the game to say why. Same failure in Sims 4, where a lot of CC is marked "mesh required" and the mesh is its own separate download.
Most of the work is already done. scanPackage parses the DBPF index of every mod and keeps every Type/Group/Instance key, and findResourceOverlaps cross-references those keys across the whole library. What the scan never does is read a resource's contents, which is where the references live. For Sims 2 that means the 3IDR, which lists the TGIs a recolor needs - a small, stable format that SimPE and Delphy's Download Organiser have always read. Sims 4 keeps the mesh key inside the CASP, whose layout moves between patches, so that one needs re-checking after game updates rather than being written once and left alone. Sims 3 isn't worth doing; CC there ships complete.
The hard part is Maxis meshes. A recolor of a base game mesh points at a resource in the game's own packages rather than anything in Downloads, so checking references naively marks a large share of any real library as broken. Either index the game install once (its path is already resolved for Sims 2/3/4) or only check references that are themselves custom and stay quiet about the rest. The second is cheaper and is what the community tools settled on.
Two smaller things. PackageInsight drops its keys above maxRetainedKeys (8192) to keep the cache bounded, and merged collections are exactly where meshes end up, so provided-mesh keys need to sit outside that cap. And the scan is behind the "Scan inside mods" setting, so the check inherits it - fine in itself, but the UI has to account for the warning being absent when it's off.
Sims 2 first, surfaced in the detail panel next to the conflict warning. Sims 4 after, if the CASP parsing holds up.