Перейти к содержимому
Mineforgian

Icy's Better Horses

Better Horses reworks horses into long-term companions through better traversal, progression, and utility systems.

Загрузки
2K
Подписчики
22
Обновлён
4 июля 2026 г.
Лицензия
MIT

Опубликован 29 апреля 2026 г.

Исходный код

[!IMPORTANT] GECKOLIB IS REQUIRED DEPENDENCY FOR THIS MOD.

Support the project on Patreon and join the Discord Community to help make Better Horses even better.


Icy’s Better Horses

A complete overhaul of horse progression, travel, breeding, ownership, and mounted gameplay for Minecraft.

Icy’s Better Horses transforms horses from disposable transport into true long-term companions. The mod expands nearly every part of vanilla horse gameplay: movement, breeding, genetics, ownership, bonding, utility equipment, mounted controls, traversal, and multiplayer riding.

Ownership & Horse Commands

Once a horse is fully tamed, it becomes permanently tied to its rider through an ownership system.

Owned horses gain access to advanced control mechanics designed to make them feel reliable and persistent instead of temporary.

Horse Whistle

Press P to whistle for your horse.

Your owned horse will respond and return to you, even at range.

The whistle system is multiplayer-safe and correctly tied to the owner’s UUID.

Pressing the whistle key also clears previous command states like Stay, returning the horse to normal follow behavior.


Radial Command Wheel

Open the command wheel with: R (can be changed in configs!)

Available commands:

  • Follow — horse follows the player
  • Stay — horse remains in place
  • Return Home — horse returns to its assigned home position
  • Set Home — assigns a new home location
  • Wander — wander in a 32x32 radius

Bonding System

Every horse now has a persistent Bond stat ranging from:

0 → 100

Bond represents trust, training, and familiarity between rider and horse.

As bond increases, the horse gains measurable stat bonuses.

Bond Bonuses

Every 20 bond levels improves:

  • Movement speed
  • Jump height

At maximum bond, horses can significantly outperform vanilla movement values while still remaining balanced within hard stat ceilings.


Increasing Bond

Name Tag

Using a Name Tag on a horse grants:

+10 Bond

Golden Apples

Feeding Golden Apples grants:

+2 Bond


Horse Information Screen

While mounted, pressing P now opens a full horse profile screen.

If the player is not mounted, the whistle still activates normally.

The info screen displays:

  • Gender
  • Breed
  • Coat
  • Bond level
  • Movement speed
  • Jump height
  • Health

All stats are shown with progress bars and exact values.


Stat Displays

Speed

Displayed in:

blocks per second

Maximum attainable bonded speed:

25.52 blk/s


Jump Height

Displayed in:

blocks

Maximum attainable jump:

9.50 blk


Health

Displayed in:

HP

Maximum health:

30 HP


Horse Genetics & Breeding

The breeding system has been completely rebuilt around persistent genetic traits.

Every horse now stores:

  • Gender
  • Breed
  • Mixed-breed state

These values persist through saves, multiplayer syncing, and breeding.


Gender System

Every horse now has a biological gender:

  • Male
  • Female

This includes:

  • Horses
  • Donkeys
  • Mules

Gender is synced, saved to NBT, and visible through the info UI and HUD systems.


Gender-Gated Breeding

Two horses of the same gender cannot breed.

Attempting to breed incompatible horses will:

  • Consume the Golden Apple
  • Reset love mode
  • Notify the player with a chat message

This system applies specifically to horse-type entities and leaves vanilla animal breeding untouched.


Horse Breeds

The mod introduces 15 persistent horse breeds, each with biome spawning rules and breed-specific coat pools.

Breeds include:

  • Thoroughbred
  • Arabian
  • Quarter Horse
  • Friesian
  • Andalusian
  • Percheron
  • Clydesdale
  • Shire
  • Belgian
  • Icelandic
  • Mustang
  • Haflinger
  • Morgan
  • American Paint
  • Appaloosa

Donkeys, mules, skeleton horses, and zombie horses use species placeholders instead of true breed types.


Mixed Breeds

