İçeriğe geç
Önem Bilişim

MTA Roleplay Sunucusu Açmak İçin Bilmeniz Gereken Her Şey

MTA roleplay sunucusu açmak için oyun modu seçimi, MariaDB ve dbConnect bağlantısı, ACL güvenliği, yedekleme, yetkili ekibi ve donanım planı bir arada.

Oyun Sunucuları18 dk okuma
MTA roleplay sunucusu açmak rehberinin kapağı: koyu lacivert zeminde izometrik şehir bloğu, veritabanı katmanları, araba, sunucu kabini ve terminal penceresi.
İçindekiler
  1. Tek bakışta: MTA RP oyun modu seçenekleri
  2. MTA roleplay sunucusu açmak için oyun modu seçimi
  3. Sıfırdan yazmak
  4. Açık kaynak bir tabanı uyarlamak
  5. Satın alınan paket
  6. Sızdırılmış paketler: arka kapı ve hukuki risk
  7. Karar tablosu: hangi durumda hangisi
  8. Veritabanı: MariaDB kurulumu ve MTA bağlantısı
  9. Ubuntu 24.04’te MariaDB kurulumu
  10. Windows’ta MariaDB
  11. MTA’dan bağlantı: dbConnect
  12. Linux’ta MySQL modülü: libssl.so.1.1 hatası
  13. Hesap ve karakter sistemi
  14. ACL güvenliği: oyun moduna Admin yetkisi vermeyin
  15. Yetkili ekibi ve kurallar
  16. Yedekleme: her gün mysqldump
  17. Saldırılara karşı koruma
  18. Slot ve donanım planı
  19. Topluluk: Discord, forum ve tanıtım
  20. Sık yapılan seçim hataları
  21. Oyun modunu Admin grubuna eklemek
  22. Veritabanına root ile bağlanmak
  23. 3306 portunu internete açmak
  24. Yedeği aynı diskte tutmak ve hiç denememek
  25. Sunucuyu donduran sorgular
  26. Lisansını okumadığınız kodu kullanmak
  27. Sonradan oyun modu değiştirmek mümkün mü?
  28. MTA roleplay sunucu maliyeti
  29. Sık Sorulan Sorular
  30. MTA RP sunucusu açmak ne kadar tutar?
  31. Hazır RP paketi kullanılır mı?
  32. MTA RP için MySQL şart mı?
  33. RP sunucusuna oyuncu nasıl çekilir?
  34. MTA RP sunucusu kaç GB RAM ister?
  35. Veritabanını ayrı bir sunucuda tutmalı mıyım?
  36. Kaynaklar

MTA roleplay sunucusu açmak isteyen çoğu ekip için en sağlam yol, lisansı açık bir RP oyun modunu taban alıp kendi sunucusuna uyarlamak, veritabanı olarak aynı makinede çalışan MariaDB’yi kullanmak ve ilk günden günlük yedek almaktır. Deneyimli bir Lua geliştiriciniz ve aylarca zamanınız varsa oyun modunu sıfırdan yazmak size tam kontrol verir. İnternette dolaşan sızdırılmış RP paketleri ise arka kapı ve telif riski taşıdığı için kullanılmamalıdır.

Kurulum adımları, yani MTA RP server kurma işinin teknik başlangıcı, MTA server kurulum rehberinde anlatıldı. Bir RP sunucusunu ayakta tutan parçalar ise oyun modu, veritabanı, hesap ve karakter sistemi, ACL güvenliği, yetkili ekibi, yedekleme, saldırılara karşı koruma, donanım planı ve topluluktur. Komut ve konsol çıktıları Ekim 2026’da MTA:SA 1.6 sunucusu ve MariaDB 11.8 ile yaptığımız testten alındı.

Kısaca
  • Oyun modu: lisansı açık bir tabanı uyarlamak çoğu ekip için en hızlı ve güvenli yol
  • Veritabanı: aynı makinede MariaDB, yalnızca 127.0.0.1’den erişim ve ayrı bir kullanıcı
  • Linux uyarısı: MTA 1.6’nın MySQL modülü OpenSSL 1.1 kütüphanesini ister
  • Güvenlik: oyun moduna yalnızca ihtiyaç duyduğu ACL izinlerini verin
  • Yedek: her gün mysqldump, kopyası başka bir makinede
  • Kapasite: kesin sayı yerine ölçüm; performancebrowser ve ipb ile izleme

Tek bakışta: MTA RP oyun modu seçenekleri

Bir roleplay sunucusunun karakterini oyun modu, yani MTA RP gamemode belirler: hesap ve karakter oluşturma, para, envanter, araçlar, evler, meslekler ve yönetim komutları onun içindedir. Dört yoldan birini seçersiniz:

Sıfırdan yazmakAçık kaynak tabanı uyarlamakSatın alınan paketSızdırılmış paket
Başlama süresiAylarGünler ya da haftalarGünlerHemen
MaliyetGeliştirici zamanıÜcretsiz kod ve uyarlama emeğiPaket ücreti ve uyarlamaGörünürde ücretsiz
Kod üzerinde kontrolTamLisans koşullarıyla tamSatıcının izin verdiği kadarYok; kod denetlenemeyebilir
Güvenlik riskiEkibinize bağlıKodu okuyabildiğiniz için düşükSatıcıya bağlıYüksek: arka kapı riski
Hukuki durumKod sizindirLisansa uyduğunuz sürece açıkLisans sözleşmesine bağlıTelif ihlali

