ActorInfo.product.sbyml

Revision as of 14:48, 17 June 2022 by Ginger (talk | contribs) (→‎Actors: Add the rest of the missing keys (descriptions and sources incomplete))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
This file is not listed in the game's resource size table.

ActorInfo.product.sbyml (found in the Actor directory) is a Yaz0-compressed BYML file which contains general information about all 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' parameters on menu screens, this file must be edited.

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.


Contents

Actors

Actors is an array of dictionaries. It must be sorted in the same order as the Hashes section.

Each actor has its own entry in this array. Each entry has several properties, based on the actor's profile. The following is a list of all valid entries for any profile. Any single profile will not require all of these properties.

Key Type Description Source
Chemical dict - -
aabbMax float Defines the maximum point for the axis-aligned bounding box (AABB) - the most-positive value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices.


Can be altered to change the distance for AttentionClients like "Talk", "Examine", etc. to appear.

sbfres, vertex coordinates
aabbMin float Defines the minimum point for the axis-aligned bounding box (AABB) - the most-negative value on each axis that any of the actor's model's vertices inhabits. These values may (and probably do) come from three different vertices.


Can be altered to change the distance for AttentionClients like "Talk", "Examine", etc. to appear.

sbfres, vertex coordinates
actorScale float Multiplier applied to the values of each vertex's coordinates (makes the actor's model larger or smaller) sbactorpack, ActorLink, ActorScale param
addColorA float - -
addColorB float - -
addColorG float - -
addColorR float - -
animalUnitBasePlayRate float - -
armorDefenceAddLevel int The amount of armor added when this actor is equipped as armor sbactorpack, bgparamlist, Armor section, DefenseAddLevel param
armorEffectAncientPowUp bool Whether the AncientPowUp (increased damage from ancient weapons) effect is provided by this actor when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, AncientPowUp param
armorEffectEffectLevel int The number of levels of the actor's EffectType that are provided when this actor is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EffectLevel param
armorEffectEffectType str The EffectType granted by the actor when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EffectType param
armorEffectEnableClimbWaterfall bool Whether or not this actor grants the ability to climb waterfalls when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EnableClimbWaterfall param
armorEffectEnableSpinAttack bool Whether or not this actor grants the ability to perform spin attacks while swimming, when it is equipped as armor sbactorpack, bgparamlist, ArmorEffect section, EnableSpinAttack param
armorHeadMantleType int - sbactorpack, bgparamlist, ArmorHead section, MantleType param
armorNextRankName str Name of the actor that this can be upgraded to, by the Great Fairies sbactorpack, bgparamlist, Armor section, NextRankName param
armorStarNum int Number of stars to display in the inventory, plus 1 (e.g. armorStarNum: 1 will display 0 stars) sbactorpack, bgparamlist, Armor section, StarNum param
armorUpperDisableSelfMantle bool - sbactorpack, bgparamlist, ArmorUpper section, DisableSelfMantle param
armorUpperUseMantleType int - sbactorpack, bgparamlist, ArmorUpper section, UseMantleType param
arrowArrowDeletePer int - -
arrowArrowNum int - -
arrowDeleteTime int - -
arrowDeleteTimeWithChemical int - -
arrowEnemyShootNumForDelete int - -
attackPower int The amount of damage this actor does when used to attack as a weapon sbactorpack, bgparamlist, Attack section, Power param
baseScaleX float - -
baseScaleY float - -
baseScaleZ float - -
bfres str Name of the (s)bfres file that stores this actor's model sbactorpack, bmodellist, ModelData list, ModelData_0 list, Base object, Folder param
boundingForTraverse float - -
bowArrowName str - -
bowIsLeadShot bool - -
bowIsRapidFire bool - -
bowLeadShotNum int - -
bowRapidFireNum int - -
bugMask int Affects the ActorDebug interface and probably more things in debug builds.
  • & 2: アクターサウンドバグ (Actor sound bug)[1]
  • & 1: アクター挙動バグ (Actor behavior bug)[2]
