dwgx@blog:~$dwgx
> cd ../posts

Example-Wasted1: Getting a Fabric Mod Toolchain Running from Scratch

// created

Example-Wasted1 is a practice Fabric mod project with a single goal: to get Minecraft’s whole toolchain, the modloader, mapping, and build setup, running end to end from scratch. The name and that description line are throwaway placeholders, don’t read anything into them, the code is the point.

I’d been wanting to properly get my hands on Minecraft’s Java ecosystem for a while. Writing the mod logic itself isn’t hard, what’s hard is the environment and the toolchain. Just reading tutorials gets you nowhere, so better to spin up an empty project and work through it from the example mod template.

The project is a standard Gradle layout, pure Java. The directories follow Fabric convention and split into two parts: src/main holds logic shared by both sides, and src/client holds code that only runs on the client. I left the package name at the template default com.example.mod and didn’t change it.

The most painful part was the environment. gradle.properties pins the versions of Minecraft, the Yarn mapping, the loader, and the API, and if any of them don’t line up genSources fails outright. The first dependency pull was absurdly slow; it only went smoothly once I’d set up a mirror. You also have to think through the client/server boundary up front, because a client-only call dropped into common will crash the moment it hits the server.

The whole thing is just a scratch project. Once I’d hit all the pitfalls worth hitting and had a feel for it, I archived it and left it as a marker: yes, I’ve run this setup from scratch once.