<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://zeldamods.org/w_botw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tderop</id>
	<title>ZeldaMods (Breath of the Wild) - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://zeldamods.org/w_botw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tderop"/>
	<link rel="alternate" type="text/html" href="https://zeldamods.org/wiki/Special:Contributions/Tderop"/>
	<updated>2026-11-15T00:59:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12159</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12159"/>
		<updated>2026-11-06T22:02:18Z</updated>

		<summary type="html">&lt;p&gt;Tderop: Added guard up row to modifier table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 hash of the internal key&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first four bytes in each 8 byte chunk are the ID. The ID is the &#039;&#039;&#039;crc32 hash of the internal key&#039;&#039;&#039;; the internal key being the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; given to the value - defined in the &amp;lt;code&amp;gt;.bgsvdata&amp;lt;/code&amp;gt; files. For example the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; for rupees is &amp;lt;code&amp;gt;CurrentRupee&amp;lt;/code&amp;gt;, making the ID &amp;lt;code&amp;gt;588553208&amp;lt;/code&amp;gt; (s32) - represented by these four bytes &amp;lt;code&amp;gt;0x23149bf8&amp;lt;/code&amp;gt; in the raw file. The s32 data for this particular value is stored in the next four bytes of the chunk.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.g. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays, the data is also stored in sequential chunks, each with an identical ID. &lt;br /&gt;
&lt;br /&gt;
Horse names (&amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt;), for example, will take up (6 names × 16 chunks per name =) 96 chunks with the ID &amp;lt;code&amp;gt;0x7b74e117&amp;lt;/code&amp;gt; in the save file. Since horse names are stored as &amp;lt;code&amp;gt;string64_array_data&amp;lt;/code&amp;gt;, that&#039;s 64 UTF-8 bytes per name. The &amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt; array has a maximum size of &#039;&#039;&#039;six&#039;&#039;&#039; &amp;lt;code&amp;gt;string64&amp;lt;/code&amp;gt; names.  The array will always occupy (6 names × 16 chunks per name x 4 bytes per chunk =) 384 bytes of string data, alongside 384 bytes of IDs (one 4-byte ID before every 4-byte data chunk), making the entire array &#039;&#039;&#039;768 bytes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: even if the horse name has 64 characters in the save file, the name may be truncated when displayed on UI elements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Data types for &#039;&#039;&#039;value&#039;&#039;&#039; include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|GuardUp&lt;br /&gt;
|0x100&lt;br /&gt;
|-&lt;br /&gt;
|Enhanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12153</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12153"/>
		<updated>2026-10-27T14:54:15Z</updated>

		<summary type="html">&lt;p&gt;Tderop: Typo (Enchanced -&amp;gt; Enhanced)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 hash of the internal key&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first four bytes in each 8 byte chunk are the ID. The ID is the &#039;&#039;&#039;crc32 hash of the internal key&#039;&#039;&#039;; the internal key being the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; given to the value - defined in the &amp;lt;code&amp;gt;.bgsvdata&amp;lt;/code&amp;gt; files. For example the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; for rupees is &amp;lt;code&amp;gt;CurrentRupee&amp;lt;/code&amp;gt;, making the ID &amp;lt;code&amp;gt;588553208&amp;lt;/code&amp;gt; (s32) - represented by these four bytes &amp;lt;code&amp;gt;0x23149bf8&amp;lt;/code&amp;gt; in the raw file. The s32 data for this particular value is stored in the next four bytes of the chunk.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.g. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays, the data is also stored in sequential chunks, each with an identical ID. &lt;br /&gt;
