Minecraft Dünya Yönetimi: Multiverse, WorldBorder ve Yedekleme Rehberi

Multiverse-Core ile çoklu dünya, dünya sınırları, pre-generation, otomatik yedekleme ve dünya optimizasyonu.

22 dk okuma

# Dünya Yönetimine Giriş

Minecraft sunucularında dünya yönetimi, oyun deneyiminin temelini oluşturur. Farklı oyun modları için ayrı dünyalar, dünya sınırları, performans için pre-generation ve veri güvenliği için yedekleme — tüm bunlar profesyonel bir sunucu için zorunludur.

Bu rehberde Multiverse-Core ile çoklu dünya yönetimi, WorldBorder/Chunky ile sınır ve pre-generation, otomatik yedekleme scriptleri ve dünya optimizasyonu konularını detaylı olarak ele alacağız.

# Multiverse-Core Kurulumu

Multiverse-Core, Minecraft sunucularında birden fazla dünya oluşturup yönetmenizi sağlayan en popüler eklentidir.

Multiverse-Core JAR dosyasını plugins/ klasörüne koyun

Multiverse-Core kurulumu

Örnek: cp Multiverse-Core-4.3.12.jar /opt/minecraft/plugins/ systemctl restart minecraft

Ek olarak Multiverse-Portals (dünyalar arası portal) ve Multiverse-NetherPortals (Nether/End portal yönetimi) eklentilerini de kurmanız önerilir.

  • Multiverse-Core — Temel dünya yönetimi (oluşturma, silme, ayarlar)
  • Multiverse-Portals — Dünyalar arası özel portallar
  • Multiverse-NetherPortals — Nether ve End portal bağlantıları
  • Multiverse-Inventories — Dünya bazlı envanter ayrımı
Multiverse-Inventories, farklı dünyalarda farklı envanter tutulmasını sağlar. Örneğin Survival envanteri Creative dünyasına taşınmaz.

# Dünya Oluşturma ve Yönetim Komutları

Multiverse-Core ile dünya yönetimi için kullanılan temel komutlar aşağıdaki tabloda özetlenmiştir:

KomutAçıklamaÖrnek
/mv create Yeni dünya oluştur/mv create skyblock NORMAL
/mv create -g Generator ile oluştur/mv create void NORMAL -g CleanroomGenerator:.
/mv delete Dünyayı sil/mv delete eski_dunya
/mv import Mevcut dünyayı içe aktar/mv import world_backup NORMAL
/mv load Dünyayı yükle/mv load survival
/mv unload Dünyayı bellekten kaldır/mv unload creative
/mv tp Dünyaya ışınlan/mv tp skyblock
/mv listTüm dünyaları listele/mv list
/mv info Dünya bilgilerini göster/mv info survival
/mv setspawnDünya spawn noktasını ayarla/mv setspawn
/mv modify set Dünya ayarını değiştir/mv modify set difficulty hard
/mv regen Dünyayı yeniden oluştur/mv regen skyblock
/mv clone Dünyayı klonla/mv clone survival survival_backup

# Dünya Ayarları

Her dünya için oyun modu, zorluk, hava durumu gibi ayarları ayrı ayrı yapılandırabilirsiniz:

# Oyun Modu ve Zorluk

yaml
# plugins/Multiverse-Core/worlds.yml — Dünya ayarları
worlds:
  survival:
    environment: NORMAL
    generator: DEFAULT
    gameMode: SURVIVAL
    difficulty: HARD
    pvp: true
    hunger: true
    keepSpawnInMemory: true
    allowFlight: false
    autoHeal: true
    animals:
      spawn: true
      rate: 1
    monsters:
      spawn: true
      rate: 1
  creative:
    environment: NORMAL
    gameMode: CREATIVE
    difficulty: PEACEFUL
    pvp: false
    hunger: false
    keepSpawnInMemory: false
    allowFlight: true
    animals:
      spawn: true
    monsters:
      spawn: false

