Purpur sunucu kurulumu, Paper’dan aldığınız performansı bir adım öteye taşımak isteyenlerin ilk durağıdır: Purpur, Paper’ın üzerine hem Pufferfish’in performans yamalarını hem de kendi yapılandırılabilir optimizasyonlarını ekleyen bir fork’tur ve 11 Ağustos 2026 itibarıyla Minecraft 26.2 için build 2620 derlemesiyle güncel durumdadır. Kurulum mantığı Paper sunucu kurulumuyla birebir aynıdır — jar’ı indirir, EULA’yı kabul eder, başlatırsınız. Fark, sunucu ilk açıldığında oluşan purpur.yml dosyasındaki ince ayar sayısındadır.
Bu rehberde önce Purpur ile Pufferfish arasındaki ilişkiyi ve 2026’daki gerçek durumu netleştiriyoruz, ardından sıfırdan bir Purpur sunucusu kuruyor, purpur.yml içindeki en çok işe yarayan ayarları açıklıyor ve Paper’dan geçiş sürecini adım adım anlatıyoruz. Anlatılan her şey Windows ve Linux’ta aynı biçimde geçerlidir; işletim sistemine özgü ayrıntılara geldiğimizde ilgili sayfaya yönlendiriyoruz.
Purpur ve Pufferfish Nedir, Aralarındaki İlişki Ne?#
Minecraft sunucu yazılımları bir soy ağacı gibi ilerler. Mojang’ın resmî server.jar dosyasının üzerine CraftBukkit, onun üzerine Spigot, onun üzerine Paper gelir. Paper bu zincirin en çok kullanılan halkasıdır çünkü hem olgun bir eklenti API’si sunar hem de vanilla’ya göre belirgin biçimde hızlıdır. Purpur ve Pufferfish ise Paper’ın çocuklarıdır.
Pufferfish#
Pufferfish, Paper’ın üzerine ağırlıklı olarak tick maliyetini azaltmaya odaklanan yamalar ekleyen bir fork’tur. En bilinen özelliği DAB (Dynamic Activation of Brain), yani oyuncudan uzaktaki canlıların yapay zekâsını daha seyrek çalıştırma mekanizmasıdır. Asenkron mob spawn’ı ve boğulma (suffocation) hesaplamalarının optimizasyonu da Pufferfish imzalıdır. Pufferfish oyun mekaniğine dokunmaz, yalnızca aynı işi daha ucuza yapmaya çalışır.
Purpur#
Purpur, Pufferfish’i upstream olarak alır. Yani Purpur indirdiğinizde Pufferfish’in performans yamaları zaten içindedir. Purpur bunun üzerine yüzlerce oyun mekaniği seçeneği ekler: binilebilir canlılar, özelleştirilebilir mob davranışları, köylü lobotomi seçeneği, yerçekimi ve blok davranışı ayarları. Bu seçeneklerin neredeyse tamamı varsayılan olarak kapalıdır; Purpur kurduğunuzda sunucunuz vanilla gibi davranmayı sürdürür, siz açtıkça değişir.
2026’da Durum: Pufferfish 26.x’e Geçmedi#
Bu rehberin en kritik bilgisi burada. Minecraft 26.1 ile gelen unobfuscation değişikliği sunucu yazılımı ekosistemini ikiye böldü. Mojang artık obfuscated sunucu jar’ı yayınlamıyor; sınıf, metot ve alan adları gerçek isimleriyle dağıtılıyor. Bu sadece bir sürüm değişimi değil, bir ABI kırılmasıdır ve her fork’un kendi kod tabanını yeniden hizalamasını gerektirdi. Bazı projeler bu geçişi yaptı, bazıları yapamadı.
| Sunucu yazılımı | 26.2 desteği | Son yayınlanan sürüm | Üretim için uygun mu? |
|---|---|---|---|
| Paper | Var | 26.2 (build #112) | Evet |
| Purpur | Var | 26.2 (build 2620) | Evet |
| Pufferfish | Yok | 1.21.10 | 26.x için hayır |
| Leaves | Yok | 1.21.11 | 26.x için hayır |
| Leaf | Erken / deneysel | 26.2 (build 17) | Önerilmez |
| Folia | Beta | 26.1.2 kararlı, 26.2 beta | Yalnızca özel senaryo |
ver/1.21 ve son commit Aralık 2025 tarihli. Bir rehber size 2026’da "Minecraft 26.2 için Pufferfish indirin" diyorsa o rehber güncel değildir. Pufferfish’in sağladığı performans avantajının tamamı Purpur’un içinde zaten mevcuttur.Hangi yazılımın hangi kullanım senaryosuna uyduğunu daha geniş biçimde Minecraft sunucu yazılımları karşılaştırması sayfasında ele aldık. Kısaca: eklentili survival, skyblock, minigame veya PvP sunucusu kuruyorsanız Paper ya da Purpur doğru tercihtir. Mod yükleyecekseniz bu aile işinize yaramaz; Forge veya Fabric tarafına geçmeniz gerekir çünkü Paper türevleri mod yükleyemez.
Donanım ve Java Gereksinimleri#
Purpur, Paper’a göre daha az kaynak tüketmez; aynı iş yükünü daha verimli işler. "Purpur kurarsam daha az RAM’le idare ederim" diye bir durum yoktur. Minecraft’ın ana tick döngüsü tek çekirdekte çalıştığı için belirleyici olan çekirdek sayısı değil saat hızıdır. Bu yüzden 32 çekirdekli düşük frekanslı bir sunucu işlemcisi yerine yüksek frekanslı AMD Ryzen 9 tercih edin.
| Oyuncu / senaryo | RAM | İşlemci | Disk | Java heap |
|---|---|---|---|---|
| 2-10 oyuncu, hafif eklentili | 8 GB | Ryzen 9 3900X ve üzeri | 50 GB NVMe | -Xms6G -Xmx6G |
| 10-30 oyuncu, eklentili Purpur | 10-12 GB | Ryzen 9 7900X | 50 GB NVMe | -Xms10G -Xmx10G |
| 30-60 oyuncu, minigame veya çok dünyalı | 16 GB | Ryzen 9 7900X / 7950X | 100 GB NVMe | -Xms14G -Xmx14G |
| 60+ oyuncu veya proxy’li sunucu ağı | 32 GB ve üzeri | Ryzen 9 7950X | 100 GB+ NVMe | -Xms28G -Xmx28G |
Oyuncu sayısına göre bellek planlamasını daha ayrıntılı görmek isterseniz Minecraft sunucusu kaç GB RAM ister sayfasındaki tabloyu inceleyin. Yüksek saat hızlı Ryzen tabanlı High CPU VDS paketleri veya hazır kurulu Minecraft sunucu paketleri 156 TL’den başlayan fiyatlarla bu profillere karşılık gelir.
Sürüme göre Java gereksinimi#
| Purpur / Minecraft sürümü | Gerekli Java | Not |
|---|---|---|
| 26.2 | Java 25 | Güncel kararlı |
| 26.1.2 | Java 25 | 26.1 hattından tek Purpur yapısı |
| 1.20.5 - 1.21.11 | Java 21 | Eski eklenti ekosistemi |
| 1.17 - 1.20.4 | Java 17 | Eski sunucular |
| 1.16.5 ve öncesi | Java 8 | Desteklenmeyen hat |
Yanlış Java sürümüyle başlatırsanız sunucu UnsupportedClassVersionError vererek kapanır. Dağıtım seçimi ve tam eşleşme tablosu için hangi Java sürümü gerekir rehberine bakın.
İndirmeniz Gerekenler#
-
Eclipse Temurin JDK 25LTS · Önerilenİndir
-
Purpur 26.2 sunucu jarGüncelİndir
-
Purpur tüm sürümler (26.1.2 dahil)İndir
-
Paper 26.2 sunucu jar (alternatif)İndir
-
spark profilerÖlçüm içinİndir
-
Pufferfish (yalnızca 1.21.x sunucular)Eski hatİndir
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden veya video açıklamalarındaki kısa linklerden jar indirmeyin.
Purpur Sunucusu Kurulumu Adım Adım#
-
Java 25’i kurun ve doğrulayın#
Sunucuya Eclipse Temurin JDK 25 kurduktan sonra sürümü doğrulayın. Çıktının ilk satırında
25.ile başlayan bir sürüm görmelisiniz.java -versionAynı komut Windows’ta Komut İstemi ve PowerShell’de, Linux’ta terminalde çalışır. Birden fazla Java sürümü kuruluysa sunucunun hangisini kullandığını mutlaka teyit edin; sistemde Java 25 kurulu olsa bile varsayılan hâlâ eski sürüm olabilir.
-
Sunucu klasörünü oluşturun ve jar’ı yerleştirin#
Sunucu dosyalarını ayrı ve boş bir klasöre koyun. Masaüstü ya da İndirilenler klasörüne kurmayın; ileride yedekleme ve taşıma işini zorlaştırır. İndirdiğiniz dosyanın adını sadeleştirin:
purpur-26.2-2620.jaryerinepurpur.jarkullanmak, her build güncellemesinde başlatma betiğini düzenlemekten sizi kurtarır.Purpur’un hangi sürümleri sunduğunu resmî API’den de kontrol edebilirsiniz:
curl -s https://api.purpurmc.org/v2/purpur -
İlk çalıştırmayı yapın ve EULA’yı kabul edin#
Sunucuyu ilk kez çalıştırdığınızda Purpur yalnızca
eula.txtdosyasını oluşturup kapanır. Bu beklenen davranıştır, hata değildir.java -Xms6G -Xmx6G -jar purpur.jar noguiOluşan
eula.txtdosyasını bir metin düzenleyiciyle açın ve son satırı şu hale getirin:eula=true -
İkinci çalıştırmayla dünyayı üretin#
Aynı komutu tekrar çalıştırın. Purpur bu kez dünyayı oluşturur;
server.properties,bukkit.yml,spigot.yml,config/paper-global.yml,config/paper-world-defaults.ymlvepurpur.ymldosyaları diske yazılır. KonsoldaDone (xx.xxx s)! For help, type "help"satırını gördüğünüzde sunucu ayaktadır. -
server.properties dosyasını yapılandırın#
Sunucuyu konsola
stopyazarak düzgün kapatın, sonra temel ayarları girin:server-port=25565 motd=Batihost Purpur Sunucusu max-players=40 view-distance=8 simulation-distance=6 online-mode=true network-compression-threshold=256 enable-command-block=false spawn-protection=0Tüm anahtarların ne işe yaradığını server.properties ayarları sayfasında tek tek açıkladık.
view-distancedeğerini 10’un üzerine çıkarmak, oyuncu başına düşen chunk yükünü hızla artırır; 8 çoğu sunucu için doğru başlangıç noktasıdır. -
Başlatma betiğini yazın ve portu açın#
Sunucuyu her seferinde elle uzun komut yazarak başlatmayın. Windows’ta
start.bat, Linux’tastart.shhazırlayın ve JVM bayraklarını oraya koyun. İşletim sistemine özgü adımlar için Windows kurulum rehberine veya Linux kurulum rehberine bakın; oturum kapansa bile sunucunun ayakta kalması, güvenlik duvarında 25565/TCP portunun açılması ve otomatik başlatma orada anlatılıyor.
version yazdığınızda "This server is running Purpur version 26.2-2620" benzeri bir satır görürsünüz. Jar’ı güncelledikten sonra doğru derlemede olduğunuzu bu komutla teyit edin; dosya adına bakmak yanıltıcı olabilir.purpur.yml ile Performans Ayarları#
Purpur’un asıl değeri purpur.yml dosyasındadır. Aşağıdaki ayarlar oyun deneyimini bozmadan tick maliyetini düşüren, kalabalık sunucularda en çok işe yarayan seçeneklerdir. Dosyanın yapısı Paper’ınkine benzer: settings genel ayarları, world-settings.default ise tüm dünyalar için geçerli varsayılanları tutar. Belirli bir dünyaya özel ayar yapmak isterseniz default yerine dünya adını yazarsınız.
DAB — canlıların yapay zekâsını seyrekleştirme#
world-settings:
default:
dab:
enabled: true
start-distance: 12
max-tick-freq: 20
activation-dist-mod: 8
start-distance, DAB’ın devreye gireceği blok mesafesidir; bu mesafenin içindeki canlılar her tick normal şekilde düşünür. max-tick-freq ise en seyrek düşünme aralığıdır. Değeri aşırı yükseltirseniz uzaktaki canlılar tepkisiz görünmeye başlar; 20 makul bir üst sınırdır. Mob farm’ı yoğun sunucularda 15-20 arası bir değerle başlayıp oyuncu geri bildirimine göre ayarlayın.
Köylü optimizasyonu (lobotomize)#
world-settings:
default:
mobs:
villager:
lobotomize:
enabled: true
check-interval: 100
brain-ticks: 1
Hareket edemeyecek şekilde sıkıştırılmış köylüler — klasik ticaret salonu tasarımları — sunucunun en pahalı yüklerinden biri olabilir çünkü her tick boşuna yol bulma hesabı yaparlar. Lobotomize açıkken bu köylüler yol bulmayı bırakır, ticaret ve iş yeri işlevleri çalışmaya devam eder. Büyük köylü çiftliği barındıran survival sunucularında tek başına birkaç TPS kazandırabilir.
Gereksiz tick’leri kapatma#
world-settings:
default:
gameplay-mechanics:
player:
idle-timeout:
mode: TICK_NOTHING
disable-observer-clocks: true
mobs:
zombie:
aggressive-towards-villager-when-lagging: false
idle-timeout.mode: TICK_NOTHING, AFK süresi dolan oyuncunun çevresinde chunk yüklemeyi ve canlı tick’lemeyi durdurur; gece boyunca AFK kalan oyuncu sayısı yüksek sunucularda etkilidir. disable-observer-clocks sonsuz döngüye giren observer saatlerini otomatik durdurarak kasıtlı lag makinelerini etkisiz hale getirir. Son satır ise sunucu zorlandığında zombilerin köylü avlama davranışını kapatarak yükü hafifletir.
Purpur ayarlarına geçmeden önce Paper tarafındaki temel optimizasyonları yaptığınızdan emin olun. Entity activation range, hopper transfer aralığı ve merge yarıçapı gibi ayarların doğru sırayla ele alınması gerekir; bunları paper.yml, spigot.yml ve bukkit.yml optimizasyon rehberinde topladık. Bütüncül yaklaşım için sunucu optimizasyonu rehberi iyi bir başlangıç noktasıdır.
JVM Bayrakları: G1GC, Aikar’s Flags ve ZGC#
Purpur’un performansını en çok etkileyen ikinci unsur JVM bayraklarıdır. Buradaki yaygın yanlış bilgiyi baştan düzeltelim: Minecraft 26.1 ile duyurulan "G1GC yerine ZGC" değişikliği istemci tarafını ilgilendirir, Minecraft Launcher’ın oyun JVM’i için geçerlidir. Sunucu jar’ının launcher’ı yoktur; sunucunun çöp toplayıcısını tamamen sizin verdiğiniz bayraklar belirler. Java 25’te G1 hâlâ JVM’in genel varsayılanıdır, yani bayraksız çalıştırılan bir 26.2 sunucusu ZGC değil G1GC kullanır. Aynı şekilde "varsayılan RAM 4 GB oldu" değişikliği de istemci tahsisidir, sunucuyla ilgisi yoktur.
Aikar’s Flags 26.x sunucularında hâlâ geçerlidir ve 8-12 GB heap için en güvenli tercihtir. 12 GB’lık bir paket için tam set:
java -Xms10G -Xmx10G \
--add-modules=jdk.incubator.vector \
-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 \
-Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true \
-jar purpur.jar nogui
Windows’ta aynı bayrakları tek satır halinde start.bat içine yazın; yukarıdaki ters bölü ile satır bölme yalnızca kabuk (shell) sözdizimidir, toplu iş dosyalarında çalışmaz. --add-modules=jdk.incubator.vector bayrağı Purpur ve Pufferfish’in SIMD tabanlı optimizasyonlarını etkinleştirdiği için bu ailede özellikle anlamlıdır.
16 GB ve üzeri heap kullanıyorsanız ZGC’yi değerlendirebilirsiniz. Doğru kullanım tek bayraktan ibarettir:
java -Xms14G -Xmx14G -XX:+UseZGC -XX:+AlwaysPreTouch -jar purpur.jar nogui
-XX:+ZGenerational bayrağını yazmayın. JEP 490 ile ZGC’nin non-generational modu kaldırıldığı için bu bayrak Java 25’te obsolete’tir ve açılışta uyarı basar. Doğru kullanım yalnızca -XX:+UseZGC şeklindedir.Heap büyüklüğü seçimi, Xms ile Xmx’in neden eşit verilmesi gerektiği ve GC karşılaştırmaları için RAM ayarları ve JVM flag’leri sayfasına bakın.
Paper’dan Purpur’a Geçiş ve Geri Dönüş#
Zaten çalışan bir Paper sunucunuz varsa geçiş beş dakikalık bir iştir; dünya biçimi, eklenti klasörü ve yapılandırma dosyaları ortaktır.
-
Sunucuyu durdurun ve tam yedek alın#
Konsolda
stopyazarak düzgün kapatın; süreci zorla sonlandırmak dünya verisini bozabilir. Ardındanworld,world_nether,world_the_end,plugins,configklasörleri ileserver.properties,ops.jsonvewhitelist.jsondosyalarını kopyalayın. Düzenli yedek planı kurmadıysanız yedekleme rehberini bu fırsatta uygulayın. -
Paper jar’ını Purpur jar’ıyla değiştirin#
Eski
paper.jardosyasını silmeyin;paper.jar.eskiolarak yeniden adlandırıp klasörde bırakın. Purpur jar’ını aynı klasörepurpur.jaradıyla koyun ve başlatma betiğindeki dosya adını güncelleyin. -
Aynı Minecraft sürümünde kaldığınızı doğrulayın#
Paper 26.2 kullanıyorsanız Purpur 26.2 indirin. Aynı anda hem sunucu yazılımını hem Minecraft sürümünü değiştirmeyin. Bir şey bozulduğunda sebebini ayırt edemezsiniz ve sürüm atlaması eklenti uyumluluğunu da kırar.
-
Başlatın, purpur.yml oluşsun#
İlk açılışta Purpur
purpur.ymldosyasını varsayılan değerlerle üretir. Bu haliyle sunucunuz Paper’la aynı davranır; hiçbir mekanik değişmez. Ayarları tek tek açmaya bu noktadan sonra, ölçerek başlayın.
paper.jar dosyasını göstermeniz yeterli. Purpur ile üretilmiş dünya verileri Paper’da da açılır; yalnızca Purpur’a özgü mekanikler devre dışı kalır.Eklenti Uyumluluğu ve 26.1 Kırılması#
Purpur, Paper API’sini olduğu gibi sunduğu için Bukkit, Spigot ve Paper eklentileri fazladan işlem gerektirmeden yüklenir. Sorun Purpur’dan değil, Minecraft 26.1’in getirdiği unobfuscation’dan gelir: NMS sınıflarına doğrudan dokunan eklentiler yeniden derlenmeden 26.1 ve sonrasında çalışmaz. Sürüm yükseltmeden önce eklenti listenizi tek tek kontrol edin.
- LuckPerms
- 26.2 tam destekli, 5.5.57 sürümüyle güncel. Yetki sistemi kuracaksanız ilk yükleyeceğiniz eklenti budur.
- WorldEdit / WorldGuard
- WorldEdit 7.4.5 ve WorldGuard 7.0.18 26.2 uyumludur. Eski 7.0.16 WorldGuard 26.2’yi kapsamaz, mutlaka güncelleyin.
- PlaceholderAPI
- 26.2’ye çıkarken 2.12.3’e güncelleyin; Paper 26.2 sürüm dizgisi yapısını değiştirdiği için eski yapılar okuyamıyor.
- EssentialsX
- Kararlı 2.22.0 resmî olarak en fazla 26.1.2’yi destekliyor. 26.2’de kullanmadan önce test sunucusunda deneyin.
- CoreProtect
- Güncel v24.0 aralığı 1.16.5-26.1.2. 26.2 henüz desteklenmiyor; grief log’u tutuyorsanız yükseltmeden önce bunu hesaba katın.
- ViaVersion
- 5.11.0 ile Paper 1.8-26.2 aralığını kapsar; eski istemcilerin yeni sunucuya bağlanmasını sağlar.
Ölçmeden Ayar Yapmayın: spark ile Doğrulama#
Purpur ayarlarını "daha hızlı olsun" diye rastgele açmak çoğu zaman fark yaratmaz, sadece oyun mekaniğini bozar. Doğru yöntem önce ölçmektir. spark eklentisini plugins klasörüne atıp sunucuyu yeniden başlattıktan sonra, oyuncu yoğunluğunun tepe yaptığı bir saatte profil alın:
/spark profiler start --timeout 300
/spark tps
/spark healthreport
Rapor, ana tick döngüsünü hangi işin meşgul ettiğini gösterir. Süre canlı yapay zekâsında geçiyorsa DAB ve villager ayarları doğrudan işinize yarar. Süre chunk üretiminde geçiyorsa Purpur ayarları bir şey değiştirmez; asıl çözüm dünya sınırı koymak ve chunk’ları önceden üretmektir. Süre bir eklentinin kendi görevlerinde geçiyorsa çözüm o eklentiyi değiştirmektir. Rapor okuma yöntemini spark ve timings analizi sayfasında ayrıntılı anlattık.
Sık Yapılan Hatalar#
- 26.x için Pufferfish aramak. Pufferfish 26.x’e geçmedi; aradığınız performans yamaları Purpur’un içinde.
- Purpur 26.1 indirmeye çalışmak. Purpur 26.1 ve 26.1.1 için jar yayınlamadı; o hattan yalnızca 26.1.2 mevcut.
- Xms ve Xmx değerlerini farklı vermek. Heap’i sürekli büyütüp küçültmek gereksiz GC baskısı yaratır. İkisini daima eşit yazın.
- Tüm RAM’i heap’e vermek. 8 GB’lık bir sunucuda
-Xmx8Gyazmayın; işletim sistemine ve JVM’in heap dışı belleğine pay bırakarak 6 GB verin. - purpur.yml’deki oyun mekaniği seçeneklerini performans ayarı sanmak. Binilebilir canlılar ve yerçekimi değişiklikleri eğlencelidir ama TPS’e katkısı yoktur.
- Yedek almadan jar değiştirmek. Sürüm geçişlerinde veri kaybı en sık bu yüzden yaşanır.
- Snapshot veya beta yapı kullanmak. 26.3 henüz çıkmadı; snapshot yapılarını oyuncuların bulunduğu sunucuda çalıştırmayın.
-DPurpur.IReallyDontWantSpam=true ekleyebilirsiniz. Bu bayrak performansı değil yalnızca log gürültüsünü etkiler.Özetle#
Purpur, Paper’ın kararlılığını ve eklenti uyumluluğunu koruyarak Pufferfish’in performans yamalarını ve kendi ince ayarlarını üstüne koyar. 2026’da Pufferfish’i ayrı bir seçenek olarak değerlendirmenize gerek yok: 26.x hattına geçmedi ve sunduğu her şey Purpur’da mevcut. Kurulum Paper ile aynıdır — Java 25, jar, EULA, ilk çalıştırma — asıl kazanç purpur.yml içindeki DAB, villager ve idle-timeout ayarlarını ölçerek, teker teker açmaktan gelir.
Donanım tarafında kısayol aramayın: en az 8 GB RAM, yüksek saat hızlı AMD Ryzen 9 işlemci ve NVMe SSD olmadan hiçbir sunucu yazılımı sizi kurtarmaz. Purpur’un yaptığı, iyi donanımdan daha fazlasını çıkarmaktır. Kurulum sırasında takılırsanız destek talebi açarak Batihost ekibinden yardım isteyebilirsiniz.