Skip to content

Releases

Create Horse Power - CE v1.2.11

Choose a tag to compare

@github-actions github-actions released this 31 Oct 10:36
42df395

Create Horse Power CE 1.2.11

Forward-compatible dependency metadata

  • Replace hard upper bounds on Create and exact-version restrictions on optional Icy's Better Horses with minimum-only loader ranges on Forge and NeoForge.
  • Keep the minimum Create release at 6.0.8 and Icy API baseline at 2.1.7, without rejecting newer mod releases by version number alone.
  • Preserve exact Minecraft target versions because the Forge and NeoForge artifacts are compiled against distinct game APIs. Existing Forge and NeoForge loader ranges were already minimum-only.
  • Add a release-jar verifier requirement that all non-Minecraft mod/loader dependencies have no upper bound, including future declared dependencies.
  • Update the opt-in Icy compatibility test artifacts to published 2.1.8 for both loaders; Gradle artifacts remain fixed for reproducible CI while runtime metadata stays open-ended.

Verification

  • On-prem-1 validation with published Icy 2.1.8 passed 32/32 required GameTests on both Forge and NeoForge, after changing the dependency metadata. Both loader builds, unit tests and release-jar dependency verifiers also passed.
  • This policy permits future updates to load; it does not claim untested upstream API changes are compatible. CI and release acceptance must still exercise exact test binaries.

Create Horse Power - CE v1.2.10

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:44
ddbb0d1

Create Horse Power CE 1.2.10

Create: Bionics compatibility

  • Add optional Oxhauler worker support for Forge 1.20.1 (Bionics source version 2.0.0) and NeoForge 1.21.1 (released Bionics 2.5.0), with no hard dependency in normal builds.
  • Require complete assembly, fuel, and unoccupied/unsubmerged movement. Spend exactly one finite fuel unit per active crank tick and fail closed when the upstream setter fails.
  • Exempt assembled robots from livestock-only taming policy; route NeoForge tool-part lead interactions through the normal player item lifecycle, retaining creative refunds and final survival lead destruction events.
  • Upgrade NeoForge Create to 6.0.9, the minimum required by published Bionics 2.5.0.
  • Guard the upstream Forge Oxhauler's client-only Create ambient sound helper on logical servers. The original Forge source calls this from its unconditional entity tick and crashes on unloaded client config in the dedicated-server test runtime; CE's optional mixin skips only server-side ambience, not real robot ticking or fuel/movement.

Verification and release limitations

  • Add isolated two-loader real Bionics GameTests and a separate-process restart CI lane, with explicit mod-version, test-count, and evidence checks; normal installations remain Bionics-free.
  • Forge 2.0.0 currently has upstream source code but no verified official published binary: CI builds the exact pinned source commit instead. This is not equivalent to verifying an official released Forge jar.
  • Client multiplayer raycast and packet-level plough/harvester hitbox verification requires dedicated client acceptance; do not claim this is covered by headless server GameTests.

Create Horse Power - CE v1.2.9

Choose a tag to compare

@github-actions github-actions released this 28 Oct 13:15
1f06cd1

Create Horse Power CE 1.2.9

Icy's Better Horses compatibility

  • Added optional compatibility with Icy's Better Horses 2.1.7 on Forge 1.20.1 and NeoForge 1.21.1, recognizing all fifteen released horse breeds.
  • Respect Icy ownership and trusted players, prevent competing rider/cart/wagon control, and release crank control after successful recall, send-home and revival while preserving assignments when commands fail.
  • Preserve worker identity, original AI state and attachment item disposition across replacement, delayed leash restoration, chunk unloading and world restarts.
  • Honor settled no-drop decisions during snapshot recall and cross-dimension recovery while preserving unrelated detach records.
  • Retain normal individual-stat balance: inherited movement speed affects RPM, maximum health affects stress capacity, and Icy's existing bond speed modifier is counted once. Jump strength does not add crank power.

Regression coverage

  • Added real-Icy checks for every breed's bond thresholds, repeated/reset bond changes, actual offspring inheritance, independent speed/health output, and serialized inherited/bonded stat recovery without modifier stacking.
  • Verify that an actively ticking crank refreshes bond-driven RPM and health-driven stress capacity, preserves its worker and orbit, and returns to baseline when those stats are restored.
  • Compatibility acceptance, lifecycle, public commands, packaging and separate-process restart checks cover both supported loaders. Client visuals and player-driven UI remain manual acceptance.

