Magical gene / no coat effect

Fireproof

A horse that does not burn, and neither do you while you are on it. It swims through lava rather than walking on top of it — submerged, slow, and entirely unbothered.

Built, and not yet seen in game

The gene, its inheritance and its founder table exist and are covered by the test suite; the translator that turns it into behaviour was written against the 26.1.2 sources and is flagged unverified in its own comments. Nothing on this page has been watched happening to a horse. What to look at, and what is most likely to be wrong, is on To be verified.

What it does

CombinationOutcome
Frp/Frphorse and rider immune to fire; swims in lava
anything elsenothing — it burns like any horse

Lava is a route, not a wall

The horse sinks into lava and swims through it the way an ordinary horse swims through water: slowly, at the surface, with its rider safe. That is the whole reason to breed one. A lava lake stops being a detour.

Health

Strictly an improvement. It costs nothing and removes an entire category of death. It is homozygous recessive and absent from wild horses as a homozygote, so you will be breeding for it rather than finding it.

Gene key
horsegenetics.fireproof
Alleles
Frp fireproof, n
Inheritance
homozygous recessive
Reaches the game as
traversal effects — fire_immune and a lava-swim flag, both with target: both
Coat effect
none, ever
Immunity is a damage cancel, and it stores nothing

GeneAbilityHandler.onTraversalDamage cancels any LivingIncomingDamageEvent whose source carries the minecraft:is_fire damage-type tag - so lava, fire blocks, burning and other mods’ heat sources alike - when it lands on a horse expressing the gene, or on the player who is its first passenger at the moment of the hit. Nothing is written onto the player, so there is nothing to take off on dismount and no invulnerability to duplicate: step off and the next hit is an ordinary one.

The first version did nothing, and the reason is worth keeping. It called clearFire() on the tick, which puts out the burning but not the damage: lava and fire blocks hurt directly, and vanilla’s own immunity is a flag on the entity type, which a gene cannot set per horse. The owner rode one into lava on 2026-09-10 and neither of them was protected.

Swimming, not walking

Walking on lava is the cheaper build — the walk_on_water branch already does the buoyancy trick and pointing it at lava is a few lines. It was rejected because a horse trotting across a lava lake reads as a bug in someone else’s mod, whereas a horse wading through it reads as a horse that belongs there. The extra cost is a fire-damage cancel for the rider and a movement speed in lava.

How it floats. The first build only slowed the sink, from the server, and in play the horse simply sank: a horse under a rider is simulated by the rider’s client, and the server’s velocity changes never reach it. Vanilla lava movement pulls down by a quarter of the horse’s GRAVITY attribute each tick, and attributes do sync to the client, so lava_swim holds a transient gravity modifier of -0.16 (net -0.08) while the lava is above the horse’s fluid-jump threshold. That settles into a slow rise, and dropping it at the surface makes the horse bob there - the float vanilla gives a ridden horse in water and not in lava. The speed is still vanilla lava’s fixed crawl: there is no attribute on it, and standing on lava like a strider is canStandOnFluid, an entity method with no event, which would need a mixin.

One shared change, three genes

The target: self | rider | both parameter on traversal is wanted by this gene, by bird boned and by ocean-born. Build it once, with the removal path included, and all three are safe.

Why it is not two loci

Fire immunity and lava swimming could have been separate genes, the way swimming and breathing are separate on the water side. They are one here because lava immunity without lava swimming is a horse that stands in fire unharmed and can do nothing with it — there is no interesting horse in between, so there is no reason to make a breeder find two.

Planned source: common/genetics/genes/FireproofGene.java