~/spiele-mods/minecraft-mods-fabric-oder-forge/

Minecraft-Mods programmieren: Fabric oder Forge?

Fabric, Forge oder NeoForge? Wie sich die Mod-Loader für Minecraft Java Edition unterscheiden, welcher zu Ihrem Vorhaben passt und wie Sie die erste Mod aufsetzen.

Für Minecraft Java Edition stehen vor allem Fabric, Forge und NeoForge zur Wahl. Fabric ist schlank, wird nach neuen Spielversionen meist schnell aktualisiert und eignet sich gut für kleine bis mittlere Mods und für Leistungs- und Komfortverbesserungen. Forge und dessen Abspaltung NeoForge bieten umfangreichere eigene Schnittstellen und sind bei großen Inhalts-Mods und Modpacks verbreitet. Die beste Wahl hängt davon ab, welche Mods Ihre Mod ergänzen oder neben welchen sie laufen soll.

Die drei Loader kurz vorgestellt

Fabric besteht aus zwei Teilen: dem Fabric Loader, der Mods lädt, und der Fabric API, einer separaten Bibliothek mit Ereignissen und Hilfsfunktionen. Der Loader selbst ist bewusst klein gehalten. Viel Arbeit erledigen Mixins, mit denen eine Mod gezielt Code in Methoden des Spiels einfügt. Der Vorteil: Fabric lässt sich nach einem Minecraft-Update meist schnell anpassen, oft schon für Vorabversionen.

Forge ist der älteste der großen Loader und prägte die Modding-Szene über viele Jahre. Er bringt eine eigene, breite Schnittstelle mit einem Ereignissystem, Registrierungshilfen und Erweiterungen für Spielsysteme mit. Viele der bekannten großen Mods sind auf Forge entstanden.

NeoForge entstand als Abspaltung von Forge, getragen von einem großen Teil des früheren Entwicklungsteams. Es setzt die Forge-Tradition fort, hat aber seitdem eigene Wege eingeschlagen. Für neuere Spielversionen haben viele Forge-Mods zu NeoForge gewechselt, während Forge selbst weiter existiert.

Vergleich auf einen Blick

Fabric Forge NeoForge
Philosophie schlanker Loader, separate API umfangreiche eigene API umfangreiche eigene API, modernisiert
Updates auf neue Spielversionen meist sehr schnell langsamer meist zügig
Eingriff ins Spiel vor allem Mixins und Fabric-API-Ereignisse Ereignisse, Registrierungen, auch Mixins Ereignisse, Registrierungen, auch Mixins
Metadatei fabric.mod.json mods.toml eigene TOML-Datei
Build-Werkzeug Gradle mit Loom Gradle mit ForgeGradle Gradle mit eigenen Plugins
Typische Mods Leistung, Komfort, kleine Inhalte große Inhalts-Mods, ältere Modpacks große Inhalts-Mods, neuere Modpacks

Die Angaben beschreiben Tendenzen, keine festen Regeln. Es gibt große Fabric-Mods ebenso wie kleine Forge-Mods.

Entscheidungshilfe

  • Sie wollen eine bestimmte andere Mod erweitern oder ergänzen? Nehmen Sie deren Loader. Das ist das wichtigste Kriterium.
  • Sie spielen selbst in einem Modpack? Entwickeln Sie für den Loader des Packs, dann können Sie Ihre Mod im echten Umfeld testen.
  • Sie wollen eine aktuelle Spielversion früh unterstützen? Fabric ist hier traditionell schnell.
  • Sie planen viele neue Blöcke, Maschinen, Dimensionen? Forge oder NeoForge bieten dafür mehr fertige Schnittstellen.
  • Sie wollen mehrere Loader bedienen? Werkzeuge wie Architectury erlauben eine gemeinsame Codebasis, erhöhen aber den Aufwand. Für die erste Mod lohnt sich das selten.