Altyapıyla uğraşmadan oyun moduna odaklanmak isterseniz MTA server kiralama paketleri MySQL bağlantısı ve kaynak kurulumunda ekip desteğiyle gelir. Kendi sunucunuzu kuracaksanız aşağıdaki seçenekleri tek tek değerlendirin.

MTA roleplay sunucusu açmak için oyun modu seçimi

Sıfırdan yazmak

Oyun modunu kendiniz yazarsanız her sistem sizin kurallarınıza göre çalışır ve kodun her satırını bilirsiniz. Bedeli zamandır: hesap, karakter, envanter, araç, ev, meslek ve yönetim sistemlerinin her biri ayrı bir iştir ve oyuncuların gördüğü her arayüz ayrıca yazılır. Bu yol, MTA’nın Lua betik dilini bilen ve aylarca düzenli çalışabilecek bir geliştiricisi olan ekipler için uygundur. Sunucuyu birkaç hafta içinde açmak istiyorsanız uygun değildir.

Açık kaynak bir tabanı uyarlamak

GitHub’da lisansı açık MTA roleplay oyun modları bulunur. Ekim 2026 itibarıyla en çok bilinenlerden OwlGaming’in kodu GPL-2.0 lisanslıdır, MySQL veritabanı ister ve geliştiricileri Docker ile kurulumu öneriyor; depodaki son güncelleme Haziran 2024 tarihli. eXo’nun vRoleplay oyun modu AGPL-3.0 lisanslıdır; fraksiyonlar, şirketler, evler ve envanter gibi sistemlerle gelir, depodaki son güncelleme Ağustos 2024 tarihli. Türk geliştiricilerin katkısıyla hazırlanan MIT lisanslı projectQ da bu tabanlardan biridir.

Bu yolun avantajı, çalışan sistemlerle başlayıp kodu okuyabilmenizdir. Dezavantajı, tabanın sizin istediğiniz oyun tarzına ve MTA’nın güncel sürümüne uyarlanması gerektiğidir; son güncellemesi eski olan bir tabanı kullanmadan önce bir test sunucusunda deneyin. Lisansı da mutlaka okuyun: GPL ve AGPL, kodu değiştirip dağıttığınızda kaynak kodunu paylaşma yükümlülüğü getirir; AGPL bu yükümlülüğü değiştirilmiş yazılımı ağ üzerinden kullanıcılara sunmaya da genişletir.

Satın alınan paket

Bazı geliştiriciler RP oyun modlarını lisansla satar. Hızlı başlamanızı sağlar ama koda ne kadar hâkim olacağınızı satıcı belirler. Satın almadan önce kaynak kodun açık mı yoksa derlenmiş (okunamayan bayt kodu) mı geldiğini, güncelleme ve destek süresini ve lisansın kaç sunucuda kullanıma izin verdiğini yazılı olarak öğrenin. Derlenmiş dosyalarda bir hata ya da güvenlik açığı çıktığında düzeltmek için satıcıya bağımlı kalırsınız.

Sızdırılmış paketler: arka kapı ve hukuki risk

Başka bir sunucudan izinsiz alınmış RP paketleri iki ayrı risk taşır. Birincisi güvenlik: paketin içine gizli bir yönetici komutu, hesabı Admin grubuna ekleyen bir kod parçası ya da sunucu verisini dışarıya gönderen bir istek yerleştirilmiş olabilir; derlenmiş dosyalarda bunu okuyarak fark edemezsiniz. İkincisi hukuk: Türkiye’de bilgisayar programları 5846 sayılı Fikir ve Sanat Eserleri Kanunu kapsamında korunur ve sahibinin izni olmadan kullanmak ya da yaymak telif ihlalidir.

Herhangi bir kaynağı sunucuya almadan önce şüpheli fonksiyon çağrılarını aramak, okunabilir kodda arka kapıları bulmanın hızlı bir yoludur. Sunucu klasöründeyken:

grep -rnE "fetchRemote|callRemote|aclGroupAddObject|setAccountPassword" mods/deathmatch/resources/

Bu fonksiyonlar kendi başlarına zararlı değildir ve meşru kaynaklarda da kullanılır; ama bir RP paketinde neden kullanıldıklarını açıklayamıyorsanız o kodu çalıştırmayın.

Karar tablosu: hangi durumda hangisi

DurumunuzÖnerilen yol
Ekipte Lua bilen kimse yok, birkaç haftada açmak istiyorsunuzKodu açık, satın alınan bir paket ya da belgeleri iyi bir açık kaynak taban
Bir geliştiriciniz var, özgün bir sunucu istiyorsunuzAçık kaynak bir tabanı uyarlamak
Deneyimli bir ekip, uzun vadeli bir projeSıfırdan yazmak
Elinizde kaynağı belli olmayan bir paket varKullanmayın; lisanslı bir seçeneğe geçin

