Magical gene / no coat effect
Potion milk
A mare who can be milked into a glass bottle rather than a bucket, and hands back a potion. One allele per effect. It does not touch the ordinary milk locus — a horse can have both, and which you get depends on what you are holding.
The gene, its inheritance and its founder table exist and are covered by the test suite; the translator that turns it into behaviour was written against the 26.1.2 sources and is flagged unverified in its own comments. Nothing on this page has been watched happening to a horse. What to look at, and what is most likely to be wrong, is on To be verified.
What it does
Right-click a tamed, grown mare with an empty glass bottle. A horse expressing this locus hands back a potion of whatever its alleles say. A bucket still gets you milk, if it has the milk gene; a bottle on a horse without this gene does nothing.
Hold a bottle out to a stallion carrying it and he rears and kicks you, and tells you only a mare gives potion milk. A foal tells you it has nothing to give yet.
| Combination | Outcome |
|---|---|
| two copies of one effect | that potion, at the stronger grade |
| one copy of one effect | that potion, weak |
| two different effects | both effects, both weak, in one bottle |
anything with an n | the single effect, weak |
How often
Governed by the same milk volume locus that governs everything else the horse can be milked for, without either gene knowing about the other.
Health
None to the horse. Like the plain milk gene, a mare has to be at her own full health: a hurt one refuses, and says she won’t give anything until she has healed (owner’s call, 2026-09-10 — before that, potion milk ignored health entirely).
- Gene key
horsegenetics.potion_milk- Alleles
- one per mob effect, plus
n - Inheritance
- incomplete dominance — one copy weak, two copies strong
- Reaches the game as
- a
yieldeffect consumingminecraft:glass_bottle - Yield kind
potion— so milk volume governs it- Coat effect
- none, ever
A compound heterozygote carries two yield abilities, both triggered by a glass bottle. Today the first matching yield fires and the second is ignored — which would hand back a single-effect potion while this page promises two. The translator needs to merge yields of the same kind into one item before producing it. This is the one part of the gene that is not already built, and it is the part that will be forgotten.
yield already takes consumes, so minecraft:glass_bottle is expressible today. minDose already gates the stronger half on two copies — its javadoc names incomplete dominance as the reason it exists. And declaring kind: potion hands governance to milk volume for free.
Effect ids are resolved against the live registry, following lycan's rule that an id this game version has never heard of simply does nothing. An unrecognised id must make the yield not fire at all — producing a potion with no contents is worse than producing nothing, because it consumes the bottle.
Why the compound gives both
The alternative was lycan's rule — a mismatched pair yields nothing — and it was considered and rejected here. Lycan needs mismatch to bite because a shifting horse is a whole animal and picking one of two shapes is incoherent. A potion is not a shape; two effects in one bottle is a thing that already exists in the game, so the honest reading of two half-doses is two half-doses.
Two milk loci, deliberately
This gene does not extend or override milk. They are different loci with different alleles and different containers, and a horse may express both. The container is the disambiguator, which is why the trigger carries the item rather than the gene carrying a mode.
Incomplete dominance without an expression language
This locus is the clearest demonstration of what minDose is
for. A gene file has no way to write “if homozygous”, so the
format gives every effect a minimum dose instead: the weak potion declares
1, the strong one declares 2, and the horse’s own
genotype decides which is active. No expression language, no per-gene Java,
and the same trick is available to anyone writing a gene file.
common/genetics/genes/PotionMilkGene.java