HEX
HexscriptsVersion 4.0Tuner

Configurations

Here you will get all configurations & open source files that are included within this script.

Config Files

Config = {}

Config.Debug = false -- Set to true to enable debug messages in the console
Config.Locale = 'en' -- automatic, en, de, es, fr, it, nl, pl, pt, tr, ar
Config.Framework = 'automatic' -- automatic, esx, qbcore, standalone

Config.ServerName = 'HEXSCRIPTS'
Config.HideHudWhileTuning = true -- Hide the HUD while in the tuning menu

Config.Blip = {
    sprite = 72,
    scale = 0.8,
    color = 17,
    display = 4,
    shortRange = true,
    name = 'Tuning'
}

Config.Marker = {
    type = 1, -- Marker Type (https://wiki.rage.mp/index.php?title=Markers)
    color = { r = 255, g = 0, b = 0, a = 100 }, -- Marker Colors (RGBA)
    scale = vector3(10.0, 10.0, 0.25),
    upAndDown = false, -- If the Marker should move up and down
    faceCamera = false, -- If the Marker should face the Camera
    rotate = false, -- If the Marker should rotate
    glowUp = true -- If the marker should glow up when the Player is near
}

Config.Spots = {
    {
        coords = vector3(-1155.6183, -2007.3676, 13.1803),
        distance = 5.0,
        blip = Config.Blip,
        marker = Config.Marker,
        job = {
            name = nil, -- Job name allowed to access this tuning shop (e.g. 'mechanic'). Set to nil to allow access for all jobs.
            society = false, -- If enabled, customer payments will be deposited into the job's society account. Requires a valid job to be defined.
		    societyPercentage = 100, -- Percentage of the payment that goes to the society account. The remaining amount is paid directly to the mechanic. Only applies when society = true.
            tuning = { -- here can you configure the self tune option for customers, if you want to disable it when there is a certain amount of mechanics online, you just need too set the jobCount. only works if job name is defined and not nil!
                jobCount = 1, -- Number of mechanics required to disable the self tune option for customers.
                priceMultiplier = 5.0 -- Multiplier for the price when you are tuning yourself, for example: 1.0 = 100%, 2.0 = 200% etc.
            }
        }
    },

    {
        coords = vector3(-337.2329, -136.8969, 39.0096),
        distance = 5.0,
        blip = Config.Blip,
        marker = Config.Marker,
        job = {
            name = nil, -- Job name allowed to access this tuning shop (e.g. 'mechanic'). Set to nil to allow access for all jobs.
            society = false, -- If enabled, customer payments will be deposited into the job's society account. Requires a valid job to be defined.
		    societyPercentage = 100, -- Percentage of the payment that goes to the society account. The remaining amount is paid directly to the mechanic. Only applies when society = true.
            tuning = { -- here can you configure the self tune option for customers, if you want to disable it when there is a certain amount of mechanics online, you just need too set the jobCount. only works if job name is defined and not nil!
                jobCount = 3, -- Number of mechanics required to disable the self tune option for customers.
                priceMultiplier = 1.0 -- Multiplier for the price when you are tuning yourself, for example: 1.0 = 100%, 2.0 = 200% etc.
            }
        }
    },

    {
        coords = vector3(731.8646, -1088.7715, 22.1690),
        distance = 5.0,
        blip = Config.Blip,
        marker = Config.Marker,
        job = {
            name = nil, -- Job name allowed to access this tuning shop (e.g. 'mechanic'). Set to nil to allow access for all jobs.
            society = false, -- If enabled, customer payments will be deposited into the job's society account. Requires a valid job to be defined.
		    societyPercentage = 100, -- Percentage of the payment that goes to the society account. The remaining amount is paid directly to the mechanic. Only applies when society = true.
            tuning = { -- here can you configure the self tune option for customers, if you want to disable it when there is a certain amount of mechanics online, you just need too set the jobCount. only works if job name is defined and not nil!
                jobCount = 3, -- Number of mechanics required to disable the self tune option for customers.
                priceMultiplier = 1.0 -- Multiplier for the price when you are tuning yourself, for example: 1.0 = 100%, 2.0 = 200% etc.
            }
        }
    },

    {
        coords = vector3(1175.0399, 2640.3838, 37.7539),
        distance = 5.0,
        blip = Config.Blip,
        marker = Config.Marker,
        job = {
            name = nil, -- Job name allowed to access this tuning shop (e.g. 'mechanic'). Set to nil to allow access for all jobs.
            society = false, -- If enabled, customer payments will be deposited into the job's society account. Requires a valid job to be defined.
		    societyPercentage = 100, -- Percentage of the payment that goes to the society account. The remaining amount is paid directly to the mechanic. Only applies when society = true.
            tuning = { -- here can you configure the self tune option for customers, if you want to disable it when there is a certain amount of mechanics online, you just need too set the jobCount. only works if job name is defined and not nil!
                jobCount = 3, -- Number of mechanics required to disable the self tune option for customers.
                priceMultiplier = 1.0 -- Multiplier for the price when you are tuning yourself, for example: 1.0 = 100%, 2.0 = 200% etc.
            }
        }
    },

    {
        coords = vector3(110.9409, 6626.5034, 31.7873),
        distance = 5.0,
        blip = Config.Blip,
        marker = Config.Marker,
        job = {
            name = nil, -- Job name allowed to access this tuning shop (e.g. 'mechanic'). Set to nil to allow access for all jobs.
            society = false, -- If enabled, customer payments will be deposited into the job's society account. Requires a valid job to be defined.
		    societyPercentage = 100, -- Percentage of the payment that goes to the society account. The remaining amount is paid directly to the mechanic. Only applies when society = true.
            tuning = { -- here can you configure the self tune option for customers, if you want to disable it when there is a certain amount of mechanics online, you just need too set the jobCount. only works if job name is defined and not nil!
                jobCount = 3, -- Number of mechanics required to disable the self tune option for customers.
                priceMultiplier = 1.0 -- Multiplier for the price when you are tuning yourself, for example: 1.0 = 100%, 2.0 = 200% etc.
            }
        }
    },

    {
        coords = vector3(-211.4136, -1323.6866, 30.8904),
        distance = 5.0,
        blip = Config.Blip,
        marker = Config.Marker,
        job = {
            name = nil, -- Job name allowed to access this tuning shop (e.g. 'mechanic'). Set to nil to allow access for all jobs.
            society = false, -- If enabled, customer payments will be deposited into the job's society account. Requires a valid job to be defined.
		    societyPercentage = 100, -- Percentage of the payment that goes to the society account. The remaining amount is paid directly to the mechanic. Only applies when society = true.
            tuning = { -- here can you configure the self tune option for customers, if you want to disable it when there is a certain amount of mechanics online, you just need too set the jobCount. only works if job name is defined and not nil!
                jobCount = 3, -- Number of mechanics required to disable the self tune option for customers.
                priceMultiplier = 1.0 -- Multiplier for the price when you are tuning yourself, for example: 1.0 = 100%, 2.0 = 200% etc.
            }
        }
    }
}

Config.Commands = {
    ['openTuner'] = {
        commandName = 'openTuner',
        enabled = true,
        permissions = {
            'admin'
        }
    }
}

Config.MultiplierPrice = 1.0 -- Multiplier for the total price, for example: 1.0 = 100%, 0.5 = 50%, 2.0 = 200%

-- base: the base price for the modification, for example: 1000$ for spoiler
-- byLevel: + for each level, for example level 1: 1000$; level 2: 1050$

Config.TuningPrices = {
    ['spoiler'] = {
        base = 1500,
        byLevel = 200
    },
    ['front_bumper'] = {
        base = 1000,
        byLevel = 150
    },
    ['rear_bumper'] = {
        base = 1000,
        byLevel = 150
    },
    ['side_skirt'] = {
        base = 800,
        byLevel = 100
    },
    ['exhaust'] = {
        base = 1200,
        byLevel = 200
    },
    ['roll_cage'] = {
        base = 2000,
        byLevel = 300
    },
    ['grill'] = {
        base = 600,
        byLevel = 100
    },
    ['hood'] = {
        base = 1200,
        byLevel = 200
    },
    ['left_fender'] = {
        base = 700,
        byLevel = 100
    },
    ['right_fender'] = {
        base = 700,
        byLevel = 100
    },
    ['roof'] = {
        base = 1000,
        byLevel = 150
    },
    ['engine'] = {
        base = 5000,
        byLevel = 2500
    },
    ['brake'] = {
        base = 2000,
        byLevel = 1000
    },
    ['transmission'] = {
        base = 3500,
        byLevel = 1500
    },
    ['horn'] = {
        base = 200,
        byLevel = 50
    },
    ['suspension'] = {
        base = 1500,
        byLevel = 750
    },
    ['armor'] = {
    	base = 2500,
    	byLevel = 1250
    },
    ['headlights'] = {
        base = 500,
        byLevel = 0
    },
    ['tyres_front'] = {
        base = 500,
        byLevel = 50
    },
    ['tyres_back'] = {
        base = 500,
        byLevel = 50
    },
    ['plate_holder'] = {
        base = 150,
        byLevel = 30
    },
    ['vanity_plate'] = {
        base = 200,
        byLevel = 40
    },
    ['trim_a'] = {
        base = 300,
        byLevel = 50
    },
    ['ornaments'] = {
        base = 200,
        byLevel = 30
    },
    ['dashboard'] = {
        base = 400,
        byLevel = 50
    },
    ['dial'] = {
        base = 300,
        byLevel = 50
    },
    ['doors'] = {
        base = 600,
        byLevel = 80
    },
    ['seats'] = {
        base = 1500,
        byLevel = 200
    },
    ['steering_wheel'] = {
        base = 500,
        byLevel = 100
    },
    ['shifter_leaver'] = {
        base = 400,
        byLevel = 60
    },
    ['plaque'] = {
        base = 150,
        byLevel = 20
    },
    ['speakers'] = {
        base = 400,
        byLevel = 50
    },
    ['trunk'] = {
        base = 500,
        byLevel = 80
    },
    ['hydraulic'] = {
        base = 1500,
        byLevel = 0
    },
    ['engine_block'] = {
        base = 600,
        byLevel = 100
    },
    ['air_filter'] = {
        base = 500,
        byLevel = 80
    },
    ['strut'] = {
        base = 600,
        byLevel = 100
    },
    ['arch_cover'] = {
        base = 400,
        byLevel = 60
    },
    ['aerial'] = {
        base = 200,
        byLevel = 30
    },
    ['trim_b'] = {
        base = 300,
        byLevel = 50
    },
    ['fuel_tank'] = {
        base = 800,
        byLevel = 100
    },
    ['window'] = {
        base = 300,
        byLevel = 50
    },
    ['livery'] = {
        base = 500,
        byLevel = 100
    },
    ['livery2'] = {
        base = 500,
        byLevel = 100
    },
    ['primary_rgb_color'] = {
        base = 500
    },
    ['secondary_rgb_color'] = {
        base = 400
    },
    ['primary_color_type'] = {
        base = 350,
        byLevel = 0
    },
    ['secondary_color_type'] = {
        base = 350,
        byLevel = 0
    },
    ['pearlescent_tab'] = {
        base = 300,
        byLevel = 0
    },
    ['wheelcolor_tab'] = {
        base = 200,
        byLevel = 0
    },
    ['dashboardcolor_tab'] = {
        base = 150,
        byLevel = 0
    },
    ['interiorcolor_tab'] = {
        base = 150,
        byLevel = 0
    },
    ['chameleon1'] = {
        base = 1500,
        byLevel = 0
    },
    ['chameleon2'] = {
        base = 1500,
        byLevel = 0
    },
    ['neons'] = {
        base = 500,
        byLevel = 0
    },
    ['neons_rgb_color'] = {
        base = 300
    },
    ['smoke_rgb_color'] = {
        base = 200
    },
    ['window_tint'] = {
        base = 250,
        byLevel = 0
    },
    ['plate'] = {
        base = 100,
        byLevel = 50
    },
    ['turbo'] = {
        base = 7500,
        byLevel = 0
    },
    ['xenon'] = {
        base = 800,
        byLevel = 0
    },
    ['xenoncolor'] = {
        base = 300,
        byLevel = 0
    },
    ['suv'] = {
        base = 600,
        byLevel = 0
    },
    ['bennys'] = {
        base = 600,
        byLevel = 0
    },
    ['rua'] = {
        base = 600,
        byLevel = 0
    },
    ['track'] = {
        base = 600,
        byLevel = 0
    },
    ['f1'] = {
        base = 600,
        byLevel = 0
    },
    ['motorcycle'] = {
        base = 600,
        byLevel = 0
    },
    ['tuner'] = {
        base = 600,
        byLevel = 0
    },
    ['sport'] = {
        base = 600,
        byLevel = 0
    },
    ['bespoke'] = {
        base = 600,
        byLevel = 0
    },
    ['muscle'] = {
        base = 600,
        byLevel = 0
    },
    ['lowrider'] = {
        base = 600,
        byLevel = 0
    },
    ['offroad'] = {
        base = 600,
        byLevel = 0
    },
    ['highend'] = {
        base = 600,
        byLevel = 0
    },
    ['bulletproof'] = {
    	base = 5000,
    	byLevel = 0,
    },
    ['costum-wheel'] = {
        base = 0,
        byLevel = 0
    },
    ['extra'] = {
        base = 0,
        byLevel = 0
    },
    ['drift'] = {
        base = 800,
        byLevel = 0
    },
    ['bproof'] = {
        base = 5000,
        byLevel = 0
    }
}

Config.Wheels = {
    ['sport'] = 0,
    ['muscle'] = 1,
    ['lowrider'] = 2,
    ['suv'] = 3,
    ['offroad'] = 4,
    ['tuner'] = 5,
    ['motorcycle'] = 6,
    ['highend'] = 7,
    ['bennys'] = 8,
    ['bespoke'] = 9,
    ['f1'] = 10,
    ['rua'] = 11,
    ['track'] = 12
}

-- set to false if you don't want to be able to tune that.
Config.TyresOptions = {
    ['bproof'] = true,
    ['drift'] = true,
}

-- remove any mods that you don't want to be tunable, for example if you don't want spoilers to be tunable, just remove the line ['spoiler'], and so on
Config.Mods = {
    ['spoiler'] = 0,
    ['front_bumper'] = 1,
    ['rear_bumper'] = 2,
    ['side_skirt'] = 3,
    ['exhaust'] = 4,
    ['roll_cage'] = 5,
    ['grill'] = 6,
    ['hood'] = 7,
    ['left_fender'] = 8,
    ['right_fender'] = 9,
    ['roof'] = 10,
    ['engine'] = 11,
    ['brake'] = 12,
    ['transmission'] = 13,
    ['horn'] = 14,
    ['suspension'] = 15,
    ['armor'] = 16,
    ['headlights'] = 22,
    ['tyres_front'] = 23,
    ['tyres_back'] = 24,
    ['plate_holder'] = 25,
    ['vanity_plate'] = 26,
    ['trim_a'] = 27,
    ['ornaments'] = 28,
    ['dashboard'] = 29,
    ['dial'] = 30,
    ['doors'] = 31,
    ['seats'] = 32,
    ['steering_wheel'] = 33,
    ['shifter_leaver'] = 34,
    ['plaque'] = 35,
    ['speakers'] = 36,
    ['trunk'] = 37,
    ['hydraulic'] = 38,
    ['engine_block'] = 39,
    ['air_filter'] = 40,
    ['strut'] = 41,
    ['arch_cover'] = 42,
    ['aerial'] = 43,
    ['trim_b'] = 44,
    ['fuel_tank'] = 45,
    ['window'] = 46,
    ['livery'] = 48
}

-- remove any extra colors that you don't want to be tunable, for example if you don't want red color to be tunable, just remove the line { id = 27, name = 'color_red' }, and so on
Config.ColoursExtra = {
    { id = 0, name = 'color_black' },
    { id = 147, name = 'color_carbon_black' },
    { id = 1, name = 'color_graphite' },
    { id = 11, name = 'color_black_steel' },
    { id = 3, name = 'color_dark_steel' },
    { id = 4, name = 'color_silver' },
    { id = 5, name = 'color_bluish_silver' },
    { id = 6, name = 'color_rolled_steel' },
    { id = 7, name = 'color_shadow_silver' },
    { id = 8, name = 'color_stone_silver' },
    { id = 9, name = 'color_midnight_silver' },
    { id = 10, name = 'color_cast_iron_silver' },
    { id = 27, name = 'color_red' },
    { id = 28, name = 'color_torino_red' },
    { id = 29, name = 'color_formula_red' },
    { id = 150, name = 'color_lava_red' },
    { id = 30, name = 'color_blaze_red' },
    { id = 31, name = 'color_grace_red' },
    { id = 32, name = 'color_garnet_red' },
    { id = 33, name = 'color_sunset_red' },
    { id = 34, name = 'color_cabernet_red' },
    { id = 143, name = 'color_wine_red' },
    { id = 35, name = 'color_candy_red' },
    { id = 135, name = 'color_hot_pink' },
    { id = 137, name = 'color_pfsiter_pink' },
    { id = 136, name = 'color_salmon_pink' },
    { id = 36, name = 'color_sunrise_orange' },
    { id = 38, name = 'color_orange' },
    { id = 138, name = 'color_bright_orange' },
    { id = 99, name = 'color_gold' },
    { id = 90, name = 'color_bronze' },
    { id = 88, name = 'color_yellow' },
    { id = 89, name = 'color_race_yellow' },
    { id = 91, name = 'color_dew_yellow' },
    { id = 49, name = 'color_dark_green' },
    { id = 50, name = 'color_racing_green' },
    { id = 51, name = 'color_sea_green' },
    { id = 52, name = 'color_olive_green' },
    { id = 53, name = 'color_bright_green' },
    { id = 54, name = 'color_gasoline_green' },
    { id = 92, name = 'color_lime_green' },
    { id = 141, name = 'color_midnight_blue' },
    { id = 61, name = 'color_galaxy_blue' },
    { id = 62, name = 'color_dark_blue' },
    { id = 63, name = 'color_saxon_blue' },
    { id = 64, name = 'color_blue' },
    { id = 65, name = 'color_mariner_blue' },
    { id = 66, name = 'color_harbor_blue' },
    { id = 67, name = 'color_diamond_blue' },
    { id = 68, name = 'color_surf_blue' },
    { id = 69, name = 'color_nautical_blue' },
    { id = 73, name = 'color_racing_blue' },
    { id = 70, name = 'color_ultra_blue' },
    { id = 74, name = 'color_light_blue' },
    { id = 96, name = 'color_chocolate_brown' },
    { id = 101, name = 'color_bison_brown' },
    { id = 95, name = 'color_creeen_brown' },
    { id = 94, name = 'color_feltzer_brown' },
    { id = 97, name = 'color_maple_brown' },
    { id = 103, name = 'color_beechwood_brown' },
    { id = 104, name = 'color_sienna_brown' },
    { id = 98, name = 'color_saddle_brown' },
    { id = 100, name = 'color_moss_brown' },
    { id = 102, name = 'color_woodbeech_brown' },
    { id = 99, name = 'color_straw_brown' },
    { id = 105, name = 'color_sandy_brown' },
    { id = 106, name = 'color_bleached_brown' },
    { id = 71, name = 'color_schafter_purple' },
    { id = 72, name = 'color_spinnaker_purple' },
    { id = 142, name = 'color_midnight_purple' },
    { id = 145, name = 'color_bright_purple' },
    { id = 107, name = 'color_cream' },
    { id = 111, name = 'color_ice_white' },
    { id = 112, name = 'color_frost_white' },
    { id = 12, name = 'color_black' },
    { id = 13, name = 'color_gray' },
    { id = 14, name = 'color_light_gray' },
    { id = 131, name = 'color_ice_white' },
    { id = 83, name = 'color_blue' },
    { id = 82, name = 'color_dark_blue' },
    { id = 84, name = 'color_midnight_blue' },
    { id = 149, name = 'color_midnight_purple' },
    { id = 148, name = 'color_schafter_purple' },
    { id = 39, name = 'color_red' },
    { id = 40, name = 'color_dark_red' },
    { id = 41, name = 'color_orange' },
    { id = 42, name = 'color_yellow' },
    { id = 55, name = 'color_lime_green' },
    { id = 128, name = 'color_green' },
    { id = 151, name = 'color_forest_green' },
    { id = 155, name = 'color_foliage_green' },
    { id = 152, name = 'color_olive_darb' },
    { id = 153, name = 'color_dark_earth' },
    { id = 154, name = 'color_desert_tan' },
    { id = 117, name = 'color_brushed_steel' },
    { id = 118, name = 'color_brushed_black_steel' },
    { id = 119, name = 'color_brushed_aluminium' },
    { id = 158, name = 'color_pure_gold' },
    { id = 159, name = 'color_brushed_gold' },
    { id = 120, name = 'color_chrome' }
}

-- remove any chameleon colors that you don't want to be tunable, for example if you don't want 'chameleon_anodized_red_pearl' to be tunable, just remove the line { id = 161, name = 'chameleon_anodized_red_pearl' }, and so on
Config.ChameleonColors = {
    { id = 161, name = 'chameleon_anodized_red_pearl' },
    { id = 162, name = 'chameleon_anodized_wine_pearl' },
    { id = 163, name = 'chameleon_anodized_purple_pearl' },
    { id = 164, name = 'chameleon_anodized_blue_pearl' },
    { id = 165, name = 'chameleon_anodized_green_pearl' },
    { id = 166, name = 'chameleon_anodized_lime_pearl' },
    { id = 167, name = 'chameleon_anodized_copper_pearl' },
    { id = 168, name = 'chameleon_anodized_bronze_pearl' },
    { id = 169, name = 'chameleon_anodized_champagne_pearl' },
    { id = 170, name = 'chameleon_anodized_gold_pearl' },
    { id = 171, name = 'chameleon_green_blue_flip' },
    { id = 172, name = 'chameleon_green_red_flip' },
    { id = 173, name = 'chameleon_green_brown_flip' },
    { id = 174, name = 'chameleon_green_turquoise_flip' },
    { id = 175, name = 'chameleon_green_purple_flip' },
    { id = 176, name = 'chameleon_teal_purple_flip' },
    { id = 177, name = 'chameleon_turquoise_red_flip' },
    { id = 178, name = 'chameleon_turquoise_purple_flip' },
    { id = 179, name = 'chameleon_cyan_purple_flip' },
    { id = 180, name = 'chameleon_blue_pink_flip' },
    { id = 181, name = 'chameleon_blue_green_flip' },
    { id = 182, name = 'chameleon_purple_red_flip' },
    { id = 183, name = 'chameleon_purple_green_flip' },
    { id = 184, name = 'chameleon_magenta_green_flip' },
    { id = 185, name = 'chameleon_magenta_yellow_flip' },
    { id = 186, name = 'chameleon_burgundy_green_flip' },
    { id = 187, name = 'chameleon_magenta_cyan_flip' },
    { id = 188, name = 'chameleon_copper_purple_flip' },
    { id = 189, name = 'chameleon_magenta_orange_flip' },
    { id = 190, name = 'chameleon_red_orange_flip' },
    { id = 191, name = 'chameleon_orange_purple_flip' },
    { id = 192, name = 'chameleon_orange_blue_flip' },
    { id = 193, name = 'chameleon_white_purple_flip' },
    { id = 194, name = 'chameleon_red_rainbow_flip' },
    { id = 195, name = 'chameleon_blue_rainbow_flip' },
    { id = 196, name = 'chameleon_dark_green_pearl' },
    { id = 197, name = 'chameleon_dark_teal_pearl' },
    { id = 198, name = 'chameleon_dark_blue_pearl' },
    { id = 199, name = 'chameleon_dark_purple_pearl' },
    { id = 200, name = 'chameleon_oil_slick_pearl' },
    { id = 201, name = 'chameleon_light_green_pearl' },
    { id = 202, name = 'chameleon_light_blue_pearl' },
    { id = 203, name = 'chameleon_light_purple_pearl' },
    { id = 204, name = 'chameleon_light_pink_pearl' },
    { id = 205, name = 'chameleon_off_white_pearl' },
    { id = 206, name = 'chameleon_cute_pink_pearl' },
    { id = 207, name = 'chameleon_baby_yellow_pearl' },
    { id = 208, name = 'chameleon_baby_green_pearl' },
    { id = 209, name = 'chameleon_baby_blue_pearl' },
    { id = 210, name = 'chameleon_cream_pearl' },
    { id = 211, name = 'chameleon_white_prismatic_pearl' },
    { id = 212, name = 'chameleon_graphite_prismatic_pearl' },
    { id = 213, name = 'chameleon_blue_prismatic_pearl' },
    { id = 214, name = 'chameleon_purple_prismatic_pearl' },
    { id = 215, name = 'chameleon_hot_pink_prismatic_pearl' },
    { id = 216, name = 'chameleon_red_prismatic_pearl' },
    { id = 217, name = 'chameleon_green_prismatic_pearl' },
    { id = 218, name = 'chameleon_black_prismatic_pearl' },
    { id = 219, name = 'chameleon_oil_spill_prismatic_pearl' },
    { id = 220, name = 'chameleon_rainbow_prismatic_pearl' },
    { id = 221, name = 'chameleon_black_holographic_pearl' },
    { id = 222, name = 'chameleon_white_holographic_pearl' },
    { id = 223, name = 'chameleon_monochrome' },
    { id = 236, name = 'chameleon_chromatic' },
    { id = 240, name = 'chameleon_anod_lightning' },
    { id = 226, name = 'chameleon_sprunk_extreme' },
    { id = 239, name = 'chameleon_hsw_badge' },
    { id = 224, name = 'chameleon_night_and_day' },
    { id = 233, name = 'chameleon_sunset' },
    { id = 227, name = 'chameleon_vice_city' },
    { id = 228, name = 'chameleon_synthwave_night' },
    { id = 225, name = 'chameleon_the_verlierer' },
    { id = 238, name = 'chameleon_temperature' },
    { id = 229, name = 'chameleon_four_seasons' },
    { id = 234, name = 'chameleon_the_seven' },
    { id = 230, name = 'chameleon_m9_throwback' },
    { id = 231, name = 'chameleon_bubblegum' },
    { id = 232, name = 'chameleon_full_rainbow' },
    { id = 235, name = 'chameleon_kamen_rider' },
    { id = 237, name = 'chameleon_its_christmas' },
    { id = 241, name = 'chameleon_emeralds' },
    { id = 242, name = 'chameleon_fubuki_castle' }
}

-- remove any plate names that you don't want to be tunable, for example if you don't want 'san_andreas_cursive' to be tunable, just remove the line { id = 0, name = 'san_andreas_cursive' }, and so on
Config.PlateNames = {
    { id = 0, name = 'san_andreas_cursive', requiredGameBuild = false },
    { id = 1, name = 'san_andreas_black', requiredGameBuild = false },
    { id = 2, name = 'san_andreas_blue', requiredGameBuild = false },
    { id = 3, name = 'san_andreas_plain', requiredGameBuild = false },
    { id = 4, name = 'sr_except', requiredGameBuild = false },
    { id = 5, name = 'north_yankton', requiredGameBuild = false },
    { id = 6, name = 'e_cola', requiredGameBuild = 3095 },
    { id = 7, name = 'las_venturas', requiredGameBuild = 3095 },
    { id = 8, name = 'liberty_city', requiredGameBuild = 3095 },
    { id = 9, name = 'ls_car_meet', requiredGameBuild = 3095 },
    { id = 10, name = 'ls_panic', requiredGameBuild = 3095 },
    { id = 11, name = 'ls_pounders', requiredGameBuild = 3095 },
    { id = 12, name = 'sprunk', requiredGameBuild = 3095 }
}

Config.HornNames = {
    'horn_stock',
	'horn_truck',
	'horn_police',
	'horn_clown',
	'horn_melody_1',
	'horn_melody_2',
	'horn_melody_3',
	'horn_melody_4',
	'horn_melody_5',
	'horn_sad_trombone',
	'horn_classic_1',
	'horn_classic_2',
	'horn_classic_3',
	'horn_classic_4',
	'horn_classic_5',
	'horn_classic_6',
	'horn_classic_7',
	'horn_scale_do',
	'horn_scale_re',
	'horn_scale_mi',
	'horn_scale_fa',
	'horn_scale_sol',
	'horn_scale_la',
	'horn_scale_ti',
	'horn_scale_do_high',
	'horn_jazz_1',
	'horn_jazz_2',
	'horn_jazz_3',
	'horn_jazz_long',
	'horn_musical_1',
	'horn_musical_2',
	'horn_musical_3',
	'horn_musical_4',
	'horn_music_long_1',
	'horn_music_long_2',
	'horn_music_long_3',
	'horn_musical_5',
	'horn_musical_5',
	'horn_musical_6',
	'horn_halloween_1_long',
	'horn_halloween_1_short',
	'horn_halloween_2_long',
	'horn_halloween_2_short',
	'horn_san_andreas_long',
	'horn_san_andreas_short',
	'horn_liberty_city_long',
	'horn_liberty_city_short',
	'horn_winter_1',
	'horn_winter_2',
	'horn_winter_3',
	'horn_winter_4',
	'horn_winter_5',
	'horn_winter_6',
	'horn_trumpet_1',
	'horn_trumpet_2',
	'horn_trumpet_3',
	'horn_trumpet_4',
	'horn_trumpet_5',
	'horn_trumpet_6'
}

Config.WindowTints = {
    { id = 1, name = 'none' },
    { id = 2, name = 'limo' },
    { id = 3, name = 'light_smoke' },
    { id = 4, name = 'dark_smoke' },
    { id = 5, name = 'pure_black' },
    { id = 6, name = 'green' }
}

Client Open Source Files

if Config.Framework == 'automatic' then
    if GetResourceState('es_extended') == 'started' then
        Config.Framework = 'esx'
    elseif GetResourceState('qb-core') == 'started' then
        Config.Framework = 'qbcore'
    else
        Config.Framework = 'standalone'
    end
end

function DrawHelpNotify(message)
    if GetResourceState('hex_finalhud_v2') == 'started' then
        exports['hex_finalhud_v2']:HelpNotify(message)
    elseif GetResourceState('hex_final_hud') == 'started' then
        exports['hex_final_hud']:HelpNotify(message)
    elseif GetResourceState('hex_genesis_hud') == 'started' then
        exports['hex_genesis_hud']:HelpNotify(message)
    elseif GetResourceState('hex_2_hud') == 'started' then
        exports['hex_2_hud']:HelpNotify(message)
    elseif GetResourceState('hex_future_hud') == 'started' then
        exports['hex_future_hud']:HelpNotify(message)
    elseif GetResourceState('hex_1_hud') == 'started' then
        exports['hex_1_hud']:HelpNotify(message)
    elseif GetResourceState('hex_hud_prem') == 'started' then
        exports['hex_hud_prem']:HelpNotify(message)
    elseif GetResourceState('hex_4_hud') == 'started' then
        exports['hex_4_hud']:HelpNotify(message)
    else
        SetTextComponentFormat('STRING')
        AddTextComponentString(message)
        DisplayHelpTextFromStringLabel(0, 0, true, -1)
    end
end

function Notify(title, message, notifyType, timeout)
    if timeout == nil then timeout = 5000 end
    if notifyType == nil then notifyType = 'info' end

    if GetResourceState('hex_finalhud_v2') == 'started' then
        exports['hex_finalhud_v2']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_final_hud') == 'started' then
        exports['hex_final_hud']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_genesis_hud') == 'started' then
        exports['hex_genesis_hud']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_2_hud') == 'started' then
        exports['hex_2_hud']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_future_hud') == 'started' then
        exports['hex_future_hud']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_1_hud') == 'started' then
        exports['hex_1_hud']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_hud_prem') == 'started' then
        exports['hex_hud_prem']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_hud') == 'started' then
        exports['hex_hud']:Notify(title, message, notifyType, timeout)
    elseif GetResourceState('hex_4_hud') == 'started' then
        exports['hex_4_hud']:Notify(title, message, notifyType, timeout)
    else
        print(('Notify: %s, %s, %s, %s'):format(title, message, notifyType, timeout))
    end
end

function HideHud()
    if GetResourceState('hex_final_hud') == 'started' then
        exports['hex_final_hud']:HideHud(true)
    elseif GetResourceState('hex_finalhud_v2') == 'started' then
        exports['hex_finalhud_v2']:HideHud(true)
    elseif GetResourceState('hex_genesis_hud') == 'started' then
        exports['hex_genesis_hud']:HideHud(true)
    elseif GetResourceState('hex_2_hud') == 'started' then
        exports['hex_2_hud']:HideHud(true)
    elseif GetResourceState('hex_future_hud') == 'started' then
        exports['hex_future_hud']:HideHud(true)
    elseif GetResourceState('hex_hud_prem') == 'started' then
        exports['hex_hud_prem']:HideHud(true)
    elseif GetResourceState('hex_hud') == 'started' then
        exports['hex_hud']:HideHud(true)
    elseif GetResourceState('hex_4_hud') == 'started' then
        exports['hex_4_hud']:HideHud(true)
    elseif GetResourceState('hex_1_hud') == 'started' then
        exports['hex_1_hud']:HideHud(true)
    else
        -- own implementation
    end
end

function ShowHud()
    if GetResourceState('hex_final_hud') == 'started' then
        exports['hex_final_hud']:HideHud(false)
    elseif GetResourceState('hex_finalhud_v2') == 'started' then
        exports['hex_finalhud_v2']:HideHud(false)
    elseif GetResourceState('hex_genesis_hud') == 'started' then
        exports['hex_genesis_hud']:HideHud(false)
    elseif GetResourceState('hex_2_hud') == 'started' then
        exports['hex_2_hud']:HideHud(false)
    elseif GetResourceState('hex_future_hud') == 'started' then
        exports['hex_future_hud']:HideHud(false)
    elseif GetResourceState('hex_hud_prem') == 'started' then
        exports['hex_hud_prem']:HideHud(false)
    elseif GetResourceState('hex_hud') == 'started' then
        exports['hex_hud']:HideHud(false)
    elseif GetResourceState('hex_4_hud') == 'started' then
        exports['hex_4_hud']:HideHud(false)
    elseif GetResourceState('hex_1_hud') == 'started' then
        exports['hex_1_hud']:HideHud(false)
    else
        -- own implementation
    end
end

Server Open Source Files

if Config.Framework == 'automatic' then
    if GetResourceState('es_extended') == 'started' then
        Config.Framework = 'esx'
    elseif GetResourceState('qb-core') == 'started' then
        Config.Framework = 'qbcore'
    else
        Config.Framework = 'standalone'
    end
end