The Legend of Zelda: Breath of the Wild

File information

Last updated

Original upload

Created by

NiceneNerd

Uploaded by

NiceneNerd

Virus scan

Safe to use

Documentation

Readme

View as plain text

# UKMM: U-King Mod Manager

U-King Mod Manager is a tool for managing and merging mods for *The Legend of
Zelda: Breath of the Wild*. It should be considered a successor to
[BCML](https://github.com/NiceneNerd/BCML).

## Why?

Because BOTW is a fun, high quality game with a powerful engine and a fairly
robust content/engine distinction, it is in many ways the perfect game to mod.
Unfortunately, since it was designed to work on underpowered consoles,
particularly the Wii U, its ROM structure is designed more for maximum
efficiency and performance than for extensibility. Features like the [Resource
Size Table](https://zeldamods.org/wiki/Resource_system#Resource_size_table) and
large archives to handle diverse content loaded in single batches are excellent
as optimizations but make modding a more brittle and conflict-prone process.
(For more information on the many kinds of mod conflicts that tend to be
ubiquitous in BOTW using ordinary game assets, see [this reference on
ZeldaMods](https://zeldamods.org/wiki/Help:Resolving_mod_conflicts). There is
also [a post about this on
GBAtemp](https://gbatemp.net/threads/dont-use-bcml-for-switch.590409/post-10030639)
which summarizes the problem fairly concisely.)

Since BOTW mods are prone to such problems, when using more than one, they must
often be processed and merged together to ensure a stable, playable experience
(and in many cases just to get the game to boot at all). UKMM offers a powerful,
robust, and highly accurate merging process to ensure the most optimal result: a
modpack that pretty much just works.

In contrast to BCML, UKMM also tried to provide a more generally satisfying mod
management experience not just narrowly focused on successful merging, drawing
inspiration in some ways from the famous [Mod Organizer
2](https://github.com/ModOrganizer2/modorganizer).

## Setup and Use

Unlike BCML, setup is pretty much just download and unzip. For more details
consult [the Book](https://nicenenerd.github.io/ukmm/).

## Building from Source

Unlike BCML, building from source is easy.

Requirements:

- Recent *nightly* Rust toolchain (MSRV 1.60)
- A compiler that supports C++17 ()
- Modern CMake (3.12+)

Nothing else special is required. Generate a release build by running `cargo
build --release` in the root repo folder. It may take a while.

## Contributing

Issues: https://github.com/NiceneNerd/ukmm/issues

Contributions are always welcome. Some notes about the process:

- At present, some tests need to be setup manually, as they require you to have
a game dump and a Wii U mod to test on. However, all tests in the `uk-content`
package are standalone and should be pass without any setup.
- As this codebase grew is complicated ways over a period of about 8 months,
some parts might not be entirely consistent in conventions or could use
refactoring. If you work on any part of the code that could use improvement in
consistency or sustainability, please go ahead and do what seems right in your
eyes.

## License

This software is licensed under the terms of the GNU General Public License,
version 3 or later. The source is publicly available on
[GitHub](https://github.com/NiceneNerd/ukmm).