Zwanzig TPS ist das Ziel. Alles darunter spuerst du: Bloecke, die verzoegert brechen, Mobs, die ruckeln, Redstone, das nicht zuverlaessig funktioniert. Hier die Schritte mit dem groessten Effekt, der Reihe nach. Miss vor und nach jeder Aenderung mit /spark tps.
Schritt 1: Erst messen, nicht raten
Oeffne die Konsole und tippe /spark profiler start. Spiele fuenf Minuten normal. Tippe /spark profiler stop. Spark generiert einen Link zu einer Uebersicht, die genau zeigt, wohin die Tick-Zeit geht. Ohne diese Messung aenderst du Einstellungen im Dunkeln.
Die drei haeufigsten Uebeltaeter: Chunk-Generierung (Spieler, die neues Terrain erkunden), Entities (Mobs, Items, Armor Stands) und schlecht programmierte Plugins.
Schritt 2: Chunks vorgenerieren
Chunk-Generierung ist die schwerste Aufgabe eines Minecraft-Servers. Jedes Mal, wenn ein Spieler neues Terrain betritt, muss der Server dieses Terrain berechnen. Mit dem Plugin Chunky generierst du die Karte im Voraus:
/chunky radius 5000/chunky start
Das generiert einen Kreis von 5000 Bloecken um den Spawn. Mach das in einer ruhigen Phase; es dauert, verhindert aber Lag waehrend des Spielens. Setze danach eine Weltgrenze, damit Spieler nicht ueber das generierte Gebiet hinausgehen.
Schritt 3: View und Simulation Distance verringern
Oeffne server.properties:
view-distance=7(Standard 10; fuer Survival ist 6 bis 8 in Ordnung)simulation-distance=4(Standard 10; bestimmt, bis zu welcher Entfernung Mobs und Redstone aktiv sind)
Der Unterschied ist gross: View-Distance 10 laedt viermal so viele Chunks wie View-Distance 5. Simulation-Distance 4 statt 10 bedeutet, dass Entities jenseits von vier Chunks keine Tick-Zeit mehr kosten.
Schritt 4: Entity-Limits einstellen
In bukkit.yml unter spawn-limits:
monsters: 50(Standard 70)animals: 10(Standard 10)water-animals: 3(Standard 5)ambient: 1(Standard 15; Fledermaeuse kosten TPS und bringen nichts)
In paper-world-defaults.yml findest du despawn-ranges und entity-per-chunk-save-limit. Senke das Speicherlimit fuer Item Frames und Armor Stands, wenn dein Server davon viele hat.
Schritt 5: Aikars JVM-Flags
Die Standard-JVM-Einstellungen sind nicht optimal fuer Minecraft. Aikars Flags optimieren den Garbage Collector, sodass der Server weniger Pausen fuer die Speicherbereinigung einlegt. Im Gamepanel traegst du sie bei den Startup-Einstellungen ein. Fuer Server bis 12 GB:
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
Schritt 6: Plugins ueberpruefen
Spark zeigt pro Plugin, wie viel Tick-Zeit es verbraucht. Ein Plugin ueber 5 ms pro Tick ist verdaechtig. Entferne oder ersetze Plugins, die unverhhaeltnismaessig viel Zeit kosten. Haeufige Uebeltaeter: ClearLag (ironischerweise), alte Hologramm-Plugins und schlecht programmierte Minigame-Plugins.
Hilft mehr RAM gegen niedrige TPS?
Nur wenn der Server aktiv zu wenig Arbeitsspeicher hat (OutOfMemory in den Logs). Meistens ist TPS ein CPU-Problem, kein Speicherproblem. 4 GB RAM mit guten Einstellungen performen besser als 8 GB mit Standardeinstellungen.
Was ist der Unterschied zwischen TPS und MSPT?
TPS ist die Anzahl der Ticks pro Sekunde (Ziel: 20). MSPT ist die Zeit in Millisekunden pro Tick (Ziel: unter 50). Bei MSPT ueber 50 schafft der Server keine 20 Ticks pro Sekunde mehr und die TPS sinken. Spark zeigt beides.
Muss ich Paper verwenden fuer gute TPS?
Nicht zwingend, aber dringend empfohlen. Paper hat Dutzende eingebauter Optimierungen, die Vanilla und Spigot nicht haben. Der Unterschied ist auf derselben Hardware messbar: 5 bis 30 Prozent niedrigere MSPT, je nach Server.
Willst du direkt messen? /spark tps funktioniert auf jedem Paper-Server bei HostValues. Sieh dir die Minecraft-Pakete an.