Vehicle Parts
Core Mechanic doesn't touch default GTA V vehicle stats. Instead, every part installed on a vehicle directly modifies GTA V handling parameters in real-time. Brakes change fBrakeForce, tires change fTractionCurveMin, suspension changes fTractionCurveMax — the vehicle's actual driving behavior shifts based on what's installed and how healthy the parts are.
Parts degrade as you drive. A fresh set of tires grips better than worn ones. A broken transmission won't shift. The health of each part scales its effect — a turbo at 50% health gives half the boost.
Final Value = Base Handling + (Part Value × (Health / 100))Part Categories
Engines
Swap the entire engine block. From stock to 2JZ, V8, and more.
Transmissions
Manual or auto gearbox with RWD/AWD drivetrain options.
Tires
Grip, low-speed traction, and drift behavior.
Brakes
Stopping power. Stock, carbon ceramic, or full race brakes.
Suspension
Ride height and high-speed traction.
Oil
Engine lubrication — better oil means slower overall wear.
Sparkplugs
Ignition reliability. Bad plugs = engine stalls.
Turbo
Forced induction. RPM-based power boost.
Nitro
NOS boost system. Massive power, burns fast.
Brakes
Modifies fBrakeForce — the vehicle's stopping power.
| Variable | Range | What it does |
|---|---|---|
power | 0.0 – 6.0 | Added braking force, scaled by health |
durability | 30.0 – 60.0 | How fast the brakes wear out |
The script takes the vehicle's base fBrakeForce and adds the brake's power value scaled by part health. Higher power = shorter stopping distance.
When broken: fBrakeForce is set to 0.0 — the vehicle literally cannot stop.
lua
Brakes = {
['stock_brakes'] = {
label = "Stock Brakes",
type = 'car',
power = 0.0,
durability = 100.0,
price = 0,
repair = 0
},
['carbon_brakes'] = {
label = "Carbon Ceramic Brakes",
type = 'car',
power = 4.0, -- Strong stopping force
durability = 60.0, -- Wears faster under hard braking
price = 8000,
repair = 3000
},
}Tires
Modifies fTractionCurveMin — the vehicle's minimum grip threshold, how much traction you have when sliding or at the edge of grip.
| Variable | Range | What it does |
|---|---|---|
traction | 0.0 – 3.0 | Grip improvement added to base traction |
lowspeedtraction | -1.0 – 0.8 | Low-speed grip modifier (negative = less grip at low speed) |
drift | true / false | Flags the tire as a drift tire |
durability | 50.0 – 80.0 | How fast the tires wear out |
Better tires = more grip when the vehicle is sliding or cornering hard. The lowspeedtraction value adjusts grip at slow speeds — drift tires typically have negative values here to let the rear slide out easier.
When damaged (<30% health): Traction progressively drops. At 0%, fTractionCurveMin is forced to 0.5 — severe grip loss, the car slides everywhere.
lua
Tires = {
['stock_tires'] = {
label = "Stock Tires",
type = 'car',
traction = 0.0,
lowspeedtraction = 0.0,
drift = false,
durability = 100.0,
price = 0,
repair = 0
},
['michelin_pilot'] = {
label = "Michelin Pilot Sport",
type = 'car',
traction = 2.5, -- High grip
lowspeedtraction = 0.5, -- Good low-speed grip too
drift = false,
durability = 80.0,
price = 3000,
repair = 1000
},
}Suspension
Modifies fTractionCurveMax (peak traction) and fSuspensionRaise (ride height).
| Variable | Range | What it does |
|---|---|---|
traction | 0.0 – 2.0 | High-speed grip boost |
height | 0 – 0.10 | Ride height adjustment |
durability | 40.0 – 80.0 | How fast the suspension wears out |
Better suspension = more grip at high speeds and through fast corners. The height value physically raises or lowers the vehicle.
When broken: fSuspensionRaise drops to -0.10 (slammed to the ground) and fTractionCurveMax falls to 0.5 — the car handles like it's on ice at speed.
lua
Suspensions = {
['stock_suspension'] = {
label = "Stock Suspension",
type = 'car',
traction = 0.0,
height = 0,
durability = 100.0,
price = 0,
repair = 0
},
['coilover'] = {
label = "Coilover Suspension",
type = 'car',
traction = 1.5,
height = 0.02,
durability = 70.0,
price = 6000,
repair = 2000
},
}Transmissions
Modifies fClutchChangeRateScaleUpShift and fClutchChangeRateScaleDownShift — how fast the vehicle shifts gears. Also changes which wheels receive power.
| Variable | Range | What it does |
|---|---|---|
shiftingtime | 0.3 – 5.0 | Gear shift speed (lower = faster shifts) |
drivingwheels | stock / RWD / AWD | Which wheels get power |
manual | true / false | Manual vs automatic shifting |
durability | 40.0 – 85.0 | How fast the transmission wears out |
Faster shifting means quicker acceleration between gears. The drivingwheels setting physically changes which wheels drive the vehicle — you can turn an FWD car into AWD.
When broken: Both shift rates drop to 0.0 — the transmission slips randomly, losing power between gears.
lua
Transmissions = {
['stock_transmission'] = {
label = "Stock Transmission",
type = 'car',
shiftingtime = 5.0,
drivingwheels = 'stock',
manual = false,
durability = 100.0,
price = 0,
repair = 0
},
['manual_gearbox_rwd'] = {
label = "Manual Gearbox RWD",
type = 'car',
shiftingtime = 0.5, -- Fast shifts
drivingwheels = 'RWD', -- Rear-wheel drive
manual = true, -- Player shifts gears
durability = 85.0,
price = 8000,
repair = 3000
},
}Engines
Adds raw power to the vehicle through engine power multipliers.
| Variable | Range | What it does |
|---|---|---|
power | 0.0 – 70.0 | Relative power boost |
sound | string | Custom engine sound name |
durability | 50.0 – 80.0 | How fast the engine wears out |
Engine power adds to the vehicle's overall power output. Higher values make the vehicle accelerate harder. Some engines also have custom sounds that replace the default engine audio.
lua
Engines = {
['stock_engine'] = {
label = "Stock Engine",
type = 'car',
power = 0.0,
durability = 100.0,
price = 0,
repair = 0
},
['2jzengine'] = {
label = "2JZ Engine",
type = 'car',
power = 70.0, -- Maximum power
durability = 75.0, -- Wears faster than stock
price = 20000,
repair = 7000,
sound = '2jz' -- Custom engine sound
},
}Turbo
Modifies SetVehicleEnginePowerMultiplier — forced induction that scales with RPM.
| Variable | Range | What it does |
|---|---|---|
power | 10.0 – 25.0 | Boost multiplier |
durability | 50.0 | How fast the turbo wears out |
The turbo adds power that scales with current RPM. At low RPM, you get minimal boost. At high RPM, you get full boost. This creates a realistic power band — the turbo "spools up."
When broken: Boost drops to 0 — no extra power at any RPM.
lua
Turbos = {
['turbo_stage1'] = {
label = "Stage 1 Turbo",
type = 'car',
power = 10.0,
durability = 50.0,
price = 5000,
repair = 2000
},
['turbo_stage2'] = {
label = "Stage 2 Turbo",
type = 'car',
power = 25.0, -- Maximum boost
durability = 50.0,
price = 12000,
repair = 4000
},
}Nitro
Modifies fDriveInertia and enables SetVehicleBoostActive — massive but short-lived power injection.
| Variable | Range | What it does |
|---|---|---|
power | 100.0 – 150.0 | Boost power |
durability | 25.0 – 30.0 | How fast the bottle depletes (very fast) |
When activated, nitro sets fDriveInertia to 2.0 and fires the vehicle's boost. This gives a huge surge of acceleration. Nitro depletes very fast — once empty, health hits 0 and the bottle is spent. You need a new one.
lua
Nitros = {
['nos_standard'] = {
label = "Standard NOS",
type = 'car',
power = 100.0,
durability = 30.0, -- Lasts a bit longer
price = 2000,
repair = 500
},
['nos_extreme'] = {
label = "Extreme NOS",
type = 'car',
power = 150.0, -- Maximum power
durability = 25.0, -- Burns out faster
price = 5000,
repair = 1000
},
}Oil
Doesn't modify handling directly — acts as a wear multiplier for the entire vehicle.
| Variable | Range | What it does |
|---|---|---|
durability | 10.0 – 100.0 | How long the oil lasts |
Good oil slows down how fast all other parts degrade. When oil runs low (health < 10), the global wear rate spikes — parts break much faster.
lua
Oils = {
['cheap_oil'] = {
label = "Cheap Oil",
type = 'car',
durability = 10.0,
price = 200,
repair = 100
},
['synthetic_oil'] = {
label = "Synthetic Oil",
type = 'car',
durability = 100.0,
price = 2000,
repair = 500
},
}Sparkplugs
Doesn't change handling — determines if the engine runs at all.
| Variable | Range | What it does |
|---|---|---|
durability | 50.0 – 100.0 | How long before failure risk |
startbreak | 10.0 – 25.0 | Health threshold where starting becomes unreliable |
minfail / maxfail | 10000 – 70000 | Random failure interval range (ms) |
When health drops below startbreak, the engine can randomly stall. At 0% health, the engine shuts off completely and won't restart. Also accelerates overall wear rate when broken.
lua
SparkPlugs = {
['stock_sparkplugs'] = {
label = "Stock Sparkplugs",
type = 'car',
durability = 50.0,
startbreak = 25.0,
minfail = 10000,
maxfail = 30000,
price = 0,
repair = 0
},
['ngk_sparkplugs'] = {
label = "NGK Sparkplugs",
type = 'car',
durability = 80.0,
startbreak = 15.0, -- Lower = safer longer
minfail = 20000, -- Longer between failures
maxfail = 50000,
price = 1500,
repair = 500
},
}Adding Custom Parts
To add a new part, copy the structure from the matching category in config.lua and adjust the values. Every part needs:
lua
['your_part_name'] = {
label = "Display Name",
type = 'car', -- 'car', 'motorcycle', 'plane', 'boat'
-- Category-specific values (power, traction, shiftingtime, etc.)
durability = 80.0, -- Wear resistance (100 = longest lasting)
price = 10000, -- Purchase price
repair = 3000 -- Repair cost (metalscrap amount)
},WARNING
Every custom part must be added as an item in your inventory system with the same name as the config key (e.g., your_part_name).
INFO
Higher performance parts typically have lower durability — this is intentional. Racing brakes stop harder but wear out faster. Cheap oil doesn't last. Balance your parts around this tradeoff.