&lt;br /&gt;
Horse names (&amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt;), for example, will take up (6 names × 16 chunks per name =) 96 chunks with the ID &amp;lt;code&amp;gt;0x7b74e117&amp;lt;/code&amp;gt; in the save file. Since horse names are stored as &amp;lt;code&amp;gt;string64_array_data&amp;lt;/code&amp;gt;, that&#039;s 64 UTF-8 bytes per name. The &amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt; array has a maximum size of &#039;&#039;&#039;six&#039;&#039;&#039; &amp;lt;code&amp;gt;string64&amp;lt;/code&amp;gt; names.  The array will always occupy (6 names × 16 chunks per name x 4 bytes per chunk =) 384 bytes of string data, alongside 384 bytes of IDs (one 4-byte ID before every 4-byte data chunk), making the entire array &#039;&#039;&#039;768 bytes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: even if the horse name has 64 characters in the save file, the name may be truncated when displayed on UI elements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Data types for &#039;&#039;&#039;value&#039;&#039;&#039; include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|Enhanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12020</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12020"/>
		<updated>2026-10-23T20:55:31Z</updated>

		<summary type="html">&lt;p&gt;Tderop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 hash of the internal key&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first four bytes in each 8 byte chunk are the ID. The ID is the &#039;&#039;&#039;crc32 hash of the internal key&#039;&#039;&#039;; the internal key being the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; given to the value - defined in the &amp;lt;code&amp;gt;.bgsvdata&amp;lt;/code&amp;gt; files. For example the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; for rupees is &amp;lt;code&amp;gt;CurrentRupee&amp;lt;/code&amp;gt;, making the ID &amp;lt;code&amp;gt;588553208&amp;lt;/code&amp;gt; (s32) - represented by these four bytes &amp;lt;code&amp;gt;0x23149bf8&amp;lt;/code&amp;gt; in the raw file. The s32 data for this particular value is stored in the next four bytes of the chunk.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.g. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays, the data is also stored in sequential chunks, each with an identical ID. &lt;br /&gt;
&lt;br /&gt;
Horse names (&amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt;), for example, will take up (6 names × 16 chunks per name =) 96 chunks with the ID &amp;lt;code&amp;gt;0x7b74e117&amp;lt;/code&amp;gt; in the save file. Since horse names are stored as &amp;lt;code&amp;gt;string64_array_data&amp;lt;/code&amp;gt;, that&#039;s 64 UTF-8 bytes per name. The &amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt; array has a maximum size of &#039;&#039;&#039;six&#039;&#039;&#039; &amp;lt;code&amp;gt;string64&amp;lt;/code&amp;gt; names.  The array will always occupy (6 names × 16 chunks per name x 4 bytes per chunk =) 384 bytes of string data, alongside 384 bytes of IDs (one 4-byte ID before every 4-byte data chunk), making the entire array &#039;&#039;&#039;768 bytes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: even if the horse name has 64 characters in the save file, the name may be truncated when displayed on UI elements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Data types for &#039;&#039;&#039;value&#039;&#039;&#039; include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|Enchanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12019</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=12019"/>
		<updated>2026-10-23T20:53:01Z</updated>

		<summary type="html">&lt;p&gt;Tderop: Fixed a typo (e.q -&amp;gt; e.g.) on line 105. Corrected information about horse names - each horse name is string64, not string32. Added note about horse names being truncated on in-game UI elements.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 hash of the internal key&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first four bytes in each 8 byte chunk are the ID. The ID is the &#039;&#039;&#039;crc32 hash of the internal key&#039;&#039;&#039;; the internal key being the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; given to the value - defined in the &amp;lt;code&amp;gt;.bgsvdata&amp;lt;/code&amp;gt; files. For example the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; for rupees is &amp;lt;code&amp;gt;CurrentRupee&amp;lt;/code&amp;gt;, making the ID &amp;lt;code&amp;gt;588553208&amp;lt;/code&amp;gt; (s32) - represented by these four bytes &amp;lt;code&amp;gt;0x23149bf8&amp;lt;/code&amp;gt; in the raw file. The s32 data for this particular value is stored in the next four bytes of the chunk.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.g. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays, the data is also stored in sequential chunks, each with an identical ID. &lt;br /&gt;
