I know blog posts (and development) has slowed down recently. I suppose it is fair to attribute this to a burnout on my - asie’s, that is - side. Keeping up a consistent development pace on a hobby project is very difficult, and it appears I reached my breaking point for a while.

However, today I have finally dusted off old changes and am ready to release the not-perfect-but-nonetheless-good Loader 0.4.0.

The changes are numerous, but include:

  • New, formalized mod metadata schema format!
    • Now with a proper modder-side API!
    • Actual versioning and dependency resolution!
    • More powerful entrypoint system to replace initiailizers! Provide static fields and even method handles!
  • Nested JARs, cooperating with said dependency resolution to allow you to provide any dependency you want - leave the rest to the mod loader!
  • Support for a lot of Minecraft versions. For now, we support:
    • All vanilla client and server versions, from 0.0.11 all the way to 19w14b - and beyond!
    • All versions of Risguami’s ModLoader*,
    • Versions of Forge for 1.2.5 and below*.
  • Mixin reference maps are now remapped at runtime in development environment dependencies.
    • This removes a bunch of Loom-side hackery, and finally fixes Accessor/Invoker support in this scenario!
  • Major refactors in Knot, our default class loader.
    • Stub providing of Package/CodeSource objects - fixing a few crashes here and there.
  • The server .JAR filename is now stored in a properties file - this is useful for better interop with many existing server hosting systems.

Please note that the ModLoader/Forge support (a) requires enabling a flag for a “compatibility” class loader mode, (b) does not yet allow you to mixin non-Fabric mods themselves. However, it does work on Java 9+!

As for mod compatibility, most mods should work just fine - there is a decent amount of 0.3.x compatibility. However, there are some exceptions we’re aware of:

  • Mod Menu may run into issues during gameplay, but basic functionality works fine.
  • plugin-loader does not work with 0.4.x! Disable it in your instance and encourage your local mod author to adopt entrypoints in its place - they’re as good if not better.

With regards to modders, there are some scribbled notes on updating to Loader 0.4.x right here.

I hope you will enjoy the new, long-awaited features in Loader! What’s coming next?

  • Loom 0.3.0 is still being worked on. It probably won’t come out in a day or two, but should be out soon-ish. As a stop-gap, Loom 0.2.1 is being worked on by modmuss50 to add nested JAR functionality to your existing development environments.
  • There is renewed debate and implementation work on the configuration system. Hopefully, it will make it to Loader 0.5.0.
  • There are discussions on the future of Fabric’s API component - nothing concrete to announce as of yet. We are aware of its mild stagnation, don’t worry!

PS. How’s Yarn doing?

Type Yarn 19w07a.13 Yarn 19w14b.4 Total Change
Classes 90.99% 94.23% +3.24%
Fields 74.53% 82.33% +7.80%
Methods 70.85% 73.26% +2.41%