# Spawn Ayarları

Her dünya için spawn noktası ve ilgili ayarları yapılandırabilirsiniz:

AyarKomutAçıklama
Spawn ayarla/mv setspawnBulunduğunuz konumu spawn yapar
Spawn'a ışınlan/mv spawnDünya spawn noktasına gider
Spawn bellekte tut/mv modify set memory trueSpawn chunk'larını bellekte tutar
İlk giriş dünyası/mv modify set firstspawnoverride trueYeni oyuncuları bu dünyaya yönlendirir
Yatakla spawn/mv modify set bedrespawn trueYatak spawn noktasını kullan

# WorldBorder ve Dünya Sınırları

Dünya sınırları, sunucu performansı için kritik öneme sahiptir. Sınırsız dünya = sınırsız chunk üretimi = artan disk ve RAM kullanımı. Her dünya için makul bir sınır belirleyin.

# Vanilla WorldBorder Komutları

KomutAçıklamaÖrnek
/worldborder center Sınır merkezini ayarla/worldborder center 0 0
/worldborder set <çap>Sınır çapını ayarla (blok)/worldborder set 10000
/worldborder set <çap> Kademeli sınır değişimi/worldborder set 20000 3600
/worldborder add Sınırı genişlet/worldborder add 2000
/worldborder damage amount Sınır dışı hasarı/worldborder damage amount 0.5
/worldborder damage buffer Hasar başlangıç mesafesi/worldborder damage buffer 5
/worldborder warning distance Uyarı mesafesi/worldborder warning distance 50
/worldborder warning time Uyarı süresi/worldborder warning time 15
/worldborder getMevcut sınır bilgisi/worldborder get
Survival dünya için 10.000-20.000 blok çap makul bir sınırdır. Bu, 5.000-10.000 blok yarıçap anlamına gelir ve yeterli keşif alanı sunar.

# Chunky ile Pre-Generation

Pre-generation (ön üretim), dünya chunk'larını oyuncular keşfetmeden önce oluşturur. Bu sayede oyuncular yeni bölgelere gittiğinde sunucu anlık chunk üretimi yapmak zorunda kalmaz ve TPS düşüşü yaşanmaz.

/chunky radius

Chunky pre-generation yarıçapı ayarla

Örnek: /chunky world survival /chunky center 0 0 /chunky radius 5000 /chunky start
text
Chunky Komut Sırası:
1. /chunky world <dünya>       → Hedef dünyayı seç
2. /chunky center <x> <z>     → Merkez koordinatı
3. /chunky radius <blok>      → Yarıçap (blok cinsinden)
4. /chunky shape <şekil>      → square veya circle
5. /chunky start              → Pre-generation başlat
6. /chunky pause              → Duraklatma
7. /chunky continue           → Devam ettirme
8. /chunky cancel             → İptal
Pre-generation yoğun CPU ve disk kullanımı yaratır. Oyuncular sunucuda yokken veya düşük yoğunluklu saatlerde çalıştırın. 10.000 blok yarıçap, dünya boyutuna bağlı olarak saatler sürebilir.

Pre-generation sonrası disk kullanımı önemli ölçüde artacaktır. Aşağıdaki tablo yaklaşık değerleri gösterir:

Yarıçap (blok)Chunk Sayısı (kare)Yaklaşık Boyut
1.000~3.900~500 MB
2.500~24.400~3 GB
5.000~97.600~12 GB
10.000~390.600~45 GB
20.000~1.562.500~160 GB

# Otomatik Yedekleme

Dünya verilerini düzenli olarak yedeklemek, veri kaybını önlemenin en etkili yoludur. Aşağıda bir bash yedekleme scripti ve cron yapılandırması bulunmaktadır.

# Yedekleme Scripti

bash
#!/bin/bash
# minecraft-backup.sh — Otomatik dünya yedekleme scripti