Foals born from two different breeds inherit:

  • One parent breed at random
  • A persistent (mix) flag

Mixed-breed horses are visibly marked in the UI.


Breed-Based Coat System

Breeds are now tied directly to realistic coat pools.

Every breed only spawns with specific vanilla coat + markings combinations.

Examples:

Friesian

  • Black only

Arabian

  • Gray
  • White
  • Chestnut
  • Brown
  • Black

Clydesdale

  • Brown + White Field
  • Black + White Field
  • Dark Brown + White Field
  • Chestnut + White Field

Appaloosa

  • White + Black Dots
  • Gray + Black Dots
  • Chestnut + White Dots
  • Brown + White Dots
  • Black + White Dots
  • Dark Brown + White Dots

Existing horses from older worlds retain their current appearance and automatically receive an inferred breed.


Biome-Locked Breeds

Wild horses now spawn according to biome regions.

Entire natural spawn groups share the same breed for more believable herds.

Examples:

Arabian

Found in:

  • Deserts
  • Badlands
  • Savannas

Icelandic

Found in:

  • Snowy Plains
  • Frozen Peaks
  • Ice Spikes
  • Jagged Peaks

Friesian

Found in:

  • Dark Forests
  • Taiga variants
  • Old Growth forests

Mustang

Found in:

  • Plains
  • Badlands
  • Windswept terrain

This creates region-specific horse populations across the world.


Inherited Stats

Foals inherit stats from their parents through a controlled inheritance system.

Inherited stats include:

  • Health
  • Speed
  • Jump strength

The child receives:

max(parent stats) + randomized bonus

Values are capped at the mod’s maximum attainable limits, preventing infinite breeding escalation.


Travel & Mounted Gameplay Improvements

Vanilla horse travel has been heavily redesigned to remove friction and terrain frustration.


Water Traversal

Horses:

  • No longer sink in water
  • Move far faster across rivers and oceans

Mounted travel no longer completely stops at every shoreline.


Forest Traversal

While mounted:

  • Leaves become passable
  • Dense forests are far easier to navigate

This prevents horses from constantly snagging on leaf blocks.


Auto-Ride System

Double-tap:

W

to enable Auto-Ride.

While active:

  • The horse automatically continues forward
  • Steering is controlled with the mouse
  • Continuous WASD input is unnecessary

Pressing any movement key disables Auto-Ride.


Improved Mounted Controls

Mounted movement has been reworked for smoother handling.

Changes include:

  • Increased horse step height to 1.1 so horses can step up from path blocks
  • Independent camera movement while stationary
  • Up to 90° free-look before the horse turns
  • Improved downward visibility while riding, making the horse transluscent
  • Lowered and repositioned horse head while mounted

Mounted mining speed penalties were also drastically reduced.


Multiplayer Riding

Two players can ride the same horse simultaneously.

Useful for:

  • Multiplayer exploration
  • Transporting teammates
  • Cooperative travel

Upgraded Saddle

The Upgraded Saddle expands horse utility far beyond vanilla functionality.

Features include:

  • 5 additional equipment slots
  • Horse inventory expansion
  • Cosmetic and utility customization

Ender Chest Support

Placing an Ender Chest into the upgraded saddle grants access to the player’s global Ender Chest inventory directly from the horse.


Horse Stats HUD

Holding an upgraded saddle while looking at a horse displays an in-world HUD:

  • Gender
  • Breed
  • Speed
  • Jump height

Horse Equipment


Horse Hooves

Craftable horse hooves improve environmental traversal.

Effects:

  • Prevent sinking in powdered snow
  • Improve terrain stability
  • Reduce fall damage

Horse hooves can also receive:

Frost Walker

At high movement speeds, ice generation was specifically optimized to avoid performance problems.


Stabilizer

The Stabilizer is advanced survival equipment for dangerous terrain.

During major falls:

  • Steam jets activate
  • Mechanical wings deploy
  • Fall damage is heavily reduced or fully negated

Designed for mountain travel and cliff traversal.


Medkit

The Horse Medkit automatically activates when horse health drops below 50%.

