Welcome, modders! This page is intended to be a collection of useful information for anybody who wants to create mods. If you want to simply use other people's mods, see [[Help:Playing with mods]].
Welcome, modders! This page is intended to be a collection of useful information for anybody who wants to create mods. If you want to simply use other people's mods, see [[Help:Playing with mods]].
<div class="toclimit-3">__TOC__</div>
== Getting set up ==
== Getting set up ==
To make mods, you'll need to start by dumping the unedited game files from your copy of BotW.
<br>
* [[Help:Playing with mods#Wii U/Cemu|Dumping the game files (Wii U)]]
{{linkbox|title=[[help:Dumping games|Dumping the game files]]|text=To make mods, you'll need to start by dumping the unedited game files from your copy of BotW.}}
* [[Help:Dumping games|Dumping the game files (Switch)]]
{{linkbox|title=[[help:Setting up tools|Setting up tools]]|text=Since BotW uses a lot of Nintendo's own file formats, you'll need tools to be able to edit them.}}
== Files, Tools and Tutorials ==
Since BotW uses a lot of Nintendo's own file formats, you'll need tools to be able to edit them. To use leoetlino's tools, you need to install the latest version of Python (64 bit version), and tick the "Add to PATH" / "Add to environment variables" box in the installer. Then, to install the tool, run <code>pip install TOOL_NAME</code> in the command line.
If you're not sure which tool to use on a file, search for its extension on this wiki to find what file format that extension is used for.
=== Yaz0 compression ===
Many files in the game are compressed with [[Yaz0]]. Compressed files generally have the letter <code>s</code> prefixed to their file extension.
The recommended tool for manipulating these files is [[Help:Tools/wszst|wszst]].
{{tool guide|tool=wszst}}
=== SARC archives ===
[[SARC]] archives contain collections of other files and folders, like .zip folders. Unpack, edit and re-pack them with [[help:tools/sarc|sarc]].
{{tool guide|tool=sarc}}
=== BYML files ===
[[BYML]] files contain game parameters. Convert them to an editable format (and back) with leoetlino's [https://pypi.org/project/byml/ <code>byml</code> tool]. This tool automatically decompresses Yaz0-encoded files, and re-compresses them if the extension starts with an <code>s</code>.
* <code>yml_to_byml [-b] INPUT_FILE.yml OUTPUT_FILE.sbyml</code> (Use <code>-b</code> for Wii U only).
=== AAMP files ===
[[AAMP]] files also contain game parameters. Convert them to an editable format (and back) with leoetlino's [https://pypi.org/project/aamp/ <code>aamp</code> tool]. Unlike most other files, AAMP files are exactly the same on both Wii U and Switch.
[[BFRES]] files contain the game's models and textures. Tutorials on how to edit these for Wii U can be found in [https://drive.google.com/drive/folders/1Z1_A3w0VvPHp22H_Yh_dSdzI5hr4OAv9 Fooni's Tutorials].
* <code>.Tex2.sbfres</code> files contain mipmaps for textures (Wii U). Since we can't edit these on Wii U yet, they need to be disabled.
* <code>.Tex.sbfres</code> files contain both textures and mipmaps (Switch). Unlike on Wii U, mipmaps don't cause any problems here.
== Rules ==
== Rules ==
Revision as of 20:05, 15 October 2018
Welcome, modders! This page is intended to be a collection of useful information for anybody who wants to create mods. If you want to simply use other people's mods, see Help:Using mods.
Since BotW uses a lot of Nintendo's own file formats, you'll need tools to be able to edit them.
Rules
The RSTB file
The file ResourceSizeTable.product.rsizetable (referred to as the RSTB file) contains a list of size limits for almost every file in the game (calculated from the non-Yaz0-compressed file sizes). If you edit a file to make its filesize bigger, you'll need to edit this file to prevent errors. For details, see Help:Editing the RSTB.
File names and caching
The game assumes that any 2 files with the exact same filename also have the exact same contents. If you don't follow this rule when editing files, the game might load the wrong version of the file, leading to errors.