SA-MP sunucu kurulumu, resmî sunucu paketini açmak, server.cfg dosyasındaki satırları doldurmak, gamemode ve filterscript dosyalarını yerleştirmek ve 7777/UDP portunu açmakla tamamlanır. San Andreas Multiplayer, GTA: San Andreas üzerine kurulu ve Pawn diliyle betiklenen bir çok oyunculu platformdur; sunucu yazılımı hem Windows hem Linux için dağıtılır ve tek bir yapılandırma dosyasıyla yönetilir.
Bu rehber kurulumu işletim sisteminden bağımsız anlatıyor. Her adımda hem Windows hem Linux karşılığını bulacaksınız. Sunucuyu bir sanal sunucuda çalıştıracaksanız önce VDS aldıktan sonraki ilk ayarları tamamlayın; kullanıcı açma, güncelleme ve SSH sıkılaştırma orada anlatılıyor.
Kurulum Öncesi: Donanım ve Sunucu Paketi#
SA-MP sunucusunun yükünü slot sayısı değil, çalıştırdığınız Pawn kodu belirler. Betik yürütme büyük ölçüde tek iş parçacığında ilerlediği için çok çekirdekli ama düşük frekanslı bir işlemci, az çekirdekli yüksek frekanslı bir işlemciden daha kötü sonuç verir. Roleplay sunucularında MySQL sorguları da aynı makineye biniyorsa disk gecikmesi doğrudan oyun içi takılmaya dönüşür.
| Sunucu tipi | RAM | İşlemci | Disk |
|---|---|---|---|
| Test / küçük freeroam, 20-50 slot | 8 GB | AMD Ryzen 9 3900X ve üzeri | 50 GB NVMe |
| Aktif DM veya stunt, 50-100 slot | 10-12 GB | AMD Ryzen 9 7900X | 50-100 GB NVMe |
| Roleplay, MySQL aynı makinede | 16 GB | AMD Ryzen 9 7900X | 100 GB NVMe |
| 100+ oyuncu, çok betikli büyük proje | 32 GB ve üzeri | AMD Ryzen 9 7950X | 200 GB NVMe |
Oyuncularınız Türkiye’deyse Türkiye lokasyonlu bir yüksek frekanslı Ryzen VDS ping farkını hemen hissettirir; SA-MP’de 40 ms ile 90 ms arasındaki fark araç senkronizasyonunda gözle görülür. Donanım tarafını netleştirmek isterseniz VDS nedir sayfası temel farkları açıklıyor.
-
open.mp resmî sitesi (sunucu paketi ve doküman)Açık kaynakİndir
-
Notepad++ (server.cfg ve .pwn düzenleme)İndir
-
WinSCP (dosya aktarımı)İndir
-
PuTTY (SSH istemcisi)İndir
Klasik SA-MP sunucu paketini yalnızca SA-MP’nin kendi resmî sitesinden edinin. Arama sonuçlarında çıkan üçüncü taraf arşivleri kullanmayın.
Paketi açtığınızda karşınıza çıkacak klasör yapısı her iki platformda da aynıdır. Windows’ta çalıştırılabilir dosya samp-server.exe, Linux’ta ise ayrıca çalıştırma izni vermeniz gereken bir ikili dosyadır:
/samp
├── gamemodes/ # derlenmiş .amx oyun modları
├── filterscripts/ # yardımcı .amx betikleri
├── plugins/ # .so (Linux) veya .dll (Windows) eklentiler
├── scriptfiles/ # betiklerin okuyup yazdığı veri dosyaları
├── npcmodes/ # NPC betikleri
├── pawno/ # Pawn derleyicisi ve include dosyaları
├── server.cfg # tüm sunucu ayarları
└── server_log.txt # sunucu günlüğü
server.cfg Dosyası Satır Satır#
SA-MP’nin tüm ayarları tek bir düz metin dosyasında toplanır: server.cfg. Biçim son derece basittir; her satır bir anahtar, bir boşluk ve değerdir. Eşittir işareti, tırnak, noktalı virgül yok. Aşağıda üretim için makul bir başlangıç dosyası var:
echo Sunucu yapilandirmasi yukleniyor...
lanmode 0
rcon_password BuSifreyiMutlakaDegistir
maxplayers 100
port 7777
hostname Batihost Roleplay | TR
gamemode0 benimmodum 1
filterscripts anticheat adminspec
plugins streamer.so mysql.so
announce 1
query 1
chatlogging 0
weburl batihost.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
language Turkish
timestamp 1
logtimeformat [%H:%M:%S]
Şimdi kritik satırların tek tek ne yaptığına bakalım. Buradaki her satır bir davranışı doğrudan değiştirir; “ne işe yaradığını bilmediğim satırı silerim” yaklaşımı SA-MP’de sunucunun hiç açılmamasıyla sonuçlanabiliyor.
- hostname
- Sunucu tarayıcısında görünen isimdir. Boşluk içerebilir, tırnak istemez ve satırın sonuna kadar okunur. Renk kodu desteklemez; süslemeyi ayraç karakterleriyle yaparsınız. İsim seçimi doğrudan tıklanma oranını etkiler, uzun ve okunmaz isimlerden kaçının.
- rcon_password
- Uzaktan yönetim şifresi. Paketle gelen varsayılan değer herkesçe bilinir; ilk iş bunu değiştirmektir. En az 16 karakter, büyük-küçük harf ve rakam karışımı kullanın.
- maxplayers
- Aynı anda bağlanabilecek en fazla oyuncu sayısı, yani slot. Slot sayısını gerçekçi tutun: 500 slotlu boş bir sunucu, 50 slotlu dolu bir sunucudan daha kötü görünür.
- port
- Sunucunun dinlediği UDP portu, varsayılan 7777. Aynı makinede birden fazla SA-MP sunucusu çalıştıracaksanız her birine ayrı port verin (7777, 7778, 7779) ve hepsini güvenlik duvarında açın.
- gamemode0
- Çalıştırılacak oyun modu. Uzantısız yazılır:
gamemodes/benimmodum.amxdosyası içingamemode0 benimmodum 1. Sondaki sayı rotasyondaki ağırlıktır. Birden fazla mod döndürmek istersenizgamemode1,gamemode2diye devam edersiniz. - filterscripts
- Oyun modundan bağımsız çalışan yardımcı betikler. Boşlukla ayrılmış, yine uzantısız yazılır. Admin paneli, anti-hile katmanı, harita eklentileri genelde filterscript olarak dağıtılır. Avantajı sunucuyu yeniden başlatmadan yüklenip kaldırılabilmeleridir.
- plugins
- Sunucuya yeni yetenekler ekleyen ikili eklentiler. Linux’ta
.so, Windows’ta.dlluzantısı yazılır. Streamer ve MySQL eklentileri neredeyse her ciddi projede bulunur. Yanlış platformun dosyasını yazarsanız sunucu açılışta eklentiyi yükleyemediğini söyler. - announce
- 1 yapıldığında sunucu kendini ana listeye bildirir ve oyuncular sunucu tarayıcısında görebilir. 0 ise yalnızca doğrudan IP ile girilir. Liste hizmetinin nasıl çalıştığı platforma göre değişir; open.mp kendi sunucu listesini kullanır.
- query
- Sunucu tarayıcısının isim, oyuncu sayısı ve ping bilgisi sorgulamasına izin verir. 0 yaparsanız sunucunuz listede “sorgu yanıtı yok” durumunda kalır.
- lanmode
- 1 yapıldığında sunucu yalnızca yerel ağ üzerinden erişilebilir hâle gelir. İnternete açık sunucularda daima 0 olmalıdır.
onfoot_rate, incar_rate ve weapon_rate değerleri istemcinin sunucuya kaç milisaniyede bir konum bilgisi göndereceğini belirler. Düşürmek senkronizasyonu iyileştirir ama bant genişliğini ve CPU yükünü artırır. Kalabalık sunucularda varsayılanlarla başlayın, sorun görürseniz kademeli değiştirin.Gamemode ve Filterscript Yükleme#
SA-MP’de kod iki katmanda çalışır. Gamemode sunucunun ana oyun mantığıdır ve aynı anda yalnızca biri çalışır. Filterscript’ler ise bunun yanında koşan bağımsız betiklerdir; birden fazlası aynı anda aktif olabilir. Ayrım pratikte şuna denk gelir: roleplay sisteminizin tamamı gamemode’dur, admin paneliniz filterscript.
-
Derlenmiş dosyayı doğru klasöre koyun#
Oyun modunun
.amxdosyasınıgamemodes/, filterscript’in.amxdosyasınıfilterscripts/klasörüne kopyalayın. Klasöre.pwnkoymanız bir işe yaramaz; sunucu kaynak kodu okumaz. -
server.cfg satırlarını güncelleyin#
gamemode0 benimmodum 1 filterscripts anticheat adminspec araclarUzantı yazmayın.
gamemode0 benimmodum.amxyazarsanız sunucu dosyayı bulamaz. -
Betiğin ihtiyaç duyduğu klasörleri hazırlayın#
Çoğu gamemode, veri dosyalarını
scriptfiles/altında tutar. Betik dokümanında “şu klasörü oluşturun” diyorsa mutlaka oluşturun; SA-MP eksik klasörü kendiliğinden yaratmaz ve kayıt işlemleri sessizce başarısız olur. -
Filterscript’i sunucu açıkken yönetin#
loadfs adminspec unloadfs adminspec reloadfs adminspecBu komutlar sunucu konsolundan ya da RCON ile çalıştırılır. Gamemode için karşılığı
changemode benimmodumya dagmxkomutudur; ikisi de tüm oyuncuları yeniden bağlanmaya zorlar.
Pawn Derleyici Mantığı: .pwn Dosyasından .amx’e#
Yeni başlayanların en çok takıldığı yer burası. SA-MP sunucusu Pawn kaynak kodunu doğrudan çalıştırmaz. Arada bir derleme adımı vardır ve akış şöyledir:
Yazdığınız.pwndosyası → Pawn derleyicisi → sunucunun çalıştırdığı.amxdosyası
Kaynak kodda tek bir karakter değiştirseniz bile yeniden derlemeniz gerekir. Derlemediğiniz sürece sunucu eski .amx dosyasını çalıştırmaya devam eder ve “değişikliğim neden görünmüyor” sorusu buradan doğar. Windows paketinde pawno/ klasöründeki editör hem yazma hem derleme işini yapar; komut satırından derlemek isterseniz derleyiciyi doğrudan çağırırsınız:
# Linux: pawncc derleyicisiyle
cd /opt/samp
./pawno/pawncc gamemodes/benimmodum.pwn -o gamemodes/benimmodum.amx -i pawno/include
# Windows (cmd):
pawno\pawncc.exe gamemodes\benimmodum.pwn -o gamemodes\benimmodum.amx -i pawno\include
-i parametresi include dizinini gösterir. Betiğin başındaki #include <a_samp> gibi satırlar bu dizinden okunur; eklenti kullanan betikler kendi include dosyalarını da (örneğin streamer için gereken dosya) aynı klasöre ister. Derleme çıktısındaki warning satırları çoğu zaman göz ardı edilebilir, ama error gördüğünüz anda .amx üretilmez.
.amx dosyası yerinde kalır. Yani sunucu sorunsuz açılır, siz de değişikliğin işlediğini sanırsınız. Derleme sonrası .amx dosyasının değişiklik tarihine bakmayı alışkanlık hâline getirin; destek taleplerinde en sık gördüğümüz “kod çalışmıyor” vakası aslında derlenmemiş koddur.Eklentiler (Plugins) ve include Dosyaları#
Eklentiler, Pawn’ın tek başına yapamadığı işleri sunucuya kazandırır: veritabanı bağlantısı, nesne akışı (streaming), gelişmiş dosya işlemleri, soket erişimi. İki parçadan oluşurlar ve ikisi de gereklidir:
- İkili dosya — Linux’ta
.so, Windows’ta.dll.plugins/klasörüne konur veserver.cfgiçindekipluginssatırına yazılır. - include dosyası —
.incuzantılıdır,pawno/include/klasörüne konur. Derleme sırasında kullanılır, sunucunun çalışma anında bir işlevi yoktur.
Bir eklentiyi kurup include dosyasını unutursanız derleme aşamasında “undefined symbol” hataları alırsınız. Tersi durumda, yani include var ama .so dosyası eksikse, derleme sorunsuz geçer ama sunucu açılışta eklentiyi yükleyemediğini bildirir ve ilgili fonksiyonlar çalışmaz. Açılış günlüğünü okumak bu iki durumu ayırt etmenin en hızlı yoludur.
Loading plugin: streamer.so
*** Streamer Plugin: Loaded
Loading plugin: mysql.so
Failed (plugins/mysql.so: cannot open shared object file)
Portlar, Güvenlik Duvarı ve Sunucu Listesi#
SA-MP’nin port tarafı MTA veya FiveM’e göre çok daha sade: tek bir UDP portu. Oyun trafiği de sunucu tarayıcısının sorgusu da aynı porttan geçer.
| Port | Protokol | Görev | Kapalıysa ne olur? |
|---|---|---|---|
| 7777 | UDP | Oyun trafiği ve query | Oyuncular bağlanamaz, sunucu listede yanıt vermez |
| 7778, 7779… | UDP | Aynı makinedeki ek sunucular | Yalnızca birden fazla sunucu çalıştırıyorsanız gerekir |
Linux tarafında UFW ile açmak tek satır:
sudo ufw allow 7777/udp
sudo ufw reload
sudo ufw status numbered
# Sunucunun portu gerçekten dinleyip dinlemediğini doğrulayın:
sudo ss -lunp | grep 7777
Windows Server kullanıyorsanız gelen kuralı PowerShell ile oluşturabilirsiniz:
New-NetFirewallRule -DisplayName "SA-MP" -Direction Inbound -Protocol UDP -LocalPort 7777 -Action Allow
Kural yazımının ayrıntıları ve iptables karşılıkları için sunucu güvenlik duvarı yapılandırması sayfasına, portun dışarıdan gerçekten açık olup olmadığını test etmek için port açma ve test etme rehberine bakın. Sunucu ayakta ve port açık olduğu hâlde listede görünmüyorsa sırayla announce, query ve lanmode satırlarını kontrol edin.
Linux’ta Arka Planda 7/24 Çalıştırma#
SSH oturumunu kapattığınızda sunucunun da kapanmaması için süreci oturumdan bağımsız hâle getirmelisiniz. İki yol var: hızlı çözüm screen, kalıcı çözüm systemd servisi. Önce sunucuyu root ile değil, ayrı bir kullanıcıyla çalıştıracak şekilde hazırlayın:
sudo adduser --disabled-password --gecos "" samp
sudo mkdir -p /opt/samp
sudo chown -R samp:samp /opt/samp
sudo chmod +x /opt/samp/samp03svr
Konsola sık müdahale edecekseniz screen pratiktir:
sudo -u samp -i
cd /opt/samp
screen -S samp ./samp03svr
# Ctrl+A ardından D ile oturumdan ayrılın
screen -r samp # geri dönmek için
Sunucunun makine yeniden başladığında kendiliğinden ayağa kalkmasını istiyorsanız systemd doğru araçtır:
[Unit]
Description=SA-MP Sunucusu
After=network-online.target
[Service]
Type=simple
User=samp
WorkingDirectory=/opt/samp
ExecStart=/opt/samp/samp03svr
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Dosyayı /etc/systemd/system/samp.service olarak kaydedip etkinleştirin:
sudo systemctl daemon-reload
sudo systemctl enable --now samp
sudo systemctl status samp
sudo journalctl -u samp -f
İki yöntemin karşılaştırması ve temel kabuk komutları için Linux temel komutları sayfasına bakabilirsiniz. Sunucuya SSH ile nasıl bağlanacağınızı bilmiyorsanız SSH bağlantı rehberi ilk durağınız olsun.
RCON Güvenliği#
RCON, SA-MP’nin uzaktan yönetim kanalıdır. Oyun içinden /rcon login <sifre> yazarak giriş yapar, ardından oyuncu atma, ban, gamemode değiştirme ve sunucu kapatma dahil her şeyi yapabilirsiniz. Gücü kadar riski de var: yetkiyi ele geçiren biri sunucunuzu tek komutla kapatabilir.
/rcon login GucluBirSifre
/rcon kick 5
/rcon ban 12
/rcon gmx
/rcon exit
Uygulamanız gereken dört kural şunlar:
- Varsayılan şifreyi ilk dakikada değiştirin. Paketle gelen değer herkesçe bilinir ve otomatik tarama yapan botların denediği ilk şeydir.
- Şifreyi paylaşmayın, gamemode içine gömmeyin. Bazı hazır betikler RCON şifresini kod içinde tutar; bu betikleri paylaşırken şifreniz de gider.
- Yetkiyi RCON üzerinden dağıtmayın. Moderatörlerinize gamemode’un kendi yetki sistemi üzerinden erişim verin. RCON şifresi yalnızca sunucu sahibinde kalmalı.
- Başarısız giriş denemelerini izleyin. Sunucu günlüğünde arka arkaya gelen başarısız RCON denemesi, birinin şifrenizi kırmaya çalıştığı anlamına gelir.
open.mp: Açık Kaynak ve Açık Ekosistem Alternatifi#
SA-MP’nin sunucu yazılımı kapalı kaynaktır ve geliştirme temposu uzun süredir yavaş. open.mp (Open Multiplayer) tam olarak bu boşluğu doldurmak için doğdu: açık kaynak kodlu, topluluk tarafından geliştirilen ve mevcut SA-MP ekosistemiyle uyumlu olmayı hedefleyen bir sunucu. İşin aslı, var olan Pawn betiklerinizin ve eklentilerinizin çoğunu değiştirmeden taşıyabiliyor olmanız bu projenin en güçlü yanı.
| Konu | Klasik SA-MP | open.mp |
|---|---|---|
| Kaynak kodu | Kapalı | Açık kaynak |
| Pawn betik uyumu | Yerel | Büyük ölçüde uyumlu |
| Yapılandırma dosyası | server.cfg (düz metin) | Kendi yapılandırma biçimi (SA-MP dosyasından geçiş destekli) |
| Hata düzeltme temposu | Yavaş | Topluluk katkısına açık |
| Sunucu listesi | Kendi ana listesi | Kendi listesi |
Yeni bir proje kuruyorsanız open.mp tarafından başlamak mantıklı; mevcut ve oturmuş bir sunucunuz varsa geçişi önce bir test kopyasında deneyin. Her iki durumda da yapılandırma anahtarlarının ve eklenti uyumluluğunun güncel hâlini projenin kendi dokümantasyonundan doğrulayın — bu rehberdeki server.cfg mantığı temel olarak aynı kalıyor, ama isimlendirme farkları olabiliyor.
Sık Karşılaşılan Kurulum Hataları#
Sunucu açılıyor ve hemen kapanıyor#
Neredeyse her zaman gamemode ile ilgilidir: gamemodes/ klasöründe belirtilen .amx dosyası yoktur, adı yanlış yazılmıştır ya da uzantı da yazılmıştır. server_log.txt dosyasının son satırlarına bakın; SA-MP hangi dosyayı bulamadığını açıkça yazar.
“Server closed the connection” hatası#
Oyuncu bağlanıyor ama anında düşüyorsa üç şeye bakın: sunucu sürümü ile istemci sürümünün uyumsuzluğu, dolu slot ve maxplayers değerinin altında kalan bir bağlantı sınırı. Betik tarafında bağlantı anında çalışan bir kod hata veriyorsa da aynı belirti oluşur.
Sunucu listede görünmüyor#
Sırayla announce 1, query 1 ve lanmode 0 satırlarını doğrulayın. Üçü de doğruysa portun dışarıdan gerçekten açık olduğunu kontrol edin. Sağlayıcı tarafındaki ağ filtresi UDP trafiğini kısıtlıyor olabilir; böyle bir şüpheniz varsa destek talebi açıp portun dışarıdan test edilmesini isteyin.
Eklenti yüklenmiyor#
Yanlış platformun dosyasını kullanıyor olabilirsiniz: Linux sunucuya .dll, Windows sunucuya .so yazılamaz. Linux’ta ayrıca 32 bit uyumluluk kütüphaneleri eksikse eklenti sessizce yüklenmez. Açılış günlüğündeki Loading plugin satırlarını sırayla okuyun.
Özetle#
SA-MP sunucusu kurmak dört adıma iner: resmî paketi açmak, server.cfg içinde hostname, rcon_password, maxplayers, port, gamemode ve plugins satırlarını doldurmak, derlenmiş .amx dosyalarını doğru klasörlere yerleştirmek ve 7777/UDP portunu açmak. Pawn kodunu her değiştirdiğinizde yeniden derlemeniz gerektiğini unutmayın; sunucu .pwn dosyasını hiç okumaz. Kurulumun ilk dakikasında RCON şifresini değiştirin, sunucuyu ayrı bir kullanıcıyla ve systemd servisi olarak çalıştırın, yedeğinizi 3-2-1 kuralına göre planlayın. Donanımda 8 GB RAM ve yüksek saat hızlı AMD Ryzen 9 alt sınırını koruyun; kaynak kullanımını sürekli görmek için sunucu izleme rehberindeki araçlardan birini kurun. Aynı türde ama GTA V üzerinde bir sunucu düşünüyorsanız FiveM sunucu kurulumu sayfası o platformun karşılığını anlatıyor.