toolsVehicle Customizer

Vehicle Customizer

Design and preview vehicle modifications, liveries, and performance upgrades with real-time visualization and export capabilities.

Overview

The Vehicle Customizer provides a comprehensive interface for designing custom vehicle modifications, creating liveries, and configuring performance upgrades. Generate modification data compatible with QBCore vehicle systems and export configurations for easy implementation.

Vehicle Customizer

Design and preview vehicle modifications and liveries

Vehicle Selection

Appearance

Color: 0

Preview & Export

3D Preview

Coming Soon

Current Configuration

Vehicle:Truffade Adder
Primary Color:
Performance:Engine L1

Vehicle Modification Features

Visual Customization

  • Paint System: Primary, secondary, pearlescent, and metallic colors
  • Livery Design: Custom liveries and decal applications
  • Wheel Customization: Types, colors, and rim modifications
  • Window Tinting: Various tint levels and colors
  • Lighting Effects: Neon underglow with color selection

Performance Tuning

  • Engine Upgrades: Multiple performance levels for increased power
  • Transmission: Street, sport, and race transmission options
  • Suspension: Lowered, sport, and competition suspension setups
  • Braking System: Enhanced brake performance and stopping power
  • Turbo System: Forced induction for maximum performance

Body Modifications

  • Aerodynamic Parts: Spoilers, splitters, and diffusers
  • Bumper Kits: Front and rear bumper modifications
  • Side Skirts: Enhanced side body panels
  • Hood Options: Vented, carbon fiber, and custom hood designs
  • Fender Flares: Widebody kits and fender modifications

Configuration Export

JSON Format

{
  "vehicle": "adder",
  "modifications": {
    "primaryColor": { "r": 255, "g": 0, "b": 0 },
    "secondaryColor": { "r": 0, "g": 0, "b": 0 },
    "engine": 4,
    "transmission": 3,
    "turbo": true,
    "spoiler": 2,
    "neonEnabled": true,
    "neonColor": { "r": 255, "g": 0, "b": 255 }
  }
}

Lua Integration

-- Apply vehicle modifications
function ApplyVehicleMods(vehicle, mods)
    -- Colors
    SetVehicleCustomPrimaryColour(vehicle, mods.primaryColor.r, mods.primaryColor.g, mods.primaryColor.b)
    SetVehicleCustomSecondaryColour(vehicle, mods.secondaryColor.r, mods.secondaryColor.g, mods.secondaryColor.b)
    
    -- Performance
    SetVehicleMod(vehicle, 11, mods.engine, false) -- Engine
    SetVehicleMod(vehicle, 13, mods.transmission, false) -- Transmission
    SetVehicleMod(vehicle, 15, mods.suspension, false) -- Suspension
    SetVehicleMod(vehicle, 12, mods.brakes, false) -- Brakes
    ToggleVehicleMod(vehicle, 18, mods.turbo) -- Turbo
    
    -- Body mods
    SetVehicleMod(vehicle, 0, mods.spoiler, false) -- Spoiler
    SetVehicleMod(vehicle, 1, mods.frontBumper, false) -- Front Bumper
    SetVehicleMod(vehicle, 2, mods.rearBumper, false) -- Rear Bumper
    
    -- Neon
    if mods.neonEnabled then
        for i = 0, 3 do
            SetVehicleNeonLightEnabled(vehicle, i, true)
        end
        SetVehicleNeonLightsColour(vehicle, mods.neonColor.r, mods.neonColor.g, mods.neonColor.b)
    end
end

QBCore Integration

Vehicle Shop Integration

-- qb-vehicleshop integration
Config.VehicleCustomizations = {
    ['adder'] = {
        price = 2500000,
        modifications = {
            engine = 4,
            transmission = 3,
            suspension = 4,
            brakes = 3,
            turbo = true
        }
    }
}

Garage System

-- Save vehicle modifications to database
local function SaveVehicleMods(plate, mods)
    MySQL.update('UPDATE player_vehicles SET mods = ? WHERE plate = ?', {
        json.encode(mods),
        plate
    })
end
 
