FiveM sunucu geliştirmede en sık karşılaşılan sorunlardan biri, birden fazla oyuncunun aynı koordinattaki mülkü veya garajı kullanmak istemesidir. Eskiden geliştiriciler oyuncuları haritanın altındaki boşluklara veya denizin ortasındaki sanal koordinatlara ışınlayarak bu sorunu çözmeye çalışırdı. Ancak 2026 yılı standartlarında bu yöntemler tamamen geride kaldı.
FiveM'in sunduğu Routing Bucket (Ağ Yönlendirme Kovası / Sanal Boyut) mimarisi sayesinde, aynı koordinatta (örneğin Los Santos'taki tek bir daire kapısında) yüzlerce oyuncuyu birbirini görmeden ve duymadan tamamen izole boyutlara alabilirsiniz.
Bu rehberde, sıfırdan başlayan bir sunucu sahibi veya geliştirici olarak sunucunuzda nasıl profesyonel sanal boyutlar (instances) oluşturabileceğinizi adım adım öğreneceksiniz.
Routing Bucket Mantığı Nedir?
Routing Bucket, sunucunuzdaki varsayılan dünyayı (Bucket 0) birden fazla paralel sanal boyuta bölmenizi sağlar.
- Bucket 0 (Varsayılan Dünya): Sunucuya giren tüm oyuncular varsayılan olarak bu boyuttadır. Herkes birbirini görür, duyar ve etkileşime girer.
- Bucket 1, 2, 3... (Özel Boyutlar): Belirli bir oyuncuyu veya aracı örneğin
105numaralı kova (bucket) içine aldığınızda, yalnızca105numaralı kovada bulunan diğer varlıklar (entities) ile etkileşime girebilir.
Adım Adım Routing Bucket Kurulumu ve Kullanımı
Routing Bucket işlemleri tamamen Server-Side (Sunucu Tarafı) üzerinde çalışır. İstemci (Client) tarafında herhangi bir native çalıştırmanıza gerek yoktur.
Adım 1: Yeni Bir Script Oluşturun
Sunucu dosyalarınızda resources/[scripts]/dexta_instance/ klasörünü oluşturun ve içine fxmanifest.lua ile server.lua dosyalarını ekleyin.
`fxmanifest.lua` İçeriği:
fx_version 'cerulean'
game 'gta5'
author 'Dexta Store'
description 'Dexta Store - Routing Bucket Instance Rehberi'
version '1.0.0'
server_script 'server.lua'Adım 2: Temel Server API Fonksiyonları
FiveM sunucu tarafında sanal boyutları yönetmek için 3 temel natif fonksiyon kullanırız:
- 1
SetPlayerRoutingBucket(playerServerId, bucketId): Oyuncunun boyutunu değiştirir. - 2
SetEntityRoutingBucket(entityHandle, bucketId): Belirli bir aracın veya nesnenin boyutunu değiştirir. - 3
SetRoutingBucketPopulationEnabled(bucketId, false): O boyutta NPC (PNS/Trafik) araçlarının ve yayaların çıkmasını engeller.
Adım 3: Örnek Lua Kod Yapısı
Aşağıdaki örnekte, oyuncunun evine girdiğinde özel bir boyuta geçmesini ve çıktığında tekrar ana dünyaya (Bucket 0) dönmesini sağlayan bir komut yapısı hazırladık.
`server.lua` İçeriği:
-- Oyuncuyu özel bir daire boyutuna sokan komut
RegisterCommand('daireyegir', function(source, args)
local src = source
local daireId = tonumber(args[1]) or 100 -- Örnek Daire ID
-- 1. Oyuncunun boyutunu değiştirelim
SetPlayerRoutingBucket(src, daireId)
-- 2. Özel boyutta rastgele NPC'lerin doğmasını engelleyelim
SetRoutingBucketPopulationEnabled(daireId, false)
TriggerClientEvent('chat:addMessage', src, {
color = {0, 255, 0},
multiline = true,
args = {"Sistem", "Daire ID: " .. daireId .. " boyutuna giriş yaptınız. Artık dışarıdaki oyuncuları göremezsiniz."}
})
end, false)
-- Oyuncuyu tekrar varsayılan dünyaya geri getiren komut
RegisterCommand('dairedencik', function(source)
local src = source
-- Oyuncuyu ana dünyaya (Bucket 0) alıyoruz
SetPlayerRoutingBucket(src, 0)
TriggerClientEvent('chat:addMessage', src, {
color = {255, 255, 0},
multiline = true,
args = {"Sistem", "Ana dünyaya (Bucket 0) başarıyla geri döndünüz."}
})
end, false)GetVehiclePedIsIn(GetPlayerPed(src), false) ile aracın entity kodunu alıp SetEntityRoutingBucket fonksiyonu ile aracı da aynı boyuta geçirmelisiniz.Ses ve Telsiz Senkronizasyonu (pma-voice)
Routing Bucket kullandığınızda, varsayılan olarak yakındaki oyuncuların sesleri de boyutlara göre filtrelenir. Ancak modern ses sistemlerinde (örneğin pma-voice) sanal boyuttaki bir oyuncunun telsiz (radio) veya telefon görüşmelerinin etkilenmemesi için server.cfg dosyanızda güncel ayarlara dikkat etmelisiniz.
`server.cfg` içerisine eklenecek önerilen ayar:
# pma-voice routing bucket uyumluluğunu aktif edin
setr voice_enableRoutingBuckets trueEğer bu ayarları sıfırdan yapılandırmak ve tamamen optimize edilmiş altyapılara doğrudan sahip olmak istiyorsanız, mağazamızdaki DxAV1 - Roleplay Paketi ürününü inceleyerek hazır instanced mülk sistemlerini deneyimleyebilirsiniz.
Sıkça Sorulan Sorular (SSS)
1. Bir boyuttan (Bucket) çıkmayı unutursam ne olur?
Oyuncu oyundan çıkıp tekrar girdiğinde varsayılan olarak Bucket 0'a döner. Ancak scriptlerinizde oyuncu sunucuya bağlandığında (playerJoined) garantilemek adına oyuncunun boyutunu 0 olarak sıfırlamanız en sağlıklı yöntemdir.
2. Sanal boyuttaki oyuncular birbiriyle ateşli silah çatışmasına girebilir mi?
Evet. Aynı Routing Bucket içinde bulunan tüm oyuncular (örneğin her ikisi de Bucket 5'teyse) tıpkı ana dünyadaymış gibi birbirini görür, duyar ve mermileri birbirine isabet eder.
3. Kaç adet Routing Bucket oluşturabilirim?
FiveM'de Bucket ID sınırları oldukça geniştir (32-bit tamsayılar). Sunucunuzda milyonlarca farklı sanal boyut tanımlayabilirsiniz; bellek kullanımına olumsuz bir etkisi yoktur.
