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 kurulumu

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ı

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 <ad> <ortam>Yeni dünya oluştur/mv create skyblock NORMAL
/mv create <ad> <ortam> -g <generator>Generator ile oluştur/mv create void NORMAL -g CleanroomGenerator:.
/mv delete <ad>Dünyayı sil/mv delete eski_dunya
/mv import <ad> <ortam>Mevcut dünyayı içe aktar/mv import world_backup NORMAL
/mv load <ad>Dünyayı yükle/mv load survival
/mv unload <ad>Dünyayı bellekten kaldır/mv unload creative
/mv tp <dünya>Dünyaya ışınlan/mv tp skyblock
/mv listTüm dünyaları listele/mv list
/mv info <ad>Dünya bilgilerini göster/mv info survival
/mv setspawnDünya spawn noktasını ayarla/mv setspawn
/mv modify set <ayar> <değer>Dünya ayarını değiştir/mv modify set difficulty hard
/mv regen <ad>Dünyayı yeniden oluştur/mv regen skyblock
/mv clone <kaynak> <hedef>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 <x> <z>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> <süre>Kademeli sınır değişimi/worldborder set 20000 3600
/worldborder add <miktar>Sınırı genişlet/worldborder add 2000
/worldborder damage amount <hasar>Sınır dışı hasarı/worldborder damage amount 0.5
/worldborder damage buffer <mesafe>Hasar başlangıç mesafesi/worldborder damage buffer 5
/worldborder warning distance <blok>Uyarı mesafesi/worldborder warning distance 50
/worldborder warning time <sn>Uyarı süresi/worldborder warning time 15
/worldborder getMevcut sınır bilgisi/worldborder get

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 pre-generation yarıçapı ayarla

/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 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:

Cron job ekle

# 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:

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

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

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')"

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

Dünyayı arşivle

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

Sık Sorulan Sorular

Dünya boyutu nasıl kontrol edilir?

Dünya boyutunu kontrol et

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:

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

cd /opt/minecraft && java -jar paper.jar --forceUpgrade --eraseCache