Utiliser le coupon WELCOME pour sauver 20%

$ USD
  • $ USD
  • € EUR
  • £ GBP
  • $ AUD
  • R$ BRL
  • CHF CHF
  • ¥ JPY
Comment modifier la tenue de route d'un véhicule (FiveM)

Comment modifier la tenue de route d'un véhicule (FiveM)

Envie de freins plus précis, de pneus plus adhérents ou d'une véritable physique de drift ? Dans FiveM, vous pouvez modifier le comportement de votre véhicule de deux manières simples :

  1. Modifier handling.meta pour un réglage permanent par modèle.
  2. Gestion des remplacements lors de l'exécution avec des natifs de FiveM dans un script.

Ce guide montre les deux, explique chaque valeur importante et vous fournit des flux de travail de test sûrs qui empêchent la désynchronisation et le chaos sur votre serveur.

Nous fournissons également un outil permettant de modifier toutes les tenues de route du véhicule.


Résumé rapide

  • Pour les voitures supplémentaires: modifier cette ressource handling.meta et assurer le bon fonctionnement du véhicule vehicles.meta le montre.
  • Pour les voitures de base GTA: ajoutez une entrée de gestion personnalisée et référencez-la dans une ressource légère ; ne modifiez pas les fichiers du jeu.
  • Pour des ajustements en direct: utiliser SetVehicleHandlingFloat/Int/Vector sur le client qui possède le véhicule, puis verrouillez les valeurs par défaut avec une porte côté serveur si nécessaire.
  • Tester correctement: mesurez la vitesse de 0 à 100 km/h, la vitesse de pointe, la distance d'arrêt et les virages ; enregistrez les changements ; revenez rapidement en arrière si la conduite est plus mauvaise.

Prérequis

  • Un serveur FiveM fonctionnel et une ressource de développement pour tester les modifications.
  • Connaissances de base de la structure des ressources FiveM : fxmanifest.lua, client.lua, server.lua.
  • Un éditeur de texte (VS Code) et un accès à votre dossier de ressources.

Conseil : conservez toutes les modifications de manipulation dans un ressource distincte handling_tuning/ afin que vous puissiez le désactiver rapidement si quelque chose se casse.


Méthode 1 : Modifier handling.meta (permanent)

Où le trouver

  • Les véhicules complémentaires sont généralement livrés avec data/handling.meta.
  • Sinon, créez-en un et référencez-le dans fxmanifest.lua.

Exemple de structure de ressources

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'

Exemple handling.meta entrée (voiture)

<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>

Lier la manutention à un véhicule

Si vous avez introduit un nouveau <handlingName>, pointez votre véhicule vers lui vehicles.meta:

<CVehicleModelInfo__InitDataList>
 <Item>
 <modelName>sultan</modelName>
 <handlingId>MY_TUNED_SULTAN</handlingId>
 </Item>
</CVehicleModelInfo__InitDataList>

Objectifs de réglage communs

ButModifiez ces valeursRemarques
Accélération plus rapidefInitialDriveForce légèrement en hausse; fDriveInertia un peu plus hautÉvitez les sauts brusques. Petits incréments de 0,02 à 0,05.
Vitesse de pointe plus élevéefInitialDriveMaxFlatVel en hautRestez réaliste pour trouver l’équilibre.
De meilleurs freinsfBrakeForce vers le haut ; biais 0,55–0,65 avantUne position trop haute bloque les roues de manière irréaliste.
Plus d'adhérencefTractionCurveMax/Min en haut; en bas fLowSpeedTractionLossMultUne adhérence élevée réduit les glissades amusantes.
Configuration de dériveInférieur fTractionCurveMax/Min; augmenter fLowSpeedTractionLossMult; réduire fBrakeBiasFrontCombiner avec des niveaux supérieurs fSteeringLock.
Conduite plus douceInférieur fSuspensionForce; inférieur fCompDamp/ReboundDampAttention au creux.
Virages plus platsAugmenter fAntiRollBarForce; ajuster les centres de roulisUne rigidité excessive provoque un survirage brutal.

Gardez un journal des modifications par véhicule : ce que vous avez modifié, dans quelle mesure et les résultats de vos tests.


Méthode 2 : Remplacer la gestion par les natifs (exécution)

Utilisez ceci lorsque vous en avez besoin dynamique configurations (événements de course, emplois, locations) ou souhaitez effectuer des tests A/B avant de verrouiller les valeurs dans handling.meta.

Exemple de script client

-- 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)

S'applique uniquement aux véhicules possédés

Le client qui possède L'entité doit appliquer la modification pour éviter la désynchronisation. Si vous avez besoin d'une autorité serveur, associez un événement serveur à une vérification du propriétaire de l'entité et réappliquez-la. 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)

Pour les boosts temporaires (nitreux, événements), stockez les valeurs d'origine et les restaurer après la séance.


