Pre-Compilation
Compilation itself is similar to Installation as you just configure some paths and start the process, sit back and wait for Wabbajack to finish. Wabbajack requires a rather specific MO2 setup and you might have to change your workflow when modding for a WJ Modlist.
Everything comes from somewhere
Wabbajack is an automated Modlist Installer that can reproduce an entire modding setup on another machine without bundling any assets or re-distributing any mods.
The focus is on without bundling any assets or re-distributing any mods. This means that Wabbajack needs to know where every single file came from. The most common origin is your downloads folder.
If you take a quick look inside your MO2 downloads folder you will find 2 types of files:
- The actual download (some archive)
- A
.meta
file that has the same name the archive its for
You might have SkyUI_5_1-3863-5-1.7z
and SkyUI_5_1-3863-5-1.7z.meta
.
These .meta
files are created by MO2 and typically get created when you click the MOD MANAGER DOWNLOAD button on Nexus Mods. If you open the .meta
file you will find some metadata for the accompanied archive, the most important entries being fileID
, modID
and gameName
.
Wabbajack will use the MO2 .meta
files to find out where the archive came from using the Nexus Mods API. This means that you should use the MOD MANAGER DOWNLOAD button on Nexus Mods or you have to create those .meta
files yourself (you can also use the Query Info context menu option in the MO2 Downloads tab. This will populate the metadata of the selected archive).
For more information about .meta
files, support sites and how to actually create them, see the Meta Files section.
Mod Organizer 2
You now know about .meta
files and understand that every file has to come from somewhere, this also means that you also need to create .meta
files for MO2 and files in your game folder. We recommend using the MO2 GitHub Releases instead of the ones you find on the Nexus.
Patches
Reading all the previous section you might wonder if Wabbajack is able to detect modified files and how it deals with them. Wabbajack can't include the modified file so instead we just include the difference between the original and modified version.
This basically means original + patch = final
and we only include patch
in the .wabbajack
file which, by itself, is just gibberish and completely useless without the original file. This allows us to distribute arbitrary changes without violating copyrights as we do not copy copyrighted material. Instead, we copy instructions on how to modify the copyrighted material.
You don't even have to tell Wabbajack that a specific file was modified, that would be way too much work. Instead Wabbajack will figure out which file got modified and create a binary patch. The modified file can be anything from some modified settings file to a patched plugin or optimized mesh/texture.
BSA Decomposition
Wabbajack is able to analyse .bsa
and .ba2
files and can also create those. This means that any changes made to a BSA/BA2 are copied on the end-user's installation, including the creation of new BSAs or the modification of existing ones. Unpacking, modifying, and then repacking a BSA is possible and those modifications will carry over to the final install. Similarly, creation of new BSAs will be replicated. Wabbajack does not analyze the BSA as a whole - instead it will look inside the BSA, hash the files within, and compare those to their original sources. It will then construct the BSA if new or reconstruct it if modified as necessary. Note that with particularly large BSAs this building and rebuilding process can take a significant amount of time on the user's machine depending on the user's hardware specifications.
Merges
Similar to BSAs, Wabbajack is able to analyze and create merged mods. Wabbajack will source the necessary files to create the merge from aforementioned sources of mods and then rebuild the merge on the user's end. Generally it is recommended to tag merges with the WABBAJACK_NOMATCH_INCLUDE
flag to ensure that any files generated by the merging process are also carried over to the user. Wabbajack does not by default include the files and information necessary to build or rebuild the merge in the program used to build the merge originally, only the merge itself will be installed.
Minimal Downloads Folder
Wabbajack will match files to determine where they came from. This can sometimes not work as intended and Wabbajack might end up matching files against the wrong archive. This can happen when you have multiple versions of the same mod in your downloads folder. It is highly recommended that you delete unused downloads and previous versions of mods so that Wabbajack doesn't end up mis-matching files and the end user ends up downloading more than they need.
Configurations superseded by compiler settings inside of Wabbajack
The following options can still be used, to guarantee backwards compatibility for compiling lists made for Wabbajack 2.5 with Wabbajack 3.0 but are as the title implies superseded by compiler settings that can be changed inside of the Wabbajack app. The new way of managing this is described in Compilation-Settings.
Special Flags
There are some special cases where you want to change the default Wabbajack behavior for a specific mod. You can place the following flags in the notes or comments section of a mod to change how Wabbajack handles that mod.
Flag | Description | Notes |
---|---|---|
WABBAJACK_INCLUDE | All mod files will be inlined into the.wabbajack file | DO NOT USE ON DOWNLOADED MODS As it would result in you distributing that mod. Can lead to large .wabbajack files if used unsparingly |
WABBAJACK_NOMATCH_INCLUDE | Any unmatched files will be inlined into the.wabbajack file | Useful for custom patches or generated files |
WABBAJACK_ALWAYS_ENABLE | The mod will not be ignored by Wabbajack even if it's disabled | Wabbajack will normally ignore all mods you disabled in MO2 but there are some cases where you might want to give some choice to the end user and want to have the mod included |
WABBAJACK_ALWAYS_DISABLE | The mod will always be ignored by Wabbajack | Useful if you don't want some mods included in the Modlist but still want to keep it active in your own setup |
Tagfile Tags
You can create an empty tagfile
with no extention in any folder you want to apply this tags to. This is meant to be used with folders that aren't mods.
Flag/File | Description | Notes |
---|---|---|
WABBAJACK_INCLUDE | All files in this folder will be inlined into the.wabbajack file | DO NOT USE ON DOWNLOADED MODS As it would result in you distributing that mod. Can lead to large .wabbajack files if used unsparingly |
WABBAJACK_NOMATCH_INCLUDE | Any unmatched files will be inlined into the.wabbajack file | Useful for custom patches or generated files |
WABBAJACK_IGNORE | All files in this folder will be ignored by Wabbajack and therefore not be put into into the.wabbajack file. | Useful for tools or other things outside a mod you don't want/need reproduced on a users machine. Handle with care since excluded stuff can potentially break a setup.* |
WABBAJACK_INCLUDE_SAVES | When this file exists Wabbajack will include your save files in the.wabbajack file. | This will remove previous savefiles when the list gets installed as an update. |
WABBAJACK_NOMATCH_INCLUDE_FILES.txt | All files listed in this file will be included in the.wabbajack file. | Every file needs to be in the same folder as the tag file. Every file need to be written into a new line. Every file needs to be added with its file extension. |
WABBAJACK_IGNORE_FILES.txt | All files listed in this file will be ignored by Wabbajack and not included in the.wabbajack file. | Every file needs to be in the same folder as the tag file. Every file need to be written into a new line. Every file needs to be added with its file extension. |
*It will finish the installation of a modlist, but the installed list might not run if you excluded a crutial part of it.
Multiple MO2 Profiles
Wabbajack will normally ignore every other profile but you might have more than one profile that should be included. In this case you can create a otherprofiles.txt
file in your main profile folder and write the names of the other profiles (1 per line) in it.
Example:
Profiles: SFW
, NSFW
(SFW
is the main profile)
contents of MO2\profiles\SFW\otherprofiles.txt
:
NSFW