Help:Tools/UKMM: Difference between revisions

Ginger (talk | contribs)
Deployment: Rules.txt clarity
Ginger (talk | contribs)
Remove DAR from the list of incompatible mods, since it’s compatible as of 3.6
Tags: Visual edit Mobile edit Mobile web edit
 
(12 intermediate revisions by 2 users not shown)
Line 8: Line 8:


UKMM ('''UK'''ing '''M'''od '''M'''anager) is an updated mod manager for BotW. It is used to install and uninstall mods, and solves many mod conflicts. It was created to solve bugs that fundamentally couldn't be solved by BCML, due either to limitations in the Python programming language or early design choices in BCML.
UKMM ('''UK'''ing '''M'''od '''M'''anager) is an updated mod manager for BotW. It is used to install and uninstall mods, and solves many mod conflicts. It was created to solve bugs that fundamentally couldn't be solved by BCML, due either to limitations in the Python programming language or early design choices in BCML.
==BCML or UKMM?==
BCML was designed to generate RSTB entries, and grew over the years to become something much larger and more clunky than was originally intended. UKMM was built from the ground up, by the same devs who wrote BCML, to be a complete mod manager for all forms of BotW, so it performs much better.
Which one should you use? Except for a few very rare exceptions, you should always use UKMM.
===Why use UKMM?===
# It installs BNPs just like BCML does
# It's easier to install
# It gives you more control over where your mods are deployed and how they're deployed there
# It doesn't force a remerge every single time you change anything. You can install 30 mods with UKMM and choose to only merge one time, at the very end, if you want. BCML would go through a long, full remerge process every single time, increasing the amount of time you spent not playing
# It doesn't need to fully remerge every single file when you install something. BCML could never manage to merge only the files required by changed mods without breaking something. UKMM can do it just fine, so installing small mods doesn't take 2 minutes if you have a large mod installed
# It merges any given file faster than BCML can merge the same file
# It merges more file types, meaning mods are more compatible than before
# It fixes several things about animation and AI merging, increasing compatibility between mods that edit those things.
# It generates proper RSTB entries for all assets, resulting in no crashes or panic blood moons related to file size (Some panic blood moons may remain if you use certain mods that increase the system load by a large amount, but even these mods will be more stable with UKMM)
# It supports dumps as WUA files if you're using Cemu
# It is a lot more strict with the files it accepts than BCML is, which means that you are far less likely to see an infinite loading screen or crash. Instead, you'll see an error in UKMM which will (almost always) tell you exactly what is wrong
===When should I not use UKMM?===
# You're using Dark Army Resurrection
# You're using the online multiplayer mod
In all other cases, use UKMM
===But I found a bunch of tutorials for BCML!===
That's because BCML ''needed'' them, because it was difficult to set up.


==Installation==
==Installation==
Line 39: Line 13:
Unlike BCML, installing UKMM is simple
Unlike BCML, installing UKMM is simple


# Download the executable archive for your system from [https://github.com/GingerAvalanche/ukmm/releases the current UKMM releases page]
# Download the executable archive for your system from [https://github.com/NiceneNerd/ukmm/releases the current UKMM releases page]
# Extract the executable from the archive to just about anywhere on your computer
# Extract the executable from the archive to just about anywhere on your computer
# Run the executable
# Run the executable
Line 58: Line 32:


==Setup==
==Setup==
There are three methods of setup, depending on whether you are coming from BCML or not, and if not, if you are using Cemu and have set it up already
There are three methods of setup, depending on whether you are coming from BCML or not, and if not, if you are using Cemu and have set it up already.
 
==== Note for Non-Native English Speakers ====
Make sure that you set the UKMM Language setting to your native language (if present). This will help you understand the program and its layout better.
 
