Help:Adding items: Difference between revisions

Jump to navigation Jump to search
m
Normalizing header names
imported>Ginger
m (Fixed image formatting for mobile)
imported>Ginger
m (Normalizing header names)
(2 intermediate revisions by the same user not shown)
Line 11: Line 11:
* [https://github.com/KillzXGaming/Switch-Toolbox/releases Switch Toolbox]
* [https://github.com/KillzXGaming/Switch-Toolbox/releases Switch Toolbox]
* BotW Duplicator Tools {{Install py package help|package=botw-duplicator-tools}}
* BotW Duplicator Tools {{Install py package help|package=botw-duplicator-tools}}
* [https://github.com/polarbunny/msyt-tools/releases/latest msyt-tools] if you'd rather use your own editor, or [https://github.com/IcySon55/Kuriimu/releases/latest Kuriimu] if you'd rather use a GUI
* [https://gitlab.com/jkcclemens/msyt/ msyt], [https://github.com/polarbunny/msyt-tools/releases/latest msyt-tools], [https://github.com/IcySon55/3DLandMSBTeditor/releases MSBT Editor], or [https://github.com/IcySon55/Kuriimu/releases/latest Kuriimu]


== Tutorial ==
== Tutorial ==
Line 48: Line 48:
Note that these names are case-sensitive.
Note that these names are case-sensitive.


=== Create the actor ===
=== Creating the actor ===
First, figure out what item (that already exists in game) behaves closest to your new item. Find the <code>sbactorpack</code> file for that item, and copy it to <code>content\Actor\Pack</code>. You will find the original file in your dumped UPDATE files (not the base game files), in the same location. (<code>content\Actor\Pack</code>) Make sure you copy it, and don't move the original.
First, figure out what item (that already exists in game) behaves closest to your new item. Find the <code>sbactorpack</code> file for that item, and copy it to <code>content\Actor\Pack</code>. You will find the original file in your dumped UPDATE files (not the base game files), in the same location. (<code>content\Actor\Pack</code>) Make sure you copy it, and don't move the original.


==== Unpack the actor pack ====
==== Unpacking the actor pack ====
Not every file in the actor pack will need to be edited, and there are multiple ways to obtain the file from the actor pack. Any of the following three ways should work. You need only use one method. If one doesn't work for you, try another one. You will be editing any file that contains the actor name as its file name, or contains that actor name inside it. For most actors, that means the files with file extensions <code>bxml</code>, <code>bmodellist</code>, <code>bgparamlist</code>, and <code>bphysics</code>. If the item is craftable, you will also need to change the file with file extension <code>brecipe</code>. If the actor has physics, you will also need to change the files with file extensions <code>bphyssb</code> and <code>hkcl</code>. Other actor types may have additional files to change, so look thoroughly.
Not every file in the actor pack will need to be edited, and there are multiple ways to obtain the file from the actor pack. Any of the following three ways should work. You need only use one method. If one doesn't work for you, try another one. You will be editing any file that contains the actor name as its file name, or contains that actor name inside it. For most actors, that means the files with file extensions <code>bxml</code>, <code>bmodellist</code>, <code>bgparamlist</code>, and <code>bphysics</code>. If the item is craftable, you will also need to change the file with file extension <code>brecipe</code>. If the actor has physics, you will also need to change the files with file extensions <code>bphyssb</code> and <code>hkcl</code>. Other actor types may have additional files to change, so look thoroughly.


===== Using Switch Toolbox =====
===== Using Switch Toolbox =====
Open Switch Toolbox, and then open the actor pack file in it. Expand the folders on the left side to find the files you need to edit, right click on them, and select Export Raw Data To File Location. You can then find the files in the same folder as the actor pack. Then, open a Powershell window in that folder, and use the command <code>byml_to_yml [FileName].[FileExtension] [FileName].[FileExtension].yml</code> for each file you extracted. Then open the files in the editor of your choice.
Open Switch Toolbox, and then open the actor pack file in it. Expand the folders on the left side to find the files you need to edit, right click on them, and select Export Raw Data To File Location. You can then find the files in the same folder as the actor pack. Then, open a Powershell window in that folder, and use the command <code>aamp [FileName].[FileExtension] [FileName].[FileExtension].yml</code> for each file you extracted. Then open the files in the editor of your choice.


===== Using Wild Bits =====
===== Using Wild Bits =====
Line 61: Line 61:


===== Using <code>sarc</code> =====
===== Using <code>sarc</code> =====
Open Powershell window in the folder containing the actor pack. Use the command <code>sarc extract [FileName].sbactorpack</code>. This will create a new folder with all of the individual files. For each file you modify, you will need to open another Powershell window in that folder and use the command <code>byml_to_yml [FileName].[FileExtension] !!.yml</code>. Then open the files in the editor of your choice.
Open Powershell window in the folder containing the actor pack. Use the command <code>sarc extract [FileName].sbactorpack</code>. This will create a new folder with all of the individual files. For each file you modify, you will need to open another Powershell window in that folder and use the command <code>aamp [FileName].[FileExtension] !!.yml</code>. Then open the files in the editor of your choice.


==== Editing the actor pack files ====
==== Editing the actor pack files ====
Line 94: Line 94:
Once you've made your changes, '''make sure to save'''.
Once you've made your changes, '''make sure to save'''.


==== Pack the actor pack ====
==== Packing the actor pack ====
Once all the edits have been made, you are ready to put everything back into the actor pack. As with unpacking it, each method has its own way of packing it again.
Once all the edits have been made, you are ready to put everything back into the actor pack. As with unpacking it, each method has its own way of packing it again.


===== Using Switch Toolbox =====
===== Using Switch Toolbox =====
First you will need to convert the text actor files back to their corresponding types. Open a Powershell window in the folder that contains the files you changed, and use the command <code>yml_to_byml [FileName].[FileExtension].yml [FileName].[FileExtension]</code> for each file you extracted. '''If you are modding for WiiU or Cemu, the command is, instead, <code>yml_to_byml -b [FileName].[FileExtension].yml [FileName].[FileExtension]</code>'''
First you will need to convert the text actor files back to their corresponding types. Open a Powershell window in the folder that contains the files you changed, and use the command <code>aamp [FileName].[FileExtension].yml [FileName].[FileExtension]</code> for each file you extracted.


Open the actor pack in Switch Toolbox again. Switch Toolbox is kind of wonky, and doesn't like replacing data for existing files, but it can import new data just fine. So, for every file you're going to add back into the actor pack, you will delete the original file, then right-click on the folder that contained it, and select to import the new file. Then click to save the file. Make sure you change the name of the file to the new actor name! You will be asked to Yaz0 compress the file. Click yes. And now you're done.
Open the actor pack in Switch Toolbox again. Switch Toolbox is kind of wonky, and doesn't like replacing data for existing files, but it can import new data just fine. So, for every file you're going to add back into the actor pack, you will delete the original file, then right-click on the folder that contained it, and select to import the new file. Then click to save the file. Make sure you change the name of the file to the new actor name! You will be asked to Yaz0 compress the file. Click yes. And now you're done.
Line 106: Line 106:


===== Using <code>sarc</code> =====
===== Using <code>sarc</code> =====
First, convert the text actor files back to their corresponding types. Open a Powershell window in the folder that contains the files you changed, and use the command <code>yml_to_byml [FileName].yml !!.[FileExtension]</code> for each file you extracted. '''If you are modding for WiiU or Cemu, the command is, instead, <code>yml_to_byml -b [FileName].yml !!.[FileExtension]</code>'''. Once you have converted a yml file back to its original file type, make sure you delete the yml file. If you do not, it will be packed into the actor pack and that will cause errors and crashes.
First, convert the text actor files back to their corresponding types. Open a Powershell window in the folder that contains the files you changed, and use the command <code>aamp [FileName].yml !!.[FileExtension]</code> for each file you extracted. Once you have converted a yml file back to its original file type, make sure you delete the yml file. If you do not, it will be packed into the actor pack and that will cause errors and crashes.


Once you have converted all of the files back to their original types and deleted all the yml files, return to the <code>content\Actor\Pack</code> folder of your mod, and open another Powershell window, then pack everything back into the actor pack with the command <code>sarc create [FolderName] [FileName].sbactorpack</code>. '''If you are modding for WiiU or Cemu, the command is, instead, <code>sarc create [FolderName] [FileName].sbactorpack -b</code>'''. Once you have done so, make sure you change the name of the actor pack to the new actor name (you can also just use the new actor name as the FileName in the Powershell command). After that, make sure you delete the folder of un-sarc'ed actor files, and the old actor pack, if applicable. And you are now done.
Once you have converted all of the files back to their original types and deleted all the yml files, return to the <code>content\Actor\Pack</code> folder of your mod, and open another Powershell window, then pack everything back into the actor pack with the command <code>sarc create [FolderName] [FileName].sbactorpack</code>. '''If you are modding for WiiU or Cemu, the command is, instead, <code>sarc create [FolderName] [FileName].sbactorpack -b</code>'''. Once you have done so, make sure you change the name of the actor pack to the new actor name (you can also just use the new actor name as the FileName in the Powershell command). After that, make sure you delete the folder of un-sarc'ed actor files, and the old actor pack, if applicable. And you are now done.


=== Add the actor info to the ActorInfo.product file ===
=== Adding the actor info to the ActorInfo.product file ===
The previous step saw you creating the actual actor. This step is for creating the actor metadata that the game uses so that it knows your new actor exists. It also stores most data that appears in menus like the pause menu, crafting menu, or store menus. There are two main ways to do this, but first we need to copy the file so we can edit it. Find the original ActorInfo.product.sbyml file in your dumped UPDATE files (not the base game files), in <code>content\Actor</code>, and copy it to the same place in your mod's files. (<code>content\Actor</code>) Make sure you copy it, and don't move the original.
The previous step saw you creating the actual actor. This step is for creating the actor metadata that the game uses so that it knows your new actor exists. It also stores most data that appears in menus like the pause menu, crafting menu, or store menus. There are two main ways to do this, but first we need to copy the file so we can edit it. Find the original ActorInfo.product.sbyml file in your dumped UPDATE files (not the base game files), in <code>content\Actor</code>, and copy it to the same place in your mod's files. (<code>content\Actor</code>) Make sure you copy it, and don't move the original.


Line 167: Line 167:


=== Creating an inventory name and description ===
=== Creating an inventory name and description ===
There are many ways to add text to the game, some work better for single items, some work better for large-scale mods that edit lots of text. There are three main ways to edit the text files of the game: by converting them to text with <code>msyt</code> or <code>msyt-tools</code>, by editing them "directly" with Wild Bits, or by using a GUI like MSBT Editor or Kuriimu.
==== Using <code>msyt</code> or <code>msyt-tools</code> ====
{{Empty section}}
{{Empty section}}
==== Using Wild Bits ====
{{Empty section}}
==== Using MSBT Editor or Kuriimu ====
First, you will need to copy the text archive to your files, so navigate to the <code>content\Pack</code> folder of the your game's UPDATE files. There will be several <code>Bootup_[XXxx].pack</code> files here. Each one is for a different region and language. For example, USen is for the US version, English language, while EUes is for the European version, Spanish language. Find the pack for the region/language you want to edit, and copy it to your mod's <code>content\Pack</code> folder.
Next, you'll need to extract it, so open a Powershell window and run the command <code>sarc extract Bootup_[XXxx].pack</code>. Go inside the newly created <code>Bootup_[XXxx]/Message</code> folder to find a file called <code>Msg_[XXxx].product.ssarc</code>. Open another Powershell window and use the command <code>sarc extract Msg_[XXxx].product.ssarc</code> to extract it, as well, then go into the new <code>Msg_[XXxx].product\ActorType</code> folder.
There are many <code>msbt</code> files here, and all of them have text data for the game. Find the one that fits your item type, and open it in MSBT Editor or Kuriimu. These programs both act very similarly, and the directions here will work for either program.
Once you've opened the <code>msbt</code> file, click on the green plus to add a new piece of text to the list, (in MSBT Editor, you'll type the name in the bar next to the plus first, while in Kuriimu you'll click the plus first and type the name in second) and name it <code>[ActorName]_Name</code>. Do it again, and this time, call it <code>[ActorName]_Desc</code>. Name is going to be for the item's name as it is shown in menus, and Desc is going to be for the item's descriptions. If your item is something that would appear in the Shiekah Slate album, so that you could take pictures of it and track it on the map with the Sheikah Radar, also add an <code>[ActorName]_PictureBook</code> and copy the text you made for <code>[ActorName]_Desc</code> into it. When you're done, File -> Save.
You'll now need to pack all the files back up, so go back to the <code>content\Pack\Bootup_[XXxx]\Message</code> folder, open a Powershell window and run the command <code>sarc create Msg_[XXxx].product Msg_[XXxx].product.ssarc</code>. '''If you are modding for WiiU or Cemu, the command is, instead,<code>sarc create Msg_[XXxx].product Msg_[XXxx].product.ssarc -b</code>'''. Once it has finished packing up the file, delete the <code>Msg_[XXxx].product</code> folder.
Then, go back to <code>content\Pack</code>, open another Powershell window and run the command <code>sarc create Bootup_[XXxx] Bootup_[XXxx].pack</code>. '''If you are modding for WiiU or Cemu, the command is, instead,<code>sarc create Bootup_[XXxx] Bootup_[XXxx].pack -b</code>'''. Once it has finished, delete the <code>Bootup_[XXxx]</code> folder. And now you're done with the menu text portion of your item.


=== Creating the save game data flags ===
=== Creating the save game data flags ===
Anonymous user

Navigation menu