CS2 Sunucuya Plugin Kurma: Metamod ve CounterStrikeSharp Rehberi
Kısa cevap
CS2 sunucusuna eklenti (plugin) kurmak için önce Metamod:Source'un CS2 uyumlu 2.x geliştirme sürümünü game/csgo içine çıkarır, game/csgo/gameinfo.gi dosyasında Game_LowViolence csgo_lv satırının altına Game csgo/addons/metamod satırını eklersin. Ardından CounterStrikeSharp'ı (ilk kurulumda with-runtime paketi) aynı klasöre çıkarır, eklentileri addons/counterstrikesharp/plugins altında kendi klasörlerine koyarsın. Konsolda meta list ve css_plugins list ile kontrol edersin. CS2 güncellemesi gameinfo.gi'yi sıfırlarsa satırı yeniden ekleyip framework'ü güncellemen gerekir.
CS2 sunucusuna eklenti kurmak için ne gerekir?
CS2'de eklenti kurmak, CS:GO döneminden alıştığın SourceMod düzeninden farklıdır. CS2 Source 2 motorunda çalıştığı için eski SourceMod eklentileri ve .smx dosyaları burada işe yaramaz. Bunun yerine iki katmanlı bir yapı kullanırsın: en altta oyuna bağlanan Metamod:Source, onun üzerinde de eklentileri çalıştıran bir framework. Bugün en yaygın framework CounterStrikeSharp'tır ve eklentiler C# ile, .NET üzerinde yazılır.
Başlamadan önce elinde çalışan, güncel bir CS2 dedicated server olmalı. SteamCMD ile kurulum, GSLT ve başlatma parametreleri ayrı bir konu; onları CS2 sunucu kurulum rehberimizde anlattık. Bu rehber, o sunucu açıldıktan sonra üzerine eklenti katmanını nasıl kuracağını ve ayakta tutacağını anlatıyor.
Dosyalara erişim de şart. Kendi VPS'inde SSH ya da SFTP ile, hazır bir oyun panelinde ise dosya yöneticisiyle çalışırsın. Pterodactyl tabanlı panellerde game/csgo klasörüne doğrudan girip arşivleri yükleyebilir ve sunucuyu panelden yeniden başlatabilirsin. Ayrıca sunucunun hangi işletim sisteminde çalıştığını bil: Metamod ve CounterStrikeSharp, Linux ve Windows için ayrı paketlerle gelir ve yanlış paket hiç yüklenmez.
- Güncel ve sorunsuz açılan bir CS2 dedicated server
- Metamod:Source 2.x geliştirme (dev) sürümü, sunucunun işletim sistemine uygun paket
- CounterStrikeSharp, ilk kurulumda with-runtime paketi
- game/csgo klasörüne dosya erişimi (SFTP, SSH ya da panel dosya yöneticisi)
- Sunucu konsoluna erişim (panel konsolu ya da RCON)
Metamod:Source ve CounterStrikeSharp tam olarak ne yapar?
Metamod:Source bir eklenti yükleyicisidir. Oyun motoru açılırken önce Metamod'u yükler, Metamod da kendine kayıtlı eklentileri belleğe alır. Tek başına oyuncuya görünen bir özellik eklemez; görevi, başka eklentilerin motora güvenli şekilde bağlanabileceği bir zemin sağlamaktır. CS2 için gereken sürüm Metamod:Source 2.x dalıdır ve resmî olarak geliştirme (dev) build'leri üzerinden dağıtılır; eski 1.x kararlı sürümleri CS2'de çalışmaz.
CounterStrikeSharp ise Metamod'a takılan bir eklentidir ama kendisi de bir platformdur. İçinde .NET çalışma ortamını barındırır, oyun olaylarını (oyuncu bağlandı, round başladı, bomba kuruldu gibi) C# koduna aktarır ve komut, yetki, ayar dosyası gibi ortak işleri hazır sunar. Senin indirdiğin admin, retake ya da VIP eklentilerinin neredeyse tamamı bu API'yi kullanır.
Aşağıdaki tablo katmanları ve her birinin nerede durduğunu özetliyor. Bir sorun yaşadığında hangi katmanın çalışmadığını bulmak, çözümün yarısıdır.
| Katman | Görevi | Nerede durur | Nasıl kontrol edilir |
|---|---|---|---|
| CS2 dedicated server | Oyunun kendisi | game/csgo | Sunucu açılıyor ve bağlanabiliyorsun |
| Metamod:Source 2.x | Eklenti yükleyicisi | game/csgo/addons/metamod | meta list, meta version |
| CounterStrikeSharp | C# eklenti platformu, .NET ile birlikte | game/csgo/addons/counterstrikesharp | meta list çıktısında görünmesi |
| Eklentiler | Admin, retake, VIP gibi özellikler | addons/counterstrikesharp/plugins/<Ad> | css_plugins list |
Kurulum sırası neden önemli?
Doğru sıra Metamod, sonra CounterStrikeSharp, en son eklentilerdir. Her katman bir alttakine ihtiyaç duyar: Metamod yüklenmiyorsa CounterStrikeSharp hiç başlamaz, CounterStrikeSharp yoksa eklentiler sessizce yok sayılır. Hepsini aynı anda atıp sunucuyu açtığında bir şey çalışmazsa sorunun nerede olduğunu anlamak zorlaşır.
Bu yüzden her katmandan sonra sunucuyu yeniden başlatıp kontrol et. Metamod'u kur, gameinfo.gi'yi düzenle, yeniden başlat ve meta list ile Metamod'un cevap verdiğini gör. Sonra CounterStrikeSharp'ı ekle, yeniden başlat ve meta list çıktısında listelendiğini doğrula. Eklentilere ancak bundan sonra geç ve onları da tek tek ekle.
Kurulumu canlı sunucuda değil, mümkünse bir kopyada dene. Oyun panelinde ikinci bir sunucu ya da aynı makinede ayrı bir klasör yeterli olur. Oyuncular bağlıyken yarım kalmış bir kurulum, haritanın hiç açılmamasına ya da sunucunun açılışta çökmesine yol açabilir.
gameinfo.gi dosyasına hangi satır eklenir?
Metamod'un yüklenmesini sağlayan şey game/csgo/gameinfo.gi dosyasındaki tek bir satırdır. Dosyayı bir metin düzenleyicide aç ve SearchPaths bloğunu bul. Bu blokta Game_LowViolence csgo_lv satırı bulunur; hemen altına Game csgo/addons/metamod satırını ekle. CounterStrikeSharp'ın resmî kurulum belgesi de tam olarak bu konumu tarif eder.
Satırın yeri önemlidir, çünkü motor arama yollarını sırayla okur. Satırı bloğun dışına ya da yanlış yere eklersen Metamod yüklenmez ve konsolda meta komutu tanınmaz. Girintiyi diğer satırlarla aynı tutmak şart değildir ama okunurluk için iyi bir alışkanlıktır; satırın sonuna kendin için bir yorum ekleyebilirsin.
Dosyayı kaydettikten sonra sunucuyu tamamen kapatıp yeniden aç. Sadece haritayı değiştirmek yetmez; gameinfo.gi yalnızca açılışta okunur. Bazı oyun panelleri bu satırı açılışta otomatik ekleyen bir seçenek sunar. Varsa kullan, çünkü güncellemelerden sonra satırı elle eklemeyi unutmak en yaygın sorundur.
- Dosya: game/csgo/gameinfo.gi
- Bul: Game_LowViolence csgo_lv
- Hemen altına ekle: Game csgo/addons/metamod
- Kaydet ve sunucuyu tamamen yeniden başlat
Klasör yapısı nasıl görünmeli?
Metamod ve CounterStrikeSharp arşivlerinin ikisi de bir addons klasörüyle başlar. İkisini de game/csgo içine çıkardığında klasörler birleşir ve doğru yapı kendiliğinden oluşur. En sık yapılan hata, arşivi bir seviye fazla ya da eksik çıkarıp game/csgo/addons/addons gibi iç içe klasörler oluşturmaktır.
CounterStrikeSharp, Metamod'a kendini addons/metamod klasörüne koyduğu küçük bir .vdf dosyasıyla tanıtır. Eklentiler ise addons/counterstrikesharp/plugins altında, her biri kendi klasöründe durur ve klasör adı içindeki .dll dosyasının adıyla aynı olmalıdır. Bir eklenti ilk çalıştığında ayar dosyasını genellikle addons/counterstrikesharp/configs/plugins altında kendi adıyla oluşturur.
| Yol (game/csgo altında) | İçerik |
|---|---|
| addons/metamod | Metamod dosyaları ve CounterStrikeSharp'ı tanıtan .vdf |
| addons/counterstrikesharp/api | Framework çekirdeği |
| addons/counterstrikesharp/dotnet | with-runtime paketiyle gelen .NET çalışma ortamı |
| addons/counterstrikesharp/plugins/OrnekPlugin/OrnekPlugin.dll | Her eklenti kendi klasöründe |
| addons/counterstrikesharp/configs | core.json, admins.json ve eklenti ayarları |
Eklentilerin çalıştığını nasıl kontrol edersin?
Sunucu konsoluna meta list yaz. Metamod çalışıyorsa yüklü eklentilerin listesi gelir ve CounterStrikeSharp bu listede görünür. Komut tanınmıyorsa Metamod hiç yüklenmemiştir; sorun neredeyse her zaman gameinfo.gi satırında ya da yanlış işletim sistemi paketindedir. meta version komutu da yüklü Metamod sürümünü gösterir.
CounterStrikeSharp tarafında css_plugins list komutu, framework'ün bulduğu eklentileri ve durumlarını listeler. Bir eklenti listede yoksa klasör adını, .dll adını ve eklentinin hangi CounterStrikeSharp sürümünü istediğini kontrol et. Listede olup hata veren bir eklenti için konsol çıktısına ve sunucu loglarına bak; eksik bağımlılık ya da uyumsuz API sürümü genellikle açıkça yazılır.
Eklentilerin çoğu, oyun içinde ve konsolda css_ önekiyle başlayan komutlar ekler. Yetki gerektiren komutlar için kendini admins.json dosyasına SteamID'nle eklemen gerekir; bu dosyanın yapısını kurulum rehberinde anlattık. Bir komut çalışmıyorsa önce yetkini, sonra eklentinin yüklü olup olmadığını kontrol et.
Hangi eklenti türleri popüler?
Topluluk sunucularının büyük kısmı birkaç ana kategoriden eklenti kullanır. Belirli bir eklenti seçerken bakman gereken şeyler isminden daha önemlidir: son güncelleme tarihi, desteklediği CounterStrikeSharp sürümü, açık kaynak olup olmadığı ve yorumlarda son CS2 yamasından sonra çalıştığına dair bilgi.
Eklentileri güvenilir yerlerden indir. Kaynak kodu açık, aktif olarak güncellenen projeler hem güvenlik hem de güncelleme sonrası destek açısından daha az risklidir. Kaynağı belirsiz bir .dll dosyası sunucunda istediği kodu çalıştırabilir; sunucu dosyalarına erişen bir eklentiye ancak güvendiğin kaynaktan geliyorsa izin ver.
- Admin araçları: kick, ban, susturma, harita değiştirme ve yetki grupları
- Retake: bomba kurulmuş senaryolar, doğma noktaları ve otomatik silah dağıtımı
- Practice ve warmup: smoke ve util pratiği, sınırsız para, round atlama
- Harita rotasyonu ve oylama: RTV, nominate, workshop haritası listeleri
- VIP: yetkili oyunculara rezerve slot, tag ya da ek özellikler
- Maç yönetimi: ready sistemi, knife round, demo kaydı
CS2 güncellemesinden sonra eklentiler neden çalışmıyor?
En yaygın neden basit: SteamCMD güncellemeyi uygularken gameinfo.gi dosyasını Valve'ın orijinaliyle değiştirir ve senin eklediğin Metamod satırı kaybolur. Sunucu sorunsuz açılır, oyuncular bağlanır, ama hiçbir eklenti yüklenmez ve meta komutu tanınmaz. Çözüm satırı yeniden eklemek ve sunucuyu yeniden başlatmaktır.
İkinci neden daha teknik: Metamod ve CounterStrikeSharp, oyunun içindeki belirli fonksiyonları imza ve offset bilgileriyle bulur. Valve büyük bir yama çıkardığında bu adresler değişebilir; framework yanlış yere bağlanmaya çalışır ve sunucu açılışta çöker ya da bazı özellikler çalışmaz. Bu durumda geliştiricilerin güncel gamedata ya da yeni sürüm yayımlamasını bekler, çıktığında Metamod'u ve CounterStrikeSharp'ı güncellersin.
Güncelleme gününde hızlı bir rutin işini kolaylaştırır. Önce gameinfo.gi satırını kontrol et, sonra meta list ve css_plugins list çıktısına bak, çökme varsa eklentileri geçici olarak bir yedek klasöre taşıyıp sunucunun eklentisiz açılıp açılmadığını dene. Sunucu eklentisiz açılıyorsa sorun bir eklentidedir; açılmıyorsa framework güncellemesini beklemen gerekir.
SwiftlyS2 gibi alternatif framework'ler kullanılabilir mi?
Evet. CounterStrikeSharp en yaygın seçenek olsa da tek seçenek değil. SwiftlyS2, daha önceki Swiftly projesinin ekibinden gelen, C# ile yazılmış eklentileri destekleyen ve aktif olarak geliştirilen bir framework'tür. Eski Swiftly sürümüyle çalışan bir sunucun varsa projenin güncel duyurularından hangi sürümün desteklendiğini kontrol et.
Framework'ler arasında eklentiler doğrudan taşınmaz: CounterStrikeSharp için yazılmış bir eklenti SwiftlyS2'de, SwiftlyS2 eklentisi de CounterStrikeSharp'ta çalışmaz. Bu yüzden framework seçimini, kullanmak istediğin eklentilerin hangi platform için yazıldığına göre yap. İkisini aynı sunucuda çalıştırmak teknik olarak bazı durumlarda mümkün olsa da hata ayıklamayı zorlaştırır; yeni başlıyorsan tek framework ile ilerle.
GSLT ve Valve kuralları eklentileri nasıl etkiler?
Herkese açık bir CS2 sunucusu, App ID 730 için oluşturulmuş bir Game Server Login Token (GSLT) ile çalışır. Token Steam hesabına bağlıdır ve Valve, kurallarını ihlal eden sunucuların token'ını yasaklayabilir. Token yasaklandığında sunucu listede görünmez.
Eklenti seçerken bunu aklında tut. Valve'ın topluluk sunucusu kuralları, oyunculara sahip olmadıkları eşyaları (silah kaplamaları, bıçaklar, eldivenler) vermeyi ya da envanter sistemini taklit etmeyi yasaklar; bu tür eklentiler token yasağının en bilinen nedenidir. Oyuncuyu yanıltan sahte bilgiler göstermek de aynı risk grubundadır.
Kurallar zaman zaman güncellenir, bu yüzden güncel metni Valve'ın kendi duyurularından takip et. Genel ilke basit: oyuna oynanış özellikleri eklemek serbesttir; Valve'ın ekonomisini ya da envanter sistemini taklit etmek değildir.
CS2 sunucusuna 7 adımda eklenti kur
- 1
Yedek al ve sunucuyu durdur
game/csgo klasörünün, en azından cfg klasörü ile gameinfo.gi dosyasının bir kopyasını al ve sunucuyu tamamen kapat.
- 2
Metamod:Source 2.x'i çıkar
Sunucunun işletim sistemine uygun Metamod:Source 2.x dev paketini indir ve içindeki addons klasörünü game/csgo içine çıkar.
- 3
gameinfo.gi'yi düzenle
game/csgo/gameinfo.gi dosyasında Game_LowViolence csgo_lv satırını bul, hemen altına Game csgo/addons/metamod ekle ve kaydet.
- 4
Metamod'u doğrula
Sunucuyu başlat, konsola meta list yaz ve komutun tanındığını gör. Tanınmıyorsa satırın yerini ve paket türünü kontrol et.
- 5
CounterStrikeSharp'ı kur
İlk kurulumda with-runtime paketini game/csgo içine çıkar, sunucuyu yeniden başlat ve meta list çıktısında CounterStrikeSharp'ı gör.
- 6
Eklentileri tek tek ekle
Her eklentiyi addons/counterstrikesharp/plugins altında kendi klasörüne koy, yeniden başlat ve css_plugins list ile yüklendiğini kontrol et.
- 7
Ayarla ve güncelleme rutini kur
configs/plugins altındaki ayar dosyalarını düzenle, admins.json'a yetkilileri ekle ve her CS2 güncellemesinden sonra gameinfo.gi satırını yeniden kontrol et.
Sık Sorulan Sorular
CS:GO'daki SourceMod eklentilerini CS2'de kullanabilir miyim?
Hayır. CS2 Source 2 motorunda çalışır ve SourceMod'un .smx eklentileri bu motora yüklenemez. Eski eklentilerin çoğunun fikri CS2 için CounterStrikeSharp ya da SwiftlyS2 üzerinde yeniden yazıldı. Aradığın özelliğin CS2 sürümünü bul; eski SourcePawn kodunu taşımaya çalışmak yerine aynı işi yapan güncel bir C# eklentisi kullanmak hem daha hızlı hem de daha güvenli olur.
meta list yazınca Unknown command hatası alıyorum, neden?
Bu, Metamod'un hiç yüklenmediği anlamına gelir. İlk olarak gameinfo.gi dosyasında Game csgo/addons/metamod satırının Game_LowViolence csgo_lv satırının hemen altında olduğunu kontrol et. Satır doğruysa addons klasörünün game/csgo içinde, iç içe değil, doğru seviyede olduğuna ve indirdiğin paketin sunucunun işletim sistemine uygun olduğuna bak. Değişiklikten sonra sunucuyu tamamen yeniden başlatmayı unutma.
with-runtime paketini her güncellemede indirmem gerekir mi?
Genellikle hayır. with-runtime paketi .NET çalışma ortamını da içerir ve ilk kurulumda gereklidir. Sonraki güncellemelerde çoğu zaman yalnızca framework dosyalarını içeren küçük paket yeterlidir. Ancak sürüm notları yeni bir .NET sürümüne geçildiğini söylüyorsa with-runtime paketini tekrar kurman gerekir. Emin değilsen with-runtime paketiyle güncellemek güvenli yoldur; sadece dosya boyutu daha büyüktür.
Eklenti ayarlarını değiştirdikten sonra sunucuyu yeniden başlatmalı mıyım?
Eklentiye göre değişir. Bazı eklentiler ayarlarını harita değiştiğinde ya da kendi yeniden yükleme komutuyla okur, bazıları yalnızca açılışta okur. CounterStrikeSharp güncellenmiş .dll dosyalarını yeniden yükleyebilse de ayar değişikliklerinde en güvenli yöntem harita değişimi ya da sunucuyu yeniden başlatmaktır. Eklentinin belgesinde bir reload komutu varsa onu kullanmak oyuncuları düşürmeden ayarı uygulamanı sağlar.
Skin ve bıçak eklentileri sunucumun yasaklanmasına neden olur mu?
Olabilir. Valve'ın topluluk sunucusu kuralları, oyunculara sahip olmadıkları silah kaplamalarını, bıçakları ya da eldivenleri göstermeyi yasaklar ve bu tür eklentiler GSLT yasaklarının bilinen bir nedenidir. Token yasaklanırsa sunucu listede görünmez. Topluluğunu uzun vadede büyütmek istiyorsan bu kategoriden uzak durmak, kısa süreli ilgiden daha değerlidir.
Eklenti kurmak için kendi VPS'ime mi ihtiyacım var?
Hayır. Dosya yöneticisi ve konsol erişimi sunan bir oyun paneli yeterlidir; game/csgo klasörüne arşiv yükleyip açabiliyorsan kurulum aynı şekilde yapılır. Kendi VPS'in sana daha fazla kontrol verir ama güncellemeleri, yedekleri ve güvenliği de senin yönetmeni gerektirir. TheCrewHost'un CS2 sunucularında dosya yöneticisi ve konsol panelden açılır, İstanbul lokasyonu da Türkiye'deki oyuncular için düşük ping sağlar.
