Project

Releases

What shipped in each tagged version, newest first. This is the player-facing record — the reasoning behind each change is in the session log, and what is known to work is in to be verified. A release is a build that ran green, not a build that has been played.

Read this first

Every release so far is a development release. The suite is green and the jar assembles, but only a small fraction of what is built has been confirmed in a play session — to be verified is the authority on which is which. Treat a world you care about accordingly.

The numbering, as of 2026-09-10

The next release is 0.5.000, and after that only the last number moves0.5.001, 0.5.002, and on up. It is a three-digit field on purpose: there is a lot of counting to do before anything else changes.

The middle number does not move without the owner saying so, explicitly and out loud. Not for a big feature, not for a batch of genes, not because the last number is getting long. That is the whole rule and it is the owner's call, not a judgement to make from how much shipped. The versions ran 0.2.0 to 0.4.1 in two days, which is what the rule is a reaction to.

The version itself lives in one place, gradle.properties' mod_version, and a tagged release has outside testers on it — so a number is never reused, and never reissued with different bytes.

0.5.001

One folder for everything. Drop-in genes move into .minecraft/phc/ with the breeds and the settings, so nothing of the mod's is in config/ any more.

.minecraft/phc/
  genes/                 your genes, from the gene creator
  breeds/                your breeds, from the breed designer
  breed-spawning.toml    which breeds your world has
  server.toml
  client.toml
Before you open a world

If you use drop-in genes, move them first. Take every .json out of .minecraft/config/horsegenetics/genes/ and put it in .minecraft/phc/genes/, then start the game. The old folder is not read. A world opened without the gene loaded loses it: every horse that carried it comes back without it, and moving the file afterwards does not bring it back. If you have no drop-in genes, there is nothing to do.

Everything else is 0.5.000, unchanged — replace that jar with this one.

0.5.000

Your world, your horses. Design a breed in the browser, drop the file into a folder, and the game spawns it; then decide which of the mod's own breeds your world keeps — down to none of them, so the only horses in it are the ones you made.

Make your own breeds

Decide which horses your world has

Settings now live in .minecraft/phc/, beside the breeds: server.toml, client.toml, and the new breed-spawning.toml, which lists every breed the mod ships with its biomes, how common it is and its hours — change any of them, or switch the breed off. One line switches all of them off at once, and Feral Mixed has its own section. A wild horse with nothing it is allowed to be simply does not spawn. How it works.

Horses

What this does to a world you already have

Not played yet

The breed spawn settings were checked on a dedicated server — the files are written and re-read live — but no horse has been watched spawning, or failing to, under them. The designer has been driven in a browser, not by a player. §0-CC, §0-CB and §0-CA are the checklist.

0.4.1

Twenty-two new markings, an engine that can read an SVG, and everything that piled up behind 0.3.7 — 0.3.8, 0.3.9 and 0.4.0 were built and never tagged, so their work ships here too.

Twenty-two new coat markings

AgateCracked jewel-toned cells, each softening to a pale rim and deepening at its heart.
Carapace SheenA beetle-shell gleam sitting on the planes that turn up into the light, with a bright ridge down the spine.
Concentric EyespotsButterfly eyespots — nested rings round a pale glint — down the neck and all four legs.
Coral BloomRuffled overlapping lobes, orange rim to deep blue to a pale crown, flecked with gold.
EmberveinsMolten seams that pool where they meet and thin to a hairline between. Glowing, or a quiet rust.
Fish ScalesOverlapping scales across the barrel, each rimmed in a warm colour that line of horses carries.
Gill BloomGold-rimmed fan patches, spoked inside like the underside of a mushroom cap.
Iridescent RosetteDark rosettes ringed in green, gold and magenta — a jewel beetle’s shell.
Iris Bloom DiamondsRoyal-blue diamonds with ink rims, white dapples and radiating amber veins.
Kite BloomStained-glass panels tiling the coat, each its own colour, salted with pale flecks.
LaceveinBranching black lace rooted in two deep jewel blooms at the withers and poll.
MoonwingTwin pearl wings across the ribs, iridescent-dusted and bound in gold.
Morpho WingA patch of light low on the haunch, cut by black bars raking toward the tail.
Moth EyesWing-membrane veins and gold-ringed eyespots — only on a coat already black or grey.
NacreHard-edged shell plates, paler at their gold seams and richer at their middles.
Nightbloom ShroudAbyssal blue on crest and skull, gold-to-violet gill ribbons down the neck and barrel.
Oil SheenA soap film — a cracked iridescent web, pooling over the barrel into a bubble-pitted slick.
Opal CrackleFine dark seams, each catching light in its own colour.
OpalineA glassy vein mosaic — pale cream-on-cream, or blazing blue and violet.
Orchid FrostPink frost that bleaches a dark coat and finds nothing to bite into on a pale one.
PetaledOverlapping petals rimmed in rose and black, veined across a blush field.
Tidefoam SashA marbled sea-teal sash across the ribcage, laced with a white foam net.

