Karşılaştırma
Datapack ve plugin
18 Ekim 2026 güncellendi
Bir datapack, vanilla Minecraft'ın okuduğu JSON ve .mcfunction dosyalarından oluşan bir klasördür: tarifler, ganimet, başarımlar ve komutlar. Bir plugin ise bir Paper veya Spigot sunucusunun çalıştırdığı Java kodudur. Birçok fikir iki şekilde de yapılabilir; doğru seçim nerede çalışması gerektiğine ve mantığın ne kadar karmaşık olduğuna bağlıdır.
Bir datapack'e çok uyan bir örnek.
Bunu Codexe ile oluşturYan yana
| Datapack | Plugin | |
|---|---|---|
| Gerekenler | Hiçbir şey: vanilla yeterli | Paper, Spigot veya bir çatalı |
| Tek oyunculu | Evet | Hayır |
| Yazıldığı dil | JSON ve Minecraft komutları | Java veya Kotlin |
| İyi olduğu konular | Tarifler, ganimet tabloları, başarımlar, etiketler, dünya oluşturma, komut mekanikleri | Argümanlı komutlar, GUI'ler, ekonomiler, veritabanları, olaylar, izinler |
| Olaylara tepki verme | Sınırlı: başarımlar, predicate'ler ve her tick çalışan fonksiyonlar | Yüzlerce olay: blok kırma, sohbet, hasar, envanter tıklamaları ve daha fazlası |
| Veri saklama | Dünyada skor tabloları ve storage NBT | Dosyalar, SQLite, MySQL, Java'nın kullanabildiği her şey |
| Sürümler arasında | Biçimler sık değişir; paketlerin güncellenmesi gerekir | API kararlıdır; birçok plugin çalışmaya devam eder |
| Kurulduğu yer | world/datapacks/ | plugins/ |
Datapack'in daha iyi seçim olduğu durumlar
- Tek oyunculu modda veya vanilla bir sunucuda çalışması gerekiyor ya da oyuncular onu bir dünya eklentisi olarak paylaşacak.
- Fikir büyük ölçüde veriden ibaret: yeni tarifler, değiştirilmiş ganimet, bir başarım ağacı, özel dünya oluşturma.
- Hiç sunucu yazılımı ve Java derlemesi istemiyorsun.
Plugin'in daha iyi seçim olduğu durumlar
- Argümanlı komutlara, izinlere, GUI'lere veya bir mağazaya ihtiyacın var.
- Veriler oyuncu başına bir dosyaya veya veritabanına kaydedilmeli ya da bir web sitesi veya Discord ile paylaşılmalı.
- Mantık birçok olaya tepki veriyor ya da her tick çalışan çok sayıda fonksiyon gerektiriyor; bu da bir datapack'te performansa mal olur.
- Başka plugin'ler kullanıyorsun: Vault, LuckPerms, PlaceholderAPI, WorldGuard.
- Java ve derleme olmadan sunucu mantığı istiyorsan bir orta yol var: Skript.
Tek bir sunucuda ikisini birden kullanmak
Paper ve Spigot datapack'leri vanilla gibi dünya klasöründen yükler, bu yüzden tüm sunucu için seçim yapmak zorunda değilsin. Yaygın bir ayrım: düz veri oldukları ve düzenlemesi kolay olduğu için tarifler, ganimet tabloları, başarımlar ve dünya oluşturma bir datapack'te; komutlar, GUI'ler, ekonomi ve oyuncu başına saklanan her şey bir plugin'de. Bir datapack'in tek bir dünyaya ait olduğunu, bir plugin'in ise sunucudaki her dünyaya uygulandığını unutma.
İkisi de Codexe'te
Codexe ikisini de yapar. Bir datapack Hazır olmadan önce gerçek bir Minecraft sunucusunda yüklenir ve günlük hatalar için okunur; bir plugin derlenir. İkisi de kendi oyunundan bir özel test sunucusunda oynanabilir; dünya oluşturmayı değiştiren bir datapack de arazisini görebilmen için yeni oluşturulmuş bir dünyası olan bir sunucu alır. Datapack'ler 1.20.1'den 26.3'e kadar sürümlerde test amaçlı yüklenir; plugin'ler 1.8.8'den 26.3'e kadar sürümleri hedefleyebilir.
Sorular
Bir datapack yeni eşyalar ekleyebilir mi?
Gerçekten yeni olanları değil. Var olan eşyalara özel adlar, bileşenler ve modeller (bir kaynak paketiyle) verebilir, ama komutların izin verdiğinin ötesinde yeni davranış veremez.
Datapack'ler Paper sunucularında çalışır mı?
Evet. Paper datapack'leri vanilla gibi dünya klasöründen yükler, bu yüzden aynı sunucuda datapack'leri ve plugin'leri birlikte kullanabilirsin.
Hangisi daha hızlı?
Küçük şeyler için ikisi de iyidir. Her oyuncuyu her tick kontrol eden ağır tick fonksiyonları, tek bir olayı dinleyen bir plugin'den daha pahalıya mal olur.
Bir datapack'i sonradan plugin'e dönüştürebilir miyim?
Evet, mantığını Java'da yeniden yazarak. Paper ikisini de yüklediği için tarifler, ganimet tabloları ve başarımlar plugin'in yanında bir datapack'te kalabilir bile.
Datapack veya plugin olarak yap
Bu prompt göndermeye hazır açılır:
“Minecraft 1.21.4 için bir datapack, namespace "hunt": bir zombi, bir iskelet, bir creeper, bir enderman, bir cadı ve Ender Ejderhası'nı öldürmek için her biri XP veren 6 başarımlı bir "Monster Hunter" başarım ağacı ve bir öldürme skor tablosu ekleyen bir load fonksiyonu.”
Bunu Codexe ile oluştur