vProject
Bir Kömür Göründü Kaptanım!
Modern Minecraft sürümleri (1.20.x - 1.21+) artık sadece RAM vererek kurtarılamayacak kadar ağırlaştı. Eğer TPS değerlerin oyuncu sayısı arttıkça düşüyorsa, sorun makinede değil, yapılandırmandadır. Bu rehberde JVM derinliklerinden başlayıp spigot.yml'nin en gizli ayarlarana kadar her şeyi optimize edeceğiz.
Bukkit dosyası, sunucunun ana limitlerini belirler. Burada yapılacak en ufak hata işlemciyi sömürür.
Önemli: spawn-limits değerlerini düşürmek, TPS'i en çok rahatlatan işlemdir. Oyuncu deneyimini bozmadan canavar sayısını 50'ye çekmek CPU üzerindeki yükü %20 azaltır.
Spigot, özellikle entity (varlık) işleme konusunda en kritik ayarları barındırır.
Eğer Paper veya Purpur kullanıyorsanız (ki kullanmalısınız), paper-world-defaults.yml içinde şu ayarı mutlaka yapın:
Sunucunuzun Java ile daha hızlı konuşması için Linux çekirdeğine bir komut verelim:
🛠 Bölüm 1: JVM ve Java 21 "God-Tier" Başlatma Kodları
Java 21, Generational ZGC ile Minecraft dünyasında devrim yaptı. Eski tip G1GC ayarlarını (Aikar's Flags) unutun. 12GB RAM ve üzeri sunucular için "altın standart" şudur:
Bash:
java -Xms12G -Xmx12G -XX:+UseZGC -XX:+ZGenerational -XX:MaxGCPauseMillis=5 -XX:+UnlockDiagnosticVMOptions -XX:+DoEscapeAnalysis -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:CICompilerCount=4 -jar server.jar nogui
Neden Bu Parametreler?
- -XX:+ZGenerational: Nesneleri yaşlarına göre ayırır. Kısa ömürlü paket verilerini ana thread'i yormadan saniyeler içinde temizler.
- -XX:MaxGCPauseMillis=5: Çöp toplama duraklamasını 5ms altına indirir. Oyuncu "anlık takılma" yaşamaz.
- -XX:+DoEscapeAnalysis: Gereksiz objelerin RAM'e çıkmasını engeller, doğrudan işlemci seviyesinde işlenmesini sağlar.
Bölüm 2:
Bukkit dosyası, sunucunun ana limitlerini belirler. Burada yapılacak en ufak hata işlemciyi sömürür.
Kod:
settings:
allow-end: true
permissions-file: permissions.yml
update-folder: update
plugin-profiling: false
connection-throttle: 4000
query-plugins: false
deprecated-verbose: false
shutdown-message: Sunucu kapaniyor.
spawn-limits:
monsters: 50 # (Varsayılan 70 gereksiz yüksek)
animals: 8
water-animals: 3
ambient: 1
ticks-per:
animal-spawns: 400
monster-spawns: 5
water-spawns: 400
ambient-spawns: 400
chunk-gc:
period-in-ticks: 600
Bölüm 3:
Spigot, özellikle entity (varlık) işleme konusunda en kritik ayarları barındırır.Entity Activation Range (Varlık Aktivasyon Mesafesi)
Bu ayar, bir canavarın kaç blok ötedeyken yapay zekasının çalışacağını belirler.
Kod:
entity-activation-range:
animals: 16
monsters: 24
raiders: 32
misc: 8
tick-inactive-villagers: false # Köylü lagını bitiren ayar!
Merging Items (Yerdeki Eşyaları Birleştirme)
Yerdeki eşyalar (drop) sunucuyu çok yorar. Bunları birleştirerek entity sayısını düşürün:
Kod:
merge-radius:
item: 4.0
exp: 6.0
Diğer Kritik Spigot Ayarları:
- mob-spawn-range: 6 (Oyuncunun 6 chunk ötesinde canavar doğmasın).
- nerf-spawner-mobs: true (Spawner'dan çıkan canavarların yapay zekasını kapatır, lagı bitirir).
- arrow-despawn-rate: 300 (Oklar yerde 15 saniye kalsın, 1 dakika değil).
Bölüm 4: Paper / Purpur Özel Ayarları
Eğer Paper veya Purpur kullanıyorsanız (ki kullanmalısınız), paper-world-defaults.yml içinde şu ayarı mutlaka yapın:- max-auto-save-chunks-per-tick: 6 (Dünya kaydedilirken yaşanan "Save Lag" olayını engeller).
- prevent-moving-into-unloaded-chunks: true (Oyuncunun yüklenmemiş chunklara girip sunucuyu çökertmesini engeller).
- anticheat.obfuscation.items.layered: true (Eğer hile koruması istiyorsanız, Engine 1 modu TPS dostudur).
Bölüm 5: İşletim Sistemi (Linux) Tweakleri
Sunucunuzun Java ile daha hızlı konuşması için Linux çekirdeğine bir komut verelim:
Python:
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
Sonuç: Özet Kontrol Listesi
- Java 21'e geç.
- ZGC flaglerini kullan.
- Entity aktivasyon mesafelerini daralt.
- Köylülerin yapay zekasını (inactive) kapat.
- Gereksiz entity limitlerini düşür.


