Magical gene / magical body-stat genes

Witchfire

Tongues of cold fire climb the underline and the legs, forking and pinching out before they reach the topline, with one slow curl low on the barrel.

What it can come out as

OutcomeCarrying
ColdfireP/P · P/C · P/n
WitchfireC/C
Wild typeC/n · n/n

How each one is actually drawn - region by region, and the layers it is built from - is on the coding tab.

Crossing two of them

Finding one

About 1 in 3,571 wild horses is born showing this. That is the whole of the supply: catch one, or make one with the carrot below. Breeds set their own pools and a breed built around this gene will carry it far more often than the wild population does.

Wild pairShows asHow often
P/PColdfire0.001% — 1 in 100,000
P/CColdfire0.004% — 1 in 25,000
P/nColdfire0.019% — 1 in 5,263
C/CWitchfire0.004% — 1 in 25,000
n/nWild type99.972%

Its gene carrot

The file

common/src/main/resources/horsegenetics/genes/witchfire.json — a data-driven gene, not a Java class. It is listed in the index.json beside it and registered by Genes' class initialiser at startup.

Keyhorsegenetics.witchfire
Phasemagical — it adds signed colour in phase 3, after the pigment has resolved
Priority143 — where it sits in the one (priority, key) paint order
AllelesP · C · n
Varies per horse2 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look
Built fromAXIS, PARTS, RAMP, SPIRAL, STROKES, TOWARD, emissive

Why it is built this way

No black form. This gene's whole idea is that the flame runs through a spread of colour on its way up, and a grey version of that is a different marking wearing its name.

The flames are STROKES rather than FRACTAL ridged because a flame ends in a point and a lace filament does not. STROKES is the level set of a noise field, which is exactly why its lines taper away instead of closing back on themselves.

width 1.0 against spacing 3.4 - the width has to stay well under the spacing or neighbouring tongues touch and the whole thing resolves as a wash of colour up the belly rather than as flames.

The AXIS band fades the coverage out by 0.52 of the part rather than letting the RAMP carry the fade. RAMP varies colour along an axis and never coverage - left to itself the top of every flame would be its last colour stop at full strength, cut off square at the topline.

The SPIRAL is the one curl in the reference. It draws one figure per part and takes its centre from the part's bounds, so there is exactly one per flank and it is always in the same place on the barrel.

Sourced from a traced SVG, but not drawn with the SVG mask. The trace is a photo-trace: 800 to 4500 path commands across dozens to hundreds of subpaths, most of them trace noise. That is well past the point ceiling, which exists precisely to keep a traced photograph out of a gene file. It would also have made the marking identical on every horse. The reference was read for what KIND of shape each element is and rebuilt from field masks instead. If a hand-drawn, low-node version of the source ever exists, the SVG mask with its d string pasted verbatim is the better gene.

Arrived keyed 'ixora.witchfire'. Renamed to the horsegenetics namespace every other gene in the mod uses - the format allows a modder their own, but a gene shipping INSIDE this mod under a second namespace breaks the tooling that builds a key from a slug.

What it paints

Each outcome, described the way the gene file describes it, and then the layers that draw it in the order they are painted. The prose is the part a reader checks a bake against; the list underneath is what the engine actually did.

Coldfire

Flames of white and ash climbing the belly and legs, lit at their cores.

  1. the tongues — PARTS × AXIS × STROKES, painted with RAMP
  2. the hot cores — PARTS × AXIS × STROKES, painted with TOWARD, and it glows
  3. the curl at the base — PARTS × AXIS × SPIRAL, painted with TOWARD

Witchfire

Flames that sweep two thirds of the colour wheel from root to tip, lit at their cores.

  1. the tongues — PARTS × AXIS × STROKES, painted with RAMP
  2. the hot cores — PARTS × AXIS × STROKES, painted with TOWARD, and it glows
  3. the curl at the base — PARTS × AXIS × SPIRAL, painted with TOWARD

Wild type

No marking.

Paints nothing.