Veritabanı: MariaDB kurulumu ve MTA bağlantısı

RP oyun modları hesapları, karakterleri, araçları ve evleri bir veritabanında tutar. MTA iki veritabanı türünü destekler: SQLite ve MySQL. Küçük bir sunucu için SQLite yeterli olabilir, ama açık kaynak RP tabanlarının çoğu MySQL ister. MySQL ile uyumlu MariaDB, Ubuntu’nun kendi deposunda bulunur. Bir oyuncunun isteği sunucuda şu katmanlardan geçer:

  1. OyuncuMTA:SA istemcisi; 22003/UDP üzerinden bağlanır
  2. MTA sunucusuHesap girişi, ACL izinleri ve kaynakların çalıştırılması
  3. RP oyun moduKarakter, para, envanter, araç ve ev sistemleri
  4. MariaDBYalnızca 127.0.0.1’den erişilen mta_rp veritabanı
  5. Günlük yedekmysqldump ile alınan ve başka bir makineye kopyalanan dosya
Oyuncunun yaptığı her işlem oyun modu üzerinden veritabanına yazılır, veritabanı da her gece yedeklenir

Ubuntu 24.04’te MariaDB kurulumu

MariaDB’yi Ubuntu deposundan kurun ve temel güvenlik ayarlarını yapın. Ubuntu 24.04’ün deposundaki sürüm 10.11 serisidir:

sudo apt update
sudo apt install -y mariadb-server
sudo mariadb-secure-installation

mariadb-secure-installation size sırayla sorular sorar: root için geçerli şifre (yeni kurulumda Enter), unix_socket kimlik doğrulaması, root şifresinin değiştirilmesi, anonim kullanıcıların silinmesi, root’un uzaktan girişinin kapatılması ve test veritabanının silinmesi. MariaDB’nin belgelerine göre yeni sürümlerde root zaten unix_socket ile korunduğu için root şifresi şart değildir; anonim kullanıcıları, uzaktan root girişini ve test veritabanını kaldırmak için Y yanıtını verin.

Ardından oyun modu için ayrı bir veritabanı ve yalnızca bu veritabanına yetkili bir kullanıcı oluşturun. sudo mariadb komutu sizi şifre sormadan root olarak bağlar:

sudo mariadb
CREATE DATABASE mta_rp CHARACTER SET utf8mb4;
CREATE USER 'mta_rp'@'localhost' IDENTIFIED BY 'GucluBirSifre';
GRANT ALL PRIVILEGES ON mta_rp.* TO 'mta_rp'@'localhost';
exit
oyun@oyun-sunucu: ~
oyun@oyun-sunucu:~$ sudo apt install -y mariadb-server
...
oyun@oyun-sunucu:~$ sudo mariadb
...
MariaDB [(none)]> CREATE DATABASE mta_rp CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> CREATE USER 'mta_rp'@'localhost' IDENTIFIED BY 'GucluBirSifre';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mta_rp.* TO 'mta_rp'@'localhost';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> exit
Bye
oyun@oyun-sunucu:~$ 
MTA mysql bağlantısı için ayrı kullanıcı: her SQL komutu Query OK satırıyla onaylanır

Ne görmelisiniz: her komuttan sonra Query OK. Oyun modunu asla root kullanıcısıyla bağlamayın: oyun modundaki bir açık, root ile veritabanı sunucusundaki her şeye erişim demektir. utf8mb4 karakter seti, Türkçe karakterlerin ve oyuncuların yazdığı her türlü metnin doğru saklanmasını sağlar.

Ubuntu’nun MariaDB paketi varsayılan olarak yalnızca 127.0.0.1 adresini dinler (bind-address = 127.0.0.1). Bu ayarı değiştirmeyin ve 3306 portunu güvenlik duvarında açmayın; MTA sunucusu veritabanına aynı makineden bağlanır. Testimizde 127.0.0.1 üzerinden yapılan bağlantı, 'mta_rp'@'localhost' hesabıyla eşleşti.

Windows’ta MariaDB

Windows’ta MariaDB’nin MSI kurucusunu kullanın ve uzun destekli (LTS) bir sürüm seçin; Ekim 2026’da en uzun destek 11.8 serisindedir. Kurucu veritabanını varsayılan olarak MariaDB adlı bir Windows hizmeti olarak kurar ve kurulum sırasında root şifresini sorar. Aynı ekrandaki uzaktan root erişimi seçeneğini kapalı bırakın. Kurulumdan sonra Başlat menüsündeki MariaDB komut istemini açıp mariadb -u root -p ile bağlanın ve yukarıdaki üç SQL komutunu aynen çalıştırın.

MTA’dan bağlantı: dbConnect

MTA tarafında bağlantıyı dbConnect fonksiyonu kurar. Wiki, bağlantının kaynak başlarken bir kez açılıp bütün betikte paylaşılmasını öneriyor; her sorguda yeniden bağlanmak sunucuyu yorar. Aşağıdaki küçük kaynak bağlantıyı kurar, karakter tablosunu oluşturur ve kayıt sayısını sunucu günlüğüne yazar. mods/deathmatch/resources/rp_temel klasöründe iki dosya oluşturun. meta.xml:

<meta>
    <info author="Onem Bilisim" description="RP veritabani baglanti ornegi" type="script" version="1.0.0" />
    <script src="server.lua" type="server" />
</meta>

server.lua:

-- rp_temel: MariaDB baglantisi ve karakter tablosu ornegi
local baglanti

addEventHandler("onResourceStart", resourceRoot, function()
    baglanti = dbConnect("mysql", "dbname=mta_rp;host=127.0.0.1;charset=utf8mb4", "mta_rp", "GucluBirSifre")
    if not baglanti then
        outputServerLog("[rp_temel] Veritabanina baglanilamadi")
        cancelEvent()
        return
    end
    outputServerLog("[rp_temel] Veritabanina baglanildi: mta_rp")
    dbExec(baglanti, "CREATE TABLE IF NOT EXISTS karakterler (id INT AUTO_INCREMENT PRIMARY KEY, hesap VARCHAR(32) NOT NULL, ad VARCHAR(48) NOT NULL, para INT NOT NULL DEFAULT 0)")
    dbQuery(function(sorgu)
        local sonuc = dbPoll(sorgu, 0)
        if sonuc then
            outputServerLog("[rp_temel] Kayitli karakter sayisi: " .. sonuc[1].sayi)
        end
    end, baglanti, "SELECT COUNT(*) AS sayi FROM karakterler")
end)

Bağlantı kurulamazsa cancelEvent() kaynağın başlamasını durdurur; böylece veritabanı olmadan yarım çalışan bir oyun modu kalmaz. Sunucu konsolunda kaynağı başlatın:

start rp_temel
MTA Server
[11:31:04] Server started and is ready to accept connections!
[11:31:04] To stop the server, type 'shutdown' or press Ctrl-C
[11:31:04] Type 'help' for a list of commands.
start rp_temel
[11:31:09] start: Requested by Console
[11:31:09] Starting rp_temel
[11:31:09] [rp_temel] Veritabanina baglanildi: mta_rp
[11:31:09] start: Resource 'rp_temel' started
[11:31:09] [rp_temel] Kayitli karakter sayisi: 0
Veritabanina baglanildi satırı dbConnect’in başarılı olduğunu, son satır sorgunun sonucunu gösterir

Ne görmelisiniz: Veritabanina baglanildi satırı ve ardından Resource 'rp_temel' started. Şifre yanlışsa testimizde konsol şu uyarıyı yazdı ve kaynak başlamadı:

WARNING: rp_temel\server.lua:5: Bad usage @ 'dbConnect' [Access denied for user 'mta_rp'@'localhost' (using password: YES)]
Start up of resource rp_temel cancelled by script

Sorgularda iki kurala uyun. Birincisi, oyuncudan gelen her değeri sorgu metnine eklemek yerine ? yer tutucusuyla verin; dbExec(baglanti, "INSERT INTO karakterler (hesap, ad) VALUES (?, ?)", hesap, ad) gibi kullanımda MTA değerleri kendisi tırnaklar ve kaçışlar, bu da SQL enjeksiyonunu önler. İkincisi, dbPoll(sorgu, -1) kullanmayın: wiki’ye göre bu çağrı sonuç gelene kadar bütün sunucuyu dondurur. Yukarıdaki örnekteki gibi geri çağırma (callback) fonksiyonu kullanın.

Linux’ta MySQL modülü: libssl.so.1.1 hatası

Bu, Linux’ta RP sunucusu açanların en sık takıldığı noktadır. MTA 1.6’nın 64 bit Linux paketindeki MySQL modülü (x64/dbconmy.so), OpenSSL 1.1 kütüphanesine bağlıdır; Ekim 2026 paketini incelediğimizde libssl.so.1.1 ve libcrypto.so.1.1 bağımlılıkları hâlâ duruyordu. Ubuntu 22.04 ve sonrası ile Debian 12 ise OpenSSL 3 kullanır ve bu kütüphaneyi içermez. Sonuçta MTA’nın GitHub’daki bir hata kaydında görüldüğü gibi sunucu, Could not load .../x64/dbconmy.so ile başlayıp libssl.so.1.1: cannot open shared object file ile süren bir hata, ardından dbConnect için [Could not connect] uyarısı yazar.

MTA geliştiricilerinin aynı kayıttaki önerisi, OpenSSL 1.1 paketini eski dağıtım sürümünün deposundan elle kurmaktır. Ubuntu 24.04’te bunun karşılığı Ubuntu 20.04’ün libssl1.1 paketidir:

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb

OpenSSL 1.1.1’in resmi desteği Eylül 2023’te sona erdi; bu paketi yalnızca MTA’nın MySQL modülü için kurduğunuzu ve sisteme başka bir şey için kullanmadığınızı bilin. Bunu istemiyorsanız iki seçeneğiniz var: oyun modu destekliyorsa SQLite kullanmak ya da MTA sunucusunu, MySQL modülünün OpenSSL 3 kütüphaneleriyle birlikte geldiği Windows üzerinde çalıştırmak.