Not found outside ActorInfo.product
cookSpiceBoostEffectiveTime int - -
cookSpiceBoostHitPointRecover int - -
cookSpiceBoostMaxHeartLevel int - -
cookSpiceBoostStaminaLevel int - -
cookSpiceBoostSuccessRate int - -
cureItemEffectLevel int - -
cureItemEffectType str - -
cureItemEffectiveTime int - -
cureItemHitPointRecover int - -
cursorOffsetY float 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) sbactorpack, bmodellist, Attention section, CursorOffsetY param
drops dict - -
elink str Determines the name of the actor's entry in the Elink2DB file, used for effects sbactorpack, ActorLink, ElinkUser param
enemyRank int - -
farModelCulling dict - -
generalLife int The amount of health this actor has sbactorpack, bgparamlist, General section, Life param
homeArea array of array of dict - -
horseASVariation str - -
horseGearTopChargeNum int - -
horseNature int - -
horseUnitRiddenAnimalType int - -
instSize int Size of the memory heap that will be allocated for an actor instance — if too low, may cause unexpected crashes -
invalidTimes array - -
invalidWeathers array - -
isHasFar bool 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 Presence of a separate actor with the _Far name
itemBuyingPrice int Price when buying the actor from a shop sbactorpack, bgparamlist, Item section, BuyingPrice param
itemCreatingPrice int Price when creating the actor using the ancient oven sbactorpack, bgparamlist, Item section, CreatingPrice param
itemSaleRevivalCount int - sbactorpack, bgparamlist, Item section, SaleRevivalCount param
itemSellingPrice int Price when selling the actor to a shop sbactorpack, bgparamlist, Item section, SellingPrice param
itemStainColor int Index of the color that this actor will dye an armor when used as an ingredient in the dye shop sbactorpack, bgparamlist, Item section, StainColor param
itemUseIconActorName str 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 sbactorpack, bgparamlist, Item section, UseIconActorName param
locators array of array of dict - -
lookAtOffsetY float - -
mainModel str Name of the model inside the (s)bfres file for this actor sbactorpack, bmodellist, ModelData list, ModelData_0 list, Unit list, Unit_0 object, UnitName param
masterSwordSearchEvilDist float - -
masterSwordSleepActorName str - -
masterSwordTrueFormActorName str - -
masterSwordTrueFormAttackPower int - -
monsterShopBuyMamo int - -
monsterShopSellMamo int - -
motorcycleEnergy dict - -
name str Actor name sbactorpack, ActorLink, Name param (and several other places)
normal0ItemName%02d str Names of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemNum%02d of the same number. sbactorpack, brecipe, Normal0 table, ItemName%02d params
normal0ItemNum%02d int Quantities of the actors which are required to upgrade to this actor at a Great Fairy. Corresponds to normal0ItemName%02d of the same number. sbactorpack, brecipe, Normal0 table, ItemNum%02d params
normal0ItemStuffNum int Number of unique actors required to upgrade to this actor at a Great Fairy sbactorpack, brecipe, Normal0 table, ColumnNum param
pictureBookLiveSpot1 int - -
pictureBookLiveSpot2 int - -
pictureBookSpecialDrop int - -
profile str Profile name (see ActorTemplate) sbactorpack, ActorLink, Profile param
rigidBodyCenterY float - -
rupeeRupeeValue int - -
seriesArmorEnableCompBonus bool Whether or not this armor counts toward providing its seriesArmorSeriesType bonus sbactorpack, bgparamlist, SeriesArmor section, EnableCompBonus param
seriesArmorSeriesType str The set bonus that this actor will provide, when equipped with two other actors that have the same seriesArmorSeriesType sbactorpack, bgparamlist, SeriesArmor section, SeriesType param
slink str Determines the name of the actor's entry in the Slink2DB file, used for effects sbactorpack, ActorLink, SlinkUser param
sortKey int Determines the order of the actor in the Picture Book and inventory (0 if not needed) Not found outside ActorInfo.product
systemIsGetItemSelf bool 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) sbactorpack, bgparamlist, System section, IsGetItemSelf param
systemSameGroupActorName str - sbactorpack, bgparamlist, System section, SameGroupActorName param
tags dict 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. sbactorpack, ActorLink, Tags section
terrainTextures array 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. -
travelerAppearGameDataName str - -
travelerDeleteGameDataName str - -
travelerRideHorseName str - -
travelerRoutePoint%dName str - -
travelerRouteType str - -
traverseDist float - -
variationMatAnim str - -
variationMatAnimFrame int - -
weaponCommonGuardPower int - -
weaponCommonPoweredSharpAddAtkMax int - -
weaponCommonPoweredSharpAddAtkMin int - -
weaponCommonPoweredSharpAddLifeMax int - -
weaponCommonPoweredSharpAddLifeMin int - -
weaponCommonPoweredSharpAddRapidFireMax float - -
weaponCommonPoweredSharpAddRapidFireMin float - -
weaponCommonPoweredSharpAddSpreadFire bool - -
weaponCommonPoweredSharpAddSurfMaster bool - -
weaponCommonPoweredSharpAddThrowMax float - -
weaponCommonPoweredSharpAddThrowMin float - -
weaponCommonPoweredSharpAddZoomRapid bool - -
weaponCommonPoweredSharpWeaponAddGuardMax int - -
weaponCommonPoweredSharpWeaponAddGuardMin int - -
weaponCommonRank int - -
weaponCommonSharpWeaponAddAtkMax int - -
weaponCommonSharpWeaponAddAtkMin int - -
weaponCommonSharpWeaponAddCrit bool - -
weaponCommonSharpWeaponAddGuardMax int - -
weaponCommonSharpWeaponAddGuardMin int - -
weaponCommonSharpWeaponAddLifeMax int - -
weaponCommonSharpWeaponAddLifeMin int - -
weaponCommonSharpWeaponPer float - -
weaponCommonStickDamage int - -
xlink str - -
yLimitAlgorithm str See blifecondition. This might not be a required entry. [check] sbactorpack, blifecondition, YLimitAlgorithm param

Hashes

Hashes is an array of CRC32 hashes of actor names.

This array must 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.

Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.

  1. 0x7100D26480 [nx-1.5.0 executable]
  2. 0x7100D26534 [nx-1.5.0 executable]