Applies:

  • Regeneration
  • Instant Health
  • Resistance

This provides emergency survivability during combat or accidents.


Hitch Post

The Hitch Post allows owned horses to be tethered to a fixed location.

Restrictions:

  • Only works on owned horses
  • Cannot tether random wild horses

Horse Exclusivity System

Horses can reject unauthorized riders.

If a non-owner attempts to control the horse:

  • The rider may be bucked off
  • Owners retain riding priority

This prevents accidental horse theft in multiplayer environments.


Configuration System

The mod includes a configurable JSON file:

betterhorses-common.json

Configurable systems include:

  • Stabilizers
  • Medkits
  • Hitch Posts
  • Horse Hooves
  • Horse Exclusivity
  • Multiplayer Riding

Items can also be placed into dummy mode, allowing them to remain as decorative models without gameplay functionality.


Technical Systems

The mod adds:

  • Persistent NBT-backed horse data

  • Synced multiplayer horse traits

  • Breed-based spawning

  • Spawn-group inheritance

  • Coat restriction systems

  • Advanced breeding inheritance

  • Custom GUI systems

  • Server/client mixins

  • Translation support for:

    • breeds
    • genders
    • coats
    • UI labels
    • HUD text
    • breeding messages

Developer Notes

Icy’s Better Horses is one of my first large-scale modding projects, and the mod continues to evolve with every update. Some models and textures are still being improved as I continue learning 3D modeling and animation workflows. Community feedback, testing, suggestions, and contributions are always welcome.

Ченджлог

1.1.5Релиз26.1.2 · 1 июня 2026 г.

bugs fixed:

  • shears dont work on saddles of horses you dont own
  • going through a portal no longer dupes your items
  • horses dont randomly start infinitely spawning in a v rare specific chunk
1.1.4Релиз1.21.10 · 23 мая 2026 г.

working port fully updated!

1.1.4Релиз1.21.11 · 23 мая 2026 г.

All features up to date!

1.1.4Релиз1.21.11 · 21 мая 2026 г.

first working port for neoforge 1.21.11!

1.1.4Релиз26.1.2 · 20 мая 2026 г.

first port for neoforge!

1.1.4Релиз26.1.2 · 19 мая 2026 г.

Icy's Better Horses — 2026-05-19 Change Log

A consolidated summary of every change made today. Mod target: Minecraft 1.21.11 / 26.1.2 (Fabric).


1. New per-horse traits

Each AbstractHorse now persists three new pieces of data in addition to the existing bond:

Trait Type Notes
Gender MALE / FEMALE Synched + saved to NBT. Donkeys/mules also get a gender.
Breed one of 15 breeds, or a species placeholder Only real horses (Horse.class) use real breeds; donkeys/mules/skeleton/zombie horses get a species label.
Mixed-breed flag boolean True when a child inherits from two different-breed parents — display gets a (mix) suffix.

Files: HorseGender.java, HorseBreed.java, IHorseData.java, AbstractHorseMixin.java.


2. Horse Info Screen (P key while mounted)

Pressing P while riding a horse now opens a screen showing the horse's full profile. Pressing P while NOT mounted still whistles other horses as before.

The screen shows:

  • Gender
  • Breed (with (mix) suffix if cross-bred)
  • Coat (color + markings, e.g. Brown + White Field)
  • Bond — raw value X / 100 with bar
  • SpeedX.X blk/s with bar
  • JumpX.XX blk with bar
  • HealthX.X HP with bar

Bars are zero-baselined (fill = value / max) and use mod-attainable ceilings derived from the bond multiplier:

Stat Min Max (full bond)
Speed 0 blk/s 25.52 blk/s (0.3375 × 1.75 × 43.2)
Jump 0 blk 9.50 blk (1.0 × 1.75 × 6 − 1)
Health 0 HP 30 HP

Files: HorseInfoScreen.java, IcysBetterHorsesClient.java.


3. Upgraded-saddle HUD now shows Breed + Gender

When you hold the upgraded saddle and look at a horse, the in-world stats HUD shows four lines under the title:

Horse Stats
Gender: <m/f>
Breed: <breed>
Speed: <blk/s>
Jump: <blk>

File: GuiMixin.java.


4. Gender-gated breeding

  • A new mixin (AnimalMixin) makes Animal.canMate return false when both sides are AbstractHorse and share a gender.
  • If you feed a golden apple to a horse whose neighbor is already in love mode and same gender, the apple is still consumed, love mode is reset on this horse, and the player gets "These horses are the same gender and can't breed." in chat.

File: AnimalMixin.java, plus the existing fedFood RETURN hook in AbstractHorseMixin.


5. Child inheritance

When two horses successfully breed:

  1. Gender — random 50/50 for the child.
  2. Breed
    • Same-breed parents → child gets that breed (no mix suffix).
    • Different breeds → child gets one parent's breed at 50/50 + (mix) suffix.
    • Cross-species (e.g. horse + donkey) → child gets the appropriate species placeholder.
  3. Stat inheritance for HP / speed / jump:
    • child = max(parent1, parent2) + delta
    • delta is a uniform random in display units: -0.5 to +1.0 (HP, blk/s, blk).
    • Clamped at the vanilla base ceiling (HP 30, raw speed 0.3375, raw jump 1.0) so no amount of breeding can push past the mod-attainable max.
  4. Coat — re-rolled from the child breed's allowed coat list.

File: AnimalMixin.java.


6. Breed → Coat binding

Each real breed has its own list of allowed vanilla coats (Variant × Markings). Coats follow breed:

  • New horses — coat is forced from the breed's allowed list when the horse spawns.
  • Pre-existing horses (already in the world before this update) — keep their current coat and the mod infers a breed from that coat. Fallback breed if no match: Mustang.
  • Bred children — coat re-rolled from the child's inherited breed.

Mapping:

Breed Allowed coats
Thoroughbred Brown · Chestnut · Black · Dark Brown · Brown+White · Chestnut+White
Arabian Gray · Gray+White · White · Chestnut · Brown · Black
Quarter Chestnut · Chestnut+White · Brown · Brown+White · Black+White · Creamy+White
Friesian Black
Andalusian Gray · White · Black · Chestnut
Percheron Gray · Black · White
Clydesdale Brown+White Field · Black+White Field · Dark Brown+White Field · Chestnut+White Field
Shire Black+White Field · Brown+White Field · Gray+White Field · Dark Brown+White Field
Belgian Chestnut · Chestnut+White · Creamy · Creamy+White
Icelandic Chestnut+White Field · Brown+White Field · Black+White · Gray+White Field · Creamy+White Field · Dark Brown+White
Mustang Dark Brown · Brown · Chestnut · Black · Dark Brown+White · Chestnut+White Field
Haflinger Chestnut+White · Chestnut · Creamy+White
Morgan Brown · Chestnut · Black · Dark Brown · Brown+White
American Paint Brown+White Field · Black+White Field · Chestnut+White Field · Dark Brown+White Field · White+White Field · Creamy+White Field
Appaloosa White+Black Dots · Gray+Black Dots · Chestnut+White Dots · Brown+White Dots · Black+White Dots · Dark Brown+White Dots

Files: HorseBreed.java, HorseAccessor.java (Invoker for Horse.setVariantAndMarkings).


7. Spawn-group same-breed + biome-locked breeds

  • Same-breed spawn groups — all horses that spawn together as a natural group share one breed. Implemented by a custom BhHorseGroupData : SpawnGroupData that is passed between siblings inside finalizeSpawn.
  • Biome-locked breeds — the breed chosen for a fresh spawn group is picked at random from the list of breeds that are allowed in that biome. If the biome has no entry in the table, fallback to a random breed.
