Guides / Building & Resources

Horse breeding: two perfect parents still cannot guarantee a perfect foal

The foal centres on the parents' midpoint, but the spread carries a floor of 0.3 × the stat range no matter how identical the parents are. That term never goes away.

Horse breeding is usually described as "the foal averages its parents, plus some randomness". The first half is exactly right. The second half hides the part that actually decides how long your breeding programme takes.

The model

midpoint = (parentA + parentB) / 2
spread   = |parentA − parentB| + 0.3 × (statMax − statMin)
roll     = (random + random + random) / 3 − 0.5
foal     = midpoint + spread × roll

The roll is the mean of three uniform randoms, so it is centred on 0, bounded at ±0.5, and bell-shaped with a standard deviation of 0.1667. Centred on zero means the expected foal is exactly the parents' midpoint — the averaging half of the folklore is correct.

The spread has a floor you cannot remove

Look at the second term: 0.3 × (statMax − statMin). It does not reference the parents at all.

Even with two identical parents, |parentA − parentB| is zero and the spread is still:

statfull rangeirreducible spread
Max Health15 – 304.50
Jump Strength1.09 – 5.291.26
Movement Speed4.74 – 14.232.85

So breeding two maximum-speed horses gives a foal that averages 14.23 but has a standard deviation of 0.47 and can land as low as about 12.81. Two perfect parents do not produce a perfect foal; they produce a foal centred on perfect, scattered by a fixed amount.

That is why a breeding programme plateaus. Once your parents are close together, closing them further stops helping — the |parentA − parentB| term is already near zero and all that remains is a constant you cannot breed away.

Matching your parents still matters, a lot

At the other extreme, breeding your best speed horse to your worst gives a spread of 9.49 + 2.85 = 12.34 — more than four times the identical-parent floor. So the advice to pair similar horses is real; it just has a hard limit.

The practical shape of it:

  • Early on, matching parents is the whole game. Cutting |A − B| cuts the spread almost

one-for-one.

  • Late on, it does nothing. You are fighting the 0.3 floor, and the only lever left is

volume — breed more foals and keep the top tail.

Why the tail is thin

Because the roll is a mean of three randoms rather than one, results bunch near the middle. A foal landing at the very edge of the spread needs all three randoms near the same extreme, which is rare. Roughly two thirds of foals fall within one standard deviation — 0.47 on speed with identical top parents — and the outliers you are hunting for sit well beyond that.

So the honest expectation for a late-stage programme: most foals will be marginally worse than the parents' midpoint by luck alone, a few will be marginally better, and progress comes from keeping only the few.

One difference from the game

This calculator does not reflect out-of-range results back into range; Minecraft does. So near the very top of a stat the real game will fold an impossible roll back down rather than clip it, which slightly changes the shape of the extreme tail. The midpoint, the spread and the plateau above are unaffected.

Horse Breeding Calculator →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.