Ekran Kartlı Sunucu Satışları Başladı. İncele
Performans ve Optimizasyon

paper.yml, spigot.yml ve bukkit.yml Optimizasyon Rehberi

Paper config dosyalarındaki performans ayarları tek tek açıklandı: entity activation range, merge radius, mob spawn limitleri ve önerilen değerler.

  • 7 dk okuma
  • Güncelleme:
  • Yayın:
  • Batihost Teknik Ekibi

Kısaca Özet

  • Paper’ın yapılandırması güncel sürümlerde ikiye ayrılır: config/paper-global.yml (sunucu geneli) ve config/paper-world-defaults.yml (dünya ayarları). Eski tek dosyalı paper.yml artık kullanılmaz.
  • En yüksek kazancı entity-activation-range, merge-radius, hopper tick aralıkları ve mob spawn limitleri sağlar.
  • spigot.yml entity ve mob davranışını, bukkit.yml ise global spawn limitlerini ve autosave aralığını yönetir.
  • Her değişiklikten sonra spark ile ölçün; kazanç sağlamayan ayarı config’de bırakmayın.

paper.yml, spigot.yml ve bukkit.yml optimizasyonu, sunucunuzun tick başına yaptığı işi doğrudan azaltmanın en pratik yoludur. Doğru ayarlanmış bir config, aynı donanımda taşınabilecek oyuncu sayısını belirgin şekilde artırır. Bu sayfada her ayarın ne yaptığını, önerilen değerini ve oyun deneyimine etkisini tek tek açıklıyoruz.

Baştan bir uyarı: bu sayfadaki değerleri toplu kopyalayıp yapıştırmayın. Skyblock sunucusunda mükemmel çalışan bir ayar, teknik survival sunucusunda oyuncuların çiftliklerini bozabilir. Her başlığı okuyup kendi sunucunuza uygun olanı seçin.

Dosyalar Nerede ve Ne İşe Yarıyor?#

Güncel Paper sürümlerinde yapılandırma dosyaları yeniden düzenlendi. Eski tek dosyalı paper.yml kaldırıldı.

DosyaKapsamTipik içerik
server.propertiesVanilla temel ayarlarview-distance, port, max-players
bukkit.ymlBukkit API genelispawn-limits, ticks-per, chunk-gc
spigot.ymlSpigot dünya ayarlarıentity-activation-range, merge-radius, hopper
config/paper-global.ymlPaper sunucu genelichunk-system, packet-limiter, misc
config/paper-world-defaults.ymlTüm dünyalar için varsayılanchunks, entities, collisions, environment
world/paper-world.ymlTek dünya için özelVarsayılanları ezen değerler
purpur.ymlPurpur ek ayarlarıPurpur’a özgü davranışlar
Yapılandırma dosyalarının kapsamları
BilgiDosyalar sunucu ilk kez başlatıldığında oluşur. Kurulum yapmadıysanız önce Paper sunucu kurulum rehberini takip edin. Dosyaları düzenlerken YAML biçimine dikkat edin: girinti boşluklarla verilir, sekme karakteri kullanılmaz.

bukkit.yml: Global Spawn Limitleri#

Bu dosya oyuncu başına düşen mob sayısını ve bazı zamanlama aralıklarını yönetir. Varsayılan değerler tek oyunculu deneyime yakındır ve kalabalık sunucularda gereksiz yüktür.

spawn-limits:
  monsters: 40
  animals: 8
  water-animals: 3
  water-ambient: 2
  ambient: 1
ticks-per:
  animal-spawns: 400
  monster-spawns: 4
  water-spawns: 1
  ambient-spawns: 1
  autosave: 6000
chunk-gc:
  period-in-ticks: 600
settings:
  save-user-cache-on-stop-only: true

Değerlerin anlamı:

