Magical gene / phase 3 + overlay

Light

Gold hooves, a gold mane, gold eyes — and a horse that lights a stable like a torch. Three variant alleles, each dominant to the wild type and to none of each other, so a horse shows everything it carries. It is the clearest demonstration in the mod of why this model has no dominance property.

What it does

What to look for: gold hooves, a gold mane, or gold eyes — and a horse that glows, brightly enough to light a stable.

You can have more than one at a time. There are three versions and none of them overrides another, so a horse carrying two different ones shows both. That makes it unusually easy to breed toward a horse with the exact combination you want.

Crossing two of them

Its gene carrot

Gene key
horsegenetics.light
Priority
160 (magical band)
Alleles
Lthf Ltmn Lteye n
Combinations
10, all carryable — 7 outcomes
Default allele
n
Wild frequency
0.5% per variant allele → ~3% of wild horses glow
Founder draws
1 × nextFloat()
Deterministic
yes — one gold, no per-horse variation
Light level
14 (a torch)
Colour
#ffcf47, the same gold Suntouched uses
Built 2026-09-04, not yet play-tested

The gold regions and the eye recolour are confirmed in sample bakes; the emissive render and the trailing light block have not been seen at all. Checklist on To be verified.

The combination table

CombinationOutcomeWhat glows
n/nwildNothing
Lthf/Lthf, Lthf/nhoovesAll four hooves
Ltmn/Ltmn, Ltmn/nmaneThe mane
Lteye/Lteye, Lteye/neyesThe eyes
Lthf/Ltmnhooves-maneBoth
Lthf/Lteyehooves-eyesBoth
Ltmn/Lteyemane-eyesBoth
Three alleles that cannot be ranked

Each variant is dominant to n. None of them is dominant to either of the others — a horse carrying Lthf and Ltmn shows both, in full. There is no ordering of three alleles that describes that, and a “codominant” flag would still have to say codominant with what. The table says all of it, one row at a time, and needs no vocabulary at all.

The one thing the locus cannot make is all three at once — for the honest reason that a horse has two copies of the chromosome and not three.

Where the alleles do not differ

Every glowing combination emits the same torch-strength light. What the alleles decide is where the glow shows, not how much of it there is: a horse with one gold mane lights a stable exactly as well as one with four gold hooves, because in both cases the horse is the light source. Doubling a copy adds nothing either — Lthf/Lthf and Lthf/n are the same horse.

The world light is granted through the ordinary glow verb, so it reuses the trailing minecraft:light block the translator already maintained for Suntouched — with all of that mechanism’s known jank: it lags a gallop, it needs air to sit in, and it is skipped in the horse dimension.

Two halves, in two phases

The gold on the mane and hooves is ordinary phase-3 paint, walked toward the colour so the strands and the hoof shading survive.

The eyes cannot be. CoatRegions.redrawEyes copies them back from the template as the last act of the bake, precisely so that a gene painting a wide white pattern can never blind a horse — so a gene that wants to colour them on purpose has to run after that. That is what the overlay phase is for, and this gene is its first inhabitant.

common/genetics/genes/LightGene.java
@Override
public void overlay(AllelePair pair, CoatBuildContext ctx, CoatOverlay out) {
    Set<Region> which = regionsOf(pair);
    if (which.contains(Region.EYES)) {
        out.shadeEyes(GOLD, EYE_STRENGTH);
        out.markEmissiveEyes();
    }
    if (which.contains(Region.MANE)) {
        out.markEmissivePart(Part.MANE);
    }
    if (which.contains(Region.HOOVES)) {
        for (Part leg : CoatRegions.LEGS) {
            out.markEmissiveLowerLeg(leg, HOOF_FRACTION);
        }
    }
}

shadeEyes rather than a flat blend, because an eye is a bright sclera and a dark pupil: a straight lerp turns both into one gold rectangle that stops reading as an eye. Shading scales the target by the texel’s own brightness, so the sclera goes gold and the pupil stays black.

Emissiveness is not a colour

“This texel glows” has no channel in either accumulator, so the overlay phase carries it as its own mask — a boolean per texel, handed to the renderer, which draws exactly those texels a second time at full brightness through EmissiveCoatLayer.

A texel mask rather than a part list is the whole reason this gene can do what Suntouched cannot. Suntouched’s glow effect names body parts, so the finest thing it can light is a whole leg. Light needs to glow four hooves and two eyes, neither of which is a part, and both of which the bake already knows exactly.

It lights a cutie mark too

Light is the first user of CutieMarkContribution: a horse that carries any variant copy here and is also Cutmrk/Cutmrk wears a glowing emblem, drawn full-bright by the render layer.

Same rule as the light itself — where the glow shows is the alleles’ business, whether the horse is a light source is not. And it is the case that makes the modifier hook obviously right rather than merely general: a horse with four burning gold hooves wearing the one dull thing on its body would read as a bug. Nothing else about the emblem moves, so a light horse and its unlit full sibling wear the same mark, lit differently.

Not modelled yet

One gold, no per-horse variation. An epigenetic colour is the obvious extension — mane colour already does exactly that — but it runs straight into a question the game cannot answer: vanilla light has no hue, so a blue-glowing horse would still cast plain white light. That is a real limitation rather than an oversight, and it is why the gene commits to one colour for now.

Source: common/genetics/genes/LightGene.java, coat/pattern/CoatOverlay.java