<?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=Waikuteru</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=Waikuteru"/>
	<link rel="alternate" type="text/html" href="https://zeldamods.org/wiki/Special:Contributions/Waikuteru"/>
	<updated>2026-05-18T09:10:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Water.extm&amp;diff=11588</id>
		<title>Water.extm</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Water.extm&amp;diff=11588"/>
		<updated>2022-06-25T14:29:03Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Water Map Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
[[File:5000000000.water.extm.png|alt=Generated water material map of Hyrule Main Field|thumb|Generated water material map of Hyrule Main Field]]&lt;br /&gt;
&amp;lt;code&amp;gt;water.extm&amp;lt;/code&amp;gt; files describe the water heightmap and the texture of the main field and add-on content field.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==water.extm File Specification==&lt;br /&gt;
&lt;br /&gt;
===water.extm File Layout===&lt;br /&gt;
&lt;br /&gt;
Each file contains a 64×64 grid. For each vertex there is 8 bytes of data that describe the height of the mesh, the material type and flow speed.&lt;br /&gt;
&lt;br /&gt;
===Water Map Data===&lt;br /&gt;
&lt;br /&gt;
Each entry in the water data table is 8 bytes long.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; (Vertex &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; component)&lt;br /&gt;
|-&lt;br /&gt;
|0x02&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|&amp;lt;code&amp;gt;xAxisFlowRate 128= no flow&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|&amp;lt;code&amp;gt;zAxisFlowRate 128= no flow&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0x05&lt;br /&gt;
|1&lt;br /&gt;
|Unsigned Byte&lt;br /&gt;
|&amp;lt;code&amp;gt;materialIndex + 3&amp;lt;/code&amp;gt;. This may act as a checksum?&lt;br /&gt;
|-&lt;br /&gt;
|0x06&lt;br /&gt;
|1&lt;br /&gt;
|Unsigned Byte&lt;br /&gt;
|&amp;lt;code&amp;gt;materialIndex&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;flowSpeed&amp;lt;/code&amp;gt; are stored as unsigned shorts, but seem to map to float values. These can be calculated by dividing by the max size of an unsigned short:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
32767 / 0xffff = 0.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; is further multiplied by another constant to get the final height (the constant is unknown at this time, but is close to &amp;lt;code&amp;gt;0x300 / 0xffff&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; is expected to be an integer quotient. The &amp;lt;code&amp;gt;floor&amp;lt;/code&amp;gt; function can be used if integer division is not supported.&amp;lt;/ref&amp;gt; can be calculated, while iterating through the data table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
for (int index = 0; index &amp;lt; 64 * 64; index++) {&lt;br /&gt;
    uint x = index % 64;&lt;br /&gt;
    uint z = index / 64;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Flow Rates are calculated as &amp;lt;code&amp;gt;(flowRate * 2) - 1&amp;lt;/code&amp;gt; and ranges from &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. On the x-axis this changes flow direction from East (&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;) to West (&amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt;) and on the z-axis from North (&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;) to South (&amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Material Index===&lt;br /&gt;
&lt;br /&gt;
This data is stored in Terrain.Tex1.bfres.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!id&lt;br /&gt;
!file&lt;br /&gt;
!name&lt;br /&gt;
!attribute&lt;br /&gt;
!attribute_sub&lt;br /&gt;
!flag&lt;br /&gt;
!Google Translated&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Water&lt;br /&gt;
|水&lt;br /&gt;
|Water&lt;br /&gt;
|Water&lt;br /&gt;
|0&lt;br /&gt;
|Water&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|HotWater&lt;br /&gt;
|熱湯&lt;br /&gt;
|Water&lt;br /&gt;
|Water_Hot&lt;br /&gt;
|0&lt;br /&gt;
|Hot water&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Poison&lt;br /&gt;
|毒水&lt;br /&gt;
|Water&lt;br /&gt;
|Water_Poison&lt;br /&gt;
|0&lt;br /&gt;
|Poison water&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Lava&lt;br /&gt;
|溶岩&lt;br /&gt;
|Lava&lt;br /&gt;
|Lava&lt;br /&gt;
|0&lt;br /&gt;
|Lava&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|IceWater&lt;br /&gt;
|冷たい水&lt;br /&gt;
|Water&lt;br /&gt;
|Water_Ice&lt;br /&gt;
|0&lt;br /&gt;
|Cold water&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Mud&lt;br /&gt;
|泥沼&lt;br /&gt;
|Bog&lt;br /&gt;
|Bog&lt;br /&gt;
|0&lt;br /&gt;
|Bog&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|Clear01&lt;br /&gt;
|透明水01&lt;br /&gt;
|Water&lt;br /&gt;
|Water&lt;br /&gt;
|0&lt;br /&gt;
|Clear water 01&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|Sea&lt;br /&gt;
|海&lt;br /&gt;
|Water&lt;br /&gt;
|Water&lt;br /&gt;
|0&lt;br /&gt;
|Ocean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
[[Category:File extensions]]&lt;br /&gt;
[[Category:File extensions (STERA)]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=ActorInfo.product.sbyml&amp;diff=11515</id>
		<title>ActorInfo.product.sbyml</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=ActorInfo.product.sbyml&amp;diff=11515"/>
		<updated>2022-06-17T13:54:28Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Actors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{NoRstb}}&lt;br /&gt;
&#039;&#039;&#039;ActorInfo.product.sbyml&#039;&#039;&#039; (found in the Actor directory) is a [[Yaz0]]-compressed [[BYML]] file which contains general information about all [[Actor|actors]] in the game. It is used when constructing actors, and also used to access actor data efficiently when loading the full [[actor pack]] is unnecessary (e.g. on menu screens). Therefore, in order to add new actors, or to change items&#039; parameters on menu screens, this file must be edited.&lt;br /&gt;
&lt;br /&gt;
ActorInfo is a machine generated file. It is not meant to be edited directly; much of the information it includes are either automatically generated or copied from [[ActorParam]] files (which can be found in the game [[content]]) and other source-only files.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&lt;br /&gt;
===Actors===&lt;br /&gt;
&#039;&#039;&#039;Actors&#039;&#039;&#039; is an array of dictionaries. It must be sorted in the same order as the Hashes section.&lt;br /&gt;
&lt;br /&gt;
Each actor has its own entry in this array. Each entry has several properties, based on the actor&#039;s profile. The following is a list of valid entries for any profile. Any single profile will not require all of these properties.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Source&lt;br /&gt;
|-&lt;br /&gt;
|aabbMax&lt;br /&gt;
|float&lt;br /&gt;
|Defines the maximum point for the axis-aligned bounding box (AABB) - the most-positive value on each axis that any of the actor&#039;s model&#039;s vertices inhabits. These values may (and probably do) come from three different vertices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Can be altered to change the distance for AttentionClients like &amp;quot;Talk&amp;quot;, &amp;quot;Examine&amp;quot;, etc. to appear.&lt;br /&gt;
|sbfres, vertex coordinates&lt;br /&gt;
|-&lt;br /&gt;
|aabbMin&lt;br /&gt;
|float&lt;br /&gt;
|Defines the minimum point for the axis-aligned bounding box (AABB) - the most-negative value on each axis that any of the actor&#039;s model&#039;s vertices inhabits. These values may (and probably do) come from three different vertices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Can be altered to change the distance for AttentionClients like &amp;quot;Talk&amp;quot;, &amp;quot;Examine&amp;quot;, etc. to appear.&lt;br /&gt;
|sbfres, vertex coordinates&lt;br /&gt;
|-&lt;br /&gt;
|actorScale&lt;br /&gt;
|float&lt;br /&gt;
|Multiplier applied to the values of each vertex&#039;s coordinates (makes the actor&#039;s model larger or smaller)&lt;br /&gt;
|sbactorpack, ActorLink, ActorScale param&lt;br /&gt;
|-&lt;br /&gt;
|armorDefenceAddLevel&lt;br /&gt;
|int&lt;br /&gt;
|The amount of armor added when this actor is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, Armor section, DefenseAddLevel param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectAncientPowUp&lt;br /&gt;
|bool&lt;br /&gt;
|Whether the AncientPowUp (increased damage from ancient weapons) effect is provided by this actor when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, AncientPowUp param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEffectLevel&lt;br /&gt;
|int&lt;br /&gt;
|The number of levels of the actor&#039;s EffectType that are provided when this actor is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EffectLevel param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEffectType&lt;br /&gt;
|str&lt;br /&gt;
|The EffectType granted by the actor when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EffectType param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEnableClimbWaterfall&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this actor grants the ability to climb waterfalls when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EnableClimbWaterfall param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEnableSpinAttack&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this actor grants the ability to perform spin attacks while swimming, when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EnableSpinAttack param&lt;br /&gt;
|-&lt;br /&gt;
|armorHeadMantleType&lt;br /&gt;
|int&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorHead section, MantleType param&lt;br /&gt;
|-&lt;br /&gt;
|armorNextRankName&lt;br /&gt;
|str&lt;br /&gt;
|Name of the actor that this can be upgraded to, by the Great Fairies&lt;br /&gt;
|sbactorpack, bgparamlist, Armor section, NextRankName param&lt;br /&gt;
|-&lt;br /&gt;
|armorStarNum&lt;br /&gt;
|int&lt;br /&gt;
|Number of stars to display in the inventory, plus 1 (e.g. armorStarNum: 1 will display 0 stars)&lt;br /&gt;
|sbactorpack, bgparamlist, Armor section, StarNum param&lt;br /&gt;
|-&lt;br /&gt;
|armorUpperDisableSelfMantle&lt;br /&gt;
|bool&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorUpper section, DisableSelfMantle param&lt;br /&gt;
|-&lt;br /&gt;
|armorUpperUseMantleType&lt;br /&gt;
|int&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorUpper section, UseMantleType param&lt;br /&gt;
|-&lt;br /&gt;
|attackPower&lt;br /&gt;
|int&lt;br /&gt;
|The amount of damage this actor does when used to attack as a weapon&lt;br /&gt;
|sbactorpack, bgparamlist, Attack section, Power param&lt;br /&gt;
|-&lt;br /&gt;
|bfres&lt;br /&gt;
|str&lt;br /&gt;
|Name of the (s)bfres file that stores this actor&#039;s model&lt;br /&gt;
|sbactorpack, bmodellist, ModelData list, ModelData_0 list, Base object, Folder param&lt;br /&gt;
|-&lt;br /&gt;
|boundingForTraverse&lt;br /&gt;
|float&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|bugMask&lt;br /&gt;
|int&lt;br /&gt;
|Affects the [[ActorDebug]] interface and probably more things in debug builds.&lt;br /&gt;
&lt;br /&gt;
*&amp;amp; 2: アクターサウンドバグ (&amp;quot;Actor sound bug&amp;quot;)&amp;lt;ref&amp;gt;{{addr|a=0x7100D26480|ver=nx-1.5.0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
*&amp;amp; 1: アクター挙動バグ (&amp;quot;Actor behavior bug&amp;quot;)&amp;lt;ref&amp;gt;{{addr|a=0x7100D26534|ver=nx-1.5.0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Not found outside ActorInfo.product&lt;br /&gt;
|-&lt;br /&gt;
|cursorOffsetY&lt;br /&gt;
|float&lt;br /&gt;
|How much up or down another character actor must tilt their head to look at this actor when this actor has their attention (typically, when Link or an NPC is looking at the actor)&lt;br /&gt;
|sbactorpack, bmodellist, Attention section, CursorOffsetY param&lt;br /&gt;
|-&lt;br /&gt;
|elink&lt;br /&gt;
|str&lt;br /&gt;
|Determines the name of the actor&#039;s entry in the Elink2DB file, used for effects&lt;br /&gt;
|sbactorpack, ActorLink, ElinkUser param&lt;br /&gt;
|-&lt;br /&gt;
|generalLife&lt;br /&gt;
|int&lt;br /&gt;
|The amount of health this actor has&lt;br /&gt;
|sbactorpack, bgparamlist, General section, Life param&lt;br /&gt;
|-&lt;br /&gt;
|instSize&lt;br /&gt;
|int&lt;br /&gt;
|Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|isHasFar&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not a separate actor exists, with the same name but with _Far appended, that is used to replace this actor when it is far away&lt;br /&gt;
|Presence of a separate actor with the _Far name&lt;br /&gt;
|-&lt;br /&gt;
|itemBuyingPrice&lt;br /&gt;
|int&lt;br /&gt;
|Price when buying the actor from a shop&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, BuyingPrice param&lt;br /&gt;
|-&lt;br /&gt;
|itemCreatingPrice&lt;br /&gt;
|int&lt;br /&gt;
|Price when creating the actor using the ancient oven&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, CreatingPrice param&lt;br /&gt;
|-&lt;br /&gt;
|itemSaleRevivalCount&lt;br /&gt;
|int&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, SaleRevivalCount param&lt;br /&gt;
|-&lt;br /&gt;
|itemSellingPrice&lt;br /&gt;
|int&lt;br /&gt;
|Price when selling the actor to a shop&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, SellingPrice param&lt;br /&gt;
|-&lt;br /&gt;
|itemStainColor&lt;br /&gt;
|int&lt;br /&gt;
|Index of the color that this actor will dye an armor when used as an ingredient in the dye shop&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, StainColor param&lt;br /&gt;
|-&lt;br /&gt;
|itemUseIconActorName&lt;br /&gt;
|str&lt;br /&gt;
|The name of the actor whose icon this actor will use when displayed in the inventory. If empty, the actor will use the icon with its own name&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, UseIconActorName param&lt;br /&gt;
|-&lt;br /&gt;
|mainModel&lt;br /&gt;
|str&lt;br /&gt;
|Name of the model inside the (s)bfres file for this actor&lt;br /&gt;
|sbactorpack, bmodellist, ModelData list, ModelData_0 list, Unit list, Unit_0 object, UnitName param&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|str&lt;br /&gt;
|Actor name&lt;br /&gt;
|sbactorpack, ActorLink, Name param (and several other places)&lt;br /&gt;
|-&lt;br /&gt;
|normal0ItemName%02d&lt;br /&gt;
|str&lt;br /&gt;
|Names of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemNum%02d of the same number.&lt;br /&gt;
|sbactorpack, brecipe, Normal0 table, ItemName%02d params&lt;br /&gt;
|-&lt;br /&gt;
|normal0ItemNum%02d&lt;br /&gt;
|int&lt;br /&gt;
|Quantities of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemName%02d of the same number.&lt;br /&gt;
|sbactorpack, brecipe, Normal0 table, ItemNum%02d params&lt;br /&gt;
|-&lt;br /&gt;
|normal0ItemStuffNum&lt;br /&gt;
|int&lt;br /&gt;
|Number of unique actors required to upgrade to this actor at a Great Fairy&lt;br /&gt;
|sbactorpack, brecipe, Normal0 table, ColumnNum param&lt;br /&gt;
|-&lt;br /&gt;
|profile&lt;br /&gt;
|str&lt;br /&gt;
|Profile name (see [[ActorTemplate]])&lt;br /&gt;
|sbactorpack, ActorLink, Profile param&lt;br /&gt;
|-&lt;br /&gt;
|seriesArmorEnableCompBonus&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this armor counts toward providing its seriesArmorSeriesType bonus&lt;br /&gt;
|sbactorpack, bgparamlist, SeriesArmor section, EnableCompBonus param&lt;br /&gt;
|-&lt;br /&gt;
|seriesArmorSeriesType&lt;br /&gt;
|str&lt;br /&gt;
|The set bonus that this actor will provide, when equipped with two other actors that have the same seriesArmorSeriesType&lt;br /&gt;
|sbactorpack, bgparamlist, SeriesArmor section, SeriesType param&lt;br /&gt;
|-&lt;br /&gt;
|slink&lt;br /&gt;
|str&lt;br /&gt;
|Determines the name of the actor&#039;s entry in the Slink2DB file, used for effects&lt;br /&gt;
|sbactorpack, ActorLink, SlinkUser param&lt;br /&gt;
|-&lt;br /&gt;
|sortKey&lt;br /&gt;
|int&lt;br /&gt;
|Determines the order of the actor in the Picture Book and inventory (0 if not needed)&lt;br /&gt;
|Not found outside ActorInfo.product&lt;br /&gt;
|-&lt;br /&gt;
|systemIsGetItemSelf&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this object actor gives an item actor of the same name when activated (used to give Link an Item_Arrow when activated an Obj_Arrow in vanilla)&lt;br /&gt;
|sbactorpack, bgparamlist, System section, IsGetItemSelf param&lt;br /&gt;
|-&lt;br /&gt;
|systemSameGroupActorName&lt;br /&gt;
|str&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, System section, SameGroupActorName param&lt;br /&gt;
|-&lt;br /&gt;
|tags&lt;br /&gt;
|dict&lt;br /&gt;
|A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.&lt;br /&gt;
|sbactorpack, ActorLink, Tags section&lt;br /&gt;
|-&lt;br /&gt;
|terrainTextures&lt;br /&gt;
|array&lt;br /&gt;
|An array with entries of the form (value=crc32_hash) which is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|traverseDist&lt;br /&gt;
|float&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|yLimitAlgorithm&lt;br /&gt;
|str&lt;br /&gt;
|See [[ActorParam/LifeCondition]]. This might not be a required entry. {{check}}&lt;br /&gt;
|sbactorpack, blifecondition, YLimitAlgorithm param&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hashes===&lt;br /&gt;
&#039;&#039;&#039;Hashes&#039;&#039;&#039; is an array of CRC32 hashes of actor names.&lt;br /&gt;
&lt;br /&gt;
This array &#039;&#039;&#039;&#039;&#039;must&#039;&#039;&#039;&#039;&#039; be sorted because [[ActorInfoData]] performs a binary search on this array to find actor entries efficiently. As a direct consequence the actor array must be sorted according to the CRC32 hashes of the actor names.&lt;br /&gt;
&lt;br /&gt;
Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.&lt;br /&gt;
[[Category:Content (BotW)]]&lt;br /&gt;
[[Category:Content (BotW, product)]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=ActorInfo.product.sbyml&amp;diff=11514</id>
		<title>ActorInfo.product.sbyml</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=ActorInfo.product.sbyml&amp;diff=11514"/>
		<updated>2022-06-17T13:53:46Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Actors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{NoRstb}}&lt;br /&gt;
&#039;&#039;&#039;ActorInfo.product.sbyml&#039;&#039;&#039; (found in the Actor directory) is a [[Yaz0]]-compressed [[BYML]] file which contains general information about all [[Actor|actors]] in the game. It is used when constructing actors, and also used to access actor data efficiently when loading the full [[actor pack]] is unnecessary (e.g. on menu screens). Therefore, in order to add new actors, or to change items&#039; parameters on menu screens, this file must be edited.&lt;br /&gt;
&lt;br /&gt;
ActorInfo is a machine generated file. It is not meant to be edited directly; much of the information it includes are either automatically generated or copied from [[ActorParam]] files (which can be found in the game [[content]]) and other source-only files.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&lt;br /&gt;
===Actors===&lt;br /&gt;
&#039;&#039;&#039;Actors&#039;&#039;&#039; is an array of dictionaries. It must be sorted in the same order as the Hashes section.&lt;br /&gt;
&lt;br /&gt;
Each actor has its own entry in this array. Each entry has several properties, based on the actor&#039;s profile. The following is a list of valid entries for any profile. Any single profile will not require all of these properties.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Source&lt;br /&gt;
|-&lt;br /&gt;
|aabbMax&lt;br /&gt;
|float&lt;br /&gt;
|Defines the maximum point for the axis-aligned bounding box (AABB) - the most-positive value on each axis that any of the actor&#039;s model&#039;s vertices inhabits. These values may (and probably do) come from three different vertices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Can be altered to change the distance for AttentionClients like &amp;quot;Talk&amp;quot;, &amp;quot;Examine&amp;quot;, etc.&lt;br /&gt;
|sbfres, vertex coordinates&lt;br /&gt;
|-&lt;br /&gt;
|aabbMin&lt;br /&gt;
|float&lt;br /&gt;
|Defines the minimum point for the axis-aligned bounding box (AABB) - the most-negative value on each axis that any of the actor&#039;s model&#039;s vertices inhabits. These values may (and probably do) come from three different vertices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Can be altered to change the distance for AttentionClients like &amp;quot;Talk&amp;quot;, &amp;quot;Examine&amp;quot;, etc.&lt;br /&gt;
|sbfres, vertex coordinates&lt;br /&gt;
|-&lt;br /&gt;
|actorScale&lt;br /&gt;
|float&lt;br /&gt;
|Multiplier applied to the values of each vertex&#039;s coordinates (makes the actor&#039;s model larger or smaller)&lt;br /&gt;
|sbactorpack, ActorLink, ActorScale param&lt;br /&gt;
|-&lt;br /&gt;
|armorDefenceAddLevel&lt;br /&gt;
|int&lt;br /&gt;
|The amount of armor added when this actor is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, Armor section, DefenseAddLevel param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectAncientPowUp&lt;br /&gt;
|bool&lt;br /&gt;
|Whether the AncientPowUp (increased damage from ancient weapons) effect is provided by this actor when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, AncientPowUp param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEffectLevel&lt;br /&gt;
|int&lt;br /&gt;
|The number of levels of the actor&#039;s EffectType that are provided when this actor is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EffectLevel param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEffectType&lt;br /&gt;
|str&lt;br /&gt;
|The EffectType granted by the actor when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EffectType param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEnableClimbWaterfall&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this actor grants the ability to climb waterfalls when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EnableClimbWaterfall param&lt;br /&gt;
|-&lt;br /&gt;
|armorEffectEnableSpinAttack&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this actor grants the ability to perform spin attacks while swimming, when it is equipped as armor&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorEffect section, EnableSpinAttack param&lt;br /&gt;
|-&lt;br /&gt;
|armorHeadMantleType&lt;br /&gt;
|int&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorHead section, MantleType param&lt;br /&gt;
|-&lt;br /&gt;
|armorNextRankName&lt;br /&gt;
|str&lt;br /&gt;
|Name of the actor that this can be upgraded to, by the Great Fairies&lt;br /&gt;
|sbactorpack, bgparamlist, Armor section, NextRankName param&lt;br /&gt;
|-&lt;br /&gt;
|armorStarNum&lt;br /&gt;
|int&lt;br /&gt;
|Number of stars to display in the inventory, plus 1 (e.g. armorStarNum: 1 will display 0 stars)&lt;br /&gt;
|sbactorpack, bgparamlist, Armor section, StarNum param&lt;br /&gt;
|-&lt;br /&gt;
|armorUpperDisableSelfMantle&lt;br /&gt;
|bool&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorUpper section, DisableSelfMantle param&lt;br /&gt;
|-&lt;br /&gt;
|armorUpperUseMantleType&lt;br /&gt;
|int&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, ArmorUpper section, UseMantleType param&lt;br /&gt;
|-&lt;br /&gt;
|attackPower&lt;br /&gt;
|int&lt;br /&gt;
|The amount of damage this actor does when used to attack as a weapon&lt;br /&gt;
|sbactorpack, bgparamlist, Attack section, Power param&lt;br /&gt;
|-&lt;br /&gt;
|bfres&lt;br /&gt;
|str&lt;br /&gt;
|Name of the (s)bfres file that stores this actor&#039;s model&lt;br /&gt;
|sbactorpack, bmodellist, ModelData list, ModelData_0 list, Base object, Folder param&lt;br /&gt;
|-&lt;br /&gt;
|boundingForTraverse&lt;br /&gt;
|float&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|bugMask&lt;br /&gt;
|int&lt;br /&gt;
|Affects the [[ActorDebug]] interface and probably more things in debug builds.&lt;br /&gt;
&lt;br /&gt;
*&amp;amp; 2: アクターサウンドバグ (&amp;quot;Actor sound bug&amp;quot;)&amp;lt;ref&amp;gt;{{addr|a=0x7100D26480|ver=nx-1.5.0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
*&amp;amp; 1: アクター挙動バグ (&amp;quot;Actor behavior bug&amp;quot;)&amp;lt;ref&amp;gt;{{addr|a=0x7100D26534|ver=nx-1.5.0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Not found outside ActorInfo.product&lt;br /&gt;
|-&lt;br /&gt;
|cursorOffsetY&lt;br /&gt;
|float&lt;br /&gt;
|How much up or down another character actor must tilt their head to look at this actor when this actor has their attention (typically, when Link or an NPC is looking at the actor)&lt;br /&gt;
|sbactorpack, bmodellist, Attention section, CursorOffsetY param&lt;br /&gt;
|-&lt;br /&gt;
|elink&lt;br /&gt;
|str&lt;br /&gt;
|Determines the name of the actor&#039;s entry in the Elink2DB file, used for effects&lt;br /&gt;
|sbactorpack, ActorLink, ElinkUser param&lt;br /&gt;
|-&lt;br /&gt;
|generalLife&lt;br /&gt;
|int&lt;br /&gt;
|The amount of health this actor has&lt;br /&gt;
|sbactorpack, bgparamlist, General section, Life param&lt;br /&gt;
|-&lt;br /&gt;
|instSize&lt;br /&gt;
|int&lt;br /&gt;
|Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|isHasFar&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not a separate actor exists, with the same name but with _Far appended, that is used to replace this actor when it is far away&lt;br /&gt;
|Presence of a separate actor with the _Far name&lt;br /&gt;
|-&lt;br /&gt;
|itemBuyingPrice&lt;br /&gt;
|int&lt;br /&gt;
|Price when buying the actor from a shop&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, BuyingPrice param&lt;br /&gt;
|-&lt;br /&gt;
|itemCreatingPrice&lt;br /&gt;
|int&lt;br /&gt;
|Price when creating the actor using the ancient oven&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, CreatingPrice param&lt;br /&gt;
|-&lt;br /&gt;
|itemSaleRevivalCount&lt;br /&gt;
|int&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, SaleRevivalCount param&lt;br /&gt;
|-&lt;br /&gt;
|itemSellingPrice&lt;br /&gt;
|int&lt;br /&gt;
|Price when selling the actor to a shop&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, SellingPrice param&lt;br /&gt;
|-&lt;br /&gt;
|itemStainColor&lt;br /&gt;
|int&lt;br /&gt;
|Index of the color that this actor will dye an armor when used as an ingredient in the dye shop&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, StainColor param&lt;br /&gt;
|-&lt;br /&gt;
|itemUseIconActorName&lt;br /&gt;
|str&lt;br /&gt;
|The name of the actor whose icon this actor will use when displayed in the inventory. If empty, the actor will use the icon with its own name&lt;br /&gt;
|sbactorpack, bgparamlist, Item section, UseIconActorName param&lt;br /&gt;
|-&lt;br /&gt;
|mainModel&lt;br /&gt;
|str&lt;br /&gt;
|Name of the model inside the (s)bfres file for this actor&lt;br /&gt;
|sbactorpack, bmodellist, ModelData list, ModelData_0 list, Unit list, Unit_0 object, UnitName param&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|str&lt;br /&gt;
|Actor name&lt;br /&gt;
|sbactorpack, ActorLink, Name param (and several other places)&lt;br /&gt;
|-&lt;br /&gt;
|normal0ItemName%02d&lt;br /&gt;
|str&lt;br /&gt;
|Names of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemNum%02d of the same number.&lt;br /&gt;
|sbactorpack, brecipe, Normal0 table, ItemName%02d params&lt;br /&gt;
|-&lt;br /&gt;
|normal0ItemNum%02d&lt;br /&gt;
|int&lt;br /&gt;
|Quantities of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemName%02d of the same number.&lt;br /&gt;
|sbactorpack, brecipe, Normal0 table, ItemNum%02d params&lt;br /&gt;
|-&lt;br /&gt;
|normal0ItemStuffNum&lt;br /&gt;
|int&lt;br /&gt;
|Number of unique actors required to upgrade to this actor at a Great Fairy&lt;br /&gt;
|sbactorpack, brecipe, Normal0 table, ColumnNum param&lt;br /&gt;
|-&lt;br /&gt;
|profile&lt;br /&gt;
|str&lt;br /&gt;
|Profile name (see [[ActorTemplate]])&lt;br /&gt;
|sbactorpack, ActorLink, Profile param&lt;br /&gt;
|-&lt;br /&gt;
|seriesArmorEnableCompBonus&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this armor counts toward providing its seriesArmorSeriesType bonus&lt;br /&gt;
|sbactorpack, bgparamlist, SeriesArmor section, EnableCompBonus param&lt;br /&gt;
|-&lt;br /&gt;
|seriesArmorSeriesType&lt;br /&gt;
|str&lt;br /&gt;
|The set bonus that this actor will provide, when equipped with two other actors that have the same seriesArmorSeriesType&lt;br /&gt;
|sbactorpack, bgparamlist, SeriesArmor section, SeriesType param&lt;br /&gt;
|-&lt;br /&gt;
|slink&lt;br /&gt;
|str&lt;br /&gt;
|Determines the name of the actor&#039;s entry in the Slink2DB file, used for effects&lt;br /&gt;
|sbactorpack, ActorLink, SlinkUser param&lt;br /&gt;
|-&lt;br /&gt;
|sortKey&lt;br /&gt;
|int&lt;br /&gt;
|Determines the order of the actor in the Picture Book and inventory (0 if not needed)&lt;br /&gt;
|Not found outside ActorInfo.product&lt;br /&gt;
|-&lt;br /&gt;
|systemIsGetItemSelf&lt;br /&gt;
|bool&lt;br /&gt;
|Whether or not this object actor gives an item actor of the same name when activated (used to give Link an Item_Arrow when activated an Obj_Arrow in vanilla)&lt;br /&gt;
|sbactorpack, bgparamlist, System section, IsGetItemSelf param&lt;br /&gt;
|-&lt;br /&gt;
|systemSameGroupActorName&lt;br /&gt;
|str&lt;br /&gt;
| -&lt;br /&gt;
|sbactorpack, bgparamlist, System section, SameGroupActorName param&lt;br /&gt;
|-&lt;br /&gt;
|tags&lt;br /&gt;
|dict&lt;br /&gt;
|A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.&lt;br /&gt;
|sbactorpack, ActorLink, Tags section&lt;br /&gt;
|-&lt;br /&gt;
|terrainTextures&lt;br /&gt;
|array&lt;br /&gt;
|An array with entries of the form (value=crc32_hash) which is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|traverseDist&lt;br /&gt;
|float&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|yLimitAlgorithm&lt;br /&gt;
|str&lt;br /&gt;
|See [[ActorParam/LifeCondition]]. This might not be a required entry. {{check}}&lt;br /&gt;
|sbactorpack, blifecondition, YLimitAlgorithm param&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hashes===&lt;br /&gt;
&#039;&#039;&#039;Hashes&#039;&#039;&#039; is an array of CRC32 hashes of actor names.&lt;br /&gt;
&lt;br /&gt;
This array &#039;&#039;&#039;&#039;&#039;must&#039;&#039;&#039;&#039;&#039; be sorted because [[ActorInfoData]] performs a binary search on this array to find actor entries efficiently. As a direct consequence the actor array must be sorted according to the CRC32 hashes of the actor names.&lt;br /&gt;
&lt;br /&gt;
Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.&lt;br /&gt;
[[Category:Content (BotW)]]&lt;br /&gt;
[[Category:Content (BotW, product)]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=ActorInfo.product.sbyml&amp;diff=11510</id>
		<title>ActorInfo.product.sbyml</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=ActorInfo.product.sbyml&amp;diff=11510"/>
		<updated>2022-06-17T11:17:56Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Actors */ aabb finally found out!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{NoRstb}}&lt;br /&gt;
&#039;&#039;&#039;ActorInfo.product.sbyml&#039;&#039;&#039; (found in the Actor directory) is a [[Yaz0]]-compressed [[BYML]] file which contains general information about all [[Actor|actors]] in the game. It is used when constructing actors, and also used to access actor data efficiently when loading the full [[actor pack]] is unnecessary (e.g. on menu screens). Therefore, in order to add new actors, or to change items&#039; parameters on menu screens, this file must be edited.&lt;br /&gt;
&lt;br /&gt;
ActorInfo is a machine generated file. It is not meant to be edited directly; much of the information it includes are either automatically generated or copied from [[ActorParam]] files (which can be found in the game [[content]]) and other source-only files.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&lt;br /&gt;
===Actors===&lt;br /&gt;
&#039;&#039;&#039;Actors&#039;&#039;&#039; is an array of dictionaries. It must be sorted in the same order as the Hashes section.&lt;br /&gt;
&lt;br /&gt;
Each actor has its own entry in this array, which must have the following properties:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|aabbMax&lt;br /&gt;
|float&lt;br /&gt;
|Defines max radius for AttentionClients (Talk, Examine, ...) &lt;br /&gt;
|-&lt;br /&gt;
|aabbMin&lt;br /&gt;
|float&lt;br /&gt;
|Defines min radius for AttentionClients (Talk, Examine, ...) &lt;br /&gt;
|-&lt;br /&gt;
|bugMask&lt;br /&gt;
|int&lt;br /&gt;
|Affects the [[ActorDebug]] interface and probably more things in debug builds.&lt;br /&gt;
&lt;br /&gt;
*&amp;amp; 2: アクターサウンドバグ (&amp;quot;Actor sound bug&amp;quot;)&amp;lt;ref&amp;gt;{{addr|a=0x7100D26480|ver=nx-1.5.0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
*&amp;amp; 1: アクター挙動バグ (&amp;quot;Actor behavior bug&amp;quot;)&amp;lt;ref&amp;gt;{{addr|a=0x7100D26534|ver=nx-1.5.0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|instSize&lt;br /&gt;
|int&lt;br /&gt;
|Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|str&lt;br /&gt;
|Actor name&lt;br /&gt;
|-&lt;br /&gt;
|profile&lt;br /&gt;
|str&lt;br /&gt;
|Profile name (see [[ActorTemplate]])&lt;br /&gt;
|-&lt;br /&gt;
|sortKey&lt;br /&gt;
|int&lt;br /&gt;
|Determines the order of the actor in the Picture Book (0 if not needed)&lt;br /&gt;
|-&lt;br /&gt;
|tags&lt;br /&gt;
|dict&lt;br /&gt;
|A dictionary with entries of the form (key=tag%08x, value=crc32_hash) where %08x is the hex representation of the CRC32 hash of the tag name. The value is an unsigned int if it is greater than 0x80000000 and a regular int otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|yLimitAlgorithm&lt;br /&gt;
|str&lt;br /&gt;
|See [[ActorParam/LifeCondition]]. This might not be a required entry. {{check}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hashes===&lt;br /&gt;
&#039;&#039;&#039;Hashes&#039;&#039;&#039; is an array of CRC32 hashes of actor names.&lt;br /&gt;
&lt;br /&gt;
This array &#039;&#039;&#039;&#039;&#039;must&#039;&#039;&#039;&#039;&#039; be sorted because [[ActorInfoData]] performs a binary search on this array to find actor entries efficiently. As a direct consequence the actor array must be sorted according to the CRC32 hashes of the actor names.&lt;br /&gt;
&lt;br /&gt;
Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.&lt;br /&gt;
[[Category:Content (BotW)]]&lt;br /&gt;
[[Category:Content (BotW, product)]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Bumii&amp;diff=11114</id>
		<title>Bumii</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Bumii&amp;diff=11114"/>
		<updated>2022-04-16T07:41:03Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* body */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{stub|what=Needs descriptions.}}&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{Parameter archive infobox|param_type=bumii|version=0|type=xml}}&lt;br /&gt;
&#039;&#039;&#039;UMii&#039;&#039;&#039; (bumii) files configure the physical traits of a NPC.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Parameter objects=&lt;br /&gt;
{{AampNameWarning}}&lt;br /&gt;
==ffsd==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|no_use_ffsd||bool||Do not use Mii data (treat as NPC profile)&amp;lt;ref&amp;gt;Miiデータを使用しない(NPCプロフィールとして扱う)&amp;lt;/ref&amp;gt;||False&lt;br /&gt;
|-&lt;br /&gt;
|type||int||Reference first&amp;lt;ref&amp;gt;参照先&amp;lt;/ref&amp;gt;||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==body==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||&lt;br /&gt;
*0: Child&lt;br /&gt;
*1: Normal&lt;br /&gt;
*2: Traveler&lt;br /&gt;
*3: Soldier&lt;br /&gt;
*4: Sheikah&lt;br /&gt;
*More?&lt;br /&gt;
||0&lt;br /&gt;
|-&lt;br /&gt;
|number||int||Body variant (last part of the model name)||0&lt;br /&gt;
|-&lt;br /&gt;
|race||int||&lt;br /&gt;
*0: Hylia&lt;br /&gt;
*1: Korok&lt;br /&gt;
*2: Goron&lt;br /&gt;
*3: Sheikah&lt;br /&gt;
*4: Gerudo&lt;br /&gt;
*5: Zora&lt;br /&gt;
*6: Rito&lt;br /&gt;
*More?&lt;br /&gt;
||0&lt;br /&gt;
|-&lt;br /&gt;
|weight||int||-||1&lt;br /&gt;
|-&lt;br /&gt;
|height||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==personal==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|fav_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|sub_color_1||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|sub_color_2||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|voice_type||str||-||Hylia_Man_Kid_Normal00&lt;br /&gt;
|-&lt;br /&gt;
|shoulder_fav_color||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|sex_age||int||&lt;br /&gt;
*0: C (Child)&lt;br /&gt;
*1: M (Man)&lt;br /&gt;
*2: X (Old man){{check}}&lt;br /&gt;
*3: Y (Old woman)&lt;br /&gt;
*4: W (Woman)&lt;br /&gt;
*More?&lt;br /&gt;
||0&lt;br /&gt;
|-&lt;br /&gt;
|personality||str||-||&lt;br /&gt;
|-&lt;br /&gt;
|head_fav_color||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|shoulder_sub_color_1||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==common==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|backpack||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|hat||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|no_hat_always||bool||-||False&lt;br /&gt;
|-&lt;br /&gt;
|body_correct||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|is_mid_age||bool||-||False&lt;br /&gt;
|-&lt;br /&gt;
|rot_cravicle||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|rot_arm||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|rot_leg||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|rot_crotch||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==shape==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|jaw||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|wrinkle||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|make||int||Makeup&lt;br /&gt;
&lt;br /&gt;
*0: None&lt;br /&gt;
*1 - 8: Eyes/Eyebrows&lt;br /&gt;
*9:&lt;br /&gt;
*10 - 11: beards&lt;br /&gt;
||0&lt;br /&gt;
|-&lt;br /&gt;
|skin_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|trans_v||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|scale||float||-||1.0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==hair==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||Hair variant (last part of the model name)||0&lt;br /&gt;
|-&lt;br /&gt;
|color||int||Color Animation Pick (1 - 10)||0&lt;br /&gt;
|-&lt;br /&gt;
|flip||bool||Flip hair model||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==eye==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||-||2&lt;br /&gt;
|-&lt;br /&gt;
|color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|trans_v||float||-||3.0&lt;br /&gt;
|-&lt;br /&gt;
|trans_u||float||-||2.0&lt;br /&gt;
|-&lt;br /&gt;
|rotate||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|scale||float||-||4.0&lt;br /&gt;
|-&lt;br /&gt;
|aspect||float||-||3.0&lt;br /&gt;
|-&lt;br /&gt;
|eyeball_trans_u||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|eyeball_trans_v||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|eyeball_scale||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|highlight_bright||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==eye_ctrl==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|base_offset||vec3||-||Vec3(x=0.0, y=0.029999999329447746, z=0.0)&lt;br /&gt;
|-&lt;br /&gt;
|translim_out||float||-||0.2&lt;br /&gt;
|-&lt;br /&gt;
|translim_in||float||-||0.12&lt;br /&gt;
|-&lt;br /&gt;
|translim_d||float||-||0.3&lt;br /&gt;
|-&lt;br /&gt;
|translim_u||float||-||0.1&lt;br /&gt;
|-&lt;br /&gt;
|neck_offset_ud||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==eyebrow==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||-||6&lt;br /&gt;
|-&lt;br /&gt;
|color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|trans_v||float||-||7.0&lt;br /&gt;
|-&lt;br /&gt;
|trans_u||float||-||2.0&lt;br /&gt;
|-&lt;br /&gt;
|rotate||float||-||0.0&lt;br /&gt;
|-&lt;br /&gt;
|scale||float||-||4.0&lt;br /&gt;
|-&lt;br /&gt;
|aspect||float||-||3.0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==nose==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||-||1&lt;br /&gt;
|-&lt;br /&gt;
|trans_v||float||-||9.0&lt;br /&gt;
|-&lt;br /&gt;
|scale||float||-||4.0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==mouth==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||-||3&lt;br /&gt;
|-&lt;br /&gt;
|color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|trans_v||float||-||13.0&lt;br /&gt;
|-&lt;br /&gt;
|scale||float||-||4.0&lt;br /&gt;
|-&lt;br /&gt;
|aspect||float||-||3.0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==beard==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|mustache||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|scale||float||-||4.0&lt;br /&gt;
|-&lt;br /&gt;
|type||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==glass==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|type||int||Glasses variant (last part of the model name)||0&lt;br /&gt;
|-&lt;br /&gt;
|color||int||Color Select (0 - 5)||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==korog==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|mask||int||Mask variant (last part of the model name)||0&lt;br /&gt;
|-&lt;br /&gt;
|skin_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|left_plant||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|right_plant||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==goron==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|skin_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==gerudo==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|skin_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|hair||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|hair_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|lip_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|glass||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|glass_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==rito==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|body_color||int||&lt;br /&gt;
*0:&lt;br /&gt;
*1:&lt;br /&gt;
*2:&lt;br /&gt;
*3:&lt;br /&gt;
*4:&lt;br /&gt;
*5:&lt;br /&gt;
*6:&lt;br /&gt;
*7:&lt;br /&gt;
*8: Blue (Fyson)&lt;br /&gt;
*9: Green&lt;br /&gt;
*More...&lt;br /&gt;
||0&lt;br /&gt;
|-&lt;br /&gt;
|hair_color||int||-||-1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==zora==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key!!Type!!Description!!Default value&lt;br /&gt;
|-&lt;br /&gt;
|body_color||int||-||0&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Parameter lists=&lt;br /&gt;
{{No AAMP param}}&lt;br /&gt;
&lt;br /&gt;
[[Category:File extensions]]&lt;br /&gt;
[[Category:File extensions (AAMP)]]&lt;br /&gt;
[[Category:Actor parameter files]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AIDef:AI/ChangeWeatherTagRoot&amp;diff=11106</id>
		<title>AIDef:AI/ChangeWeatherTagRoot</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AIDef:AI/ChangeWeatherTagRoot&amp;diff=11106"/>
		<updated>2022-02-20T08:46:55Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* MapUnitInstParams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AIDef&lt;br /&gt;
|name=ChangeWeatherTagRoot&lt;br /&gt;
|type=AI&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== MapUnitInstParams ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Type !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Weather || Int || -1 || Sets the [[WorldMgr#Weather_types|weather type]]. &lt;br /&gt;
|-&lt;br /&gt;
| TemperatureDay || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| TemperatureNight || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| WeatherEff || Int || -1 || Controls the weather efficienty.&lt;br /&gt;
|-&lt;br /&gt;
| PaletteSel || Int || -1 || A visual color scheme that can also include changes of fog, clouds, bloom, etc. There are 56 of them if you don&#039;t include the default (0).&lt;br /&gt;
|-&lt;br /&gt;
| PSelSpeed || Int || 0 || Controls the speed change from current PaletteSel to the defined PaletteSel. (&#039;&#039;0: Normal Speed; 1: Slower Speed; 2: Very Fast Speed&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| TemperatureDirectDay || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| TemperatureDirectNight || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| CloudShadowOff || Bool || False || &lt;br /&gt;
|-&lt;br /&gt;
| BluffThunderOff || Bool || False || &lt;br /&gt;
|-&lt;br /&gt;
| IgnitedLevel || Int || 0 || Allows to set the environment on fire. (&#039;&#039;0: No ignition; 1: Normal ignition; 2: Heavy ignition&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| FogMinusCorrection || Bool || False || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Children ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 通知 || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Derived definitions ==&lt;br /&gt;
=== Root (WeatherChangeTag) ===&lt;br /&gt;
{{AIDefDerived&lt;br /&gt;
|name=Root&lt;br /&gt;
|group_name=&lt;br /&gt;
|derived_from=ChangeWeatherTagRoot&lt;br /&gt;
|aiprog=WeatherChangeTag&lt;br /&gt;
}}&lt;br /&gt;
No overridden parameters.&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=ActorParam/AISchedule&amp;diff=11023</id>
		<title>ActorParam/AISchedule</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=ActorParam/AISchedule&amp;diff=11023"/>
		<updated>2021-09-05T16:24:04Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;AISchedule&#039;&#039;&#039; configures actions based on time and other conditions for an actor, as well as the [[AI system|AI states]] or [[Event system|events]] that it can trigger.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
ConditionalTimelines:&lt;br /&gt;
- Condition: Npc_Kakariko001_Talk&lt;br /&gt;
  Nodes:&lt;br /&gt;
  - &amp;lt;NODE_1&amp;gt;&lt;br /&gt;
  - &amp;lt;NODE_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
  TriggerEvents:&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_1&amp;gt;&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
DefaultTimeline:&lt;br /&gt;
  Nodes:&lt;br /&gt;
  - &amp;lt;NODE_1&amp;gt;&lt;br /&gt;
  - &amp;lt;NODE_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
  TriggerEvents:&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_1&amp;gt;&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
DisplayDistanceMode: None &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Node===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
{ AIName: Action2, CanBeAwaken: &#039;True&#039;, Emotion: Normal, EndTime: 5, IsAlignmentWaitPosition: &#039;False&#039;,&lt;br /&gt;
  IsEnableMoveNext: false, IsInheritWaitASToTalk: &#039;False&#039;, IsRainAlignmentWaitPosition: &#039;False&#039;,&lt;br /&gt;
  IsRainInheritWaitASToTalk: &#039;False&#039;, MeetingASName: &#039;&#039;, MeetingReactionType: 1,&lt;br /&gt;
  MoveEquipment: Invisible, MoveGreetingType: NotAndNot, MovePosture: 0, MoveReactionType: 2,&lt;br /&gt;
  MoveTalkTurn: 2, MoveToAnchorASName: Walk, MoveToAnchorRainASName: &#039;&#039;, RainEmotion: Normal,&lt;br /&gt;
  ReactionToApproach: Quit, ReactionToApproachDist: 5, ReactionToApproachRain: None,&lt;br /&gt;
  ReactionToApproachTurnASName: Turn, ReactionToApproachWaitASName: Wait, ReturnActionRainTimeAfterTalk: -1,&lt;br /&gt;
  ReturnActionTimeAfterTalk: -1, ReturnMoveTimeAfterTalk: 60, SleepOnBed: &#039;True&#039;,&lt;br /&gt;
  StartTime: 0, WaitAnchorASName: Sleep, WaitAnchorRainASName: &#039;&#039;, WaitEquipment: Invisible,&lt;br /&gt;
  WaitForScheduleMoveASName: Wait, WaitGreetingType: NotAndNot, WaitPosture: 0,&lt;br /&gt;
  WaitRainEquipment: Invisible, WaitRainPosture: 0, WaitRainReactionType: 0, WaitRainTalkTurn: 3,&lt;br /&gt;
  WaitReactionType: 0, WaitTalkTurn: 2}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TriggerEvent===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
An event that will be triggered when a condition is satisfied.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|EvflEntry||str||Name of the entry point that will be executed. The event flowchart name is the same as the name of the associated actor or quest (for AISchedule blocks defined in [[QuestProduct]]).&lt;br /&gt;
|-&lt;br /&gt;
|IsPauseOtherActors||bool||Whether other actors should be paused when the event is triggered&lt;br /&gt;
|-&lt;br /&gt;
|Trigger||str||Event trigger&lt;br /&gt;
|-&lt;br /&gt;
|Parameters||dict||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Triggers====&lt;br /&gt;
{{expand section}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Talk||When the actor is talked to&lt;br /&gt;
|-&lt;br /&gt;
|EachFrame||On every frame&lt;br /&gt;
|-&lt;br /&gt;
|Near||When Link is close to the actor&lt;br /&gt;
|-&lt;br /&gt;
|StepStart||When the quest step starts (only for [[QuestProduct]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
AISchedule information is stored in baischedule files as an [[ActorParam]] resource or as a part of the Actors array in quest steps in [[QuestProduct.bquestpack]].&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=ActorParam/AISchedule&amp;diff=11022</id>
		<title>ActorParam/AISchedule</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=ActorParam/AISchedule&amp;diff=11022"/>
		<updated>2021-09-05T16:21:44Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;AISchedule&#039;&#039;&#039; configures actions based on time and other conditions for an actor, as well as the [[AI system|AI states]] or [[Event system|events]] that it can trigger.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
ConditionalTimelines:&lt;br /&gt;
- Condition: Npc_Kakariko001_Talk&lt;br /&gt;
  Nodes:&lt;br /&gt;
  - &amp;lt;NODE_1&amp;gt;&lt;br /&gt;
  - &amp;lt;NODE_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
  TriggerEvents:&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_1&amp;gt;&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
DefaultTimeline:&lt;br /&gt;
  Nodes:&lt;br /&gt;
  - &amp;lt;NODE_1&amp;gt;&lt;br /&gt;
  - &amp;lt;NODE_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
  TriggerEvents:&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_1&amp;gt;&lt;br /&gt;
  - &amp;lt;TRIGGER_EVENT_2&amp;gt;&lt;br /&gt;
  - ...&lt;br /&gt;
DisplayDistanceMode: None &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Node===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
{ AIName: Action2, CanBeAwaken: &#039;True&#039;, Emotion: Normal, EndTime: 5, IsAlignmentWaitPosition: &#039;False&#039;,&lt;br /&gt;
  IsEnableMoveNext: false, IsInheritWaitASToTalk: &#039;False&#039;, IsRainAlignmentWaitPosition: &#039;False&#039;,&lt;br /&gt;
  IsRainInheritWaitASToTalk: &#039;False&#039;, MeetingASName: &#039;&#039;, MeetingReactionType: 1,&lt;br /&gt;
  MoveEquipment: Invisible, MoveGreetingType: NotAndNot, MovePosture: 0, MoveReactionType: 2,&lt;br /&gt;
  MoveTalkTurn: 2, MoveToAnchorASName: Walk, MoveToAnchorRainASName: &#039;&#039;, RainEmotion: Normal,&lt;br /&gt;
  ReactionToApproach: Quit, ReactionToApproachDist: 5, ReactionToApproachRain: None,&lt;br /&gt;
  ReactionToApproachTurnASName: Turn, ReactionToApproachWaitASName: Wait, ReturnActionRainTimeAfterTalk: -1,&lt;br /&gt;
  ReturnActionTimeAfterTalk: -1, ReturnMoveTimeAfterTalk: 60, SleepOnBed: &#039;True&#039;,&lt;br /&gt;
  StartTime: 0, WaitAnchorASName: Sleep, WaitAnchorRainASName: &#039;&#039;, WaitEquipment: Invisible,&lt;br /&gt;
  WaitForScheduleMoveASName: Wait, WaitGreetingType: NotAndNot, WaitPosture: 0,&lt;br /&gt;
  WaitRainEquipment: Invisible, WaitRainPosture: 0, WaitRainReactionType: 0, WaitRainTalkTurn: 3,&lt;br /&gt;
  WaitReactionType: 0, WaitTalkTurn: 2}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TriggerEvent===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
An event that will be triggered when a condition is satisfied.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|EvflEntry||str||Name of the entry point that will be executed. The event flowchart name is the same as the name of the associated actor or quest (for AISchedule blocks defined in [[QuestProduct]]).&lt;br /&gt;
|-&lt;br /&gt;
|IsPauseOtherActors||bool||Whether other actors should be paused when the event is triggered&lt;br /&gt;
|-&lt;br /&gt;
|Trigger||str||Event trigger&lt;br /&gt;
|-&lt;br /&gt;
|Parameters||dict||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Triggers====&lt;br /&gt;
{{expand section}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Talk||When the actor is talked to&lt;br /&gt;
|-&lt;br /&gt;
|EachFrame||On every frame&lt;br /&gt;
|-&lt;br /&gt;
|Near||When Link is close to the actor&lt;br /&gt;
|-&lt;br /&gt;
|StepStart||When the quest step starts (only for [[QuestProduct]])&lt;br /&gt;
|-&lt;br /&gt;
|PopUp&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Files==&lt;br /&gt;
AISchedule information is stored in baischedule files as an [[ActorParam]] resource or as a part of the Actors array in quest steps in [[QuestProduct.bquestpack]].&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Map_unit&amp;diff=10982</id>
		<title>Map unit</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Map_unit&amp;diff=10982"/>
		<updated>2021-05-03T20:52:35Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Not to be confused with [[map]]s, [[Stage|stages]] or [[Scene|scenes]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Map units&#039;&#039;&#039; contain placement data for game maps (e.g. MainField/A-1). In other words, they are used to configure fixed object spawns on maps for actors such as scenery and enemies for example, in contrast to the [[AutoPlacement]] system, which dynamically spawns actors.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Types==&lt;br /&gt;
Two types of map units exist: &#039;&#039;Static&#039;&#039; and &#039;&#039;Dynamic&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Static map units&#039;&#039;&#039; are loaded during stage generation (see [[GameScene]] for more details). Their name is suffixed with &amp;lt;code&amp;gt;_Static&amp;lt;/code&amp;gt;. They can contain both map rails and map objects; furthermore objects can be linked to each other to implement custom game logic using the [[#Link system]]. Static units are always loaded in memory and will be visible if the player is within the actor&#039;s &amp;lt;code&amp;gt;TraverseDist&amp;lt;/code&amp;gt; (draw distance) set in [[ActorInfo.product.sbyml]]. It&#039;s possible to see actors from the top-left to the bottom-right in open-world stages (MainField and AocField) if the &amp;lt;code&amp;gt;TraverseDist&amp;lt;/code&amp;gt; is set high enough. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamic map units&#039;&#039;&#039; are loaded and unloaded on-the-fly. Their name is suffixed with &amp;lt;code&amp;gt;_Dynamic&amp;lt;/code&amp;gt;. The dynamic loading capability is only really put to good use for open-world type stages (e.g. MainField and AocField). In such map units, the link system cannot be used and only map objects can be specified. Dynamic units are considered to be loaded once the player is either inside of the map they are placed (always the case for CDungeon and MainFieldDungeon), or the player is (on MainField and AocField) located in one of the map-sections around the map-section the unit is placed in. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Example&amp;lt;/u&amp;gt;:&#039;&#039;&#039; Player is located in &amp;lt;u&amp;gt;H-5&amp;lt;/u&amp;gt; so &#039;&#039;G-4, H-4, I-4, G-5- I-5, G-6, H-6 and I-6&#039;&#039; dynamic units are loaded in memory and will be displayed if the &amp;lt;code&amp;gt;TraverseDist&amp;lt;/code&amp;gt; is high enough.&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;LocationPosX&amp;lt;/code&amp;gt;===&lt;br /&gt;
X coordinate of the center of the map unit.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;LocationPosZ&amp;lt;/code&amp;gt;===&lt;br /&gt;
Y coordinate of the center of the map unit.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;LocationSize&amp;lt;/code&amp;gt;===&lt;br /&gt;
Size of the map unit (side length of the square).&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;Objs&amp;lt;/code&amp;gt;===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Array of object structures. &#039;&#039;&#039;Must be sorted by HashId&#039;&#039;&#039;&amp;lt;ref&amp;gt;Technically, sorting is only required for Dynamic (non-group 0) map units. However, not sorting causes the game to fall back to a slower linear search.&amp;lt;/ref&amp;gt; because the placement subsystem performs binary searches on the object array in various cases&amp;lt;ref&amp;gt;0x7101256E14&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;Rails&amp;lt;/code&amp;gt;===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Array of rail structures. Can only appear in group 0 maps (Static); this section is completely ignored for non-static map units.&lt;br /&gt;
&lt;br /&gt;
==Link system==&lt;br /&gt;
&#039;&#039;&#039;In static map units only&#039;&#039;&#039;, map objects can be linked to other objects (up to 255 in a single generation group&amp;lt;ref&amp;gt;&amp;quot;一つの生成グループに 255 以上のアクタが指定されています。テストで無ければプログラマに相談&amp;quot;&amp;lt;/ref&amp;gt;). These links allow implementing custom logic and callbacks. For example, DeadUp signals the destination object when the source object dies. This is used to implement enemy chests that only unlock after clearing an enemy camp.&lt;br /&gt;
&lt;br /&gt;
LinkTags and other tag objects are lightweight actors that are used to link objects together.&lt;br /&gt;
&lt;br /&gt;
Objects that are linked together, either directly or via indirect links, are put into the same &#039;&#039;&#039;generation group&#039;&#039;&#039; and loaded at the same time{{check}}. If the placement system fails to load an actor, the entire generation group is discarded.&lt;br /&gt;
&lt;br /&gt;
===Definitions===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Cs means Constraint&amp;lt;ref&amp;gt;SliderCs links are handled by a function {{addr|a=0x7100F70D60|ver=nx-1.5.0}} that is also called by [[AIDef:Action/SwitchStepSliderConstraint]]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!ID!!Name!!Description!!Official description&lt;br /&gt;
|-&lt;br /&gt;
|4||-AxisX||-||マイナスX軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|5||-AxisY||-||マイナスY軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|6||-AxisZ||-||マイナスZ軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|24||AreaCol||Area collision (link target is an Area object)||エリア(センサ)指定&lt;br /&gt;
|-&lt;br /&gt;
|1||AxisX||-||X軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|2||AxisY||-||Y軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|3||AxisZ||-||Z軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|37||BAndSCs||Ball &amp;amp; Socket constraint||ボール＆ソケットCS&lt;br /&gt;
|-&lt;br /&gt;
|38||BAndSLimitAngYCs||Y angular velocity limited Ball &amp;amp; Socket constraint||Y角速度制限付ボール＆ソケットCS&lt;br /&gt;
|-&lt;br /&gt;
|0||BasicSig||Basic signal||基本シグナル&lt;br /&gt;
|-&lt;br /&gt;
|9||BasicSigOnOnly||Basic signal [only emits ON signals]||オンのみ基本シグナル&lt;br /&gt;
|-&lt;br /&gt;
|14||ChangeAtnSig||Signal on Attention change (e.g. picking up a weapon)||アテンション変更時シグナル&lt;br /&gt;
|-&lt;br /&gt;
|39||CogWheelCs||Gear/cogwheel constraint||歯車CS&lt;br /&gt;
|-&lt;br /&gt;
|21||CopyWaitRevival||Activate links when the revival flag of the CopyWaitRevival target is set (e.g. can be used with LinkTagAnd to trigger basic signals when a chest is opened)||配置自動セーブ継承&lt;br /&gt;
|-&lt;br /&gt;
|15||Create||Create a map object. Target objects are not created unless this link is activated.||生成&lt;br /&gt;
|-&lt;br /&gt;
|11||DeadUp||Signal on death||死んだらオン&lt;br /&gt;
|-&lt;br /&gt;
|16||Delete||Delete a map object. Target objects are created and stay spawned until this link is activated. Note: the corresponding collision is disabled even for objects that have their collision data extracted to separate Static Compound files.||削除&lt;br /&gt;
|-&lt;br /&gt;
|29||DemoMember||-||デモ参加&lt;br /&gt;
|-&lt;br /&gt;
|32||FixedCs||-||固定CS&lt;br /&gt;
|-&lt;br /&gt;
|26||ForSale||Links a shop item to its seller (target is the seller NPC).||売り物&lt;br /&gt;
|-&lt;br /&gt;
|19||ForbidAttention||Prevent attention (i.e. interacting with an object, for example picking up a weapon)||アテンションタイプ変更&lt;br /&gt;
|-&lt;br /&gt;
|18||Freeze||Freeze the target object||凍結&lt;br /&gt;
|-&lt;br /&gt;
|7||GimmickSuccess||Success signal (used for minigames)||ネタ成功シグナル&lt;br /&gt;
|-&lt;br /&gt;
|33||HingeCs||Hinge constraint||ヒンジCS&lt;br /&gt;
|-&lt;br /&gt;
|12||LifeZero||Emit a LifeZero signal when the life of the source object is 0||ライフ0&lt;br /&gt;
|-&lt;br /&gt;
|34||LimitHingeCs||Limited hinge constraint||制限付ヒンジCS&lt;br /&gt;
|-&lt;br /&gt;
|27||ModelBind||-||モデルバインド&lt;br /&gt;
|-&lt;br /&gt;
|17||MtxCopyCreate||-||位置継承生成&lt;br /&gt;
|-&lt;br /&gt;
|22||OffWaitRevival||Reset the revival flag of the target object||配置自動セーブオフ&lt;br /&gt;
|-&lt;br /&gt;
|30||PhysSystemGroup||-||物理システムグループ&lt;br /&gt;
|-&lt;br /&gt;
|28||PlacementLOD||Replace the source object with the link target object at lower level of details||配置LOD&lt;br /&gt;
|-&lt;br /&gt;
|36||PulleyCs||-||滑車CS&lt;br /&gt;
|-&lt;br /&gt;
|40||RackAndPinionCs||Rack-and-pinion constraint||ラック＆ピニオンCS&lt;br /&gt;
|-&lt;br /&gt;
|23||Recreate||Recreates the target object||再生成&lt;br /&gt;
|-&lt;br /&gt;
|41||Reference||-||参照&lt;br /&gt;
|-&lt;br /&gt;
|10||Remains||Divine Beast signal||遺物シグナル&lt;br /&gt;
|-&lt;br /&gt;
|25||SensorBind||-||センサバインド&lt;br /&gt;
|-&lt;br /&gt;
|35||SliderCs||Slider constraint||スライダーCS&lt;br /&gt;
|-&lt;br /&gt;
|13||Stable||-||安定&lt;br /&gt;
|-&lt;br /&gt;
|31||StackLink||-||スタック&lt;br /&gt;
|-&lt;br /&gt;
|20||SyncLink||Put the destination object and any object that is linked to it into the same generation group||生成グループ&lt;br /&gt;
|-&lt;br /&gt;
|8||VelocityControl||Velocity control signal||速度制御シグナル&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Link tags===&lt;br /&gt;
&#039;&#039;Not to be confused with [[actor tag]]s.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LinkTagAnd, LinkTagOr, LinkTagNAnd, LinkTagNOr, LinkTagXOr, LinkTagCount, LinkTagPulse, LinkTagNone are small objects that are used to implement a basic logic system in map units.&lt;br /&gt;
&lt;br /&gt;
AND, OR, NAND, NOR, XOR LinkTags are logical operators. They can be used to conditionally set or clear GameData flags, or conditionally spawn objects, trigger other objects, etc. A basic signal is emitted when the LinkTag has been triggered by &#039;&#039;all&#039;&#039; of the source links (for LinkTagAnds) or by one of them (for LinkTagOrs), etc.&lt;br /&gt;
&lt;br /&gt;
Count LinkTags are used to increment a GameData flag every time the link tag itself is signalled.&lt;br /&gt;
&lt;br /&gt;
Pulse LinkTags continuously emit a basic signal with a configurable signal duration (PulseLength)&amp;lt;ref&amp;gt;This appears to require a BasicSig input and does not repeat automatically. In order to get this behavior, fire it with a SwitchTimer.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
None LinkTags have no effect. They are only used to put different map unit objects into the same placement generation group.&lt;br /&gt;
&lt;br /&gt;
Internally, they are all implemented by the same actor class (&amp;lt;code&amp;gt;LinkTag&amp;lt;/code&amp;gt;) since they share most of their core functionality, with only small differences in effects. A single link tag can only handle 0x60 incoming links&amp;lt;ref&amp;gt;0x7100D388C4&amp;lt;/ref&amp;gt;. Only incoming links with defType &amp;lt;= 0xe are processed&amp;lt;ref&amp;gt;0x7100D389DC&amp;lt;/ref&amp;gt;; other links are ignored.&lt;br /&gt;
&lt;br /&gt;
Parameters are documented in [[AIDef:Action/LinkTagBaseAction#MapUnitInstParams]].&lt;br /&gt;
&lt;br /&gt;
==File formats==&lt;br /&gt;
&lt;br /&gt;
===Map unit binary===&lt;br /&gt;
In &#039;&#039;Breath of the Wild&#039;&#039;, map units are stored in a binary format and given the &#039;&#039;mubin&#039;&#039; (Map Unit Binary) file extension. All map object IDs are replaced with CRC32 hashes as a space optimisation. [[BYML]] is used as the serialisation format.&lt;br /&gt;
&lt;br /&gt;
Map units can be found in the [[Content/Map|Map]] content directory, and use the following naming convention: &amp;lt;code&amp;gt;Map/%s/%s/%s%s.mubin&amp;lt;/code&amp;gt; (map type, map name, map name, suffix).&lt;br /&gt;
&lt;br /&gt;
Despite the file extension, &amp;lt;code&amp;gt;Map/%s/Location.mubin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Map/%s/LazyTraverseList.mubin&amp;lt;/code&amp;gt; are not actually map units.&lt;br /&gt;
&lt;br /&gt;
===Source map unit===&lt;br /&gt;
Source map units have muunt&amp;lt;ref&amp;gt;The executable has remnants of error logging functions that print paths to development map units of the following type: &amp;lt;code&amp;gt;Map/Project/%s/Data/%s/%s.muunt&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt; as their file extension and use strings for map object IDs such as &amp;lt;code&amp;gt;F-5_challenge.muunt/obj760&amp;lt;/code&amp;gt; instead of CRC32 hashes of the IDs in map unit binaries.&lt;br /&gt;
[[Category:Internals]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=Map_unit&amp;diff=10981</id>
		<title>Map unit</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=Map_unit&amp;diff=10981"/>
		<updated>2021-05-03T20:48:44Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Not to be confused with [[map]]s, [[Stage|stages]] or [[Scene|scenes]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Map units&#039;&#039;&#039; contain placement data for game maps (e.g. MainField/A-1). In other words, they are used to configure fixed object spawns on maps for actors such as scenery and enemies for example, in contrast to the [[AutoPlacement]] system, which dynamically spawns actors.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Types==&lt;br /&gt;
Two types of map units exist: &#039;&#039;Static&#039;&#039; and &#039;&#039;Dynamic&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Static map units&#039;&#039;&#039; are loaded during stage generation (see [[GameScene]] for more details). Their name is suffixed with &amp;lt;code&amp;gt;_Static&amp;lt;/code&amp;gt;. They can contain both map rails and map objects; furthermore objects can be linked to each other to implement custom game logic using the [[#Link system]]. Static actors are always loaded in memory and will be visible if the player is within the actor&#039;s &amp;lt;code&amp;gt;TraverseDist&amp;lt;/code&amp;gt; (draw distance) set in [[ActorInfo.product.sbyml]]. It&#039;s possible to see actors from the top-left to the bottom-right in open-world stages (MainField and AocField) if the &amp;lt;code&amp;gt;TraverseDist&amp;lt;/code&amp;gt; is set high enough. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamic map units&#039;&#039;&#039; are loaded and unloaded on-the-fly. Their name is suffixed with &amp;lt;code&amp;gt;_Dynamic&amp;lt;/code&amp;gt;. The dynamic loading capability is only really put to good use for open-world type stages (e.g. MainField and AocField). In such map units, the link system cannot be used and only map objects can be specified. Dynamic actors are considered to be loaded once the player is either inside of the map it&#039;s placed (always the case for CDungeon and MainFieldDungeon), or the player is (on MainField and AocField) located in one of the map-sections around the map-section the actor is placed in. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Example&amp;lt;/u&amp;gt;:&#039;&#039;&#039; Player is located in &amp;lt;u&amp;gt;H-5&amp;lt;/u&amp;gt; so &#039;&#039;G-4, H-4, I-4, G-5- I-5, G-6, H-6 and I-6&#039;&#039; dynamic actors are loaded in memory and will be displayed if the &amp;lt;code&amp;gt;TraverseDist&amp;lt;/code&amp;gt; is high enough.&lt;br /&gt;
&lt;br /&gt;
==Contents==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;LocationPosX&amp;lt;/code&amp;gt;===&lt;br /&gt;
X coordinate of the center of the map unit.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;LocationPosZ&amp;lt;/code&amp;gt;===&lt;br /&gt;
Y coordinate of the center of the map unit.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;LocationSize&amp;lt;/code&amp;gt;===&lt;br /&gt;
Size of the map unit (side length of the square).&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;Objs&amp;lt;/code&amp;gt;===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Array of object structures. &#039;&#039;&#039;Must be sorted by HashId&#039;&#039;&#039;&amp;lt;ref&amp;gt;Technically, sorting is only required for Dynamic (non-group 0) map units. However, not sorting causes the game to fall back to a slower linear search.&amp;lt;/ref&amp;gt; because the placement subsystem performs binary searches on the object array in various cases&amp;lt;ref&amp;gt;0x7101256E14&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;code&amp;gt;Rails&amp;lt;/code&amp;gt;===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Array of rail structures. Can only appear in group 0 maps (Static); this section is completely ignored for non-static map units.&lt;br /&gt;
&lt;br /&gt;
==Link system==&lt;br /&gt;
&#039;&#039;&#039;In static map units only&#039;&#039;&#039;, map objects can be linked to other objects (up to 255 in a single generation group&amp;lt;ref&amp;gt;&amp;quot;一つの生成グループに 255 以上のアクタが指定されています。テストで無ければプログラマに相談&amp;quot;&amp;lt;/ref&amp;gt;). These links allow implementing custom logic and callbacks. For example, DeadUp signals the destination object when the source object dies. This is used to implement enemy chests that only unlock after clearing an enemy camp.&lt;br /&gt;
&lt;br /&gt;
LinkTags and other tag objects are lightweight actors that are used to link objects together.&lt;br /&gt;
&lt;br /&gt;
Objects that are linked together, either directly or via indirect links, are put into the same &#039;&#039;&#039;generation group&#039;&#039;&#039; and loaded at the same time{{check}}. If the placement system fails to load an actor, the entire generation group is discarded.&lt;br /&gt;
&lt;br /&gt;
===Definitions===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Cs means Constraint&amp;lt;ref&amp;gt;SliderCs links are handled by a function {{addr|a=0x7100F70D60|ver=nx-1.5.0}} that is also called by [[AIDef:Action/SwitchStepSliderConstraint]]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!ID!!Name!!Description!!Official description&lt;br /&gt;
|-&lt;br /&gt;
|4||-AxisX||-||マイナスX軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|5||-AxisY||-||マイナスY軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|6||-AxisZ||-||マイナスZ軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|24||AreaCol||Area collision (link target is an Area object)||エリア(センサ)指定&lt;br /&gt;
|-&lt;br /&gt;
|1||AxisX||-||X軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|2||AxisY||-||Y軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|3||AxisZ||-||Z軸シグナル&lt;br /&gt;
|-&lt;br /&gt;
|37||BAndSCs||Ball &amp;amp; Socket constraint||ボール＆ソケットCS&lt;br /&gt;
|-&lt;br /&gt;
|38||BAndSLimitAngYCs||Y angular velocity limited Ball &amp;amp; Socket constraint||Y角速度制限付ボール＆ソケットCS&lt;br /&gt;
|-&lt;br /&gt;
|0||BasicSig||Basic signal||基本シグナル&lt;br /&gt;
|-&lt;br /&gt;
|9||BasicSigOnOnly||Basic signal [only emits ON signals]||オンのみ基本シグナル&lt;br /&gt;
|-&lt;br /&gt;
|14||ChangeAtnSig||Signal on Attention change (e.g. picking up a weapon)||アテンション変更時シグナル&lt;br /&gt;
|-&lt;br /&gt;
|39||CogWheelCs||Gear/cogwheel constraint||歯車CS&lt;br /&gt;
|-&lt;br /&gt;
|21||CopyWaitRevival||Activate links when the revival flag of the CopyWaitRevival target is set (e.g. can be used with LinkTagAnd to trigger basic signals when a chest is opened)||配置自動セーブ継承&lt;br /&gt;
|-&lt;br /&gt;
|15||Create||Create a map object. Target objects are not created unless this link is activated.||生成&lt;br /&gt;
|-&lt;br /&gt;
|11||DeadUp||Signal on death||死んだらオン&lt;br /&gt;
|-&lt;br /&gt;
|16||Delete||Delete a map object. Target objects are created and stay spawned until this link is activated. Note: the corresponding collision is disabled even for objects that have their collision data extracted to separate Static Compound files.||削除&lt;br /&gt;
|-&lt;br /&gt;
|29||DemoMember||-||デモ参加&lt;br /&gt;
|-&lt;br /&gt;
|32||FixedCs||-||固定CS&lt;br /&gt;
|-&lt;br /&gt;
|26||ForSale||Links a shop item to its seller (target is the seller NPC).||売り物&lt;br /&gt;
|-&lt;br /&gt;
|19||ForbidAttention||Prevent attention (i.e. interacting with an object, for example picking up a weapon)||アテンションタイプ変更&lt;br /&gt;
|-&lt;br /&gt;
|18||Freeze||Freeze the target object||凍結&lt;br /&gt;
|-&lt;br /&gt;
|7||GimmickSuccess||Success signal (used for minigames)||ネタ成功シグナル&lt;br /&gt;
|-&lt;br /&gt;
|33||HingeCs||Hinge constraint||ヒンジCS&lt;br /&gt;
|-&lt;br /&gt;
|12||LifeZero||Emit a LifeZero signal when the life of the source object is 0||ライフ0&lt;br /&gt;
|-&lt;br /&gt;
|34||LimitHingeCs||Limited hinge constraint||制限付ヒンジCS&lt;br /&gt;
|-&lt;br /&gt;
|27||ModelBind||-||モデルバインド&lt;br /&gt;
|-&lt;br /&gt;
|17||MtxCopyCreate||-||位置継承生成&lt;br /&gt;
|-&lt;br /&gt;
|22||OffWaitRevival||Reset the revival flag of the target object||配置自動セーブオフ&lt;br /&gt;
|-&lt;br /&gt;
|30||PhysSystemGroup||-||物理システムグループ&lt;br /&gt;
|-&lt;br /&gt;
|28||PlacementLOD||Replace the source object with the link target object at lower level of details||配置LOD&lt;br /&gt;
|-&lt;br /&gt;
|36||PulleyCs||-||滑車CS&lt;br /&gt;
|-&lt;br /&gt;
|40||RackAndPinionCs||Rack-and-pinion constraint||ラック＆ピニオンCS&lt;br /&gt;
|-&lt;br /&gt;
|23||Recreate||Recreates the target object||再生成&lt;br /&gt;
|-&lt;br /&gt;
|41||Reference||-||参照&lt;br /&gt;
|-&lt;br /&gt;
|10||Remains||Divine Beast signal||遺物シグナル&lt;br /&gt;
|-&lt;br /&gt;
|25||SensorBind||-||センサバインド&lt;br /&gt;
|-&lt;br /&gt;
|35||SliderCs||Slider constraint||スライダーCS&lt;br /&gt;
|-&lt;br /&gt;
|13||Stable||-||安定&lt;br /&gt;
|-&lt;br /&gt;
|31||StackLink||-||スタック&lt;br /&gt;
|-&lt;br /&gt;
|20||SyncLink||Put the destination object and any object that is linked to it into the same generation group||生成グループ&lt;br /&gt;
|-&lt;br /&gt;
|8||VelocityControl||Velocity control signal||速度制御シグナル&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Link tags===&lt;br /&gt;
&#039;&#039;Not to be confused with [[actor tag]]s.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LinkTagAnd, LinkTagOr, LinkTagNAnd, LinkTagNOr, LinkTagXOr, LinkTagCount, LinkTagPulse, LinkTagNone are small objects that are used to implement a basic logic system in map units.&lt;br /&gt;
&lt;br /&gt;
AND, OR, NAND, NOR, XOR LinkTags are logical operators. They can be used to conditionally set or clear GameData flags, or conditionally spawn objects, trigger other objects, etc. A basic signal is emitted when the LinkTag has been triggered by &#039;&#039;all&#039;&#039; of the source links (for LinkTagAnds) or by one of them (for LinkTagOrs), etc.&lt;br /&gt;
&lt;br /&gt;
Count LinkTags are used to increment a GameData flag every time the link tag itself is signalled.&lt;br /&gt;
&lt;br /&gt;
Pulse LinkTags continuously emit a basic signal with a configurable signal duration (PulseLength)&amp;lt;ref&amp;gt;This appears to require a BasicSig input and does not repeat automatically. In order to get this behavior, fire it with a SwitchTimer.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
None LinkTags have no effect. They are only used to put different map unit objects into the same placement generation group.&lt;br /&gt;
&lt;br /&gt;
Internally, they are all implemented by the same actor class (&amp;lt;code&amp;gt;LinkTag&amp;lt;/code&amp;gt;) since they share most of their core functionality, with only small differences in effects. A single link tag can only handle 0x60 incoming links&amp;lt;ref&amp;gt;0x7100D388C4&amp;lt;/ref&amp;gt;. Only incoming links with defType &amp;lt;= 0xe are processed&amp;lt;ref&amp;gt;0x7100D389DC&amp;lt;/ref&amp;gt;; other links are ignored.&lt;br /&gt;
&lt;br /&gt;
Parameters are documented in [[AIDef:Action/LinkTagBaseAction#MapUnitInstParams]].&lt;br /&gt;
&lt;br /&gt;
==File formats==&lt;br /&gt;
&lt;br /&gt;
===Map unit binary===&lt;br /&gt;
In &#039;&#039;Breath of the Wild&#039;&#039;, map units are stored in a binary format and given the &#039;&#039;mubin&#039;&#039; (Map Unit Binary) file extension. All map object IDs are replaced with CRC32 hashes as a space optimisation. [[BYML]] is used as the serialisation format.&lt;br /&gt;
&lt;br /&gt;
Map units can be found in the [[Content/Map|Map]] content directory, and use the following naming convention: &amp;lt;code&amp;gt;Map/%s/%s/%s%s.mubin&amp;lt;/code&amp;gt; (map type, map name, map name, suffix).&lt;br /&gt;
&lt;br /&gt;
Despite the file extension, &amp;lt;code&amp;gt;Map/%s/Location.mubin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Map/%s/LazyTraverseList.mubin&amp;lt;/code&amp;gt; are not actually map units.&lt;br /&gt;
&lt;br /&gt;
===Source map unit===&lt;br /&gt;
Source map units have muunt&amp;lt;ref&amp;gt;The executable has remnants of error logging functions that print paths to development map units of the following type: &amp;lt;code&amp;gt;Map/Project/%s/Data/%s/%s.muunt&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt; as their file extension and use strings for map object IDs such as &amp;lt;code&amp;gt;F-5_challenge.muunt/obj760&amp;lt;/code&amp;gt; instead of CRC32 hashes of the IDs in map unit binaries.&lt;br /&gt;
[[Category:Internals]]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AIDef:Action/ChangeScene&amp;diff=10943</id>
		<title>AIDef:Action/ChangeScene</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AIDef:Action/ChangeScene&amp;diff=10943"/>
		<updated>2021-02-23T06:18:25Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* DynamicInstParams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AIDef&lt;br /&gt;
|name=ChangeScene&lt;br /&gt;
|type=Action&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== DynamicInstParams ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Type !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| WarpDestMapName || String ||  ||&lt;br /&gt;
Destination map. Format: {MapType}/{Map}&lt;br /&gt;
&lt;br /&gt;
Example: &amp;quot;MainFieldDungeon/RemainsFire&amp;quot;, &amp;quot;MainField/A-1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| WarpDestPosName || String ||  ||&lt;br /&gt;
Destination position (defined in [[Static.mubin]] for each map type)&lt;br /&gt;
&lt;br /&gt;
Example: &amp;quot;StartR&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| FadeType || Int ||  ||&lt;br /&gt;
* 0: Full loading screen (visible Fade and FadeStatus screens)&lt;br /&gt;
* 1: Loading icon on a white background&lt;br /&gt;
* 2: Loading icon on a black background&lt;br /&gt;
|-&lt;br /&gt;
| StartType || Int ||  || &lt;br /&gt;
* 0: Camera behind Link on spawn.&lt;br /&gt;
* 1: Camera behind Link (closer) on spawn.&lt;br /&gt;
* 2: Camera in front of Link on spawn.&lt;br /&gt;
|-&lt;br /&gt;
| EvflName || String ||  ||  Name of the event flow to start after warp is complete&lt;br /&gt;
Example: Demo622_1&lt;br /&gt;
|-&lt;br /&gt;
| EntryPointName || String ||  || Name of the entry point in the event flow&lt;br /&gt;
Example: Demo622_1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Derived definitions ==&lt;br /&gt;
=== Demo_ChangeScene (EventSystemActor) ===&lt;br /&gt;
{{AIDefDerived&lt;br /&gt;
|name=Demo_ChangeScene&lt;br /&gt;
|group_name=&lt;br /&gt;
|derived_from=ChangeScene&lt;br /&gt;
|aiprog=EventSystemActor&lt;br /&gt;
}}&lt;br /&gt;
No overridden parameters.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Scene]]&lt;br /&gt;
* [[AIDef:Action/AreaRoot]] for area-based scene change triggers&lt;br /&gt;
* [[AIDef:Action/FromCDungeonToMainField]]&lt;br /&gt;
* [[AIDef:Action/ToCDungeon]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=GameScene&amp;diff=10939</id>
		<title>GameScene</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=GameScene&amp;diff=10939"/>
		<updated>2021-01-16T20:48:40Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* GameScene state strings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Subsystem infobox|name=GameScene|is_name_official=1|description=Handles the main loop and stages|init_addr_switch150=0x71007D1DD8}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GameScene&#039;&#039;&#039; is a critical subsystem that is responsible for core functionality such as initialising other components, creating [[Stage|stages]] (world, title screen, etc.) and handling the game&#039;s main loop.&lt;br /&gt;
&lt;br /&gt;
Unlike most other subsystems, GameScene is not a singleton: it is a member of the uking::frm::System structure&amp;lt;ref&amp;gt;uking::frm::System::gameScene @ 0x10 (Switch)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
===Stages===&lt;br /&gt;
Also called scenes in XLink code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Map types&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Invalid (&amp;quot;None&amp;quot;)&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Open world stage (except GameTestField) (&amp;quot;オープンワールド&amp;quot;)&lt;br /&gt;
|MainField, AocField&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Indoor stage (&amp;quot;Cダンジョン&amp;quot;)&lt;br /&gt;
|CDungeon, MainFieldSpot, GameTestDungeon&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Open world stage (GameTestField) (&amp;quot;GameTset&amp;quot;)&lt;br /&gt;
|GameTestField&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|MainFieldDungeon (&amp;quot;四大遺物&amp;quot;)&lt;br /&gt;
|MainFieldDungeon&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Indoor stage or viewer stage (&amp;quot;ビューワー&amp;quot;)&lt;br /&gt;
|ActorViewer&lt;br /&gt;
|}&lt;br /&gt;
Maps that have the same stage type typically use the same subsystems and share most characteristics. For example, all open world stages use the [[Tera]] height map terrain system and load [[Map unit|map units]] in the same way.&lt;br /&gt;
&lt;br /&gt;
===StageBinders===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Stage binder types&amp;lt;ref&amp;gt;As returned by the first virtual function in the StageBinderBase interface&amp;lt;/ref&amp;gt;&lt;br /&gt;
!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||OpenWorldStage&lt;br /&gt;
|-&lt;br /&gt;
|1||IndoorStage (CDungeon, ...)&lt;br /&gt;
|-&lt;br /&gt;
|2||MainFieldDungeonStage&lt;br /&gt;
|-&lt;br /&gt;
|3||TitleStage&lt;br /&gt;
|-&lt;br /&gt;
|4||StartupSaveCheckStage&lt;br /&gt;
|-&lt;br /&gt;
|5||Viewer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Fade types===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||&lt;br /&gt;
|-&lt;br /&gt;
|1||&lt;br /&gt;
|-&lt;br /&gt;
|2||Show logo&amp;lt;ref&amp;gt;See 0x71007B8CD0 and [[AIDef:Action/ExitGame]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===GameScene state strings===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+List of state strings in 1.5.0 (incomplete)&amp;lt;ref&amp;gt;The state string is a sead::FixedSafeString&amp;lt;0x100&amp;gt; stored in GameScene @ 0x720.&amp;lt;/ref&amp;gt;&lt;br /&gt;
!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1st||Demo mode {{check}}&lt;br /&gt;
|-&lt;br /&gt;
|2nd||Demo mode&lt;br /&gt;
|-&lt;br /&gt;
|初回シーケンス||Initial sequence - New save&lt;br /&gt;
|-&lt;br /&gt;
|TitleMenu||Title menu&lt;br /&gt;
|-&lt;br /&gt;
|Presentation||Demo mode&lt;br /&gt;
|-&lt;br /&gt;
|E3_2016/Presentation||Demo mode&lt;br /&gt;
|-&lt;br /&gt;
|StartupSaveCheckStage||&lt;br /&gt;
|-&lt;br /&gt;
|Viewer||&lt;br /&gt;
|-&lt;br /&gt;
|CDungeon||Shrine world&lt;br /&gt;
|-&lt;br /&gt;
|MainFieldDungeonStage||Divine beasts and final trial&lt;br /&gt;
|-&lt;br /&gt;
|MainField||The normal overworld&lt;br /&gt;
|-&lt;br /&gt;
|GameTestField||&lt;br /&gt;
|-&lt;br /&gt;
|GameTestField2||&lt;br /&gt;
|-&lt;br /&gt;
|AocField||Trial of the Sword world&lt;br /&gt;
|-&lt;br /&gt;
|GameTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|MonolithTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|SrdTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|MarioClubTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|TestField||&lt;br /&gt;
|-&lt;br /&gt;
|研修用||&lt;br /&gt;
|-&lt;br /&gt;
|MonolithTest100enemy||&lt;br /&gt;
|-&lt;br /&gt;
|MinimumField||&lt;br /&gt;
|-&lt;br /&gt;
|ActorViewer||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Init==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;GameScene::initialize&#039;&#039;&#039; (0x71007A8014)&lt;br /&gt;
**Load the environment graphics archive ([[Content/Env/env.genvb|env.genvb]])&lt;br /&gt;
**Create the GameScene heap&lt;br /&gt;
**Create the [[StageBinder]] heap&lt;br /&gt;
**Start the GameScene TaskMgr (thread)&lt;br /&gt;
**&#039;&#039;&#039;InitializeSubSystem&#039;&#039;&#039; (note: some of the below names are unofficial, see [[Subsystems]] for more details)&lt;br /&gt;
***[[AutoPlacementFlowMgr]]&lt;br /&gt;
***[[FadeProgress]]&lt;br /&gt;
***[[DungeonPackMgr]]&lt;br /&gt;
***[[PlayerInfo]]&lt;br /&gt;
***[[GameSceneSubsys2]]&lt;br /&gt;
***[[Resetter]]&lt;br /&gt;
***[[GameSceneSubsys4]]&lt;br /&gt;
***[[GameSceneSubsys5]]&lt;br /&gt;
***[[ActorHeapUtil]]&lt;br /&gt;
***[[E3Mgr]]&lt;br /&gt;
***[[aoc2]]&lt;br /&gt;
***[[aoc3]]&lt;br /&gt;
***[[GameSceneSubsys6]]&lt;br /&gt;
***[[CookingMgr]]&lt;br /&gt;
***[[GameSceneSubsys7]]&lt;br /&gt;
***[[ActorLimiter]]&lt;br /&gt;
***[[RuneMgr]]&lt;br /&gt;
***[[StasisMgr]]&lt;br /&gt;
***[[IceBlockMgr]]&lt;br /&gt;
***[[AmiiboMgr]]&lt;br /&gt;
***[[DropMgr]]&lt;br /&gt;
***[[GameSceneSubsys12]]&lt;br /&gt;
***[[GameSceneSubsys13]]&lt;br /&gt;
***[[GameSceneSubsys14]]&lt;br /&gt;
***[[GameSceneSubsys15]]&lt;br /&gt;
***[[ResidentActorMgr]]&lt;br /&gt;
***Create UI heap&lt;br /&gt;
***[[uiManager]]&lt;br /&gt;
***Load the [[Fade]] screen&lt;br /&gt;
***[[OnUiActorMgr]]&lt;br /&gt;
***[[CreatePlayerEquipActorMgr]]&lt;br /&gt;
***[[CreatePlayerTrashActorMgr]]&lt;br /&gt;
***[[TipsMgr]]&lt;br /&gt;
***[[nxargs]]&lt;br /&gt;
***GameScene::initializeGraphicsLayer_&lt;br /&gt;
***ErrorViewerTask init&lt;br /&gt;
***Set Get Demo handler&lt;br /&gt;
***Set Check Weapon Free Slot handler (1, 2)&lt;br /&gt;
***...&lt;br /&gt;
***[[SaveSystem]] init&lt;br /&gt;
***Set [[#Initial state|initial state]]&lt;br /&gt;
***nn::err::ShowUnacceptableAddOnContentVersionError if needed&lt;br /&gt;
****[Debug] StarterPackMgr: Load Title pack&lt;br /&gt;
****[[GlobalParameter]]&lt;br /&gt;
****GlobalParameter: Load [[actorpack]]&lt;br /&gt;
****E3Mgr: Load [[Content/System/BuildTime.txt|System/BuildTime.txt]] (stubbed in release versions)&lt;br /&gt;
****TipsMgr: Load tips&lt;br /&gt;
****ResidentActorMgr: Load configuration ([[ResidentActors.byml]])&lt;br /&gt;
****AutoPlacementFlowMgr: Load auto placement [[event flow]]s&lt;br /&gt;
***KingEditor: Stubbed&lt;br /&gt;
***E3Mgr: init&lt;br /&gt;
&lt;br /&gt;
===Initial state===&lt;br /&gt;
The initial state the game launches into is determined by GameScene&amp;lt;ref&amp;gt;GameScene::initialize, 0x71007A86CC&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
const bool isFirstLaunch = SaveSystem::sInstance-&amp;gt;isFirstLaunch();&lt;br /&gt;
State* state = isFirstLaunch ? &amp;amp;state_NewSave : &amp;amp;state_LunchTitle;&lt;br /&gt;
&lt;br /&gt;
if ( aocManager::sInstance &amp;amp;&amp;amp; aocManager::sInstance-&amp;gt;flags &amp;amp; 2 )&lt;br /&gt;
  nn::err::ShowUnacceptableAddOnContentVersionError();&lt;br /&gt;
&lt;br /&gt;
const bool isDemo = E3Mgr::sInstance &amp;amp;&amp;amp; E3Mgr::sInstance-&amp;gt;isDemoMode();&lt;br /&gt;
if (isDemo)&lt;br /&gt;
  state = &amp;amp;state_LunchTitle;&lt;br /&gt;
&lt;br /&gt;
if (!isDemo &amp;amp;&amp;amp; isFirstLaunch)&lt;br /&gt;
  sIsFirstNonDemoLaunch = 1;&lt;br /&gt;
&lt;br /&gt;
StateMachine::changeState(&amp;amp;this-&amp;gt;stateMachine, state);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==States==&lt;br /&gt;
Note: when the Indoor stage binder is initialised and if the map name changes, a &amp;quot;dungeon&amp;quot; [[telemetry]] report is emitted with &amp;quot;leave&amp;quot; or &amp;quot;enter&amp;quot; as the event name and the old/new map name as additional data&amp;lt;ref&amp;gt;StageBinder::initAndReportDungeonLeaveEnter{{un}} at 0x71007B79A8&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===StageMgr===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
===StageSelect===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
===StageTransition===&lt;br /&gt;
Entered before stage generation starts and after Fade (loading screen) has been initialised and made visible. This state machine state is a noop.&lt;br /&gt;
&lt;br /&gt;
===LunchTitle===&lt;br /&gt;
LunchTitle (sic) is entered when the game is launched. The internal state string is &amp;quot;TitleMenu&amp;quot; or (in demo mode) &amp;quot;2nd&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The run function is extremely simple: it simply creates the TitleStage binder (with doNotShowLogo=true&amp;lt;ref&amp;gt;0x71007B47D8&amp;lt;/ref&amp;gt;) when the &amp;quot;common run&amp;quot; status (see below) is 0xa, then calls the &amp;quot;common run&amp;quot; function (with isNewSave=false&amp;lt;ref&amp;gt;0x71007B47F4&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===NewSave===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Entered on the first boot or when the new game option is selected. The associated state string is &amp;quot;初回シーケンス&amp;quot; (&amp;quot;initial sequence&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===PatchError===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
&lt;br /&gt;
==Main loop==&lt;br /&gt;
Three GameScene functions are called in a row from RootTask (see [[Executable]]) after initialisation has completed, i.e. in the game&#039;s main loop. (Note: these 3 names are unofficial.)&lt;br /&gt;
&lt;br /&gt;
===precalc===&lt;br /&gt;
&lt;br /&gt;
*FadeProgress: Update the progress gauge on the Fade screen (animated).&lt;br /&gt;
*Update current map name based on player position (when Link is not in a dungeon).&lt;br /&gt;
*Run StageMgr and StageSelect code.&lt;br /&gt;
*If a flag is set, run the final step of stage generation. (Unused?)&lt;br /&gt;
*If stage status is &amp;quot;NeedsGeneration&amp;quot;:&lt;br /&gt;
**Call some [[MCMgr]] function at 0x71007A9198.&lt;br /&gt;
**Run save upload subsystem if needed.&lt;br /&gt;
**Call GameScene::genStage with second argument being &amp;lt;code&amp;gt;!EventMgr::sInstance-&amp;gt;hasActiveEvent() || EventMgr::sInstance-&amp;gt;getActiveEvent()-&amp;gt;name != &amp;quot;Demo169_0&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*If stage status is &amp;quot;NeedsUnload&amp;quot;:&lt;br /&gt;
**Call some [[MCMgr]] function at 0x71007A9198.&lt;br /&gt;
**Run save upload subsystem if needed.&lt;br /&gt;
**Call GameScene::unloadStage.&lt;br /&gt;
*If no stage is being unloaded, call &amp;lt;code&amp;gt;this-&amp;gt;activeStageBinder-&amp;gt;getStage()-&amp;gt;preCalc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*??? (something involving GameScene Subsystem #12)&lt;br /&gt;
*Call some [[MCMgr]] function at 0x71007A9198, again.&lt;br /&gt;
*If the current state is StageMgr:&lt;br /&gt;
**Reset the current stage binder by setting a flag for StageMgr if needed (after a Blood Moon{{check}})&lt;br /&gt;
**If a forced blood moon is ready&lt;br /&gt;
***If panic blood moons can be triggered (see [[Blood moon#Panic blood moon inhibitors]]), call the Blood Moon demo (Demo011_0).&lt;br /&gt;
***Report the panic blood moon via the [[telemetry]] system.&lt;br /&gt;
**If any [[Blood moon#Panic Blood Moons|panic condition]] is true, and if panic blood moons are enabled&amp;lt;ref&amp;gt;GameConfig::sInstance-&amp;gt;disablePanicBloodMoons (@ 0x3da on Switch 1.5.0) must be false.&amp;lt;/ref&amp;gt;, request a panic blood moon by setting a SkyMgr flag. SkyMgr will start a 90 frame timer (3 seconds) and set a ready flag once it has expired. The timer is reset every time the panic blood moon is temporarily inhibited.&lt;br /&gt;
&lt;br /&gt;
===calc===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
===postcalc===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
&lt;br /&gt;
==Common state run function==&lt;br /&gt;
Called from StageSelectRun, LunchTitleRun and NewSaveRun.&lt;br /&gt;
&lt;br /&gt;
*Status 0:&lt;br /&gt;
**Start loading&lt;br /&gt;
***Finish startup logo (Switch)&amp;lt;ref&amp;gt;0x71007AF6F8&amp;lt;/ref&amp;gt;&lt;br /&gt;
***If the state string is set to 初回シーケンス, clear the Resource system cache (&amp;quot;ClearAllCaches&amp;quot;)&amp;lt;ref&amp;gt;0x71007AFBDC&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***Debug stuff&amp;lt;ref&amp;gt;0x71007AFDE4&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***E3 Demo stuff&amp;lt;ref&amp;gt;0x71007AFEF4&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***Show the Fade screen (loading screen) if the state string does &#039;&#039;not&#039;&#039;&amp;lt;ref&amp;gt;0x71007AFF08&amp;lt;/ref&amp;gt; end with &amp;quot;Viewer&amp;quot; or is &#039;&#039;not&#039;&#039; any of the following strings: 1st, 2nd, Presentation, TitleMenu, 初回シーケンス, StartupSaveCheckStage&lt;br /&gt;
****And then show the FadeStatus&amp;lt;ref&amp;gt;0x71007AFFC4&amp;lt;/ref&amp;gt; and the LoadSaveIcon screens&amp;lt;ref&amp;gt;0x71007AFFCC&amp;lt;/ref&amp;gt;.&lt;br /&gt;
****Otherwise, only open the Fade screen but do not show loading progress&amp;lt;ref&amp;gt;See function at 0x71007B0C60&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***StageSelect stuff&amp;lt;ref&amp;gt;0x71007B0000&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***Stop &amp;quot;resource compaction&amp;quot; and wait for it to be stopped&amp;lt;ref&amp;gt;0x71007B00B4 (stop compaction) to 0x71007B010C (end of the busy loop)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***If the stage string starts with CDungeon&amp;lt;ref&amp;gt;0x71007B0124&amp;lt;/ref&amp;gt; or MainFieldDungeonStage&amp;lt;ref&amp;gt;0x71007B0160&amp;lt;/ref&amp;gt;, start loading the associated DungeonPack&amp;lt;ref&amp;gt;0x71007B0190&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***BaseProcMgr: start ActorCreate initializer thread&amp;lt;ref&amp;gt;0x71011BF1C4&amp;lt;/ref&amp;gt;{{check}}.&lt;br /&gt;
***FadeProgress: reset internal state&amp;lt;ref&amp;gt;0x71007B01D4&amp;lt;/ref&amp;gt;, set progress to 0%&amp;lt;ref&amp;gt;0x71007B01E0&amp;lt;/ref&amp;gt; and mark loading as active&amp;lt;ref&amp;gt;0x71007B01E8&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*Status 2:&lt;br /&gt;
**If the GameScene state machine&#039;s current state is StageSelect or NewSave, do something involving LayerMgrTask and the Renderer.{{check}}&lt;br /&gt;
*Status 0xa:&lt;br /&gt;
**TipsMgr: update tips if the loading screen is &#039;&#039;visible&#039;&#039; (not just opened). TipsMgr will load tips depending on the stage that is being loaded.&lt;br /&gt;
*Status 0xb:&lt;br /&gt;
**Set GameScene&#039;s isNewSave property.&lt;br /&gt;
**Reset status to 0.&lt;br /&gt;
**Change GameScene state to StageTransition&amp;lt;ref&amp;gt;0x71007B1058&amp;lt;/ref&amp;gt;.&lt;br /&gt;
**Set stage status to &amp;quot;NeedsGeneration&amp;quot; (2)&amp;lt;ref&amp;gt;0x71007B105C&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Stage generation==&lt;br /&gt;
&lt;br /&gt;
*Terrain::sInstance-&amp;gt;flags |= 0x180u&lt;br /&gt;
*Step 0&lt;br /&gt;
**Reload Title.pack if the stage that needs to be generated is TitleStage (3)&amp;lt;ref&amp;gt;0x71007AC8A0&amp;lt;/ref&amp;gt;.&lt;br /&gt;
**StageSelect checks&amp;lt;ref&amp;gt;0x71007AD3AC&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Step 1&lt;br /&gt;
**If a pack was loaded by DungeonPackMgr, wait for DungeonPack loading to finish&amp;lt;ref&amp;gt;DungeonPack読み込み待ち&amp;lt;/ref&amp;gt; and switch active pack to the [[dungeon pack]].&lt;br /&gt;
*Step 2&lt;br /&gt;
**If the stage to load is TitleStage, wait for TitlePack loading to finish&amp;lt;ref&amp;gt;TitlePack読み込み待ち&amp;lt;/ref&amp;gt; and switch active pack to the title pack.&lt;br /&gt;
*Step 3: start stage generation&amp;lt;ref&amp;gt;ステージ生成開始&amp;lt;/ref&amp;gt;&lt;br /&gt;
**PlacementMgr&lt;br /&gt;
**ActorSystem::sInstance-&amp;gt;field_13A = 0&lt;br /&gt;
**Update current map flags (e.g. sIsDungeon)&lt;br /&gt;
**Clear BaseProcMgr ActorCreate queue{{check}}&lt;br /&gt;
**Create uking::Stage::ForBaseProcDual heap (if not already done), which will be used for actors, ActorCreator and BaseProcMgr&lt;br /&gt;
**ActorSystem::sInstance-&amp;gt;field_139 = 0&lt;br /&gt;
**If the [[#State strings|state string]] starts with 初回シーケンス, MainField, GameTestField, GameTestField2, AocField, CDungeon, MainFieldDungeonStage, GameTestDungeon, MonolithTestDungeon, SrdTestDungeon, MarioClubTestDungeon, TestField, 研修用, MonolithTest100enemy, MinimumField, or ActorViewer, call GameScene::startBgProcessing (0x71007B2054)&lt;br /&gt;
**If &amp;quot;new save&amp;quot; was selected, initialize PauseMenuDataMgr data&lt;br /&gt;
**If the stage to load is TitleStage, load Layout/Title.blarc for ui::LayoutResourceMgr.&lt;br /&gt;
**If &amp;quot;new save&amp;quot; was selected and the awakening demo hasn&#039;t been played since the game was launched&amp;lt;ref&amp;gt;0x71007ADB3C&amp;lt;/ref&amp;gt;, ask [[EventMgr]] to call Demo169_0.&lt;br /&gt;
**Some PhysicsMemSys stuff (0x71007ADBE0).&lt;br /&gt;
*Step 4&lt;br /&gt;
**Wait for completion of Title BG processing &#039;&#039;&#039;(20% of the loading bar)&#039;&#039;&#039;&lt;br /&gt;
**uiManager (0x71007ACD04)&lt;br /&gt;
**Initialize StatisticsMgr paths depending on current map type.&lt;br /&gt;
**Update aoc2&#039;s mapType and mapName fields.&lt;br /&gt;
*Step 5&lt;br /&gt;
**PhysicsMemSys stuff (0x71007ACDB8, 0x71007ACDC0, 0x71007ACDD0)&lt;br /&gt;
**BaseProcMgr: request &amp;quot;PreDelete&amp;quot; actors&amp;lt;ref&amp;gt;0x71007ACDE4&amp;lt;/ref&amp;gt;&lt;br /&gt;
**BaseProcMgr: stop ActorCreate initializer thread and clean up internal state{{check}}&lt;br /&gt;
**agl::lyr::Renderer and Graphics stuff&lt;br /&gt;
*Step 6&lt;br /&gt;
**Load [[env.genvb]] binary (gsys::ModelSceneEnv::clearImpl + loadBinaryImpl)&lt;br /&gt;
**If the stage binder type is 0, 1 or 2 (OpenWorldStage, IndoorStage or MainFieldDungeonStage):&lt;br /&gt;
***&#039;&#039;&#039;Set loading progress to 40%.&#039;&#039;&#039;&lt;br /&gt;
***Graphics stuff, again&lt;br /&gt;
***OnUiActorMgr&lt;br /&gt;
***GameScene::loadTera (on a separate thread)&lt;br /&gt;
*Step 7&lt;br /&gt;
**If the stage binder type is 0, 1 or 2 (OpenWorldStage, IndoorStage or MainFieldDungeonStage):&lt;br /&gt;
***Wait for Tera to load&amp;lt;ref&amp;gt;tera読み込み待ち&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Step 8&lt;br /&gt;
**...{{check}}&lt;br /&gt;
**Wait for Tera to generate collision&lt;br /&gt;
**...{{check}}&lt;br /&gt;
*Step 9&lt;br /&gt;
**Initialize [[QuestMgr]].&lt;br /&gt;
**&#039;&#039;&#039;Set loading progress to 60%.&#039;&#039;&#039;&lt;br /&gt;
*Step 10&lt;br /&gt;
**Load stage specific resources&amp;lt;ref&amp;gt;ステージ固有リソースの読み込み待ち&amp;lt;/ref&amp;gt;: if the binder type is StageBinderType::Title (3), the Title layout archive is loaded by [[LayoutResourceMgr]]. Otherwise, nothing happens.&lt;br /&gt;
*Step 11&lt;br /&gt;
**[[#Stage generation step 11]]&lt;br /&gt;
**Update player saved position, map type, map name, ...&lt;br /&gt;
**Change GameScene state to StageSelect or StageMgr (step 11-6 sets the state pointer to StageMgr).&lt;br /&gt;
**Terrain stuff{{check}}&lt;br /&gt;
**DungeonPackMgr: clean up state (destroy arena and heap) and unregister entry factory.&lt;br /&gt;
**Set flag 0xa25 (genStageStep12Reached?{{check}}) on the Fade screen instance.&lt;br /&gt;
**Stop resource compaction and set some flags on the TextureHandleMgr.&lt;br /&gt;
*Step 12&lt;br /&gt;
**Set aoc2 flag 0x4 if &amp;lt;code&amp;gt;isNewSave || !isShrine || isStageDebug&amp;lt;/code&amp;gt; and clear it otherwise.&lt;br /&gt;
**[[#Stage generation step 12]]&lt;br /&gt;
**Terrain stuff again{{check}}&lt;br /&gt;
*Step 13 (final)&lt;br /&gt;
**[[#Stage generation final step]]&lt;br /&gt;
**Various flags are set upon completion, for example GameScene stage status is set to 0, isInitializingStage is set to false, etc.&lt;br /&gt;
**FadeProgress is reset.&lt;br /&gt;
**Stage generation debug timer is stopped.&lt;br /&gt;
**aoc2: IsLastPlayHardMode is updated.&lt;br /&gt;
**GameScene::sNeedsOptionLoad is set to true.&lt;br /&gt;
&lt;br /&gt;
===Stage generation step 11===&lt;br /&gt;
&lt;br /&gt;
*Step 0: init before stage gen (ステージ生成前の初期化処理)&amp;lt;ref&amp;gt;The function can be found at 0x71007B15A8 in Switch 1.5.0.&amp;lt;/ref&amp;gt;&lt;br /&gt;
**Various flags are set (GameScene, BaseProcMgr, Awareness, EventMgr), in particular field 0x1d12a is set to true if &amp;lt;code&amp;gt;!isNewSave&amp;lt;/code&amp;gt;.&lt;br /&gt;
**Set initial position based on the stage binder. This may be overridden with a saved position or an event position later on.&lt;br /&gt;
**GameSceneSubsys2, ActorSystem: set some flags&lt;br /&gt;
**GameSceneSubsys14: Update current location name (game data flag: SaveLocationName). The flag is written to if the player is in a shrine or a Divine Beast. Otherwise, it&#039;s read.&lt;br /&gt;
**PhysicsMemSys: set indoor flag if the stage binder type is Indoor (1)&lt;br /&gt;
**aoc2: Set flag 0x1 (IsLastPlayHardMode) if the corresponding game data flag is set. This is what the rest of the game uses to determine if Master Mode is enabled.&lt;br /&gt;
**Effect, Reaction, PhysicsMemSys, EventMgr&lt;br /&gt;
**PlacementMgr, LODMgr, EventMgr, WorldMgr, Awareness, Effect, XLink, VFR&lt;br /&gt;
**aocManager: set latest version played and HasAocVer{1,2,3} flags.&lt;br /&gt;
**Terrain&lt;br /&gt;
**Initialize the sound system and the UI manager&lt;br /&gt;
**If the stage binder type is OpenWorld (0) or the map name is ActorViewer or the current stage is a debug map:&lt;br /&gt;
***Create the HorseMgr instance, initialize it and create the horse actor.&lt;br /&gt;
***Create the WolfLinkMgr instance and initialize it.&lt;br /&gt;
***Create the MotorcycleMgr instance and initialize it.&lt;br /&gt;
**GameSceneSubsys5, GameSceneSubsys4: ? {{check}}&lt;br /&gt;
**If a flag is set (GameScene @ 0x6e5), SaveSystem::startLoad is called.&lt;br /&gt;
**TipsMgr: Initialize the TipsSystemActor.&lt;br /&gt;
*Step 1: wait for horse generation (馬の生成待ち)&lt;br /&gt;
*Step 2: if the stage binder type is not Title and not Viewer and not StartupSaveCheck, initialize PauseMenuDataMgr (PauseMenuDataMgr::fromSaveData).&lt;br /&gt;
*Step 3: wait for player equipment actor generation to complete (プレイヤーの装備アクターの生成完了待ち): CreatePlayerEquipActorMgr&lt;br /&gt;
*Step 4&lt;br /&gt;
**aocManager: parse MainField static map unit (if aocManager exists)&lt;br /&gt;
**Something involving vectors and calculations{{check}}&lt;br /&gt;
*Step 5&lt;br /&gt;
**Update FadeProgress based on the queue size of the BaseProcMgr actor create initializer{{check}} and PlacementMgr load progress{{check}}. This step represents the &#039;&#039;&#039;last 40% of the progress bar&#039;&#039;&#039;.&lt;br /&gt;
**Start [[#Stage generation step 11-5b]] as an async task&amp;lt;ref&amp;gt;0x71007B2C78&amp;lt;/ref&amp;gt; and wait for it to complete.&lt;br /&gt;
**Stop the Fade screen &amp;quot;color animator&amp;quot;.&lt;br /&gt;
**Call this-&amp;gt;stage-&amp;gt;initForStageGen (vtable @ 0x60). For most stages, this calls WorldMgr&#039;s SkyMgr::update.&lt;br /&gt;
**Graphics, uiManager, agl::lyr::Renderer: ?{{check}}&lt;br /&gt;
**Set this-&amp;gt;activeStageBinder (@ 0x2a0) to this-&amp;gt;stageBinder (@ 0x2a8)&amp;lt;ref&amp;gt;0x71007B1A88&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*Step 6&lt;br /&gt;
**Set next GameScene state to StageMgr.&lt;br /&gt;
**qword_71025D16C0: ?{{check}}&lt;br /&gt;
**If the binder type is Title (3):&lt;br /&gt;
***If the ROM type is &amp;quot;RID_Demo&amp;quot;: reset some internal state in SaveMgr and SaveSystem.&lt;br /&gt;
***If aoc3 is initialized, set Blight rematch counters to 0 for all four blights.&lt;br /&gt;
**PauseMenuDataMgr: Update IsOpenItemCategory flags if necessary.&lt;br /&gt;
*Step 7: wait for save data upload to finish (if an upload is in progress).&lt;br /&gt;
*Step 8: BaseProcMgr: wait for some actor create initializer event and reset it{{check}}&lt;br /&gt;
&lt;br /&gt;
====Stage generation step 11-5b====&lt;br /&gt;
&lt;br /&gt;
*ProductReporter: reset scene work time (the amount of time since the last scene generation) and reset the blood moon reporter.&lt;br /&gt;
*Destroy the previous stage binder (this-&amp;gt;activeStageBinder) if it&#039;s different from the current binder (this-&amp;gt;stageBinder), and also set this-&amp;gt;stage to nullptr.&lt;br /&gt;
*&#039;&#039;Set the scene change event flow and entry point names&#039;&#039;:&lt;br /&gt;
**If the binder type is Title: Demo025_2&amp;lt;Demo025_2&amp;gt;&lt;br /&gt;
**If aocManager::sInstance-&amp;gt;version &amp;gt;= 0x200 and !100enemy_Activated and IsGet_Weapon_Sword_070 and !IsPlayed_Demo146_0:&lt;br /&gt;
***If the current [[map area]] is 14 (Korok Forest): &lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 1: Aoc2Resident&amp;lt;InForrest&amp;gt;&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 0: Demo201_0&amp;lt;Demo201_0&amp;gt;&lt;br /&gt;
***Otherwise:&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 2: Aoc2Resident&amp;lt;InShrineOfResurrection&amp;gt;&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 1: Aoc2Resident&amp;lt;InOtherArea&amp;gt;&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 0: Demo200_0&amp;lt;Demo200_0&amp;gt;&lt;br /&gt;
**Otherwise, if the map type is MainField:&lt;br /&gt;
***If [[BalladOfHeroActiveTiming]] is 2: Demo600_1&amp;lt;Demo600_1&amp;gt;&lt;br /&gt;
***If [[BalladOfHeroActiveTiming]] is 1: Demo600_1&amp;lt;Demo600_0&amp;gt;&lt;br /&gt;
***Otherwise: Demo025_0&amp;lt;Demo025_0&amp;gt;&lt;br /&gt;
**If the map type is CDungeon or MarioClubTestDungeon: Demo008_2&amp;lt;Demo008_2&amp;gt;&lt;br /&gt;
*WorldMgr ShootingStarMgr: Update the isMainField flag.&lt;br /&gt;
*AmiiboMgr: Set flag 0x40 if the map name is MainField, otherwise clear it.&lt;br /&gt;
*&#039;&#039;&#039;Create the stage&#039;&#039;&#039;&amp;lt;ref&amp;gt;0x71007B3C5C&amp;lt;/ref&amp;gt;.&lt;br /&gt;
**The stage class is automatically selected based on the stage binder type.&lt;br /&gt;
**stage-&amp;gt;init and stage-&amp;gt;postInit are called here&amp;lt;ref&amp;gt;0x71007CC024&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Stage generation step 12===&lt;br /&gt;
&lt;br /&gt;
*Step 0:&lt;br /&gt;
**[1.4.0+] If BalladOfHeroes_Step02 is false or BalladOfHeroes_Step03 is true, and if the player&#039;s equipped weapon (category 0) is Weapon_Sword_502 (One-Hit Obliterator), that weapon is removed from the inventory.&lt;br /&gt;
**&#039;&#039;&#039;FadeProgress is set to 100%&#039;&#039;&#039;.&lt;br /&gt;
*Step 1: Wait for environment map, grass, etc. (環境マップや草などの準備待ち) and set various flags (GameScene globals, Fade, BaseProcMgr).&lt;br /&gt;
*Step 2: Wait for 3 game ticks.&lt;br /&gt;
*Step 3: Terrain stuff{{check}}&lt;br /&gt;
*Step 4: ?{{check}}&lt;br /&gt;
*Step 5: Call the scene start event flow.&lt;br /&gt;
*Step 6:&lt;br /&gt;
**Wait for the scene start event flow (シーン開始イベントスタート待ち)&lt;br /&gt;
**Set some flags (Player, WorldMgr, PlacementMgr, ActorSystem)&lt;br /&gt;
&lt;br /&gt;
===Stage generation final step===&lt;br /&gt;
&lt;br /&gt;
*Sound, qword_71025D04F0, qword_71025D16C0, qword_71025D1740: ? {{check}}&lt;br /&gt;
*Clear the temporary stage binder pointer (which was used only during generation).&lt;br /&gt;
*Close the Fade and the FadeStatus screens. This effectively hides the loading screen.&lt;br /&gt;
*TipsMgr: TipsSystemActor is reset and the current date is stored.&lt;br /&gt;
*In dev mode, write a list of all loaded resources to %PROJECT_ROOT%/Log/BootupPatrol/res_title.csv.&lt;br /&gt;
*If the active stage binder type is Title (3) and resident actors haven&#039;t been loaded yet, start title background processing.&lt;br /&gt;
*Clear the &amp;quot;has played awakening demo&amp;quot; flag (not the game data flag!) if there is no active event or if the active event is not Demo169_0.&lt;br /&gt;
*Set this-&amp;gt;stageGenerated to 1&amp;lt;ref&amp;gt;0x71007B2038&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Internals]]&lt;br /&gt;
[[Category:Subsystems (BotW)]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=GameScene&amp;diff=10938</id>
		<title>GameScene</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=GameScene&amp;diff=10938"/>
		<updated>2021-01-16T20:47:48Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* GameScene state strings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Subsystem infobox|name=GameScene|is_name_official=1|description=Handles the main loop and stages|init_addr_switch150=0x71007D1DD8}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GameScene&#039;&#039;&#039; is a critical subsystem that is responsible for core functionality such as initialising other components, creating [[Stage|stages]] (world, title screen, etc.) and handling the game&#039;s main loop.&lt;br /&gt;
&lt;br /&gt;
Unlike most other subsystems, GameScene is not a singleton: it is a member of the uking::frm::System structure&amp;lt;ref&amp;gt;uking::frm::System::gameScene @ 0x10 (Switch)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
===Stages===&lt;br /&gt;
Also called scenes in XLink code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Map types&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Invalid (&amp;quot;None&amp;quot;)&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Open world stage (except GameTestField) (&amp;quot;オープンワールド&amp;quot;)&lt;br /&gt;
|MainField, AocField&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Indoor stage (&amp;quot;Cダンジョン&amp;quot;)&lt;br /&gt;
|CDungeon, MainFieldSpot, GameTestDungeon&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Open world stage (GameTestField) (&amp;quot;GameTset&amp;quot;)&lt;br /&gt;
|GameTestField&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|MainFieldDungeon (&amp;quot;四大遺物&amp;quot;)&lt;br /&gt;
|MainFieldDungeon&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Indoor stage or viewer stage (&amp;quot;ビューワー&amp;quot;)&lt;br /&gt;
|ActorViewer&lt;br /&gt;
|}&lt;br /&gt;
Maps that have the same stage type typically use the same subsystems and share most characteristics. For example, all open world stages use the [[Tera]] height map terrain system and load [[Map unit|map units]] in the same way.&lt;br /&gt;
&lt;br /&gt;
===StageBinders===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Stage binder types&amp;lt;ref&amp;gt;As returned by the first virtual function in the StageBinderBase interface&amp;lt;/ref&amp;gt;&lt;br /&gt;
!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||OpenWorldStage&lt;br /&gt;
|-&lt;br /&gt;
|1||IndoorStage (CDungeon, ...)&lt;br /&gt;
|-&lt;br /&gt;
|2||MainFieldDungeonStage&lt;br /&gt;
|-&lt;br /&gt;
|3||TitleStage&lt;br /&gt;
|-&lt;br /&gt;
|4||StartupSaveCheckStage&lt;br /&gt;
|-&lt;br /&gt;
|5||Viewer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Fade types===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||&lt;br /&gt;
|-&lt;br /&gt;
|1||&lt;br /&gt;
|-&lt;br /&gt;
|2||Show logo&amp;lt;ref&amp;gt;See 0x71007B8CD0 and [[AIDef:Action/ExitGame]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===GameScene state strings===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+List of state strings in 1.5.0 (incomplete)&amp;lt;ref&amp;gt;The state string is a sead::FixedSafeString&amp;lt;0x100&amp;gt; stored in GameScene @ 0x720.&amp;lt;/ref&amp;gt;&lt;br /&gt;
!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1st||Demo mode {{check}}&lt;br /&gt;
|-&lt;br /&gt;
|2nd||Demo mode&lt;br /&gt;
|-&lt;br /&gt;
|初回シーケンス||Initial sequence - New save&lt;br /&gt;
|-&lt;br /&gt;
|TitleMenu||Title menu&lt;br /&gt;
|-&lt;br /&gt;
|Presentation||Demo mode&lt;br /&gt;
|-&lt;br /&gt;
|E3_2016/Presentation||Demo mode&lt;br /&gt;
|-&lt;br /&gt;
|StartupSaveCheckStage||&lt;br /&gt;
|-&lt;br /&gt;
|Viewer||&lt;br /&gt;
|-&lt;br /&gt;
|CDungeon||Shrine world&lt;br /&gt;
|-&lt;br /&gt;
|MainFieldDungeonStage||Divine beasts and final trial&lt;br /&gt;
|-&lt;br /&gt;
|MainField||The normal overworld&lt;br /&gt;
|-&lt;br /&gt;
|GameTestField||&lt;br /&gt;
|-&lt;br /&gt;
|GameTestField2||&lt;br /&gt;
|-&lt;br /&gt;
|AocField||Trial of the Word world&lt;br /&gt;
|-&lt;br /&gt;
|GameTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|MonolithTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|SrdTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|MarioClubTestDungeon||&lt;br /&gt;
|-&lt;br /&gt;
|TestField||&lt;br /&gt;
|-&lt;br /&gt;
|研修用||&lt;br /&gt;
|-&lt;br /&gt;
|MonolithTest100enemy||&lt;br /&gt;
|-&lt;br /&gt;
|MinimumField||&lt;br /&gt;
|-&lt;br /&gt;
|ActorViewer||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Init==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;GameScene::initialize&#039;&#039;&#039; (0x71007A8014)&lt;br /&gt;
**Load the environment graphics archive ([[Content/Env/env.genvb|env.genvb]])&lt;br /&gt;
**Create the GameScene heap&lt;br /&gt;
**Create the [[StageBinder]] heap&lt;br /&gt;
**Start the GameScene TaskMgr (thread)&lt;br /&gt;
**&#039;&#039;&#039;InitializeSubSystem&#039;&#039;&#039; (note: some of the below names are unofficial, see [[Subsystems]] for more details)&lt;br /&gt;
***[[AutoPlacementFlowMgr]]&lt;br /&gt;
***[[FadeProgress]]&lt;br /&gt;
***[[DungeonPackMgr]]&lt;br /&gt;
***[[PlayerInfo]]&lt;br /&gt;
***[[GameSceneSubsys2]]&lt;br /&gt;
***[[Resetter]]&lt;br /&gt;
***[[GameSceneSubsys4]]&lt;br /&gt;
***[[GameSceneSubsys5]]&lt;br /&gt;
***[[ActorHeapUtil]]&lt;br /&gt;
***[[E3Mgr]]&lt;br /&gt;
***[[aoc2]]&lt;br /&gt;
***[[aoc3]]&lt;br /&gt;
***[[GameSceneSubsys6]]&lt;br /&gt;
***[[CookingMgr]]&lt;br /&gt;
***[[GameSceneSubsys7]]&lt;br /&gt;
***[[ActorLimiter]]&lt;br /&gt;
***[[RuneMgr]]&lt;br /&gt;
***[[StasisMgr]]&lt;br /&gt;
***[[IceBlockMgr]]&lt;br /&gt;
***[[AmiiboMgr]]&lt;br /&gt;
***[[DropMgr]]&lt;br /&gt;
***[[GameSceneSubsys12]]&lt;br /&gt;
***[[GameSceneSubsys13]]&lt;br /&gt;
***[[GameSceneSubsys14]]&lt;br /&gt;
***[[GameSceneSubsys15]]&lt;br /&gt;
***[[ResidentActorMgr]]&lt;br /&gt;
***Create UI heap&lt;br /&gt;
***[[uiManager]]&lt;br /&gt;
***Load the [[Fade]] screen&lt;br /&gt;
***[[OnUiActorMgr]]&lt;br /&gt;
***[[CreatePlayerEquipActorMgr]]&lt;br /&gt;
***[[CreatePlayerTrashActorMgr]]&lt;br /&gt;
***[[TipsMgr]]&lt;br /&gt;
***[[nxargs]]&lt;br /&gt;
***GameScene::initializeGraphicsLayer_&lt;br /&gt;
***ErrorViewerTask init&lt;br /&gt;
***Set Get Demo handler&lt;br /&gt;
***Set Check Weapon Free Slot handler (1, 2)&lt;br /&gt;
***...&lt;br /&gt;
***[[SaveSystem]] init&lt;br /&gt;
***Set [[#Initial state|initial state]]&lt;br /&gt;
***nn::err::ShowUnacceptableAddOnContentVersionError if needed&lt;br /&gt;
****[Debug] StarterPackMgr: Load Title pack&lt;br /&gt;
****[[GlobalParameter]]&lt;br /&gt;
****GlobalParameter: Load [[actorpack]]&lt;br /&gt;
****E3Mgr: Load [[Content/System/BuildTime.txt|System/BuildTime.txt]] (stubbed in release versions)&lt;br /&gt;
****TipsMgr: Load tips&lt;br /&gt;
****ResidentActorMgr: Load configuration ([[ResidentActors.byml]])&lt;br /&gt;
****AutoPlacementFlowMgr: Load auto placement [[event flow]]s&lt;br /&gt;
***KingEditor: Stubbed&lt;br /&gt;
***E3Mgr: init&lt;br /&gt;
&lt;br /&gt;
===Initial state===&lt;br /&gt;
The initial state the game launches into is determined by GameScene&amp;lt;ref&amp;gt;GameScene::initialize, 0x71007A86CC&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
const bool isFirstLaunch = SaveSystem::sInstance-&amp;gt;isFirstLaunch();&lt;br /&gt;
State* state = isFirstLaunch ? &amp;amp;state_NewSave : &amp;amp;state_LunchTitle;&lt;br /&gt;
&lt;br /&gt;
if ( aocManager::sInstance &amp;amp;&amp;amp; aocManager::sInstance-&amp;gt;flags &amp;amp; 2 )&lt;br /&gt;
  nn::err::ShowUnacceptableAddOnContentVersionError();&lt;br /&gt;
&lt;br /&gt;
const bool isDemo = E3Mgr::sInstance &amp;amp;&amp;amp; E3Mgr::sInstance-&amp;gt;isDemoMode();&lt;br /&gt;
if (isDemo)&lt;br /&gt;
  state = &amp;amp;state_LunchTitle;&lt;br /&gt;
&lt;br /&gt;
if (!isDemo &amp;amp;&amp;amp; isFirstLaunch)&lt;br /&gt;
  sIsFirstNonDemoLaunch = 1;&lt;br /&gt;
&lt;br /&gt;
StateMachine::changeState(&amp;amp;this-&amp;gt;stateMachine, state);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==States==&lt;br /&gt;
Note: when the Indoor stage binder is initialised and if the map name changes, a &amp;quot;dungeon&amp;quot; [[telemetry]] report is emitted with &amp;quot;leave&amp;quot; or &amp;quot;enter&amp;quot; as the event name and the old/new map name as additional data&amp;lt;ref&amp;gt;StageBinder::initAndReportDungeonLeaveEnter{{un}} at 0x71007B79A8&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===StageMgr===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
===StageSelect===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
===StageTransition===&lt;br /&gt;
Entered before stage generation starts and after Fade (loading screen) has been initialised and made visible. This state machine state is a noop.&lt;br /&gt;
&lt;br /&gt;
===LunchTitle===&lt;br /&gt;
LunchTitle (sic) is entered when the game is launched. The internal state string is &amp;quot;TitleMenu&amp;quot; or (in demo mode) &amp;quot;2nd&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The run function is extremely simple: it simply creates the TitleStage binder (with doNotShowLogo=true&amp;lt;ref&amp;gt;0x71007B47D8&amp;lt;/ref&amp;gt;) when the &amp;quot;common run&amp;quot; status (see below) is 0xa, then calls the &amp;quot;common run&amp;quot; function (with isNewSave=false&amp;lt;ref&amp;gt;0x71007B47F4&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===NewSave===&lt;br /&gt;
{{expand section}}&lt;br /&gt;
Entered on the first boot or when the new game option is selected. The associated state string is &amp;quot;初回シーケンス&amp;quot; (&amp;quot;initial sequence&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===PatchError===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
&lt;br /&gt;
==Main loop==&lt;br /&gt;
Three GameScene functions are called in a row from RootTask (see [[Executable]]) after initialisation has completed, i.e. in the game&#039;s main loop. (Note: these 3 names are unofficial.)&lt;br /&gt;
&lt;br /&gt;
===precalc===&lt;br /&gt;
&lt;br /&gt;
*FadeProgress: Update the progress gauge on the Fade screen (animated).&lt;br /&gt;
*Update current map name based on player position (when Link is not in a dungeon).&lt;br /&gt;
*Run StageMgr and StageSelect code.&lt;br /&gt;
*If a flag is set, run the final step of stage generation. (Unused?)&lt;br /&gt;
*If stage status is &amp;quot;NeedsGeneration&amp;quot;:&lt;br /&gt;
**Call some [[MCMgr]] function at 0x71007A9198.&lt;br /&gt;
**Run save upload subsystem if needed.&lt;br /&gt;
**Call GameScene::genStage with second argument being &amp;lt;code&amp;gt;!EventMgr::sInstance-&amp;gt;hasActiveEvent() || EventMgr::sInstance-&amp;gt;getActiveEvent()-&amp;gt;name != &amp;quot;Demo169_0&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*If stage status is &amp;quot;NeedsUnload&amp;quot;:&lt;br /&gt;
**Call some [[MCMgr]] function at 0x71007A9198.&lt;br /&gt;
**Run save upload subsystem if needed.&lt;br /&gt;
**Call GameScene::unloadStage.&lt;br /&gt;
*If no stage is being unloaded, call &amp;lt;code&amp;gt;this-&amp;gt;activeStageBinder-&amp;gt;getStage()-&amp;gt;preCalc&amp;lt;/code&amp;gt;.&lt;br /&gt;
*??? (something involving GameScene Subsystem #12)&lt;br /&gt;
*Call some [[MCMgr]] function at 0x71007A9198, again.&lt;br /&gt;
*If the current state is StageMgr:&lt;br /&gt;
**Reset the current stage binder by setting a flag for StageMgr if needed (after a Blood Moon{{check}})&lt;br /&gt;
**If a forced blood moon is ready&lt;br /&gt;
***If panic blood moons can be triggered (see [[Blood moon#Panic blood moon inhibitors]]), call the Blood Moon demo (Demo011_0).&lt;br /&gt;
***Report the panic blood moon via the [[telemetry]] system.&lt;br /&gt;
**If any [[Blood moon#Panic Blood Moons|panic condition]] is true, and if panic blood moons are enabled&amp;lt;ref&amp;gt;GameConfig::sInstance-&amp;gt;disablePanicBloodMoons (@ 0x3da on Switch 1.5.0) must be false.&amp;lt;/ref&amp;gt;, request a panic blood moon by setting a SkyMgr flag. SkyMgr will start a 90 frame timer (3 seconds) and set a ready flag once it has expired. The timer is reset every time the panic blood moon is temporarily inhibited.&lt;br /&gt;
&lt;br /&gt;
===calc===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
===postcalc===&lt;br /&gt;
{{empty section}}&lt;br /&gt;
&lt;br /&gt;
==Common state run function==&lt;br /&gt;
Called from StageSelectRun, LunchTitleRun and NewSaveRun.&lt;br /&gt;
&lt;br /&gt;
*Status 0:&lt;br /&gt;
**Start loading&lt;br /&gt;
***Finish startup logo (Switch)&amp;lt;ref&amp;gt;0x71007AF6F8&amp;lt;/ref&amp;gt;&lt;br /&gt;
***If the state string is set to 初回シーケンス, clear the Resource system cache (&amp;quot;ClearAllCaches&amp;quot;)&amp;lt;ref&amp;gt;0x71007AFBDC&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***Debug stuff&amp;lt;ref&amp;gt;0x71007AFDE4&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***E3 Demo stuff&amp;lt;ref&amp;gt;0x71007AFEF4&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***Show the Fade screen (loading screen) if the state string does &#039;&#039;not&#039;&#039;&amp;lt;ref&amp;gt;0x71007AFF08&amp;lt;/ref&amp;gt; end with &amp;quot;Viewer&amp;quot; or is &#039;&#039;not&#039;&#039; any of the following strings: 1st, 2nd, Presentation, TitleMenu, 初回シーケンス, StartupSaveCheckStage&lt;br /&gt;
****And then show the FadeStatus&amp;lt;ref&amp;gt;0x71007AFFC4&amp;lt;/ref&amp;gt; and the LoadSaveIcon screens&amp;lt;ref&amp;gt;0x71007AFFCC&amp;lt;/ref&amp;gt;.&lt;br /&gt;
****Otherwise, only open the Fade screen but do not show loading progress&amp;lt;ref&amp;gt;See function at 0x71007B0C60&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***StageSelect stuff&amp;lt;ref&amp;gt;0x71007B0000&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***Stop &amp;quot;resource compaction&amp;quot; and wait for it to be stopped&amp;lt;ref&amp;gt;0x71007B00B4 (stop compaction) to 0x71007B010C (end of the busy loop)&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***If the stage string starts with CDungeon&amp;lt;ref&amp;gt;0x71007B0124&amp;lt;/ref&amp;gt; or MainFieldDungeonStage&amp;lt;ref&amp;gt;0x71007B0160&amp;lt;/ref&amp;gt;, start loading the associated DungeonPack&amp;lt;ref&amp;gt;0x71007B0190&amp;lt;/ref&amp;gt;.&lt;br /&gt;
***BaseProcMgr: start ActorCreate initializer thread&amp;lt;ref&amp;gt;0x71011BF1C4&amp;lt;/ref&amp;gt;{{check}}.&lt;br /&gt;
***FadeProgress: reset internal state&amp;lt;ref&amp;gt;0x71007B01D4&amp;lt;/ref&amp;gt;, set progress to 0%&amp;lt;ref&amp;gt;0x71007B01E0&amp;lt;/ref&amp;gt; and mark loading as active&amp;lt;ref&amp;gt;0x71007B01E8&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*Status 2:&lt;br /&gt;
**If the GameScene state machine&#039;s current state is StageSelect or NewSave, do something involving LayerMgrTask and the Renderer.{{check}}&lt;br /&gt;
*Status 0xa:&lt;br /&gt;
**TipsMgr: update tips if the loading screen is &#039;&#039;visible&#039;&#039; (not just opened). TipsMgr will load tips depending on the stage that is being loaded.&lt;br /&gt;
*Status 0xb:&lt;br /&gt;
**Set GameScene&#039;s isNewSave property.&lt;br /&gt;
**Reset status to 0.&lt;br /&gt;
**Change GameScene state to StageTransition&amp;lt;ref&amp;gt;0x71007B1058&amp;lt;/ref&amp;gt;.&lt;br /&gt;
**Set stage status to &amp;quot;NeedsGeneration&amp;quot; (2)&amp;lt;ref&amp;gt;0x71007B105C&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Stage generation==&lt;br /&gt;
&lt;br /&gt;
*Terrain::sInstance-&amp;gt;flags |= 0x180u&lt;br /&gt;
*Step 0&lt;br /&gt;
**Reload Title.pack if the stage that needs to be generated is TitleStage (3)&amp;lt;ref&amp;gt;0x71007AC8A0&amp;lt;/ref&amp;gt;.&lt;br /&gt;
**StageSelect checks&amp;lt;ref&amp;gt;0x71007AD3AC&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Step 1&lt;br /&gt;
**If a pack was loaded by DungeonPackMgr, wait for DungeonPack loading to finish&amp;lt;ref&amp;gt;DungeonPack読み込み待ち&amp;lt;/ref&amp;gt; and switch active pack to the [[dungeon pack]].&lt;br /&gt;
*Step 2&lt;br /&gt;
**If the stage to load is TitleStage, wait for TitlePack loading to finish&amp;lt;ref&amp;gt;TitlePack読み込み待ち&amp;lt;/ref&amp;gt; and switch active pack to the title pack.&lt;br /&gt;
*Step 3: start stage generation&amp;lt;ref&amp;gt;ステージ生成開始&amp;lt;/ref&amp;gt;&lt;br /&gt;
**PlacementMgr&lt;br /&gt;
**ActorSystem::sInstance-&amp;gt;field_13A = 0&lt;br /&gt;
**Update current map flags (e.g. sIsDungeon)&lt;br /&gt;
**Clear BaseProcMgr ActorCreate queue{{check}}&lt;br /&gt;
**Create uking::Stage::ForBaseProcDual heap (if not already done), which will be used for actors, ActorCreator and BaseProcMgr&lt;br /&gt;
**ActorSystem::sInstance-&amp;gt;field_139 = 0&lt;br /&gt;
**If the [[#State strings|state string]] starts with 初回シーケンス, MainField, GameTestField, GameTestField2, AocField, CDungeon, MainFieldDungeonStage, GameTestDungeon, MonolithTestDungeon, SrdTestDungeon, MarioClubTestDungeon, TestField, 研修用, MonolithTest100enemy, MinimumField, or ActorViewer, call GameScene::startBgProcessing (0x71007B2054)&lt;br /&gt;
**If &amp;quot;new save&amp;quot; was selected, initialize PauseMenuDataMgr data&lt;br /&gt;
**If the stage to load is TitleStage, load Layout/Title.blarc for ui::LayoutResourceMgr.&lt;br /&gt;
**If &amp;quot;new save&amp;quot; was selected and the awakening demo hasn&#039;t been played since the game was launched&amp;lt;ref&amp;gt;0x71007ADB3C&amp;lt;/ref&amp;gt;, ask [[EventMgr]] to call Demo169_0.&lt;br /&gt;
**Some PhysicsMemSys stuff (0x71007ADBE0).&lt;br /&gt;
*Step 4&lt;br /&gt;
**Wait for completion of Title BG processing &#039;&#039;&#039;(20% of the loading bar)&#039;&#039;&#039;&lt;br /&gt;
**uiManager (0x71007ACD04)&lt;br /&gt;
**Initialize StatisticsMgr paths depending on current map type.&lt;br /&gt;
**Update aoc2&#039;s mapType and mapName fields.&lt;br /&gt;
*Step 5&lt;br /&gt;
**PhysicsMemSys stuff (0x71007ACDB8, 0x71007ACDC0, 0x71007ACDD0)&lt;br /&gt;
**BaseProcMgr: request &amp;quot;PreDelete&amp;quot; actors&amp;lt;ref&amp;gt;0x71007ACDE4&amp;lt;/ref&amp;gt;&lt;br /&gt;
**BaseProcMgr: stop ActorCreate initializer thread and clean up internal state{{check}}&lt;br /&gt;
**agl::lyr::Renderer and Graphics stuff&lt;br /&gt;
*Step 6&lt;br /&gt;
**Load [[env.genvb]] binary (gsys::ModelSceneEnv::clearImpl + loadBinaryImpl)&lt;br /&gt;
**If the stage binder type is 0, 1 or 2 (OpenWorldStage, IndoorStage or MainFieldDungeonStage):&lt;br /&gt;
***&#039;&#039;&#039;Set loading progress to 40%.&#039;&#039;&#039;&lt;br /&gt;
***Graphics stuff, again&lt;br /&gt;
***OnUiActorMgr&lt;br /&gt;
***GameScene::loadTera (on a separate thread)&lt;br /&gt;
*Step 7&lt;br /&gt;
**If the stage binder type is 0, 1 or 2 (OpenWorldStage, IndoorStage or MainFieldDungeonStage):&lt;br /&gt;
***Wait for Tera to load&amp;lt;ref&amp;gt;tera読み込み待ち&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Step 8&lt;br /&gt;
**...{{check}}&lt;br /&gt;
**Wait for Tera to generate collision&lt;br /&gt;
**...{{check}}&lt;br /&gt;
*Step 9&lt;br /&gt;
**Initialize [[QuestMgr]].&lt;br /&gt;
**&#039;&#039;&#039;Set loading progress to 60%.&#039;&#039;&#039;&lt;br /&gt;
*Step 10&lt;br /&gt;
**Load stage specific resources&amp;lt;ref&amp;gt;ステージ固有リソースの読み込み待ち&amp;lt;/ref&amp;gt;: if the binder type is StageBinderType::Title (3), the Title layout archive is loaded by [[LayoutResourceMgr]]. Otherwise, nothing happens.&lt;br /&gt;
*Step 11&lt;br /&gt;
**[[#Stage generation step 11]]&lt;br /&gt;
**Update player saved position, map type, map name, ...&lt;br /&gt;
**Change GameScene state to StageSelect or StageMgr (step 11-6 sets the state pointer to StageMgr).&lt;br /&gt;
**Terrain stuff{{check}}&lt;br /&gt;
**DungeonPackMgr: clean up state (destroy arena and heap) and unregister entry factory.&lt;br /&gt;
**Set flag 0xa25 (genStageStep12Reached?{{check}}) on the Fade screen instance.&lt;br /&gt;
**Stop resource compaction and set some flags on the TextureHandleMgr.&lt;br /&gt;
*Step 12&lt;br /&gt;
**Set aoc2 flag 0x4 if &amp;lt;code&amp;gt;isNewSave || !isShrine || isStageDebug&amp;lt;/code&amp;gt; and clear it otherwise.&lt;br /&gt;
**[[#Stage generation step 12]]&lt;br /&gt;
**Terrain stuff again{{check}}&lt;br /&gt;
*Step 13 (final)&lt;br /&gt;
**[[#Stage generation final step]]&lt;br /&gt;
**Various flags are set upon completion, for example GameScene stage status is set to 0, isInitializingStage is set to false, etc.&lt;br /&gt;
**FadeProgress is reset.&lt;br /&gt;
**Stage generation debug timer is stopped.&lt;br /&gt;
**aoc2: IsLastPlayHardMode is updated.&lt;br /&gt;
**GameScene::sNeedsOptionLoad is set to true.&lt;br /&gt;
&lt;br /&gt;
===Stage generation step 11===&lt;br /&gt;
&lt;br /&gt;
*Step 0: init before stage gen (ステージ生成前の初期化処理)&amp;lt;ref&amp;gt;The function can be found at 0x71007B15A8 in Switch 1.5.0.&amp;lt;/ref&amp;gt;&lt;br /&gt;
**Various flags are set (GameScene, BaseProcMgr, Awareness, EventMgr), in particular field 0x1d12a is set to true if &amp;lt;code&amp;gt;!isNewSave&amp;lt;/code&amp;gt;.&lt;br /&gt;
**Set initial position based on the stage binder. This may be overridden with a saved position or an event position later on.&lt;br /&gt;
**GameSceneSubsys2, ActorSystem: set some flags&lt;br /&gt;
**GameSceneSubsys14: Update current location name (game data flag: SaveLocationName). The flag is written to if the player is in a shrine or a Divine Beast. Otherwise, it&#039;s read.&lt;br /&gt;
**PhysicsMemSys: set indoor flag if the stage binder type is Indoor (1)&lt;br /&gt;
**aoc2: Set flag 0x1 (IsLastPlayHardMode) if the corresponding game data flag is set. This is what the rest of the game uses to determine if Master Mode is enabled.&lt;br /&gt;
**Effect, Reaction, PhysicsMemSys, EventMgr&lt;br /&gt;
**PlacementMgr, LODMgr, EventMgr, WorldMgr, Awareness, Effect, XLink, VFR&lt;br /&gt;
**aocManager: set latest version played and HasAocVer{1,2,3} flags.&lt;br /&gt;
**Terrain&lt;br /&gt;
**Initialize the sound system and the UI manager&lt;br /&gt;
**If the stage binder type is OpenWorld (0) or the map name is ActorViewer or the current stage is a debug map:&lt;br /&gt;
***Create the HorseMgr instance, initialize it and create the horse actor.&lt;br /&gt;
***Create the WolfLinkMgr instance and initialize it.&lt;br /&gt;
***Create the MotorcycleMgr instance and initialize it.&lt;br /&gt;
**GameSceneSubsys5, GameSceneSubsys4: ? {{check}}&lt;br /&gt;
**If a flag is set (GameScene @ 0x6e5), SaveSystem::startLoad is called.&lt;br /&gt;
**TipsMgr: Initialize the TipsSystemActor.&lt;br /&gt;
*Step 1: wait for horse generation (馬の生成待ち)&lt;br /&gt;
*Step 2: if the stage binder type is not Title and not Viewer and not StartupSaveCheck, initialize PauseMenuDataMgr (PauseMenuDataMgr::fromSaveData).&lt;br /&gt;
*Step 3: wait for player equipment actor generation to complete (プレイヤーの装備アクターの生成完了待ち): CreatePlayerEquipActorMgr&lt;br /&gt;
*Step 4&lt;br /&gt;
**aocManager: parse MainField static map unit (if aocManager exists)&lt;br /&gt;
**Something involving vectors and calculations{{check}}&lt;br /&gt;
*Step 5&lt;br /&gt;
**Update FadeProgress based on the queue size of the BaseProcMgr actor create initializer{{check}} and PlacementMgr load progress{{check}}. This step represents the &#039;&#039;&#039;last 40% of the progress bar&#039;&#039;&#039;.&lt;br /&gt;
**Start [[#Stage generation step 11-5b]] as an async task&amp;lt;ref&amp;gt;0x71007B2C78&amp;lt;/ref&amp;gt; and wait for it to complete.&lt;br /&gt;
**Stop the Fade screen &amp;quot;color animator&amp;quot;.&lt;br /&gt;
**Call this-&amp;gt;stage-&amp;gt;initForStageGen (vtable @ 0x60). For most stages, this calls WorldMgr&#039;s SkyMgr::update.&lt;br /&gt;
**Graphics, uiManager, agl::lyr::Renderer: ?{{check}}&lt;br /&gt;
**Set this-&amp;gt;activeStageBinder (@ 0x2a0) to this-&amp;gt;stageBinder (@ 0x2a8)&amp;lt;ref&amp;gt;0x71007B1A88&amp;lt;/ref&amp;gt;.&lt;br /&gt;
*Step 6&lt;br /&gt;
**Set next GameScene state to StageMgr.&lt;br /&gt;
**qword_71025D16C0: ?{{check}}&lt;br /&gt;
**If the binder type is Title (3):&lt;br /&gt;
***If the ROM type is &amp;quot;RID_Demo&amp;quot;: reset some internal state in SaveMgr and SaveSystem.&lt;br /&gt;
***If aoc3 is initialized, set Blight rematch counters to 0 for all four blights.&lt;br /&gt;
**PauseMenuDataMgr: Update IsOpenItemCategory flags if necessary.&lt;br /&gt;
*Step 7: wait for save data upload to finish (if an upload is in progress).&lt;br /&gt;
*Step 8: BaseProcMgr: wait for some actor create initializer event and reset it{{check}}&lt;br /&gt;
&lt;br /&gt;
====Stage generation step 11-5b====&lt;br /&gt;
&lt;br /&gt;
*ProductReporter: reset scene work time (the amount of time since the last scene generation) and reset the blood moon reporter.&lt;br /&gt;
*Destroy the previous stage binder (this-&amp;gt;activeStageBinder) if it&#039;s different from the current binder (this-&amp;gt;stageBinder), and also set this-&amp;gt;stage to nullptr.&lt;br /&gt;
*&#039;&#039;Set the scene change event flow and entry point names&#039;&#039;:&lt;br /&gt;
**If the binder type is Title: Demo025_2&amp;lt;Demo025_2&amp;gt;&lt;br /&gt;
**If aocManager::sInstance-&amp;gt;version &amp;gt;= 0x200 and !100enemy_Activated and IsGet_Weapon_Sword_070 and !IsPlayed_Demo146_0:&lt;br /&gt;
***If the current [[map area]] is 14 (Korok Forest): &lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 1: Aoc2Resident&amp;lt;InForrest&amp;gt;&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 0: Demo201_0&amp;lt;Demo201_0&amp;gt;&lt;br /&gt;
***Otherwise:&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 2: Aoc2Resident&amp;lt;InShrineOfResurrection&amp;gt;&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 1: Aoc2Resident&amp;lt;InOtherArea&amp;gt;&lt;br /&gt;
****If [[BalladOfHeroActiveTiming]] is 0: Demo200_0&amp;lt;Demo200_0&amp;gt;&lt;br /&gt;
**Otherwise, if the map type is MainField:&lt;br /&gt;
***If [[BalladOfHeroActiveTiming]] is 2: Demo600_1&amp;lt;Demo600_1&amp;gt;&lt;br /&gt;
***If [[BalladOfHeroActiveTiming]] is 1: Demo600_1&amp;lt;Demo600_0&amp;gt;&lt;br /&gt;
***Otherwise: Demo025_0&amp;lt;Demo025_0&amp;gt;&lt;br /&gt;
**If the map type is CDungeon or MarioClubTestDungeon: Demo008_2&amp;lt;Demo008_2&amp;gt;&lt;br /&gt;
*WorldMgr ShootingStarMgr: Update the isMainField flag.&lt;br /&gt;
*AmiiboMgr: Set flag 0x40 if the map name is MainField, otherwise clear it.&lt;br /&gt;
*&#039;&#039;&#039;Create the stage&#039;&#039;&#039;&amp;lt;ref&amp;gt;0x71007B3C5C&amp;lt;/ref&amp;gt;.&lt;br /&gt;
**The stage class is automatically selected based on the stage binder type.&lt;br /&gt;
**stage-&amp;gt;init and stage-&amp;gt;postInit are called here&amp;lt;ref&amp;gt;0x71007CC024&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Stage generation step 12===&lt;br /&gt;
&lt;br /&gt;
*Step 0:&lt;br /&gt;
**[1.4.0+] If BalladOfHeroes_Step02 is false or BalladOfHeroes_Step03 is true, and if the player&#039;s equipped weapon (category 0) is Weapon_Sword_502 (One-Hit Obliterator), that weapon is removed from the inventory.&lt;br /&gt;
**&#039;&#039;&#039;FadeProgress is set to 100%&#039;&#039;&#039;.&lt;br /&gt;
*Step 1: Wait for environment map, grass, etc. (環境マップや草などの準備待ち) and set various flags (GameScene globals, Fade, BaseProcMgr).&lt;br /&gt;
*Step 2: Wait for 3 game ticks.&lt;br /&gt;
*Step 3: Terrain stuff{{check}}&lt;br /&gt;
*Step 4: ?{{check}}&lt;br /&gt;
*Step 5: Call the scene start event flow.&lt;br /&gt;
*Step 6:&lt;br /&gt;
**Wait for the scene start event flow (シーン開始イベントスタート待ち)&lt;br /&gt;
**Set some flags (Player, WorldMgr, PlacementMgr, ActorSystem)&lt;br /&gt;
&lt;br /&gt;
===Stage generation final step===&lt;br /&gt;
&lt;br /&gt;
*Sound, qword_71025D04F0, qword_71025D16C0, qword_71025D1740: ? {{check}}&lt;br /&gt;
*Clear the temporary stage binder pointer (which was used only during generation).&lt;br /&gt;
*Close the Fade and the FadeStatus screens. This effectively hides the loading screen.&lt;br /&gt;
*TipsMgr: TipsSystemActor is reset and the current date is stored.&lt;br /&gt;
*In dev mode, write a list of all loaded resources to %PROJECT_ROOT%/Log/BootupPatrol/res_title.csv.&lt;br /&gt;
*If the active stage binder type is Title (3) and resident actors haven&#039;t been loaded yet, start title background processing.&lt;br /&gt;
*Clear the &amp;quot;has played awakening demo&amp;quot; flag (not the game data flag!) if there is no active event or if the active event is not Demo169_0.&lt;br /&gt;
*Set this-&amp;gt;stageGenerated to 1&amp;lt;ref&amp;gt;0x71007B2038&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Internals]]&lt;br /&gt;
[[Category:Subsystems (BotW)]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AIDef:AI/ChangeWeatherTagRoot&amp;diff=10934</id>
		<title>AIDef:AI/ChangeWeatherTagRoot</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AIDef:AI/ChangeWeatherTagRoot&amp;diff=10934"/>
		<updated>2021-01-13T17:30:09Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* MapUnitInstParams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AIDef&lt;br /&gt;
|name=ChangeWeatherTagRoot&lt;br /&gt;
|type=AI&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== MapUnitInstParams ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Type !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Weather || Int || -1 || Sets the [[WorldMgr#Weather_types|weather type]]. &lt;br /&gt;
|-&lt;br /&gt;
| TemperatureDay || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| TemperatureNight || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| WeatherEff || Int || -1 || Controls the weather efficienty.&lt;br /&gt;
|-&lt;br /&gt;
| PaletteSel || Int || -1 || A visual color scheme that can also include effects like fog, sandstorm, etc. There are various of them (up to 255).&lt;br /&gt;
|-&lt;br /&gt;
| PSelSpeed || Int || 0 || Controls the speed change from current PaletteSel to the defined PaletteSel. (&#039;&#039;0: Normal Speed; 1: Slower Speed; 2: Very Fast Speed&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| TemperatureDirectDay || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| TemperatureDirectNight || Float || 99999.9 || &lt;br /&gt;
|-&lt;br /&gt;
| CloudShadowOff || Bool || False || &lt;br /&gt;
|-&lt;br /&gt;
| BluffThunderOff || Bool || False || &lt;br /&gt;
|-&lt;br /&gt;
| IgnitedLevel || Int || 0 || Allows to set the environment on fire. (&#039;&#039;0: No ignition; 1: Normal ignition; 2: Heavy ignition&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| FogMinusCorrection || Bool || False || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Children ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 通知 || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Derived definitions ==&lt;br /&gt;
=== Root (WeatherChangeTag) ===&lt;br /&gt;
{{AIDefDerived&lt;br /&gt;
|name=Root&lt;br /&gt;
|group_name=&lt;br /&gt;
|derived_from=ChangeWeatherTagRoot&lt;br /&gt;
|aiprog=WeatherChangeTag&lt;br /&gt;
}}&lt;br /&gt;
No overridden parameters.&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AIDef:Action/EventAddGameDataToRupeeAction&amp;diff=10933</id>
		<title>AIDef:Action/EventAddGameDataToRupeeAction</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AIDef:Action/EventAddGameDataToRupeeAction&amp;diff=10933"/>
		<updated>2021-01-09T14:48:44Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* DynamicInstParams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AIDef&lt;br /&gt;
|name=EventAddGameDataToRupeeAction&lt;br /&gt;
|type=Action&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== DynamicInstParams ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Type !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| GameDataIntAddValueName || String ||  || Add a flag value to the player&#039;s rupees.&lt;br /&gt;
|-&lt;br /&gt;
| IsSignInversion || Bool ||  || Whether the sign (+ and -) of the flag&#039;s value should be inverted.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Derived definitions ==&lt;br /&gt;
=== Demo_AddGameDataToRupee (EventSystemActor) ===&lt;br /&gt;
{{AIDefDerived&lt;br /&gt;
|name=Demo_AddGameDataToRupee&lt;br /&gt;
|group_name=&lt;br /&gt;
|derived_from=EventAddGameDataToRupeeAction&lt;br /&gt;
|aiprog=EventSystemActor&lt;br /&gt;
}}&lt;br /&gt;
No overridden parameters.&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AIDef:Action/EventAddGameDataToRupeeAction&amp;diff=10932</id>
		<title>AIDef:Action/EventAddGameDataToRupeeAction</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AIDef:Action/EventAddGameDataToRupeeAction&amp;diff=10932"/>
		<updated>2021-01-09T14:46:08Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* DynamicInstParams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AIDef&lt;br /&gt;
|name=EventAddGameDataToRupeeAction&lt;br /&gt;
|type=Action&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== DynamicInstParams ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Type !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| GameDataIntAddValueName || String || Add a flag value to the player&#039;s rupees. || &lt;br /&gt;
|-&lt;br /&gt;
| IsSignInversion || Bool || Whether the sign (+ and -) of the flag&#039;s value should be inverted. || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Derived definitions ==&lt;br /&gt;
=== Demo_AddGameDataToRupee (EventSystemActor) ===&lt;br /&gt;
{{AIDefDerived&lt;br /&gt;
|name=Demo_AddGameDataToRupee&lt;br /&gt;
|group_name=&lt;br /&gt;
|derived_from=EventAddGameDataToRupeeAction&lt;br /&gt;
|aiprog=EventSystemActor&lt;br /&gt;
}}&lt;br /&gt;
No overridden parameters.&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AIDef:Action/EventAddGameDataToRupeeAction&amp;diff=10931</id>
		<title>AIDef:Action/EventAddGameDataToRupeeAction</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AIDef:Action/EventAddGameDataToRupeeAction&amp;diff=10931"/>
		<updated>2021-01-09T14:27:17Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* DynamicInstParams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{AIDef&lt;br /&gt;
|name=EventAddGameDataToRupeeAction&lt;br /&gt;
|type=Action&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== DynamicInstParams ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Type !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| GameDataIntAddValueName || String || Add a flag value to the player&#039;s rupees. || &lt;br /&gt;
|-&lt;br /&gt;
| IsSignInversion || Bool || Whether the added value should be positive or negative (&#039;&#039;false&#039;&#039;: positive; &#039;&#039;true&#039;&#039;: negative|| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Derived definitions ==&lt;br /&gt;
=== Demo_AddGameDataToRupee (EventSystemActor) ===&lt;br /&gt;
{{AIDefDerived&lt;br /&gt;
|name=Demo_AddGameDataToRupee&lt;br /&gt;
|group_name=&lt;br /&gt;
|derived_from=EventAddGameDataToRupeeAction&lt;br /&gt;
|aiprog=EventSystemActor&lt;br /&gt;
}}&lt;br /&gt;
No overridden parameters.&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=EventInfo.product.sbyml&amp;diff=10930</id>
		<title>EventInfo.product.sbyml</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=EventInfo.product.sbyml&amp;diff=10930"/>
		<updated>2021-01-09T14:05:25Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* Common event flow properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{resloc|locations=[[Bootup.pack]]|path=Event/EventInfo.product.byml}}&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;EventInfo.product.sbyml&#039;&#039;&#039; is a [[Yaz0]]-compressed [[BYML]] file that stores information about all game [[event]]s. It is used by the [[event manager]] to load events.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EventInfo is a machine generated file. It is not meant to be edited directly; much of the information it includes are either automatically generated or copied from event flows and other source-only files.&lt;br /&gt;
&lt;br /&gt;
The top level node is a map. Each entry corresponds to an event, with the key being &amp;lt;code&amp;gt;EventName&amp;lt;EntryPointName&amp;gt;&amp;lt;/code&amp;gt; and the value being the associated event properties. The list of properties in this article is known to be complete as of [[version]] 1.6.0.&lt;br /&gt;
&lt;br /&gt;
==Common event flow properties==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|traverse_limit||float||[For scene change events only]&lt;br /&gt;
|-&lt;br /&gt;
|is_startable_air||bool||Whether the event can be started when the player is not &amp;quot;grounded for event&amp;quot; (essentially when he is in the air)&lt;br /&gt;
|-&lt;br /&gt;
|child||array||Event flows that are called by this event and must be loaded ahead-of-time.&lt;br /&gt;
&lt;br /&gt;
This normally only includes [[Demo]] events, which are called using the CallDemo action. Sub-flows are not listed with &amp;lt;code&amp;gt;child&amp;lt;/code&amp;gt; but with &amp;lt;code&amp;gt;subfile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|file||string||Event name (actually not a file name since this doesn&#039;t include the file extension)&lt;br /&gt;
|-&lt;br /&gt;
|entry||string||Entry point name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|is_timeline||bool||Whether the event is an event timeline (as opposed to an event flowchart) (defaults: false)&lt;br /&gt;
|-&lt;br /&gt;
|mode||string||Values: Seamless, FullPackage, Load, Async&lt;br /&gt;
|-&lt;br /&gt;
|next_event||string||&lt;br /&gt;
|-&lt;br /&gt;
|movie||string||Movile file name (e.g. Demo126_0.mp4)&lt;br /&gt;
|-&lt;br /&gt;
|always_movie||bool||Whether this event is always played as a movie (probably for development purposes)&lt;br /&gt;
|-&lt;br /&gt;
|not_found_movie||bool||&lt;br /&gt;
|-&lt;br /&gt;
|text_only_movie||bool||Is a text only movie (subset of movies)&lt;br /&gt;
|-&lt;br /&gt;
|exist_fade_in||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_flag_control||bool||&lt;br /&gt;
|-&lt;br /&gt;
|auto_save||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_gimmick_reset||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_enable_camera_input||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_disable_camera_input||bool||&lt;br /&gt;
|-&lt;br /&gt;
|is_pause_non_demo_member||bool||Whether the game freezes while the event plays or not - includes the control of Link. (&#039;&#039;false&#039;&#039;: no freeze; &#039;&#039;true&#039;&#039;: freeze). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;false&#039;&#039; also eleminates the 1ms fading out and in of the UI for small custom events that e.g. play a sound.&lt;br /&gt;
|-&lt;br /&gt;
|is_hide_non_demo_member||bool||&lt;br /&gt;
|-&lt;br /&gt;
|is_hide_non_demo_member_charactor||bool||(sic)&lt;br /&gt;
|-&lt;br /&gt;
|fade_in_color||int||&lt;br /&gt;
|-&lt;br /&gt;
|fade_out_color||int||&lt;br /&gt;
|-&lt;br /&gt;
|exist_disable_unequip_in_event||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_disable_unlift_in_event||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_enable_squat_in_event||bool||&lt;br /&gt;
|-&lt;br /&gt;
|exist_disable_getoff_sunaz_in_event||bool||&lt;br /&gt;
|-&lt;br /&gt;
|disable_event_start_interval||bool||&lt;br /&gt;
|-&lt;br /&gt;
|demo_event||bool||&lt;br /&gt;
|-&lt;br /&gt;
|init_camera_pos||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|init_camera_at||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|init_camera_fov||float||&lt;br /&gt;
|-&lt;br /&gt;
|last_camera_pos||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|last_camera_at||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|last_player_pos||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|last_player_dir||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|last_camera_fov||float||&lt;br /&gt;
|-&lt;br /&gt;
|special_actor_name||string||&lt;br /&gt;
|-&lt;br /&gt;
|last_special_actor_pos||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|last_special_actor_dir||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|wait_frame||int||&lt;br /&gt;
|-&lt;br /&gt;
|vanish_motorcycle||bool||Whether the motorcycle (Master Cycle Zero) should despawn when starting the event&lt;br /&gt;
|-&lt;br /&gt;
|cloth_centererd_at_location||bool||(sic)&lt;br /&gt;
|-&lt;br /&gt;
|bgm||array||Background music (BGMs)&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|name||string||BGM name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgm_stop||string||Values: StopWithFade, NotStop&lt;br /&gt;
|-&lt;br /&gt;
|no_pause_actors||string||[Only for flowcharts and timelines] List of actors that should not be paused during the event (separated by ,)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Movie properties==&lt;br /&gt;
The following properties are only used for movies (including text only movies):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|timeline_voice||array||&lt;br /&gt;
|-&lt;br /&gt;
|xlink_emits||array||&lt;br /&gt;
|-&lt;br /&gt;
|ui_texts||array||&lt;br /&gt;
|-&lt;br /&gt;
|fade_outs||array||&lt;br /&gt;
|-&lt;br /&gt;
|timeline_rumble||array||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Event flow properties==&lt;br /&gt;
The properties in this section are only used for event flows (event timelines and flowcharts, &#039;&#039;not&#039;&#039; movies).&lt;br /&gt;
&lt;br /&gt;
===XLink===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|elink_user||string||Name of the ELink instance to use. If specified, the game will load Effect/%s.esetlist % (elink_user).&lt;br /&gt;
|-&lt;br /&gt;
|slink_user||string||Name of the SLink instance to use. If specified, the game will load the [[sound resource]] with that name (from Sound/Resource/%s.bars % (slink_user)).&lt;br /&gt;
|-&lt;br /&gt;
|xlink_hidden||array||List of SLink objects to hide&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|actor||string||Actor name&lt;br /&gt;
|-&lt;br /&gt;
|instance||string||XLink instance name{{check}}&lt;br /&gt;
|-&lt;br /&gt;
|is_effect||bool||&lt;br /&gt;
|-&lt;br /&gt;
|is_sound||bool||&lt;br /&gt;
|-&lt;br /&gt;
|key||string||XLink key&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Demos===&lt;br /&gt;
An event is considered to be a [[demo]] if the entry point name starts with &amp;quot;Demo&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When loading demo events, EventResource automatically loads &amp;quot;Demo/%s.bdemo&amp;quot; % (entry_name), and a CameraSystem instance is constructed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|exist_extra_model||bool||Whether a demo model exists. If true, &amp;quot;Model/%s.bfres&amp;quot; % (entry_name) is loaded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====CameraSystem====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|camera||array||List of [[Camera]] files to load.&lt;br /&gt;
&lt;br /&gt;
For each entry, CameraSystem loads &amp;quot;Camera/%s/%s&amp;quot; % (entry name, camera file name).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|file||string||File name (e.g. C01-0.bcamanim)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====DemoAS====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|as||array||List of [[AS]] resources to load.&lt;br /&gt;
&lt;br /&gt;
For each entry, DemoASLoader loads &amp;quot;Actor/AS/%s/%s.bas&amp;quot; % (entry name, AS name).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|file||string||AS name (e.g. Demo117_0-C00-Npc_Rito_Teba-A-0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Terrain===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|terrain_info||array||Terrain information (array length is always 1)&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|center||vec3||&lt;br /&gt;
|-&lt;br /&gt;
|level||int||&lt;br /&gt;
|-&lt;br /&gt;
|frame||int||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flowchart properties===&lt;br /&gt;
The following properties are only used for event [[flowchart]]s:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|subfile||array||Other flowcharts that are referenced in this flowchart and that must be loaded &lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|file||string||Flowchart file name (e.g. Common.bfevfl)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Timeline properties===&lt;br /&gt;
The following properties are only used for event [[timeline]]s:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|sub_timelines||array||Sub-timelines (see [[BFEVFL]])&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Name!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|name||string||Sub-timeline name (e.g. Demo130_0_effect)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Content (BotW)]]&lt;br /&gt;
[[Category:Content (BotW, product)]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=AutoPlacement_event_flows&amp;diff=10929</id>
		<title>AutoPlacement event flows</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=AutoPlacement_event_flows&amp;diff=10929"/>
		<updated>2021-01-09T13:45:10Z</updated>

		<summary type="html">&lt;p&gt;Waikuteru: /* CreateData */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
AutoPlacement event flows are used by the [[AutoPlacementMgr]] to determine whether actors should be dynamically spawned without having to hardcode special logic into the executable.&lt;br /&gt;
&lt;br /&gt;
Such event flows are executed by the same event flow engine but with a different environment: only the &amp;quot;AutoPlacement&amp;quot; pseudo-actor is available for actions and queries. Actions and queries are not mapped to AI system functions as with regular event flows, but are entirely handled by the AutoPlacement code.&lt;br /&gt;
&lt;br /&gt;
A single event flow can be used to handle conditions for several actors (for example, AutoPlacement_Animal handles auto placement logic for all animal actors) and may be called several times, each time with a different actor name, which the event flow can check with the [[#EcoAreaActorName]] query. An actor will only be dynamically spawned if CreateData (and NearCreate?{{check}}) is called.&lt;br /&gt;
&lt;br /&gt;
==AutoPlacement actions==&lt;br /&gt;
===CreateData===&lt;br /&gt;
Allow the actor to spawn.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|MinNum||int||The smallest amount that should be generated of this actor.&lt;br /&gt;
|-&lt;br /&gt;
|OffsetPosY||float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RideList||string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MaxNum||int||The biggest amount that should be generated of this actor.&lt;br /&gt;
|-&lt;br /&gt;
|GroupRadius||float&lt;br /&gt;
|Allows to configure the size of the auto-picked point where the actor(s) should spawn.&lt;br /&gt;
|-&lt;br /&gt;
|EquipWeaponActorCount||int&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Mimicry||bool||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NearCreate===&lt;br /&gt;
===AppearWeatherRate===&lt;br /&gt;
===EquipCategory===&lt;br /&gt;
&lt;br /&gt;
==AutoPlacement queries==&lt;br /&gt;
===GroundNorm===&lt;br /&gt;
===GroundMat===&lt;br /&gt;
Checks the terrain material type.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
&lt;br /&gt;
*0: Soil&lt;br /&gt;
*1: Stone&lt;br /&gt;
*2: Rock&lt;br /&gt;
*3: Sand&lt;br /&gt;
*4: Metal&lt;br /&gt;
*5: Grass&lt;br /&gt;
*6: Ivy&lt;br /&gt;
*7: Wood&lt;br /&gt;
*8: Water&lt;br /&gt;
*9: Snow&lt;br /&gt;
*10: Ice&lt;br /&gt;
*11: Lava&lt;br /&gt;
*12: HeavySand&lt;br /&gt;
*13: Bog&lt;br /&gt;
*14: HeavySnow&lt;br /&gt;
&lt;br /&gt;
===TreeRate===&lt;br /&gt;
Queries [[StatisticsMgr]] for the forest_density at the current position. Returns 1 if the specified rate is lower than or equal to the result, and 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Rate||float||Rate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===PosHeight===&lt;br /&gt;
===WaterDepth===&lt;br /&gt;
===RouteDistance===&lt;br /&gt;
Queries [[StatisticsMgr]] for the route distance at the current position. Returns 1 if the specified distance is lower than or equal to the query result, and 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Distance||float||Distance to compare against route distance&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===GrassHeight===&lt;br /&gt;
Queries the [[Terrain]] system for the grass height at the current position. Returns 1 if the specified height is lower than or equal to the actual height, and 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Height||float||Grass height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===WaterSurface===&lt;br /&gt;
===PlayerRideHorse===&lt;br /&gt;
Returns 1 if the player is riding a horse, and 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
===EcoAreaActorName===&lt;br /&gt;
Returns 1 if the specified actor name matches the name of the actor for which the event flow is being executed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|ActorName||str||Actor name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===WaterSubMat===&lt;br /&gt;
Returns the water sub-material type at the current position:&lt;br /&gt;
&lt;br /&gt;
*0: Water&lt;br /&gt;
*1: Water_Ice&lt;br /&gt;
*2: Water_Hot&lt;br /&gt;
*3: Water_Poison&lt;br /&gt;
&lt;br /&gt;
===CheckGameData===&lt;br /&gt;
Returns 1 if the specified boolean flag is true, and 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
Returns -1 if the GameDataMgr instance does not exist or if the Label parameter was not specified.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Label||str||GameData boolean flag name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CheckPouchItemCount===&lt;br /&gt;
===CheckPouchItemCountFromActor===&lt;br /&gt;
===TimeType===&lt;br /&gt;
Returns the [[WorldMgr]]&#039;s current time division. Analogous to [[AIDef:Query/CheckTimeType]].&lt;br /&gt;
&lt;br /&gt;
===RailDistance===&lt;br /&gt;
??? Involves [[PlacementMgr]].&lt;br /&gt;
&lt;br /&gt;
===WaterDistance===&lt;br /&gt;
Queries [[StatisticsMgr]] for the water distance at the current position. Returns 1 if the specified distance is lower than or equal to the result multiplied by 200.0, and 0 otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter!!Type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Distance||float||Distance to compare against water distance&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===NavMeshFace===&lt;br /&gt;
&lt;br /&gt;
[[Category:Internals]]&lt;/div&gt;</summary>
		<author><name>Waikuteru</name></author>
	</entry>
</feed>