This framework mod adds extra functionalities to farm animal data, such as defining animals that can both be sheared and milked, animals that eat food other than hay, and more
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features without permission from or credit to me
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou are allowed to use the assets in this file without permission or crediting me
Asset use permission in mods/files that are being soldYou are allowed to use the assets in this file in mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are allowed to earn Donation Points for your mods if they use my assets
Author notes
Licensed under the Apache 2 License.
File credits
Credits to Wildflour's The Bee's Knees for being this mod's test subject for some of its features: https://www.nexusmods.com/stardewvalley/mods/20928
Credits to ghygr123 for Chinese Translation.
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Animals with extra houses defined in EAC can now also hatch in those houses, not just the vanilla one.
Version 1.8.1
Fix coding error in the "animal produce created" event handler
Version 1.8.0
Add ability to specify multiple item queries for the output override
Add ability to specify whether an animal can go outside with a GSQ
Add an API with some basic functionality for C# mods.
Add PT translation (thank you Sxdic!)
Fix: ExtraHouses now only need to specify the base building.
Version 1.7.0
Add a more general system to specify animal texture that can accept GSQs, including animal age, friendship, and current produce. The old "texture based on produce" system is deprecated, but will still work.
Add settings to not set the quality of animal produce based on its friendship. Useful for if your animal drops items like ore where quality is a detriment.
Version 1.6.1
Fix animals not dropping debris produce (e.g. manure in Immersive Manure) in extremely rare cases, including if they were still outside when the farmer went to sleep.
Version 1.6.0
Updated for SDV 1.6.14
Version 1.5.1
Possibly fix rare issues with animals that have null type
Version 1.5.0
Updated for Stardew Valley 1.6.9. Not compatible with older game versions!
NEW: animals that can still go outside even when raining or during winter. This can be per-animal, or per-animal house type.
NEW: extra houses an animal can live in aside from its primary house. As an example, this can be used to make an animal that can live in both coops and barns.
NEW: glowing animals with attached lightsources.
NEW: animals faster (or slower) than default speed.
CHANGED: Custom feed hoppers now always give the full amount equal to the animal house's capacity (unless the bench is full). This is to reduce confusion in cases where the house is empty.
CHANGED: Improve compatibility by prepopulating the AnimalExtensionData custom asset with every animal in the game. This is so mod authors can use TargetField without having to load an empty asset beforehand, or just write a new Entry that might overwrite other mods' changes.
Version 1.4.1
Fix rare issue causing some animals to not drop their produce as expected
Version 1.4.0
Add ability to define multiple simulatenous drops from an animal.
Add ability to specify extra drops from scything grass. The extra drops will be added to a silo if available, or optionally enter the player's inventory.
Animal produce Condition field (vanilla or from this mod) can now check whether an animal has consumed a golden animal cracker.
You no longer need to set GrassEatAmount to 0 for outside foragers. GrassEatAmount > 0 is now a reliable indicator for whether an animal eats hay, forager or not.
Produce texture override will now try to fallback to the skin texture if it's identical to the regular texture and the animal has a skin.
(Simply speaking - Milkable Sheep should now be properly compatible with extra animal skin mods without efforts needed on either mod's end)
ANIMAL_HOUSE_COUNT and ANIMAL_COUNT can now accept ANY as an animal type to check for any animal.
Version 1.3.3
Add Chinese translation (courtesy of ghygr123!)
Version 1.3.2
Fix custom silos that are still under construction working as if they are already built
Version 1.3.1
Fix custom silos not working in farm locations outside of the main farm
Possibly fix Animals Die interaction? I have not tested this.
Version 1.3.0
Add "dirt foragers" config - animals that when let outside don't have to eat grass, but still needs to eat when inside
Add mixed silos feature - mix in multiple feed types (including vanilla hay) in a single building and tile action.
Add building feed override. This is not too terribly useful for modded buildings, and is mainly used for changing vanilla buildings while keeping compat with interior mods.
Pulling from the vanilla hay hopper will now also put modded feed into the player's inventory if possible. The hopper tile action is still useful in case you don't want to use the hopper object, but it's mostly handled by the hopper now..
Version 1.2.0
Add new game state queries for checking if current/every location has the specified count of animals
Version 1.1.4
Fix game crashing when this mod's content packs are removed mid-save and animals have invalid produce
Version 1.1.3
Fix harvest method override not working if the animal defaults to dropping its produce for real this time I swear
Version 1.1.2
Fix animals with modded config eating hay even though they were fed grass
Version 1.1.1
Fix harvest method override not working if the animal defaults to dropping its produce
Version 1.1.0
Add ability for animals to use all 4 methods of produce (drop overnight, milk pail, shears, or dig up). They can only do this once per day however for balance reasons.
Animals that don't eat grass now will also don't eat hay.
This mod adds extra functionality to the farm animal data model, allowing modders to define custom animals with some custom behaviors beyond the vanilla game.
Current features list:
Animals that can eat food other than grass and hay, and silos to contain this custom feed.
Multiple possible animal choices from an egg hatch or live birth, instead of always the same animal as the parent.
Animals with multiple harvest methods depending on their current produce, such as animals that can both be sheared and milked.
Animals with multiple simultaneous produce instead of just one type of item per day. Can be combined with the above.
Animal appearance based on age, produce, and other content. This can be used to make animals with multiple growth stages.
Animals that can go outside even during rain and winter.
Animals that can attack you.
Item queries in animal produce spawn. Notably, this allows "dig up" animals (e.g. Pigs) to dig multiple possible items instead of only one item per day.
Animal produce that ignore quality from friendship.
Harvest Moon chickens-like animals that don't need to eat if they're let outside.
A couple new GSQs for "player has animals" in either current location, or globally.
New drops from scything grass.
This framework mod does nothing on its own, and requires content packs using it to function. For content creators, see the guide below.
Compatibility:
Animal Husbandry: Animals manually impregnated by the syringe can use this mod's feature to determine the resulting child animal. There are no interactions between the two mods otherwise, and they can both be used alongside each other.
Better Ranching: Partially compatible, you need to turn off "Prevent Failed Harvesting" for the "shearable and milkable" feature to work. Full compatibility is in the works pending this pull request.
Animals Die: Animals that eat custom feed are not compatible with that mod's hunger portion. Disable it for now.