Hazır MTA sunucusu

RP sunucunuzun altyapısını hazır alın

Önem Bilişim’in MTA paketlerinde Lua kaynakları, admin paneli ve MySQL bağlantısı için ekip kurulumda yardımcı olur; sunucular İstanbul Datacasa’da DDoS korumasıyla çalışır.

Hesap ve karakter sistemi

RP oyun modları hesapları iki şekilde tutar: ya MTA’nın yerleşik hesap sistemini (sunucunun kendi SQLite veritabanı) kullanır ya da kendi MySQL tablolarında saklar. Açık kaynak tabanların çoğu ikinci yolu seçer; bir hesaba birden fazla karakter bağlanır ve para, envanter, araç gibi veriler karaktere yazılır.

Oyun modu şifreleri kendi tablosunda tutuyorsa nasıl sakladığını kontrol edin. MTA wiki’si şifre saklamak için passwordHash fonksiyonunu ve bcrypt algoritmasını öneriyor; düz metin ya da yalnızca MD5 kullanan bir sistemde veritabanınız sızarsa oyuncularınızın şifreleri de açığa çıkar. Wiki ayrıca bcrypt yavaş çalıştığı için passwordHash‘in geri çağırma fonksiyonuyla, yani eşzamansız kullanılmasını öneriyor.

Karakter verisini tasarlarken parayı tam sayı olarak tutun, her karakteri bir hesaba bağlayın ve para ya da eşya transferlerini ayrı bir kayıt tablosuna yazın. Bir oyuncu “param kayboldu” dediğinde bu kayıtlar ne olduğunu gösterir.

ACL güvenliği: oyun moduna Admin yetkisi vermeyin

MTA’nın erişim kontrol listesi (ACL), hangi kaynağın ve hangi hesabın hangi fonksiyonları çalıştırabileceğini belirler. Varsayılan acl.xml dosyasında sıradan kaynaklar için kickPlayer, banPlayer, fetchRemote, callRemote, startResource, aclGroupAddObject ve shutdown gibi fonksiyonlar kapalıdır. Bir RP oyun modunun oyuncu atmak ya da yasaklamak için bu izinlerden bazılarına ihtiyacı olur.

En kolay görünen çözüm oyun modunu Admin grubuna eklemektir ve en riskli olanı da budur: oyun modundaki bir açık ya da gizli bir kod, sunucudaki her yetkiyi kullanabilir hale gelir. Doğrusu, oyun moduna yalnızca ihtiyaç duyduğu izinleri veren ayrı bir grup tanımlamaktır. Wiki’deki örneklerle aynı yapıda, sunucu kapalıyken acl.xml dosyasına eklenir:

<group name="RPModu">
    <acl name="RPModu" />
    <object name="resource.rp_temel" />
</group>
<acl name="RPModu">
    <right name="function.kickPlayer" access="true" />
    <right name="function.banPlayer" access="true" />
</acl>

Kaynak, ihtiyaç duyduğu izinleri meta.xml dosyasında aclrequest ile de isteyebilir; bu durumda konsolda aclrequest list kaynakadı ile isteği görür, uygunsa aclrequest allow ile onaylarsınız. MTA, izin isteyen her kaynak için acl.xml dosyasında autoGroup_ ve autoACL_ ile başlayan ayrı bir grup ve izin listesi oluşturur. Testimizde aclrequest allow yalnızca bu listedeki izni açtı ve onayı kimin verdiğini de kaydetti (who="Console"). ACL’nin ayrıntılarını MTA server’a script ve resource yükleme rehberinde anlatıyoruz.

Yetkili ekibi ve kurallar

RP sunucusunun oyun kadar önemli bir parçası, kuralları uygulayan ekiptir. MTA’nın varsayılan acl.xml dosyası artan yetkilerle Moderator, SuperModerator ve Admin gruplarını içerir; ekibinizin kademelerini bu gruplara eşleyin. Her yetkiliye kendi hesabını açın ve hesabı user.kullaniciadi biçiminde ilgili gruba ekleyin; ortak kullanılan bir yönetici hesabı, kimin ne yaptığını bilmenizi imkânsız kılar.

Hesaplara yapılan giriş denemeleri, sunucu günlüğünün yanında mtaserver.conf içindeki authfile ayarıyla belirlenen logs/server_auth.log dosyasına da yazılır. Bir yetkili ekipten ayrıldığında hesabını gruptan çıkarın ve chgpass ya da delaccount ile hesabı kapatın. Kuralları yazılı hale getirin ve oyuncuların kolayca ulaşacağı bir yerde (Discord sunucunuz ya da forumunuz) yayımlayın; yazılı olmayan kural, her ceza sonrası tartışma demektir.

Yedekleme: her gün mysqldump

RP sunucusunun değeri veritabanındadır: aylarca oynanmış karakterler, kazanılmış paralar, alınmış evler. MTA’nın kendi temel yedeği yalnızca sunucunun kendi dosyalarını kapsar; MariaDB’deki oyun modu verisini mysqldump ile ayrıca yedeklemeniz gerekir. Windows’ta yedeği PowerShell’de şöyle alırsınız:

New-Item -ItemType Directory -Force -Path C:\Yedek | Out-Null
Set-Location C:\Yedek
& "C:\Program Files\MariaDB 11.8\bin\mysqldump.exe" -u mta_rp -p `
  --single-transaction --databases mta_rp `
  --result-file="mta_rp-$(Get-Date -Format yyyy-MM-dd).sql"
Get-ChildItem | Format-Table Name, Length
Windows PowerShell
PS C:\Yedek> & "C:\Program Files\MariaDB 11.8\bin\mysqldump.exe" -u mta_rp -p `
>>   --single-transaction --databases mta_rp `
>>   --result-file="mta_rp-$(Get-Date -Format yyyy-MM-dd).sql"
Enter password: *************
PS C:\Yedek> Get-ChildItem | Format-Table Name, Length

Name                  Length
----                  ------
mta_rp-2026-10-11.sql   2424

PS C:\Yedek> 
MTA roleplay sunucusu için günlük yedek: şifreyi girdikten sonra tarihli .sql dosyası oluşur

--single-transaction seçeneği, tabloları kilitlemeden tutarlı bir anlık görüntü alır; sunucu açıkken yedek alırken oyuncular etkilenmez. --databases seçeneği yedeğe veritabanını oluşturan komutu da ekler. Testimizdeki iki karakterlik örnek veritabanının yedeği 2424 bayt tuttu. Geri yüklemek için yedeği MariaDB istemcisinde source komutuyla çalıştırırsınız:

& "C:\Program Files\MariaDB 11.8\bin\mariadb.exe" -u root -p -e "source C:/Yedek/mta_rp-2026-10-11.sql"

Linux’ta yedeği her gece kendiliğinden almak için mta kullanıcısının ev klasörüne yalnızca onun okuyabileceği bir ayar dosyası koyun ve zamanlanmış görev ekleyin. nano ~/.my.cnf ile şu dosyayı oluşturun:

[mysqldump]
user=mta_rp
password=GucluBirSifre
chmod 600 ~/.my.cnf
mkdir -p ~/yedek
crontab -e

crontab -e ile açılan dosyanın sonuna şu iki satırı ekleyin. İlki her gece 04.00’te yedek alır, ikincisi 7 günden eski yedekleri siler. Crontab içinde % işareti özel anlam taşıdığı için tarih biçimindeki %F ters eğik çizgiyle yazılır:

0 4 * * * mysqldump --single-transaction --databases mta_rp > /home/mta/yedek/mta_rp-$(date +\%F).sql
30 4 * * * find /home/mta/yedek -name 'mta_rp-*.sql' -mtime +7 -delete

Yedekleri aynı makinede bırakmayın; disk arızasında yedek de sunucuyla birlikte gider. Ayda bir, bir yedeği test veritabanına geri yükleyip açılıp açılmadığını deneyin: hiç geri yüklenmemiş bir yedeğin çalışıp çalışmadığını bilemezsiniz. MariaDB 11.8’in oluşturduğu yedek dosyasının ilk satırı eski istemcilerin tanımadığı bir komut içerir; geri yüklemeyi aynı ya da daha yeni bir MariaDB istemcisiyle yapın.

Saldırılara karşı koruma

Popüler RP sunucuları rakip sunucuların ve kötü niyetli oyuncuların hedefi olabilir. Temel önlemler şunlardır:

  • Güvenlik duvarında yalnızca MTA’nın üç portunu (22003/UDP, 22005/TCP, 22126/UDP) ve SSH’ı açık tutun; 3306’yı asla açmayın.
  • Sunucunun ağ kartını boğan DDoS saldırıları sunucu içinden engellenemez; bu korumanın sağlayıcı tarafında, ağ seviyesinde olması gerekir.
  • mtaserver.conf içindeki minclientversion_auto_update ayarını varsayılan değerinde (1) bırakın; dosyadaki açıklamaya göre en düşük istemci sürümünü güncel tutmak hile kullanımını azaltmaya yardım eder.
  • Hile önleme ayarlarını (disableac) boş bırakın ve yönetici hesaplarında seri numarası korumasını (auth_serial_groups) kapatmayın.
  • MTA sunucusunu ve oyun modunu güncel tutun; MTA’nın yeni sürümleri güvenlik düzeltmeleri de içerir.

Slot ve donanım planı

Bir RP sunucusunun kaç oyuncuyu taşıyacağına kesin bir sayı vermek doğru olmaz; yükü belirleyen şey oyun modunun nasıl yazıldığıdır. Sunucuyu yoran başlıca etkenler:

  • Eşzamanlı oyuncu sayısı ve her oyuncunun tetiklediği olaylar
  • Haritadaki araç ve obje (element) sayısı; park halindeki yüzlerce araç bile senkronize edilir
  • Veritabanı sorguları; özellikle dbPoll(..., -1) gibi sunucuyu bekleten eşzamanlı sorgular
  • Kısa aralıklarla çalışan zamanlayıcılar (setTimer) ve her karede çalışan kodlar