# Ayarlar
SERVER_DIR="/opt/minecraft"
BACKUP_DIR="/opt/backups/minecraft"
DATE=$(date +%Y-%m-%d_%H-%M)
RETENTION_DAYS=7
SCREEN_NAME="minecraft"

# Yedekleme klasörünü oluştur
mkdir -p "$BACKUP_DIR"

# Sunucuya otomatik kaydetme bildirimi
screen -S $SCREEN_NAME -p 0 -X stuff "say §6Yedekleme başlıyor, kısa bir gecikme olabilir...$(printf '\r')"
screen -S $SCREEN_NAME -p 0 -X stuff "save-off$(printf '\r')"
screen -S $SCREEN_NAME -p 0 -X stuff "save-all$(printf '\r')"
sleep 5

# Dünyaları sıkıştır
cd "$SERVER_DIR"
tar -czf "$BACKUP_DIR/worlds_$DATE.tar.gz" \
  world/ world_nether/ world_the_end/ \
  survival/ creative/ skyblock/ \
  --exclude='*.tmp' --exclude='session.lock'

# Kaydetmeyi tekrar aç
screen -S $SCREEN_NAME -p 0 -X stuff "save-on$(printf '\r')"
screen -S $SCREEN_NAME -p 0 -X stuff "say §aYedekleme tamamlandı!$(printf '\r')"

# Eski yedekleri temizle
find "$BACKUP_DIR" -name "worlds_*.tar.gz" -mtime +$RETENTION_DAYS -delete

echo "[$DATE] Yedekleme tamamlandı: $BACKUP_DIR/worlds_$DATE.tar.gz"

# Cron ile Zamanlama

Scripti cron ile otomatik çalıştırmak için:

crontab -e

Cron job ekle

Örnek: # Her gün saat 04:00'te yedekleme 0 4 * * * /opt/minecraft/minecraft-backup.sh >> /var/log/mc-backup.log 2>&1 # Her 6 saatte bir yedekleme 0 */6 * * * /opt/minecraft/minecraft-backup.sh >> /var/log/mc-backup.log 2>&1

Script'e çalıştırma izni vermeyi unutmayın:

chmod +x /opt/minecraft/minecraft-backup.sh

Script'e çalıştırma izni ver

Örnek: chmod +x /opt/minecraft/minecraft-backup.sh
Yedekleri aynı diskte tutmak yerine farklı bir disk veya uzak sunucuya (rsync, rclone) aktarın. Disk arızasında tüm verinizi kaybedebilirsiniz.

# Dünya Optimizasyonu

Dünya ayarları, sunucu performansını doğrudan etkiler. Özellikle entity (varlık) yönetimi ve chunk işlemleri optimize edilmelidir.

# Entity Limitleri

yaml
# bukkit.yml — Entity spawn limitleri
spawn-limits:
  monsters: 50        # Varsayılan: 70
  animals: 8           # Varsayılan: 10
  water-animals: 3     # Varsayılan: 5
  water-ambient: 10    # Varsayılan: 20
  water-underground-creature: 3  # Varsayılan: 5
  axolotls: 3          # Varsayılan: 5
  ambient: 1           # Varsayılan: 15

ticks-per:
  animal-spawns: 400   # Varsayılan: 400
  monster-spawns: 4    # Varsayılan: 1 — artırarak CPU tasarrufu

# Chunk GC (Garbage Collection)

Kullanılmayan chunk'ların bellekten temizlenmesi, RAM kullanımını optimize eder:

yaml
# paper-world-defaults.yml (Paper 1.19+)
chunks:
  max-auto-save-chunks-per-tick: 8
  auto-save-interval: 6000     # 5 dakikada bir
  delay-chunk-unloads-by: 10s  # Chunk unload gecikmesi
  prevent-moving-into-unloaded-chunks: true
  entity-per-chunk-save-limit:
    arrow: 16
    ender_pearl: 8
    experience_orb: 16
    fireball: 8
    snowball: 8
    small_fireball: 8

