Magical gene / no coat effect
Magic milk volume
How many times a day the horse can be filled from. Wild type is once. The milky allele is worth one to three more, codominant, and the copies add — and because it governs a yield kind rather than a gene, it reaches milk’s milk, water and lava all three.
Crossing two of them
What it does
| Combination | Fillings a day |
|---|---|
n/n | once, as everywhere else in the game |
Mlk/n | once plus that copy’s number |
Mlk/Mlk | once plus both numbers, added |
Unlike most of the magical loci here, a single copy shows. A milky horse can be found rather than only bred, which is what makes this a reasonable first dairy gene to notice.
It governs every kind of filling
Not just milk. A water-bearing or lava-bearing horse is filled from through the same locus, so volume applies to those too — and to anything the mod ever adds that produces the same kind.
Spread across the day, not banked
Charges divide the cooldown rather than banking uses. “Three times a day” means three fillings spread across the day, not three at dawn and nothing after. That is what a dairy animal does, and it means a player cannot empty a horse and walk away.
Health
None. Milking is still gated on the horse being at its own full health, so a very productive mare is still a mare you have to look after.
Its gene carrot
- Gene key
horsegenetics.magic_milk_volume- Alleles
Mlkmilky,n- Priority
- 131 — the magical utility band, beside milk
- Reaches the game as
- a
chargeseffect naming the yield kindmilk - Coat effect
- none, ever
Nothing on this page has been seen in game. The translator was written against the 26.1.2 sources and is flagged as unverified in its own comments. Checklist on To be verified.
It governs a kind, not a gene
This locus does not know that the milk gene
exists. It emits a charges effect naming the yield
kind "milk", and every yield tagged with that kind gets
the extra uses — today the plain milk, the water and the lava, all
three on one other locus.
The indirection is doing real work rather than being tidy. The two loci cannot see each other’s epigenome — a gene is handed its own values and nobody else’s, deliberately — so a design where the milk gene asked “how voluminous am I” could not have read the number at all. Naming a kind is the only version of this that works, and it has the pleasant side effect that a future gene producing some other fluid is governed for free instead of by somebody remembering.
int total = 1;
for (HorseAbilities.Active active : abilities) {
if (active.ability() instanceof GeneAbility.YieldCharges charges
&& charges.kind().equals(kind)
&& GeneAbilityHandler.conditionHolds(charges.when(), horse, record)) {
total += charges.extra();
}
}
Why dividing the cooldown, and not a counter
A burstable version would need a second stored number on the cooldown attachment and would let a player drain the horse in one visit. Dividing the existing cooldown needs no new state at all — the stamp already on the attachment is enough — so the whole feature survives a restart for free and is inspectable with what was already there.
Rounded per copy
Each copy’s number is rounded before the two are added, rather than the sum being rounded afterwards. That way the number a horse’s sheet shows for each copy is the number that copy actually contributes, and a heterozygote worth “2” beside a homozygote worth “2 + 3” both add up in front of the reader.
Codominant, because a dairy trait is
Milk yield in a real herd is not a switch, and neither is this. Both copies count, the numbers add, and a homozygote from two good parents is substantially better than either of them — which is the ordinary shape of a production trait and the reason a dairy line is worth keeping rather than merely worth starting.
The one loud recessive-adjacent gene
Most of the utility loci here hide their carriers on purpose. This one does not, and that is a deliberate contrast: a player who has never thought about genetics can notice that one mare fills more buckets than another and start breeding on that alone. It is the gene the mod uses to teach that the numbers are heritable at all.
common/genetics/genes/MagicMilkVolumeGene.java,
neoforge/server/GeneYieldHandler.java