Leitfaden für den Umstieg auf moderne Cores: Purpur, Paper, Folia
Die Wahl des Server-Cores ist eine grundlegende Entscheidung, die Leistung, Stabilität und Funktionalität Ihres Minecraft-Servers bestimmt. Die Verwendung veralteter Lösungen wie Vanilla, CraftBukkit oder selbst dem Standard-Spigot ist in der heutigen High-Load-Realität (Hochlast-Umgebungen) ineffizient. In diesem Artikel analysieren wir die Entwicklung von Server-Plattformen und erklären, wie und warum Sie auf moderne Cores wie Paper, Purpur oder den innovativen multithreaded Core Folia umsteigen sollten.
Die Evolution der Cores: Von Spigot zu Purpur
Um den Wert moderner Technologien zu verstehen, betrachten wir die Hierarchie der Plattformen:
- Spigot: Das historische Fundament. Es brachte grundlegende Optimierungen im Vergleich zum Originalcode von Mojang, aber heute sind seine Algorithmen veraltet. Es führt die meisten Operationen in einem einzigen Hauptthread (Main Thread) aus.
- Paper: Der anerkannte Industriestandard. Dies ist ein Fork (Abspaltung) von Spigot, bei dem die Systeme zur Chunk-Generierung, Physikberechnung und KI-Verhalten von Mobs komplett neu geschrieben wurden. Paper behebt kritische Bugs sowie Sicherheitslücken und sorgt für eine massive Steigerung der TPS (Ticks Per Second).
- Purpur: Ein Elite-Fork von Paper. Er übernimmt absolut alle Optimierungen des Eltern-Cores, fügt jedoch über die Datei
purpur.ymlein beispielloses Maß an Anpassungsmöglichkeiten hinzu. Hier können Sie das individuelle Verhalten jedes Mobs konfigurieren, Vanilla-Spielmechaniken ändern und Features integrieren, für die früher separate Plugins erforderlich waren.
Folia: Die Multithreading-Revolution
Traditionell arbeitet Minecraft nach dem Prinzip „ein Server – ein Thread“. Unabhängig davon, wie viele CPU-Kerne Ihr Hosting-Prozessor hat, nutzt der Server nur einen Kern zu 100 %. Der Core Folia (entwickelt vom Paper-Team) ändert die Spielregeln grundlegend.
Folia unterteilt die Spielwelt in unabhängige "Regionen" (Regionized Multithreading). Wenn sich eine Gruppe von Spielern am Spawn befindet, während eine andere Gruppe 5000 Blöcke entfernt in der End-Dimension ist, werden diese Zonen parallel auf verschiedenen CPU-Kernen verarbeitet.
Wichtige Einschränkung von Folia: Aufgrund der komplett restrukturierten Architektur führen Standard-Plugins, die synchrone Aufgaben verwenden, zu einem sofortigen Absturz. Folia erfordert spezielle, regionen-optimierte Versionen von Plugins. Nutzen Sie diesen Core nur für Großprojekte (Anarchie, Skyblock mit Tausenden von Online-Spielern) und nur bei ausreichender technischer Erfahrung. Für klassische Server bleibt Purpur die ideale Wahl.
Schritt-für-Schritt-Algorithmus für die Core-Migration
Der Migrationsprozess im Control Panel Ihres Hostings є völlig sicher, wenn Sie sich an die folgende logische Reihenfolge halten.
- Backup erstellen: Gehen Sie im Control Panel Ihres Servers in den Bereich „Backups“ und erstellen Sie einen Wiederherstellungspunkt. Die Änderung von Core-Strukturen ist ein sensibler Prozess.
- Core-Datei herunterladen: Besuchen Sie die offizielle Website des gewählten Cores (z. B. purpurmc.org) und laden Sie die aktuelle
.jar-Datei für Ihre Spielversion herunter. - Dateisystem vorbereiten: Öffnen Sie den Dateimanager oder verbinden Sie sich via SFTP. Stoppen Sie den Server. Suchen Sie die alte ausführbare Core-Datei (meistens heißt sie
server.jar,spigot.jaroderpaper.jar) und löschen Sie diese. - Hochladen und Umbenennen: Laden Sie die heruntergeladene Datei des neuen Cores in das Stammverzeichnis (Root) des Servers hoch. Benennen Sie sie gemäß den Anforderungen Ihres Panels um (z. B. in
server.jar) oder ändern Sie den Namen der Startdatei in den „Starteinstellungen“ (Startup Settings). - Erster Start und Generierung der Konfigurationen: Starten Sie den Server. In der Konsole beginnt der Prozess der Datenkonvertierung und Erstellung neuer Konfigurationsdateien (
paper-world-defaults.yml,purpur.yml). Warten Sie, bis der Server vollständig hochgefahren ist und die MeldungDone!anzeigt, und starten Sie ihn dann neu.
Behebung potenzieller Probleme (Troubleshooting)
Problem 1: Server zeigt beim Start den Fehler „Unsupported Class Version Error“
Ursache: Neue Core-Versionen erfordern aktuelle Java-Versionen. Beispielsweise wird für Minecraft 1.20+ mindestens Java 17 benötigt, für 1.20.6+ ist oft Java 21 erforderlich.
Lösung: Wechseln Sie im Bereich „Starteinstellungen“ Ihres Panels auf das benötigte Docker-Image (Java-Version) und starten Sie den Server neu.
Problem 2: Eigene Spielmechaniken sind verschwunden oder Plugins werfen Fehler in der Konsole
Ursache: Einige Plugins sind fest mit dem internen Code von Spigot (NMS) verknüpft. Beim Wechsel auf Paper/Purpur können diese Methoden entfernt oder geändert worden sein.
Lösung: Aktualisieren Sie alle Plugins auf die neuesten stabilen Versionen. Ersetzen Sie veraltete Software durch moderne Alternativen (nutzen Sie z. B. EssentialsX anstelle des veralteten Essentials).
Kampf den Lags: Optimierung der Konfigurationsdateien (paper.yml, purpur.yml, spigot.yml)
Ein sauberer TPS-Wert von 20.0 ist das Hauptmerkmal für gutes Hosting und einen richtig konfigurierten Server. Standardmäßig belassen die Core-Entwickler die Einstellungen auf dem Maximum, um den Singleplayer-Mechaniken gerecht zu werden. In einer Multiplayer-Umgebung führt dies jedoch zu massiven Lags. Eine professionelle Optimierung besteht darin, den Simulationsradius dezent zu senken und die übermäßige Mob-KI einzuschränken.
Zuständigkeitsbereiche der Konfigurationsdateien
Jeder Core verarbeitet bestimmte Aspekte des Spiels:
spigot.yml– zuständig für grundlegende Distanzen, Wachstumsraten von Pflanzen und die Aktivierung von Entitäten.paper-world-defaults.yml(in älteren Versionenpaper.yml) – tiefgehende Optimierung der Weltmechaniken, Chunks, Kollisionen und Ladevorgänge.purpur.yml– Feinabstimmung individueller Eigenschaften von Kreaturen und einzigartigen Spielparametern.
Optimale Parameter für mehr Performance
Öffnen Sie die genannten Dateien über den integrierten Texteditor Ihres Hosting-Panels und ändern Sie die folgenden Parameter, um die maximale Leistung zu erzielen:
Einstellungen in der spigot.yml
world-settings:
default:
verbose: false
# Begrenzt den Aktivierungsradius von Entitäten (Mobs außerhalb dieses Radius „schlafen“)
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 4
# Begrenzt die Tick-Häufigkeit für KI-Berechnungen von Mobs
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
# Verringert die CPU-Last durch Hopper-Überprüfungen
ticks-per:
hopper-transfer: 8
hopper-check: 8
Einstellungen in der paper-world-defaults.yml (oder paper.yml)
chunks:
auto-save-interval: 6000 # Erhöht das Intervall für die automatische Chunk-Speicherung (in Ticks)
max-auto-save-chunks-per-tick: 6
collisions:
max-entity-collisions: 2 # Begrenzt die Kollisionsprüfungen von Mobs an einem Punkt (wichtig für Farmen)
fix-climbing-bypassing-cramming-rule: true
entities:
spawning:
despawn-ranges:
monster:
soft: 30
hard: 56
per-player-mob-spawns: true # Separates Mob-Spawnlimit für jeden einzelnen Spieler
Einstellungen in der purpur.yml
settings:
# Deaktiviert Leistungsabfälle bei der Pfadfindung von Dorfbewohnern (Villagern)
brain-deactivation-of-villagers-src: true
dont-send-useless-entity-packets: true
# Optimiert Lags, die durch Projektile und Statuseffekte entstehen
lag-compensation:
enabled: true
Simulations- vs. Sichtdistanz (Der wichtigste Schritt)
In modernen Minecraft-Versionen (1.18+) wurden die Sichtweiteneinstellungen in der Datei server.properties in zwei unabhängige Optionen aufgeteilt:
- view-distance: Die Distanz, auf die ein Spieler die Landschaft sieht. Die Chunks werden an den Client gesendet, aber der Server verbraucht keine CPU-Ressourcen für die Verarbeitung aktiver Prozesse darin. Empfohlener Wert:
6-8. - simulation-distance: Der Radius um den Spieler, in dem physikalische Prozesse stattfinden, Redstone-Schaltkreise arbeiten, Pflanzen wachsen und sich Mobs bewegen. Dies ist die Hauptursache für Server-Lags. Stellen Sie diesen Wert auf
4oder5. Dies senkt die CPU-Last um 40-50 % ohne visuelle Nachteile für die Spieler.
Wie überprüfe ich die Optimierungsergebnisse?
Nutzen Sie das integrierte Timings-System von Paper. Geben Sie in der Serverkonsole folgenden Befehl ein:
/timings on (warten Sie 10-15 Minuten bei stabiler Spieleraktivität), gefolgt von /timings paste.
Sie erhalten einen Link zu einem detaillierten, interaktiven Web-Report, der genau zeigt, welches System (Plugins, Entitäten, Weltgenerierung) wie viele Millisekunden der CPU-Zeit (Tick Duration) beansprucht.
Einrichtung und Konfiguration des Schutzes vor Griefing und Bot-Angriffen
Öffentliche Minecraft-Server sind täglich verschiedenen Bedrohungen ausgesetzt. Dies reicht von einfachem Griefing (Zerstörung von Bauwerken durch normale Spieler) bis hin zu professionellen Bot-Angriffen, deren Ziel es ist, die Slots mit gefälschten Verbindungen zu füllen und die Server-CPU mit Authentifizierungsanfragen zu überlasten. In diesem Leitfaden analysieren wir ein umfassendes, mehrschichtiges Schutzsystem für Ihr Projekt.
Ebene 1: Schutz der Spielwelt (Griefing-Abwehr)
Um destruktives Verhalten von Spielern zu verhindern, ist ein klassischer, bewährter Plugin-Stack erforderlich:
- WorldGuard + WorldEdit: Ermöglicht das Erstellen von Regionen, in denen normale Spieler keine Blöcke abbauen, Truhen öffnen oder Feuerzeuge benutzen können.
- CoreProtect: Das wichtigste Werkzeug für Administratoren. Dieses Plugin protokolliert absolut jede Aktion auf dem Server (wer hat einen Block platziert, ein Item aus einer Truhe genommen oder Lava platziert).
Im Falle von massivem Griefing müssen Sie nicht den gesamten Server zurücksetzen, was den Fortschritt unbeteiligter Spieler zerstören würde. Es reicht aus, einen gezielten Rollback-Befehl für die Aktionen eines bestimmten Spielers innerhalb eines Zeitfensters auszuführen:
/co rollback u:[Griefer_Name] t:2h r:50 (macht alle Aktionen des Spielers aus den letzten 2 Stunden in einem Radius von 50 Blöcken rückgängig).
Ebene 2: Schutz vor Bot-Angriffen und L7 DDoS
Ein Bot-Angriff simuliert den massenhaften Beitritt von Spielern. Ein Standard-Core verbraucht enorme Ressourcen für das Erstellen von Sitzungen, das Laden von Skins und das Generieren von Chunks für Hunderte von Bots pro Sekunde, was den Server schnell offline zwingt.
Technische Information: Der Basisschutz des Hostings (L3/L4 im OSI-Modell) wehrt Angriffe auf Netzwerkports ab. Er erkennt jedoch keinen Unterschied zwischen dem Paket eines echten Spielers und dem eines Bots, da beide das legitime Minecraft-Spielprotokoll (L7) nutzen. Der Schutz des Spielprotokolls muss innerhalb des Servers konfiguriert werden.
Sicherheitsumsetzung durch Anti-Bot-Plugins
Installieren Sie spezialisierte Plugins zur Filterung des Datenverkehrs, wie z. B. AntiBotDeluxe, UltimateAntibot oder die kostenlose Alternative BKCommonLib / LimboFilter. Diese arbeiten nach folgendem Prinzip:
- Bei einem plötzlichen Anstieg der Verbindungsrate schaltet der Server in den "Sturm-Modus" (Attack Mode).
- Neue Spieler werden nicht in die Hauptwelt gelassen. Das Plugin leitet sie stattdessen in eine virtuelle "Limbo-Welt" um (ein leichtgewichtiges System, das RAM und CPU nicht belastet).
- Der Spieler wird aufgefordert, eine einfache Verifizierung zu durchlaufen: ein bestimmtes Item im Inventar anzuklicken, sich zu bewegen oder ein Captcha einzugeben. Bot-Programme können diese benutzerdefinierten Pakete nicht verarbeiten und werden herausgefiltert.
Ebene 3: Netzwerkarchitektur (Proxy-Verbindung über Velocity / BungeeCord)
Für Großprojekte oder Server mit Skalierungsabsichten ist die Einrichtung einer Proxy-Architektur zwingend erforderlich. Anstatt direkten Zugriff auf den eigentlichen Spielserver (z. B. Survival) zu gewähren, schalten Sie einen Proxy-Server wie Velocity (empfohlen) oder BungeeCord vor.
| Netzwerk-Komponente | Rolle beim Serverschutz |
|---|---|
| Proxy (Velocity) | Fängt die Hauptlast des Angriffs ab. Verbirgt die echten IP-Adressen der Backend-Spielserver und filtert Authentifizierungspakete. |
| Hauptserver (Survival/Hub) | Befindet sich hinter einer geschlossenen Firewall des Hostings. Akzeptiert Verbindungen NUR von der lokalen IP-Adresse des Proxys und ist somit vollständig vor externen Zugriffen geschützt. |
Um eine sichere Verbindung einzurichten, müssen Sie in der Datei server.properties des Ziel-Spielservers den Parameter online-mode=false setzen, aktivieren Sie jedoch in der Datei paper-world-defaults.yml die moderne Header-Weiterleitung:
proxies:
velocity:
enabled: true
online-mode: true
secret: "Ihr_Geheimschlüssel_aus_der_Velocity_Konfiguration"
Dies blockiert böswillige Nutzer komplett daran, den Proxy zu umgehen und sich unter den Namen von Administratoren auf Ihrem Server einzuloggen.