Create Horse Power - CE v1.2.8

Choose a tag to compare

@github-actions github-actions released this 24 Oct 15:40
ebedf15

Create Horse Power CE 1.2.8

Restart and chunk-load recovery

  • Preserve assigned workers while entity storage or saved vanilla leashes are still loading. Missing-attachment grace now follows actual worker ticks instead of crank ticks, without force-loading worker chunks.
  • Keep saved worker positions synchronized and migrate older stale assignment coordinates so chunk-boundary recovery uses the latest known position.
  • Reconcile saved crank generation through Create’s normal shutdown before the first kinetic validation. This prevents a reproduced load-order speed-cycle conflict that could break an adjacent cogwheel while workers were still resolving, without bypassing Create’s protection against genuine rotation conflicts.
  • Preserve saved generation directions, avoid power from unresolved workers, and retain normal broken-leash and missing-worker cleanup.

Regression coverage

  • Added cross-loader coverage for delayed leash restoration, unloaded and genuinely missing workers, legitimate detach behavior, and complete saved kinetic network reconstruction in both load orders.
  • Verify every network node, worker assignment, saved direction, pending output, and real-source capacity, including mixed resolved and unresolved workers.
  • Corrected interaction-test structure bounds so chunk-edge test origins cannot hide the selected worker.

These fixes prevent the covered restart failures; they do not automatically reclaim ownership that an older version has already erased. Reattach affected workers normally before testing a healthy saved setup.

Create Horse Power - CE v1.2.7

Choose a tag to compare

@github-actions github-actions released this 27 Sep 13:01
195da8d

Create Horse Power CE 1.2.7

Animal-power data/runtime foundation

  • Added cross-loader data-driven attachment profiles with exact item/tag selectors, worker/machine restrictions, backend-safe persistence/recovery, radius limits, consumption/drop policy, and output multipliers.
  • Attachment ownership now rejects cross-machine steals before mutating leashes, vanilla-leash profiles bind only the selected worker instead of batch-moving unrelated leashables, and consumed attachments preserve their full per-stack NBT/data-component state when returned.
  • Extracted the Horse Crank's single-worker lifecycle behind a reusable animal-power engine and added bounded assignment persistence/migration groundwork while preserving legacy Horse Crank NBT/runtime behavior. Multi-worker lifecycle/output semantics remain follow-up work.
  • Added exact per-machine worker-stat overrides with field inheritance and deterministic profile-source precedence, including loader-neutral worker-profile datapack JSON on Forge/NeoForge and the NeoForge KubeJS startup-profile map API.
  • Ported Forge recipes/tags datagen, switched Forge shared datapack resources from hand-maintained JSON to generated output, and added generated-output parity/drift gates.

Release-readiness and packmaker surfaces

  • Fresh 1.2+ server configs now leave legacy path lists empty so bundled path profiles are not shadowed (dirt 0.70, gravel 1.10); upgraded 1.1 files keep their stored path entries.
  • Added shared createhorsepower/worker_profiles datapack JSON on both loaders, including machine overrides and deterministic priority/tie handling.
  • Attachment JSON parsing, shared worker JSON, fresh-default path behavior, and NeoForge KubeJS machine overrides now have parser/source-boundary regression coverage.
  • KubeJS worker-profile maps reject unknown top-level or machine-override keys instead of silently ignoring snake_case keys; public docs now show the exact camelCase scripting schema.
  • README/CurseForge/packmaker docs now distinguish bundled vanilla-lead gameplay from pack-supplied harness, yoke, and virtual_tether framework modes and use the unified changelog path.

Create Horse Power - CE v1.2.6

Choose a tag to compare

@github-actions github-actions released this 21 Sep 16:22
ca5f3c8

Create Horse Power - CE 1.2.6