spawn-limits.monsters
Yüklü chunk başına düşen canavar limiti. Varsayılan 70; 40’a çekmek oyun hissini bozmadan ciddi yük azaltır.
ticks-per.monster-spawns
Kaç tick’te bir canavar doğurma denemesi yapılacağı. 1 yerine 4 yapmak deneme sıklığını dörtte bire indirir.
ticks-per.autosave
Otomatik kaydetme aralığı. 6000 tick beş dakikadır; çok düşürmek disk I/O baskısı yaratır.
chunk-gc.period-in-ticks
Kullanılmayan chunk’ların bellekten atılma sıklığı. 600 tick makul bir değerdir.
save-user-cache-on-stop-only
Oyuncu önbelleğini her seferinde değil kapanışta yazar; küçük ama ücretsiz bir kazanç.
Dikkatspawn-limits değerlerini aşırı düşürmek mob farm’ları çalışmaz hâle getirir ve survival sunucularında oyuncu şikâyeti yaratır. 40 / 8 / 3 kombinasyonu dengeli bir noktadır; 20’nin altına inmeyin.

spigot.yml: Entity Yükünün Merkezi#

Bu dosya, tick süresini en çok etkileyen ayarları barındırır. Uzun süredir açık olan sunucularda entity işlemleri tick’in büyük kısmını yer.

entity-activation-range#

world-settings:
  default:
    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

Bir entity, belirtilen mesafeden uzaktaysa yapay zekâsı çalışmaz. Değerleri düşürmek en hızlı hissedilen kazancı verir. misc kategorisi item’ları, minecart’ları ve armor stand’leri kapsar; 8 makul bir alt değerdir.

wake-up-inactive bölümü, uyutulmuş entity’lerin periyodik olarak kısa süre uyandırılmasını sağlar. Bu, tamamen donmuş mob’ların oyunculara tuhaf görünmesini engeller. Değerleri fazla kısmayın.

merge-radius ve çarpışma#

world-settings:
  default:
    merge-radius:
      item: 3.5
      exp: 4.0
    max-entity-collisions: 2
    item-despawn-rate: 4000
    arrow-despawn-rate: 300
    view-distance: default
    mob-spawn-range: 6

merge-radius yere düşen itemleri birleştirerek entity sayısını azaltır. max-entity-collisions, bir entity’nin tick başına kaç çarpışma hesaplayacağını sınırlar; kalabalık mob yığınlarında büyük fark yaratır ve varsayılan 8 yerine 2 çoğu sunucu için yeterlidir.

item-despawn-rate yere düşen itemlerin kaç tick sonra kaybolacağıdır. Varsayılan 6000 (5 dakika); 4000’e indirmek birikmeyi hızlandırıp azaltır. Oyuncularınız uzun süre eşya bırakıp geri dönüyorsa bu değeri düşürmeyin.

hopper ve tick aralıkları#

world-settings:
  default:
    hopper-amount: 1
    hopper-can-load-chunks: false
    ticks-per:
      hopper-transfer: 8
      hopper-check: 8
    nerf-spawner-mobs: true
    tick-inactive-villagers: false
    growth:
      cactus-modifier: 100
      cane-modifier: 100
      wheat-modifier: 100

Hopper’lar varsayılan olarak her tick’te üstlerindeki envanteri kontrol eder. 200 hopper’lık bir sistemde bu saniyede 4000 tarama demektir. hopper-transfer ve hopper-check değerini 8 yapmak kontrol sıklığını yarıya indirir; item taşıma yavaşlar ama oyuncuların çoğu farkı hissetmez.

hopper-can-load-chunks: false ayarı, hopper’ların yüklü olmayan chunk’ları uyandırmasını engeller. Bu, kimsenin bulunmadığı bölgelerde çiftliklerin sunucuyu meşgul etmesini önler.

tick-inactive-villagers: false uzaktaki köylülerin işlem görmesini durdurur. Köylü çiftlikleri olan sunucularda ciddi kazanç sağlar.