Die Entwicklungsumgebung einrichten

  1. JDK installieren: eine Java-Version mit Langzeitunterstützung, die zur gewünschten Minecraft-Version passt. Die Vorlage nennt die Version im Build-Skript.
  2. IDE wählen: IntelliJ IDEA in der kostenlosen Ausgabe ist in der Modding-Szene am verbreitetsten, Eclipse funktioniert ebenfalls. Für IntelliJ gibt es ein Community-Plugin, das Projekte für Fabric und Forge unterstützt.
  3. Vorlage laden: Fabric bietet einen Generator für Vorlagenprojekte auf seiner Website, Forge ein Mod Development Kit (MDK), NeoForge ebenfalls Vorlagen und einen Generator.
  4. Projekt importieren: Die IDE erkennt das Gradle-Projekt. Beim ersten Öffnen lädt Gradle das Spiel, Bibliotheken und Zuordnungstabellen herunter. Das kann einige Minuten dauern.
  5. Spiel starten: Die Vorlage bringt Startkonfigurationen für Client und Server mit. Damit startet Minecraft direkt aus der IDE mit Ihrer Mod, und Haltepunkte im Debugger funktionieren.

Die erste Mod mit Fabric

Nach dem Import enthält das Vorlagenprojekt eine Einstiegsklasse. Sie implementiert das Interface ModInitializer und wird in der fabric.mod.json als Einstiegspunkt eingetragen:

package de.beispiel;

import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class BeispielMod implements ModInitializer {
    public static final String MOD_ID = "beispielmod";
    public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);

    @Override
    public void onInitialize() {
        LOGGER.info("Beispielmod wurde geladen");
        // Hier registrieren Sie Blöcke, Items, Befehle und Ereignis-Handler.
    }
}

Erscheint die Meldung beim Start im Protokoll, ist die Umgebung bereit. Im nächsten Schritt registrieren Sie ein eigenes Item: eine Java-Klasse für das Verhalten, eine Registrierung beim Start, dazu Ressourcen im Ordner assets für Textur, Modell und Übersetzung. Die genaue Schreibweise der Registrierung ändert sich zwischen Minecraft-Versionen immer wieder. Halten Sie sich deshalb an die Dokumentation und die Beispiele für genau die Version, die in Ihrer Vorlage eingestellt ist.

Die erste Mod mit NeoForge oder Forge

Bei Forge und NeoForge ist die Einstiegsklasse mit der Annotation @Mod und der Mod-ID gekennzeichnet. Im Konstruktor erhält sie Zugriff auf den Ereignisbus der Mod, über den Registrierungen und Lade-Ereignisse laufen. Inhalte wie Blöcke und Items werden über sogenannte Deferred Registers angemeldet, die zum richtigen Zeitpunkt beim Spielstart greifen. Auch hier gilt: Die Vorlage für Ihre Zielversion enthält ein funktionierendes Beispiel, das Sie schrittweise anpassen.

Ergänzung: Datenpakete und Ressourcenpakete

Nicht alles erfordert Java-Code. Minecraft selbst lädt Datenpakete, die Rezepte, Beutetabellen, Fortschritte, Tags und Teile der Weltgenerierung über JSON-Dateien festlegen, und Ressourcenpakete für Texturen, Modelle, Klänge und Übersetzungen. Mods nutzen dieselben Formate: Die Rezepte und Beutetabellen Ihrer Mod liegen als JSON-Dateien im Ordner data Ihres Projekts, Texturen und Modelle im Ordner assets.

Das hat zwei Vorteile. Erstens lässt sich vieles ohne Code anpassen, auch von Modpack-Erstellern. Zweitens ist dieser Teil weitgehend unabhängig vom Loader: Ein Rezept im Datenformat von Minecraft funktioniert unter Fabric wie unter NeoForge. Viele Vorlagen bringen zusätzlich Datengeneratoren mit, die solche Dateien aus Java-Code erzeugen. Das verhindert Tippfehler in Hunderten JSON-Dateien und erleichtert Updates, wenn sich das Format zwischen Spielversionen ändert.

