JRaxion Vehicle Damage System [Vehicle Failure]
Overview
JRaxion Vehicle Damage is an advanced vehicle damage and maintenance system for FiveM servers. It simulates realistic vehicle wear and tear, including:
- Engine and body damage from collisions and high RPM
- Oil temperature and level monitoring
- Battery level management
- Mileage tracking
- Turbo damage from low oil levels
- Oil leaks and spills at high temperatures
Features
Vehicle Health Monitoring
- Enhanced collision damage based on vehicle class and speed
- Engine damage from sustained high RPM
- Visual debug UI showing real-time vehicle status
Oil System
- Oil temperature increases with high RPM and decreases when idle
- Oil consumption at high temperatures
- Engine damage from overheating
- Oil leaks and spills when critically overheated
- Oil level affects engine performance and cooling
Battery System
- Battery drains when engine is off but electronics are on
- Battery recharges when engine is running
- Low battery prevents engine start
- Dead battery disables vehicle until replaced
Turbo System
- Turbo can blow up when oil level is critically low
- Blown turbo causes significant engine damage
- Turbo removal is saved to the database
Mileage Tracking
- Accurate mileage tracking based on distance traveled
- Persistent mileage saved to database
IMPORTANT NOTE : If you have any suggestions that can be added to this system, please feel free to comment down below and I will try to add it in.
Dependencies
- ox_lib
- oxmysql
Showcase
Purchase
https://jraxion.tebex.io/package/vehicle-damage-system
Configuration
The config.lua
file contains extensive options to customize the behavior of the system:
Config = {
damageMultiplier = 1.0, -- Default damage multiplier
classDamageMultiplier = { ... }, -- Damage multipliers by vehicle class
speedDamageMultiplier = 0.05, -- How speed affects collision damage
debugMode = true, -- Enable/disable debug UI
-- Oil temperature settings
oilTemp = {
baseTemp = 80.0, -- Base oil temperature
maxTemp = 160.0, -- Maximum oil temperature
warningTemp = 130.0, -- Warning threshold
-- Additional oil temperature settings...
},
-- Turbo settings
turbo = {
criticalOilLevel = 10.0, -- Oil level below which turbo is at risk
-- Additional turbo settings...
},
-- Battery settings
battery = {
drainRate = 0.1, -- Battery drain rate
minLevel = 5.0, -- Minimum level to start engine
-- Additional battery settings...
}
}
Full Config
Config = {
damageMultiplier = 1.0, -- Default damage multiplier (1.0 = normal damage)
classDamageMultiplier = {
[0] = 1.0, -- Compacts
[1] = 1.0, -- Sedans
[2] = 0.8, -- SUVs
[3] = 0.8, -- Coupes
[4] = 1.2, -- Muscle
[5] = 1.0, -- Sports Classics
[6] = 1.2, -- Sports
[7] = 1.5, -- Super
[8] = 0.5, -- Motorcycles
[9] = 0.7, -- Off-road
[10] = 0.5, -- Industrial
[11] = 0.5, -- Utility
[12] = 0.5, -- Vans
[13] = 0.0, -- Cycles
[14] = 0.0, -- Boats
[15] = 0.0, -- Helicopters
[16] = 0.0, -- Planes
[17] = 0.7, -- Service
[18] = 0.5, -- Emergency
[19] = 0.5, -- Military
[20] = 0.5, -- Commercial
[21] = 0.0 -- Trains
},
-- disable this if you dont want to use the debug mode
debugMode = true, -- Enable debug information
-- disable this if you dont want to use the debug mode
speedDamageMultiplier = 0.05, -- How much speed affects damage (higher = more damage at high speeds)
collisionDamageMin = 10.0, -- Minimum damage on collision
maxDamage = 1000.0, -- Maximum damage value
revDamageThreshold = 0.9, -- RPM threshold for engine damage (0.0 to 1.0, where 1.0 is max RPM)
revDamageAmount = 0.5, -- Damage per second when revving above threshold
revDamageInterval = 500, -- Interval in ms to apply rev damage
revDamageDelay = 3.0, -- Delay in seconds before applying rev damage
-- Oil temperature settings
oilTemp = {
baseTemp = 80.0, -- Base oil temperature when engine is running (°C)
maxTemp = 160.0, -- Maximum oil temperature before severe damage (°C)
warningTemp = 130.0, -- Temperature at which oil starts to degrade (°C)
riseRate = 0.2, -- How fast oil temperature rises when revving high
coolRate = 0.1, -- How fast oil temperature cools down when not revving
damageStartTemp = 130.0, -- Temperature at which engine starts taking damage
damageFactor = 0.8, -- Multiplier for damage from oil overheating
cooldownMultiplier = 0.5, -- How much slower the engine cools when damaged
oilConsumptionTemp = 120.0, -- Temperature at which oil starts to be consumed
oilConsumptionRate = 0.05, -- Rate at which oil is consumed per second when over threshold
oilConsumptionInterval = 5000, -- Interval in ms to check for oil consumption
saveInterval = 10000 -- Interval in ms to save oil temperature to database
},
-- Turbo settings
turbo = {
criticalOilLevel = 10.0, -- Oil level percentage below which turbo is at risk
checkInterval = 5000, -- Interval in ms to check turbo condition
blowupChance = 0.5, -- Chance of turbo failure when oil is critically low and RPM is high
},
-- Battery settings
battery = {
drainRate = 0.1, -- Rate at which battery drains when engine is running
drainInterval = 10000, -- Interval in ms to drain battery
lightsMultiplier = 1.5, -- How much faster battery drains when lights are on
minLevel = 5.0, -- Minimum battery level required to start engine
saveInterval = 30000, -- Interval in ms to save battery level to database
rechargeRate = 0.02, -- Rate at which battery recharges when engine is running
idleDrainRate = 0.005, -- Rate at which battery drains when engine is off but electronics are on
deadBatteryCheckInterval = 5000, -- Interval in ms to check if battery is dead
deadBatteryThreshold = 1.0, -- Battery level below which it's considered completely dead
deadBatteryDisableTime = 300000 -- Time in ms (5 minutes) vehicle remains disabled with dead battery
}
}
Admin Commands
/fixvehicle [serverid]
- Fully repair and service a player’s vehicle (admin only)
Server Exports
The following exports are available for developers to integrate with other scripts:
Mileage Functions
-- Get vehicle mileage
exports['jraxion_vehicledamage']:GetVehicleMileage(plate)
-- Update vehicle mileage to a specific value
exports['jraxion_vehicledamage']:UpdateVehicleMileage(plate, mileage)
-- Increment vehicle mileage by a specific amount
exports['jraxion_vehicledamage']:IncrementVehicleMileage(plate, amount)
Oil Functions
-- Get vehicle oil level
exports['jraxion_vehicledamage']:GetVehicleOil(plate)
-- Update vehicle oil level to a specific value
exports['jraxion_vehicledamage']:UpdateVehicleOil(plate, oilLevel)
-- Decrease vehicle oil level by a specific amount
exports['jraxion_vehicledamage']:DecreaseVehicleOil(plate, amount)
-- Get vehicle oil temperature
exports['jraxion_vehicledamage']:GetVehicleOilTemp(plate)
-- Update vehicle oil temperature
exports['jraxion_vehicledamage']:UpdateVehicleOilTemp(plate, oilTemp)
Battery Functions
-- Get vehicle battery level
exports['jraxion_vehicledamage']:GetVehicleBattery(plate)
-- Update vehicle battery level
exports['jraxion_vehicledamage']:UpdateVehicleBattery(plate, batteryLevel)
Combined Data Function
-- Get all vehicle data at once
exports['jraxion_vehicledamage']:GetVehicleData(plate)
-- Returns: { mileage, oilLevel, oilTemp, batteryLevel }
Client Events
You can trigger these events from other resources:
-- Fully repair and service a vehicle
TriggerEvent('jraxion_vehicledamage:fullyRepairVehicle')
Integration Examples
Adding oil to a vehicle
RegisterNetEvent('myResource:addOil')
AddEventHandler('myResource:addOil', function(plate, amount)
local currentOil = exports['jraxion_vehicledamage']:GetVehicleOil(plate)
local newOil = math.min(100, currentOil + amount)
exports['jraxion_vehicledamage']:UpdateVehicleOil(plate, newOil)
end)
Creating a battery replacement item
RegisterNetEvent('myResource:replaceBattery')
AddEventHandler('myResource:replaceBattery', function(plate)
exports['jraxion_vehicledamage']:UpdateVehicleBattery(plate, 100)
-- Make vehicle driveable again if it was disabled
end)
Framework Support
The script includes built-in support for both QBCore and ESX frameworks, automatically detecting which one is in use.
License
This resource is protected by copyright. Unauthorized distribution or modification is prohibited.
For more information, visit https://jraxion.tebex.io/
Code is accessible | Partially |
Subscription-based | No |
Lines (approximately) | 1900~ |
Requirements | ox_lib |
Support | Yes |