Nexus-Mods / Nexus-Mod-Manager

GNU General Public License v2.0
965 stars 164 forks source link

Cyberpunk 2077, Mods Installed in Wrong Game Folder #1273

Open rxay579 opened 1 year ago

rxay579 commented 1 year ago

Describe the bug Some Mods installed with NMM are having their archive contents put into the wrong game folders. The mod's archive contains a structure of: \bin\x64\plugins\cyber_engine_tweaks\mods\\ NMM is unpacking that to: \mods\\

Environment Cyberpunk 2077 v1.61 w/ DLSS3 Patch (GOG) - Updated to this latest version

To Reproduce Download a mod from the above selection and install it. CET: https://www.nexusmods.com/cyberpunk2077/mods/107

Additional information REDmod mods generally belong in: \mods\ CET mods belong in: \bin\x64\plugins\cyber_engine_tweaks\mods\ I assume NMM is trying to correct archives that might be zipped incorrectly, but it is making a wrong assumption here.

* The problem seems to coincide with bad info in "\Mods\cache\\ The "cacheInfo.txt" has "False@@bin\x64\plugins\cyber_engine_tweaks\@@-@@-" instead of "False@@-@@-@@-". The expected "fomod" directory is instead in "\cache\\bin\x64\plugins\cyber_engine_tweaks\fomod\". This appears to be generated when the mod is downloaded from Nexus Mods.

* from "\Mods\VirtualInstall\VirtualModConfig.xml":

<modInfo modId="3518" downloadId="36890" updatedDownloadId="" modName="Native Settings UI - Native Settings UI 1.92 (CP v1.61)" modFileName="Native Settings UI 1.92-3518-1-92-1673118948.zip" modNewFileName="" modFilePath="F:\Games\Tools\Nexus Mod Manager\Cyberpunk2077\Mods" FileVersion="1.92">
  <fileLink realPath="36890\mods\nativeSettings\UIButton.lua" virtualPath="mods\nativeSettings\UIButton.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="36890\mods\nativeSettings\Ref.lua" virtualPath="mods\nativeSettings\Ref.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="36890\mods\nativeSettings\init.lua" virtualPath="mods\nativeSettings\init.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="36890\mods\nativeSettings\EventProxy.lua" virtualPath="mods\nativeSettings\EventProxy.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="36890\mods\nativeSettings\Cron.lua" virtualPath="mods\nativeSettings\Cron.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
</modInfo>

<modInfo modId="3469" downloadId="38439" updatedDownloadId="" modName="Stop NCPD attacks - Stop NCPD attacks 1.6.5" modFileName="Stop NCPD attacks 1.6.5-3469-1-6-5-1675289308.zip" modNewFileName="" modFilePath="F:\Games\Tools\Nexus Mod Manager\Cyberpunk2077\Mods" FileVersion="1.6.5">
  <fileLink realPath="38439\mods\stopNCPD\sms.lua" virtualPath="mods\stopNCPD\sms.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="38439\mods\stopNCPD\Ref.lua" virtualPath="mods\stopNCPD\Ref.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="38439\mods\stopNCPD\LICENSE" virtualPath="mods\stopNCPD\LICENSE">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="38439\mods\stopNCPD\init.lua" virtualPath="mods\stopNCPD\init.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
</modInfo>

<modInfo modId="4591" downloadId="25443" updatedDownloadId="" modName="RadioExt - RadioExt 1.1" modFileName="RadioExt 1.1-4591-1-1-1654513806.zip" modNewFileName="" modFilePath="F:\Games\Tools\Nexus Mod Manager\Cyberpunk2077\Mods" FileVersion="1.1">
  <fileLink realPath="25443\bin\x64\plugins\radioExt.asi" virtualPath="bin\x64\plugins\radioExt.asi">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\metadata.json" virtualPath="mods\radioExt\metadata.json">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\init.lua" virtualPath="mods\radioExt\init.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\io\out\.keep" virtualPath="mods\radioExt\io\out\.keep">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\utils.lua" virtualPath="mods\radioExt\modules\utils.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\radioManager.lua" virtualPath="mods\radioExt\modules\radioManager.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\radio.lua" virtualPath="mods\radioExt\modules\radio.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\observers.lua" virtualPath="mods\radioExt\modules\observers.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\GameUI.lua" virtualPath="mods\radioExt\modules\GameUI.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\GameSettings.lua" virtualPath="mods\radioExt\modules\GameSettings.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\Cron.lua" virtualPath="mods\radioExt\modules\Cron.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\config.lua" virtualPath="mods\radioExt\modules\config.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\modules\audioEngine.lua" virtualPath="mods\radioExt\modules\audioEngine.lua">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
  <fileLink realPath="25443\mods\radioExt\radios\.keep" virtualPath="mods\radioExt\radios\.keep">
    <linkPriority>0</linkPriority>
    <isActive>True</isActive>
  </fileLink>
</modInfo>
Slorm commented 1 year ago

I can confirm the above and would add that I noticed some mods did install correctly. After further investigation I found that if a mod also had \archive\pc\mod files than it would install correctly.

To prove this I repacked mod https://www.nexusmods.com/cyberpunk2077/mods/4510 having added an empty .txt file (\archive\pc\mod\test.txt and it then installed correctly. I also tried without the .txt file (just leaving the file path) and this failed and just created \mods

Hope this additional info may prove useful

LinuxfarmerHH commented 1 year ago

Conformed too, just corrected mods by hand. Here is the mod path within the .zip archive

D:\Users\ew-te\Downloads\Vehicle Customizer-3689-2-0-1641686282.zip\bin\x64\plugins\cyber_engine_tweaks\mods\

NMM latest version unpacks this to

D:\Games\Steam\steamapps\common\Cyberpunk 2077\mods

There is some kind of "repair assumption" what's a fail here. That's not a mod fail, because the path within the archive is okay.

AtomicFallout757 commented 1 year ago

As someone who is also modding Cyberpunk 2077 with NMM, I can again confirm this issue. As stated above, mods with a folder structure only of "\bin\x64\plugins\cyber_engine_tweaks\mods\[the mod's folder]" will not install to the correct location.

Meanwhile mods that include both the "\bin\x64\plugins\cyber_engine_tweaks\mods\[the mod's folder]" structure and, for example, "\archive\pc\mod\[the mod's file]" will install correctly.

As of this writing, I had 79 mods installed and every mod which only had the structure "\bin\x64\plugins\cyber_engine_tweaks\mods\[the mod's folder]" failed to install correctly. This was on the Steam version of the game - both Nexus Mod Manager and Cyberpunk 2077 were up to date.