Daha sıkı frenler, daha tutuşlu lastikler veya gerçek drift fiziği mi istiyorsunuz? FiveM'de araç kullanımını iki temiz yolla değiştirebilirsiniz:
- Düzenlemek
handling.metakalıcı, model başına ayarlama için. - Çalışma zamanında geçersiz kılma işleme bir betikte FiveM native'leri ile.
Bu kılavuz her ikisini de gösterir, her önemli değeri açıklar ve sunucunuzda desenk ve kaosu önleyen güvenli test iş akışları sağlar.
Tüm araç kullanımlarını değiştirmek için bir araç da sağlıyoruz.
Hızlı Özet
- Eklenti arabalar için: o kaynağın
handling.metave aracınvehicles.metabunu işaret eder. - GTA temel arabaları için: özel bir kullanım girdisi ekleyin ve bunu hafif bir kaynakta referans gösterin; oyun dosyalarını düzenlemeyin.
- Canlı ayarlamalar için: kullan
SetVehicleHandlingFloat/Int/Vectorüzerinde müşteri araca sahip olan, ardından gerekirse sunucu tarafı bir kapı ile varsayılanları kilitleyin. - Düzgün test edin: 0–100 km/s hızlanma, son hız, durma mesafesi ve viraj almayı ölçün; değişiklikleri kaydedin; kötü sürüyorsa hızlıca geri alın.
Ön koşullar
- Çalışan bir FiveM sunucusu ve değişiklikleri test etmek için bir geliştirici kaynağı.
- FiveM kaynak yapısı hakkında temel bilgi:
fxmanifest.lua,client.lua,server.lua. - Bir metin düzenleyici (VS Code) ve kaynaklar klasörünüze erişim.
İpucu: tüm handling değişikliklerini bir ayrı kaynak
handling_tuning/böylece bir şeyler ters giderse hızlıca devre dışı bırakabilirsiniz.
Yöntem 1: Düzenle handling.meta (kalıcı)
Nerede bulunur
- Eklenti araçları genellikle şunlarla birlikte gelir
data/handling.meta. - Değilse, bir tane oluşturun ve şuraya referans verin:
fxmanifest.lua.
Kaynak yapısı örneği
resources/ handling_tuning/ fxmanifest.lua data/ handling.meta vehicles.meta (only if you need to bind new handlingId) carvariations.meta (optional)
Minimal fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
files {
'data/handling.meta',
'data/vehicles.meta'
}
-- Tell the game what each file is
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
Örnek handling.meta giriş (araba)
<HandlingData> <Item type="CHandlingData"> <handlingName>MY_TUNED_SULTAN</handlingName> <fMass value="1400.0"/> <fInitialDragCoeff value="8.0"/> <fPercentSubmerged value="85.0"/> <!-- Engine / drivetrain --> <fInitialDriveForce value="0.31"/> <!-- Acceleration strength --> <fDriveInertia value="1.0"/> <fClutchChangeRateScaleUpShift value="2.5"/> <fClutchChangeRateScaleDownShift value="2.0"/> <fInitialDriveMaxFlatVel value="190.0"/> <!-- Approx top speed (km/h proxy) --> <!-- Brakes --> <fBrakeForce value="1.0"/> <fBrakeBiasFront value="0.55"/> <fHandBrakeForce value="0.65"/> <!-- Steering --> <fSteeringLock value="40.0"/> <!-- Grip / traction --> <fTractionCurveMax value="2.4"/> <!-- Peak grip --> <fTractionCurveMin value="2.1"/> <!-- Mid‑corner grip --> <fTractionCurveLateral value="22.0"/> <fTractionSpringDeltaMax value="0.14"/> <fLowSpeedTractionLossMult value="0.6"/> <!-- Suspension --> <fSuspensionForce value="2.0"/> <fSuspensionCompDamp value="1.5"/> <fSuspensionReboundDamp value="2.0"/> <fSuspensionUpperLimit value="0.08"/> <fSuspensionLowerLimit value="-0.10"/> <fSuspensionRaise value="0.00"/> <fAntiRollBarForce value="0.7"/> <!-- Weight balance / roll --> <fRollCentreHeightFront value="0.32"/> <fRollCentreHeightRear value="0.33"/> <!-- Model flags (optional) --> <strModelFlags>440010</strModelFlags> <strHandlingFlags>0</strHandlingFlags> </Item> </HandlingData>
Handling'i bir araca bağla
Yeni bir <handlingName>, aracınızı ona doğru yöneltin vehicles.meta:
<CVehicleModelInfo__InitDataList> <Item> <modelName>sultan</modelName> <handlingId>MY_TUNED_SULTAN</handlingId> </Item> </CVehicleModelInfo__InitDataList>
Yaygın ayar hedefleri
| Hedef | Bu değerleri değiştirin | Notlar |
|---|---|---|
| Daha hızlı hızlanma | fInitialDriveForce biraz yukarı; fDriveInertia biraz yukarı | Büyük sıçramalardan kaçının. Küçük artışlar 0.02–0.05. |
| Daha yüksek üst hız | fInitialDriveMaxFlatVel yukarı | Denge için gerçekçi tutun. |
| Daha iyi frenler | fBrakeForce yukarı; ön ağırlık 0.55–0.65 | Çok yüksek, tekerlekleri gerçekçi olmayan şekilde kilitler. |
| Daha fazla tutuş | fTractionCurveMax/Min yukarı; aşağı fLowSpeedTractionLossMult | Yüksek tutuş eğlenceli kaymaları azaltır. |
| Drift ayarı | Daha düşük fTractionCurveMax/Min; yükselt fLowSpeedTractionLossMult; azalt fBrakeBiasFront | Daha yükseği ile birleştirin fSteeringLock. |
| Daha yumuşak sürüş | Daha düşük fSuspensionForce; aşağı fCompDamp/ReboundDamp | Tabanın yere sürtmesine dikkat edin. |
| Daha düz viraj alma | Yükselt fAntiRollBarForce; yuvarlanma merkezlerini ayarla | Çok sert olursa ani oversteer'a neden olur. |
Bir tane tut değişiklikler araç başına: neyi değiştirdiğiniz, ne kadar değiştirdiğiniz ve test sonuçlarınız.
Yöntem 2: Handling'i Native'lerle Geçersiz Kıl (çalışma zamanı)
Şu durumlarda kullanın: dinamik kurulumlar (yarış etkinlikleri, işler, kiralamalar) veya değerleri kilitlemeden önce A/B testi yapmak istiyorsanız handling.meta.
İstemci betiği örneği
-- client.lua
local function setHandlingFloat(model, field, value)
local mhash = type(model) == 'string' and GetHashKey(model) or model
SetVehicleHandlingFloat(mhash, 'CHandlingData', field, value)
end
CreateThread(function()
-- Example: buff Sultan acceleration a bit
setHandlingFloat('sultan', 'fInitialDriveForce', 0.33)
setHandlingFloat('sultan', 'fInitialDriveMaxFlatVel', 195.0)
end)
Yalnızca sahip olunan araçlara uygula
İstemci sahip varlık, desenk'i önlemek için değişikliği uygulamalıdır. Sunucu yetkisi gerekiyorsa, bir sunucu olayını bir varlık sahibi kontrolü ile eşleştirin ve şurada yeniden uygulayın playerEnteredVehicle.
-- server.lua
RegisterNetEvent('tune:apply')
AddEventHandler('tune:apply', function(netId, changes)
local src = source
-- validate permissions here
TriggerClientEvent('tune:applyClient', -1, netId, changes)
end)
-- client.lua
RegisterNetEvent('tune:applyClient')
AddEventHandler('tune:applyClient', function(netId, changes)
local veh = NetToVeh(netId)
if DoesEntityExist(veh) and NetworkHasControlOfEntity(veh) then
for _, c in ipairs(changes) do
SetVehicleHandlingFloat(GetEntityModel(veh), 'CHandlingData', c.field, c.value)
end
end
end)
Geçici güçlendirmeler (nitrous, etkinlikler) için orijinal değerleri saklayın ve onları geri yükleyin oturumdan sonra.
Güvenli Test İş Akışı
- Aracı klonla: önce bir modelde test edin, tüm sınıfta değil.
- Temelleri ayarla: stok 0–100, azami hız, 100–0 fren mesafesi, standart bir slalom.
- Bir değişkeni değiştir: küçük artışlarla commit yapın, her birinden sonra test edin.
- Aynı rotaları ve hava durumunu kullanın: rastgeleliği kaldır.
- Geri bildirim topla: birden çok oyuncunun test etmesine izin verin; kontrolcü vs klavye farkını not edin.
- Performansı izleyin: kontrol et
resmonher tik değişikliğini betiklediğinizde ani yükselmeler için.
Basit KPI kontrol listesi
- 0–100 km/s hızı, tekerlek patinajı olmadan %5–10 iyileşir.
- Sınıf dengesi için gereken kadar hız artışı.
- Fren mesafesi kısalır ancak gerçekçi kalır.
- Araç sınırda yakalanabilir kalır; anlık oversteer yok.
Denge ve Kaos Önleme Kuralları
- Ayarlamak sınıf başlıkları: azami hız, güç, sınıf başına tutuş (A, S, X). Sınırları belgeleyin.
- Oyuncuların yasa dışı değerler yığmasını önlemek için sunucu tarafı doğrulama uygulayın.
- Kale polis ve acil durum araçlar öngörülebilir; aşırı güçlendirmeyin.
- Drift sunucuları için şunu yayınlayın: drift temel paketi şikayetleri azaltmak için paylaşılan değerlerle.
Sorun giderme
Araç handlingId'nizi görmezden geliyor
- Sağlamak
vehicles.metagirişin<handlingId>tam olarak eşleşir<handlingName>. - Yüklediğinizden emin olun
vehicles.metaüzerindendata_file 'VEHICLE_METADATA_FILE'.
Handling değişiklikleri eklenti araç için geçerli değil
- Bazı paketler kendi içlerine gömer
handling.meta. Kopyaları kaldırın veya dosyanızın yüklendiğinden emin olun sonrasında onlarınki.
Oyuncular arasında senkronizasyon kaybı
- Sahip istemcide çalışma zamanı geçersiz kılmalarını uygula. Spam döngülerden kaçının; her oluşumda bir kez ayarlayın.
Araç çok kolay takla atıyor
- Kütle merkezini düşürün: hafifçe artırın
fRollCentreHeightFront/Rearve azaltfSuspensionRaise.
Understeer (yetersiz dönüş)
- Artır
fTractionCurveMinbiraz vefSteeringLock. Daha fazla arka fren önyargısı düşünün.
Oversteer
- Arka tutuşu veya denge çubuğunu hafifçe artırın. Düşük
fLowSpeedTractionLossMult.
Referans: Anahtar İşleme Değerleri
- Motor:
fInitialDriveForce,fDriveInertia,fInitialDriveMaxFlatVel,fClutchChangeRateScaleUpShift/DownShift - Frenler:
fBrakeForce,fBrakeBiasFront,fHandBrakeForce - Direksiyon:
fSteeringLock - Çekiş:
fTractionCurveMax/Min/Lateral,fLowSpeedTractionLossMult,fTractionSpringDeltaMax - Süspansiyon:
fSuspensionForce,fSuspensionCompDamp,fSuspensionReboundDamp,fSuspensionUpper/LowerLimit,fSuspensionRaise,fAntiRollBarForce - İstikrar:
fRollCentreHeightFront/Rear,fMass,fInitialDragCoeff
Örnek: Dengeli Sokak Kurulumu (kopyala ve uyarlayın)
<Item type="CHandlingData"> <handlingName>MX_STREET_BALANCED</handlingName> <fMass value="1500.0"/> <fInitialDragCoeff value="9.0"/> <fInitialDriveForce value="0.30"/> <fDriveInertia value="1.05"/> <fClutchChangeRateScaleUpShift value="2.2"/> <fClutchChangeRateScaleDownShift value="1.9"/> <fInitialDriveMaxFlatVel value="200.0"/> <fBrakeForce value="1.0"/> <fBrakeBiasFront value="0.60"/> <fHandBrakeForce value="0.55"/> <fSteeringLock value="38.0"/> <fTractionCurveMax value="2.35"/> <fTractionCurveMin value="2.05"/> <fLowSpeedTractionLossMult value="0.7"/> <fSuspensionForce value="2.2"/> <fSuspensionCompDamp value="1.6"/> <fSuspensionReboundDamp value="2.2"/> <fSuspensionUpperLimit value="0.07"/> <fSuspensionLowerLimit value="-0.09"/> <fAntiRollBarForce value="0.75"/> <fRollCentreHeightFront value="0.31"/> <fRollCentreHeightRear value="0.32"/> </Item>
SSS
Tek bir araba için kullanımı nasıl değiştirebilirim?
Yeni bir tane oluştur <handlingName> içinde handling.meta ve şuradan referans verin <handlingId> içinde vehicles.meta o model için.
Oyuncu veya iş başına işlem değişiklikleri uygulayabilir miyim?
Evet. Bir iş başladığında bir istemci betiğinde çalışma zamanı geçersiz kılmalarını kullanın ve bittiğinde stok değerlerini geri yükleyin.
Neden maksimum hız sınırlıymış gibi hissediyorum?fInitialDriveMaxFlatVel yumuşak bir sınır görevi görür. Aerodinamik sürüklenme ve vites oranları hala gerçek azami hızı etkiler.
İşlem değişiklikleri sunucu performansını etkiler mi?
Statik handling.meta değişiklikler yapmaz. Tick başına betik ince ayarları; başlangıçta bir kez ayarlanabilir ve döngülerden kaçınılabilir.
Dahili Bağlantılar
- Eklenti araçları doğru şekilde yükleme
- Değişikliklerinizi karşılaştırmak için Resmon kullanma
- Tam FiveM performans ayarı kılavuzu
- Daha akıcı oyun için en iyi FiveM ayarları
- FiveM'de doku kaybı nasıl giderilir
Harici Referanslar
- FiveM geçersiz kılmaları işlemek için yerel başvuru
- Toplum
handling.metaGTA V değerleri için dokümantasyon
Yayın Kontrol Listesi
- Kopyalama düğmeleriyle kod blokları ekleyin.
- Yukarıdaki beş dahili kılavuzu bağlayın.
- Öncesi/sonrası fren mesafesini gösteren kısa bir demo klibi ekleyin.
- Çapraz platform davranışını (klavye/denetleyici) inceleyin.
- Site genelinde yayına almadan önce 7 gün boyunca bir A/B testi yapın.
Editorial review and source policy
Vehicle handling changes should be versioned per resource. Change one parameter, test braking, steering, collisions and networked behaviour, then compare against the original handling.meta. Do not edit a live shared pack without a rollback copy.