Most ship as a pair — a pale dominant, and a fully recessive coloured form drawing the same shape in a colour that line of horses carries and passes to its foals. All of them are rare.

The engine can read an SVG

A gene could already carry a shape somebody drew, but only as control points typed in by hand. It now takes a real SVG path: every command including elliptical arcs, subpaths so a letter O has a hole, the fill rule, the transform list, the viewBox, and a stroke with caps, joins and dashes. Moonwing is the first marking in the mod that is an actual drawing rather than a rule for making one.

Three new shapes came with it, each because some marking needed a measurement nothing could make: FAN, bars that radiate from a point and widen as they go (everything periodic before this ran in parallel lines); NORMAL, which way the surface faces, for a rim light or a shell’s curvature sheen; and six new parameters covering veins that pool at their junctions, per-cell radial fades, tiled fields clipped into shingles, off-centre glints, and colour that wanders instead of sweeping.

Behind 0.3.7

What this does to horses you already have

Nothing changes colour. All 1056 composed coats in the golden file are byte-identical to 0.4.0’s, so no gene that existed before this release paints differently. An older save loads and every horse in it keeps its coat, with the twenty-two new loci filled in at wild type — which also means no horse in an old world can be carrying one, so the new markings reach it only through newly spawned wild horses.

Forty-three existing genes did get rarer in the wild. Founder rates are budgeted across the whole set from each gene’s declared rarity tier, and adding twenty-two genes re-derived all of them — which also flattened a number of tables that had drifted above their tier. Banded Socks, Ocular, Tron and Picasso Marking each dropped by about a factor of seven. The full table, and the argument about whether those are the right numbers, is on to be verified §0-BM.

Not played yet

Every one of the twenty-two markings has been rendered and looked at as an icon — that is how four defects in them were caught — but none has been seen on a horse in the game, and nor has the drawing engine. §0-BL is the checklist.

0.3.6

Something to aim at: a thirty-task checklist that walks you through the whole mod, and a collection of every allele in it.

The checklist

Under the Getting started tab. Thirty-one tasks in seven groups — tame a mare, breed a foal, take a gene off a horse with a book, light a hay portal, bring a horse back from the dimension, use each whistle, bond with a horse, sign a transfer paper — and every unticked one tells you what to do. Ticking one says so in chat, with a running count.

It gates nothing. Build a research shelf on your first day and you tick two boxes at once; nothing is locked behind it.

The collection

A new Alleles tab: every allele of every gene, with the ones you have never met still under question marks. Every allele on a horse you tame or breed joins it, baseline alleles included — which is a different and much gentler thing than discovering a gene. See the checklist & the collection.

Papers are components, not lessons

Research papers are no longer read. Right-clicking one does nothing. A gene joins your database only when you have owned a living horse that carries it — tamed, bred, bought or given — and that same moment unlocks its gene carrot. Papers exist to be copied on a shelf and spent on a carrot.

The old route made a paper a shortcut past the animals: find one in a chest and you knew a gene you had never met.

Fixed

One fix: the custom spawn egg’s buttons stop overlapping.

Spawn has moved out of the right-hand column and now sits centred under the horse preview, where the one button that does the thing belongs. That gives the column back a whole row, and “Clear genes” and “Make egg” stop running into each other — including at GUI scale 4, which is where it was reported.

The horse designer took the same shape, since the two are meant to be one screen in two places.

The mod finally tells you how to play it: a Getting Started tab that opens first on a fresh install and walks the whole loop, with pictures.

