Magical gene / expresses only in the heterozygote / eyes only

Magic sectoral heterochromia

Six colour alleles and a wild type. A horse carrying two different colours shows both of them at once — a randomly shaped wedge of one and the rest of the iris in the other, with a different shape in each eye. Two of the same colour show nothing. It is the only gene in the mod whose heterozygote is the expressing combination.

What it does

What to look for: an eye that is two colours at once — a wedge of one colour and the rest in another, with a different shape in each eye.

It works backwards from every other gene here. A horse shows it only when it carries two different colours. Two of the same colour show nothing at all, so this is the one gene you cannot breed toward by doubling up — you have to keep the pair mismatched.

Crossing two of them

Its gene carrot

Gene key
horsegenetics.magic_sectoral_heterochromia
Priority
170 (magical band) — only a code-order slot; it paints in the overlay phase
Alleles
green blue brown hazel gold chaos n
Combinations
28 — 18 outcomes, of which 15 express (one per pair of colours)
Outcomes
wild, sectoral-carrier, sectoral-matched (all wild types), and sectoral-<a>-<b> for each of the fifteen colour pairs
Default allele
n
Wild frequency
1 in WILD_ONE_IN per colour allele, six of them — so an expressing wild horse is a genuine find
Founder draws
1 × nextFloat()
Coat effect
the iris texels only — varies per horse, so an expressing horse gets its own cached texture
Built 2026-09-06, not yet play-tested

The two colours and the two shapes are asserted through the real pipeline in EyeColorTest. What is unknown is whether a four-texel iris split in two reads as heterochromia on a horse at riding distance, or whether the single-corner and three-corner wedges are too fine and it should be halves only. Checklist on To be verified.

The combination table

CombinationOutcomeEffect
n/nwildOrdinary eyes
<colour>/nsectoral-carrierNothing — a silent carrier
<colour>/<same colour>sectoral-matchedNothing — and it does not touch the horse's own eye colour either
<colour>/<other colour>sectoral-<a>-<b>Both colours, in a wedge of each iris

The gene is the disagreement, not the colour

This is deliberately the opposite shape to every other gene here. A dominant gene rewards finding one allele; a recessive one rewards finding two of the same. This one rewards finding two different ones.

So its fifteen expressing combinations are fifteen separate breeding targets, and none of them is reachable by doubling up on a single lucky horse. A breeder who finds a gold carrier has to go and find a green one; breeding the gold to itself produces nothing at all. Every other locus in the mod gets easier once you own one good animal, and this one does not.

They are declared as fifteen outcomes, one apiece, rather than as one sectoral-heterochromia covering all of them. An expression is what the gene looks like, and a green-and-gold eye does not look like a blue-and-brown one. Everything downstream reads the outcome list rather than the alleles — the in-game gene dictionary, the preview widget at the top of this page, the genotype catalogue — so collapsing them would show a breeder one button where there are fifteen real results.

It does not overwrite the horse's eye colour

A non-expressing combination contributes nothing — not a claim on the iris, not a wild-type dark eye. A champagne horse carrying gold/gold keeps its champagne eye; a splashed white one carrying blue/n keeps its blue.

That is a property of the hook it uses, not a special case in the gene. EyePatchContribution paints over the eye-colour channel rather than competing with it, so an expressing horse also keeps whatever colour its other genes gave it everywhere the two sectors do not cover — and a splashed white horse carrying two colour alleles shows the two colours, not blue.

Chaos

The chaos allele has no colour of its own. It takes one from its own copy's epigenetics, rolled in hue / saturation / value rather than as three raw bytes — an iris four texels across has to stay a colour and not a near-black or a near-white. Two horses carrying chaos rarely agree, and a chaos eye a breeder likes is inherited with that copy like any other epigenetic trait.

chaos/chaos is still a matched pair and still shows nothing, even though the two copies would have rolled different colours. The rule is about the alleles, not about what they happen to look like. It is the one place the gene could plausibly have gone the other way, and the alleles win because that is what "homozygous shows nothing" means.

It is not the natural heterochromia

A horse can have two-coloured eyes without this gene, and usually does: the splash, frame and dominant white loci produce complete and sectoral heterochromia as a matter of course, because a depigmenting claim frequently fails to reach the whole of both irises. That is EyeSpread, it is blue against the horse's own colour, and it is documented on Eye colour & heterochromia.

This gene is the magical version and works the other way round: two real pigments rather than one pigment and one absence, in colours a horse has no business having.

Where the shapes come from

An iris is a 2×2 block of texels, so a sector is a four-bit mask over it and there are exactly twelve masks that read as a wedge rather than as stray pixels. The full account is on Eye colour & heterochromia.

Each eye's wedge is drawn from the seed of one allele copy each, so a shape is inherited alongside the colour that leads it. The left eye's is drawn with EyePatch.differentWedge, which is guaranteed not to return the right eye's — at twelve shapes a matched pair would otherwise turn up on one horse in twelve and read as a bug rather than as a coincidence.

The two colours also swap which of them leads: the first allele's colour takes the wedge in the right eye and the rest of the left one. A sectoral eye that was symmetric would not look like heterochromia, it would look like a decal.

The values are per allele copy: each copy stores a wedge and then a chaos colour, the chaos draws happening whether or not that copy is the chaos allele. So changing one allele never shifts the other copy's shape.