Item group / breeding
The breeding carrots
Four carrots you feed to a horse before breeding it. Each one changes what that horse passes on to the foal — not what the horse itself is. Feed one to each parent and both effects apply.
The one rule
A carrot changes what a horse passes on, not the horse. Feeding one never alters the animal in front of you, and the effect is used up by the next foal.
What each one does
| Carrot | What it does to the foal |
|---|---|
| Stabilizer | Where this parent has two different versions of a gene, it passes on the stronger one instead of flipping a coin. Does nothing at a gene where both copies are the same. |
| Magnifier | The opposite: it passes on the weaker version. Useful for digging a hidden gene out of a line. |
| Unknown Epigenetic Splice | Re-rolls the small per-horse variations the foal inherits — how high a bay’s black legs go, how heavy a grey’s dapples are, where a splash edge falls. The genes themselves are untouched. |
| Unknown Gene Splice | Picks one gene at random and gives the foal a random version of it. It will never pick something that kills the foal or costs it hearts. |
Recipes
| Carrot | Recipe (shapeless) |
|---|---|
| Unknown Epigenetic Splice | golden carrot + horse hair + fermented spider eye |
| Unknown Gene Splice | golden carrot + horse hair + gunpowder |
| Stabilizer | golden carrot + horse hair + nether quartz |
| Magnifier | golden carrot + horse hair + glowstone dust |
Combining them
Put two or more breeding carrots in the crafting grid and they merge into one carrot carrying every effect. Combinations that contradict each other simply do not craft.
The Unknown Gene Splice never rolls a gene that would kill the foal or leave it with fewer hearts. It can give you a slower horse, or a pony — an unwanted surprise is what a random splice is for. Hearts are the line.
The targeted Known Gene Splice is not filtered: there you named the gene yourself.
The gamete effects
| Carrot | What it does to the gamete |
|---|---|
| Unknown Epigenetic Splice | Every allele copy this parent passes on gets freshly rolled values instead of the parent copy’s own. The alleles are untouched — the foal has the same genotype an un-fed pairing would give, only re-rolled bay-point heights / grey dapples / splash edges. The re-roll runs in a second pass, after every allele is locked, so it can never move a foal’s genotype. (CarrotEffect.EpigeneticSplice.) |
| Stabilizer | At every heterozygous locus, contribute the earlier-declared allele (the variant / dominant one) rather than the 50/50 coin. A no-op at a homozygous locus. |
| Magnifier | The mirror — contribute the later-declared (baseline / recessive) copy. Same no-op rule. |
| Unknown Gene Splice | Pick one random gene and draw this parent’s gamete for it from that gene’s splice distribution (or a uniform draw over its viable pairs if it declares none). The gene and the pair are rolled at breeding time off the foal’s deterministic RNG. (CarrotEffect.GeneSplice.) |
The blacklist that keeps the random splice safe, how the effects are stored on the horse, and the full breeding flow are on the carrot family page, which stays the source of truth for the mechanics; this page is the item roster and the recipes.
Combining is server/recipe/CarrotCombineRecipe. A themed splice combines
like any other — it writes the same token as the plain one with its theme
appended, so there is no second code path.
common/genetics/CarrotEffect.java; recipes in
data/horsegenetics/recipe/.