Skip to content

Trackwork model repair

BonsUnleashed edited this page Oct 7, 2026 · 7 revisions

Trackwork model repair

Minecraft 1.20.1 / Forge: this page documents that build and its measurements. For the separate 170-control Minecraft 1.21.1 port, see Minecraft 1.21.1 NeoForge.

A compatibility repair for Trackwork 1.20.1-1.2.3 that has no switch and is separate from the 78 controls. It is client-side only (it touches client resources) and does nothing unless Trackwork is installed.

What was wrong

Five of Trackwork's block models reference a parent model from Create that the installed Create build does not provide:

Model Baked quads after repair
assets/trackwork/models/block/small_simple_wheel.json 60
assets/trackwork/models/block/wrapped_link.json 18
assets/trackwork/models/block/oleo_wheel_single.json 54
assets/trackwork/models/block/oleo_wheel_twin.json 108
assets/trackwork/models/block/track_link.json 6

With the parent missing, the resource loader logged a missing-parent warning for each and could not resolve the models against a parent that does not exist. Each of the five supplies its own geometry, textures and display transforms, so the only thing they need from a parent is a valid root: minecraft:block/block. Only the parent field changes; the geometry is Trackwork's, exactly as shipped.

How the repair is applied

Earlier Bons builds shipped corrected copies of the five JSON files (first as trackwork-1.20.1-1.2.3+ac-review.2.jar on 2026-09-15, then inside Bons Valkyrien Fixes). Trackwork's assets/trackwork/LICENSE.txt applies an all-rights-reserved license to its resources, so the public 1.0.15 release replaced the copies with a runtime repair that includes no Trackwork geometry:

  1. TrackworkResources is a Mixin into Forge's DelegatingPackResources, the mod_resources pack that serves every mod's assets. It is active only for client resources, only for that pack, and only when Trackwork is loaded.
  2. When the game asks for one of the five model paths in the trackwork namespace, the Mixin reads the model bytes from the installed Trackwork JAR and hands them to ModelParentRepair.
  3. ModelParentRepair computes the file's SHA-256 and, only if it equals the reviewed 1.2.3 hash for that path, parses the JSON and sets parent to minecraft:block/block. Any other content (a newer Trackwork, a different build) is returned byte-for-byte unchanged.
  4. The Mixin also lists the five paths when the pack is enumerated, so resource reloads see them. Because the repair lives inside mod_resources, any higher-priority resource pack that overrides these models still wins.

Verification

Twenty packaging checks confirmed that all five parsed model outputs equal the previous copied-file candidate, that repeated application is unchanged, that unknown revisions are unchanged and that unrelated resources are unchanged. A native client fixture on the exact published JAR loaded all five models at the title screen, performed a manual resource reload and verified identical geometry afterwards (quads as in the table above). The same five models were checked in every Valkyrien sweep's full-client fixture.

If you do not want it

There is no config key. The repair only affects the five reviewed files, and a resource pack of yours that provides those models takes precedence. If a future Trackwork release fixes the parent itself, its files will no longer match the reviewed hashes and the repair becomes inert automatically.

Bons and Furious

Minecraft 1.20.1 / Forge 1.0.34

Compatibility

Controls by mod

Links

Clone this wiki locally