Dikkatnerf-spawner-mobs: true spawner’dan çıkan mob’ların yapay zekâsını kapatır. XP ve item çiftliklerinin verimini değiştirdiği için survival sunucularında oyunculara duyurmadan açmayın.

paper-world-defaults.yml: Dünya Davranışları#

Paper’ın dünya ayarları, vanilla’da olmayan pek çok optimizasyon anahtarı sunar.

chunks:
  auto-save-interval: 6000
  delay-chunk-unloads-by: 10s
  max-auto-save-chunks-per-tick: 24
  prevent-moving-into-unloaded-chunks: true
collisions:
  fix-climbing-bypassing-cramming-rule: true
  max-entity-collisions: 2
entities:
  spawning:
    despawn-ranges:
      monster:
        hard: 96
        soft: 32
      creature:
        hard: 96
        soft: 32
    per-player-mob-spawns: true
    count-all-mobs-for-spawning: false
  behavior:
    disable-chest-cat-detection: true
    experience-merge-max-value: 16
    mobs-can-always-pick-up-loot:
      zombies: false
      skeletons: false
  armor-stands:
    do-collision-entity-lookups: false
    tick: false

Öne çıkan ayarlar:

per-player-mob-spawns
Mob limitlerini oyuncu başına hesaplar. Kalabalık sunucularda hem adil hem verimlidir; açık bırakın.
despawn-ranges
Mob’ların hangi mesafede kaybolacağı. hard 96, soft 32 varsayılana yakın ve dengelidir. Düşürmek mob sayısını azaltır.
armor-stands.tick: false
Armor stand’lerin tick almasını kapatır. Hologram eklentileri armor stand kullanır; bu ayar büyük sunucularda kayda değer kazanç sağlar.
disable-chest-cat-detection
Sandık açılırken üstünde kedi olup olmadığını kontrol etmeyi kapatır. Küçük ama ücretsiz bir kazanç.
delay-chunk-unloads-by
Chunk’ların hemen boşaltılmasını geciktirir; oyuncular ileri geri hareket ettiğinde tekrar tekrar yükleme yapılmasını engeller.

Redstone motoru#

misc:
  redstone-implementation: ALTERNATE_CURRENT
  update-pathfinding-on-block-update: false

Alternatif redstone motoru, karmaşık devrelerde vanilla hesaplamaya göre belirgin şekilde daha hızlıdır ve oyun davranışını korur. Redstone yoğun teknik sunucularda ilk yapılacak ayarlardandır.

update-pathfinding-on-block-update: false, her blok değişiminde mob’ların yol bulma hesabını yenilemesini engeller. Yoğun inşaat yapılan sunucularda fark yaratır.

paper-global.yml: Sunucu Geneli#

chunk-system:
  gen-parallelism: default
  io-threads: 4
  worker-threads: 6
misc:
  max-joins-per-tick: 3
  region-file-cache-size: 256
  use-alternative-luck-formula: false
packet-limiter:
  all-packets:
    action: KICK
    interval: 7.0
    max-packet-rate: 500.0
unsupported-settings:
  allow-permanent-block-break-exploits: false
  allow-piston-duplication: false

io-threads ve worker-threads, chunk sisteminin kaç iş parçacığı kullanacağını belirler. Ryzen 9 sınıfı bir işlemcide 4 / 6 makul değerlerdir. Çekirdek sayınızdan fazla vermek fayda getirmez.

max-joins-per-tick, aynı anda çok sayıda oyuncunun bağlanmasında oluşan yükü dağıtır. Sunucu yeniden başladıktan sonra herkesin birden girdiği anlarda donmayı engeller.

packet-limiter hem performans hem güvenlik ayarıdır; anormal paket gönderen istemcileri atar. Bot saldırılarına karşı ilk savunma katmanlarından biridir, ayrıntılar DDoS koruması sayfasında.

İpucuunsupported-settings altındaki istismar ayarlarını kapalı tutmak, hem sunucu ekonomisini hem performansı korur. Piston duplikasyonu açık bir sunucuda oyuncular sınırsız item üretir ve entity sayısı kontrolden çıkar.

