Difference between revisions of "Modding:Animal data"

From Stardew Valley Wiki
Jump to navigation Jump to search
(→‎Basic format: rename section to 'Format', tweak intro line)
(copyedit, simplify a bit, minor updates & clarifications)
Line 2: Line 2:
  
 
==Raw data==
 
==Raw data==
Animal data is stored in <tt>Content\Data\FarmAnimals.xnb</tt>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. Here's the raw data as of {{version|1.3.36}} for reference:
+
Animal data is stored in <tt>Content\Data\FarmAnimals.xnb</tt>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. Here's the raw data as of {{version|1.4.5}} for reference:
  
 
{{collapse|Data|content=<source lang="json">
 
{{collapse|Data|content=<source lang="json">
Line 38: Line 38:
 
|-
 
|-
 
| 0
 
| 0
| <tt>{{t|Days to Produce}}</tt>
+
| {{t|days to produce}}
| 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.
+
| Number of days for the animal to [[Animals#Produce|produce]]. This is affected by [[Animals#Animal Care|friendship and happiness]], and [[Sheep]] are affected by the [[Shepherd]] profession.
 
|-
 
|-
 
| 1
 
| 1
| <tt>{{t|Age When Mature}}</tt>
+
| {{t|age when mature}}
 
| Number of days until mature.
 
| Number of days until mature.
 
|-
 
|-
 
| 2
 
| 2
| <tt>{{t|Default Produce Index}}</tt>
+
| {{t|default produce index}}
| Index number for [[Animals#Produce|default produce item]] (ex <tt>184</tt> is "[[Milk]]"). Taken from [[Modding:Object data]].
+
| The [[Modding:Object data|item ID]] for the [[Animals#Produce|default produce item]] (e.g. <tt>184</tt> is [[Milk]]).
 
|-
 
|-
 
| 3
 
| 3
| <tt>{{t|Deluxe Produce Index}}</tt>
+
| {{t|deluxe produce index}}
| Index number for [[Animals#Deluxe_and_Large_Products|deluxe produce item]] (ex <tt>186</tt> is "[[Large Milk]]"). Taken from [[Modding:Object data]].
+
| The [[Modding:Object data|item ID]] for the [[Animals#Deluxe and Large Products|deluxe produce item]] (e.g. <tt>186</tt> is [[Large Milk]]).
 
|-
 
|-
 
| 4
 
| 4
| <tt>{{t|Sound}}</tt>
+
| {{t|sound}}
| What sound clip the animal will use. Accepts all [https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit#gid=239695361 Sound Bank IDs].
+
| The sound clip the animal uses (see [https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit#gid=239695361 soundbank IDs]).
 
|-
 
|-
| 5-8
+
| 5-12
| <tt>{{t|Front and Back Bounding Box}}</tt>
+
| {{t|bounding boxes}}
| Unused data. In the form of <tt>x/y/width/height/</tt>. Can be all zeroes.
+
| Unused data. The front & back (5-8) and sideways (9-12) bounding boxes, in the form of <tt>x/y/width/height</tt>. Can be all zeroes.
|-
 
| 9-12
 
| <tt>{{t|Sideways Bounding Box}}</tt>
 
| Unused data. In the form of <tt>x/y/width/height/</tt>. Can be all zeroes.
 
 
|-
 
|-
 
| 13
 
| 13
| <tt>{{t|Harvest Type}}</tt>
+
| {{t|harvest type}}
| 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".
+
| How the animal produces items. The possible values are <tt>0</tt> (lay like [[Chickens]]), <tt>1</tt> (grab with a [[tool]]), and <tt>2</tt> (unused - seen only on the Hog and sets name to "It"). [[Pigs]] have a {{t|harvest type}} of <tt>1</tt> and a {{t|harvest tool}} 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|Show Different Texture When Ready for Harvest}}</tt>
+
| {{t|change texture when item ready}}
| 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>.
+
| Whether the animal should use a secondary texture when you can harvest an item. Can be <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|Building Type}}</tt>
+
| {{t|building type}}
| [[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.
+
| The [[Animals#Housing|building]] in which the animal can live. This must be a [[Modding:Blueprint data|blueprint type]], like <tt>Coop</tt> or <tt>Barn</tt>.
|-
 
| 16-17
 
| <tt>{{t|Front and Back Sprite Width/Height}}</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>.
 
 
|-
 
|-
| 18-19
+
| 16-19
| <tt>{{t|Sideways Sprite Width/Height}}</tt>
+
| {{t|sprite size}}
| 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>.
+
| The front & back sprite (16-17) and sideways (18-19) sprite width/height in pixels. [[Coop]] animals such as [[Chickens]] are <tt>16/16</tt> and [[Barn]] animals such as [[Cows]] are <tt>32/32</tt>.
 
|-
 
|-
 
| 20
 
| 20
| <tt>{{t|Fullness Drain}}</tt>
+
| {{t|fullness drain}}
| Daily amount taken from the animal's [[Animals#Food|fullness]] value.
+
| The daily reduction in the animal's [[Animals#Food|fullness]] value.
 
|-
 
|-
 
| 21
 
| 21
| <tt>{{t|Happiness Drain}}</tt>
+
| {{t|happiness drain}}
| Daily amount taken from the animal's [[Animals#Mood|happiness]] value.
+
| The daily reduction in the animal's [[Animals#Mood|happiness]] value.
 
|-
 
|-
 
| 21
 
| 21
| <tt>{{t|Harvest Tool}}</tt>
+
| {{t|harvest tool}}
| 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>.
+
| Which [[tool]] is needed to harvest [[Animals#Produce|produce]] from animal with a {{t|harvest type}} of <tt>1</tt>. This can be <tt>null</tt> (no tool) or any [[tool]] such as <tt>Milk Pail</tt> or <tt>Shears</tt>.
 
|-
 
|-
 
| 23
 
| 23
| <tt>{{t|Meat Index}}</tt>
+
| {{t|meat index}}
| Unused data. Index number for meat [[Modding:Object data|objects]]. May be used by mods such as [https://www.nexusmods.com/stardewvalley/mods/1538 Animal Husbandry].
+
| Unused data. The [[Modding:Object data|item ID]] for the meat item when butchered. May be used by mods like {{Nexus mod|1538|Animal Husbandry}}.
 
|-
 
|-
 
| 24
 
| 24
| <tt>{{t|Price}}</tt>
+
| {{t|sell price}}
| 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]].
+
| Affects the price when you [[Animals#Selling Animals|sell an animal]]. This has no effect on the price of animals in [[Marnie's Ranch]], which is set in the game code.
 
|-
 
|-
 
| 25
 
| 25
| <tt>{{t|Display Type}}</tt>
+
| {{t|display type}}
| Name to display for the animal's <tt>type</tt>. Used for non-English language compatibility, but is also present in English version.
+
| The translated animal name. Only used when not playing in English; English players will see the {{t|type}} value.
 
|-
 
|-
 
| 26
 
| 26
| <tt>{{t|Display Building}}</tt>
+
| {{t|display building}}
| 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.
+
| The translated building name. Only used when not playing in English; English players will see the {{t|building type}} value.
 
|}
 
|}
  

Revision as of 19:25, 23 November 2020

Index

Raw data

Animal data is stored in Content\Data\FarmAnimals.xnb, which can be unpacked for editing. Here's the raw data as of 1.4.5 for reference:

Data 
{
  "White Chicken": "1/3/176/174/cluck/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/4/7/null/641/800/White Chicken/Coop",
  "Brown Chicken": "1/3/180/182/cluck/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/7/4/null/641/800/Brown Chicken/Coop",
  "Blue Chicken": "1/3/176/174/cluck/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/7/4/null/641/800/Blue Chicken/Coop",
  "Void Chicken": "1/3/305/305/cluck/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/4/4/null/641/800/Void Chicken/Coop",
  "Duck": "2/5/442/444/Duck/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/3/8/null/642/4000/Duck/Coop",
  "Rabbit": "4/6/440/446/rabbit/8/32/48/32/8/32/48/32/0/false/Coop/16/16/16/16/10/5/null/643/8000/Rabbit/Coop",
  "Dinosaur": "7/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",
  "White Cow": "1/5/184/186/cow/36/64/64/64/36/64/64/64/1/false/Barn/32/32/32/32/15/5/Milk Pail/639/1500/White Cow/Barn",
  "Brown Cow": "1/5/184/186/cow/36/64/64/64/36/64/64/64/1/false/Barn/32/32/32/32/15/5/Milk Pail/639/1500/Brown Cow/Barn",
  "Goat": "2/5/436/438/goat/24/64/84/64/24/64/84/64/1/false/Barn/32/32/32/32/10/5/Milk Pail/644/4000/Goat/Barn",
  "Pig": "1/10/430/-1/pig/24/64/84/64/24/64/84/64/1/false/Barn/32/32/32/32/20/5/null/640/16000/Pig/Barn",
  "Hog": "1/5/640/-1/pig/24/64/84/64/24/64/84/64/2/false/Barn/32/32/32/32/20/5/null/640/1500/Hog/Barn",
  "Sheep": "3/4/440/-1/sheep/24/64/84/64/24/64/84/64/1/true/Barn/32/32/32/32/15/5/Shears/644/8000/Sheep/Barn"
}

Format

Each entry in the data contains a key and a value, and each value contains 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. This is affected by friendship and happiness, and Sheep are affected by the Shepherd profession.
1 <age when mature> Number of days until mature.
2 <default produce index> The item ID for the default produce item (e.g. 184 is Milk).
3 <deluxe produce index> The item ID for the deluxe produce item (e.g. 186 is Large Milk).
4 <sound> The sound clip the animal uses (see soundbank IDs).
5-12 <bounding boxes> Unused data. The front & back (5-8) and sideways (9-12) bounding boxes, in the form of x/y/width/height. Can be all zeroes.
13 <harvest type> How the animal produces items. The possible values are 0 (lay like Chickens), 1 (grab with a tool), and 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 <change texture when item ready> Whether the animal should use a secondary texture when you can harvest an item. Can be true or false. Must have a Sheared texture loaded such as Animals/ShearedSheep.xnb.
15 <building type> The building in which the animal can live. This must be a blueprint type, like Coop or Barn.
16-19 <sprite size> The front & back sprite (16-17) and sideways (18-19) sprite width/height in pixels. Coop animals such as Chickens are 16/16 and Barn animals such as Cows are 32/32.
20 <fullness drain> The daily reduction in the animal's fullness value.
21 <happiness drain> The daily reduction in the animal's happiness value.
21 <harvest tool> Which tool is needed to harvest produce from animal with a <harvest type> of 1. This can be null (no tool) or any tool such as Milk Pail or Shears.
23 <meat index> Unused data. The item ID for the meat item when butchered. May be used by mods like Animal Husbandry.
24 <sell price> Affects the price when you sell an animal. This has no effect on the price of animals in Marnie's Ranch, which is set in the game code.
25 <display type> The translated animal name. Only used when not playing in English; English players will see the <type> value.
26 <display building> The translated building name. Only used when not playing in English; English players will see the <building type> value.