Skip to content

Mod yapma ​

Modlar The Blockheads'e özellik ekler: sohbet komutları, yeni kurallar, sunucu yöneticileri için araçlar ve ileride oyuncuların oyunda göreceği değişiklikler. Başkalarının yaptıklarına Modlar sayfasından bakabilirsin.

Bugün neler çalışıyor

bhmod (oluştur, kontrol et, paketle) çalışıyor ve Blockheads Server geliştirme sürümlerinde Lua modlarının yanında WASM (Rust) modlarını da çalıştırıyor. İstemci modları PC Sürümü'nün mod yükleyicisiyle ve Patcher'ın Android mod yükleyici yamasıyla çalışır; ikisi de geliştirme sürümlerinde ve sonraki sürümlerle gelecek.

Buradan başla ​

  1. İlk Lua modun: bhmod new'den çalışan bir sunucuya.
  2. Olaylar, komutlar ve zamanlayıcılar, depolama.
  3. Başka modlarla çalışmak: servisler, özel olaylar, kanallar.
  4. Sıcak yenileme ve süreler: bir modu dünyayı yeniden başlatmadan değiştir.
  5. Herkese açık listede yayımlama.

Rust mı tercih edersin? İlk Rust modun sayfasına bak. Tüm fonksiyonlar API başvurusunda.

Taraflar ​

Bir mod bir veya iki tarafta çalışır:

  • server (sunucu): sunucuda çalışır.
  • client (istemci): oyuncunun cihazında, oyunun içinde çalışır (mod yükleyici gerekir).
  • both (ikisi birden): hem sunucu hem istemci parçası vardır. client-required (istemcide zorunlu) işaretlenebilir; o zaman modu olmayan oyuncular katılamaz.

Diller ​

Lua (Luau) en kolayı. WebAssembly'ye (WASM) derlenen Rust da çalışır; WASM bileşeni üretebilen C, Zig, Go ve diğerleri de gelecek. Java (ve Kotlin ya da herhangi bir JVM dili) de çalışır: bhmod new my-mod --lang java yaz. Farklı dillerdeki modlar birbirini çağırabilir.

Java ve yerel modlar korumalı alanda çalışmaz

Java (JVM) modları ve yerel (native) modlar (oyunun kendisine kanca atar) sunucunun ya da oyunun tüm yetkileriyle çalışır. native izni ister, kırmızı uyarıyla gösterilir ve sen açmadıkça kapalıdır: JVM desteği bir anahtardır (sunucu: Ayarlar > Java modları; PC Port: başlatıcının mod ayarları; Android: Modlar ekranındaki Java modları anahtarı). Yerel modlar yalnızca incelenmiş herkese açık listeden yüklenir. Ayrıntılar: JVM modları, yerel modlar.

mod.toml ​

Her modun bir mod.toml dosyası vardır. Ana alanlar:

AlanAnlamı
id, version, name, descriptionModun kimliği. Id küçük harf, rakam, - ve _ içerir.
authors, licenseKimin yaptığı ve hangi lisansla.
apiÇalıştığı mod API sürümleri, örneğin ^0.2 (API sürümleri).
[sides], [entry]Nerede çalıştığı ve hangi dosyayla başladığı.
[dependencies]İhtiyaç duyduğu diğer modlar.
[permissions]Neler yapabileceği (aşağıda).

Tüm biçim SDK dokümanlarında.

İzinler ​

Bir mod yalnızca izinlerinin verdiği kadarını yapabilir ve her birini sunucu sahibi vermelidir:

  • world: none, read veya write.
  • players: chat, teleport, kick, ban, inventory, health değerlerinden herhangi biri.
  • net-http: bağlanabileceği siteler.
  • channels: sunucu, istemciler ve diğer modlar arasındaki kendi mesajları.
  • native: korumalı alanın dışındaki yerel kod. Kırmızı uyarıyla gösterilir ve elle incelenir.

Yalnızca ihtiyacın olanı iste. Sunucu sahiplerinin gördüğü: Sunucunda modlar.

Yayımla ​

Modlar, Blockheads-Club/mods deposuna gönderilen bir çekme isteğiyle (pull request) listelenir. Adımlar, kurallar ve kontroller Mod gönder sayfasında, kısaca da Yayımlama sayfasında.

Resmî olmayan topluluk projesi. Majic Jungle Software veya Noodlecake ile bağlantısı yoktur. Oyun dosyası içermez.