# Nether ve End Yönetimi

Nether ve End dünyaları özel dikkat gerektirir. Bu dünyaların sınırlandırılması ve düzenli resetlenmesi önemlidir.

# Multiverse ile Nether/End Bağlantıları

Multiverse-NetherPortals eklentisi ile Nether ve End portal bağlantılarını yönetebilirsiniz:

yaml
# plugins/Multiverse-NetherPortals/config.yml
worlds:
  survival:
    nether: survival_nether
    end: survival_the_end
  creative:
    nether: creative_nether
    end: creative_the_end

# End Dünyası Periyodik Resetleme

End dünyasını periyodik olarak resetlemek, Elytra ve Shulker Box ekonomisini dengede tutar:

bash
#!/bin/bash
# end-reset.sh — End dünyasını sıfırlama scripti
SERVER_DIR="/opt/minecraft"
SCREEN_NAME="minecraft"

# Oyuncuları uyar
screen -S $SCREEN_NAME -p 0 -X stuff "say §c[!] End dünyası 5 dakika içinde sıfırlanacak!$(printf '\r')"
sleep 300

# End'deki oyuncuları spawn'a ışınla
screen -S $SCREEN_NAME -p 0 -X stuff "mv tp survival world_the_end$(printf '\r')"
sleep 5

# Dünyayı kaldır ve sil
screen -S $SCREEN_NAME -p 0 -X stuff "mv unload world_the_end$(printf '\r')"
sleep 3
screen -S $SCREEN_NAME -p 0 -X stuff "mv delete world_the_end$(printf '\r')"
screen -S $SCREEN_NAME -p 0 -X stuff "mv confirm$(printf '\r')"
sleep 5

# Yeniden oluştur
screen -S $SCREEN_NAME -p 0 -X stuff "mv create world_the_end THE_END$(printf '\r')"
sleep 10

screen -S $SCREEN_NAME -p 0 -X stuff "say §aEnd dünyası sıfırlandı! İyi keşifler.$(printf '\r')"
End resetlemeden önce oyuncuları End'den çıkarmayı unutmayın. Aksi takdirde envanterlerini kaybedebilirler.

# Dünya İçe/Dışa Aktarma

Mevcut dünyaları sunucuya aktarmak veya sunucudan dışa aktarmak için aşağıdaki adımları izleyin:

# Dünya İçe Aktarma

  • Dünya klasörünü sunucu ana dizinine kopyalayın (ör: /opt/minecraft/harita_ismi/)
  • Klasör içinde level.dat dosyasının olduğundan emin olun
  • /mv import harita_ismi NORMAL komutu ile içe aktarın
  • /mv tp harita_ismi ile test edin

# Dünya Dışa Aktarma

tar -czf dunya.tar.gz /

Dünyayı arşivle

Örnek: cd /opt/minecraft tar -czf survival_export.tar.gz survival/ --exclude=session.lock

# Sık Sorulan Sorular

# Dünya boyutu nasıl kontrol edilir?

du -sh /

Dünya boyutunu kontrol et

Örnek: du -sh /opt/minecraft/survival/ du -sh /opt/minecraft/world_nether/ du -sh /opt/minecraft/world_the_end/

# Bozuk chunk nasıl onarılır?

Bozuk chunk'lar MCA Selector aracı veya --forceUpgrade parametresi ile onarılabilir. Ancak önce mutlaka yedek alın:

java -jar server.jar --forceUpgrade --eraseCache

Dünya chunk'larını yükselt ve önbelleği temizle

Örnek: cd /opt/minecraft && java -jar paper.jar --forceUpgrade --eraseCache
Dünya Yönetimi Desteği

Multiverse kurulumu, dünya optimizasyonu ve yedekleme altyapısı için profesyonel destek alın. Destek Talebi