promotional bannermobile promotional banner

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.

File Details

horsepowered 26.1.2-3.9.0

  • R
  • May 20, 2026
  • 457.85 KB
  • 7
  • 26.1.2
  • NeoForge

File Name

horsepowered-26.1.2-3.9.0.jar

Supported Versions

  • 26.1.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:horse-powered-1408330:8117828"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

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 counts
  • waterlogged: 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: <entity>" 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:trapping recipe type. See Animal Trap Details above for fields.
  • horsepowered:fish_habitat biome 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.6 TypedEntityData<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:trapping type was not in the OnDatapackSyncEvent#sendRecipes list, 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 lightCoords onto 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.