Minecraft entity limit ayarları, sunucunun her tick’te kaç varlığı işleyeceğini belirler ve TPS düşüklüğünün en sık görülen sebebidir. Mob’lar, yere düşen eşyalar, deneyim küreleri, minecart’lar, armor stand’ler ve fırlatılan mermiler; hepsi entity’dir ve hepsinin tick bütçesinde bir maliyeti vardır.
İşin can sıkıcı tarafı, bu ayarların tek bir dosyada toplanmamış olması. Mob tavanı bukkit.yml’de, spawn alanı ve yapay zekâ mesafesi spigot.yml’de, oyuncu başına spawn ve despawn mesafeleri ise config/paper-world-defaults.yml’de durur. Üçünün ne yaptığını bilmeden birini kısarsanız lag azalmaz, sadece oyuncularınızın çiftlikleri durur.
Aşağıda her dosyayı ayrı ayrı, hangi değeri düşürmenin neyi bozduğuyla birlikte anlatıyoruz. Sonunda da dosya, anahtar, varsayılan ve önerilen değerleri tek tabloda topladık.
Entity Nedir, Tick Bütçesini Nasıl Yer?#
Sunucu saniyede 20 tick çalışır; her tick’in bütçesi 50 milisaniyedir. Bu 50 ms içinde chunk yükleme, redstone, blok güncellemesi, oyuncu hareketi ve entity işlemleri sırayla tamamlanmak zorundadır. Tamamlanamazsa tick uzar, TPS 20’nin altına düşer ve konsolda o meşhur uyarı belirir. Kavramın tamamı için tick, TPS ve MSPT sayfamıza bakabilirsiniz.
Bir mob her tick’te şunları yapar: yol bulma hesabı, hedef arama, çarpışma kontrolü, çevredeki blokları tarama, ışık ve hava kontrolü. Bunların bazıları tek başına ucuzdur ama 400 mob ile çarpınca ucuz kalmaz. Yere düşen eşyalar daha basittir, yine de fizik ve birleşme kontrolü isterler.
Entity yükünü azaltmanın üç yolu vardır ve bu sayfadaki bütün ayarlar üçünden birine girer:
- Daha az doğsun: spawn limitleri ve spawn deneme sıklığı (bukkit.yml).
- Daha dar alanda doğsun: mob-spawn-range (spigot.yml).
- Doğan daha az iş yapsın: entity-activation-range, despawn mesafeleri, merge-radius.
Üç Dosya, Üç Ayrı Görev#
Hangi ayarın nerede olduğunu karıştırmak çok yaygın. İnternetteki eski rehberler tek dosyalı paper.yml’den bahseder; o yapı artık yok, ayarlar config/ klasörüne bölündü.
| Dosya | Sorumlu olduğu şey | Bu sayfadaki anahtarlar |
|---|---|---|
bukkit.yml | Global mob tavanı ve spawn zamanlaması | spawn-limits, ticks-per |
spigot.yml | Spawn alanı, yapay zekâ mesafesi, item davranışı | mob-spawn-range, entity-activation-range, merge-radius |
config/paper-world-defaults.yml | Dünya bazlı Paper davranışları | per-player-mob-spawns, despawn-ranges, armor-stands |
world/paper-world.yml | Tek bir dünya için istisna | Varsayılanları ezen değerler |
bukkit.yml: Mob Tavanını Belirleyen Dosya#
Vanilla Minecraft’ta mob tavanı şu formülle hesaplanır: kategori limiti × yüklü chunk sayısı ÷ 289. Vanilla kategori limitleri monster için 70, pasif yaratıklar için 10, yarasa gibi ambient mob’lar için 15, su yaratıkları için 5’tir. Paper, Spigot ve Purpur sunucularda bu rakamlar vanilla’dan değil bukkit.yml’den okunur.
spawn-limits:
monsters: 40
animals: 8
water-animals: 3
water-ambient: 2
water-underground-creature: 3
axolotls: 3
ambient: 1
ticks-per:
animal-spawns: 400
monster-spawns: 2
water-spawns: 1
ambient-spawns: 1
autosave: 6000
ticks-per.monster-spawns satırı sık atlanır ama etkisi büyüktür. Varsayılanı 1’dir, yani sunucu her tick’te canavar doğurma denemesi yapar. Bu değeri 2 yapmak deneme sıklığını yarıya, 4 yapmak dörtte bire indirir. CPU tarafında ciddi kazanç, çiftlik tarafında ise doğrudan verim kaybı demektir.
animal-spawns: 400 zaten yüksektir, dokunmanıza gerek yok. Pasif mob’lar 20 saniyede bir denenir ve nadiren sorun çıkarır.
spawn-limits.monsters değerini 20’nin altına indirmeyin. Bu noktadan sonra mob çiftlikleri vanilla hızının çok altına düşer ve survival sunucularında oyuncular “sunucu bozuk” diye ticket açmaya başlar. 40 / 8 / 3 kombinasyonu dengeli bir başlangıçtır.spigot.yml: Spawn Alanı ve Yapay Zekâ Mesafesi#
mob-spawn-range#
Bu değer, oyuncunun etrafında kaç chunk yarıçapında spawn denemesi yapılacağını belirler. Varsayılanı 8’dir ve vanilla’nın 128 bloklik spawn küresine karşılık gelir (128 blok = 8 chunk). Eski config dosyalarında 4 olarak da görülebilir.
world-settings:
default:
mob-spawn-range: 6
entity-activation-range:
animals: 16
monsters: 24
raiders: 40
misc: 8
water: 8
villagers: 16
flying-monsters: 32
wake-up-inactive:
animals-max-per-tick: 2
animals-every: 1200
animals-for: 100
monsters-max-per-tick: 4
monsters-every: 400
monsters-for: 100
Değeri düşürmek spawn algoritmasının taradığı hacmi küçültür, yani CPU tasarrufu sağlar. Bedeli şudur: oyuncudan uzakta kurulmuş bir çiftlik artık spawn alanının dışında kalabilir. 6 genel amaçlı sunucular için makul, 4 ise agresiftir. Mob farm kültürü olan bir survival sunucusu işletiyorsanız 6’nın altına inmeyin.
entity-activation-range: Mob’u Donduran Ayar#
Bu ayar, bu sayfadaki en yüksek getirili değerdir. Belirtilen mesafeden uzaktaki entity’ler tick almaz: yol bulma yapmaz, hedef aramaz, hareket etmez. Var olmaya devam ederler, envanterleri ve konumları korunur, sadece dururlar. Oyuncu menzile girdiğinde kaldıkları yerden devam ederler.
Varsayılanlar animals 32, monsters 32, misc 16 civarındadır. Bunları 16 / 24 / 8’e çekmek çoğu sunucuda anında hissedilen bir MSPT düşüşü verir. misc kategorisi yere düşen eşyaları, minecart’ları ve armor stand’leri kapsar; kalabalık depo odalarında en çok bu satır fark yaratır.
wake-up-inactive bölümü, dondurulmuş mob’ların periyodik olarak kısa süre uyandırılmasını sağlar. Bu olmasaydı uzaktan bakıldığında tamamen taş kesilmiş mob sürüleri görürdünüz. Değerleri fazla kısarsanız oyuncular “moblar donuyor” diye şikâyet eder, çünkü gerçekten donuyor olurlar.
paper-world-defaults.yml: Oyuncu Başına Spawn ve Despawn#
Paper’ın dünya ayarları vanilla’da bulunmayan iki kritik anahtar sunar. İkisi de mob yoğunluğunu doğrudan etkiler.
entities:
spawning:
per-player-mob-spawns: true
count-all-mobs-for-spawning: false
despawn-ranges:
monster:
soft: 32
hard: 96
creature:
soft: 32
hard: 96
ambient:
soft: 32
hard: 96
armor-stands:
tick: false
do-collision-entity-lookups: false
behavior:
experience-merge-max-value: 16
disable-chest-cat-detection: true
per-player-mob-spawns varsayılan olarak true’dur ve bukkit.yml’deki mob tavanının sunucu geneli yerine her oyuncu için ayrı sayılmasını sağlar. Eski Bukkit davranışında tek bir oyuncunun çevresindeki mob’lar tüm sunucunun tavanını doldurabiliyordu; bu ayar o adaletsizliği bitirir. Açık bırakın.
despawn-ranges ise mob’ların hangi mesafede kaybolacağını belirler. Vanilla karşılığı soft 32 / hard 128’dir: 128 bloktan uzaktaki kalıcı olmayan mob’lar anında silinir, 32-128 blok arasındakiler her tick küçük bir ihtimalle silinir, 32 blok içindekiler mesafeden dolayı silinmez.
Optimizasyon rehberlerinin sevdiği hard: 72 gibi değerler entity sayısını gerçekten düşürür. Ama aynı zamanda 72 bloktan uzaktaki her mob’u anında yok eder; AFK noktası çiftlik platformuna 80 blok uzakta olan oyuncunun çiftliği o anda çalışmayı bırakır. hard: 96 makul bir orta yoldur. Soft değerini 32’nin altına çekmeyi hiç denemeyin.
Yerdeki Eşyalar: merge-radius, despawn ve Çarpışma#
Mob’lar tek suçlu değildir. Uzun süredir açık bir survival sunucusunda yere düşen eşyalar, deneyim küreleri ve okların toplamı çoğu zaman mob sayısını geçer.
world-settings:
default:
merge-radius:
item: 3.5
exp: 4.0
item-despawn-rate: 4000
arrow-despawn-rate: 300
max-entity-collisions: 2
merge-radius yakındaki aynı türden eşyaları tek entity’de birleştirir. Item için 3.5, deneyim küresi için 4.0 pratikte üst sınır kabul edilir; daha yükseğinde oyuncular uzaktaki eşyaların ansızın yer değiştirip birleştiğini fark etmeye başlar.
max-entity-collisions, bir entity’nin tick başına kaç çarpışma hesaplayacağını sınırlar. Varsayılan 8’dir; 2’ye çekmek kalabalık mob yığınlarında (özellikle kapalı alanda üst üste binmiş çiftlik mob’larında) belirgin kazanç verir.
arrow-despawn-rate varsayılanı 1200 tick’tir. Skeleton çiftliği olan sunucularda 300’e çekmek, kimsenin toplamayacağı yüzlerce oku bir dakikada temizler. Yere biriken eşyaları düzenli temizlemek için ayrıca entity temizleme eklentilerine bakabilirsiniz; ama temizleme eklentisi ayar hatasının üstünü örtmek için kullanılırsa sorunu değil belirtiyi tedavi etmiş olursunuz.
Tek Bakışta Ayar Tablosu#
Aşağıdaki tablo bu sayfadaki bütün anahtarları toplar. “Önerilen” sütunu 10-30 oyunculu, eklentili genel amaçlı bir Paper sunucusu içindir; teknik survival sunucusunda daha yumuşak, minigame sunucusunda daha agresif davranabilirsiniz.
| Dosya | Anahtar | Varsayılan | Önerilen | Etkisi |
|---|---|---|---|---|
| bukkit.yml | spawn-limits.monsters | 70 | 40 | Canavar tavanı düşer, çiftlik verimi bir miktar azalır |
| bukkit.yml | spawn-limits.animals | 10 | 8 | Hayvan yoğunluğu azalır, üretmeyi etkilemez |
| bukkit.yml | spawn-limits.ambient | 15 | 1 | Yarasa yükü kalkar, oyun hissi değişmez |
| bukkit.yml | ticks-per.monster-spawns | 1 | 2 | Spawn denemesi yarıya iner, CPU rahatlar |
| spigot.yml | mob-spawn-range | 8 | 6 | Spawn alanı daralır, uzak çiftlikler yavaşlar |
| spigot.yml | entity-activation-range.animals | 32 | 16 | Uzaktaki hayvanlar dondurulur |
| spigot.yml | entity-activation-range.monsters | 32 | 24 | En yüksek getirili ayar, mob silinmez |
| spigot.yml | entity-activation-range.misc | 16 | 8 | Item, minecart ve armor stand yükü düşer |
| spigot.yml | merge-radius.item | 2.5 | 3.5 | Yerdeki eşyalar birleşir, entity sayısı azalır |
| spigot.yml | item-despawn-rate | 6000 | 4000 | Eşyalar erken kaybolur, oyuncu şikâyeti riski var |
| spigot.yml | arrow-despawn-rate | 1200 | 300 | Ok birikmesi biter |
| spigot.yml | max-entity-collisions | 8 | 2 | Yığılmış mob’larda büyük kazanç |
| paper-world-defaults.yml | per-player-mob-spawns | true | true | Limit oyuncu başına sayılır, açık kalsın |
| paper-world-defaults.yml | despawn-ranges.monster.soft | 32 | 32 | Düşürmeyin, çiftlikleri bozar |
| paper-world-defaults.yml | despawn-ranges.monster.hard | 128 | 96 | Uzak mob’lar temizlenir, AFK mesafesine dikkat |
| paper-world-defaults.yml | count-all-mobs-for-spawning | false | false | Vanilla’ya yakın davranış, değiştirmeyin |
| paper-world-defaults.yml | armor-stands.tick | true | false | Hologram ve dekor yükü kalkar |
Hangi Değeri Düşürmek Neyi Bozar?#
Optimizasyon aslında bir pazarlıktır: her kazanç bir şeyden feragat eder. Destek taleplerinde en sık gördüğümüz şey, sunucu sahibinin internetten bulduğu hazır config’i yapıştırıp bir hafta sonra “çiftlikler çalışmıyor” şikâyetleriyle uğraşması. Aşağıdaki liste hangi ayarın neyi bozduğunu açık açık söylüyor.
- spawn-limits.monsters
- Düşürünce mob çiftliği verimi doğrudan düşer. 40 fark edilmez, 25 fark edilir, 15 çiftlikleri işlevsiz kılar.
- ticks-per.monster-spawns
- Büyütünce spawn hızı düşer. 2 makul, 4 agresif, 8 çiftlikleri durdurur.
- mob-spawn-range
- Düşürünce oyuncudan uzaktaki çiftlikler spawn alanının dışında kalır. AFK noktası ile platform arası mesafe kritik hâle gelir.
- entity-activation-range
- Düşürünce mob’lar uzaktan donmuş görünür. Çiftlik verimini neredeyse etkilemez; en güvenli kısma noktası budur.
- despawn-ranges.hard
- Düşürünce uzaktaki mob’lar anında silinir. Çiftlik verimini en sert vuran ayar burasıdır.
- item-despawn-rate
- Düşürünce oyuncu ölüp geri döndüğünde eşyalarını bulamayabilir. Ölüm sandığı eklentisi yoksa dokunmayın.
- merge-radius
- Yükseltince eşyalar uzaktan birleşip yer değiştirir. 3.5 üstü tuhaf görünmeye başlar.
Bir de şu var: çiftlik şikâyetinin sebebi her zaman sunucu ayarı değildir. Mob tavanı, çiftliğin 128 blok çevresindeki aydınlatılmamış mağaralarla paylaşılır. Karanlık bir mağara sistemi tavanı doldurduğunda çiftlik boşta kalır. Ayarlara dokunmadan önce çiftlik çevresindeki mağaraların kapatılıp kapatılmadığını sorun; işin aslı vakaların önemli bir kısmı burada çözülüyor.
Ölçmeden Ayar Değiştirmeyin#
Ölçüm yapmadan yapılan ayar değişikliği iki zarar verir. Birincisi, kazanç sağlamayan ayarlar config’de birikir ve bir yıl sonra kimse neyin neden orada olduğunu bilemez. İkincisi, asıl sorun başka yerdeyken (bir eklentinin yavaş sorgusu, chunk üretimi, disk I/O) entity ayarlarını kısmak sadece oyun deneyimini bozar, TPS’i düzeltmez.
-
Referans ölçümü alın#
Değişiklikten önce, yoğun saatte beş dakikalık profil alın. Rapordaki entity sayımına ve MSPT dağılımına bakın.
spark health spark tps spark profiler --timeout 300 --thread server -
Config dosyalarının yedeğini alın#
Geri dönebilmek için mevcut dosyaları kopyalayın.
cp -r /opt/minecraft/config /opt/minecraft/config.yedek cp /opt/minecraft/spigot.yml /opt/minecraft/spigot.yml.yedek cp /opt/minecraft/bukkit.yml /opt/minecraft/bukkit.yml.yedekCopy-Item C:\minecraft\server\config -Destination C:\minecraft\server\config.yedek -Recurse Copy-Item C:\minecraft\server\spigot.yml C:\minecraft\server\spigot.yml.yedek -
Tek grup değiştirin#
Önce yalnızca entity-activation-range. Aynı anda hem spawn limitlerini hem despawn mesafelerini değiştirirseniz hangi ayarın işe yaradığını asla bilemezsiniz.
-
Düzgün yeniden başlatın#
save-all stop -
Aynı yükte tekrar ölçün#
Aynı oyuncu sayısı, aynı saat. Kazanç yoksa değişikliği geri alın ve bir sonraki gruba geçin.
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.
Sunucu Türüne Göre Ne Yapmalı?#
Aynı değerler her sunucuya uymaz. Skyblock sunucusunda mükemmel çalışan bir ayar, teknik survival sunucusunda isyan çıkarır.
| Sunucu türü | Öncelik | Kaçınılması gereken |
|---|---|---|
| Survival / SMP | entity-activation-range, merge-radius | despawn-ranges kısmak |
| Teknik / redstone | max-entity-collisions, armor-stands.tick | spawn-limits ve mob-spawn-range kısmak |
| Skyblock | spawn-limits, item-despawn-rate | Ada başına limitsiz spawner bırakmak |
| Minigame | armor-stands.tick, ambient limiti | Hologram sayısını denetimsiz bırakmak |
| Creative / yapı | Mob spawn tamamen kapatılabilir | Gereksiz entity ayarıyla uğraşmak |
Entity ayarlarını sıkılaştırdığınız hâlde TPS hala düzelmiyorsa sorun büyük ihtimalle başka yerde. Sıradaki durak TPS düşüklüğü teşhis rehberi ve depolama sistemlerini yoran hopper lag sayfası olmalı. Görüş mesafesi tarafı da entity yükünü doğrudan etkiler; view distance ve simulation distance ayarlarını gözden geçirin. Config sınırına dayandıysanız işin donanım tarafına geçmenin vakti gelmiştir: Minecraft’ın ana tick döngüsü tek çekirdekte çalıştığı için çekirdek sayısı değil saat hızı belirleyicidir ve yüksek frekanslı Ryzen VDS bu noktada en somut çözümdür.
Özetle#
Entity limitleri üç dosyaya bölünmüştür ve her biri farklı bir aşamaya müdahale eder: bukkit.yml kaç mob doğacağını, spigot.yml nerede doğacağını ve doğanın ne kadar çalışacağını, config/paper-world-defaults.yml ise limitin nasıl sayılacağını ve mob’un ne zaman kaybolacağını belirler.
Kısmaya en güvenli yerden başlayın: entity-activation-range. Bu ayar mob’u silmez, sadece uzaktayken dondurur; çiftlik verimine dokunmadan en yüksek kazancı verir. Sonra merge-radius ve max-entity-collisions gelir. Spawn limitlerine ve özellikle despawn mesafelerine en son dokunun, çünkü oyuncularınızın çiftliklerini bozan ayarlar bunlardır.
Ve her değişikliği ölçün. Ölçmeden yapılan optimizasyon, config’e biriken ve kimsenin dokunmaya cesaret edemediği bir yığın satırdan başka birşey üretmez.