Getting started

Thirteen sections in the order you need them — tame one, notice you need a mare and a stallion, feed them both a golden carrot, take a gene off a horse with a book, file it on a shelf, buy one from the horseman instead if you would rather, splice it into a foal, and repeat. Then the hay portal, because a door made of hay is worth knowing about.

The pictures are the game’s own: item icons through the item renderer, and the horseman and the cowboy drawn as live entities, so you can recognise the villager you are looking for rather than read a sentence about his hat.

Also

One thing the tab does not say

A gene carrot is often described as “a 25% chance”, and that is not what the code does — it makes the fed parent pass the gene on with certainty, and what is uncertain is whether the foal shows it. The tab is written to the code. Which behaviour is actually wanted is gap 145.

0.3.3

The H menu stops crafting and becomes a reference, a bookshelf starts remembering genes, and five things a play session found get fixed.

Fixed

The Horse Browser makes nothing

The Crafting tab is now Recipes: every recipe the mod adds, drawn as its grid and its result, with a line saying what the thing is for. You read it there and you craft at a crafting table, like anything else. A category dropdown keeps the per-gene splice carrots from burying everything else.

Nothing became unobtainable — every one of those recipes already worked at a crafting table. The one thing the grid could uniquely do has moved into the world, below.

Research papers, and a shelf to keep them on

Smaller

Most of this has not been played

The shelf in particular has never been placed — block, menu and screen were all written in one pass. To be verified lists what to look at, and gap 143 says which parts are most likely to be wrong.

0.3.2

A one-line fix for the bug that made 0.3.0 and 0.3.1 unplayable: every client was kicked off the moment a horse came into view.

Replace 0.3.0 or 0.3.1

Both of those releases disconnect you on entering a world with Failed to encode packet 'clientbound/minecraft:custom_payload'. There is nothing wrong with a world made under them — the fault is in what the server sends, not in what it saved — so the same save works once the jar is swapped. 0.2.0 is unaffected.

0.3.1

Two genes that make a horse frightening, nine coat genes repainted, and the categories reorganised so they mean something.

The night loci

Coat genes

Elsewhere

Notes

0.3.0

Genes that decide what a horse does. Eight new loci change nothing about how a horse looks and everything about how it behaves — how fast it swims, how long it lasts underwater, what it hits for, what it leaves behind when it dies, whether mobs avoid it or fight over it, how much meat it drops and how many times a day it can be milked. Six new coat genes come with them, and one new mask that asks the gradient chart what colour it actually made.

Mechanical genes

Eight loci that paint nothing at all. They exist so that a breed can be described by what its horses do rather than only by what colour they are.

Coat genes

What a gene can now say

Notes

0.2.0

The gene registry roughly triples, a gene becomes a file rather than a Java class, the H menu grows from two tabs to four and gains a whole second screen, breeds become data, and two villagers move into the world.

Genes

The registry holds 156 loci at this tag, of which 85 are data-driven — a gene is now a JSON file with a mask stack, not a Java class, and 83 of those files are new since 0.1.0. They are grouped into nine magical families (core, body, ground, fields, spots, speckle, lines, hair, modifiers), which is the grouping the wiki and both gene editors offer.

The horse browser — the H menu

The browser had two tabs at 0.1.0, both of them reference material. It has four now, two of which are about your horses, and it is no longer the only screen: an “i” button on the horse inventory opens a second, six-tab screen about the one horse in front of you.

The horse information screen behind the “i” is six tabs: Overview (name, barn name, sex, generation, breed, the four live body numbers, bond, disorders, and who bred, tamed and owns it), Genes (one row per locus, filtered by default to the loci this horse is not baseline at), Health (each gene's own contribution to speed, health, jump and size rather than the total, plus every disorder), Coat, Other genes (abilities, diet, eye colour, cutie marks), and Offspring — this horse's foals, then their foals, each generation a row of little horses.

Breeds, breeding and inheritance

The world

The coat engine

The browser tools and the wiki

Notes

0.1.0

The first tagged build, and the first one that worked outside a dev run: implementation project(":common") puts common/ on the runClient classpath but does not fold it into the jar, so the 0.0.1 jar shipped with none of the genetics classes and none of the name tables, and threw on world load. The jar task pulls them in now.