Zum Inhalt springen
myvpsguide

Modpack-Server für Minecraft: RAM, Startflags und Weltgenerierung

Forge, NeoForge oder Fabric aufsetzen, den Arbeitsspeicher richtig zuweisen, die Welt vorgenerieren und mit spark herausfinden, welche Mod die Tickrate frisst.

veröffentlicht 19.08.2026
4 min lesezeit
fortgeschritten

Ein Vanilla-Server läuft auf fast allem. Ein Modpack mit dreihundert Mods ist eine andere Anwendung: mehr Speicher, längere Startzeiten, mehr Dinge, die gleichzeitig ticken und eine einzelne fehlerhafte Mod kann die Tickrate halbieren, ohne dass irgendwo eine Fehlermeldung erscheint.

Die Grundlagen, Installation, systemd-Unit, Sicherung, stehen in Minecraft-Server auf dem VPS. Hier geht es um das, was mit Modpacks dazukommt.

Welcher Loader, welches Java#

LoaderWofürBemerkung
NeoForgedie meisten großen Modpacks der aktuellen VersionenAbspaltung von Forge, inzwischen der Standard vieler Packs
Forgeältere Packs, gewachsene Serverweiterhin gepflegt, große Bestandsbibliothek
Fabricschlanke Packs, Leistungsmodsstartet schneller, weniger Große-Pack-Ökosystem
Paper/PurpurPlugin-Server ohne Client-ModsPlugins statt Mods, Spieler brauchen nichts zu installieren

Die Java-Version wird vom Pack vorgegeben, nicht von dir. Ein Pack für eine ältere Minecraft-Version läuft mit einem zu neuen Java oft gar nicht, und die Fehlermeldung zeigt dabei auf die falsche Stelle.

# Mehrere Java-Versionen nebeneinander, pro Instanz auswählen
apt install openjdk-21-jre-headless openjdk-17-jre-headless
update-alternatives --list java
# In der systemd-Unit dann den vollen Pfad eintragen, nicht "java"
Der Pfad in der Unit, nicht das System-Java

Wer java in die Unit schreibt, bekommt das, was gerade Standard ist und nach dem nächsten Systemupdate möglicherweise etwas anderes. Ein Server, der monatelang lief und nach einem apt upgrade nicht mehr startet, hat fast immer genau diese Ursache.

Arbeitsspeicher zuweisen und warum mehr schaden kann#

Bei Java gibt -Xmx die Obergrenze des Heaps an. Zwei Fehler sind verbreitet:

  1. Zu wenig. Der Server läuft, aber die Speicherbereinigung arbeitet dauernd. Symptom: regelmäßige kurze Aussetzer, immer im selben Rhythmus.
  2. Zu viel. Wer einer 8-GB-Maschine 8 GB Heap gibt, lässt nichts für das System übrig und wenn der Kernel Speicher braucht, beendet er den größten Prozess. Das ist der Server.

Eine tragfähige Aufteilung: Heap = verfügbarer RAM minus 1,5 bis 2 GB. Und darüber hinaus gilt: Ein größerer Heap macht nichts schneller, er verschiebt nur, wie oft und wie lange aufgeräumt wird.

# Läuft die Speicherbereinigung zu oft? Das Protokoll sagt es.
-Xlog:gc*:file=logs/gc.log:time,uptime:filecount=5,filesize=10M

Startflags#

Für Java-Server hat sich ein Satz von Startflags eingebürgert, der die Speicherbereinigung auf kurze, gleichmäßige Pausen statt seltener langer trimmt, genau das, was eine Weltschleife braucht. Kurzform:

java -Xms8G -Xmx8G \
  -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
  -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
  -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \
  -XX:InitiatingHeapOccupancyPercent=15 \
  -jar server.jar nogui

-Xms und -Xmx gleich groß zu setzen ist Absicht: Der Heap wird sofort in voller Größe genommen, statt im Betrieb zu wachsen und dabei Pausen zu erzeugen.

Ehrliche Einordnung: Diese Flags sind seit Jahren gängige Praxis in der Serverbetreiber-Szene, kein Herstellerstandard. Ob sie bei deinem Pack etwas bringen, siehst du am GC-Protokoll vorher und nachher, nicht daran, dass sie in einem Forenbeitrag standen.

Die Welt vorgenerieren#

Der teuerste Moment im Betrieb ist neues Gelände: Terrain berechnen, Strukturen setzen, Erz verteilen, Mods dazwischenfunken lassen. Passiert das, während Spieler online sind, ruckelt es für alle.

