Currently working on a modpack (Tradewinds) for 1.7.10, which allows players to specialize in professions (like fishing, farming, beekeeping, metal working, etc)
Most of these have mods out there that let me create pretty involved progression systems (Forestry for bees, Mariculture for fishing, Agricraft for farming, Minefantasy for blacksmithing, etc)
Well, it turns out there's no mods out there that overhaul animal breeding and husbandry in a similarly involved/progression based way.
I would like to request for such a mod to be made. I'll try to outline this mod in a way that it can be used in other modpacks as well, if you wish to release it to the public. I'm happy to provide support for designing the mod's philosophy, mechanics and textures, but I don't know a lick of coding.
For those of you who used Agricraft, this mod will apply a very similar system to animals.
___________________
This mod gives all farm animals THREE stats, whose values range from 1-10:
Growth - Determines the animal's willingness to breed and how quickly they grow.
Yield - Determines how much animal product an animal yields.
Resilience - Determines an animal's resistance to getting sick.
These stats are represented like this: G/Y/R. So, 1/2/3 is 1 Growth / 2 Yield / 3 Resilience.
In most cases, 1 stat = 10% chance of something happening (described below under each stat section).
The premise here is players must capture wild animals, whose stats will start out 1/1/1, and must feed and care for their animals, otherwise they will get sick, starve and die. Taking care of your animals and breeding them will increase their overall quality (stats), giving you farm animals that live a long time, resist sickness, and produce plenty of food.
A lot of the systems I describe below incorporate a 'roll for success/failure every X ticks'
This 'X ticks' should be a configurable option for each associated mechanic. This way, users of the mod can adjust how frequently things like breeding, sickness, etc occur. The chance these things will happen is solely based on stats, but how often they occur is based on a configurable 'per X ticks' setting.
___________________
FOOD
Each animal requires a different blend of food to survive. All animals will have a hidden hunger bar that ranges from 0-10. This hunger bar slowly drains over time (configurable in ticks - X ticks per 1 hunger bar depletion), and all animals will always perform checks for nearby food. If food is found, it will eat it. Different foods will restore different amounts of hunger... but it shouldn't be super complicated.
Basically, you can feed animals three kinds of food.
1 - Plain food. This is stuff like feeding cows raw wheat or feeding pigs apples. Unmixed, plain feed restores 1 hunger.
2 - Generic mixed feed. You get this by crafting together most any of 2 food items. This can be fed to any animal, and restores 3 hunger.
3 - Specialized feed. You get this by crafting together 3 specific ingredients, based on the animal the feed is for. Pigs would eat slop, which is carrots, melon/pumpkin and apples. Cows would eat a hay mix, which is 2x wheat and seeds. Chickens eat a seed mix, which is any x3 combination of seeds and melon seeds. All of these recipes require 3 of something, and restore 5 hunger.
These should be normal, shapeless crafting recipes so modpack makers can edit the recipes via Minetweaker (as I intend to do for my modpack)
This mod will also add a handful of new blocks which can hold various kinds of feed. Troughs for pig slop, hay bin for cow feed, and chicken coop for chicken feed, etc. There would also be a bin for holding generic feed. Players can also hand feed animals by right clicking them with feed.
If an animal's hunger reaches zero, it enters into a famished state, and the animal's texture will change to appear famished.
As soon as the animal becomes famished, it loses 1 of every stat (a 10/10/10 famished cow would become 9/9/9). These stats will NOT be recovered after feeding the animal to get it out of the famishes state.
Famished animals also stop producing byproducts (such as famished chickens not laying eggs), will not breed, and will not grow. They will resume doing these things once you feed them. A famished animal leaves the famished state when its hunger bar reaches a full 10. This way, players can't just keep an animal barely starving with 1 hunger after it became famished.
If an animal stays famished for X ticks, it dies.
Animals will excrete poop. Excretion occurs when an animal's hunger bar has lost 5 hunger (even after they eat something, this is a value the mod keeps track of to know when to create excretion). When excretion occurs, a tile of poop is left where the animal is. The poop looks just like a pile of snow, but brown. If another animal poops in the same spot, the poop pile grows, like snow piles do.
After X amount of time, poop will disappear and fertilize the ground its on (does the same effect as clicking that spot with bone meal).
Poop can be shoveled to create a manure item. This can be used just like bonemeal (for vanilla settings), or, the ability to use it as bonemeal can be DISABLED via configs, so modpack makers can include it in recipes.
___________________
GROWTH
This stat is associated with two mechanics.
Breeding.
Every X ticks, the mod will make all animals perform a breed check.
This check is based on the Growth stat.
If this check succeeds, the mod will check for any animals of the same species in a 4 block radius around that animal.
Any animal that is nearby then rolls a breed check based on their Growth stat.
If both animals succeed the roll, the mod breeds the two animals, producing an offspring.
For example.
COW1 has a Growth stat of 6 out of 10. When the mod performs the breed check, COW1 has a 60% chance to succeed the roll.
If the roll succeeds, the mod looks for a nearby (4 block radius) COW2, whose Growth stat is 4.
The mod then makes COW2 roll a breed check (this check is tied to the successful roll of COW1, and not an independent check). COW2 has a 40% chance to succeed.
If COW2's roll succeeds, the mod then takes all 3 stats of COW1 and COW2, averages them (rounding up) and produces an offspring with those stats.
So, if COW1 is 3/6/2 and COW2 is 4/4/7, then the offspring will be 4/5/5.
Aging/growing
Animals will go through 5 growth stages. The growth stat determines how quickly animals progress through each stage.
Every X ticks, the mod checks to see if an animal grows to the next stage.
(These should be very long durations, and perhaps even different durations for each growth stage, because animals stay adults much longer than they stay infant)
So, you might have the check for stage 1 > 2 take a total of 100 ticks, stage 2 > 3 150 ticks, 3 > 4 500 ticks, etc.
This check looks at the animal's growth stat and uses that as a percent chance for every check to determine if it grows or not.
Also, each time an animal grows from one stage to another, it has a chance to gain +1 in one of the 3 stats. This is determined by the growth stat itself. So, a 4 Growth animal has a 40% chance to gain +1 to either Growth, Yield or Resilience when it advances from one growth stage to another. The stat that gets this +1 increase is chosen at random by the mod.
Stages are:
1 - Newborn. These animals do not produce anything (no eggs, no meat if killed, no feathers, etc).
Newborns will only eat the specialized feed blends (#3 in the FOOD section above - they need nutrients to grow!)
If a newborn becomes famished, it dies immediately.
If it becomes sick, then it has a chance every X ticks to die, based on its Resilience stat. (Newborn with 9 Resilience has a 10% to die when sick, 1 Resilience has 90% chance to die when sick, etc). This means players must pay close attention to newborns to ensure they survive.
1 > 2 uses Growth stat to determine the chance it has TO advance from 1 > 2.
(So, Growth 4 animal has a 40% chance each check to go from Newborn to Young)
2 - Young. They still don't produce anything, like milk, meat, eggs etc. However, young animals will eat all of the 3 food types. They will not die when famished, and respect the same famished rules stated above. They also respect the same sickness rules outlined in the Resilience section. They're basically adults that don't produce any animal products nor can breed.
2 > 3 uses Growth stat to determine the chance it has TO advance from 2 > 3.
3 - Adult. This is your normal animal state, where most of your husbandry will occur. This is the only stage where animals can breed. This stage also has the longest duration, making up perhaps 50% of the animal's lifespan. This stage has 'no exceptions' to any of the other rules/systems outlined in this post.
3 > 4 uses Growth stat to determine the chance it has NOT to advance from 3 > 4.
Yep, this one is the opposite. So, Growth 4 animal would have a 60% chance to go from Adult to Old. (And a Growth 10 animal would have a 10% chance to go from Adult to Old, which is same as Growth 9, because we don't want immortal animals)
4 - Old. Once an animal enters this stage, ALL of its stats are cut in half, rounding up. Animals in this stage stop breeding. Similar to Newborn, they also have a percent chance to die when sick, and die immediately when famished. They will still eat any food, however.
4 > 5 uses Growth stat to determine the chance it has NOT to advance from 4 > 5.
Again, Growth stat is helping keep animals from dying at this point.
5 - Dead. What more is there to it? Animals get old and die. This stage is inevitable for all animals, regardless of how often they get sick or famished.
___________________
YIELD
This one simply determines how much and how often animals produce milk, eggs, wool, ink sacs, etc etc.
Animal byproducts, however, for the purpose of this stat, have to be divided into two categories and treated differently.
There's recurring byproducts, and then there's butchered byproducts.
Eggs, milk, wool, etc would be recurring, and ink sacs and meat would be butchered.
For recurring, yield determines how quickly animals produce stuff. Rather, the mod checks every X ticks and rolls for a chance based on the yield stat if the animal produces a product.
For cows, this is milk. So, every X ticks, a cow with a yield stat of 6 has a 60% chance to become milkable. Players can get 1 bucket of milk from a cow for each time it can be milked. I think for the purpose of this mod, there should be some indicator that a cow is ready to be milked, like changing the color of its udder or something...
For butchered products, the yield stat simply determines how many of that butchered item is dropped when the animal dies. Could be as straight forward as yield 1 = 1 porkchop, yield 10 = 10 porkchops.
___________________
RESILIENCE
With this stat, there is a sickness mechanic to the mod. Resilience determines how animals deal with sickness.
When an animal is sick, it will not breed nor produce anything, except when killed (a sick cow won't produce milk, but still drops meat when killed)
For the most part, sickness is pure RNG with Resilience determining how well your animal resists getting sick and how quickly it recovers from being sick.
Every X ticks, the mod makes animals perform a sickness check, based on the animal's resilience stat. An animal with 1 Resilience has a 90% chance to get sick when this check occurs, and a Resilience 10 animal will never get sick.
Once an animal is sick, there are 2 methods of recovery.
The first method is a splash healing potion. Yep. That easy. (Configurable perhaps to turn this off or even change the potion)
The second method is to isolate the animal and wait.
While an animal is sick, the mod will make the animal perform a recover check every X ticks (same duration as the sickness check). This check is based on Resilience. The higher the resilience, the more likely the animal will recover from sickness (again, 1 resilience = 10% chance to recover)
The reason why you want to isolate sick animals is because sickness can SPREAD!
Similar to how the breed check works, sick animals will, every X ticks, have a chance to spread their sickness. This check should occur right after the recovery check, meaning that when the mod checks if a sick animal recovers, and the check fails, it then immediately checks to see if the sickness spreads. Again, chance to spread is based on resilience.
If the check succeeds to spread sickness, the mod will attempt to make all nearby animals get sick (4 block radius). These nearby animals must then also check to see if they catch the sickness, chance being based on resilience.
You can see that if you have a lot of low resilience animals, and one gets sick, there's a good chance your entire farm of animals will get sick.
Additionally, while an animal is sick, it loses hunger at DOUBLE the speed as normal, meaning it gets hungry twice as fast.
If an animal becomes famished while sick, it dies (and vice versa, famished animals that get sick also die)
___________________
ADDITIONAL THINGS
Chicken coops are blocks you can place down. You can place chicken feed in them, and nearby chickens will eat it. Chicken coops will also pick up any nearby eggs and feathers, and place them in an inventory in the coop.
Troughs are used for placing pig slop in. Nearby pigs will eat from it.
Hay bins are for placing horse, sheep and cow feed in.
Fish cages are for placing fish in for nearby squid to eat.
An item of some sort for learning what an animal's stats are.
A method of naming animals, and recording them in a catalog that lists all animals by type, name and their stats. This way, you can name an animal (visible above the animal's head), and you can look at your catalog to see what stats that animal has. Unnamed animals will just be named after what species they are.
Different items for calling different animal species. Cow bell for herding cows, shepherd crook for herding sheep, etc.
A new potion for temporarily boosting an animal's stats. There could be 4 potions total, each with different strengths. 3 of them raise 1 of the 3 stats, and the 4 raises all 3 stats.
How much these potions raise a stat by is determined by the potion's strength, and how long by the duration (just like how vanilla potions work)
These potions have a side effect though. When the potion wears off, the animal immediately gets sick.
Currently working on a modpack (Tradewinds) for 1.7.10, which allows players to specialize in professions (like fishing, farming, beekeeping, metal working, etc)
Most of these have mods out there that let me create pretty involved progression systems (Forestry for bees, Mariculture for fishing, Agricraft for farming, Minefantasy for blacksmithing, etc)
Well, it turns out there's no mods out there that overhaul animal breeding and husbandry in a similarly involved/progression based way.
I would like to request for such a mod to be made. I'll try to outline this mod in a way that it can be used in other modpacks as well, if you wish to release it to the public. I'm happy to provide support for designing the mod's philosophy, mechanics and textures, but I don't know a lick of coding.
For those of you who used Agricraft, this mod will apply a very similar system to animals.
___________________
This mod gives all farm animals THREE stats, whose values range from 1-10:
Growth - Determines the animal's willingness to breed and how quickly they grow.
Yield - Determines how much animal product an animal yields.
Resilience - Determines an animal's resistance to getting sick.
These stats are represented like this: G/Y/R. So, 1/2/3 is 1 Growth / 2 Yield / 3 Resilience.
In most cases, 1 stat = 10% chance of something happening (described below under each stat section).
The premise here is players must capture wild animals, whose stats will start out 1/1/1, and must feed and care for their animals, otherwise they will get sick, starve and die. Taking care of your animals and breeding them will increase their overall quality (stats), giving you farm animals that live a long time, resist sickness, and produce plenty of food.
A lot of the systems I describe below incorporate a 'roll for success/failure every X ticks'
This 'X ticks' should be a configurable option for each associated mechanic. This way, users of the mod can adjust how frequently things like breeding, sickness, etc occur. The chance these things will happen is solely based on stats, but how often they occur is based on a configurable 'per X ticks' setting.
___________________
FOOD
Each animal requires a different blend of food to survive. All animals will have a hidden hunger bar that ranges from 0-10. This hunger bar slowly drains over time (configurable in ticks - X ticks per 1 hunger bar depletion), and all animals will always perform checks for nearby food. If food is found, it will eat it. Different foods will restore different amounts of hunger... but it shouldn't be super complicated.
Basically, you can feed animals three kinds of food.
1 - Plain food. This is stuff like feeding cows raw wheat or feeding pigs apples. Unmixed, plain feed restores 1 hunger.
2 - Generic mixed feed. You get this by crafting together most any of 2 food items. This can be fed to any animal, and restores 3 hunger.
3 - Specialized feed. You get this by crafting together 3 specific ingredients, based on the animal the feed is for. Pigs would eat slop, which is carrots, melon/pumpkin and apples. Cows would eat a hay mix, which is 2x wheat and seeds. Chickens eat a seed mix, which is any x3 combination of seeds and melon seeds. All of these recipes require 3 of something, and restore 5 hunger.
These should be normal, shapeless crafting recipes so modpack makers can edit the recipes via Minetweaker (as I intend to do for my modpack)
This mod will also add a handful of new blocks which can hold various kinds of feed. Troughs for pig slop, hay bin for cow feed, and chicken coop for chicken feed, etc. There would also be a bin for holding generic feed. Players can also hand feed animals by right clicking them with feed.
If an animal's hunger reaches zero, it enters into a famished state, and the animal's texture will change to appear famished.
As soon as the animal becomes famished, it loses 1 of every stat (a 10/10/10 famished cow would become 9/9/9). These stats will NOT be recovered after feeding the animal to get it out of the famishes state.
Famished animals also stop producing byproducts (such as famished chickens not laying eggs), will not breed, and will not grow. They will resume doing these things once you feed them. A famished animal leaves the famished state when its hunger bar reaches a full 10. This way, players can't just keep an animal barely starving with 1 hunger after it became famished.
If an animal stays famished for X ticks, it dies.
Animals will excrete poop. Excretion occurs when an animal's hunger bar has lost 5 hunger (even after they eat something, this is a value the mod keeps track of to know when to create excretion). When excretion occurs, a tile of poop is left where the animal is. The poop looks just like a pile of snow, but brown. If another animal poops in the same spot, the poop pile grows, like snow piles do.
After X amount of time, poop will disappear and fertilize the ground its on (does the same effect as clicking that spot with bone meal).
Poop can be shoveled to create a manure item. This can be used just like bonemeal (for vanilla settings), or, the ability to use it as bonemeal can be DISABLED via configs, so modpack makers can include it in recipes.
___________________
GROWTH
This stat is associated with two mechanics.
Breeding.
Every X ticks, the mod will make all animals perform a breed check.
This check is based on the Growth stat.
If this check succeeds, the mod will check for any animals of the same species in a 4 block radius around that animal.
Any animal that is nearby then rolls a breed check based on their Growth stat.
If both animals succeed the roll, the mod breeds the two animals, producing an offspring.
For example.
COW1 has a Growth stat of 6 out of 10. When the mod performs the breed check, COW1 has a 60% chance to succeed the roll.
If the roll succeeds, the mod looks for a nearby (4 block radius) COW2, whose Growth stat is 4.
The mod then makes COW2 roll a breed check (this check is tied to the successful roll of COW1, and not an independent check). COW2 has a 40% chance to succeed.
If COW2's roll succeeds, the mod then takes all 3 stats of COW1 and COW2, averages them (rounding up) and produces an offspring with those stats.
So, if COW1 is 3/6/2 and COW2 is 4/4/7, then the offspring will be 4/5/5.
Aging/growing
Animals will go through 5 growth stages. The growth stat determines how quickly animals progress through each stage.
Every X ticks, the mod checks to see if an animal grows to the next stage.
(These should be very long durations, and perhaps even different durations for each growth stage, because animals stay adults much longer than they stay infant)
So, you might have the check for stage 1 > 2 take a total of 100 ticks, stage 2 > 3 150 ticks, 3 > 4 500 ticks, etc.
This check looks at the animal's growth stat and uses that as a percent chance for every check to determine if it grows or not.
Also, each time an animal grows from one stage to another, it has a chance to gain +1 in one of the 3 stats. This is determined by the growth stat itself. So, a 4 Growth animal has a 40% chance to gain +1 to either Growth, Yield or Resilience when it advances from one growth stage to another. The stat that gets this +1 increase is chosen at random by the mod.
Stages are:
1 - Newborn. These animals do not produce anything (no eggs, no meat if killed, no feathers, etc).
Newborns will only eat the specialized feed blends (#3 in the FOOD section above - they need nutrients to grow!)
If a newborn becomes famished, it dies immediately.
If it becomes sick, then it has a chance every X ticks to die, based on its Resilience stat. (Newborn with 9 Resilience has a 10% to die when sick, 1 Resilience has 90% chance to die when sick, etc). This means players must pay close attention to newborns to ensure they survive.
1 > 2 uses Growth stat to determine the chance it has TO advance from 1 > 2.
(So, Growth 4 animal has a 40% chance each check to go from Newborn to Young)
2 - Young. They still don't produce anything, like milk, meat, eggs etc. However, young animals will eat all of the 3 food types. They will not die when famished, and respect the same famished rules stated above. They also respect the same sickness rules outlined in the Resilience section. They're basically adults that don't produce any animal products nor can breed.
2 > 3 uses Growth stat to determine the chance it has TO advance from 2 > 3.
3 - Adult. This is your normal animal state, where most of your husbandry will occur. This is the only stage where animals can breed. This stage also has the longest duration, making up perhaps 50% of the animal's lifespan. This stage has 'no exceptions' to any of the other rules/systems outlined in this post.
3 > 4 uses Growth stat to determine the chance it has NOT to advance from 3 > 4.
Yep, this one is the opposite. So, Growth 4 animal would have a 60% chance to go from Adult to Old. (And a Growth 10 animal would have a 10% chance to go from Adult to Old, which is same as Growth 9, because we don't want immortal animals)
4 - Old. Once an animal enters this stage, ALL of its stats are cut in half, rounding up. Animals in this stage stop breeding. Similar to Newborn, they also have a percent chance to die when sick, and die immediately when famished. They will still eat any food, however.
4 > 5 uses Growth stat to determine the chance it has NOT to advance from 4 > 5.
Again, Growth stat is helping keep animals from dying at this point.
5 - Dead. What more is there to it? Animals get old and die. This stage is inevitable for all animals, regardless of how often they get sick or famished.
___________________
YIELD
This one simply determines how much and how often animals produce milk, eggs, wool, ink sacs, etc etc.
Animal byproducts, however, for the purpose of this stat, have to be divided into two categories and treated differently.
There's recurring byproducts, and then there's butchered byproducts.
Eggs, milk, wool, etc would be recurring, and ink sacs and meat would be butchered.
For recurring, yield determines how quickly animals produce stuff. Rather, the mod checks every X ticks and rolls for a chance based on the yield stat if the animal produces a product.
For cows, this is milk. So, every X ticks, a cow with a yield stat of 6 has a 60% chance to become milkable. Players can get 1 bucket of milk from a cow for each time it can be milked. I think for the purpose of this mod, there should be some indicator that a cow is ready to be milked, like changing the color of its udder or something...
For butchered products, the yield stat simply determines how many of that butchered item is dropped when the animal dies. Could be as straight forward as yield 1 = 1 porkchop, yield 10 = 10 porkchops.
___________________
RESILIENCE
With this stat, there is a sickness mechanic to the mod. Resilience determines how animals deal with sickness.
When an animal is sick, it will not breed nor produce anything, except when killed (a sick cow won't produce milk, but still drops meat when killed)
For the most part, sickness is pure RNG with Resilience determining how well your animal resists getting sick and how quickly it recovers from being sick.
Every X ticks, the mod makes animals perform a sickness check, based on the animal's resilience stat. An animal with 1 Resilience has a 90% chance to get sick when this check occurs, and a Resilience 10 animal will never get sick.
Once an animal is sick, there are 2 methods of recovery.
The first method is a splash healing potion. Yep. That easy. (Configurable perhaps to turn this off or even change the potion)
The second method is to isolate the animal and wait.
While an animal is sick, the mod will make the animal perform a recover check every X ticks (same duration as the sickness check). This check is based on Resilience. The higher the resilience, the more likely the animal will recover from sickness (again, 1 resilience = 10% chance to recover)
The reason why you want to isolate sick animals is because sickness can SPREAD!
Similar to how the breed check works, sick animals will, every X ticks, have a chance to spread their sickness. This check should occur right after the recovery check, meaning that when the mod checks if a sick animal recovers, and the check fails, it then immediately checks to see if the sickness spreads. Again, chance to spread is based on resilience.
If the check succeeds to spread sickness, the mod will attempt to make all nearby animals get sick (4 block radius). These nearby animals must then also check to see if they catch the sickness, chance being based on resilience.
You can see that if you have a lot of low resilience animals, and one gets sick, there's a good chance your entire farm of animals will get sick.
Additionally, while an animal is sick, it loses hunger at DOUBLE the speed as normal, meaning it gets hungry twice as fast.
If an animal becomes famished while sick, it dies (and vice versa, famished animals that get sick also die)
___________________
ADDITIONAL THINGS
Chicken coops are blocks you can place down. You can place chicken feed in them, and nearby chickens will eat it. Chicken coops will also pick up any nearby eggs and feathers, and place them in an inventory in the coop.
Troughs are used for placing pig slop in. Nearby pigs will eat from it.
Hay bins are for placing horse, sheep and cow feed in.
Fish cages are for placing fish in for nearby squid to eat.
An item of some sort for learning what an animal's stats are.
A method of naming animals, and recording them in a catalog that lists all animals by type, name and their stats. This way, you can name an animal (visible above the animal's head), and you can look at your catalog to see what stats that animal has. Unnamed animals will just be named after what species they are.
Different items for calling different animal species. Cow bell for herding cows, shepherd crook for herding sheep, etc.
A new potion for temporarily boosting an animal's stats. There could be 4 potions total, each with different strengths. 3 of them raise 1 of the 3 stats, and the 4 raises all 3 stats.
How much these potions raise a stat by is determined by the potion's strength, and how long by the duration (just like how vanilla potions work)
These potions have a side effect though. When the potion wears off, the animal immediately gets sick.
reserved