&lt;br /&gt;
Horse names (&amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt;), for example, will take up 96 chunks with the ID &amp;lt;code&amp;gt;0x7b74e117&amp;lt;/code&amp;gt; in the save file. Since horse names are stored as &amp;lt;code&amp;gt;string64_array_data&amp;lt;/code&amp;gt;, that&#039;s 64 UTF-8 bytes per name. The &amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt; array has a maximum size of 6 names.  The array will always occupy (6 names × 16 chunks x 4 bytes per chunk =) 384 bytes of string data, alongside 384 bytes of IDs (one 4-byte ID before every 4-byte data chunk), making the entire array &#039;&#039;&#039;768 bytes&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: even if the horse name has 64 characters in the save file, the name may be truncated when displayed on UI elements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Data types for &#039;&#039;&#039;value&#039;&#039;&#039; include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|Enchanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=11988</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=11988"/>
		<updated>2026-10-23T02:07:51Z</updated>

		<summary type="html">&lt;p&gt;Tderop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 hash of the internal key&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first four bytes in each 8 byte chunk are the ID. The ID is the &#039;&#039;&#039;crc32 hash of the internal key&#039;&#039;&#039;; the internal key being the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; given to the value - defined in the &amp;lt;code&amp;gt;.bgsvdata&amp;lt;/code&amp;gt; files. For example the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; for rupees is &amp;lt;code&amp;gt;CurrentRupee&amp;lt;/code&amp;gt;, making the ID &amp;lt;code&amp;gt;588553208&amp;lt;/code&amp;gt; (s32) - represented by these four bytes &amp;lt;code&amp;gt;0x23149bf8&amp;lt;/code&amp;gt; in the raw file. The s32 data for this particular value is stored in the next four bytes of the chunk.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.q. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays the data is also stored in sequential chunks, each with an identical ID. The horse names (&amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt;), for example, will take up 96 chunks - with the ID &amp;lt;code&amp;gt;0x7b74e117&amp;lt;/code&amp;gt; in the save file. 6 names with 16 chunks = 64 bytes for each name.&lt;br /&gt;
&lt;br /&gt;
Data types for value include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|Enchanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=11987</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=11987"/>
		<updated>2026-10-23T02:04:39Z</updated>

		<summary type="html">&lt;p&gt;Tderop: Added some information about dataName and CurrentRupee.  Specified dataName for horse names (Horse_UserName) and corrected to say 64 bytes instead of 64 characters.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 hash of the internal key&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first four bytes are the ID. The ID is the &#039;&#039;&#039;crc32 hash of the internal key&#039;&#039;&#039;; the internal key being the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; given to the value - defined in the &amp;lt;code&amp;gt;.bgsvdata&amp;lt;/code&amp;gt; files. For example the &amp;lt;code&amp;gt;dataName&amp;lt;/code&amp;gt; for rupees is &amp;lt;code&amp;gt;CurrentRupee&amp;lt;/code&amp;gt;, making the ID &amp;lt;code&amp;gt;588553208&amp;lt;/code&amp;gt; (s32) - represented by these four bytes &amp;lt;code&amp;gt;0x23149bf8&amp;lt;/code&amp;gt; in the raw file. The s32 data for this particular value is stored in the next four bytes.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.q. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays the data is also stored in sequential chunks, each with an identical ID. The horse names (&amp;lt;code&amp;gt;Horse_UserName&amp;lt;/code&amp;gt;), for example, will take up 96 chunks - with the ID &amp;lt;code&amp;gt;0x7b74e117&amp;lt;/code&amp;gt; in the save file. 6 names with 16 chunks = 64 bytes for each name.&lt;br /&gt;