Purpur Kullananlar İçin Ek Ayarlar#

Purpur, Paper üzerine kuruludur; tüm yukarıdaki ayarlar aynen geçerlidir. Ek olarak purpur.yml dosyasıyla kendi seçeneklerini sunar.

world-settings:
  default:
    gameplay-mechanics:
      player:
        idle-timeout:
          tick-nearby-entities: false
          count-as-sleeping: true
    mobs:
      zombie:
        aggressive-towards-villager-when-lagging: false

Purpur kurulumu ve ek özellikleri için Purpur kurulum rehberimize bakabilirsiniz. Purpur zaten Pufferfish’in performans yamalarını içerdiği için ayrıca Pufferfish aramanıza gerek yoktur.

Uygulama Sırası ve Ölçüm#

  1. Referans ölçümü alın#

    Değişikliğe başlamadan önce yoğun saatte beş dakikalık profil alın.

    spark health
    spark profiler --timeout 300 --thread server
  2. 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
    Copy-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
  3. Grup grup uygulayın#

    Önce entity ayarları, sonra hopper, sonra chunk sistemi. Aynı anda hepsini değiştirmeyin.

  4. Düzgün yeniden başlatın#

    save-all
    stop
  5. Aynı yükte tekrar ölçün ve karşılaştırın#

    Kazanç yoksa değişikliği geri alın. Anlamsız ayar biriktirmeyin.

İndirmeniz gerekenler
  • spark profilerÖlçüm için Paper / Purpur / Fabric.jarÜcretsiz
    İndir
  • Paper 26.2 sunucu jar Her platform.jar
    İndir
  • Purpur 26.2 (build 2620) Paper forku.jar
    İndir
  • Notepad++ (YAML düzenleme) Windows.exeÜcretsiz
    İndir

Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.

Sunucu Türüne Göre Öncelikler#

Sunucu türüÖnce yapılacakDikkat
Survivalentity-activation-range, merge-radiusMob farm dengesini bozmayın
Skyblockhopper tick aralıkları, nerf-spawner-mobsAda başına entity limiti eklenti ile
Minigamearmor-stands.tick, spawn-limitsHologram sayısını sınırlayın
Creative / yapıupdate-pathfinding-on-block-updateMob spawn tamamen kapatılabilir
Teknik / redstoneALTERNATE_CURRENT redstone motorunerf-spawner-mobs açmayın
ModpackLithium ve FerriteCore modlarıMod ayarları da gözden geçirilmeli
Sunucu türüne göre öncelikli ayarlar

Ayarlarınızı uyguladıktan sonra hâlâ TPS sorunu yaşıyorsanız sıradaki adım TPS düşüklüğü teşhis rehberidir. Genel optimizasyon stratejisi için ana rehbere, mesafe ayarları için view distance sayfasına bakın. Config yeterli gelmiyorsa donanım tarafına geçmenin vakti gelmiştir; yüksek frekanslı Ryzen VDS bu noktada doğru adımdır.

Özetle#

Paper ekosisteminde config optimizasyonu dört dosyada toplanır: bukkit.yml global spawn limitlerini, spigot.yml entity ve hopper davranışını, paper-world-defaults.yml dünya mekaniklerini, paper-global.yml ise sunucu geneli sistem ayarlarını yönetir.

En yüksek kazancı entity-activation-range değerlerini düşürmek, merge-radius ile item birleştirmek, hopper kontrol sıklığını azaltmak ve mob spawn limitlerini gerçekçi seviyeye çekmek sağlar. Armor stand tick’ini kapatmak ve alternatif redstone motoruna geçmek de ücretsiz kazançlardır. Her değişikliği tek tek uygulayın, aynı yük altında ölçün ve kazanç sağlamayan ayarı config’de bırakmayın.

Sıkça Sorulan Sorular#

paper.yml nerede, neden bulamıyorum?

