
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 / 100with bar - Speed —
X.X blk/swith bar - Jump —
X.XX blkwith bar - Health —
X.X HPwith 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) makesAnimal.canMatereturn false when both sides areAbstractHorseand 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:
- Gender — random 50/50 for the child.
- 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.
- Stat inheritance for HP / speed / jump:
child = max(parent1, parent2) + deltadeltais 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.
- 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 : SpawnGroupDatathat is passed between siblings insidefinalizeSpawn. - 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) +
combinedformatter - 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.
Комментарии
Загружаем…