renzuzu / renzu_tuners

Fivem Advanced Vehicle System. Including Mileages , Degrations ,Multiple Engine Parts Variation like Racing Pistons , Tuning and more.
GNU General Public License v3.0
84 stars 24 forks source link

Hello I am under QB-CORE #11

Closed LAFAFARP closed 1 year ago

LAFAFARP commented 1 year ago

Hello I am under QB-CORE all works niquel except that when I activate the buy option in the config.lua it tells me that I have no money, or when I activate for crafted impossible nothing is displayed therefore obliged to leave all free and all works well

renzuzu commented 1 year ago

its not using jobmoney? if using jobmoney , qb-management must have a money for the current job.

LAFAFARP commented 1 year ago

yes for the payment system I use QB-Management and Jim-Payments but nothing helps yet in the company's account there is money 1.5M€ but impossible

LAFAFARP commented 1 year ago

and the same for crafting impossible to craft and drop the items should we add the items 1 by 1 in the item.lua shared of QBCORE?

LAFAFARP commented 1 year ago

otherwise your script is really really perfect such a feat, too bad you didn't have discord

renzuzu commented 1 year ago

should we add the items 1 by 1 in the item.lua shared of QBCORE?

if you want items , yes you need to install

the item is in renzu_tuners\install folder

renzuzu commented 1 year ago

yes for the payment system I use QB-Management

can you show me your config for tuners

LAFAFARP commented 1 year ago

-- renzu_tuners config = {} -- debug mode -- saves all vehicle including non owned vehicles config.debug = true -- enable commands for dev. /sethandling 100 (0-100), /setfuel 100 (0-100), /setmileage 1000 (0,10000) !! note this does not have permission checks config.sandboxmode = false -- different tuning and no degrations and other stuff. mostly used only when trying to tweak a vehicle handling meta in dyno. config.freeupgrade = true -- for upgrades. set to true best for standalone purpose or testing purpose, for roleplay use the crafting/jobmanage money. if false menu will requires you a specific item for each upgrades config.metadata = false -- use item metadata when crafting items if ox_inventory. if your inventory does not support it, set this to false. config.job = { -- set to false (config.job = false) if you want all feature are accesible by any player, or true, required job to use repairs and upgrade menu, dyno -- job access for menu upgrade and points. ex. mechanic, tuner? ['mechanic'] = 4, -- @jobname -- @grade_level ['tuners'] = 3, -- @jobname -- @grade_level } config.usetarget = true-- if false, please configure the points config -- supports ox_target,qtarget,qb-target only config.enablepackage = true -- easy install all upgrade variants. ex. Full Upgrade all Racing Parts. this will install all in one package for each variants. each upgrades requires item if itemrequired is true config.upgradepackageAnimation = false -- do animation for each upgrades in package config.upgradevariation = { -- enable/disable upgrade variation. ['elite'] = true, ['pro'] = true, ['racing'] = true, ['ultimate'] = true, } config.enablecrafting = true -- crafting for items and parts,turbo, engine etc.. config.purchasableUpgrade = false -- dont like crafting / item based? set this to true to use money to all item upgrades config.jobmanagemoney = false -- use job money if purchasableUpgrade. ex. esx_society, qb-management -- prevent local entity / spawn entity by admin to be saved in server. config.plateprefix = 'FRA' -- recommended 3 char config.plateformat = config.plateprefix..'^ 111' -- this will make plate CFXIE91F for example.. this is required to prevent local vehicles/ admin spawn entity filling up global state vehicle stats -- docs: https://docs.fivem.net/natives/?_0x79780FD2 config.nosaveplate = { -- dont save this plate pattern ['CFX'] = true, ['RENT'] = true, ['ESX'] = true, } -- points config.engineswapper = { coords = { [1] = vector4(-316.03, -121.16, 38.99, 65.03) }, label = 'Changement de moteur', model = prop_engine_hoist, }

config.enablemarkers = true -- markers points config.points = { -- marker and drawtext type interactions [1] = {label = 'Mise à niveau du véhicule', coord = vector3(-320.34, -126.2, 38.97)}, -- add new here }

config.repairpoints = { -- marker and drawtext type interactions [1] = {label = 'Réparation du véhicule', coord = vector3(-322.9, -132.33, 38.96)}, }

config.useMlo = false -- set to true if your using MLO and there will be no need to spawn Dynamometer prop config.dynoprop = mist_dyno -- replace with your dyno prop or leave default config.dynopropShow = true -- set to false if your MLO has a DYNO area.. but setting up the coordinates for prop is still require to make the dyno logic work. config.dynocollision = true -- set to true if your using dynamometer prop config.routingbucket = 0 -- leave default if your not using custom routing buckets config.dynopoints = { -- @platform = exact location of prop. @coord marker location of dyno access -- east lost santos customs sample placement [1] = { label = "Dynojet", platform = vec4(-360.3323, -112.5015, 38.9845, 158.4727+180), -- location of dyno position where vehicle will align offsets = vec3(0.2,0.0,0.0), -- additional (+) offset to vehicle fittings coord = vec3(-362.3821, -117.6957, 39.083) -- location of Interaction }, -- benny sample placement [2] = { label = "Dynojet", platform = vec4(-214.057, -1319.63, 31.15, 1.93), -- location of dyno position where vehicle will align offsets = vec3(0.0,0.2,0.0), -- additional (+) offset to vehicle fittings coord = vec3(-213.894, -1324.475, 30.909) -- location of Interaction } }

config.enginestat_default = { -- default engine stat. do not edit, this is being used in tuning computation logic compression = 100.0, airpressure = 100.0, fuelpressure = 100.0, ignition = 100.0, }

