NiceneNerd / BCML

Breath of the Wild Cross-Platform Mod Loader: A mod merger and manager for BOTW
308 stars 57 forks source link

Issue with more than one assembly patch #504

Closed Echocolat closed 1 year ago

Echocolat commented 1 year ago

Hi, the mod I'm currently working on has two assembly patches inside of it. Upon installing the mod from my working folder, everything works fine, the two patches stay within the root and launching the game works correctly. Everything also works correctly in game. image-22 However, if I create a bnp of this mod, and try to install it with BCML, it will instead output a weird patches folder containing only one of the patches, and the other patch stays in the root. image-18

Also, it seems like some of my events break only when I install a bnp version of my mod. The events work fine when installing from working folder. Maybe an issue from EventInfo ? I don't think it could come from the eventpacks themselves. Thanks in advance !

GingerAvalanche commented 1 year ago

Assembly patches go in a folder called patches at the root of your mod, when you're making it. i.e. before you make the bnp. This is so that BCML has a folder that it can copy directly to the output, in the case of the user using the Disable links for master mod setting.

The rest of this post explains why this issue is odd, but isn't important to fixing it.

The only way that bcml will create the patches folder is if it's included in a mod to begin with. I don't know how one of your patches files got into a patches folder without you telling it to be, because that involves changing the folder structure of your mod, which BCML doesn't know how to do. All it knows is, if Disable links for master mod is checked and a patches folder exists, copy the patches folder. If Disable links for master mod is not checked, then symlink the target to the merged folder, which will have whatever files and folders your mods have (which includes a patches folder if your mods have one, and otherwise doesn't). You'll notice neither of those behaviors involves moving a file into a subfolder.