
Horse Powered
Hand-cranked and animal-powered machinery focusing on early game grinding, chopping, pressing, drying, and crushing. Leash horses, donkeys, or llamas to automate the line or generate Forge Energy. Data-driven recipes with full JEI, EMI, and Jade support.
- Загрузки
- 884
- Подписчики
- 17
- Обновлён
- 28 мая 2026 г.
- Лицензия
- MIT
Опубликован 18 декабря 2025 г.
Horse Powered
Pre-industrial farming machinery for Minecraft. Process grain, wood, fluids, and rock the old-fashioned way: by hand for the early game, then with leashed animals walking in circles once you have a herd. Every recipe, time, and tier is data-driven, so modpacks can re-balance the entire mod from a datapack.
Highlights
- Two tiers for almost every machine: a hand-cranked starter block and an animal-powered upgrade
- Workers are any leashable mob (vanilla horses/donkeys/mules/llamas, plus anything in the
horsepowered:valid_workertag) - Attached workers become a virtual ghost render: the real mob is stored on the block so it can't be killed, despawned, or wander out of range; break the block and the original entity respawns with its full NBT intact
- Power generation tie-in: the Generator turns worker labor directly into Forge Energy for the rest of your tech setup
- Viewer support: JEI, EMI, and Jade integrations for every category
- Optional in-game documentation via GuideMe
Machines
Grindstone
- Hand Grindstone for manual milling, one turn at a time
- Horse Grindstone for hands-off, continuous milling
Grain to flour, bone to bonemeal, ore to dust, and any custom recipe you add. Recipes support a secondary output with a chance roll.
Chopper
- Chopping Block for axe-driven log splitting
- Horse Chopper for automated bulk processing
Logs into planks, planks into sticks, signs and trapdoors back into sticks. Reclaim your wood from anything craftable into sticks.
Press
- Horse Press extracts fluids from items
Seeds to seed oil, honeycomb to honey, ice to water, mud to dirt, kelp to dried kelp. The press has separate input and output tanks, so pipes can feed in one fluid and drain another without contamination.
Drying Rack
A passive 2x2 multiblock with eight independent slots. No worker needed: it just dries items over time. Right-click to insert, right-click empty to retrieve. Hoppers can insert from any side (only items with a drying recipe go in) and extract from any side (only finished outputs come out, so partial dries are protected).
Built-in recipes: kelp to dried kelp, wet sponge to sponge, rotten flesh to leather, mud to dirt, clay to terracotta, and saplings to dead bush.
Granite Anvil
Stone-tier crushing station for rock-cycle conversions. Place a granite anvil and right-click a valid input with any stone-or-better pickaxe to crush. Each swing consumes pickaxe durability and player hunger; total swings per recipe scale with the crushingMultiplier config.
Built-in recipes: stone to cobblestone, deepslate to cobbled deepslate, basalt/blackstone/tuff to gravel, cobblestone/cobbled deepslate to gravel, gravel to sand, and sandstone/red sandstone for bonus sand.
Generator
A horse-powered Forge Energy source. Attach a worker, supply a redstone signal (a lever inside the walking ring works fine), and the Generator produces FE while the worker walks. Internal buffer of 100,000 FE pushes to any adjacent FE consumer.
Work Saddle
Right-click any leashable worker to capture it into the saddle, then right-click a block to release it elsewhere. The saddle item shows a small 3D preview of the carried mob on top. Pairs naturally with the horse-powered machines for moving your trained workers around without leashes and fences.
Wooden Hopper
Early-game item transport. Single-slot, runs at half the speed of a vanilla hopper, and crafted from sticks and planks. Same insertion and extraction behavior as a regular hopper, just slower and cheaper.
Creative Battery
Creative-only FE source for testing. Holds up to Integer.MAX_VALUE energy and pushes to adjacent consumers every tick. Unbreakable and only obtainable in creative mode.
Recipe Features
- Tiers: every grinding and chopping recipe declares which station can run it (hand, horse, both). Modpacks can lock high-yield recipes behind the horse-powered variants.
- Priority: control which recipe wins when several match the same input. Lower numbers sort first in JEI and EMI.
- Hunger cost: optional per-recipe hunger drain on top of the global manual-station baseline, so harder grinds can cost the player food.
Getting Started
- Craft a Hand Grindstone or Chopping Block to start processing by hand
- Build a Horse Grindstone, Horse Chopper, or Horse Press for automation
- Clear a 3x3 walking ring around the powered machine with a sturdy floor
- Attach a horse, donkey, mule, llama, or any modded leashable mob with a lead
- Insert items, pull outputs (or let a Wooden Hopper do it), and scale up
For energy generation, slot a Generator into the same setup and run a lever or comparator into it.
Configuration
All recipe times, multipliers, exhaustion rates, energy rates, and tank sizes are in the config file. Recipes are data-driven, so packs can add, remove, or rebalance any conversion without code. Default behavior is preserved across versions whenever new fields are added.
Credits
Original mod by GoryMoon. Updated, expanded upon and maintained by Saereth.
Ченджлог
26.1.2-3.10.2Релиз26.1.2 · 28 мая 2026 г.
Horse Powered 3.10.2
Bug Fixes
- Fixed a crash that could happen while watching a Drying Rack finish. As items neared the end of their drying time, the game could crash when trying to show the finished result.
- Fixed Horse Powered machines flooding the game log with messages when they were left holding an item with no matching recipe. Logs are quiet again.
1.20.1-1.6.0Релиз1.20.1 · 22 мая 2026 г.
Horse Powered 1.6.0
Gameplay Changes
- Animal Trap bait now drains over time (#14): captured animals consume bait to keep producing drops. Every 2.5-minute drop cycle rolls a chance to consume one bait, and the cycle pauses if the bait slot is empty. Hoppers can keep traps fed unattended; the bait slot accepts matching bait even after capture, but rejects anything that doesn't match the captured species.
- Bait consumption is per-recipe: every
horsepowered:trappingrecipe carries its ownbaitConsumed(boolean) andbaitConsumeChance(0.01-100.0 percent) fields. All nine built-in recipes (cow, pig, sheep, chicken, rabbit, goat, mooshroom, strider, salmon) ship withbaitConsumed: trueandbaitConsumeChance: 10.0, so one bait fuels roughly ten drops on average. Pack makers can dial each recipe independently. SeeREADME.mdfor the full schema.
Recipe Viewer
- JEI and EMI Trapping categories now show a Bait consumed line per recipe. Recipes that don't consume bait read
Bait consumed: No; consuming recipes readBait consumed: 10% Chance(or whatever percent the recipe declares). The category panel is one row taller to fit the new line.
Documentation
- README documents the
horsepowered:trappingrecipe type with a full example covering the new bait-consumption fields. - Animal Trap GuideMe page describes the new ongoing-feeding behavior and lists the two new optional recipe fields under "Adding Custom Bait Recipes".
2.6.0Релиз1.21.1 · 22 мая 2026 г.
Horse Powered 2.6.0
Gameplay Changes
- Animal Trap bait now drains over time (#14): captured animals consume bait to keep producing drops. Every 2.5-minute drop cycle rolls a chance to consume one bait, and the cycle pauses if the bait slot is empty. Hoppers can keep traps fed unattended; the bait slot accepts matching bait even after capture, but rejects anything that doesn't match the captured species.
- Bait consumption is per-recipe: every
horsepowered:trappingrecipe carries its ownbaitConsumed(boolean) andbaitConsumeChance(0.01-100.0 percent) fields. All nine built-in recipes (cow, pig, sheep, chicken, rabbit, goat, mooshroom, strider, salmon) ship withbaitConsumed: trueandbaitConsumeChance: 10.0, so one bait fuels roughly ten drops on average. Pack makers can dial each recipe independently. SeeREADME.mdfor the full schema.
Recipe Viewer
- JEI and EMI Trapping categories now show a Bait consumed line per recipe. Recipes that don't consume bait read
Bait consumed: No; consuming recipes readBait consumed: 10% Chance(or whatever percent the recipe declares). The category panel is one row taller to fit the new line.
Documentation
- README documents the
horsepowered:trappingrecipe type with a full example covering the new bait-consumption fields. - Animal Trap GuideMe page describes the new ongoing-feeding behavior and lists the two new optional recipe fields under "Adding Custom Bait Recipes".
26.1.2-3.10.0Релиз26.1.2 · 22 мая 2026 г.
Horse Powered 3.10.0
Gameplay Changes
- Animal Trap bait now drains over time (issue #14): captured animals consume bait to keep producing drops. Every 2.5-minute drop cycle rolls a chance to consume one bait, and the cycle pauses if the bait slot is empty. Hoppers can keep traps fed unattended; the bait slot accepts matching bait even after capture, but rejects anything that doesn't match the captured species.
- Bait consumption is per-recipe: every
horsepowered:trappingrecipe carries its ownbaitConsumed(boolean) andbaitConsumeChance(0.01-100.0 percent) fields. All nine built-in recipes (cow, pig, sheep, chicken, rabbit, goat, mooshroom, strider, salmon) ship withbaitConsumed: trueandbaitConsumeChance: 10.0, so one bait fuels roughly ten drops on average. Pack makers can dial each recipe independently. SeeREADME.mdfor the full schema.
Documentation
- README documents the
horsepowered:trappingrecipe type with a full example covering the new bait-consumption fields. - Animal Trap GuideMe page updated to describe the new ongoing-feeding behavior in-line with the rest of the usage steps.
- Trimmed every GuideMe page (Hand Grindstone, Horse Grindstone, Chopping Block, Horse Chopper, Horse Press, Horse Powered Generator, Granite Anvil, Drying Rack, Flint and Tinder, Horse Path & Speed, Work Saddle, Creative Battery) to a player-focused style: removed in-page recipe tables, internal-mechanism explanations, and datapack/JSON authoring sections. Recipe listings now point to JEI/EMI.
26.1.2-3.9.1Релиз26.1.2 · 21 мая 2026 г.
Horse Powered 3.9.1
Hotfix port of the 1.21.1 branch's 2.5.1 release into 26.1.
New Content
- Wooden Hopper art: new textures and Blockbench-authored models donated by emmen. Top, inside, outside, and new bottom textures, plus updated item art.
- Flint and Tinder art: donated by ArtpokeBR.
Gameplay Changes
- Flint and Tinder hold-to-use: must now be held like firing a bow before it lights anything. The bow-style animation plays and smoke drifts from the targeted block while the player holds right-click. After about two seconds the block is ignited, or campfires, candles, and TNT light directly. Releasing early cancels with no use spent. Durability lowered from 16 to 8 to compensate for the easier renewable supply via the Drying Rack's dead-bush recipe.
Bug Fixes
- Hand Grindstone hitbox shrunk to match the model: the old selection box was a single 14-tall cube that visually covered the side items and made them hard to click. Selection and collision now follow the visible geometry (a flat base plus the central stem). Turning the wheel only fires when right-clicking the stem itself, so clicking on a base side reliably extracts that side's slot even while the grindstone has work to do. Pickup quadrants on the base top are also enlarged from the old narrow strips to the full base quadrant.
- Horse Power Generator stone-tier requirement and charge persistence: the generator now sits in both the pickaxe and
needs_stone_tooltags. Stored FE is attached to the dropped item as aBLOCK_ENTITY_DATAdata component, and placing the item back restores the buffer. The horse, if any, is still released as a live entity with a lead, so charge moves with the block while the worker is freed.
Suggestion Implementation
- Path surface affects worker speed: every horse-powered block (Grindstone, Chopper, Press, Generator) now samples the 24 floor blocks under its circular path and averages a per-block speed multiplier. Faster paths produce recipes faster; slower paths slow them down. Defaults: dirt, grass, coarse dirt, and rooted dirt run at 0.5x; dirt path at 1.0x; packed ice at 2.0x. Anything not listed defaults to 1.0x. Multipliers and defaults are configurable in
config/horsepowered-common.tomlunder[horse_path]viapathSpeedEntriesandpathSpeedDefault. - Working area now tolerates a few obstructions: chests, hoppers, gears, and other non-replaceable blocks can sit inside the 7x7 ring without invalidating the area. Default tolerance is 2 blocks, raise or lower it via
[horse_path] pathObstructionTolerance(range 0 to 40). Levers remain always-allowed, and the floor sturdiness check is unchanged.
Documentation (GuideMe)
- New Horse Path & Speed page covering working area, obstruction tolerance, the speed multiplier defaults, and the config snippets for customizing both.
- New Flint and Tinder page covering the hold-to-use behavior, smoke feedback, retargeting during use, and the lowered durability.
- Each horse-powered machine page (Grindstone, Chopper, Press, Generator) now links to the Horse Path & Speed page, and the index Tips section calls out the new path mechanic.
- Generator guide updated to note that breaking and replacing the block preserves stored charge.
2.5.1Релиз1.21.1 · 21 мая 2026 г.
Horse Powered 2.5.1
New Content
- Wooden Hopper art: new textures and Blockbench-authored models donated by emmen. Top, inside, outside, and new bottom textures, plus updated item art.
- Flint and Tinder art: Donated by ArtpokeBR
Gameplay Changes
- Flint and Tinder hold-to-use: must now be held like firing a bow before it lights anything. The bow-style animation plays and smoke drifts from the targeted block while the player holds right-click. After about two seconds the block is ignited, or campfires, candles, and TNT light directly. Releasing early cancels with no use spent. Durability lowered from 16 to 8 to compensate for the easier renewable supply via the Drying Rack's dead-bush recipe.
Bug Fixes
- Hand Grindstone hitbox shrunk to match the model (#11): the old selection box was a single 14-tall cube that visually covered the side items and made them hard to click. Selection and collision now follow the visible geometry (a flat base plus the central stem). Turning the wheel only fires when right-clicking the stem itself, so clicking on a base side reliably extracts that side's slot even while the grindstone has work to do. Pickup quadrants on the base top are also enlarged from the old narrow strips to the full base quadrant.
- Horse Power Generator is now mineable (#12): it was missing from
minecraft:mineable/pickaxeand had no loot table, so no pickaxe ever drained durability or dropped anything. It is now in both the pickaxe andneeds_stone_tooltags and ships with a standard self-drop loot table. Charge is preserved when broken: the stored FE is attached to the dropped item as aBLOCK_ENTITY_DATAdata component, and placing the item back restores the buffer. The horse, if any, is still released as a live entity with a lead, so charge moves with the block while the worker is freed.
Suggestion Implementation
- Path surface affects worker speed (#13): every horse-powered block (Grindstone, Chopper, Press, Generator) now samples the 24 floor blocks under its circular path and averages a per-block speed multiplier. Faster paths produce recipes faster; slower paths slow them down. Defaults: dirt, grass, coarse dirt, and rooted dirt run at 0.5x; dirt path at 1.0x; packed ice at 2.0x. Anything not listed defaults to 1.0x. Multipliers and defaults are configurable in
config/horsepowered-common.tomlunder[horse_path]viapathSpeedEntriesandpathSpeedDefault. - Working area now tolerates a few obstructions (#13): chests, hoppers, gears, and other non-replaceable blocks can sit inside the 7x7 ring without invalidating the area. Default tolerance is 2 blocks, raise or lower it via
[horse_path] pathObstructionTolerance(range 0 to 40). Levers remain always-allowed, and the floor sturdiness check is unchanged.
Documentation (GuideMe)
- New Horse Path & Speed page covering working area, obstruction tolerance, the speed multiplier defaults, and the config snippets for customizing both.
- New Flint and Tinder page covering the hold-to-use behavior, smoke feedback, retargeting during use, and the lowered durability.
- Each horse-powered machine page (Grindstone, Chopper, Press, Generator) now links to the Horse Path & Speed page, and the index Tips section calls out the new path mechanic.
- Generator guide updated to note that breaking and replacing the block preserves stored charge.
1.20.1-1.5.1Релиз1.20.1 · 21 мая 2026 г.
Horse Powered 1.5.1
New Content
- Wooden Hopper art: new textures and Blockbench-authored models donated by emmen. Top, inside, outside, and new bottom textures, plus updated item art.
- Flint and Tinder art: donated by ArtpokeBR.
Gameplay Changes
- Flint and Tinder hold-to-use: must now be held like firing a bow before it lights anything. The bow-style animation plays and smoke drifts from the targeted block while the player holds right-click. After about two seconds the block is ignited, or campfires, candles, and TNT light directly. Releasing early cancels with no use spent. Durability lowered from 16 to 8 to compensate for the easier renewable supply via the Drying Rack's dead-bush recipe.
Bug Fixes
- Hand Grindstone hitbox shrunk to match the model: the old selection box was a single 14-tall cube that visually covered the side items and made them hard to click. Selection and collision now follow the visible geometry (a flat base plus the central stem). Turning the wheel only fires when right-clicking the stem with an empty hand, so clicking on a base side reliably extracts that side's slot even while the grindstone has work to do. Pickup quadrants on the base top are also enlarged from the old narrow strips to the full base quadrant.
- Horse Power Generator stone-tier requirement and charge persistence: the generator now sits in both the pickaxe and
needs_stone_tooltags and ships with a self-drop loot table. Stored FE is attached to the dropped item underBlockEntityTag, and placing the item back restores the buffer. The horse, if any, is still released as a live entity with a lead, so charge moves with the block while the worker is freed.
Suggestion Implementation
- Path surface affects worker speed: every horse-powered block (Grindstone, Chopper, Press, Generator) now samples the 24 floor blocks under its circular path and averages a per-block speed multiplier. Faster paths produce recipes faster; slower paths slow them down. Defaults: dirt, grass, coarse dirt, and rooted dirt run at 0.5x; dirt path at 1.0x; packed ice at 2.0x. Anything not listed defaults to 1.0x. Multipliers and defaults are configurable in
config/horsepowered-common.tomlunder[horse_path]viapathSpeedEntriesandpathSpeedDefault. - Working area now tolerates a few obstructions: chests, hoppers, gears, and other non-replaceable blocks can sit inside the 7x7 ring without invalidating the area. Default tolerance is 2 blocks, raise or lower it via
[horse_path] pathObstructionTolerance(range 0 to 40). Levers remain always-allowed, and the floor sturdiness check is unchanged.
Documentation (GuideMe)
- New Horse Path & Speed page covering working area, obstruction tolerance, the speed multiplier defaults, and the config snippets for customizing both.
- New Flint and Tinder page covering the hold-to-use behavior, smoke feedback, retargeting during use, and the lowered durability.
- Each horse-powered machine page (Grindstone, Chopper, Press, Generator) now links to the Horse Path & Speed page, and the index Tips section calls out the new path mechanic.
- Generator guide updated to note that breaking and replacing the block preserves stored charge.
26.1.2-3.9.0Релиз26.1.2 · 20 мая 2026 г.
Horse Powered 3.9.0
New Content
- Animal Trap: wooden retextured mob spawner block that catches passive animals over time. Right click bait into the empty trap, wait, and the trap rolls a 5% chance per second after the minimum wait elapses. Once an animal is caught it is stored on the BlockEntity as NBT (not as a live entity) and renders inside the cage spinning the way a vanilla mob spawner does. Every 2.5 minutes the captured entity rolls its vanilla death loot table and the drops land in the trap's internal inventory. Hoppers below the trap pull drops out; hoppers above only insert valid bait. Sneak + right click releases the captured animal back into the world. Right click with an empty hand drops all stored items on the ground. Mining the trap with a stone tier or better axe drops it with full NBT preserved (bait, drops, captured entity) so a working farm can be relocated. Crafted with 4 wooden slabs, 2 iron chains, 2 smooth stone, and a wooden pressure plate.
- Flint and Tinder: low durability flint and steel alternative. Crafted from 8 dead bush surrounding a piece of flint. Behaves like flint and steel for fire, campfire, and candle lighting but only has 16 durability. Pair it with the Drying Rack's saplings to dead bush recipe for a renewable fire starter loop.
Animal Trap Details
Data Driven Recipes (horsepowered:trapping)
Pack makers add their own bait to entity mappings at data/<ns>/recipe/trapping/*.json. Recipe fields:
bait: Ingredient (required)entity: entity type Identifier (required)time: minimum wait in ticks before the dice roll begins (default 1200)priority: sort order in recipe viewers (default 0, lowest displays first)biome: optional biome tag the trap must sit inside before the dice roll countswaterlogged: optional boolean; when true the trap must be waterlogged before the dice roll counts
When biome or waterlogged conditions are not met the bait stays, the timer keeps running, and Jade shows "Wrong biome" or "Needs water" in red so you know to relocate or waterlog the trap.
Built In Recipes
| Animal | Bait | Wait | Extra conditions |
|---|---|---|---|
| Cow | Wheat | 60s | None |
| Pig | Carrot | 60s | None |
| Sheep | Short Grass | 60s | None |
| Chicken | Wheat Seeds | 45s | None |
| Rabbit | Dandelion | 75s | None |
| Goat | Apple | 75s | None |
| Mooshroom | Red Mushroom | 90s | None |
| Strider | Nether Wart | 90s | Biome: #minecraft:is_nether |
| Salmon | Kelp | 75s | Biome: #horsepowered:fish_habitat, waterlogged |
The horsepowered:fish_habitat biome tag bundles #minecraft:is_river, #minecraft:is_ocean, and #minecraft:is_deep_ocean, so it works for future fish recipes too.
Trapping in JEI
New "Trapping" category in JEI showing the bait, the trap as the catalyst, and the captured animal's spawn egg as the result. Each recipe lists the minimum wait, "5% Chance/sec" after, and any biome or waterlogged condition. JEI category width is 160 pixels so even long biome labels like "Rivers and Oceans" fit on a single line.
Jade
The Jade tooltip shows live trap state via a server data provider so the countdowns tick smoothly without needing to click the trap: "Trapping... Xs" while waiting, "Trap set" once the dice phase begins, "Caught: " and "Next drop: M:SS" after capture, the bait and drop slots' contents, and red "Wrong biome" or "Needs water" warnings when bait is loaded but the conditions are not satisfied.
Recipe Viewer Improvements
- Drying Rack scale fade: during the last 30% of a drying recipe the input item smoothly shrinks while the output grows in its place. Fade is partial tick interpolated for buttery smoothness. (1.21.6's deferred render pipeline does not support alpha tinting on the standard item render path, so the fade is implemented as a scale transition rather than the alpha blend used on the 1.21.1 branch.)
Datapack / API
horsepowered:trappingrecipe type. See Animal Trap Details above for fields.horsepowered:fish_habitatbiome tag. Aggregates rivers, oceans, and deep oceans for waterlogged fish recipes.- Trap drops use the captured entity's vanilla loot table with
LootContextParams.DAMAGE_SOURCE = damageSources().generic(), giving raw drops (raw porkchop, not cooked, for example). - Trap state is preserved across mining via
DataComponents.BLOCK_ENTITY_DATA(using the new 1.21.6TypedEntityData<BlockEntityType<?>>payload), so the dropped item carries the captured entity NBT and inventory contents.
Fixes
- Custom recipes now actually show in JEI: NeoForge 26.1 only syncs explicitly listed custom recipe types to clients. The Animal Trap's
horsepowered:trappingtype was not in theOnDatapackSyncEvent#sendRecipeslist, so the client never received the trap recipes and JEI's category was empty. Added trapping to the sync list. - Captured entity is no longer pitch black: the cached display entity was created without a world position, so the lightmap lookup during render state extraction sampled the void at world origin. The renderer now sets the entity's position to the trap's block position before extraction and copies the trap's own
lightCoordsonto the resulting entity render state.
GuideMe
- New Animal Trap guide page covering bait recipes, drop mechanics, hopper automation, biome and waterlogged conditions, the crafting recipe, and how to author custom trap recipes in a datapack.
Комментарии
Загружаем…