Help:Text modding
Breath of the Wild uses a very flexible system for implementing the large majority of text features in the game, including but not limited to dialogue, signboards, quest logs, item descriptions, and menus. This guide will explain how to utilize this system.
Prerequisites
There are two recommended toolsets for modding text:
- Wild Bits
- Hyrule Builder and a text editor that supports YAML
Accessing the files
All text in the game is located inside the content/Pack/Bootup_xxXX.pack
files in what are called message archives. The xxXX
is the locale of the message contents. If you want your mod to support multiple locales, you'll need to make your text changes in every locale file you want to support.
Copy the message pack(s) you want to edit into your mod folder, then either open them with Wild Bits or unbuild your mod folder with Hyrule Builder. (If you use the latter, the new location of the message pack(s) will be content/Message
.)
Read about message archives for more information on what the subfolders are for.
Editing the files
If you're modding text for an NPC, signboard, item, etc. that already exists, simply find and open the corresponding file. If you're creating a brand-new NPC, signboard, or quest, you'll need to create a new file inside of the corresponding folder. The easiest way to do this is by copying an existing message file in the same folder and deleting the entirety of the entries
section.
Message files use a key-value system, which marks different strings of text with a unique identifier. When creating new keys, the identifiers can be whatever you want, but ideally, you should make them easy to remember and be consistent. (e.g. Talk01, Talk02) In the game, the contents
section is played back top-to-bottom.
Here's an example of what a single key looks like in MSYT:
talk65:
attributes: Npc_AncientDoctor
contents:
- control:
kind: sound
unknown:
- 7
- 0
- text: "This is the "
- control:
kind: set_colour
colour: blue
- text: Hateno Ancient Tech Lab
- control:
kind: reset_colour
- text: "!"
- control:
kind: pause
length: long
- text: "\nClick, snap!"
Text nodes
A text node is a basic container for text. When putting spaces or line breaks at the beginning or end of a text node, it must be surrounded by double-quotes.
Control nodes
A control node tells the game to do something with the text or NPC, including playing sounds. Read https://github.com/polarbunny/msyt-tools/blob/master/docs/notes.txt for information on all the available control nodes.
Sounds
A sound-type control node looks like this:
- control:
kind: sound
unknown:
- 7
- 0
The numbers in unknown
are not fully understood. We do know that with the bottom number set to 0, certain values of the top number have the following behaviors (WIP):
0 | |||
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 |