config.tuningmenu = { [1] = { label = 'Mise au point du moteur', icon = 'wrench', description = 'Système de gestion du moteur', type = 'engine', attributes = { { name = 'acceleration', type = "slider", label = "Calendrier d'allumage", min = -0.5, max = 1.5 , step = 0.001, default = 1.0}, { name = 'engineresponse', type = "slider", label = "Tableau des carburants", min = -0.5, max = 1.5 , step = 0.001, default = 1.0}, { name = 'gear_response', type = "slider", label = "Réponse de l'engrenage", min = -0.5, max = 1.5 , step = 0.01, default = 1.0}, { name = 'topspeed', type = "slider", label = "Transmission finale", min = -0.5, max = 1.5 , step = 0.01, default = 1.0}, } }, [2] = { label = 'Rapport d\'engrenage', icon = 'cogs', type = 'gearratio', description = 'Changer les rapports de vitesse (affecte uniquement /manualgear, /autogear)', }, [3] = { label = 'Réglage Turbo', type = 'turbo', icon = 'chart-area', description = 'Modification de la pression de suralimentation par engrenage', min = 0.5, max = 1.5, }, [4] = { label = 'Réglage de la suspension', type = 'suspension', icon = 'car', description = 'Réglage de la suspension de votre véhicule', handlingname = 'CHandlingData', attributes = { { type = "slider", label = "fSuspensionForce", min = 0.5, max = 1.5 , step = 0.001, default = 1.0}, { type = "slider", label = "fSuspensionCompDamp", min = 0.5, max = 1.5 , step = 0.001, default = 1.0}, { type = "slider", label = "fSuspensionReboundDamp", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fSuspensionUpperLimit", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fSuspensionLowerLimit", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fSuspensionRaise", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fSuspensionBiasFront", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fAntiRollBarForce", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fAntiRollBarBiasFront", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fRollCentreHeightFront", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, { type = "slider", label = "fRollCentreHeightRear", min = 0.5, max = 1.5 , step = 0.01, default = 1.0}, } }, }

config.tunableonly = { -- bypasses upgrade add stats. dont disable these if you dont know what it is. this can only be modify via tuning when ex. in suspension if vehicle have upgraded suspension. eg. elite_suspension ['fSuspensionUpperLimit'] = true, ['fSuspensionLowerLimit'] = true, ['fSuspensionRaise'] = true, ['fSuspensionBiasFront'] = true, ['fAntiRollBarForce'] = true, ['fAntiRollBarBiasFront'] = true, ['fRollCentreHeightFront'] = true, ['fRollCentreHeightRear'] = true,

}

config.engineparts = { -- @item = item name, @handling = Affected Handling when degraded [1] = {item = 'engine_oil', label = 'Huile moteur', handling = {'fInitialDriveMaxFlatVel'}, maxdegrade = 0.1, affects = 'Vitesse maximale', cost = 25000}, [2] = {item = 'engine_sparkplug', label = 'Bougie d\'allumage du moteur', handling = {'fDriveInertia'}, maxdegrade = 0.2, affects = 'Couple', cost = 25000}, [3] = {item = 'engine_gasket', label = 'Joint de culasse', handling = {'fDriveInertia'}, maxdegrade = 0.3, affects = 'Couple', cost = 25000}, [4] = {item = 'engine_airfilter', label = 'Filtre à air du moteur', handling = {'fInitialDriveForce'}, maxdegrade = 0.15, affects = 'Puissance', cost = 25000}, [5] = {item = 'engine_fuelinjector', label = 'Injecteurs de carburant pour moteurs', handling = {'fInitialDriveForce'}, maxdegrade = 0.15, affects = 'Puissance', cost = 25000}, [6] = {item = 'engine_pistons', label = 'Pistons de moteur' , handling = {'fInitialDriveMaxFlatVel'}, maxdegrade = 0.2, affects = 'Vitesse maximale', cost = 25000}, [7] = {item = 'engine_connectingrods', label = 'Barres de connexion du moteur' , handling = {'fInitialDriveForce'}, maxdegrade = 0.2, affects = 'Vitesse maximale', cost = 25000}, [8] = {item = 'engine_valves', label = 'Soupapes de moteur', handling = {'fInitialDriveForce'}, maxdegrade = 0.2, affects = 'Puissance', cost = 25000}, [9] = {item = 'engine_block', label = 'Bloc moteur', handling = {'fInitialDriveMaxFlatVel'}, maxdegrade = 0.2, affects = 'Vitesse maximale', cost = 25000}, [10] = {item = 'engine_crankshaft', label = 'Vilebrequin du moteur', handling = {'fDriveInertia'}, maxdegrade = 0.3, affects = 'Couple', cost = 25000}, [11] = {item = 'transmition_clutch', label = 'Embrayage de transmission', handling = {'fClutchChangeRateScaleUpShift'}, maxdegrade = 0.7, affects = 'Passage au rapport inférieur', cost = 25000}, [12] = {item = 'engine_flywheel', label = 'Volant d\'inertie du moteur', handling = {'fClutchChangeRateScaleDownShift'}, maxdegrade = 0.8, affects = 'Passage au niveau supérieur', cost = 25000}, [13] = {item = 'engine_camshaft', label = 'Arbre à cames du moteur', handling = {'fInitialDriveMaxFlatVel'}, maxdegrade = 0.5, affects = 'Vitesse maximale', cost = 25000}, [14] = {item = 'oem_brakes', label = 'Freins OEM', handling = {'fBrakeForce','fHandBrakeForce'}, maxdegrade = 0.8, affects = 'Brake Power', cost = 25000}, [15] = {item = 'oem_suspension', label = 'Suspension OEM', handling = {'fSuspensionForce','fSuspensionCompDamp','fSuspensionReboundDamp'}, maxdegrade = 0.8, affects = 'Suspension', cost = 25000}, [16] = {item = 'oem_gearbox', label = 'Boîte de vitesses OEM', handling = {'nInitialDriveGears','fDriveInertia','fClutchChangeRateScaleUpShift','fClutchChangeRateScaleDownShift'}, maxdegrade = 0.2, affects = 'Acceleration', cost = 25000}, }

-- @category = category of upgrades, @state = state bag name of degration status. @item = item name, @handling = affected handling when upgraded , @add = percent added when upgraded config.engineupgrades = { -- ULTIMATE {category = 'ultimate', state = 'engine_oil', item = 'ultimate_oil', label = 'Huile ultime', handling = {'fInitialDriveMaxFlatVel'}, add = 1.15, affects = 'Vitesse maximale', cost = 25000}, {category = 'ultimate', state = 'engine_sparkplug', item = 'ultimate_sparkplug', label = 'Bougie d\'allumage ultime', stat = {ignition = 3.2}, handling = {'fDriveInertia'}, add = 1.3, affects = 'Couple', cost = 25000}, {category = 'ultimate', state = 'engine_gasket', item = 'ultimate_gasket', label = 'Joint de culasse ultime', handling = {'fDriveInertia'}, add = 1.2, affects = 'Couple', cost = 25000}, {category = 'ultimate', state = 'engine_airfilter', item = 'ultimate_airfilter', label = 'Filtre à air ultime', handling = {'fInitialDriveForce'}, add =1.2, affects = 'Puissance', cost = 25000}, {category = 'ultimate', state = 'engine_fuelinjector', item = 'ultimate_fuelinjector', label = 'Injecteurs de carburant Ultimate', stat = {fuelpressure = 43.2}, handling = {'fInitialDriveForce'}, add = 1.2, affects = 'Puissance', cost = 25000}, {category = 'ultimate', state = 'engine_pistons', item = 'ultimate_pistons', label = 'Pistons ultimes' , stat = {compression = 16.0, fuelpressure = -16.0, ignition = 8.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.2, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'ultimate', state = 'engine_connectingrods', item = 'ultimate_connectingrods', label = 'Ultimate Connecting Rods' , handling = {'fInitialDriveForce'}, add = 1.2, affects = 'Vitesse maximale', cost = 25000}, {category = 'ultimate', state = 'engine_valves', item = 'ultimate_valves', label = 'Vannes ultimes', stat = {compression = 1.6, fuelpressure = -1.6}, handling = {'fInitialDriveForce'}, add = 1.2, affects = 'Puissance', cost = 25000}, {category = 'ultimate', state = 'engine_block', item = 'ultimate_block', label = 'Bloc ultime', stat = {compression = 16.0, fuelpressure = -8.0, ignition = 8.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.3, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'ultimate', state = 'engine_crankshaft', item = 'ultimate_crankshaft', label = 'Vilebrequin Ultime', stat = {ignition = 8.0}, handling = {'fDriveInertia'}, add = 1.2, affects = 'Couple', mod = {index = 11, add = 1}, cost = 25000}, {category = 'ultimate', state = 'transmition_clutch', item = 'ultimate_clutch', label = 'Embrayage de transmission ultime', handling = {'fClutchChangeRateScaleUpShift'}, add = 1.4, affects = 'Passage au rapport inférieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'ultimate', state = 'engine_flywheel', item = 'ultimate_flywheel', label = 'Volant d\'inertie Ultime', handling = {'fClutchChangeRateScaleDownShift'}, add = 1.3, affects = 'Passage au niveau supérieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'ultimate', state = 'engine_camshaft', item = 'ultimate_camshaft', label = 'Arbre à cames ultime',stat = {duration = 48.0, compression = 16.0, fuelpressure = -16.0, ignition = 16.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.3, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'ultimate', state = 'oem_brakes', item = 'ultimate_brakes', label = 'Freins ultimes', handling = {'fBrakeForce','fHandBrakeForce'}, add = 6.4, affects = 'Brake Power', mod = {index = 12, add = 3}, cost = 25000}, {category = 'ultimate', state = 'oem_suspension', item = 'ultimate_suspension', label = 'Suspension ultime', handling = {'fSuspensionForce','fSuspensionCompDamp','fSuspensionReboundDamp','fSuspensionUpperLimit','fSuspensionLowerLimit','fSuspensionRaise','fSuspensionBiasFront','fAntiRollBarForce','fAntiRollBarBiasFront','fRollCentreHeightFront','fRollCentreHeightRear'}, add = 1.6, affects = 'Suspension', mod = {index = 15, add = 4}, cost = 25000}, {category = 'ultimate', state = 'oem_gearbox', item = 'ultimate_gearbox', label = 'Boîte de vitesses ultime', handling = {'nInitialDriveGears','fDriveInertia','fClutchChangeRateScaleUpShift','fClutchChangeRateScaleDownShift'}, add = 1.7, affects = 'Acceleration', mod = {index = 13, add = 1}, cost = 25000}, -- RACING {category = 'racing', state = 'engine_oil', item = 'racing_oil', label = 'Huile de course', handling = {'fInitialDriveMaxFlatVel'}, add = 1.1, affects = 'Vitesse maximale', cost = 25000}, {category = 'racing', state = 'engine_sparkplug', item = 'racing_sparkplug', label = 'Bougie d\'allumage de compétition', stat = {ignition = 1.6}, handling = {'fDriveInertia'}, add = 1.2, affects = 'Couple', cost = 25000}, {category = 'racing', state = 'engine_gasket', item = 'racing_gasket', label = 'Joint de culasse de compétition', handling = {'fDriveInertia'}, add = 1.1, affects = 'Couple', cost = 25000}, {category = 'racing', state = 'engine_airfilter', item = 'racing_airfilter', label = 'Filtre à air Racing', handling = {'fInitialDriveForce'}, add = 1.1, affects = 'Puissance', cost = 25000}, {category = 'racing', state = 'engine_fuelinjector', item = 'racing_fuelinjector', label = 'Injecteurs de carburant de compétition', stat = {fuelpressure = 21.6}, handling = {'fInitialDriveForce'}, add = 1.1, affects = 'Puissance', cost = 25000}, {category = 'racing', state = 'engine_pistons', item = 'racing_pistons', label = 'Pistons de course', stat = {compression = 8.0, fuelpressure = -8.0, ignition = 4.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.1, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'racing', state = 'engine_connectingrods', item = 'racing_connectingrods', label = 'Bielles de course' , handling = {'fInitialDriveForce'}, add = 1.1, affects = 'Vitesse maximale', cost = 25000}, {category = 'racing', state = 'engine_valves', item = 'racing_valves', label = 'Soupapes de course', stat = {compression = 0.8, fuelpressure = -0.8}, handling = {'fInitialDriveForce'}, add = 1.1, affects = 'Puissance', cost = 25000}, {category = 'racing', state = 'engine_block', item = 'racing_block', label = 'Bloc de course', stat = {compression = 8.0, fuelpressure = -4.0, ignition = 4.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.2, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'racing', state = 'engine_crankshaft', item = 'racing_crankshaft', label = 'Vilebrequin Racing', stat = {ignition = 4.0}, handling = {'fDriveInertia'}, add = 1.1, affects = 'Couple', mod = {index = 11, add = 1}, cost = 25000}, {category = 'racing', state = 'transmition_clutch', item = 'racing_clutch', label = 'Embrayage de transmission Racing', handling = {'fClutchChangeRateScaleUpShift'}, add = 1.3, affects = 'Passage au rapport inférieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'racing', state = 'engine_flywheel', item = 'racing_flywheel', label = 'Volant de course', handling = {'fClutchChangeRateScaleDownShift'}, add = 1.2, affects = 'Passage au niveau supérieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'racing', state = 'engine_camshaft', item = 'racing_camshaft', label = 'Arbre à cames de compétition',stat = {duration = 26.0, compression = 8.0, fuelpressure = -8.0, ignition = 8.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.2, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'racing', state = 'oem_brakes', item = 'racing_brakes', label = 'Freins de course', handling = {'fBrakeForce','fHandBrakeForce'}, add = 4.4, affects = 'Brake Power', mod = {index = 12, add = 3}, cost = 25000}, {category = 'racing', state = 'oem_suspension', item = 'racing_suspension', label = 'Suspension de course', handling = {'fSuspensionForce','fSuspensionCompDamp','fSuspensionReboundDamp','fSuspensionUpperLimit','fSuspensionLowerLimit','fSuspensionRaise','fSuspensionBiasFront','fAntiRollBarForce','fAntiRollBarBiasFront','fRollCentreHeightFront','fRollCentreHeightRear'}, add = 1.4, affects = 'Suspension', mod = {index = 15, add = 4}, cost = 25000}, {category = 'racing', state = 'oem_gearbox', item = 'racing_gearbox', label = 'Boîte de vitesses de course', handling = {'nInitialDriveGears','fDriveInertia','fClutchChangeRateScaleUpShift','fClutchChangeRateScaleDownShift'}, add = 1.5, affects = 'Acceleration', mod = {index = 13, add = 1}, cost = 25000}, -- PRO {category = 'pro', state = 'engine_oil', item = 'pro_oil', label = 'Huile Pro', handling = {'fInitialDriveMaxFlatVel'}, add = 1.07, affects = 'Vitesse maximale', cost = 25000}, {category = 'pro', state = 'engine_sparkplug', item = 'pro_sparkplug', label = 'Bougies d\'allumage Pro',stat = {ignition = 0.8}, handling = {'fDriveInertia'}, add = 1.12, affects = 'Couple', cost = 25000}, {category = 'pro', state = 'engine_gasket', item = 'pro_gasket', label = 'Joint de culasse Pro', handling = {'fDriveInertia'}, add = 1.07, affects = 'Couple', cost = 25000}, {category = 'pro', state = 'engine_airfilter', item = 'pro_airfilter', label = 'Filtre à air Pro', handling = {'fInitialDriveForce'}, add =1.07, affects = 'Puissance', cost = 25000}, {category = 'pro', state = 'engine_fuelinjector', item = 'pro_fuelinjector', label = 'Pro Fuel Injectors',stat = {fuelpressure = 12.0}, handling = {'fInitialDriveForce'}, add = 1.07, affects = 'Puissance', cost = 25000}, {category = 'pro', state = 'engine_pistons', item = 'pro_pistons', label = 'Pistons Pro' , stat = {compression = 4.0, fuelpressure = -4.0, ignition = 2.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.07, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'pro', state = 'engine_connectingrods', item = 'pro_connectingrods', label = 'Bielles Pro' , handling = {'fInitialDriveForce'}, add = 1.07, affects = 'Vitesse maximale', cost = 25000}, {category = 'pro', state = 'engine_valves', item = 'pro_valves', label = 'Soupapes Pro', stat = {compression = 0.4, fuelpressure = -0.4}, handling = {'fInitialDriveForce'}, add = 1.07, affects = 'Puissance', cost = 25000}, {category = 'pro', state = 'engine_block', item = 'pro_block', label = 'Bloc Pro', stat = {compression = 4.0, fuelpressure = -2.0, ignition = 2.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.12, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'pro', state = 'engine_crankshaft', item = 'pro_crankshaft', label = 'Vilebrequin Pro', stat = {ignition = 2.0}, handling = {'fDriveInertia'}, add = 1.07, affects = 'Couple', mod = {index = 11, add = 1}, cost = 25000}, {category = 'pro', state = 'transmition_clutch', item = 'pro_clutch', label = 'Embrayage Pro Transmission', handling = {'fClutchChangeRateScaleUpShift'}, add = 1.12, affects = 'Passage au rapport inférieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'pro', state = 'engine_flywheel', item = 'pro_flywheel', label = 'Volant d\'inertie Pro', handling = {'fClutchChangeRateScaleDownShift'}, add = 1.07, affects = 'Passage au niveau supérieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'pro', state = 'engine_camshaft', item = 'pro_camshaft', label = 'Arbre à cames Pro',stat = {duration = 12.6,compression = 4.0, fuelpressure = -4.0, ignition = 4.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.12, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'pro', state = 'oem_brakes', item = 'pro_brakes', label = 'Freins Pro', handling = {'fBrakeForce','fHandBrakeForce'}, add = 3.4, affects = 'Brake Power', mod = {index = 12, add = 3}, cost = 25000}, {category = 'pro', state = 'oem_suspension', item = 'pro_suspension', label = 'Suspension Pro', handling = {'fSuspensionForce','fSuspensionCompDamp','fSuspensionReboundDamp','fSuspensionUpperLimit','fSuspensionLowerLimit','fSuspensionRaise','fSuspensionBiasFront','fAntiRollBarForce','fAntiRollBarBiasFront','fRollCentreHeightFront','fRollCentreHeightRear'}, add = 1.25, affects = 'Suspension', mod = {index = 15, add = 4}, cost = 25000}, {category = 'pro', state = 'oem_gearbox', item = 'pro_gearbox', label = 'Boîte de vitesses Pro', handling = {'nInitialDriveGears','fDriveInertia','fClutchChangeRateScaleUpShift','fClutchChangeRateScaleDownShift'}, add = 1.3, affects = 'Acceleration', mod = {index = 13, add = 1}, cost = 25000}, -- ELITE {category = 'elite', state = 'engine_oil', item = 'elite_oil', label = 'Huile d\'élite', handling = {'fInitialDriveMaxFlatVel'}, add = 1.03, affects = 'Vitesse maximale', cost = 125000}, {category = 'elite', state = 'engine_sparkplug', item = 'elite_sparkplug', label = 'Bougie d\'allumage Elite',stat = {ignition = 0.4}, handling = {'fDriveInertia'}, add = 1.05, affects = 'Couple', cost = 25000}, {category = 'elite', state = 'engine_gasket', item = 'elite_gasket', label = 'Joint de culasse Elite', handling = {'fDriveInertia'}, add = 1.03, affects = 'Couple', cost = 125000}, {category = 'elite', state = 'engine_airfilter', item = 'elite_airfilter', label = 'Filtre à air Elite', handling = {'fInitialDriveForce'}, add =1.03, affects = 'Puissance', cost = 125000}, {category = 'elite', state = 'engine_fuelinjector', item = 'elite_fuelinjector', label = 'Injecteurs de carburant Elite', stat = {fuelpressure = 5.2}, handling = {'fInitialDriveForce'}, add = 1.03, affects = 'Puissance', cost = 25000}, {category = 'elite', state = 'engine_pistons', item = 'elite_pistons', label = 'Pistons d\'élite' ,stat = {compression = 2.0, fuelpressure = -2.0, ignition = 1.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.03, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'elite', state = 'engine_connectingrods', item = 'elite_connectingrods', label = 'Bielles Elite' , handling = {'fInitialDriveForce'}, add = 1.03, affects = 'Vitesse maximale', cost = 25000}, {category = 'elite', state = 'engine_valves', item = 'elite_valves', label = 'Vannes Elite',stat = {compression = 0.2, fuelpressure = -0.2}, handling = {'fInitialDriveForce'}, add = 1.03, affects = 'Puissance', cost = 25000}, {category = 'elite', state = 'engine_block', item = 'elite_block', label = 'Bloc d\'élite',stat = {compression = 2.0, fuelpressure = -1.0, ignition = 1.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.05, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'elite', state = 'engine_crankshaft', item = 'elite_crankshaft', label = 'Vilebrequin Elite',stat = {ignition = 1.0}, handling = {'fDriveInertia'}, add = 1.03, affects = 'Couple', mod = {index = 11, add = 1}, cost = 25000}, {category = 'elite', state = 'transmition_clutch', item = 'elite_clutch', label = 'Embrayage Elite Transmission', handling = {'fClutchChangeRateScaleUpShift'}, add = 1.1, affects = 'Passage au rapport inférieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'elite', state = 'engine_flywheel', item = 'elite_flywheel', label = 'Volant d\'inertie Elite', handling = {'fClutchChangeRateScaleDownShift'}, add = 1.03, affects = 'Passage au niveau supérieur', mod = {index = 13, add = 1}, cost = 25000}, {category = 'elite', state = 'engine_camshaft', item = 'elite_camshaft', label = 'Arbre à cames Elite',stat = {duration = 6.3, compression = 2.0, fuelpressure = -2.0, ignition = 2.0}, handling = {'fInitialDriveMaxFlatVel'}, add = 1.05, affects = 'Vitesse maximale', mod = {index = 11, add = 1}, cost = 25000}, {category = 'elite', state = 'oem_brakes', item = 'elite_brakes', label = 'Freins d\'élite', handling = {'fBrakeForce','fHandBrakeForce'}, add = 2.4, affects = 'Brake Power', mod = {index = 12, add = 3}, cost = 25000}, {category = 'elite', state = 'oem_suspension', item = 'elite_suspension', label = 'Suspension d\'élite', handling = {'fSuspensionForce','fSuspensionCompDamp','fSuspensionReboundDamp','fSuspensionUpperLimit','fSuspensionLowerLimit','fSuspensionRaise','fSuspensionBiasFront','fAntiRollBarForce','fAntiRollBarBiasFront','fRollCentreHeightFront','fRollCentreHeightRear'}, add = 1.1, affects = 'Suspension', mod = {index = 15, add = 4}, cost = 25000}, {category = 'elite', state = 'oem_gearbox', item = 'elite_gearbox', label = 'Boîte de vitesses Elite', handling = {'nInitialDriveGears','fDriveInertia','fClutchChangeRateScaleUpShift','fClutchChangeRateScaleDownShift'}, add = 1.1, affects = 'Acceleration', mod = {index = 13, add = 1}, cost = 25000}, }

config.upgraderequire = { -- crafting required category for each parts variants --- @category = required category of parts to craft the current parts, @chance = chances of success ['elite'] = {category = 'oem', chance = 90}, -- ex. elite parts need x5 OEM ['pro'] = {category = 'elite', chance = 70}, ['racing'] = {category = 'pro', chance = 50}, ['ultimate'] = {category = 'racing', chance = 20}, }

-- Hardcoded Function for materials required for each variants -- turbo, engineswap, nitro requires Latest renzu_turbo, renzu_engine, renzu_nitro GetEngineLocals = function() local engines = {} if GetResourceState('renzu_engine') == 'started' then local local_engines = exports.renzu_engine:Engines().Locals for k,v in pairs(local_engines) do if v.model then table.insert(engines,{label = v.name, name = v.model, requires = {steel = 5,aluminum = 5,iron = 5, copper = 5}}) -- requirements for Local Engines Crafting end end end return engines end

GetEngineCustoms = function() local engines = {} if GetResourceState('renzu_engine') == 'started' then local custom_engines = exports.renzu_engine:Engines().Custom for k,v in pairs(custom_engines) do table.insert(engines,{label = v.label, name = v.soundname, requires = {steel = 25,aluminum = 25,iron = 25, copper = 25}}) -- requirements for Custom Engines Crafting end end return engines end

GetRecentOptions = function(type,state) for k,v in pairs(config.engineupgrades) do if v.category == config.upgraderequire[type].category and v.state == state then return v.item, config.upgraderequire[type].chance end end end

GetCraftableParts = function() local parts = {} for k,v in pairs(config.engineparts) do table.insert(parts,{label = v.label, name = v.item, requires = {steel = 5,aluminum = 5,iron = 5, copper = 5}}) -- requirements for OEM Parts Crafting end return parts end

GetCraftableUpgradeParts = function(type) local parts = {} for k,v in pairs(config.engineupgrades) do if type == v.category then local item, chance = GetRecentOptions(v.category,v.state) local require = {steel = 10,aluminum = 10,iron = 10, copper = 10} if item then require = {[item] = 5, steel = 10,aluminum = 10,} -- requirements for Upgrade Parts Crafting .. the [item] variable is the recent category ex. racing_pistons requires 5x of pro_pistons end table.insert(parts,{label = v.label, name = v.item, state = v.state, requires = require, chance = chance, type = 'upgrade'}) end end return parts end

config.crafting = { -- crafting config and requires item ['engine'] = { label = 'Crée moteur', coord = vector3(-340.32, -141.09, 39.01), categories = { [1] = { items = GetEngineLocals(), label = 'Moteurs locaux', }, [2] = { items = GetEngineCustoms(), label = 'Moteurs sur mesure', }, } }, ['parts'] = { label = 'Pièces détachées pour moteurs', coord = vector3(-342.0, -140.67, 39.01), categories = { [1] = {items = GetCraftableParts(), label = 'Pièces Oem'}, [2] = {items = GetCraftableUpgradeParts('elite'), label = 'Pièces d\'élite'}, [3] = {items = GetCraftableUpgradeParts('pro'), label = 'Pièces détachées'}, [4] = {items = GetCraftableUpgradeParts('racing'), label = 'Pièces de rechange'}, [5] = {items = GetCraftableUpgradeParts('ultimate'), label = 'Pièces ultimes'}, } }, ['etc'] = { label = 'Craft Turbo, pneus et pièces de rechange', coord = vector3(-344.0, -139.94, 39.01), categories = { [1] = { items = { [1] = {name = 'turbostreet', label = 'Street Turbo', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [2] = {name = 'turbosports', label = 'Sports Turbo', requires = {steel = 20,aluminum = 20,iron = 20, copper = 20}}, [3] = {name = 'turboracing', label = 'Racing Turbo', requires = {steel = 40,aluminum = 40,iron = 40, copper = 40}}, [4] = {name = 'turboultimate', label = 'Ultimate Turbo', requires = {steel = 40,aluminum = 40,iron = 40, copper = 40}}, }, label = 'Turbos sur mesure', }, [2] = { items = { [1] = {name = 'street_tires', label = 'Pneus de route', requires = {rubber = 10, sulfur = 10,steel = 10, polyester = 10}}, [2] = {name = 'sports_tires', label = 'Pneus de sport', requires = {rubber = 20, sulfur = 20,steel = 20, polyester = 20}}, [3] = {name = 'racing_tires', label = 'Pneus de course', requires = {rubber = 40, sulfur = 40,steel = 40, polyester = 40}}, }, label = 'Pneus sur mesure', }, [3] = { items = { [1] = { label = 'Différentiel à glissement limité (avant)', name = 'lsdf' ,requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [2] = { label = 'Différentiel à glissement limité (arrière)', name = 'lsdr', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [3] = { label = 'Système de contrôle de la traction', name = 'tcs', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [4] = { label = 'Système de contrôle de la stabilité', name = 'esc', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [5] = { label = 'Rapports de démultiplication', name = 'closerationgears', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [6] = { label = 'Transmission CVT', name = 'cvttranny', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [7] = { label = 'Freinage antiblocage', name = 'abs', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [8] = { label = 'Torsion de \'essieu (avant)', name = 'axletorsionfront', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [9] = { label = 'Torsion de l\'essieu (arrière)', name = 'axletorsionrear', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [10] = { label = 'Essieu solide (avant)', name = 'axlesolidfront', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [11] = { label = 'Essieu solide (arrière)', name = 'axlesolidrear', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [12] = { label = 'Système de récupération de l\'énergie cinétique (KERS)', name = 'kers', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [13] = { label = 'Offroad Tune 1', name = 'offroadtune1', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [14] = { label = 'Offroad Tune 2', name = 'offroadtune2', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [15] = { label = 'Stanced', name = 'stanced', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [16] = { label = 'Traction avant', name = 'frontwheeldrive', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [17] = { label = 'Traction arrière', name = 'rearwheeldrive', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [18] = { label = 'Toutes roues motrices', name = 'allwheeldrive', requires = {steel = 10,aluminum = 10,iron = 10, copper = 10}}, [19] = { label = 'ECU programmable', name = 'ecu', requires = {chip = 1,board = 1,copper = 10, steel = 10}},

            },
            label = 'Advanced Parts'
        },
        [4] = {
            items = {
                [1] = {name = 'nitro50shot', label = 'Nitros à 50 coups', requires = {bottle = 1, methane = 10,steel = 10, water = 1}},
                [2] = {name = 'nitro100shot', label = 'Nitros à 100 coups', requires = {bottle = 2, methane = 20,steel = 20, water = 20}},
                [3] = {name = 'nitro200shot', label = 'Nitros à 200 coups', requires = {bottle = 3, methane = 40,steel = 40, water = 40}},
            },
            label = 'NOS',
        },
    }
},

}

config.degrade = { -- degrade value when specific mileage value is reach [1] = { min = 50000, degrade = 0.9}, [2] = { min = 20000, degrade = 0.8}, [3] = { min = 10000, degrade = 0.75}, [4] = { min = 5000, degrade = 0.65}, [5] = { min = 3000, degrade = 0.55}, [6] = { min = 2000, degrade = 0.45}, [7] = { min = 1500, degrade = 0.35}, [8] = { min = 1000, degrade = 0.25}, [9] = { min = 500, degrade = 0.15}, [10] = { min = 100, degrade = 0.11}, [11] = { min = 1, degrade = 0.01}, }

config.tires = { -- tires handling @item = item name, @degrade = degrade percent for each MS tick. [1] = {label = 'Pneus de route', item = 'street_tires', degrade = 0.01, handling = {fLowSpeedTractionLossMult = 1.1,fTractionLossMult = 1.1,fTractionCurveMin = 1.2, fTractionCurveMax = 1.0, fTractionCurveLateral = 1.25}, cost = 25000}, [2] = {label = 'Pneus de sport', item = 'sports_tires', degrade = 0.02, handling = {fLowSpeedTractionLossMult = 0.9,fTractionLossMult = 0.9,fTractionCurveMin = 1.1, fTractionCurveMax = 1.1, fTractionCurveLateral = 1.0}, cost = 25000}, [3] = {label = 'Pneus de course', item = 'racing_tires', degrade = 0.03, handling = {fLowSpeedTractionLossMult = 0.65,fTractionLossMult = 0.7,fTractionCurveMin = 1.25, fTractionCurveMax = 1.35, fTractionCurveLateral = 0.7}, cost = 25000}, [4] = {label = 'Pneus de traînée', item = 'drag_tires', degrade = 0.1, handling = {fLowSpeedTractionLossMult = 0.7,fTractionLossMult = 2.1,fTractionCurveMin = 1.91, fTractionCurveMax = 0.4, fTractionCurveLateral = 1.4}, cost = 25000}, [5] = {label = 'Pneus de dérive', item = 'drift_tires', degrade = 0.2, handling = {fLowSpeedTractionLossMult = 1.0,fTractionLossMult = 1.0,fTractionCurveMin = 1.0, fTractionCurveMax = 1.0, fTractionCurveLateral = 1.0}, cost = 25000},

}

config.drivetrain = { [1] = { label = 'FWD', item = 'frontwheeldrive', value = 1.0, cost = 25000 }, [2] = { label = 'AWD', item = 'allwheeldrive', value = 0.5, cost = 25000 }, [3] = { label = 'RWD', item = 'rearwheeldrive', value = 0.0, cost = 25000 } }

config.extras = { -- do not change unless you know how vehicle flags works for this resource [1] = { label = 'Différentiel à glissement limité (avant)', item = 'lsdf' ,handling = {type = 'CCarHandlingData', name = 'strAdvancedFlags', value = {0,3}}, cost = 25000}, [2] = { label = 'Différentiel à glissement limité (arrière)', item = 'lsdr', handling = {type = 'CCarHandlingData', name = 'strAdvancedFlags', value = {1,4}}, cost = 25000}, [3] = { label = 'Système de contrôle de la traction', item = 'tcs', handling = {type = 'CCarHandlingData', name = 'strAdvancedFlags', value = {13}}, cost = 25000}, [4] = { label = 'Système de contrôle de la stabilité', item = 'esc', handling = {type = 'CCarHandlingData', name = 'strAdvancedFlags', value = {14}}, cost = 25000}, [5] = { label = 'Rapports de démultiplication', item = 'closerationgears', handling = {type = 'CCarHandlingData', name = 'strAdvancedFlags', value = {21}}, cost = 25000}, [6] = { label = 'Transmission CVT', item = 'cvttranny', handling = {type = 'CHandlingData', name = 'strHandlingFlags', value = {12}}, cost = 25000}, [7] = { label = 'Freinage antiblocage', item = 'abs', handling = {type = 'CHandlingData', name = 'strModelFlags', value = {4}}, cost = 25000}, [8] = { label = 'Torsion de l\'essieu (avant)', item = 'axletorsionfront', handling = {type = 'CHandlingData', name = 'strModelFlags', value = {16}}, cost = 25000}, [9] = { label = 'Torsion de l\'essieu (arrière)', item = 'axletorsionrear', handling = {type = 'CHandlingData', name = 'strModelFlags', value = {20}}, cost = 25000}, [10] = { label = 'Essieu solide (avant)', item = 'axlesolidfront', handling = {type = 'CHandlingData', name = 'strModelFlags', value = {17}}, cost = 25000}, [11] = { label = 'Essieu solide (arrière)', item = 'axlesolidrear', handling = {type = 'CHandlingData', name = 'strModelFlags', value = {21}}, cost = 25000}, [12] = { label = 'Système de récupération de l\'énergie cinétique (KERS)', item = 'kers', handling = {type = 'CHandlingData', name = 'strHandlingFlags', value = {2}}, cost = 25000}, [13] = { label = 'Offroad Tune 1', item = 'offroadtune1', handling = {type = 'CHandlingData', name = 'strHandlingFlags', value = {20}}, cost = 25000}, [14] = { label = 'Offroad Tune 2', item = 'offroadtune2', handling = {type = 'CHandlingData', name = 'strHandlingFlags', value = {21}}, cost = 25000}, [15] = { label = 'Stanced', item = 'stanced', handling = {type = 'CCarHandlingData', name = 'strAdvancedFlags', value = {15,26}}, cost = 25000},

}

config.gears = { -- hugo simones config data. gear 8 are corrected due to probably changes from newer builds ( 2699 tested ), gear 9 untested [1] = {0.90},--1 [2] = {3.33, 0.90},--2 [3] = {3.33, 1.57, 0.90},--3 [4] = {3.33, 1.83, 1.22, 0.90},--4 [5] = {3.33, 1.92, 1.36, 1.05, 0.90},--5 [6] = {3.33, 1.95, 1.39, 1.09, 0.95, 0.90},--6 [7] = {4.00, 2.34, 1.67, 1.31, 1.14, 1.08, 0.90},--7 [8] = {4.025, 2.025, 1.523, 1.314, 1.154, 1.073, 1.0, 0.90},--8 [9] = {7.70, 4.51, 3.22, 2.52, 2.20, 2.08, 1.73, 1.31, 0.90}--9 }

config.tunableRPM = { [1] = 1.0, [2] = 0.9, [3] = 0.8, [4] = 0.7, [5] = 0.6, [6] = 0.5, [7] = 0.4, [8] = 0.3, [9] = 0.2, [10] = 0.1, }

config.radialoptions = { { id = 'Upgrades', label = 'Améliorations', icon = 'wrench', onSelect = function() return UpgradePackage() end }, { id = 'Repair', label = 'Réparation', icon = 'hammer', onSelect = function() return Repair() end }, { id = 'tuning', label = 'Tuning', icon = 'chart-bar', onSelect = function() return TuningMenu() end }, { id = 'parts', label = 'Pièces de moteur', icon = 'cog', onSelect = function() return CheckVehicle(true) end }, { id = 'performance', label = 'Performance', icon = 'chart-line', onSelect = function() return CheckPerformance(true) end }, { id = 'seetires', label = 'Voir Pneus', icon = 'car', onSelect = function() return CheckWheels(true) end }, }

config.drift_handlings = { {'fInitialDriveMaxFlatVel',380.000000}, -- {'fDriveInertia', 3.000000}, -- {'fInitialDriveForce', 2.200000}, {'fMass', 700.000000}, {'fInitialDragCoeff',0.500000}, {'fPercentSubmerged',85.000000}, {'vecCentreOfMassOffset', vector3(0.000000,-0.100000,-0.100000)}, {'vecInertiaMultiplier', vector3(1.200000,1.400000,2.000000)}, {'fDriveBiasFront',0.000000}, {'fClutchChangeRateScaleUpShift',51.300000}, {'fClutchChangeRateScaleDownShift',51.300000}, --{'fInitialDriveMaxFlatVel',380.000000}, {'fSteeringLock',55.000000}, {'fTractionCurveMax',1.040000,0.840000}, {'fTractionCurveMin',1.200000,1.400000}, {'fTractionCurveLateral',45.500000}, {'fTractionSpringDeltaMax',0.110000}, {'fLowSpeedTractionLossMult',0.200000}, {'fCamberStiffnesss',0.000000}, {'fTractionBiasFront',0.420000}, {'fTractionLossMult',0.950000}, {'fSuspensionForce',2.200000}, {'fSuspensionCompDamp',2.200000}, {'fSuspensionReboundDamp',2.100000}, {'fSuspensionUpperLimit',0.030000}, {'fSuspensionLowerLimit',-0.030000}, {'fSuspensionRaise',-0.000000}, {'fSuspensionBiasFront',0.550000}, {'fAntiRollBarForce',0.800000}, {'fAntiRollBarBiasFront',0.430000}, {'fRollCentreHeightFront',0.150000}, {'fRollCentreHeightRear',0.150000}, }

function import(file) local name = ('%s.lua'):format(file) local content = LoadResourceFile(GetCurrentResourceName(),name) local f, err = load(content) return f() end

-- customs items from other resource config.customItems = { [1] = {item = 'turbostreet', cost = 25000}, [2] = {item = 'turbosports', cost = 25000}, [3] = {item = 'turboracing', cost = 25000}, [4] = {item = 'nitro50shot', cost = 25000}, [5] = {item = 'nitro100shot', cost = 25000}, [6] = {item = 'nitro200shot', cost = 25000}, }

itemsData = {} for k,v in pairs(config.engineparts) do table.insert(itemsData,v) end for k,v in pairs(config.engineupgrades) do table.insert(itemsData,v) end for k,v in pairs(config.tires) do table.insert(itemsData,v) end for k,v in pairs(config.drivetrain) do table.insert(itemsData,v) end for k,v in pairs(config.extras) do table.insert(itemsData,v) end for k,v in pairs(config.customItems) do table.insert(itemsData,v) end table.insert(itemsData,{item = 'ecu', cost = 25000}) config.developertune = { [1] = { label = 'Attributs physiques', icon = 'wrench', description = 'Ces sept valeurs représentent les proportions physiques des véhicules dans le jeu :', type = 'PhysicalAttributes', handlingname = 'CHandlingData', attributes = { { type = "input", label = "fMass", default = 1.0, description = 'Il s\'agit du poids du véhicule en kilogrammes.'}, { type = "input", label = "fInitialDragCoeff", default = 1.0, description = ' Augmenter pour simuler la traînée aérodynamique.'}, { type = "input", label = "fDownForceModifier", default = 1.0, description = ' Augmentez cette valeur pour accroître l\'adhérence à grande vitesse.'}, { type = "input", label = "fPopUpLightRotation", default = 1.0, description = 'Remplace le comportement de l\'os light_cover pour lui permettre de pivoter jusqu\'à l\'angle spécifié.'}, { type = "input", label = "fPercentSubmerged", default = 1.0, description = 'Pourcentage de la hauteur du véhicule dans l\'eau avant que le véhicule ne "flotte". '}, { type = "textarea", label = "vecCentreOfMassOffset", default = 1.0, description = 'Cette valeur déplace le centre de gravité en mètres d\'un côté à l\'autre. '}, { type = "textarea", label = "vecInertiaMultiplier", default = 1.0, description = ''},

    }
},
[2] = { 
    label = 'Attributs de la transmission',
    icon = 'wrench',
    description = 'Ces valeurs décrivent les performances du véhicule en ligne droite.',
    type = 'Transmission',
    handlingname = 'CHandlingData',
    attributes = {
        { type = "input", label = "fDriveBiasFront",  default = 1.0, description = 'Cette valeur est utilisée pour déterminer si un véhicule est à traction avant, arrière ou à quatre roues motrices.'},
        { type = "number", label = "nInitialDriveGears", default = 1.0, description = 'Nombre de vitesses d\'avance qu\'une transmission contient.'},
        { type = "input", label = "fInitialDriveForce", default = 1.0, description = 'Cette valeur indique la force motrice de la voiture, au niveau des roues.'},
        { type = "input", label = "fDriveInertia", default = 1.0, description = 'Décrit la vitesse de rotation d\'un moteur.'},
        { type = "input", label = "fClutchChangeRateScaleUpShift", default = 1.0, description = 'Multiplicateur de la vitesse d\'embrayage pour les changements de vitesse, un nombre plus élevé = changements de vitesse plus rapides.'},
        { type = "input", label = "fClutchChangeRateScaleDownShift", default = 1.0, description = 'Multiplicateur de la vitesse de l\'embrayage lors des rétrogradations, un nombre plus élevé = des rétrogradations plus rapides.'},
        { type = "input", label = "fInitialDriveMaxFlatVel", default = 1.0, description = 'Détermine la vitesse à la ligne rouge en vitesse supérieure ; contrôle l\'entraînement final de la boîte de vitesses du véhicule.'},
        { type = "input", label = "fBrakeForce", default = 1.0, description = 'Multiplie le calcul de décélération des jeux. Plus le nombre est grand, plus le freinage est fort.'},
        { type = "input", label = "fBrakeBiasFront", default = 1.0, description = 'Il contrôle la répartition de la force de freinage entre les essieux avant et arrière..'},
        { type = "input", label = "fHandBrakeForce", default = 1.0, description = 'Puissance de freinage du frein à main. Plus le chiffre est élevé, plus le freinage est puissant.'},
        { type = "input", label = "fSteeringLock", default = 1.0, description = 'Cette valeur est un multiplicateur du calcul par le jeu de l\'angle de rotation d\'une roue directrice en plein virage.'},
    }
},
[3] = { 
    label = 'Attributs de la traction des roues',
    icon = 'wrench',
    description = 'Les attributs suivants décrivent le comportement dynamique du véhicule, de la négociation des virages à l\'accélération et à la décélération.',
    type = 'Transmission',
    handlingname = 'CHandlingData',
    attributes = {
        { type = "input", label = "fTractionCurveMax",  default = 1.0, description = 'L\'adhérence du véhicule dans les virages est un multiplicateur du frottement de la surface du pneu.'},
        { type = "input", label = "fTractionCurveMin", default = 1.0, description = 'L\'adhérence du véhicule à l\'accélération et au freinage est un multiplicateur du frottement de la surface du pneu. '},
        { type = "input", label = "fTractionCurveLateral", default = 1.0, description = 'Forme de la courbe de traction latérale (position du pic de traction en degrés). Des valeurs plus faibles rendent l\'adhérence du véhicule plus réactive mais moins tolérante à la perte d\'adhérence.'},
        { type = "input", label = "fTractionSpringDeltaMax", default = 1.0, description = 'Distance maximale de déplacement des parois latérales. Unité : mètre. Une force tire le véhicule dans la direction opposée au déplacement latéral.'},
        { type = "input", label = "fLowSpeedTractionLossMult", default = 1.0, description = 'Le degré de réduction de l\'adhérence à basse vitesse, 0,0 signifie une adhérence normale. Cela affecte principalement l\'épuisement de la voiture. '},
        { type = "input", label = "fCamberStiffnesss", default = 1.0, description = 'Le degré de poussée du véhicule dans le sens du roulis. Le carrossage de la route affecte également le roulis et les forces appliquées.'},
        { type = "input", label = "fTractionBiasFront", default = 1.0, description = 'Détermine la répartition de la traction de l\'avant vers l\'arrière.'},
        { type = "input", label = "fTractionLossMult", default = 1.0, description = 'Dans quelle mesure la traction est-elle affectée par les différences d\'adhérence des matériaux par rapport à la version 1.0 ? En fait, il s\'agit de savoir dans quelle mesure l\'adhérence est modifiée lorsque l\'on conduit sur l\'asphalte et la boue.'},
    }
},
[4] = { 
    label = 'Attributs de la suspension',
    type = 'suspension',
    icon = 'car',
    description = 'Réglage de la suspension de votre véhicule',
    handlingname = 'CHandlingData',
    attributes = {
        { type = "input", label = "fSuspensionForce",  default = 1.0, description = ' Affecte la solidité de la suspension. Peut être utile si la voiture se renverse facilement dans les virages.'},
        { type = "input", label = "fSuspensionCompDamp", default = 1.0, description = 'Amortissement lors de la compression de la jambe de force. Plus grand = plus rigide.'},
        { type = "input", label = "fSuspensionReboundDamp", default = 1.0, description = 'Amortissement lors de la détente de la jambe de force. Plus grand = plus rigide'},
        { type = "input", label = "fSuspensionUpperLimit", default = 1.0, description = 'Limite visuelle... jusqu\'où les roues peuvent-elles se déplacer vers le haut ou vers le bas par rapport à leur position d\'origine ?'},
        { type = "input", label = "fSuspensionLowerLimit", default = 1.0, description = 'Limite visuelle... jusqu\'où les roues peuvent-elles se déplacer vers le haut ou vers le bas par rapport à leur position d\'origine ?'},
        { type = "input", label = "fSuspensionRaise", default = 1.0, description = 'La quantité de suspension qui soulève le corps des roues.'},
        { type = "input", label = "fSuspensionBiasFront", default = 1.0, description = 'Échelle d\'amortissement des forces avant/arrière.'},
        { type = "input", label = "fAntiRollBarForce", default = 1.0, description = 'La constante du ressort qui est transmise à la roue opposée lorsqu\'elle est soumise à une compression - des nombres plus élevés correspondent à une force plus importante. Plus les chiffres sont élevés, moins il y a de roulis.'},
        { type = "input", label = "fAntiRollBarBiasFront", default = 1.0, description = 'La répartition entre l\'avant et l\'arrière de la barre antiroulis (0 à l\'avant, 1 à l\'arrière)'},
        { type = "input", label = "fRollCentreHeightFront", default = 1.0, description = 'Hauteur du centre de roulis de l\'essieu avant, à partir du bas du modèle (route), en mètres.'},
        { type = "input", label = "fRollCentreHeightRear", default = 1.0, description = 'Hauteur du centre de roulis de l\'essieu arrière, à partir de la base du modèle (route), en mètres..'},
    }
},
[5] = { 
    label = 'Attributs des dommages',
    type = 'Damage',
    icon = 'car',
    description = 'Les attributs suivants déterminent la manière dont le véhicule réagit aux effets dommageables.',
    handlingname = 'CHandlingData',
    attributes = {
        { type = "input", label = "fCollisionDamageMult",  default = 1.0, description = 'Multiplie le calcul des dommages subis par le véhicule lors d\'une collision, provoquant l\'incendie du réservoir d\'essence et des roues.'},
        { type = "input", label = "fWeaponDamageMult", default = 1.0, description = 'Multiplie le calcul des dégâts infligés au véhicule par les armes.'},
        { type = "input", label = "fDeformationDamageMult", default = 1.0, description = 'Multiplie le calcul des jeux de dommages causant des déformations.'},
        { type = "input", label = "fEngineDamageMult", default = 1.0, description = 'Multiplie le calcul des jeux de dommages au moteur, provoquant une explosion ou une panne du moteur.'},
        { type = "input", label = "fPetrolTankVolume", default = 1.0, description = 'Quantité d\'essence qui fuira après avoir tiré sur le réservoir d\'essence du véhicule. Également utilisé par certains scripts de consommation de carburant..'},
        { type = "input", label = "fOilVolume", default = 1.0, description = 'Temps de fumée noire avant que le moteur ne s\'éteigne ?'},
        { type = "input", label = "fPetrolConsumptionRate", default = 1.0, description = ''},
    }
},
[6] = { 
    label = 'Drapeaux de véhicules',
    type = 'Flags',
    icon = 'car',
    description = 'CHandlingData Flags',
    handlingname = 'CHandlingData',
    attributes = {
        { type = "number", label = "strModelFlags",  default = 1.0, description = 'Affecte les fonctions liées au modèle.'},
        { type = "number", label = "strHandlingFlags", default = 1.0, description = 'Affecte les fonctions liées à la manutention.'},
        { type = "number", label = "strDamageFlags", default = 1.0, description = 'Indique les portes qui sont incassables.'},
    }
},
[7] = { 
    label = 'Données de sous-traitement',
    type = 'SubHandlingData',
    icon = 'car',
    description = 'CCarHandlingData Attributes',
    handlingname = 'CCarHandlingData',
    attributes = {
        { type = "input", label = "fBackEndPopUpCarImpulseMult",  default = 1.0, description = '.'},
        { type = "input", label = "fBackEndPopUpBuildingImpulseMult", default = 1.0, description = ''},
        { type = "input", label = "fBackEndPopUpMaxDeltaSpeed", default = 1.0, description = ''},
        { type = "input", label = "fToeFront", default = 1.0, description = 'Règle le pincement des roues avant du véhicule. '},
        { type = "input", label = "fToeRear", default = 1.0, description = 'Règle le pincement des roues arrière du véhicule.'},
        { type = "input", label = "fCamberFront", default = 1.0, description = 'Règle le carrossage des roues avant du véhicule. '},
        { type = "input", label = "fCamberRear", default = 1.0, description = 'Règle le carrossage des roues arrière du véhicule.'},
        { type = "input", label = "fCastor", default = 1.0, description = 'Règle l\'angle de chasse du véhicule.'},
        { type = "input", label = "fEngineResistance", default = 1.0, description = 'Ajusté par plusieurs véhicules depuis l\'ajout de ce paramètre, il n\'y a cependant pas d\'effets connus ou observés..'},
        { type = "input", label = "fMaxDriveBiasTransfer", default = 1.0, description = 'Transfère la force motrice des roues qui patinent aux roues moins entraînées. Affecte les différentiels'},
        { type = "input", label = "fJumpForceScale", default = 1.0, description = 'Ajuste la force avec laquelle les véhicules dotés d\'un saut sont boostés. Plus la valeur est élevée, plus le saut est important.'},
        { type = "input", label = "fIncreasedRammingForceScale", default = 1.0, description = 'Augmentation de la force d\'éperonnage.'},
        { type = "number", label = "strAdvancedFlags", default = 1.0, description = 'Drapeaux avancés pour voitures. Ces drapeaux sont tristement célèbres parce que leur application originale a des effets négatifs sur certains véhicules.'},
    }
},

} if config.sandboxmode then config.tuningorig = config.tuningmenu config.tuningmenu = config.developertune end

LAFAFARP commented 1 year ago

so to activate the crafting of items you have to put the objects from your install file but it will be long because they are not the same as my item.lua file in my qbcore shared

renzuzu commented 1 year ago

its the same format for qbcore items.

and

config.purchasableUpgrade = false -- dont like crafting / item based? set this to true to use money to all item upgrades config.jobmanagemoney = false -- use job money if purchasableUpgrade. ex. esx_society, qb-management

you need to set this both true, if you want to use job money

LAFAFARP commented 1 year ago

it tells me as soon as I activate the option:/ https://prnt.sc/vwOiFRCyXqW2

renzuzu commented 1 year ago

its mean you dont have the item,

can you make a clip?

this is well tested in qbcore using qbinventory.

LAFAFARP commented 1 year ago

Yes

LAFAFARP commented 1 year ago

https://streamable.com/3qm2f6 this is what happens when I activate the config.jobmanagemoney option

renzuzu commented 1 year ago

that means, you dont have money from Job Society. if qb-core its qb-management.

or your current job is not listed in the config.jobs

if do you want job upgrades. you should enable this config.purchasableUpgrade and config.jobmanagemoney set both to true

check your jobs if its correct here. config.jobs check if your job management have a money.

LAFAFARP commented 1 year ago

ok ill try

LAFAFARP commented 1 year ago

news error : https://prnt.sc/Tw5yBdMPoj0D and on live console https://prnt.sc/-8TRCKTciJBG

renzuzu commented 1 year ago

its seems your issue is not updating the resource,

this issue has been fixed few days ago if i remember correctly

renzuzu commented 1 year ago

look this commit.

https://github.com/renzuzu/renzu_tuners/commit/83373e4729a13866da04e452b04b5becc9429bbf

LAFAFARP commented 1 year ago

However, I seem to have the new version

LAFAFARP commented 1 year ago

i will upload new version

LAFAFARP commented 1 year ago

If I understand correctly I can't activate these 3 options? config.enablecrafting = true -- crafting for items and parts,turbo, engine etc.. config.purchasableUpgrade = true -- dont like crafting / item based? set this to true to use money to all item upgrades config.jobmanagemoney = true -- use job money if purchasableUpgrade. ex. esx_society, qb-management

LAFAFARP commented 1 year ago

and i have news error on disable enablecrafting : https://prnt.sc/4YdWf8MbHBcu however i updated it

renzuzu commented 1 year ago

try the latest commit

LAFAFARP commented 1 year ago

hello again news error on start renzu_tuners after download latest version : https://prnt.sc/4iKjMPdem4BB

LAFAFARP commented 1 year ago

ok no problem solved on that one it's just that I updated OX_LIB and it didn't pass I put back the old version and 0 problem

LAFAFARP commented 1 year ago

it's good it works more than adding the items 1 by 1 for crafting