Penumbra
Penumbra copied to clipboard
Modpacks used by multiple collections can cause unexpected results if materials are shared but not textures
This may be related to #59 and possibly(?) #194 depending on how these users are configuring their modpacks, and the fact that skin materials get cached very frequently might have been masking this issue for players, making reporting the issue difficult. I was able to replicate this failure / fix this failure repeatedly by switching between the failure and success conditions. Even if this issue is considered as 'can't fix', the workaround in Success Scenario 1 should work for all users that encounter this specific issue with no downside.
Issue description: If a single-character collection has a modpack enabled that another single-character collection has enabled, textures referenced by a material in the shared modpack that are replaced by a higher priority modpack (such as body tattoo diffuses) will only load the texture from one of the two character collections that are sharing the modpack. This only happens when a mod is shared between single-character collections; if the modpack is shared via being part of a Default or Forced collection this behavior does not happen. Because different textures for the same materials are almost always skin and face diffuses, this issue gets masked as textures being cached, but it is not. Specific examples:
Example Failure Scenario:
- Player installs a body mod, and enables this mod for characters 1 and 2 in their character-specific collections. This modpack includes the material files for the player skin. Whether this same modpack is enabled in Default / Forced appears not to matter.
- Player installs a tattoo mod for character 1, higher priority than the body mod. This replaces the body diffuse successfully, and their tattoo works.
- Player installs a tattoo mod for character 2, higher priority than the body mod. This replaces the body diffuse successfully, and the second tattoo works.
- The two characters are the same race, and as a result their "skin material" file is the same file, being used from the body mod pack that both single-character collections have enabled.
End result: Whichever character gets loaded first, "wins" and their diffuse texture is shown on both characters. The above scenario isn't how most players enable body mods, and the issue is masked by the fact that this works just fine if the mod is shared from Default / Forced collections instead of checked for each single-character collection.
Example Success Scenario 1:
- Exact same scenario as above, except:
- This time, the player takes the additional step of copying the body material files from the body mod to into the tattoo mods. This workaround causes the correct tattoo diffuses to be referenced for each character-specific collection.
End result: This works, without issue. Because the material file being referenced is contained in the tattoo mod higher in the priority list, both player tattoos load and don't conflict, even if the body mod is still being shared between them.
Example Success Scenario 2:
- Exact same scenario as above, except:
- This time, the player installs the body mod as part of the Default or Forced collections, and they are not enabled for the single-character collections.
- Even though the material is once again being shared by both character-specific collections to reference the tattoo diffuses... the tattoos load correctly.
End result: This also works. Even though the exact same material file is being used for both characters, the diffuses for each character get loaded successfully. The issue only occurs under the single-character collections scenario.
Example Success Scenario 3:
- Exact same scenario as above, except:
- This time, the player installs the body mod in two separate copies, and enables them separately for the two character-specific collections.
End result: Even though the contents of the mod folders are exactly the same, because the exact same copy of the mod isn't enabled for both characters this also works.
Steps to replicate: -Install a body mod, enable it for two characters of the same race. -Install different tattoo packs for the two characters, set priority. -Issue should now replicate any time the characters are in the same area. -Copying the skin material files into the tattoo mods, installing a second copy of the body mod and enabling one for each, or enabling the body mod in the Default / Forced collections should all solve the issue.
I don't have time right now to read this all (generally unavailable) but from skimming I assume this will be fixed in the rework / is fixed in the current alpha. I'll come back to this when I have some time. In any case, thanks for the detailed report.
Thanks Ottermandias! If you have a custom repo for the alpha I can give it a try and let you know if it appears to be fixed in a recent version - if there's no repo or you're not too worried about it that's also okay
I know you were likely aware, but I did want to confirm that this issue does appear to be resolved in the alpha version of Penumbra available on discord - thanks!