Modern FiveM Geliştirme: Event Handler ve State Bag
FiveM sunucunuz büyüdükçe, istemci (client) ve sunucu (server) arasındaki veri trafiğini yönetmek en büyük zorluğunuz haline gelir. 2026 standartlarında, eski yöntemleri terk edip State Bags gibi modern ve optimize edilmiş veri paylaşım yöntemlerini kullanmak, sunucu performansınız için kritik öneme sahiptir.
1. State Bag Nedir ve Neden Kullanmalıyız?
State Bag'ler, belirli bir entity (oyuncu, araç veya nesne) üzerinde veri saklamanıza olanak tanır. Global değişkenler yerine bunları kullanmak, verinin senkronizasyonunu FiveM'in kendi çekirdeğine bırakmanızı sağlar.
TriggerServerEvent ile sürekli veri gönderip ağ trafiğini şişirmek yerine, veriyi sadece değiştiğinde senkronize eder.2. Uygulama: State Bag Kullanımı
Bir oyuncunun "job_level" değerini sunucu tarafında set edip, istemcide okuyalım:
Server-side:
-- Bir oyuncunun state bag değerini set etme
local player = GetPlayerPed(source)
Entity(player).state:set('job_level', 5, true)Client-side:
-- İstemci tarafında bu değeri okuma
local playerState = Player(GetPlayerServerId(PlayerId())).state
print("Mevcut iş seviyeniz: " .. (playerState.job_level or 0))3. Event Handler Optimizasyonu
RegisterNetEvent kullanırken, gereksiz tetiklemelerden kaçının. Özellikle Decorators yerine State Bags kullanmak, sunucu yükünü gözle görülür şekilde azaltır. Eğer profesyonel bir altyapı üzerinde çalışıyorsanız, DxAV1 - Roleplay Paketi içerisinde bu modern event yapılandırmalarının nasıl entegre edildiğini inceleyerek kendi sistemlerinizi geliştirebilirsiniz.
TriggerServerEvent kullanırken asla oyuncudan gelen veriye doğrudan güvenmeyin. Her zaman sunucu tarafında source kontrolü yapın.Sıkça Sorulan Sorular (SSS)
- Soru: State Bag verileri sunucu kapandığında silinir mi?
- Cevap: Evet, State Bag'ler geçici verilerdir. Kalıcı verileriniz için her zaman SQL veritabanını kullanmalısınız.
- Soru: State Bag kullanmak FPS düşürür mü?
- Cevap: Aksine, sürekli ağ üzerinden veri gönderen
TriggerServerEventdöngülerinden çok daha hafiftir ve FPS stabilitesine katkı sağlar. - Soru: Neden hala bazı scriptler Decorator kullanıyor?
- Cevap: Decorator'lar eski bir yöntemdir; 2026 itibariyle modern ve performanslı bir altyapı için State Bag her zaman ilk tercih olmalıdır.
