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.

İçindekiler
- Tek bakışta: MTA RP oyun modu seçenekleri
- MTA roleplay sunucusu açmak için oyun modu seçimi
- Sıfırdan yazmak
- Açık kaynak bir tabanı uyarlamak
- Satın alınan paket
- Sızdırılmış paketler: arka kapı ve hukuki risk
- Karar tablosu: hangi durumda hangisi
- Veritabanı: MariaDB kurulumu ve MTA bağlantısı
- Ubuntu 24.04’te MariaDB kurulumu
- Windows’ta MariaDB
- MTA’dan bağlantı: dbConnect
- Linux’ta MySQL modülü: libssl.so.1.1 hatası
- Hesap ve karakter sistemi
- ACL güvenliği: oyun moduna Admin yetkisi vermeyin
- Yetkili ekibi ve kurallar
- Yedekleme: her gün mysqldump
- Saldırılara karşı koruma
- Slot ve donanım planı
- Topluluk: Discord, forum ve tanıtım
- Sık yapılan seçim hataları
- Oyun modunu Admin grubuna eklemek
- Veritabanına root ile bağlanmak
- 3306 portunu internete açmak
- Yedeği aynı diskte tutmak ve hiç denememek
- Sunucuyu donduran sorgular
- Lisansını okumadığınız kodu kullanmak
- Sonradan oyun modu değiştirmek mümkün mü?
- MTA roleplay sunucu maliyeti
- Sık Sorulan Sorular
- MTA RP sunucusu açmak ne kadar tutar?
- Hazır RP paketi kullanılır mı?
- MTA RP için MySQL şart mı?
- RP sunucusuna oyuncu nasıl çekilir?
- MTA RP sunucusu kaç GB RAM ister?
- Veritabanını ayrı bir sunucuda tutmalı mıyım?
- 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ı.
- 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;
performancebrowserveipbile 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 yazmak | Açık kaynak tabanı uyarlamak | Satın alınan paket | Sızdırılmış paket | |
|---|---|---|---|---|
| Başlama süresi | Aylar | Günler ya da haftalar | Günler | Hemen |
| Maliyet | Geliştirici zamanı | Ücretsiz kod ve uyarlama emeği | Paket ücreti ve uyarlama | Görünürde ücretsiz |
| Kod üzerinde kontrol | Tam | Lisans koşullarıyla tam | Satıcının izin verdiği kadar | Yok; kod denetlenemeyebilir |
| Güvenlik riski | Ekibinize bağlı | Kodu okuyabildiğiniz için düşük | Satıcıya bağlı | Yüksek: arka kapı riski |
| Hukuki durum | Kod sizindir | Lisansa uyduğunuz sürece açık | Lisans 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 istiyorsunuz | Kodu 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 istiyorsunuz | Açık kaynak bir tabanı uyarlamak |
| Deneyimli bir ekip, uzun vadeli bir proje | Sıfırdan yazmak |
| Elinizde kaynağı belli olmayan bir paket var | Kullanmayı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:
- OyuncuMTA:SA istemcisi; 22003/UDP üzerinden bağlanır
- MTA sunucusuHesap girişi, ACL izinleri ve kaynakların çalıştırılması
- RP oyun moduKarakter, para, envanter, araç ve ev sistemleri
- MariaDBYalnızca 127.0.0.1’den erişilen mta_rp veritabanı
- Günlük yedekmysqldump ile alınan ve başka bir makineye kopyalanan dosya
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:~$ 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:~$
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
[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
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
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>
--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.confiçindekiminclientversion_auto_updateayarı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–30 | 4 GB |
| 31–60 | 6 GB |
| 61–100 | 8 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
- MTA Wiki: dbConnect
- MTA Wiki: Access Control List
- MariaDB belgeleri: mariadb-secure-installation
- MTA GitHub: dbconmy.so ve libssl.so.1.1 hata kaydı
- OwlGaming MTA kaynak kodu (GitHub)
- eXo vRoleplay oyun modu (GitHub)
Önem Bilişim Teknik Ekibi · Son güncelleme: Ekim 2026