promotional bannermobile promotional banner

Create Horse Power - CE

Medieval power for Create: harness horses and other mobs to drive your machines
Back to Files

Create Horse Power - CE 1.21.1-1.2.1 - NeoForge 1.21.1

File namecreatehorsepower-ce-1.21.1-1.2.1.jar
Uploader
NsTutNsTut
Uploaded
Sep 2, 2026
Downloads
25
Size
1.5 MB
Mod Loaders
NeoForge
File ID
8794671
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:create-horse-power-ce-1673003:8794671"

Learn more about Curse Maven

What's new

Create Horse Power CE 1.2.1 (NeoForge 1.21.1)

This maintenance release fixes persisted ghost leashes, TFC worker-profile precedence, unrealistic worker orbit speed, and field-debugging gaps.

Fixes

  • Fixed ghost/orphan leash knots when a worker is detached, moved outside the cleanup scan, or unloaded when its crank is emptied.
  • Preserved detachWorker(false) across unload/save/reload so deferred recovery does not unexpectedly spawn a lead.
  • Made unloaded detach policy durable at level scope, so detachWorker(false) still preserves no-drop semantics if the crank is destroyed or replaced before the worker reloads.
  • Bounded stale worker recovery to 1200 ticks; the recovery clock is persisted on the worker so unload/reload cannot reset the timeout.
  • A successful new attachment now cancels stale durable/legacy detach intent and any pending orphan-recovery clock for that worker.
  • Fixed a NeoForge 1.21.1 ghost assignment where the crank could keep HAS_WORKER=true after the real leash/worker assignment was gone, causing a re-leashed TFC horse to be rejected with “This horse crank already has a worker.” Loaded stale assignments are repaired on the attach click, while genuinely unloaded assigned workers remain reserved.
  • Deferred recovery runs after vanilla 1.21.1 resolves delayed BlockPos leash data, preventing the old knot from being recreated permanently.
  • Recovery now discards the exact vanilla-recreated leash knot once it becomes unused, without inspecting or force-loading the old crank chunk; a knot still used by another loaded mob is preserved.
  • Added persistent attachment ownership independent of temporary AI suppression, while retaining CE.2 legacy-marker recovery.
  • Hardened knot cleanup so stale recovery cannot detach or destroy a worker/knot now owned by a replacement crank.
  • Crank activity and attachment ownership now uses the complete (block position, instance UUID) identity, so vanilla /clone, structure copies, or NBT tooling cannot let a duplicated crank UUID impersonate another crank during stale cleanup.
  • Deferred detach records are now consumed only by their owning crank instance during cleanup, preventing an unrelated crank from erasing another crank's recovery intent.
  • Fixed pre-existing NoAI=true workers repeatedly reacquiring/relogging CHP activity control; marker ownership is now tracked separately from NoAI-transition ownership and cleaned on stop/detach without changing the original NoAI state.
  • Timeout recovery now requires actual serialized vanilla leash data before using the synthetic-holder cleanup path, so a stale CHP marker on an already-unleashed worker cannot manufacture a free lead.
  • Server shutdown now clears process-local recovery queue references while leaving the worker's persisted recovery clock intact, preventing integrated-server worlds from being retained after returning to the menu.

TerraFirmaCraft compatibility

  • Added optional exact Data Map defaults for TFC horse, donkey, mule, cow, pig, sheep, dromedary camel and bactrian camel.
  • Exact TFC species entries replace CHP's built-in generic tier-tag default, so horse/donkey/mule/camel/etc. receive their matching species profiles.
  • TFC entries are guarded by NeoForge's mod_loaded condition, so TFC is not a hard dependency and missing registry IDs are never resolved when TFC is absent.
  • Exact defaults remain ordinary Data Map entries, so later datapacks can override or remove them.
  • Added built-in path defaults for TFC soil and rock families, so ordinary TFC grass/dirt/gravel/cobble/smooth/brick rings can power a crank without manual path config.

Movement

  • Decoupled mechanical output RPM from the animal's visible orbit gait. High-output/path multipliers no longer make workers sprint unrealistically fast.
  • Visual motion now uses a bounded blocks-per-second speed derived from the mob movement-speed attribute.
  • Angular movement is derived from linearSpeed / radius, keeping ground speed consistent across custom crank radii.
  • Added workerGroundSpeedScale, minWorkerGroundSpeed, and maxWorkerGroundSpeed server settings.

Diagnostics

  • Added diagnostics.debugLogging for transition-based attach, detach, leash cleanup, recovery, AI-control, work-state and path-state diagnostics.
  • Deferred recovery diagnostics are rate-limited; normal worker movement is never logged every tick.
  • Repeated beforeWorkStart script veto retries now log immediately once and then at most once per 1200 ticks per crank/worker instead of once per retry.
  • Replaced the previous per-entry INFO config dump with one compact startup summary.
  • Expanded /createhorsepower inspect with worker UUID/type, visual gait vs mechanical RPM, leash holder, marker state and recovery anchor information.

Verification

  • Added loaded and save/unload/reload ghost-leash GameTests, including the dropLead=false contract.
  • Added NeoForge Data Map precedence coverage for optional TFC species profiles.
  • Added lifecycle GameTests for durable no-drop detach across crank replacement and bounded NoAI recovery without old-chunk force-loading.
  • Added a 600-tick + unload/reload + 600-tick regression proving recovery timeout age cannot restart on chunk churn.
  • Added stale-assignment recovery coverage proving cleanup clears ghost HAS_WORKER state while preserving a worker's new foreign leash.
  • Added a regression proving successful reattachment consumes obsolete durable detach intent and cancels queued recovery.
  • Added regressions proving recovered workers remove unused recreated knots, preserve a shared knot still used by another loaded mob, and cannot consume another crank's durable detach intent.
  • Added TFC runtime coverage proving both the tfc:horse profile and TFC terrain defaults resolve in the dev environment.
  • Added an engine-level GameTest covering pre-existing NoAI=true marker stability, persisted marker/transition ownership separation, and detach cleanup.
  • Added duplicate-UUID collision regressions proving two cranks at different positions cannot clear or inherit each other's activity/attachment ownership, matching vanilla /clone block-entity NBT behavior.
  • Added timeout-without-leash coverage proving stale marker cleanup cannot create a lead, plus transient queue cleanup coverage proving server-stop cleanup preserves the durable timeout clock.
  • Added radius-independent gait/clamp unit tests.

This mod has no additional files