Yükü ölçmek için varsayılan kaynak paketindeki iki araç yeterlidir. performancebrowser kaynağı, tarayıcıdan http://203.0.113.10:22005/performancebrowser/ adresinde kaynakların harcadığı işlemci süresini (Lua timing) ve diğer performans istatistiklerini gösterir; yönetici hesabıyla giriş ister. ipb (In-game Performance Browser) aynı bilgileri oyunun içinde gösterir; general.http iznine sahip bir hesapla oyunda /ipb yazarak açılır. Yeni bir sistem ekledikten sonra bu tablolarda hangi kaynağın öne çıktığına bakın.

Önem Bilişim’in paket önericisi roleplay sunucuları için şu tahmini değerleri kullanıyor:

Eşzamanlı oyuncu (tahmini)Önerilen bellek
1–304 GB
31–606 GB
61–1008 GB
100 üstüRyzen VDS

100 oyuncunun üzerine çıkan büyük topluluklar için Ryzen VDS daha fazla işlemci ve bellek esnekliği sağlar. Windows’ta kararlı kurucunun getirdiği MTA sunucusunun 32 bit olduğunu da hesaba katın; büyük bir RP sunucusu için 64 bit Linux sunucusu daha rahattır.

Topluluk: Discord, forum ve tanıtım

Oyuncular bir RP sunucusunda kalır çünkü orada bir topluluk vardır. Sunucuyu açmadan önce bir Discord sunucusu kurun; kurallar, başvurular (yetkili ve oluşum başvuruları), duyurular ve destek için ayrı kanallar açın. Başvuru ve şikâyet süreçlerinin yazılı ve herkes için aynı olması, oyuncuların ekibe güvenmesini sağlar.

Sunucu listesinde de doğru görünün. MTA 1.6’nın Windows kurucusuyla gelen mtaserver.conf dosyasında, sunucu tarayıcısına gönderilen rule satırları bulunur; Linux baseconfig dosyasında yoksa aynı satırları ekleyebilirsiniz. Sunucu yalnızca değeri boş olmayan satırları listeye gönderir:

<rule name="description" value="Turkce roleplay sunucusu" />
<rule name="languages" value="tr" />
<rule name="tags" value="roleplay" />
<rule name="website_url" value="https://alanadiniz.com" />
<rule name="social_url_1" value="https://discord.gg/davetkodunuz" />

Türk MTA roleplay sunucuları arasında öne çıkmak için sunucunun adı ve açıklaması ne tür bir RP sunduğunuzu tek cümlede anlatmalıdır. Oyuncu çekmenin en kalıcı yolu ise açılışta söz verdiğiniz sistemlerin çalışması ve kuralların herkese eşit uygulanmasıdır.

Sık yapılan seçim hataları

Oyun modunu Admin grubuna eklemek

Bir izin hatasını hızlıca çözmek için oyun modunu Admin grubuna eklemek, kodundaki her açığı sunucunun tamamına açar. İhtiyaç duyulan izni bulun ve yalnızca onu verin.

Veritabanına root ile bağlanmak

dbConnect içine root kullanıcısını yazmak, oyun modunun bütün veritabanı sunucusunu yönetebilmesi demektir. Her oyun modu için yalnızca kendi veritabanına yetkili ayrı bir kullanıcı açın.

3306 portunu internete açmak

MTA sunucusu ve MariaDB aynı makinedeyse veritabanının dışarıdan erişilebilir olmasına gerek yoktur. Açık bir 3306 portu, şifre deneme saldırılarına davetiye çıkarır.

Yedeği aynı diskte tutmak ve hiç denememek

Aynı diskteki yedek, disk arızasında işe yaramaz. Hiç geri yüklenmemiş bir yedeğin de çalışacağının garantisi yoktur.

Sunucuyu donduran sorgular

dbPoll ile -1 zaman aşımı kullanmak, sorgu bitene kadar bütün sunucuyu bekletir. Oyuncu sayısı arttıkça bu beklemeler takılma olarak hissedilir. Geri çağırma fonksiyonu kullanın.

Lisansını okumadığınız kodu kullanmak

Açık kaynak her kod her şekilde kullanılamaz. GPL, AGPL ve MIT farklı yükümlülükler getirir; lisans dosyasını okumadan kodu sunucunuza almayın.

Sonradan oyun modu değiştirmek mümkün mü?

Mümkün ama pahalıdır. Her RP oyun modunun veritabanı yapısı farklıdır; hesapları ve karakterleri yeni moda taşımak için iki yapı arasında dönüştürme betikleri yazmanız gerekir. Envanter, araç ve ev gibi sistemler genellikle birebir eşleşmez ve bir kısmı taşınamaz. Geçiş kararı verirseniz önce veritabanının yedeğini alın, dönüştürmeyi bir test sunucusunda deneyin ve oyunculara neyin korunup neyin sıfırlanacağını önceden duyurun. Bu yüzden oyun modu seçimini sunucuyu açmadan önce dikkatle yapmak, sonradan değiştirmekten çok daha ucuzdur.

MTA roleplay sunucu maliyeti