Deshalb generiert man die Welt einmal im Voraus, wenn niemand da ist, üblicherweise über eine Chunk-Pregen-Mod oder ein Plugin, mit einem Radius, der zur geplanten Weltgrenze passt.

# Danach zeigt die Weltgröße, was tatsächlich erzeugt wurde
du -sh world/region

Dazu passend die beiden Einstellungen, die im Alltag am meisten ausmachen:

# server.properties
view-distance=8          # was Spieler sehen
simulation-distance=6    # was tatsächlich gerechnet wird

simulation-distance ist der teure Wert. Ihn von 10 auf 6 zu senken, ist oft der größte Einzelgewinn und die wenigsten Spieler merken den Unterschied.

Herausfinden, welche Mod bremst#

Raten kostet Abende. Der übliche Weg ist ein Profiler als Mod oder Plugin, der aufzeichnet, wohin die Zeit pro Tick geht, und dafür einen Bericht als Link erzeugt.

Worauf du im Bericht achtest:

  • MSPT (Millisekunden pro Tick). Über 50 bedeutet: Der Server schafft die 20 Ticks pro Sekunde nicht mehr, das ist Ruckeln, unabhängig von der Leitung.
  • Welcher Eintrag dominiert. Meist ist es eine einzelne Mod, ein Weltgenerator oder eine Maschine, die ein Spieler tausendfach gebaut hat.
  • Ob die Last gleichmäßig ist oder in Spitzen kommt. Spitzen deuten auf Speicherbereinigung oder Speichervorgänge.
# Grobe Gegenprobe von außen, unabhängig vom Spiel:
top -H -p $(pgrep -f server.jar)
# Ein Thread dauerhaft bei 100 % ist die Weltschleife. Das ist normal —
# solange sie nicht der Engpass ist.

Ordnet man das Ergebnis ein, hilft Lag messen statt raten: Ein hoher MSPT-Wert ist ein Serverproblem, ein hoher Ping bei niedrigem MSPT ist keins.

Updates ohne Weltverlust#

Modpack-Updates ändern manchmal Block- und Gegenstandskennungen. Ein Update ohne Sicherung ist deshalb keine Wartung, sondern ein Versuch.

systemctl stop mc-modpack
tar -C /opt/mc -czf /backup/welt-$(date +%F-%H%M).tar.gz world world_nether world_the_end
# erst danach das Pack aktualisieren

Und: Vorher lesen, was das Pack im Änderungsprotokoll schreibt. Wenn dort steht, dass eine Mod entfernt wurde, verschwinden deren Blöcke aus der Welt, mit allem, was darauf stand. Das ist kein Fehler, sondern angekündigt.

Häufige Fragen#

Wie viel RAM braucht ein Modpack wirklich?#

Das Pack sagt es meistens selbst in seiner Beschreibung. Nimm diese Angabe als Untergrenze für den Client und rechne für den Server ähnlich, plus die 1,5 bis 2 GB fürs System.

Warum startet der Server zehn Minuten?#

Große Packs laden dreihundert Mods, prüfen Abhängigkeiten und bauen Register auf. Zwei bis fünf Minuten sind normal, mehr deutet auf eine langsame Platte oder zu knappen Heap hin.

Kann ich Plugins und Mods mischen?#

Nur mit Zwitter-Servern (etwa Forge-Paper-Hybriden), und die haben ihre eigenen Probleme. Für einen stabilen Server ist die Entscheidung besser klar: entweder Mods oder Plugins.

Brauchen Spieler dasselbe Modpack?#

Bei Forge/NeoForge/Fabric ja, in derselben Version. Bei Plugin-Servern nein, das ist deren Hauptvorteil.

Warum ist der Server nach Wochen langsamer geworden?#

Weil die Welt gewachsen ist: mehr geladene Bereiche, mehr Objekte, mehr Maschinen. Ein Blick auf du -sh world/region und in den Profiler-Bericht ordnet das ein, bevor du Hardware kaufst.

Kurz gesagt#

  • Java-Version nach Pack, vollen Pfad in die systemd-Unit.
  • Heap = RAM minus 1,5-2 GB, -Xms gleich -Xmx.
  • simulation-distance senken bringt oft mehr als jede Hardware.
  • Welt vorgenerieren, solange niemand spielt.
  • Vor jedem Pack-Update: Welt sichern und das Änderungsprotokoll lesen.
MRMedia

Geschrieben aus dem laufenden Betrieb: MRMedia betreibt eigene Proxmox- Hosts, einen Backup-Server und Kundendienste in der EU. Fehler in einer Anleitung sind Fehler im eigenen Betrieb. Korrekturen bitte über Discord.