$ ABD Doları
  • $ ABD Doları
  • € AVRO
  • £ GBP
  • $ Avustralya Doları
  • R$ BRL
  • İsviçre Frangı İsviçre Frangı
  • ¥ Japon Yeni
Araç Sürüş Modifikasyonunu Değiştirme (FiveM)

Araç Sürüş Modifikasyonunu Değiştirme (FiveM)

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:

  1. Düzenlemek handling.meta kalıcı, model başına ayarlama için.
  2. Ç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.meta ve aracın vehicles.meta bunu 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

HedefBu değerleri değiştirinNotlar
Daha hızlı hızlanmafInitialDriveForce 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ızfInitialDriveMaxFlatVel yukarıDenge için gerçekçi tutun.
Daha iyi frenlerfBrakeForce 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ğı fLowSpeedTractionLossMultYüksek tutuş eğlenceli kaymaları azaltır.
Drift ayarıDaha düşük fTractionCurveMax/Min; yükselt fLowSpeedTractionLossMult; azalt fBrakeBiasFrontDaha yükseği ile birleştirin fSteeringLock.
Daha yumuşak sürüşDaha düşük fSuspensionForce; aşağı fCompDamp/ReboundDampTabanın yere sürtmesine dikkat edin.
Daha düz viraj almaYü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ışı

  1. Aracı klonla: önce bir modelde test edin, tüm sınıfta değil.
  2. Temelleri ayarla: stok 0–100, azami hız, 100–0 fren mesafesi, standart bir slalom.
  3. Bir değişkeni değiştir: küçük artışlarla commit yapın, her birinden sonra test edin.
  4. Aynı rotaları ve hava durumunu kullanın: rastgeleliği kaldır.
  5. Geri bildirim topla: birden çok oyuncunun test etmesine izin verin; kontrolcü vs klavye farkını not edin.
  6. Performansı izleyin: kontrol et resmon her 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.meta girişin <handlingId> tam olarak eşleşir <handlingName>.
  • Yüklediğinizden emin olun vehicles.meta üzerinden data_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/Rear ve azalt fSuspensionRaise.

Understeer (yetersiz dönüş)

  • Artır fTractionCurveMin biraz ve fSteeringLock. 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


Harici Referanslar


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.