Minecraft Server Dorfbewohner optimieren: Villager-Lag beheben und deine Economy am Laufen halten
# Minecraft Server Dorfbewohner optimieren: Villager-Lag beheben und deine Economy am Laufen halten
Dorfbewohner gehören zu den rechenintensivsten Mobs in Minecraft. Auf Servern mit aktiven Spielerökonomien und Trading-Halls können ein paar hundert Villager deinen TPS von 20 auf unter 10 drücken. Dieser Guide erklärt, warum Dorfbewohner so viel Leistung fressen — und was du dagegen tun kannst, ohne die Economy deines Servers zu ruinieren.
Warum Dorfbewohner so teuer sind
Jeder Dorfbewohner führt jeden Tick mehrere KI-Aufgaben aus:
- Pathfinding — Routen zu Betten, Arbeitsstätten und Treffpunkten berechnen
- Brain-Ticking — Minecrafts Verhaltenssystem (seit 1.14) verwendet die sogenannte "Brain"-API, die deutlich schwerer ist als das ältere zielbasierte KI-System
- POI-Lookup (Point of Interest) — Dorfbewohner scannen ständig nahe Blöcke nach Betten und Arbeitsstättenblöcken
- Klatsch und Ruf-Updates — Dorfbewohner verfolgen den Ruf bei einzelnen Spielern
- Beruf- und Handels-Updates — Wiederauffüllen, Aufleveln und Handelangebote aktualisieren
Ein einzelner Dorfbewohner verbraucht bereits überraschend viel CPU-Zeit. Skaliere das auf 200+ Villager in einer Trading-Hall, und du hast ein ernstes Problem.
Villager-KI mit Paper-Einstellungen reduzieren
Paper bietet mehrere Konfigurationsoptionen, die den Villager-Overhead drastisch reduzieren.
paper-world.yml (Weltspezifische Einstellungen)
Öffne config/paper-world-defaults.yml oder deine weltspezifische paper-world.yml und suche nach diesen Optionen:
entity:
villager:
lobotomize:
enabled: true
check-interval: 100
Lobotomisierte Dorfbewohner sind Villager, die ihre POI (Bett oder Arbeitsstätte) nicht erreichen können und deshalb stark reduzierte KI erhalten. Diese Einstellung ist für Trading-Halls sicher, in denen Villager absichtlich eingesperrt sind — sie handeln weiterhin normal, verschwenden aber keine CPU für Pathfinding.
Achte auch auf:
behavior:
villager-work-immunity-after: 100
villager-work-immunity-for: 20
Das verhindert, dass Dorfbewohner beim Arbeiten unterbrochen werden, und reduziert redundante KI-Neuberechnungen.
bukkit.yml — Tick-Limits
In bukkit.yml steuert der Abschnitt entity-activation-range, welche Entities volle KI-Ticks bekommen:
entity-activation-range:
animals: 32
monsters: 32
raiders: 48
misc: 16
water: 16
villagers: 32
flying-monsters: 32
Den Wert villagers auf 16 zu senken bedeutet, dass Villager weiter als 16 Blöcke von einem Spieler entfernt reduzierte KI-Ticks erhalten. Für Trading-Halls, in denen Spieler stehen, ist der Effekt minimal — aber CPU wird bei untätigen Villagern in geladenen Chunks deutlich gespart.
spigot.yml — Tick-Raten
In spigot.yml kannst du steuern, wie häufig Dorfbewohner ihr Verhalten aktualisieren:
world-settings:
default:
entity-activation-range:
villagers-work-immunity-after: 100
villagers-active-for-time: 100
tick-inactive-villagers: false
tick-inactive-villagers: false ist eine der wirkungsvollsten Änderungen, die du vornehmen kannst. Inaktive Dorfbewohner (außerhalb der Aktivierungsreichweite) werden überhaupt nicht mehr getickt. Beachte, dass dies das Wiederauffüllen von Händlern beeinflussen kann, wenn Spieler weit von Trading-Halls entfernt sind — für abgeschlossene Setups ist es jedoch ein erheblicher Gewinn.
Deine Trading-Hall richtig designen
Konfiguration allein reicht nicht, wenn deine Trading-Hall schlecht gebaut ist. Hier ist, was zu tun ist:
Dorfbewohner stationär halten
Eingefangene Villager, die nirgends hinlaufen können, haben sowohl durch Papers Lobotomie-Feature als auch durch Vanillas eigenes Pathfinding-Kurzschluss reduzierte KI. Platziere Dorfbewohner in 1x1-Loren- oder Bootfallen, damit sie kein Bewegungsziel berechnen müssen.
Betten und Arbeitsstätten korrekt platzieren
Jeder Villager braucht ein gültiges Bett und eine Arbeitsstätte in Reichweite. Wenn diese fehlen oder unzugänglich sind, sucht der Dorfbewohner ständig nach neuen — und löst damit alle paar Sekunden teure POI-Scans aus. Stelle sicher, dass jeder Villager ein dediziertes Bett und eine Arbeitsstätte hat.
Größe der Trading-Hall begrenzen
Baue keine 300-Villager-Hall, wenn 60 spezialisierte Dorfbewohner mit allen nötigen Trades ausreichen. Mehr Villager = mehr CPU, unabhängig von Optimierungseinstellungen. Verwende die minimal notwendige Anzahl.
POI-Lookup und Chunk-Loading
Villager-POI-Lookups scannen Chunks nach gültigen Betten und Arbeitsstätten. Sind diese Chunks nicht geladen, wird der Lookup verschoben — was eine konstante Wiederholungsschleife erzeugt.
In paper-world.yml:
chunks:
max-auto-save-chunks-per-tick: 24
Halte Trading-Halls in immer geladenen Chunks, indem du Papers eingebautes Chunk-Loading oder ein Plugin wie Chunky in Kombination mit force-load-Befehlen nutzt:
/minecraft:forceload add <x1> <z1> <x2> <z2>
Immer geladene Chunks eliminieren die Wiederholungsschleife und lassen Dorfbewohner ihre POI-Bedürfnisse sofort auflösen.
Purpur — Zusätzliche Villager-Kontrolle
Wenn du Purpur verwendest, hast du über purpur.yml noch feingranularere Kontrolle:
world-settings:
default:
mobs:
villager:
brain-ticks: 4
use-vanilla-brain: false
can-breed: true
minimum-demand: 0
max-demand-increase-per-trade: 1
brain-ticks: 4 bedeutet, dass das Villager-Brain nur alle 4 Ticks aktualisiert wird statt jeden Tick — eine 4-fache Reduzierung der KI-Kosten mit minimalem Gameplay-Einfluss. Niedrigere Werte steigern die Performance, machen Dorfbewohner aber möglicherweise etwas weniger reaktionsfähig.
Villager-Einfluss mit Spark überwachen
Verwende Spark, um deinen Server vor und nach den Änderungen zu profilieren:
/spark profiler start
/spark profiler stop
Suche im Flame-Graph nach EntityVillager im Tick-Bereich. Wenn dieser mehr als 10-15% deiner Tick-Zeit verbraucht, werden die oben genannten Optimierungen einen messbaren Effekt haben.
Tools wie [PulseNode](https://pulsenode.tech) helfen dir, TPS-Trends über Zeit zu verfolgen, sodass du genau siehst, wie viel Verbesserung jede Konfigurationsänderung bringt — ohne jedes Mal manuell einen Profiler starten zu müssen.
Schnellübersicht: Wichtige Einstellungen
| Einstellung | Datei | Empfohlener Wert |
|---|---|---|
| lobotomize.enabled | paper-world.yml | true |
| tick-inactive-villagers | spigot.yml | false |
| entity-activation-range.villagers | bukkit.yml | 16 |
| brain-ticks | purpur.yml | 4 |
| Villager-Anzahl | Build-Design | Minimum notwendig |
Fazit
Villager-Lag ist eines der häufigsten — und am besten behebbaren — Leistungsprobleme auf Survival- und Economy-Servern. Die Kombination aus Papers Lobotomie-Feature, reduzierten Aktivierungsreichweiten und einem durchdachten Trading-Hall-Design kann den Villager-CPU-Verbrauch um 60-80% senken, ohne das Spielerlebnis merklich zu beeinträchtigen.
Beginne mit lobotomize: true und tick-inactive-villagers: false — diese beiden Änderungen allein werden auf den meisten Servern einen spürbaren Unterschied machen. Profiliere dann mit Spark, um weitere Optimierungspotenziale zu entdecken.
---
Du möchtest deine TPS-Verbesserungen ohne ständiges manuelles Profiling verfolgen? [PulseNode](https://pulsenode.tech) überwacht die Performance deines Servers in Echtzeit und benachrichtigt dich, wenn Villager-bezogener Lag (oder ein anderes Problem) deine Spieler beeinträchtigt.