Difference between revisions of "Modding:Animal data"

From Stardew Valley Wiki
Jump to navigation Jump to search
Line 9: Line 9:
  
 
==Basic format==
 
==Basic format==
All bundles share the same format, which cannot be re-ordered. Each field is explained below.
+
Each entry in the data contains a '''key''' and a '''value''' made up of many '''fields'''.
 +
 
 +
===Key===
 +
An animal's <tt>type</tt> must be a key that exists in the data. Each key in the data must be unique.
 +
 
 +
===Value===
 +
All entries share the same value format, which cannot be re-ordered. Each field is explained below.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 18: Line 24:
 
|-
 
|-
 
| 0
 
| 0
| <tt>{{t|Animal Name}}</tt>
+
| <tt>{{t|Days to Produce}}</tt>
| What the animal will be called. Can be changed freely or new entries added for new animals.
+
| Number of days for the animal to [[Animals#Produce|produce]]. Is affected by [[Animals#Animal_Care|friendship and happiness]] in some way. [[Sheep]] are affected by the [[Shepherd]] profession.
 
|-
 
|-
 
| 1
 
| 1
| <tt>{{t|Days to Produce}}</tt>
 
| Number of days for the animal to produce its product.  Is affected by friendship/happiness in some way.
 
|-
 
| 2
 
 
| <tt>{{t|Age When Mature}}</tt>
 
| <tt>{{t|Age When Mature}}</tt>
 
| Number of days until mature.
 
| Number of days until mature.
 
|-
 
|-
| 3
+
| 2
 
| <tt>{{t|Default Produce Index}}</tt>
 
| <tt>{{t|Default Produce Index}}</tt>
| Index number for default produce item (ex Milk). Taken from springobjects.xnb
+
| Index number for [[Animals#Produce|default produce item]] (ex <tt>184</tt> is "[[Milk]]"). Taken from [[Modding:Object data]].
 
|-
 
|-
| 4
+
| 3
 
| <tt>{{t|Deluxe Produce Index}}</tt>
 
| <tt>{{t|Deluxe Produce Index}}</tt>
| Index number for deluxe produce item (ex Large Milk). Taken from springobjects.xnb.
+
| Index number for [[Animals#Deluxe_and_Large_Products|deluxe produce item]] (ex <tt>186</tt> is "[[Large Milk]]"). Taken from [[Modding:Object data]].
 
|-
 
|-
| 5
+
| 4
| <tt>{{t|SoundID}}</tt>
+
| <tt>{{t|Sound}}</tt>
| What sound clip the animal will use. Available sounds are <tt>cluck</tt>, <tt>Duck</tt>, <tt>rabbit</tt>, <tt>cow</tt>, <tt>goat</tt>, <tt>pig</tt>, <tt>sheep</tt>, or <tt>none</tt>.
+
| What sound clip the animal will use. Accepts all Sound Bank IDs.
 
|-
 
|-
| 6-9
+
| 5-8
| <tt>{{t|Front-to-back Bounding Box}}</tt>
+
| <tt>{{t|Front and Back Bounding Box}}</tt>
| Unused data. In form of <tt>8/32/48/32/</tt>. Can be all zeroes.
+
| Unused data. In the form of <tt>x/y/width/height/</tt>. Can be all zeroes.
 
|-
 
|-
| 10-13
+
| 9-12
 
| <tt>{{t|Sideways Bounding Box}}</tt>
 
| <tt>{{t|Sideways Bounding Box}}</tt>
| Unused data. In form of <tt>8/32/48/32/</tt>. Can be all zeroes.
+
| Unused data. In the form of <tt>x/y/width/height/</tt>. Can be all zeroes.
 +
|-
 +
| 13
 +
| <tt>{{t|Harvest Type}}</tt>
 +
| Accepts <tt>0</tt> (lay like [[Chickens]]), <tt>1</tt> (grab with a [[tool]]), or <tt>2</tt> (unused - seen only on the Hog and sets name to "It"). [[Pigs]] have a <tt>harvest type</tt> of <tt>1</tt> and a <tt>harvest tool</tt> of <tt>null</tt>, but their [[Truffle]] finding capability is limited to animals that have a <tt>type</tt> that contains "Pig".
 
|-
 
|-
 
| 14
 
| 14
| <tt>{{t|Harvest Type}}</tt>
+
| <tt>{{t|Show Different Texture When Ready for Harvest}}</tt>
|  
+
| Used for indicating an animal with a secondary texture. Accepts <tt>true</tt> or <tt>false</tt>. Must have a <tt>Sheared</tt> texture loaded such as <tt>Animals/ShearedSheep.xnb</tt>.
 
|-
 
|-
 
| 15
 
| 15
| <tt>{{t|Show Different Texture}}</tt>
 
| Used for indicating an animal with a secondary texture, for example sheep.  Accepts <tt>true/false</tt>.
 
|-
 
| 16
 
 
| <tt>{{t|Building Type}}</tt>
 
| <tt>{{t|Building Type}}</tt>
| Building category animal lives in.  Currently only <tt>Coop</tt> or <tt>Barn</tt>.
+
| [[Animals#Housing|Building]] which the animal can live in such as <tt>Coop</tt> or <tt>Barn</tt>. Matches to [[Modding:Blueprint data|blueprints]] that have the building type in its name.
 
|-
 
|-
| 17-18
+
| 16-17
| <tt>{{t|Sprite Width/Height}}</tt>
+
| <tt>{{t|Front and Back Sprite Width/Height}}</tt>
| Size in pixels of front and back sprites. Ex: Chickens are <tt>16/16</tt>.
+
| Size in pixels of front and back sprites. [[Coop]] animals such as [[Chickens]] are <tt>16/16</tt> and [[Barn]] animals such as [[Cows]] are <tt>32/32</tt>.
 
|-
 
|-
| 19-20
+
| 18-19
| <tt>{{t|Sprite Width/Height}}</tt>
+
| <tt>{{t|Sideways Sprite Width/Height}}</tt>
| Size in pixels of sideways sprites. Ex: Chickens are <tt>16/16</tt>.
+
| Size in pixels of sideways sprites. [[Coop]] animals such as [[Chickens]] are <tt>16/16</tt> and [[Barn]] animals such as [[Cows]] are <tt>32/32</tt>.
 
|-
 
|-
| 21
+
| 20
 
| <tt>{{t|Fullness Drain}}</tt>
 
| <tt>{{t|Fullness Drain}}</tt>
|  
+
| Daily amount taken from the animal's [[Animals#Food|fullness]] value.
 
|-
 
|-
| 22
+
| 21
 
| <tt>{{t|Happiness Drain}}</tt>
 
| <tt>{{t|Happiness Drain}}</tt>
|  
+
| Daily amount taken from the animal's [[Animals#Mood|happiness]] value.
 
|-
 
|-
| 23
+
| 21
 
| <tt>{{t|Harvest Tool}}</tt>
 
| <tt>{{t|Harvest Tool}}</tt>
| Which tool is needed to harvest produce from animal. Excepts <tt>Milk Pail</tt>, <tt>Shears</tt>, or <tt>null</tt>.
+
| Which [[tool]] is needed to harvest [[Animals#Produce|produce]] from animal with a <tt>harvest type</tt> of <tt>1</tt>. Accepts <tt>null</tt> (no tool) or any [[tool]] such as <tt>Milk Pail</tt> or <tt>Shears</tt>.
 
|-
 
|-
| 24
+
| 23
 
| <tt>{{t|Meat Index}}</tt>
 
| <tt>{{t|Meat Index}}</tt>
| Index number for meat sprites, pulled from SpringObjects.xnb. Unused in vanilla game, but may be used by mods such as Animal Husbandry.
+
| Unused data. Index number for meat [[Modding:Object data|objects]]. May be used by mods such as ''Animal Husbandry''.
 
|-
 
|-
| 25
+
| 24
 
| <tt>{{t|Price}}</tt>
 
| <tt>{{t|Price}}</tt>
| Cost of animal when purchasing from Marnie.
+
| Used to calculate the amount you get for [[Animals#Selling Animals|selling]] an animal. This is not the cost of the animal when purchasing from [[Marnie's Ranch]].
 
|-
 
|-
| 26
+
| 25
 
| <tt>{{t|Display Type}}</tt>
 
| <tt>{{t|Display Type}}</tt>
| Name to display for animal type. Used for non-English language compatibility, but is also present in English version.
+
| Name to display for the animal's <tt>type</tt>. Used for non-English language compatibility, but is also present in English version.
 
|-
 
|-
| 16
+
| 26
 
| <tt>{{t|Display Building}}</tt>
 
| <tt>{{t|Display Building}}</tt>
| Name to display for what building animal lives in.  Used for non-English language compatibility, but is also present in English version.
+
| Name to display for what <tt>building type</tt> the animal lives in.  Used for non-English language compatibility, but is also present in English version.
 
|}
 
|}
  
 
[[Category:Modding]]
 
[[Category:Modding]]

Revision as of 15:20, 16 March 2019

Index

Source

Animal data is stored in Content\Data\FarmAnimals.xnb, which can be unpacked using XNB Extract.

Here's an example for reference:

"Dinosaur": "1/0/107/-1/none/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/1/8/null/644/1000/Dinosaur/Coop",

Basic format

Each entry in the data contains a key and a value made up of many fields.

Key

An animal's type must be a key that exists in the data. Each key in the data must be unique.

Value

All entries share the same value format, which cannot be re-ordered. Each field is explained below.

index syntax description
0 <Days to Produce> Number of days for the animal to produce. Is affected by friendship and happiness in some way. Sheep are affected by the Shepherd profession.
1 <Age When Mature> Number of days until mature.
2 <Default Produce Index> Index number for default produce item (ex 184 is "Milk"). Taken from Modding:Object data.
3 <Deluxe Produce Index> Index number for deluxe produce item (ex 186 is "Large Milk"). Taken from Modding:Object data.
4 <Sound> What sound clip the animal will use. Accepts all Sound Bank IDs.
5-8 <Front and Back Bounding Box> Unused data. In the form of x/y/width/height/. Can be all zeroes.
9-12 <Sideways Bounding Box> Unused data. In the form of x/y/width/height/. Can be all zeroes.
13 <Harvest Type> Accepts 0 (lay like Chickens), 1 (grab with a tool), or 2 (unused - seen only on the Hog and sets name to "It"). Pigs have a harvest type of 1 and a harvest tool of null, but their Truffle finding capability is limited to animals that have a type that contains "Pig".
14 <Show Different Texture When Ready for Harvest> Used for indicating an animal with a secondary texture. Accepts true or false. Must have a Sheared texture loaded such as Animals/ShearedSheep.xnb.
15 <Building Type> Building which the animal can live in such as Coop or Barn. Matches to blueprints that have the building type in its name.
16-17 <Front and Back Sprite Width/Height> Size in pixels of front and back sprites. Coop animals such as Chickens are 16/16 and Barn animals such as Cows are 32/32.
18-19 <Sideways Sprite Width/Height> Size in pixels of sideways sprites. Coop animals such as Chickens are 16/16 and Barn animals such as Cows are 32/32.
20 <Fullness Drain> Daily amount taken from the animal's fullness value.
21 <Happiness Drain> Daily amount taken from the animal's happiness value.
21 <Harvest Tool> Which tool is needed to harvest produce from animal with a harvest type of 1. Accepts null (no tool) or any tool such as Milk Pail or Shears.
23 <Meat Index> Unused data. Index number for meat objects. May be used by mods such as Animal Husbandry.
24 <Price> Used to calculate the amount you get for selling an animal. This is not the cost of the animal when purchasing from Marnie's Ranch.
25 <Display Type> Name to display for the animal's type. Used for non-English language compatibility, but is also present in English version.
26 <Display Building> Name to display for what building type the animal lives in. Used for non-English language compatibility, but is also present in English version.