&lt;br /&gt;
Data types for value include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|Enchanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=11980</id>
		<title>Save Files</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Save_Files&amp;diff=11980"/>
		<updated>2026-09-14T12:48:01Z</updated>

		<summary type="html">&lt;p&gt;Tderop: /* .sav Folder Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
BotW can store up to 9 save states per profile, 6 for normal mode (1 manual save and 5 autosaves) and 2 for master mode (1 manual save and 1 autosave).&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
The content of the save folder is structured as following:&lt;br /&gt;
&lt;br /&gt;
 0&lt;br /&gt;
     caption.jpg&lt;br /&gt;
     caption.sav&lt;br /&gt;
     game_data.sav&lt;br /&gt;
 1&lt;br /&gt;
 ...&lt;br /&gt;
 album&lt;br /&gt;
     pict_000.jpg&lt;br /&gt;
     pict_001.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 pict_book&lt;br /&gt;
     Animal_Cassowary_A.jpg&lt;br /&gt;
     Weapon_Sword_008.jpg&lt;br /&gt;
     ...&lt;br /&gt;
 tracker&lt;br /&gt;
     trackblock00.sav&lt;br /&gt;
     trackblock01.sav&lt;br /&gt;
     ...&lt;br /&gt;
 option.sav&lt;br /&gt;
&lt;br /&gt;
The numbered folders each represent one save state.&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&amp;lt;code&amp;gt;option.sav&amp;lt;/code&amp;gt; contains the settings set in the options menu (inverted camera, stick sensitivity etc.). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;option.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Album===&lt;br /&gt;
The album folder contains one JPG file for each entry in the in-game album, numbered in the order they were taken.&lt;br /&gt;
&lt;br /&gt;
===Hyrule Compendium===&lt;br /&gt;
Each JPG file in the &amp;lt;code&amp;gt;pict_book&amp;lt;/code&amp;gt; folder corresponds to one entry in the Hyrule Compendium. The name of each file is the internal name of the given item, weapon or animal. Do note that the compendium is not directly tied to a specific save state, meaning the images are shared between all saves.&lt;br /&gt;
&lt;br /&gt;
===Save State===&lt;br /&gt;
Each save state contains 3 files:&lt;br /&gt;
* caption.jpg A screenshot taken at the time of saving.&lt;br /&gt;
* caption.sav Contains a small amount of data for each save that is displayed in the save select screen (e.g. time and location). The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;caption.sav&amp;quot;&lt;br /&gt;
* game_data.sav The data for each save state. The exact data stored here corresponds to the game flags defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, where the &amp;lt;code&amp;gt;file_list&amp;lt;/code&amp;gt; array&#039;s zero-index dictionary contains the &amp;lt;code&amp;gt;file_name&amp;lt;/code&amp;gt; &amp;quot;game_data.sav&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==.sav Folder Format==&lt;br /&gt;
All data in these files is stored as little endian on Switch and as big endian on Wii U.&lt;br /&gt;
&lt;br /&gt;
A save file (with the exception of files in the tracker folder) starts with the following header:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;version&#039;&#039;&#039;: Version of the game that created the save file.&lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;marker&#039;&#039;&#039;: Always 0xFFFFFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|0x08 || 4 || &#039;&#039;&#039;unknown&#039;&#039;&#039;: Always 0x1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game version !! Save version&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 0x24E2&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 0x24EE&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.1 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.1.2 || &lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 0x2588&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 0x29C0&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.1 || 0x2A46&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.3 || 0x3EF8&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.4 || 0x3EF9&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.1 || 0x471A&lt;br /&gt;
|-&lt;br /&gt;
| 1.5.0 || 0x471B&lt;br /&gt;
|-&lt;br /&gt;
| 1.6.0 || 0x471E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data after the header is comprised of 8-byte chunks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset !! Size !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 4 || &#039;&#039;&#039;id&#039;&#039;&#039;: ID of the data being stored, crc32 of the internal key &lt;br /&gt;
|-&lt;br /&gt;
|0x04 || 4 || &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/savedataformat.ssarc///saveformat_*.bgsvdata&amp;lt;/code&amp;gt;, the game stores a mapping for each ID to the corresponding entry name. This name is then further defined in one of the files in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc//*&amp;lt;/code&amp;gt;, depending on its data type.&lt;br /&gt;
&lt;br /&gt;
Strings are stored with the maximum possible number of characters (e.q. 256 characters for strings defined in string256_data_0.bgdata) and are broken up into 4-byte parts. These are then stored in sequential chunks with the ID repeating for each chunk.&lt;br /&gt;
&lt;br /&gt;
For arrays the data is also stored in sequential chunks, each with an identical ID. The horse names for example will take up 96 chunk with the ID 0x7B74E117 in the save file, 6 names with 16 chunks (= 64 characters) for each name.&lt;br /&gt;
&lt;br /&gt;
Data types for value include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32 (int32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32 (float32)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string32 (string)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector4f&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and respective arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;bool_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;s32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;f32_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string64_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;string256_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector2f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;vector3f_array&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Value types are read as, and therefore must correspond to, the type defined in the&amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; in the key of the main byml dictionary where the id is found. In the vanilla game, this often corresponds to the name of the file, itself, but this relationship is not strict. It therefore also may not be the case for files added by mods.&lt;br /&gt;
&lt;br /&gt;
Types defined in &amp;lt;code&amp;gt;Pack/Bootup.pack//GameData/gamedata.ssarc/*&amp;lt;/code&amp;gt; that do not follow this rule are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_bool_data_*.bgdata&amp;lt;/code&amp;gt; the key is bool_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;revival_s32_data_0.bgdata&amp;lt;/code&amp;gt; the key is s32_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;code&amp;gt;string32_data_0.bgdata&amp;lt;/code&amp;gt; the key is string_data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Inventory items are stored in &amp;lt;code&amp;gt;PorchItem&amp;lt;/code&amp;gt; with a maximum of 420 internal string identifiers, e.g. &amp;lt;code&amp;gt;Weapon_Sword_023&amp;lt;/code&amp;gt;. Associated arrays of &amp;lt;code&amp;gt;PorchEquip&amp;lt;/code&amp;gt;: boolean and &amp;lt;code&amp;gt;PorchItem_Value1&amp;lt;/code&amp;gt;: int32 store if the item is equipped and its current durability * 100 or item count.  Swords, Bows and Shields also store their modifier key in &amp;lt;code&amp;gt;PorchSword_FlagSp&amp;lt;/code&amp;gt;: uint32 and modifier value &amp;lt;code&amp;gt;PorchSword_ValueSp&amp;lt;/code&amp;gt;: int32.  Similar Flag and Value exist for the Bows and Shields. &amp;lt;code&amp;gt;FlagSp&amp;lt;/code&amp;gt; modifiers can take any or all of the following values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Modifier&lt;br /&gt;
!Value&lt;br /&gt;
|-&lt;br /&gt;
|AttackUp&lt;br /&gt;
|0x1&lt;br /&gt;
|-&lt;br /&gt;
|DurabilityUp&lt;br /&gt;
|0x2&lt;br /&gt;
|-&lt;br /&gt;
|CriticalHit&lt;br /&gt;
|0x4&lt;br /&gt;
|-&lt;br /&gt;
|LongThrow&lt;br /&gt;
|0x8&lt;br /&gt;
|-&lt;br /&gt;
|MultiShot&lt;br /&gt;
|0x10&lt;br /&gt;
|-&lt;br /&gt;
|Zoom&lt;br /&gt;
|0x20&lt;br /&gt;
|-&lt;br /&gt;
|QuickShot&lt;br /&gt;
|0x40&lt;br /&gt;
|-&lt;br /&gt;
|SurfMaster&lt;br /&gt;
|0x80&lt;br /&gt;
|-&lt;br /&gt;
|Enchanced Modifer&lt;br /&gt;
|0x80000000&lt;br /&gt;
|}&lt;br /&gt;
Associated data with Cooked Items are held in &amp;lt;code&amp;gt;CookEffect0&amp;lt;/code&amp;gt;: vector2f, &amp;lt;code&amp;gt;CookEffect1&amp;lt;/code&amp;gt;: vector2f, and &amp;lt;code&amp;gt;StaminaRecover&amp;lt;/code&amp;gt;: vector2f arrays.  Values within these arrays are&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Save Key&lt;br /&gt;
!Index&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|0&lt;br /&gt;
|EffectType&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect0&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|0&lt;br /&gt;
|Cooked Item SellingPrice&lt;br /&gt;
|-&lt;br /&gt;
|CookEffect1&lt;br /&gt;
|1&lt;br /&gt;
|Never set&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|0&lt;br /&gt;
|HitPointRecover&lt;br /&gt;
|-&lt;br /&gt;
|StaminaRecover&lt;br /&gt;
|1&lt;br /&gt;
|EffectLevel&lt;br /&gt;
|}&lt;br /&gt;
Weather data with [[WorldMgr#Weather types|type data]] are found in &amp;lt;code&amp;gt;climateWeather&amp;lt;/code&amp;gt; : int32_array, &amp;lt;code&amp;gt;climateWeather2&amp;lt;/code&amp;gt;:  int32_array and &amp;lt;code&amp;gt;climateWeather3&amp;lt;/code&amp;gt; : int32_array. These values contain the weather for the next three in-game days. Arrays are 20 values in length map directly to climate values of each [[Map area]]. Each int32 value contains 6 packed [[WorldMgr#Weather types|WorldMgr]] weather types that each are 4 bits long (nibble, 0x0-0xF).  These weather types identify are for each 4 hour long period during the day.&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File_formats]]&lt;/div&gt;</summary>
		<author><name>Tderop</name></author>
	</entry>
</feed>