Garry's Mod (GMod) sunucuları yıllardır Türk oyuncuların en sevdiği topluluk alanlarından biri: DarkRP, TTT, Prop Hunt, Sandbox... Hepsinin arkasında aynı yazılım çalışır: Source motorunun dedicated server'ı, yani srcds. Bu rehberde Garry's Mod sunucu kurma sürecini baştan sona anlatıyoruz: SteamCMD ile dosyaları indirme, başlatma parametreleri, oyun modu ve harita seçimi, Workshop koleksiyonu, server.cfg ve zorunlu GSLT anahtarı.

Kaynağımız Facepunch'ın resmi Garry's Mod wikisi (wiki.facepunch.com/gmod), Facepunch'ın GitHub'daki garrysmod deposu ve port bilgisi için Steam Destek sayfası. Komutları bu sayfalardaki haliyle verdik.

Gereksinimler

Gereksinimler: Windows veya Linux çalışan bir bilgisayar ya da sunucu. Wiki, macOS dedicated..., SteamCMD, Bir Steam hesabı ve Garry's Mod'a sahip olmak, Eklenecek içerik ve...
  • Windows veya Linux çalışan bir bilgisayar ya da sunucu. Wiki, macOS dedicated server'ının artık dağıtılmadığını belirtiyor.
  • SteamCMD: Valve'in komut satırı Steam istemcisi. Kurulumu için SteamCMD rehberimize bakabilirsiniz.
  • Bir Steam hesabı ve Garry's Mod'a sahip olmak: GSLT oluşturmak için Steam'de doğrulanmış bir satın alma gerekir.
  • Eklenecek içerik ve haritalar için yeterli disk alanı. Facepunch kesin bir donanım değeri vermiyor; ihtiyaç, oyun modu ve eklenti yüküne göre değişir.

SteamCMD ile kurulum (Windows)

Garry's Mod dedicated server'ının SteamCMD uygulama kimliği (app id) 4020'dir. Sunucu dosyaları anonim girişle indirilir, yani Steam hesabınızla giriş yapmanız gerekmez.

bat
steamcmd.exe +login anonymous +force_install_dir c:\gmod_server\ +app_update 4020 validate +quit

Aynı komutu tekrar çalıştırmak sunucuyu günceller. validate dosyaların bütünlüğünü kontrol eder.

Linux kurulumu

Linux'ta da süreç aynıdır. Wiki, sunucuyu ayrı bir kullanıcıyla (önerilen ad steam) çalıştırmanızı öneriyor:

bash
steamcmd +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit
cd ~/gmodds/
./srcds_run -game garrysmod +maxplayers 32 +map gm_construct

64 bit bir sistemde linux32/steamcmd: No such file or directory hatası alırsanız 32 bit kütüphaneler eksiktir; wiki bu konuda Valve Developer Wiki'deki "32-bit libraries on 64-bit Linux systems" bölümüne yönlendiriyor. srcds_run sunucu çökerse yeniden başlatır ama terminal kapanınca sunucu da kapanır; kalıcı çalıştırma için systemd servisi veya tmux/screen kullanabilirsiniz.

Beta dalları

Wiki, app_update 4020 için üç beta dalı listeliyor: dev, prerelease ve x86-64. Örneğin 64 bit dala geçmek için:

bash
steamcmd +login anonymous +app_update 4020 -beta x86-64 validate +quit

Kararlı dala dönmek için -beta public kullanmanız gerekir; wiki, sadece -beta parametresini silmenin yetmediğini, SteamCMD'nin son etkinleştirilen beta dalını güncellemeye devam edeceğini vurguluyor.

Sunucuyu başlatma ve parametreler

Sunucuyu başlatma ve parametreler: -console, -game garrysmod, +maxplayers 20, +gamemode sandbox

Windows'ta wikinin önerdiği başlatma satırı şöyle:

bat
srcds.exe -console +maxplayers 20 +gamemode sandbox +map gm_construct +sv_setsteamaccount <GSLT_ANAHTARINIZ>
ParametreAçıklama
-consoleSunucuyu konsol modunda açar
-game garrysmodOyun klasörünü belirtir (Linux örneğinde kullanılır)
+maxplayers 20Oyuncu slot sayısı
+gamemode sandboxBaşlangıç oyun modu (gamemodes altındaki klasör adı)
+map gm_constructBaşlangıç haritası (.bsp uzantısı olmadan)
+sv_setsteamaccountGSLT anahtarı (zorunlu)
+host_workshop_collectionWorkshop koleksiyon kimliği
-tickrateHedef tick hızı; wiki 30-128 aralığını öneriyor, varsayılan 66.6666
-p2pPeer-to-peer modu; wiki uzun süredir bozuk olduğunu not ediyor
+&lt;convar&gt; &lt;değer&gt;Herhangi bir konsol değişkenini başlangıçta ayarlar

