Magical gene / a faint head and mane tint

Spawner

Feed the horse anything it eats and two of a particular creature appear nearby — every meal. Which creature depends on the allele, and there is one for every mob in the game. The only outward sign is a pink tinge through the head and mane.

Confirmed in game (2026-09-10)

The first in-game test was a cow spawner that never made a cow: the daily timer could not survive a reload. Rebuilt to fire when fed, it was played again the same day and works. Hostile alleles have not been tried; see To be verified.

What it does

CombinationOutcome
two copies of one alleleeach meal it eats makes two of that mob
two different allelesnothing
anything with an nnothing

Two per meal, and the food is the limit

Hand it anything it eats — its ordinary food, whatever a special diet asks for, or its favourite — and two appear, however many are already standing there. The only thing that counts is a meal it actually eats: a horse at full health that turns wheat down makes nothing, and you keep the wheat. Left alone in a field it does nothing at all.

It used to fire by itself once a Minecraft day, and in play it never fired: the day was counted on a clock that restarts every time the horse loads. It was moved onto feeding on 2026-09-10, and later the same day the "only up to two nearby" cap came off too — with the player paying food for every firing, the food is the limit. Both the owner’s calls.

Some of the alleles are not friendly

There is an allele for every mob, hostile ones included. A horse that produces two creepers every time you feed it is a real thing this locus can express — and it is never something you will catch, because no wild horse is ever homozygous here. Somebody has to make it.

The colour of what it makes

Epigenetic, so a line breeds its own shade — every sheep one horse makes is the same dye, and its foals drift from it. Only for the mobs that have colours or variants: sheep, cows, pigs, chickens, cats, wolves, frogs, foxes, parrots, rabbits (never the killer one), llamas, axolotls, mooshrooms and a few others. A spawned zombie is a zombie.

This was promised here from the start and never happened until 2026-09-10 - before that, every spawned mob picked its own colour, as a wild one would.

Health

None to the horse. What it makes may be another matter.

Gene key
horsegenetics.spawner
Alleles
one per mob including hostiles, plus n
Inheritance
homozygous recessive, matched pair; no homozygous founders
Reaches the game as
a summon effect on the built-in OnFeed trigger
Epigenetic
variant, a number in [0, 1) per allele copy, carried to the translator as Summon.variant
Coat effect
a faint pink tint on head and mane
Spawn through the normal path, or other mods’ protections are bypassed

This is the compatibility break to avoid. Placing a mob directly skips FinalizeSpawnEvent, and with it every claim mod, spawn-blocker and region protection in the pack — a horse in someone’s protected base would spawn mobs the region explicitly forbids. Go through the normal spawn path and let the event fire, including the mod’s own holy ward.

Never mark what it spawns persistent

A persistent mob never despawns. With no cap, every expressing horse fed every day is unbounded growth. What it makes is spawned without setPersistenceRequired — though note a cow or a sheep is an animal and does not despawn anyway, so for the farm alleles the food really is the only limit.

Only a meal that was eaten, or it is an infinite spawner

With the cap gone, a firing that costs nothing must not happen. A tamed horse at full health refuses wheat and vanilla hands it back, so a trigger on the click would be free and endless. GeneAbilityHandler.onFeed notes the stack in hand at HIGHEST priority (before the diet and favourite-food handlers shrink it), and drainPendingFeeds looks again at the end of the tick: fewer items, or a different item (a bucket back from a bucket of something), means it ate. Creative consumes nothing, so a creative feeding always counts.

Fed, not timed — and why the timer failed

“Eats” is the same split the crouch-feed goal tempts with: the favourite, the special diet’s list, or vanilla horse food. The trigger is GeneAbility.Trigger.OnFeed, built-in only — a gene file cannot ask for it yet (gap 178). A timed summon, if a gene ever declares one, still tops up to its number rather than making it; only the fed path is uncapped.

The old once-a-day timer was tickCount % 24000, and tickCount is not saved: every reload started it again from nothing. Every timed beat in the handler now counts on the world’s saved game time instead, offset per horse by its UUID so horses still do not fire in lockstep.

Respect difficulty

Nothing hostile on Peaceful, and nothing at all if the server has turned the relevant spawning off. A gene that ignores the difficulty setting is a gene that gets the mod blamed.

The epigenetic colour is a no-op for most alleles

Only a couple of dozen vanilla mobs have colour variants. That is a property of some alleles rather than of the locus, and the gameplay tab says so — otherwise it reads as broken on the rest.

How it is applied: server/MobVariants. Since 1.21.5 a mob’s colour is a data component on the entity (SHEEP_COLOR, COW_VARIANT, CAT_VARIANT…), set with Entity.setComponent the way a spawn egg sets it. The helper takes the first colour component the spawned mob actually has and picks from that component’s own values - an enum’s constants, or every entry of the registry a Holder lives in, sorted by id so the same number means the same variant in every world. The killer rabbit is excluded by name. A data gene’s summon passes Summon.NATURAL and the game chooses, as before.

The only genuinely new verb in its group

summon was originally specified to cover this gene and leader of the pack together. They turned out not to be the same thing at all — following is mob_aura with a third mode, and only spawning needs a verb. Narrowing it to one user made it much easier to bound.

A locus almost nobody will find by accident

Worth deciding before this ships

With no homozygous founders and an allele per mob, a player must find two carriers of the same allele out of eighty, with no way to see either. Lycan escapes this because wild shifters exist. If spawner should be findable rather than purely engineered, the mechanism is already here: a herd could roll one allele and hand it to its members, so two carriers from one herd match. FounderContext would need a herd seed passed in — small, and it stays Minecraft-free.

From self-limiting to paid-for

Almost every design for a spawning gene is a lag machine, because almost every design counts time and not population. The first version answered that by topping up to a fixed local number, so a horse in a stocked field did nothing at all. Moving the trigger from a clock to a meal changed the question: a firing now costs the player something every time, so the limit can be the cost rather than the count. That is why the cap came off — and why "it ate" has to be checked rather than assumed, because a trigger that is uncapped and free is the lag machine again.

The one behaviour gene that paints

Everything else in this family is invisible. This one carries a faint pink tint on the head and mane, and it should: a horse that manufactures creatures on demand is the one case where a player deserves a warning they can see before they buy it.

Planned source: common/genetics/genes/SpawnerGene.java