Flux de travail de test sécurisé

  1. Véhicule clone:testez d'abord sur un modèle, pas sur toute la classe.
  2. Définir des lignes de base: stock 0–100, vitesse de pointe, distance de freinage 100–0, un slalom standard.
  3. Changer une variable: valider de petits incréments, tester après chacun.
  4. Utilisez des itinéraires et des conditions météorologiques identiques: supprimer le caractère aléatoire.
  5. Recueillir des commentaires: laissez plusieurs joueurs tester ; contrôleur de notes contre clavier.
  6. Surveiller les performances: vérifier resmon pour les pics lorsque vous écrivez des changements par tick.

Liste de contrôle simple des indicateurs clés de performance

  • Le 0–100 km/h s'améliore de 5–10% sans patinage des roues.
  • La vitesse de pointe n'augmente pas plus que nécessaire pour l'équilibre des classes.
  • La distance de freinage diminue mais reste réaliste.
  • La voiture reste rattrapable à la limite ; pas de survirage brusque.

Règles d'équilibre et anti-chaos

  • Ensemble plafonds de classe: vitesse de pointe, puissance, adhérence par classe (A, S, X). Documentez les limites.
  • Appliquez la validation côté serveur afin que les joueurs ne puissent pas empiler des valeurs illégales.
  • Garder police et urgences véhicules prévisibles ; ne pas trop polir.
  • Pour les serveurs de dérive, publiez un pack de base de dérive avec des valeurs partagées pour réduire les plaintes.

Dépannage

Le véhicule ignore votre handlingId

  • Assurer la vehicles.meta entrées <handlingId> correspond exactement <handlingName>.
  • Assurez-vous d'avoir chargé vehicles.meta via data_file 'VEHICLE_METADATA_FILE'.

Les modifications de maniabilité ne s'appliquent pas aux voitures supplémentaires

  • Certains packs intègrent leurs propres handling.metaSupprimez les doublons ou assurez-vous que votre fichier se charge après la leur.

Désynchronisation entre les joueurs

  • Appliquer les remplacements d'exécution sur le client propriétaire. Éviter les boucles de spam ; définir une seule fois par génération.

La voiture se retourne trop facilement

  • Centre de masse inférieur : augmentation légère fRollCentreHeightFront/Rear et réduire fSuspensionRaise.

Sous-virage

  • Augmenter fTractionCurveMin légèrement et fSteeringLockEnvisagez une répartition plus importante du freinage arrière.

Survirage

  • Augmenter légèrement l'adhérence arrière ou l'anti-roulis. Abaisser fLowSpeedTractionLossMult.

Référence : Valeurs de gestion des clés

  • Moteur: fInitialDriveForce, fDriveInertia, fInitialDriveMaxFlatVel, fClutchChangeRateScaleUpShift/DownShift
  • Freins: fBrakeForce, fBrakeBiasFront, fHandBrakeForce
  • Pilotage: fSteeringLock
  • Traction: fTractionCurveMax/Min/Lateral, fLowSpeedTractionLossMult, fTractionSpringDeltaMax
  • Suspension: fSuspensionForce, fSuspensionCompDamp, fSuspensionReboundDamp, fSuspensionUpper/LowerLimit, fSuspensionRaise, fAntiRollBarForce
  • Stabilité: fRollCentreHeightFront/Rear, fMass, fInitialDragCoeff

Exemple : configuration de rue équilibrée (copier et adapter)

<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>

FAQ

Comment puis-je modifier la tenue de route d'une seule voiture ?
Créer un nouveau <handlingName> dans handling.meta et le référencer via <handlingId> dans vehicles.meta pour ce modèle.

Puis-je appliquer des modifications de gestion par joueur ou par travail ?
Oui. Utilisez des remplacements d'exécution dans un script client au démarrage d'une tâche et restaurez les valeurs d'origine à la fin.

Pourquoi la vitesse de pointe semble-t-elle limitée ?
fInitialDriveMaxFlatVel Agit comme un bouchon souple. La traînée aérodynamique et les rapports de démultiplication influencent toujours la vitesse de pointe réelle.

Les modifications de gestion affectent-elles les performances du serveur ?
Statique handling.meta Les modifications ne le sont pas. Les ajustements de script par tick peuvent être définis une fois au lancement et éviter les boucles.


Liens internes


Références externes


Liste de contrôle de publication

  • Ajoutez des blocs de code avec des boutons de copie.
  • Reliez les cinq guides internes ci-dessus.
  • Ajoutez un court clip de démonstration de la distance de freinage avant/après.
  • Examiner le comportement multiplateforme (clavier/contrôleur).
  • Exécutez un test A/B pendant 7 jours avant de déployer le site sur l’ensemble du site.

Examen éditorial et politique des sources

Les modifications de maniabilité des véhicules doivent être versionnées par ressource. Modifiez un paramètre, testez le freinage, la direction, les collisions et le comportement en réseau, puis comparez-le à l'original handling.meta. Ne modifiez pas un pack partagé en direct sans une copie de restauration.