Çalışan sunucuda haritayı düzgünce değiştirmek için changelevel gm_flatgrass komutunu kullanın. Oyun modu gamemode değişkeniyle değiştirilir ve harita değişiminde etkin olur.

Portlar

Steam Destek sayfasındaki "Dedicated or Listen Servers" bölümüne göre Source tabanlı sunucular varsayılan olarak UDP 27015 (oyun trafiği) ve TCP 27015 (SRCDS RCON) portlarını kullanır. Evden barındırıyorsanız bu portları yönlendirmeniz, VDS'te ise güvenlik duvarında açmanız gerekir. Diğer yaygın portlar için bilinen port numaraları rehberimize bakabilirsiniz.

Oyun modları

Facepunch'ın GitHub'daki garrysmod deposunda gamemodes klasörü base, sandbox ve terrortown (Trouble in Terrorist Town) modlarını içeriyor. Wiki, +gamemode değerinin garrysmod/gamemodes/ altındaki veya herhangi bir eklentinin (Workshop eklentileri dahil) gamemodes/ klasöründeki klasör adı olduğunu açıklıyor. DarkRP, Prop Hunt veya Murder gibi modları kullanmak için ilgili modu eklenti ya da Workshop üzerinden sunucuya eklemeniz, ardından klasör adını +gamemode ile vermeniz gerekir. Workshop eklentisinin klasör adını bilmiyorsanız eklenti açıklamasına bakın.

Workshop koleksiyonu ile eklenti yükleme

Dedicated sunucu, eklentileri doğrudan bir Workshop koleksiyonundan indirip yükleyebilir. Steam'de bir koleksiyon oluşturun, kimliğini (URL'deki id değeri) not alın ve başlatma satırına ekleyin:

bat
srcds.exe -console +maxplayers 20 +host_workshop_collection 157384458 +gamemode zombiesurvival +map zs_cleanoffice_v2
  • Koleksiyon herkese açık (public) veya liste dışı (unlisted) olmalı; aksi halde srcds koleksiyona erişemez.
  • İç içe koleksiyonlar desteklenir; alt koleksiyonlar da indirilir.
  • Sunucu her yeniden başladığında eklentilerin güncel olup olmadığını kontrol eder. host_workshop_autoupdate 0 bu otomatik güncellemeyi kapatır.
  • Sunucudaki harita koleksiyondaki bir .bsp ile aynı adı taşıyorsa, harita oyuncular için otomatik olarak indirilecek şekilde işaretlenir.

Wikiye göre 2026.09.22 ve sonraki sürümlerde koleksiyon yerine ya da koleksiyona ek olarak cfg/srcds_workshop_ids.txt dosyası da kullanılabiliyor. Dosyayı elle oluşturmanız gerekir:

text
"my_workshop_addons"
{
	"1"	{ "wsid" "123277559" }
	"2"	{ "wsid" "111412589" }
}

Oyunculara içerik gönderme