-- Load vehicle modifications from database
local function LoadVehicleMods(plate)
    local result = MySQL.scalar.await('SELECT mods FROM player_vehicles WHERE plate = ?', { plate })
    if result then
        return json.decode(result)
    end
    return {}
end

Custom Vehicle Script

-- Custom vehicle spawning with mods
RegisterNetEvent('customs:spawnVehicle', function(model, mods)
    local ped = PlayerPedId()
    local coords = GetEntityCoords(ped)
    
    RequestModel(model)
    while not HasModelLoaded(model) do
        Wait(0)
    end
    
    local vehicle = CreateVehicle(model, coords.x, coords.y, coords.z, GetEntityHeading(ped), true, false)
    
    -- Apply modifications
    ApplyVehicleMods(vehicle, mods)
    
    -- Set player as driver
    TaskWarpPedIntoVehicle(ped, vehicle, -1)
    
    SetModelAsNoLongerNeeded(model)
end)

Advanced Features

Performance Calculations

-- Calculate vehicle performance rating
local function CalculatePerformanceRating(mods)
    local baseRating = 50
    local engineBonus = mods.engine * 10
    local transmissionBonus = mods.transmission * 5
    local suspensionBonus = mods.suspension * 3
    local brakesBonus = mods.brakes * 3
    local turboBonus = mods.turbo and 15 or 0
    
    return baseRating + engineBonus + transmissionBonus + suspensionBonus + brakesBonus + turboBonus
end

Cost Calculation

-- Calculate modification costs
local function CalculateModificationCost(mods)
    local costs = {
        engine = { 5000, 10000, 15000, 20000, 25000 },
        transmission = { 3000, 6000, 9000, 12000 },
        suspension = { 2000, 4000, 6000, 8000, 10000 },
        brakes = { 2500, 5000, 7500, 10000 },
        turbo = 15000
    }
    
    local totalCost = 0
    for mod, level in pairs(mods) do
        if costs[mod] then
            if type(level) == 'boolean' then
                totalCost = totalCost + (level and costs[mod] or 0)
            else
                totalCost = totalCost + (costs[mod][level + 1] or 0)
            end
        end
    end
    
    return totalCost
end

Preset Configurations

-- Performance presets
Config.PerformancePresets = {
    ['street'] = {
        engine = 1,
        transmission = 1,
        suspension = 1,
        brakes = 1,
        turbo = false
    },
    ['sport'] = {
        engine = 2,
        transmission = 2,
        suspension = 2,
        brakes = 2,
        turbo = true
    },
    ['race'] = {
        engine = 4,
        transmission = 3,
        suspension = 4,
        brakes = 3,
        turbo = true
    }
}

Livery System

Custom Livery Creation

-- Custom livery system
RegisterNetEvent('customs:applyCustomLivery', function(vehicle, liveryData)
    -- Apply base livery
    SetVehicleLivery(vehicle, liveryData.base)
    
    -- Apply custom decals
    for _, decal in pairs(liveryData.decals) do
        -- Custom decal application logic
        ApplyCustomDecal(vehicle, decal)
    end
end)

Livery Templates

  • Racing Liveries: Professional racing designs
  • Police Liveries: Law enforcement themes
  • Emergency Services: Fire, EMS, and rescue designs
  • Corporate Branding: Business and company themes
  • Street Art: Urban and graffiti styles

Troubleshooting

Common Issues

  1. Modifications Not Applying: Ensure vehicle model supports the modification type
  2. Color Issues: Verify RGB values are within 0-255 range
  3. Performance Problems: Check for conflicting modifications
  4. Export Errors: Validate JSON format before exporting

Compatibility Notes

  • Some modifications may not be available for all vehicle models
  • Performance modifications affect vehicle handling characteristics
  • Custom colors may appear differently in various lighting conditions
  • Liveries depend on the vehicle’s texture mapping

Pro Tip: Save multiple configuration templates for different vehicle types (sports cars, SUVs, motorcycles) to streamline the customization process. Use the export feature to share configurations with other server administrators.

Need help with vehicle customization? Check our vehicle guide or visit our tuning community.