Minecraft modpack bilgisayarınızda sorunsuz şekilde açılıyor ancak aynı mods klasörünü Windows Server veya VDS üzerindeki dedicated server'a kopyaladığınızda sunucu crash veriyorsa, problem her zaman modpack'in bozuk olduğu anlamına gelmez.
En sık nedenlerden biri client-only modların dedicated server üzerinde çalıştırılmaya çalışılmasıdır.
Özellikle shader, arayüz, animasyon, grafik, performans veya istemci tarafı görsel özellikler ekleyen bazı modlar yalnızca oyuncunun Minecraft client'ında çalışmak üzere hazırlanmıştır. Bu modlar Windows Server üzerindeki dedicated Minecraft sunucusunda yüklendiğinde crash, class loading veya environment hataları oluşabilir.
Bu rehberde ağırlıklı olarak Windows Server üzerinde client-only modların nasıl tespit edileceğini, loglarda hangi ifadelerin aranacağını ve hangi modların server tarafında gerçekten gerekli olduğunu nasıl anlayacağınızı anlatacağız. Linux kullanıcıları için gerekli komutları da rehberin devamında bulabilirsiniz.
1. Client'ta çalışan modpack neden server'da çalışmayabilir?
Minecraft client ile dedicated server aynı Java uygulaması değildir.
Oyuncunun bilgisayarındaki Minecraft client:
- grafik render eder,
- arayüz gösterir,
- klavye ve mouse girdilerini işler,
- shader ve görüntü efektlerini çalıştırır,
- client tarafı animasyonları ve optimizasyonları kullanabilir.
Dedicated Minecraft server ise bu görevlerin büyük bölümünü yapmaz.
Bu nedenle modları üç genel gruba ayırabiliriz:
Client-only
Server-only
Client + Server
Bir modpack'i server'a kurarken bütün modları körlemesine kopyalamak yerine hangi modun hangi tarafta çalışması gerektiğini kontrol etmek önemlidir.
2. Client-only mod nedir?
Client-only mod, yalnızca oyuncunun Minecraft istemcisinde çalışması gereken moddur.
Bunlara örnek olarak genellikle şu tür modlar verilebilir:
- shader ve görüntü modları,
- grafik optimizasyon modları,
- HUD ve arayüz modları,
- client animasyon modları,
- kamera modları,
- keybind veya mouse davranışı değiştiren modlar,
- sadece oyuncunun ekranında çalışan yardımcı modlar.
Ancak bir modun bu kategorilerden birine benzemesi onun kesin olarak client-only olduğu anlamına gelmez.
Modun geliştirici sayfasındaki environment veya server compatibility bilgisi mutlaka kontrol edilmelidir.
3. En sık yapılan hata: Client mods klasörünü komple server'a kopyalamak
Modpack kullanıcıları çoğu zaman bilgisayarlarındaki:
.minecraft\mods
klasörünü tamamen Windows Server'daki:
C:\MinecraftServer\mods
klasörüne kopyalar.
Bu yöntem bazı modpack'lerde çalışabilir ancak her zaman doğru değildir.
Client tarafında gerekli olan fakat dedicated server üzerinde çalışmaması gereken modlar da bu şekilde server'a taşınmış olur.
Sonuç olarak server başlatılırken:
Failed to start the minecraft server
veya Java class loading / environment hataları görülebilir.
4. Client-only mod hatası logda nasıl görünür?
Logda aşağıdakine benzer ifadeler görülebilir:
Attempted to load class ... for invalid dist DEDICATED_SERVER
veya:
Cannot load class net.minecraft.client...
veya:
ClassNotFoundException: net.minecraft.client...
Benzer şekilde şu kelimeler önemli olabilir:
clientdedicated_serverenvironmentdistclient-onlynet.minecraft.client
Bu ifadeler bir modun server tarafında client class'larına erişmeye çalıştığını gösterebilir.
5. Windows Server'da latest.log dosyasını kontrol edin
Minecraft sunucu klasöründe:
logs\latest.log
dosyasını açın.
PowerShell kullanıyorsanız son 200 satırı görmek için:
Get-Content .\logs\latest.log -Tail 200
Client-only modlara işaret eden kelimeleri aramak için:
Select-String -Path .\logs\latest.log -Pattern "client","DEDICATED_SERVER","environment","dist","net.minecraft.client","ClassNotFoundException"
Bu komut tek başına kesin teşhis koymaz ancak ilgili hata satırlarını hızlıca bulmanıza yardımcı olur.
6. Hata veren modun adını nasıl bulursunuz?
Stack trace içerisinde bir mod ID veya mod dosyası adı bulunabilir.
Örneğin:
Mixin from mod exampleclientmod failed
veya:
Mod exampleclientmod encountered an error
gibi bir satır görebilirsiniz.
Bu durumda:
mods\exampleclientmod-1.2.3.jar
dosyasını incelemek gerekir.
Ancak dosyayı hemen silmek yerine önce modun yayınlandığı sayfada:
- Client
- Server
- Both
- Environment
bilgilerini kontrol edin.
7. Modrinth ve CurseForge üzerindeki environment bilgilerini kontrol edin
Birçok mod yayın sayfasında modun hangi ortamda çalışması gerektiği belirtilir.
Örneğin bir mod için:
Client: Required
Server: Unsupported
yazıyorsa bu mod dedicated server'a yüklenmemelidir.
Buna karşılık:
Client: Required
Server: Required
olan bir mod hem oyuncularda hem de sunucuda bulunmalıdır.
Bazı modlar ise:
Client: Optional
Server: Required
veya farklı kombinasyonlarda olabilir.
Bu nedenle yalnızca modun adına bakarak karar vermek yerine yayıncının belirttiği environment bilgisini kontrol etmek daha güvenlidir.
8. Windows'ta şüpheli modları geçici olarak devre dışı bırakın
Bir modun client-only olduğundan şüpheleniyorsanız dosyayı hemen silmek zorunda değilsiniz.
Örneğin:
examplemod.jar
dosyasını:
examplemod.jar.disabled
şeklinde yeniden adlandırabilirsiniz.
Minecraft mod loader çoğu durumda .jar olmayan bu dosyayı mod olarak yüklemez.
Windows Explorer üzerinden dosya uzantılarının görünür olduğundan emin olun.
Ardından sunucuyu yeniden başlatın.
Eğer crash ortadan kalkarsa ilgili mod önemli bir şüphelidir.
Önemli: Bir modu devre dışı bırakmadan önce onun başka modlar tarafından dependency olarak kullanılıp kullanılmadığını kontrol edin. Aksi halde yeni bir "missing dependency" hatası oluşturabilirsiniz.
9. Tek tek mod kaldırmak yerine gruplandırarak test edin
Server'da yüzlerce mod varsa birer birer test yapmak zaman alabilir.
Özellikle sonradan eklediğiniz client modları biliyorsanız önce şu grupları kontrol edebilirsiniz:
- shader modları,
- grafik modları,
- HUD modları,
- animasyon modları,
- kamera modları,
- menu / UI modları.
Ancak her seferinde logu tekrar incelemek gerekir.
Çünkü sunucunun açılmaya başlaması, kalan bütün modların kesin olarak doğru olduğu anlamına gelmez.
10. Client optimizasyon modları server'a gerekli olmayabilir
Oyuncunun FPS değerini artırmayı hedefleyen bazı modların dedicated server üzerinde hiçbir faydası olmayabilir.
Örneğin bir mod yalnızca:
- render işlemini optimize ediyorsa,
- shader desteği ekliyorsa,
- client texture sistemini değiştiriyorsa,
- GUI performansını iyileştiriyorsa
server tarafında çalışmasına gerek olmayabilir.
Dedicated server ekran görüntüsü render etmez ve oyuncunun GPU'sunu kullanmaz.
Bu nedenle "performans modu" ifadesi tek başına server'a kurulması gerektiği anlamına gelmez.
11. Ama bütün optimizasyon modları client-only değildir
Burada önemli bir ayrım vardır.
Bazı performans modları gerçekten server tick, chunk, memory veya network işlemlerini optimize eder ve dedicated server üzerinde çalışabilir.
Bu nedenle:
Optimizasyon modu
≠
Kesin client-only mod
şeklinde düşünmek gerekir.
Her modun dökümantasyonu ayrı kontrol edilmelidir.
12. Forge / NeoForge ortam hataları
Forge ve NeoForge tabanlı modlarda client-only uyumsuzluğu bazen Dist kavramıyla ifade edilir.
Logda:
DEDICATED_SERVER
ve:
CLIENT
ifadelerini görebilirsiniz.
Örneğin mod yalnızca client tarafında bulunması gereken bir class'ı dedicated server'da yüklemeye çalışıyorsa loader işlemi durdurabilir.
Bu durumda önemli olan yalnızca hata veren class değil, stack trace içerisinde hangi modun bu class'ı çağırdığıdır.
13. Fabric environment hataları
Fabric tabanlı sunucularda benzer problem environment tanımlarıyla görülebilir.
Bir mod yalnızca client environment için hazırlanmışsa dedicated server üzerinde yüklenmesi engellenebilir.
Logda:
environment
client
server
ifadelerine dikkat edin.
Forge, NeoForge veya Fabric kullanılması temel problemi değiştirmez:
Client için hazırlanmış kod
↓
Dedicated server'da çalıştırılmaya çalışılıyor
↓
Sunucu başlangıçta hata verebiliyor
14. Client modunu kaldırdım, şimdi dependency hatası çıktı
Bu mümkündür.
Örneğin kaldırdığınız mod başka bir mod için library görevi görüyor olabilir.
Yeni hata şu şekilde olabilir:
Mod examplemod requires examplelibrary
Currently, examplelibrary is not installed
Bu durumda iki ihtimali değerlendirin:
- Kaldırdığınız mod aslında server tarafında da gerekli olabilir.
- O moda bağlı başka bir client-only mod da server'da bulunuyor olabilir.
Bu yüzden modları tek tek rastgele silmek yerine dependency zincirini takip etmek daha doğru olur.
15. Server pack varsa client mods klasörünü kullanmayın
Modpack geliştiricisi ayrı bir:
Server Pack
yayınlamışsa mümkün olduğunda dedicated server kurulumu için onu kullanın.
Server pack genellikle:
- client-only modları çıkarılmış,
- server config dosyaları hazırlanmış,
- gerekli loader dosyaları eklenmiş,
- server'a özel başlangıç scriptleri hazırlanmış
bir paket olabilir.
Bu durumda client modpack'in mods klasörünü tekrar server'a kopyalamak, daha önce çıkarılmış client-only modların yeniden eklenmesine neden olabilir.
16. Server pack'in de yanlış hazırlanmış olabileceğini unutmayın
Server pack bulunması onun kesin olarak hatasız olduğu anlamına gelmez.
Server pack içerisinde:
- yanlış Minecraft sürümü,
- yanlış Forge / NeoForge sürümü,
- eski Java ayarı,
- yanlış mod loader runtime'ı
bulunabilir.
Bu nedenle hata alan bir server pack'te de:
Minecraft sürümü
Loader sürümü
Java sürümü
Mod sürümleri
birbiriyle karşılaştırılmalıdır.
17. Client-only mod hatası ile sürüm uyumsuzluğunu karıştırmayın
Örneğin log:
Mod example requires neoforge 26.1.2 or above
Currently, neoforge is 21.2.1
diyorsa problem client-only mod değildir.
Bu doğrudan loader sürümü uyuşmazlığıdır.
Buna karşılık:
Attempted to load class net.minecraft.client... for invalid dist DEDICATED_SERVER
mesajı client/server environment uyumsuzluğunu daha güçlü şekilde işaret eder.
Hata mesajını doğru kategorize etmek gereksiz mod değişikliklerini önler.
18. Windows'ta mods klasöründeki JAR dosyalarını listeleme
PowerShell üzerinden server'daki modları listelemek için:
Get-ChildItem .\mods\*.jar | Select-Object Name
Listeyi metin dosyasına kaydetmek için:
Get-ChildItem .\mods\*.jar | Select-Object -ExpandProperty Name | Out-File .\server-mod-list.txt
Bu listeyi client tarafındaki mod listesiyle karşılaştırabilirsiniz.
Örneğin client'taki mod listesini de ayrı bir dosyaya çıkararak hangi modların server'da bulunup bulunmadığını kontrol etmek mümkündür.
19. Windows'ta son değiştirilen modları bulun
Sorun yakın zamanda başladıysa mods klasörüne en son eklenen dosyaları görmek faydalı olabilir.
PowerShell üzerinde:
Get-ChildItem .\mods\*.jar | Sort-Object LastWriteTime -Descending | Select-Object -First 20 Name,LastWriteTime
Bu komut en son değiştirilen 20 JAR dosyasını gösterir.
Eğer crash yeni bir mod ekledikten sonra başladıysa bu liste ilk kontrol için faydalı olabilir.
20. Client ve server mod listelerini karşılaştırma
Elinizde hem client hem server mods klasörü varsa PowerShell ile iki liste çıkarabilirsiniz.
Server:
Get-ChildItem C:\MinecraftServer\mods\*.jar | Select-Object -ExpandProperty Name | Sort-Object | Out-File C:\server-mods.txt
Client:
Get-ChildItem "$env:APPDATA\.minecraft\mods\*.jar" | Select-Object -ExpandProperty Name | Sort-Object | Out-File C:\client-mods.txt
Bu iki dosya arasındaki farkları manuel veya metin karşılaştırma araçlarıyla inceleyebilirsiniz.
Ancak önemli nokta şudur:
Client'ta var, server'da yok
≠
Kesin hata
Çünkü bazı modların yalnızca client'ta bulunması zaten beklenen davranıştır.
21. Oyuncularda bulunması gereken modları da yanlışlıkla kaldırmayın
Bazı modlar hem client hem server üzerinde bulunmalıdır.
Server'dan gerekli bir içerik modunu kaldırırsanız sunucu açılabilir ancak oyuncular bağlanırken mod listesi uyuşmazlığı yaşayabilir veya gameplay sorunları oluşabilir.
Bu nedenle amaç:
Server'dan mümkün olduğunca çok mod silmek
değildir.
Amaç:
Her modu doğru ortamda çalıştırmak
olmalıdır.
22. Client-only modlar oyuncuların bilgisayarında kalabilir
Bir modun server'dan kaldırılması onun oyuncular tarafından da kaldırılması gerektiği anlamına gelmez.
Örneğin gerçekten client-only olan bir mod:
Oyuncunun PC'si: VAR
Minecraft server: YOK
şeklinde kullanılabilir.
Bu tamamen modun tasarımına bağlıdır.
23. Sunucu açıldıktan sonra Done mesajını kontrol edin
Şüpheli client-only modları ayıkladıktan sonra Minecraft sunucusunu tekrar başlatın.
Başarılı açılışta genellikle:
Done (...)! For help, type "help"
mesajını görürsünüz.
Bu noktada sunucu ana başlangıç aşamasını tamamlamıştır.
Ancak log içerisinde kalan WARN mesajlarını da kontrol etmek faydalıdır.
24. Linux / Ubuntu'da aynı kontrol nasıl yapılır?
Linux üzerinde teşhis mantığı aynıdır.
latest.log sonunu görüntülemek için:
tail -n 200 logs/latest.log
Client/server environment ifadelerini aramak için:
grep -Ei 'client|dedicated_server|environment|dist|net.minecraft.client|classnotfoundexception' logs/latest.log
Server'daki modları listelemek için:
find mods -maxdepth 1 -type f -name '*.jar' -printf '%f\n' | sort
Son değiştirilen modları görmek için:
ls -lt mods/*.jar | head -20
Şüpheli bir modu geçici olarak devre dışı bırakmak için:
mv mods/examplemod.jar mods/examplemod.jar.disabled
Ardından sunucuyu yeniden başlatabilirsiniz.
25. Windows ve Linux hızlı karşılaştırma
Windows Server:
Get-Content .\logs\latest.log -Tail 200
Select-String -Path .\logs\latest.log -Pattern "client","DEDICATED_SERVER","environment","dist","net.minecraft.client"
Get-ChildItem .\mods\*.jar | Select-Object Name
Linux / Ubuntu:
tail -n 200 logs/latest.log
grep -Ei 'client|dedicated_server|environment|dist|net.minecraft.client' logs/latest.log
find mods -maxdepth 1 -type f -name '*.jar' -printf '%f\n'
26. Hızlı teşhis sırası
Client modpack çalışıyor fakat dedicated server açılmıyorsa şu sırayı takip edin:
latest.log'u aç
↓
client / DEDICATED_SERVER hatası var mı?
↓
Hangi mod hatayı tetikliyor?
↓
Mod gerçekten server destekliyor mu?
↓
Dependency'si var mı?
↓
Minecraft ve loader sürümü doğru mu?
↓
Şüpheli client-only modu geçici devre dışı bırak
↓
Sunucuyu tekrar test et
Her mod her yerde çalışmak zorunda değildir
Minecraft modpack'teki bütün modların hem client hem dedicated server üzerinde bulunması gerektiğini düşünmek sık yapılan bir hatadır.
Doğru modpack kurulumu:
Client için gerekli modlar
+
Server için gerekli modlar
+
Her iki tarafta bulunması gereken modlar
ayrımı yapılarak hazırlanmalıdır.
Özellikle Windows Server üzerinde client mods klasörünü komple kopyalayıp sunucuyu başlatmak yerine, hata logunu okuyarak hangi modların dedicated server ortamına uygun olduğunu doğrulamak çok daha sağlıklı bir yöntemdir.
Batihost'ta sadece sunucu vermiyoruz, Minecraft da biliyoruz.
Minecraft modpack'iniz bilgisayarınızda açılıyor ancak Windows Server üzerinde crash veriyor, client-only modları ayıramıyor, Forge / NeoForge / Fabric hata veriyor veya latest.log içerisinde yüzlerce satır görüyorsanız çözüm her zaman bütün modları yeniden indirmek değildir.
Batihost olarak özellikle Windows VDS ve Minecraft sunucularında müşterilerimize yalnızca CPU, RAM ve disk kaynağı sunmakla kalmıyor; modpack, Java, mod loader ve server tarafı problemlerin teşhisinde de yardımcı oluyoruz.
Batihost Minecraft Sunucu ve Windows VDS hizmetlerini inceleyin