Breed Allowed biomes
Thoroughbred Plains · Sunflower Plains · Meadow · Forest · Birch Forest
Arabian Desert · Badlands · Eroded Badlands · Savanna · Savanna Plateau · Windswept Savanna
Quarter Plains · Sunflower Plains · Savanna · Savanna Plateau · Windswept Savanna
Friesian Dark Forest · Forest · Pale Garden · Old Growth Spruce Taiga · Taiga
Andalusian Meadow · Cherry Grove · Flower Forest · Plains · Forest
Percheron Old Growth Spruce Taiga · Forest · Meadow · Plains
Clydesdale Windswept Hills · Windswept Gravelly Hills · Windswept Forest · Old Growth Pine Taiga
Shire Forest · Birch Forest · Old Growth Birch Forest · Windswept Forest · Dark Forest
Belgian Taiga · Old Growth Spruce Taiga · Old Growth Pine Taiga · Forest
Icelandic Snowy Plains · Snowy Taiga · Ice Spikes · Frozen Peaks · Jagged Peaks · Snowy Slopes · Grove
Mustang Plains · Savanna · Windswept Hills · Badlands · Wooded Badlands · Sparse Jungle
Haflinger Snowy Slopes · Grove · Meadow · Frozen Peaks · Jagged Peaks · Stony Peaks
Morgan Plains · Sunflower Plains · Forest · Birch Forest · Meadow
American Paint Plains · Sunflower Plains · Savanna · Sparse Jungle
Appaloosa Plains · Wooded Badlands · Savanna Plateau · Sunflower Plains

Files: HorseBreed.java, BhHorseGroupData.java, AbstractHorseMixin.java.


8. Translations added

assets/icys-better-horses/lang/en_us.json now contains keys for:

  • Info-screen labels: screen.icys-better-horses.info.{gender,breed,coat,bond,speed,jump,health}
  • HUD lines: hud.icys-better-horses.{gender,breed}
  • Genders: gender.icys-better-horses.{male,female}
  • All 15 breeds + 5 species placeholders + mix_format
  • Coat colors (7) + markings (4) + combined formatter
  • Message: message.icys-better-horses.same_gender_breed

9. Mixin registration changes

icys-better-horses.mixins.json now also references:

  • AnimalMixin (server-side)
  • HorseAccessor (server-side; Invoker)

1.1.3Релиз26.1.2 · 12 мая 2026 г.

New Features

  • Horse hooves can be enchanted with Frost Walker to create ice while running, optimized for high movement speeds (15+ blocks per second).
  • Added an owner-priority bucking system where the horse ejects any non-owner attempting to control it, unless the owner is also currently riding.
  • Added a stat overlay to the GUI that displays a horse's jump and speed attributes when the player is holding an upgraded saddle.
  • Added support for an Ender Chest in the chest slot of the upgraded saddle to allow access to global ender inventory.
  • Implemented a JSON configuration file (betterhorses-common.json) to allow users to toggle functionality for stabilizers, medkits, hitchposts, hooves, horse exclusivity, and multi-riding.
  • Added a dummy mode for items in the config so they remain as decorative models without functionality when disabled.

Bug Fixes

  • Fixed a bond exploit where only the first nametag used on a horse increases the bond level, while subsequent nametags only change the name.
  • Fixed a multiplayer issue where the P key (whistle) failed to call horses; the whistle is now correctly tied to the owner's UUID.
  • Pressing P now resets the horse's behavior state, clearing previous instructions like "stay" to return the horse to default follow behavior.
  • Fixed an interaction conflict where using Ctrl + Right-click to open the radial menu would unintentionally cause the player to mount the horse.
1.1.0Релиз26.1.2 · 8 мая 2026 г.

Additional Features

  • Increased horse step height by 10%, allowing smoother traversal over paths and full blocks without getting stuck.
  • Mining speed while mounted now remains the same as on foot, removing the heavy block-breaking slowdown.
  • Reduced mounted block break speed penalty by 80%.
  • Mounting a horse no longer forces the player's view direction to change — the horse rotates instead.
  • Added independent camera movement while the horse is stationary, allowing up to 90° of free look before the horse follows the rotation.
  • Improved downward visibility by making the horse nearly disappear when looking down.
  • Improved rider visibility by lowering the horse head position and rotating it forward while mounted.
  • Using a saddle on a horse in Creative Mode now instantly tames the horse.

Комментарии

Загружаем…