Lua dosyaları ayrı bir süreçle indirilir ve ek ayar gerektirmez; model, materyal ve ses gibi içerikler için wiki üç yol sayıyor: WorkshopDL (resource.AddWorkshop ile Workshop'tan, en hızlı yol), FastDL (sv_downloadurl ile ayrı bir web sunucusundan) ve ServerDL (sv_allowdownload 1; 64 kb/s ile çok yavaş ve wiki tarafından eskimiş kabul ediliyor). Wiki ayrıca sv_allowdownload açıkken değiştirilmiş istemcilerin dosya isteği spam'leyerek sunucuyu ciddi şekilde yavaşlatabileceği uyarısını yapıyor.

lua
-- garrysmod/lua/autorun/server/workshop.lua
resource.AddWorkshop("150455514")

server.cfg ve önemli ayarlar

server.cfg ve önemli ayarlar: hostname, sv_password, rcon_password, sv_location

Sunucu ayarları garrysmod/cfg/server.cfg dosyasında tutulur (Facepunch deposunda bu dosya boş olarak gelir). Sık kullanılan değişkenler:

cfg
hostname "Benim GMod Sunucum"
sv_password ""
rcon_password "UzunVeRastgeleBirSifre"
sv_location tr
sv_allowcslua 0
DeğişkenAçıklama
hostnameSunucu listesinde görünen ad
sv_passwordBoş değilse sunucuya şifreyle girilir
rcon_passwordUzaktan yönetim (RCON) şifresi
sv_locationSunucu listesindeki bayrak; ISO 3166-1 alpha-2 kodu, en fazla 5 karakter (ör. tr, eu)
sv_allowcsluaVarsayılan 1; istemcilerin lua_run_cl gibi komutlarla istemci tarafı Lua çalıştırmasına izin verir
hide_server1 yapılırsa sunucu, sunucu tarayıcısında gizlenir
host_workshop_autoupdate0 yapılırsa Workshop içerikleri başlangıçta güncellenmez

Diğer oyunların içeriğini bağlama (mount)

Counter-Strike: Source veya Team Fortress 2 içeriğine ihtiyaç duyan eklentiler için garrysmod/cfg/mount.cfg dosyası kullanılır. Linux wiki sayfası, içerik oyunlarını SteamCMD ile ayrı bir klasöre indirmeyi gösteriyor (örneğin TF2 için app id 232250). Ardından mount.cfg içine yol eklenir:

text
"mountcfg"
{
	"tf"	"/home/steam/content/tf2/tf"
}

GSLT: Steam Game Server Login Token

Wikiye göre Mayıs 2020 güncellemesinden bu yana tüm Garry's Mod sunucularının bir GSLT'ye sahip olması gerekiyor; GSLT olmayan sunucular sunucu listesi sıralamasında ciddi ceza alıyor. GSLT ayrıca IP adresiniz değişse bile oyuncuların sunucunuzu bulmasını sağlar.

  • Steam hesabınızla steamcommunity.com/dev/managegameservers sayfasına girin.
  • "App ID of the base game" alanına Garry's Mod için her zaman 4000 yazın (sunucu dosyalarının 4020 olan app id'si ile karıştırmayın).
  • "Memo" alanına sunucuyu tanımanızı sağlayacak bir not yazın ve Create'e basın.
  • Oluşan token'ı başlatma satırına +sv_setsteamaccount TOKEN olarak ekleyip sunucuyu yeniden başlatın.

Facepunch sunucu kuralları

Facepunch, tüm sunucu sahiplerinin uyması gereken "Server Operator Rules" kurallarını yayınlıyor; kurallara uymayan sunucular kara listeye alınıyor. Öne çıkanlar: sahte sunucu bilgisi (özellikle oyuncu sayısı) göstermek yasak; DDoS önleme çözümü ping gibi bilgileri etkiliyorsa en azından doğru sv_location ayarlanmalı; oyuncuların data klasörünü bozmak, oyunlarını kasten çökertmek, sunucudan çıkmalarını engellemek, kişisel bilgilerini yaymak veya üçüncü parti yazılım kurmalarını istemek gibi kötü niyetli davranışlar yasak. Ayrıca Facepunch'ın genel topluluk sunucusu yönergelerine uymanız gerekir. Kuralların tamamını resmi sayfadan okumanızı öneririz.

Pterodactyl panelde Garry's Mod

Pterodactyl'in resmi tanıtımı Garry's Mod'u çekirdek desteklenen oyunlar arasında sayıyor. Barındırılan bir panelde SteamCMD kurulumu egg tarafından yapılır; harita, oyun modu, oyuncu sayısı, Workshop koleksiyon kimliği ve GSLT gibi değerleri genellikle Startup sekmesindeki değişkenlerden girersiniz. server.cfg ve Lua dosyalarını dosya yöneticisi veya SFTP ile düzenlersiniz. Panelin kullanımı için Pterodactyl rehberimize bakın.

Sık Sorulan Sorular

Garry's Mod sunucusunun SteamCMD app id'si nedir?

Dedicated server dosyaları için 4020. GSLT oluştururken ise oyunun app id'si olan 4000 kullanılır.

GSLT olmadan sunucu açabilir miyim?

Wiki GSLT'yi zorunlu olarak tanımlıyor; GSLT'siz sunucular sunucu listesi sıralamasında ciddi ceza alır. Test sunucunuzu listede göstermek istemiyorsanız +hide_server 1 kullanabilirsiniz.

Workshop koleksiyonum indirilmiyor, neden?

En sık neden koleksiyonun gizli (private) olmasıdır; herkese açık veya liste dışı yapın. Koleksiyon kimliğini doğru yazdığınızdan ve parametrenin +host_workshop_collection olarak verildiğinden emin olun.

Oyuncular kırmızı ERROR modeller ve mor-siyah dokular görüyor, ne yapmalıyım?

Bu, oyuncuların içeriği indirmediği anlamına gelir. Wikinin önerdiği en hızlı yol, ilgili Workshop eklentisini sunucu tarafında resource.AddWorkshop ile işaretlemektir. Başka oyunların içeriği gerekiyorsa sunucuda mount.cfg ile bağlandığından emin olun.

Oyun ve yazılım adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen geliştiricilerle ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: SteamCMD nedir? · CS2 sunucu kurulumu · Rust sunucu kurulumu · Pterodactyl panel rehberi · DDoS koruma rehberi