Fixes

  • Fixed NeoForge path output being applied twice after the pathEvaluated KubeJS hook. With KubeJS installed and no listener registered, a Great path could incorrectly turn a 2.0x RPM multiplier into 4.0x, and non-neutral stress multipliers could likewise be squared.
  • Defined pathEvaluated speed/stress values as final absolute path multipliers. Scripts may still replace them with setSpeedMultiplier() / setStressMultiplier(), but the crank now assigns the returned final values instead of multiplying them again.
  • Fixed NeoForge path effects being lost when KubeJS is not installed. The no-KubeJS firePathEvaluated fallback now preserves the evaluator's absolute speed/stress multipliers instead of replacing them with neutral 1.0x values.
  • Preserved Forge behavior by keeping the common no-op script hook aligned with the evaluator's existing path multipliers.

Regression coverage

  • Added discriminating evaluator coverage for LEGACY, WORST_BLOCK, and WEIGHTED_AVERAGE using a mixed custom path whose expected speed and stress outputs differ by mode.
  • Added coverage proving disabling path stress scaling leaves RPM, validity, coverage accounting, and efficiency unchanged while neutralizing only the final path stress multiplier.
  • Added coverage proving the stress toggle cannot bypass minimum path coverage.
  • Added Forge 1.20.1 and NeoForge 1.21.1 crank GameTests for the production-shaped case: 16 base RPM / 32 base SU on a Great path keeps the 2.0x RPM path bonus while final stress remains exactly 32 SU.
  • Added a NeoForge no-KubeJS regression verifying OptionalIntegrations.firePathEvaluated() preserves a 2.0x speed / 1.10x stress result unchanged.
  • Retained the NeoForge KubeJS-present runtime regression so both optional-integration branches are covered.

Create Horse Power - CE v1.2.5

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:15
0360fd3

Create Horse Power - CE 1.2.5

Balance configuration

  • Added path.enableStressScaling to control path-based stress-capacity scaling independently from path RPM scaling.
  • The option defaults to true, preserving existing behavior for current worlds and modpacks.
  • When disabled, path quality still controls RPM, validity, coverage, and path-efficiency behavior, but the path stress multiplier is fixed at 1.0 so a worker configured for 32 SU remains at 32 SU on Poor, Normal, or Great paths.
  • balance.enableIndividualAnimalStats continues to control only animal movement-speed/max-health bonuses; path stress scaling is now explicitly configurable instead of being coupled to path quality.

Verification

  • Added regression coverage proving the default policy preserves the existing 0.90x/1.00x/1.10x path stress multipliers.
  • Added regression coverage proving the disabled policy neutralizes Poor/Normal/Great path stress multipliers to 1.00x.

Create Horse Power - CE v1.2.4

Choose a tag to compare

@github-actions github-actions released this 20 Sep 11:02
0cd6ebb

Create Horse Power - CE 1.2.4

Verification

  • Added two worker-first recovery regression scenarios for issue #4, each mirrored across Forge 1.20.1 and NeoForge 1.21.1.
  • The live-owner regression proves recovery remains queued while the recorded crank chunk is unavailable, never force-loads that chunk, and preserves attachment plus AI-suppression ownership and NoAI=true when the matching crank becomes available later.
  • The complementary orphan regression proves the same deferred worker-first ordering recovers immediately once the delayed chunk becomes inspectable with no matching owner: stale attachment/activity ownership is cleared and the worker's original NoAI=false state is restored before the 1200-tick timeout.
  • Both worker-first regressions now rely on the real loader EntityJoinLevelEvent hook to enqueue the reloaded worker instead of manually scheduling recovery from the test.
  • Together these regressions close the remaining coverage gap around the recovery behavior introduced in 1.2.1; no worker-recovery gameplay semantics are changed in this release.

Release infrastructure

  • Consolidated changelogs to one shared file per mod version at changelog/<mod_version>.md instead of duplicating files per Minecraft version.
  • Migrated historical changelogs to the shared naming scheme.
  • CI now validates the shared changelog contract before loader builds.
  • GitHub Release and both CurseForge uploads now consume the same shared changelog file.

Create Horse Power - CE v1.2.3

Choose a tag to compare

@github-actions github-actions released this 20 Sep 07:27
a2ca30f

Create Horse Power - CE v1.2.2

Choose a tag to compare

@github-actions github-actions released this 07 Sep 20:30
605f858