LevelSensor.byml: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
(add more detailed docs for LevelSensor)
(→‎flag: Added _Num to flag name for accuracy)
 
(One intermediate revision by one other user not shown)
Line 10: Line 10:
The root element is a dictionary.
The root element is a dictionary.


=== enemy ==
=== enemy ===
'''enemy''' is used to configure enemy upgrades. It is an array of dictionaries of the following form:
'''enemy''' is used to configure enemy upgrades. It is an array of dictionaries of the following form:


Line 27: Line 27:
|}
|}


=== flag ==
=== flag ===
'''flag''' determines how many points an enemy kill is worth and it is used to calculate the total number of points (see [[Difficulty scaling]] for more information). It is an array of dictionaries of the following form:
'''flag''' determines how many points an enemy kill is worth and it is used to calculate the total number of points (see [[Difficulty scaling]] for more information). It is an array of dictionaries of the following form:


Line 37: Line 37:
|name
|name
|str
|str
|Name of the GameData s32 flag (usually a defeat counter flag: Defeated_XXXXX where XXXXX is the enemy actor name)
|Name of the GameData s32 flag (usually a defeat counter flag: Defeated_XXXXX_Num where XXXXX is the enemy actor name)
|-
|-
|point
|point
Line 44: Line 44:
|}
|}


=== setting ==
=== setting ===
'''setting''' is a dictionary of the following form:
'''setting''' is a dictionary of the following form:


Line 61: Line 61:
|}
|}


=== weapon ==
=== weapon ===
'''weapon''' is used to configure weapon upgrades and modifiers. It is an array of dictionaries of the following form:
'''weapon''' is used to configure weapon upgrades and modifiers. It is an array of dictionaries of the following form:



Latest revision as of 20:14, 19 July 2024

This resource is found in Bootup.pack.

Its canonical resource path is "Ecosystem/LevelSensor.byml".

LevelSensor.byml is the main configuration file for the LevelSensor subsystem (which handles parts of difficulty scaling). All information related to difficulty (enemy and weapon) scaling is stored in this configuration file. The file format is BYML.

Contents

Human-readable versions dumped from 1.0.0 and 1.5.0 are included in the botw-re-notes repo. A diff between 1.0.0 and 1.5.0 is also provided in the repo.

[1.4.0] Flag entries for Golden enemies, Igneo Talus Titan and Monk Maz Koshia were added to the kill point table. Weapon entries for the One-Hit Obliterator and Weapon_Sword_503 were also added to the weapon scaling list. They cannot receive any modifier. (Yes, the developers forgot to add golden enemies to the config in 1.3.0.)

The root element is a dictionary.

enemy

enemy is used to configure enemy upgrades. It is an array of dictionaries of the following form:

Key Type Description
actors array Array of dictionaries of the form {name: ..., value: ...}, with name being the actor name (str) and value the required number of enemy points to transition to the next tier. Sorted by value.
species str Series name (unused at runtime)

flag

flag determines how many points an enemy kill is worth and it is used to calculate the total number of points (see Difficulty scaling for more information). It is an array of dictionaries of the following form:

Key Type Description
name str Name of the GameData s32 flag (usually a defeat counter flag: Defeated_XXXXX_Num where XXXXX is the enemy actor name)
point float Number of points for each kill

setting

setting is a dictionary of the following form:

Key Type Description
Level2EnemyPower float Multiplier to apply to enemy points. This determines how much an enemy point is actually worth.
Level2WeaponPower float Multiplier to apply to weapon points. This determines how much a weapon point is actually worth.

weapon

weapon is used to configure weapon upgrades and modifiers. It is an array of dictionaries of the following form:

Key Type Description
actorType str Weapon type (e.g. WeaponSmallSword)
actors array Array of dictionaries of the form {name: ..., plus: ..., value: ...}, with name being the actor name (str), plus a WeaponModifier (see below), value the required number of weapon points to transition to the next tier. Sorted by value.
not_rank_up bool Whether weapon upgrades (e.g. Swallow Bow -> Falcon Bow) should be enabled for this series. If false, weapons in the series will only receive modifiers and will not be replaced with different weapons.
series str Series name (unused at runtime)

Types

WeaponModifier (s32 enum)

There are three possible values for weapons[].actors[].plus in the config:

Value Description
-1 None: Weapon will receive no modifiers.
0 Blue: Weapon will receive blue modifiers, also referred to as 'SharpWeapon' in other strings.
1 Yellow: Weapon will receive yellow modifiers, also referred to as 'PoweredSharpWeapon' in other strings.