Bir RP sunucusunun maliyeti birkaç kalemden oluşur: sunucunun kendisi (bir VDS ya da hazır paket), oyun modu (açık kaynak tabanlarda ücretsiz, satın alınan paketlerde lisans ücreti), geliştirici emeği ve isteğe bağlı olarak alan adı. MTA’nın kendisi ve Discord ücretsizdir. En büyük kalem çoğu zaman geliştirici zamanıdır; açık kaynak bir taban bile sizin sunucunuza uyarlanmadan yayına çıkmaz.

Önem Bilişim’in MTA paketleri Intel Xeon E5-2697V2 / E5-2699V4 işlemcili sunucularda, İstanbul Datacasa’da, 1 Gbit hat, limitsiz trafik ve DDoS korumasıyla çalışır. Güncel fiyatlar paket sayfasındadır.

MTA Server Kirala

RP sunucunuzu sağlam bir zeminde açın

MySQL bağlantısı, Lua kaynakları ve admin paneli kurulumunda ekip yanınızda; 7/24 destek ve DDoS koruması pakete dahildir.

Başka bir oyun için sunucu arıyorsanız tüm oyun sunucusu paketlerini tek sayfada karşılaştırabilirsiniz. GTA V tarafında bir roleplay sunucusu düşünüyorsanız ESX mi QBCore mu karşılaştırmamız benzer bir karar sürecini anlatıyor.

Sık Sorulan Sorular

MTA RP sunucusu açmak ne kadar tutar?

MTA:SA ve sunucu yazılımı ücretsizdir; maliyet sunucu kirası, oyun modu ve geliştirici emeğinden oluşur. Açık kaynak bir taban kullanırsanız kod için ödeme yapmazsınız ama uyarlama için zaman ya da bir geliştirici gerekir. Satın alınan paketlerde lisans ücreti eklenir. Sunucu tarafında 30 oyuncuya kadar bir RP için Önem Bilişim’in önericisi 4 GB’lık paketi tahmini başlangıç olarak gösteriyor; güncel fiyatlar paket sayfasındadır.

Hazır RP paketi kullanılır mı?

Lisansı açık ve kodu okunabilir bir paket kullanılabilir, çoğu ekip için en hızlı başlangıç da budur. Satın alınan paketlerde kaynak kodun açık gelip gelmediğini, güncelleme süresini ve lisansın kaç sunucuyu kapsadığını önceden öğrenin. Başka bir sunucudan sızdırılmış paketleri ise kullanmayın: arka kapı içerebilirler ve izinsiz kullanım telif ihlalidir. Hangi paketi seçerseniz seçin, ona Admin yetkisi vermeyin.

MTA RP için MySQL şart mı?

Şart değil; MTA, SQLite’ı ek kurulum gerektirmeden destekler ve küçük bir sunucu için yeterli olabilir. Ancak açık kaynak RP tabanlarının çoğu MySQL ister ve oyuncu sayısı arttıkça MariaDB gibi ayrı bir veritabanı sunucusu daha rahat yönetilir. Linux’ta MySQL kullanacaksanız MTA 1.6’nın MySQL modülünün OpenSSL 1.1 kütüphanesine ihtiyaç duyduğunu unutmayın.

RP sunucusuna oyuncu nasıl çekilir?

Önce sunucunun hazır olduğundan emin olun: yarım sistemlerle açılan bir sunucu ilk oyuncularını hızla kaybeder. Ardından bir Discord sunucusu kurun, kuralları ve başvuru süreçlerini yazılı hale getirin, mtaserver.conf içindeki rule satırlarıyla dil, açıklama ve etiket bilgisini doldurun. Oyuncuları asıl tutan şey, kuralların herkese eşit uygulanması ve söz verilen sistemlerin çalışmasıdır.

MTA RP sunucusu kaç GB RAM ister?

Kesin bir sayı oyun moduna bağlıdır; araç ve obje sayısı, veritabanı sorguları ve zamanlayıcılar yükü belirler. Önem Bilişim’in paket önericisi roleplay sunucuları için 30 oyuncuya kadar 4 GB, 60 oyuncuya kadar 6 GB ve 100 oyuncuya kadar 8 GB öneriyor; bunlar tahmini değerlerdir. Daha büyük topluluklar için Ryzen VDS önerilir. Sunucu açıldıktan sonra yükü performancebrowser ile ölçün.

Veritabanını ayrı bir sunucuda tutmalı mıyım?

Başlangıçta gerek yok. MTA sunucusu ve MariaDB aynı makinede olduğunda bağlantı 127.0.0.1 üzerinden kurulur, ağ gecikmesi olmaz ve 3306 portunu dışarı açmanız gerekmez. Veritabanını ayrı bir sunucuya taşımak ancak çok büyük topluluklarda ya da web paneli gibi başka uygulamalar aynı veriyi yoğun kullandığında anlam kazanır. Bu durumda bağlantıyı yalnızca iki sunucu arasında açın.

Kaynaklar

Önem Bilişim Teknik Ekibi · Son güncelleme: Ekim 2026

Paylaş:WhatsAppXFacebookLinkedInTelegram

Bunlar da ilginizi çekebilir