Typische Stolpersteine

  • Falsche Version: Eine Mod für eine Minecraft-Version läuft selten in einer anderen. Vermerken Sie Spiel- und Loader-Version in Dateinamen und Beschreibung.
  • Client und Server verwechselt: Code, der auf Grafik oder Eingaben zugreift, darf nur auf dem Client laufen. Sonst stürzt ein dedizierter Server ab. Beide Loader bieten getrennte Einstiegspunkte oder Prüfungen dafür.
  • Mixins übertreiben: Mixins sind mächtig, aber anfällig bei Updates und bei Konflikten mit anderen Mods. Nutzen Sie zuerst vorhandene Ereignisse der API.
  • Alte Tutorials: Viele Anleitungen beziehen sich auf ältere Versionen. Prüfen Sie immer, für welche Version ein Beispiel geschrieben wurde.
  • Absturzberichte falsch gelesen: Die eigentliche Ursache steht meist am Ende der Fehlerkette, unter „Caused by“.

Veröffentlichen und lizenzieren

Mods werden vor allem über Plattformen wie Modrinth und CurseForge verbreitet. Dort geben Sie Spielversionen, Loader und Abhängigkeiten an, etwa die Fabric API. Legen Sie Ihrem Projekt von Anfang an eine Lizenz bei: Sie regelt, ob andere Ihren Code verwenden, verändern oder in Modpacks aufnehmen dürfen. Welche Lizenzen dafür üblich sind, erklärt der Artikel Open-Source-Lizenz für Plugins wählen. Unabhängig davon gelten die Nutzungsbedingungen von Minecraft, die etwa die Weitergabe von Spieldateien ausschließen.

Wie Mod-Loader allgemein arbeiten und welche rechtlichen Grenzen beim Modding gelten, beschreibt die Übersicht Mods für Spiele programmieren. Wer Java, Gradle oder Versionsverwaltung mit Git auffrischen möchte, findet die Basis in den Programmiergrundlagen.

faq

Fragen und Antworten

Laufen Fabric-Mods auch mit Forge?
Nicht direkt. Eine Mod ist in der Regel für genau einen Loader und eine Spielversion gebaut. Es gibt Brücken, die Fabric-Mods unter NeoForge lauffähig machen sollen, und Werkzeuge wie Architectury, mit denen Entwickler eine gemeinsame Codebasis für mehrere Loader pflegen. Für Spielerinnen und Spieler ist es am einfachsten, alle Mods eines Modpacks für denselben Loader zu wählen.
Welche Java-Version brauche ich?
Das richtet sich nach der Minecraft-Version, für die Sie entwickeln. Neuere Versionen verlangen eine aktuelle Java-Version mit Langzeitunterstützung, ältere kamen mit früheren Versionen aus. Die offizielle Vorlage Ihres Loaders gibt die passende Java-Version im Build-Skript vor. Installieren Sie ein JDK, nicht nur eine Laufzeitumgebung.
Muss ich Java können, um Minecraft-Mods zu programmieren?
Für die Java Edition ja, zumindest die Grundlagen: Klassen, Vererbung, Interfaces und Lambdas. Ebenfalls hilfreich ist ein Grundverständnis von Gradle. Wer zunächst ohne Programmierung einsteigen möchte, kann mit Datenpaketen beginnen, die Rezepte, Beute und Fortschritte über JSON-Dateien verändern.
Ist Quilt eine Alternative zu Fabric?
Quilt ist eine Abspaltung von Fabric mit eigenen Zielen, die viele Fabric-Mods ebenfalls laden kann. Das Ökosystem ist deutlich kleiner. Für den Einstieg ist Fabric meist die naheliegendere Wahl, weil es dafür mehr Dokumentation, Beispiele und Mods gibt.