FiveM'de sunucuna eklediğin her sistem bir "resource" yani kaynaktır: meslek scriptleri, telefonlar, araç galerileri, haritalar ve arayüzler. Script kurulumu çoğu zaman birkaç dakikalık iştir, ancak bağımlılıklar, veritabanı tabloları ve yükleme sırası yanlış yapıldığında sunucu açılmaz ya da script çalışmaz. Bu rehberde bir FiveM scriptini doğru şekilde kurmayı, en sık yapılan hataları ve güvenli script edinmeyi anlatıyoruz.
Bir FiveM resource'u nelerden oluşur?
Her resource, resources klasörü içinde ayrı bir klasördür ve en az bir fxmanifest.lua dosyası içerir. Bu dosya, scriptin hangi dosyaları istemci (client) ve sunucu (server) tarafında çalıştıracağını, hangi kaynaklara bağımlı olduğunu tanımlar. Tipik bir yapı şöyledir:
resources/
[isler]/
benim_meslek/
fxmanifest.lua
config.lua
client/main.lua
server/main.lua
sql/install.sqlKöşeli parantez içindeki klasörler ([isler] gibi) yalnızca düzen içindir; FiveM bu klasörlerin içindeki kaynakları otomatik bulur.
Adım 1: Scripti indir ve dosyaları kontrol et
Scripti indirdikten sonra arşivi aç ve klasör adının doğru olduğundan emin ol. Bazı arşivlerde klasör benim_meslek-main gibi isimlerle gelir. Script, kodun içinde kendi adını kullanıyorsa klasörü belgelerde yazan isimle yeniden adlandırman gerekir.
README ya da kurulum belgesi varsa mutlaka oku. Gerekli bağımlılıklar (dependency), veritabanı dosyaları ve ayar notları genellikle orada yazar.
Adım 2: Bağımlılıkları kur
Script; ox_lib, oxmysql, ox_target ya da framework'ün kendisi gibi başka kaynaklara ihtiyaç duyabilir. fxmanifest.lua dosyasındaki dependencies satırına ya da belgeye bak. Bağımlılık eksikse sunucu konsolunda "could not find dependency" uyarısı görürsün.
Adım 3: Veritabanı tablolarını içe aktar
Script bir .sql dosyasıyla geliyorsa bu dosyayı veritabanına aktarman gerekir. HeidiSQL, phpMyAdmin ya da DBeaver gibi bir araçla sunucu veritabanını açıp dosyayı çalıştır. Aktarmadan önce veritabanının yedeğini almayı alışkanlık haline getir. SQL dosyası mevcut tabloları değiştiriyorsa (ALTER TABLE) yedeğin seni kurtarır.
Adım 4: server.cfg'ye ekle
Scripti yüklemek için server.cfg dosyasına bir satır ekle:
ensure benim_meslekSıra önemlidir. Veritabanı kaynağı (oxmysql), kütüphaneler (ox_lib), framework (es_extended ya da qb-core) önce; onlara bağlı scriptler sonra yüklenmelidir. Bütün bir klasörü yüklemek için ensure [isler] da yazabilirsin.
Adım 5: Config ayarları
Çoğu script bir config.lua dosyasıyla gelir. Burada dil (Config.Locale = 'tr'), konumlar, fiyatlar ve meslek isimleri gibi ayarları yaparsın. Lua'da virgül ve tırnak hataları scriptin tamamen çalışmamasına neden olur; dosyayı düzenledikten sonra konsolda hata olup olmadığına bak.
Adım 6: Test et
Sunucuyu yeniden başlatmak yerine canlı konsolda şu komutları kullanabilirsin:
refresh: Yeni eklenen kaynakları tanıtır.ensure benim_meslek: Kaynağı başlatır.restart benim_meslek: Değişiklikten sonra kaynağı yeniden başlatır.
Oyunda F8 konsolunu da açık tut; istemci tarafı hataları orada görünür.
Escrow (şifreli) scriptler
Cfx.re'nin Asset Escrow sistemiyle satılan scriptlerin kodları şifrelidir ve yalnızca satın alan Cfx.re hesabına bağlı lisans anahtarıyla çalışır. Bu scriptleri kurarken:
- Sunucunun lisans anahtarı, scripti satın aldığın Cfx.re hesabıyla aynı hesaba ait olmalıdır.
- Dosyaları keymaster.fivem.net üzerinden indirmelisin.
- Şifreli dosyaları değiştirmeye çalışma; yalnızca açık bırakılan config dosyalarını düzenleyebilirsin.
"You lack the required entitlement" hatası, bu eşleşmenin olmadığı anlamına gelir.
Güvenli script edinme
İnternette "sızdırılmış" (leak) olarak paylaşılan ücretli scriptler hem geliştiricinin emeğini çalar hem de çoğu zaman arka kapı (backdoor) içerir. Bu tür kodlar sunucunu ele geçirebilir, veritabanını silebilir ya da oyuncularının bilgilerini çalabilir. Scriptlerini geliştiricinin kendi mağazasından ya da güvenilir satıcılardan al. Satıcı değerlendirmesini nasıl yapacağını güvenli alışveriş rehberimizde anlattık.
Ücretsiz ve açık kaynak scriptler için Ücretsiz Script bölümüne, ücretli script ilanları için İlan Pazarı'na göz atabilirsin.
Kurulumdan sonra performansı kontrol et
Her yeni script sunucuna yük ekler. Kurulumdan sonra F8'de resmon 1 komutuyla scriptin istemci tarafında kaç milisaniye harcadığına bak. Boşta 0.05 ms'nin üzerinde çalışan scriptler zamanla sorun yaratabilir. Ayrıntılar için FiveM optimizasyon rehberine göz at.
Sıkça Sorulan Sorular
Script ekledim ama oyunda çıkmıyor, neden?
En sık nedenler: server.cfg'ye ensure satırı eklenmemiştir, klasör adı yanlıştır ya da bir bağımlılık eksiktir. Sunucu konsolunda scriptin adını arayarak hatayı bulabilirsin.
"Couldn't load resource" hatası ne demek?
FiveM, kaynağın fxmanifest.lua dosyasını okuyamamıştır. Klasör yapısını kontrol et; manifest dosyası doğrudan script klasörünün içinde olmalıdır, bir alt klasörde değil.
Sunucuyu kapatmadan script ekleyebilir miyim?
Evet. Konsolda önce refresh, ardından ensure scriptadi yazman yeterlidir. Yine de framework çekirdeğini etkileyen scriptlerde tam restart daha sağlıklıdır.
ESX scripti QBCore'da çalışır mı?
Doğrudan çalışmaz. Para, envanter ve oyuncu verisi fonksiyonlarının QBCore karşılıklarıyla değiştirilmesi gerekir. Birçok geliştirici iki framework'ü birden destekleyen sürümler sunar.
Escrow scripti başka sunucuya taşıyabilir miyim?
Lisans, Cfx.re hesabına bağlıdır. Aynı hesaba ait farklı bir sunucu lisans anahtarıyla kullanabilirsin; başka bir hesaba devretmek ise genellikle mümkün değildir.