(Yes, I realize that the fact that you don't speak English natively means you may not be able to read this, but hey, maybe you're translating this page, or maybe you can partially read English. I'm not judging, here.)


===Importing from BCML===
===Importing from BCML===
If you previously used BCML and it worked for you, congratulations! Your job is easy. Go to the Settings tab, click '''Migrate from BCML'''. Wait for it to finish. There you go! All done!
If you previously used BCML and it worked for you, congratulations! Your job is easy. Go to the Settings tab, click '''Migrate from BCML'''. Wait for it to finish. There you go! All done! Now go to [[Help:Tools/UKMM#No, really, how do I use it?|No, really, how do I use it?]] to learn the simplest way to use UKMM


===Not importing from BCML, using Cemu===
===Not importing from BCML, using Cemu===
If you're using Cemu and you've previously seen the 1.5.0 version number in the bottom right of the BotW main menu, just click '''Import Cemu Settings''' inside the Wii U Config section, and select the folder that contains Cemu.exe. There you go! All done!
If you're using Cemu and you've previously seen the 1.5.0 version number in the bottom right of the BotW main menu, just click '''Import Cemu Settings''' inside the Wii U Config section, and select the folder that contains the Cemu program. There you go! All done! Now go to [[Help:Tools/UKMM#No, really, how do I use it?|No, really, how do I use it?]] to learn the simplest way to use UKMM


===Manual Setup===
===Manual Setup===
Line 107: Line 86:
|Self-explanatory
|Self-explanatory
|-
|-
|Base Folder (Switch or WiiU Unpacked)
|Base Folder (WiiU Unpacked)
|Where you store your Base Game dump.
|Where you store your Base Game dump.
|The folder named <code>content</code> inside your game dump. Should look like <code>C:/some/path/content/</code>, where <code>C:/some/path</code> is something only you know.
|The folder named <code>content</code> inside your game dump. Should look like <code>C:/some/path/content/</code>, where <code>C:/some/path</code> is something only you know.
|-
|-
|Update Folder (Switch or WiiU Unpacked)
|Base with Update Folder (Switch)
|Where you store your Base with Update Game dump.
|The folder named <code>romfs</code>, inside the <code>01007EF00011E000</code> folder in your game dump. Should look like <code>C:/some/path/01007EF00011E000/romfs</code>, where <code>C:/some/path</code> is something only you know.
|-
|Update Folder (WiiU Unpacked)
|Where you store your Update dump.
|Where you store your Update dump.
|The folder named <code>content</code> inside your update dump. Should look like <code>C:/some/path/content</code>, where <code>C:/some/path</code> is something only you know.
|The folder named <code>content</code> inside your update dump. Should look like <code>C:/some/path/content</code>, where <code>C:/some/path</code> is something only you know.
|-
|-
|DLC Folder (Switch or WiiU Unpacked)
|DLC Folder (WiiU Unpacked)
|Where you store your DLC dump.
|Where you store your DLC dump.
|The folder named <code>0010</code>, inside the <code>content</code> folder in your DLC dump. Should look like <code>C:/some/path/content/0010</code>, where <code>C:/some/path</code> is something only you know. NOTE: DO NOT END THIS PATH WITH <code>content</code>, IT WILL NOT WORK. END THE PATH WITH <code>0010</code>!
|The folder named <code>0010</code>, inside the <code>content</code> folder in your DLC dump. Should look like <code>C:/some/path/content/0010</code>, where <code>C:/some/path</code> is something only you know. NOTE: DO NOT END THIS PATH WITH <code>content</code>, IT WILL NOT WORK. END THE PATH WITH <code>0010</code>!
|-
|DLC Folder (Switch)
|Where you store your DLC dump.
|The folder named <code>romfs</code>, inside the <code>01007EF00011F001</code> folder in your DLC dump. Should look like <code>C:/some/path/01007EF00011F001/romfs</code>, where <code>C:/some/path</code> is something only you know. The <code>01007EF00011F002</code> dump is not needed.
|-
|-
|WUA Path (Only WiiU WUA)
|WUA Path (Only WiiU WUA)
Line 154: Line 141:
|Emulator Executable (optional)
|Emulator Executable (optional)
|The command to use to run open your emulator when using the Open Emulator button
|The command to use to run open your emulator when using the Open Emulator button
|The path to your emulator executable
|A shell command for running your emulator. On Windows, this requires quotes around it at all times. On other OSes, it requires quotes around it if there are spaces in the path. As a shell command, it supports switches, e.g. "C:\path\to\Cemu.exe" -g "C:\path\to\botw\U-King.rpx" will open Cemu and skip the game selection menu, running the game immediately.
|-
|-
|}
|}
Line 187: Line 174:
==Known Issues==
==Known Issues==


* Certain mods distributed as BNPs are incompatible with UKMM, due to how they were made. A fix is currently being worked on.
* Certain mods distributed as BNPs will not install with UKMM, due to how they were made. If you find one, please contact Ginger.
* Certain mods distributed as BNPs that add lots of the same thing very close to each other on the map may be missing some of those things. A fix is currently being worked on.


If you can provide in-depth support to the developers on how to cause any of these issues, please [https://discord.gg/vPzgy5S contact Ginger on the discord]. This would go a long way toward fixing them.
If you can provide in-depth support to the developers on how to cause any of these issues, please [https://discord.gg/vPzgy5S contact Ginger on the discord]. This would go a long way toward fixing them.


==FAQ==
==FAQ==
===What's the difference between merge/Apply and Deploy?===
"Apply" and "merge" (or, "applying the merge") both mean to take the mods you have installed and combine them into one single mod. "Deploy" means to take the combined files and put them in the output folder.


UKMM splits these two concepts for multiple reasons. Maybe you want to merge a new set of mods and make sure there are no merge errors before you overwrite your deployed files. Maybe you have your output folder set to your SD card and want to merge while you look for your SD card, then plug it in to deploy. There are many reasons you might want these two operations separated.
=== Mod Manager-Related Questions ===
 
==== Do I need to use a mod manager? ====
Yes.
 
==== But I install mods manually all the time? ====
In other games you do. BotW doesn't work the same way. You need to use a mod manager.
 
==== Okay. WHY do I need to use a mod manager? ====
In other games, mods are generally not file replacements, they're a series of standalone instruction sets that tells the game (or a patching library, like BepInEx or Reloaded) how to change what to use.
 
BotW doesn't have anything like that. It needs to have all the files and code merged and in order before you even boot your console/emulator, because the best we can do for those is replace archives.
 
Now, BotW contains almost all of its data in archives and registry files.
 
When those archives are fully and completely decompressed and extracted, each one contains anymore from about a dozen, to a few thousand files. Most of those files contain dozens, even hundreds, of parameters. If a mod edits just one of those parameters, it will override every other mod that contains one of the other 12-2000 files. Plus, a lot of mods edit the game's most important archives: the ones loaded at bootup and in the title screen's background. So if you take any random two mods, they'll ''probably'' conflict with each other.
 
The registry files are single files that contain a ton of data about other files. You know that meme about the different Spidermans (Spidermen?) all pointing at each other? The registry files are basically like that. If they're not all agreeing on everything (aka they don't all have the same data) then things can get real buggy.
 
And ''then'', as if it's not complicated enough already, there's a special file that BotW has, called the RSTB. The RSTB contains data on almost every one of the other files in the entire game, and so almost every mod needs to edit the RSTB. Most mods rely on a mod manager to edit the RSTB, so even if you don’t want to install more than one mod, the odds are still good that the mod you’re installing is assuming you’ll use a mod manager to make it work.
 
And to top it all off, even if you only want to use one mod? It may not edit everything it needs to. The mod author might have assumed you'd be using a mod manager that would automate some of the process, and not actually changed everything they needed to, meaning you might not get the entire mod, even if you use only one.


If you don't want the operations separated, turn the Auto Deploy setting on, and it will always deploy right after merging (similar to what BCML did)
So... yeah. It's complicated. It's a mess. We do our best, but BotW modding is really just a gigantic ball of chaos held together with string and chewing gum. The mod managers help keep it all together.


===Why does it say it can't find files in my dumps?===
=== UKMM vs. BCML Questions ===
Your dump paths are probably set wrong. Go back up to [[Help:Tools/UKMM#Game Dump|the game dump section]] and make sure you've followed the directions correctly.


If you're absolutely sure your game dumps are set right, check to make sure your dumps haven't been corrupted somehow. If the file UKMM claims is missing, really is missing, then you may have to dump your game again.
==== When should I use UKMM as my mod manager, instead of BCML? ====
Except for a few very rare exceptions, you should always use UKMM.


===Why don't my mods show up in my emulator after deploying?===
==== What are the exceptions, for when I should use BCML instead? ====
Make sure your deploy folder is set correctly. Go back up to [[Help:Tools/UKMM#Deployment|the deployment section]] and make sure you've followed the directions correctly.
# You're using the online multiplayer mod
This list is not exhaustive, but it ''almost'' is. There's very few other real reasons to use BCML, after 2024 when UKMM surpassed it.


If your mods still don't show up in your emulator, make sure that the location they're being deployed to isn't managed by OneDrive. It will delete them because it sucks. Consider uninstalling OneDrive, but at the very least, you'll need to tell it not to manage where you deploy to.
==== WHY should I use UKMM instead? ====
# It installs BNPs just like BCML does.
# It's easier to install.
# If you're using Cemu, or previously used BCML, it's much easier to set up.
# It gives you more control over where your mods are deployed and how they're deployed there.
# It merges map changes from the DLC files into the base game, so you can install many mods that only have DLC map files even if you don't have the DLC.
# It doesn't do unnecessary things, part 1. When you install a mod, all it does is install it. It will only combine it with other mods when you tell it to combine them.
# It doesn't do unnecessary things, part 2. When you merge/combine mods, it only recombines those files from the mods you've changed since your last combo.
# It merges any given file faster than BCML can merge the same file.
# It makes mods more compatible than before, part 1. It merges more file types.
# It makes mods more compatible than before, part 2. It fixes merging for several file types that BCML had errors with.
# It generates proper RSTB entries for all assets, resulting in no crashes or panic blood moons related to file size. (Some panic blood moons may remain if you use certain mods that increase the system load by a large amount, but even these mods will be more stable with UKMM)
# It supports dumps as WUA files if you're using Cemu. (The hope is to also add support for NSP and XCI files with the Switch version, but those still can't be read yet)
# It is a lot more strict with the files it accepts than BCML is, which means that you are far less likely to see an infinite loading screen or crash.
# When something goes wrong, it gives the list of things it was doing in a way that is mostly readable by a human, instead of just dumping a bunch of code on you.
# If English isn't your native language, it (probably) has localization for your language, so that you can understand its UI better.
This list is not exhaustive, but it's long enough that the question is probably sufficiently answered.


===UKMM won't run on Linux!===
==== But I found a bunch of tutorials for BCML! ====
glibc recently updated, which caused a whole big headache since we can't build against older versions. If you're on a system where you can upgrade, then perform a full system upgrade. (You probably want to do that periodically anyway) UKMM should work just fine after that.
Not a question. Also, that's because BCML ''needed'' them, because it was difficult to install and set up.


If you're on Steam Deck, you're kinda outta luck, since steamOS uses a static distro of Arch Linux, so it can't upgrade. You can build the program on your Steam Deck using the instructions in the installation section, or use Wine to run the Windows version, or use a different computer.
=== Dump-Related Questions ===


===Do I really need a game dump?===
==== Do I really need a game dump? ====
Yes.
Yes.


===Do I REAAAAAALLY need a game dump???===
==== Do I REAAAAAALLY need a game dump??? ====
Still yes.
Still yes.


===Why do I need a game dump?===
==== Why do I need a game dump? ====
BotW stores almost all of its files inside archives. Any given file you can look at using your file explorer will most likely contain dozens of files or more, each of which can contain hundreds of parameters inside it.
BotW stores almost all of its files inside archives. Any given file you can look at using your file explorer will most likely contain dozens of files or more, each of which can contain hundreds of parameters inside it.


Line 229: Line 253:
There is no functional way around this. Every single mod manager does this on ''some'' level. Cyberpunk 2077 mods must be merged with game files. No Man's Sky mods must be merged into game files. Even Bethesda plugins contain only changes, which their games merge directly. Any games in the Unreal Engine do this with pak files, as well. There are only 2 reasons BotW is harder than any of these other games: it doesn't have an internal mechanism for merging, and it is normally on a console so there is no specific location on your computer where the tool can expect to find it.
There is no functional way around this. Every single mod manager does this on ''some'' level. Cyberpunk 2077 mods must be merged with game files. No Man's Sky mods must be merged into game files. Even Bethesda plugins contain only changes, which their games merge directly. Any games in the Unreal Engine do this with pak files, as well. There are only 2 reasons BotW is harder than any of these other games: it doesn't have an internal mechanism for merging, and it is normally on a console so there is no specific location on your computer where the tool can expect to find it.


===Where is my game dump?===
==== Where is my game dump? ====
I don't know. Nobody other than you knows. The guide gives possible locations where it can be found, but at the end of the day, you're the one who put it on your computer, so you're the one who knows where it is.
I don't know. Nobody other than you knows. The guide gives possible locations where it can be found, but at the end of the day, you're the one who put it on your computer, so you're the one who knows where it is.


===But I really don't know where my game dump is!===
==== But I really don't know where my game dump is! ====
Shouldn't be that hard to find, considering you chose exactly where, on your computer, it went when you dumped it. The only ''real'' reason for you not to know where the dump is, is if you pirated it. And piracy is not supported, so good luck!
Not a question. But it shouldn't be that hard to find, considering you chose exactly where, on your computer, it went when you dumped it. The only ''real'' reason for you not to know where the dump is, is if you pirated it. And piracy is not supported, so good luck!
 
=== General UKMM Questions ===


===Why aren't all BNPs compatible?===
==== What's the difference between merge/Apply and Deploy? ====
"Apply" and "merge" (or, "applying the merge") both mean to take the mods you have installed and combine them into one single mod. "Deploy" means to take the combined files and put them in the output folder.
 
UKMM splits these two concepts for multiple reasons. Maybe you want to merge a new set of mods and make sure there are no merge errors before you overwrite your deployed files. Maybe you have your output folder set to your SD card and want to merge while you look for your SD card, then plug it in to deploy. There are many reasons you might want these two operations separated.
 
If you don't want the operations separated, turn the Auto Deploy setting on, and it will always deploy right after merging (similar to what BCML did)
 
==== Why don't my mods show up in my emulator after deploying? ====
Make sure you're using the most up to date version. Go back up to [[Help:Tools/UKMM#Install|the installation section]] and make sure you've followed the directions correctly.
 
Make sure your deploy folder is set correctly. Go back up to [[Help:Tools/UKMM#Deployment|the deployment section]] and make sure you've followed the directions correctly.
 
If your mods still don't show up in your emulator, make sure that the location they're being deployed to isn't managed by OneDrive. It will delete them because it sucks. Consider uninstalling OneDrive, but at the very least, you'll need to tell it not to manage where UKMM deploys to.
 
==== Why aren't all BNPs compatible? ====
Some BNPs were made for BCML by directly editing log files, or by adding files to a game dump before generating the BNPs. Neither of these things were ever supported for BCML, and only worked by accident. Work is in progress to fix this in UKMM, but until then, certain BNPs cannot be installed with UKMM. If the mod has a regular graphic pack or loose file version, install that instead. Otherwise, bug the mod author about making their mods correctly.
Some BNPs were made for BCML by directly editing log files, or by adding files to a game dump before generating the BNPs. Neither of these things were ever supported for BCML, and only worked by accident. Work is in progress to fix this in UKMM, but until then, certain BNPs cannot be installed with UKMM. If the mod has a regular graphic pack or loose file version, install that instead. Otherwise, bug the mod author about making their mods correctly.


===Why can't UKMM detect my dump paths for consoles/Yuzu/Ryujinx?===
==== Why can't UKMM detect my dump paths for consoles? ====
When you dump your game files to your PC, they go wherever you put them. There's no single location for it, so UKMM can't find it unless it scours the entirety of your computer (which would take forever and still probably not work).
When you dump your game files to your PC, they go wherever you put them. There's no single location for it, so UKMM can't find it unless it scours the entirety of your computer (which would take forever and still probably not work).


==== Why can't UKMM detect my dump paths for Yuzu/Ryujinx? ====
Yuzu and Ryujinx don't use loose files to play the game, like Cemu does. They use XCI, NSP, or whatever other format, and UKMM can't read those, because there is no library for it. So UKMM could scan your Yuzu/Ryujinx settings for where your game/update/dlc archives are, but it wouldn't be able to do anything with them.
Yuzu and Ryujinx don't use loose files to play the game, like Cemu does. They use XCI, NSP, or whatever other format, and UKMM can't read those, because there is no library for it. So UKMM could scan your Yuzu/Ryujinx settings for where your game/update/dlc archives are, but it wouldn't be able to do anything with them.


===Why does UKMM say "no platform for update"?===
==== Why is UKMM so hard to use? ====
It can't detect what operating system you're using, in order to determine which version of the executable to download. Support for this feature is ongoing. You can just download the new version manually, from the link above in the [[#Prebuilt_program]] section.
 
===Why is UKMM so hard to use?===
We've received this feedback quite a bit, but nobody has ever been able to explain exactly ''what'' is hard to use about it, so we've never had any idea what to fix. If you have concrete suggestions about how to make it easier to use, please tell us [https://discord.gg/vPzgy5S on the discord].
We've received this feedback quite a bit, but nobody has ever been able to explain exactly ''what'' is hard to use about it, so we've never had any idea what to fix. If you have concrete suggestions about how to make it easier to use, please tell us [https://discord.gg/vPzgy5S on the discord].


===UKMM's UI sucks! It makes me want to kill my mother!===
==== UKMM's UI sucks! It makes me want to kill my mother! ====
Believe it or not, yes, this is ''actual'' feedback we've received.
Believe it or not, yes, this is ''actual'' feedback we've received.


BCML's UI was based on React, a JavaScript UI framework designed for websites. UKMM's UI is based on egui, a functional UI framework designed for utilitarian programs. UKMM will likely never look as flashy as BCML did. Instead, it will look much like most other mod managers and computer programs do. We're sorry, but we take no responsibility for any harm that comes to any mothers.
BCML's UI was based on React, a JavaScript UI framework designed for websites. UKMM's UI is based on egui, a functional UI framework designed for utilitarian programs. UKMM will likely never look as flashy as BCML did. Instead, it will look much like most other mod managers and computer programs do. We're sorry, but we take no responsibility for any harm that comes to any mothers.


===Why did you write this program in Rust? Rust is the product of Lovecraftian madmen!===
==== Why did you write this program in Rust? Rust is the product of Lovecraftian madmen! ====
Yes, this was also actual feedback.
Yes, this was also actual feedback.


Rust is a fairly fast and easy-to-use language that is based heavily on C++, which a lot of the code libraries we needed to use were written in, so we could access the C++ code easily. C# was another choice, but it would have been more difficult to use existing code libraries.
Rust is a fairly fast and easy-to-use language that is based heavily on C++, which a lot of the code libraries we needed to use were written in, so we could access the C++ code easily. C# was another choice, but it would have been more difficult to use existing code libraries.
=== Error-Related Questions ===
==== Why is it failing to install BNPs? ====
What you're seeing is the least-specific thing. It's the equivalent of UKMM saying "something went wrong." In order to find out what actually ''caused'' it, you'll need to expand the details by clicking on the little arrow next to the word Details.
==== Why can't it find files in my dumps? ====
Your dump paths may be set wrong. Go back up to [[Help:Tools/UKMM#Game Dump|the game dump section]] and make sure you've followed the directions correctly. Notably, on Wii U: Base Game and Update paths should end in <code>/content</code> and DLC path should end in <code>/content/0010</code>.
If you're absolutely sure your game dumps are set right, check to make sure your dumps haven't been corrupted somehow. If the file UKMM claims is missing, really is missing, then you may have to dump your game again.
If you've checked both of these things and made sure they're correct, then it's possible that the mod has corrupted files in it, which caused UKMM to write down that they exist, but was unable to open them to see what it needed to do with them. There isn't much that can be done about this: if a file is corrupted in a way that UKMM wants to read it, but can't, then the game won't be able to read it either. The mod will need to be fixed. (List of known mods this applies to: Hyrule Rebalance v8. There may be others)
==== What does "game flag missing key" mean? ====
The mod was made wrong.
A "game flag" is something the game uses to store data when you leave, for example either walking away in-game or turning off the game entirely. If a game flag is missing something, it won't work properly.
==== Why does it say "no platform for update"? ====
It can't detect what operating system you're using, in order to determine which version of the executable to download. Support for this feature is ongoing. You can just download the new version manually, from the link above in the [[#Prebuilt_program]] section.