Help:Text modding

From ZeldaMods (Breath of the Wild)
Revision as of 19:44, 1 August 2022 by Lisa-wolfgang (talk | contribs) (Add Text modding page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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:

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