Güncel Paper sürümlerinde tek dosyalı paper.yml kaldırıldı. Ayarlar config/paper-global.yml ve config/paper-world-defaults.yml dosyalarına bölündü; dünya bazında değişiklik için world/paper-world.yml kullanılır. Eski rehberlerdeki paper.yml yolları bu yüzden çalışmaz, ayar adları ise büyük ölçüde aynı kalmıştır.

entity-activation-range ne yapar?

Bir entity’nin oyuncudan hangi mesafeye kadar aktif tick alacağını belirler. Bu mesafenin dışındaki mob’lar yapay zekâ çalıştırmaz, sadece varlığını korur. Değerleri düşürmek genellikle en hızlı hissedilen TPS kazancını sağlar; animals 16, monsters 24, misc 8 pratikte iyi çalışan değerlerdir.

merge-radius değerini ne kadar artırabilirim?

Item için 3.5, deneyim küresi için 4.0 üst sınır olarak kabul edilmelidir. Daha yüksek değerler entity sayısını daha da azaltır ama oyuncular item toplarken tuhaf davranışlar fark etmeye başlar; uzaktaki itemler ansızın birleşerek yer değiştirir. Kazanç ile deneyim arasındaki denge bu değerlerde kurulur.

nerf-spawner-mobs açmalı mıyım?

Sunucunuzun türüne bağlı. Bu ayar spawner’dan çıkan mob’ların yapay zekâsını kapatır ve ciddi CPU tasarrufu sağlar, ancak XP ve item çiftliklerinin verimini değiştirir. Survival ekonomisi mob grinder’lara dayanıyorsa oyunculara önceden duyurun; minigame ve skyblock sunucularında genellikle sorunsuzdur.

Ayarları değiştirdikten sonra yeniden başlatmak şart mı?

Evet, güvenli yol yeniden başlatmaktır. Bazı ayarlar /paper reload ile uygulanabilir ama tüm değerler bu şekilde okunmaz ve karışık bir duruma yol açabilir. Değişiklikleri toplu yapıp save-all ardından stop komutuyla düzgün kapatın, sonra tekrar başlatın.

Hazır optimizasyon config’i indirip kullanabilir miyim?

Kullanabilirsiniz ama körlemesine kopyalamayın. İnternetteki hazır dosyalar genellikle agresif değerler içerir ve oyun deneyimini bozan ayarları da beraberinde getirir. Her ayarı anlayarak ekleyin ve etkisini ölçün; bir yıl sonra neden orada olduğunu bilmediğiniz yüz satırlık config, teşhisi imkânsızlaştırır.

Bu ayarlar Purpur’da da geçerli mi?

Evet. Purpur, Paper üzerine kurulu olduğu için tüm Paper ve Spigot ayarları aynen çalışır. Purpur ayrıca purpur.yml dosyasıyla ek ayarlar sunar. Aynı durum Pufferfish yamalarını içeren yapılar için de geçerlidir; Purpur zaten bu yamaları barındırır.

Performans ve Optimizasyon — Tüm Rehberler#

  1. Minecraft Sunucu Optimizasyonu: TPS’i 20’de Tutma Rehberi
  2. Minecraft TPS Düşüklüğü ve Çözüm Yolları
  3. Minecraft Sunucu Lag Sorunu Nasıl Çözülür?
  4. Spark ve Timings Raporu ile Minecraft Performans Analizi
  5. Minecraft Sunucusu Kaç GB RAM İster? (Oyuncu Sayısına Göre Tablo)
  6. Minecraft Sunucusu İçin Doğru Donanım Nasıl Seçilir?
  7. Minecraft View Distance ve Simulation Distance Ayarları
  8. paper.yml, spigot.yml ve bukkit.yml Optimizasyon Rehberi

Bu rehber Batihost teknik ekibi tarafından hazırlanmış ve tarihinde güncellenmiştir. Eksik veya hatalı bulduğunuz bir bilgi varsa bize bildirin.

Başa dön