[ESX/QB] VMS_TUNING 2.0 | Most Advanced Tuning System & Installation of Parts!

:notebook_with_decorative_cover: UPDATE 2.0.5


[+] Added Config.UseInstallationSoundEffects: this adds part assembly sound effects, for example when lifting a vehicle on car jacks, there will be a sound effect but an external script such as xsound is required for this, you can also customize the effects for which parts you want to use this in Config.PartsInstallationSoundEffects and possibly customize the export/event in CL.PlayInstallationSoundEffect
[+] Created a new config.custommods.lua file into which Config.EngineSwaps from config.tuningmenu.lua, Config.VehiclesSwaps, Config.VehiclesSwapsByClass from config.vehicles.lua were moved. Also added the ability to completely disable the use of Engine Swap - Config.UseEngineSwaps and all options for the new Wheels Stance option.
[+] Added some missing translations such as: :fr: French .json & some in .lua, :czech_republic: Czech some in .lua, :es: Spanish .json & some in .lua, :tr: Turkish .json & some in .lua
[+] Added Config.AllowRunWithJacks & Config.AllowJumpWithJacks - this will allow you to manage the player’s ability to run and jump while carrying jacks
[/] Blocked all visual HSW parts coming from GTA+ (Updated Config.BlacklistArmedMods list).
[/] Blocked all mechanical parts coming from GTA+ (Updated Config.TuningMaxValues vehicles list)
[/] Fixed loading of previous color in RGB menu when it was 0,0,0
[/] Fixed possibly all errors regarding loading custom tuning options such as Engine Swap, Locator
[-] Removed Config.DisableAbilityToRunWithParts option, instead added allowPlayerRun & allowPlayerJump option to Config.AdvancedInstallationsProps, Config.InstallationPartsPropsList - this will allow you to manage player’s ability to run and jump while carrying parts

is it possible to get the qb-managment version I have vms tuning on keymaster but I wants to use it with the managment…

:notebook_with_decorative_cover: UPDATE 2.0.6


[+] Introduced compatibility with the tax system and job resumes from vms_cityhall
[+] Added compatibility with ls_bolt_minigame (Config.UseBoltMinigame - config.installationparts.lua)
[+] Added commas to prices for better visibility
[+] Added CL.AllowOpenTuningMenu function - this allows you to check the dependencies for the ability to run the tuning menu
[+] Added new modifications: Suspension Height, Wheel Size, Wheel Width, Drift Tyres
[+] Added missing translations
[+] Support for mx-surround in installation sound effects
[/] The wheels stance loop has been optimized
[/] Fixed a bug that caused some tuning parts to disappear after leaving the sector the vehicle was in and no one else was rendering it (Config.VehiclePropertiesStateBag)
[/] Corrected error that displayed on F8 after using /relog
[/] Fixed bug causing wheels stance loops to run even when not modified
[/] Fixed a bug that, through a certain method, allowed you to buy window tint/turbo/wheels stance/engine swap/wash/half repair for no payment
[-] Disabled RGB Xenon Color - Reason for removal is lack of synchronization between players in FiveM

:notebook_with_decorative_cover: UPDATE 2.0.7


[/] Fixed bug causing management menu not to display when not using vms_cityhall
[/] Fixed a bug that caused missing mechanical parts for motorcycles
[/] Fixed bug displaying $0 price for Engine Swap and Locator
[/] Fixed a bug that caused a problem when using a different balance than the built-in one
[/] Fixed some bugs and lack of synchoronization of Wheel Size, Wheel Width and Custom Suspension Height between players (Also requires Set Vehicle Properties update)

I would like to remind you that the option of wheel size and width cannot be applied to the default wheels of the vehicle

To make the size and width of the wheels flawless when changing the wheels the size returns to the original, when installing new wheels you must then choose a custom size if you want to use one.

:notebook_with_decorative_cover: UPDATE 2.0.8


[+] Added the external_account option to Config.TuningPoints, useful if you are using the built-in balance and want multiple separate tuning points to share a single company account.
[+] Added Config.Debug to make it easier to identify misconfigurations, such as those related to grades_access.
[/] Changed the behavior of checking for the use of custom tuning parts like Stance, Wheel Size/Width, etc. Previously, in config.tuningmenu.lua, it was Config.UseWheelsSize and {...} or nil. This has been changed to the option dependence = Config.UseWheelsSize inside the tuning option table due to bugs where an item with a specific ID could not be found, preventing access to features like turbo, etc.
[/] Fixed a bug with a broken engine when opening the tuning menu for qb-core (Update Properties).
[/] Fixed a bug with “sagging suspension” after closing the tuning menu for qb-core (Update Properties).
[/] Fixed a bug with extras for qbox-core (Update Properties).

:notebook_with_decorative_cover: UPDATE 2.0.9


[+] Added Config.UseTargetSystemForTuningPoints: This allows you to use the target system for tuning menu points
[/] Fixed bug related to the native SetVehicleSuspensionHeight error when interacting with boats
[/] Fixed Drift Tyres for qbx-core
[/] Optimized event:entityCreated on server-side

Information for qbx_garages users - this garage system is not compatible with locators, engine swaps and wheels stances

Best tuning system ! Amazing script thanks

2 Likes

Nice release!

3 Likes

:heart:nice release

3 Likes

Awesome script :heart:

1 Like

beautiful script but why you don’t add job for the mechanic to impound cars like real job

1 Like

The mechanics on my server really appreciate this script

1 Like

Hey, thank you very much, impound we have in VMS Garages V2 and soon in the garages script we are planning to do realistic towing with a tow truck

:notebook_with_decorative_cover: UPDATE 2.1.0


[+] Added protection against having a passenger when tuning a vehicle (You can’t have a passenger in the vehicle when you are tuning, as there may be a problem)
[/] Fixed error Execution of native 00000000e8522d58 in script host failed: Tried to access invalid entity
[/] Fixed qs-vehiclekeys export

:notebook_with_decorative_cover: UPDATE 2.1.1


[+] Added support for multiple parts points within the same workshop
Previously, if your workshop had multiple tuning stations (e.g. 5), all mechanics had to fetch parts from a single shared spot. Now you can assign individual parts locations to each tuning area, allowing more flexibility and realism.

[+] Added Vehicle Paint Booth
By default, 'BennyS-Paintshop' is configured as a Paint Booth. You can define your own booths and customize how the system behaves there. Full setup details are included in the configuration section.

[+] Added Config.ApplyDiscountForInsuredVehicles and Config.InsuredVehicleDiscount (for VMS City Hall users)
If your vehicles are insured using the City Hall system, you can now grant players tuning discounts for insured vehicles - define the discount percentage in config.

[+] Implemented NULL replacement
If a tuning parts label appears as NULL, it will now be automatically renamed (e.g. Spoiler 1, Spoiler 2, etc.). Make sure to define all null_replacement.MODNAME entries in your config.translation.lua.

[/] Fixed a bug where markerBossMenu data was incorrectly required when using a targeting system, even though it wasn’t needed

[/] Fixed a bug where announcements added via the sendAnnouncement export were not being saved properly

[/] Fixed several minor visual issues

:notebook_with_decorative_cover: UPDATE 2.1.2


[+] Added server-side export applyCustomMods(entity), allowing you to force the loading of custom mods such as Engine Swap (use it when creating the vehicle if your garage wasn’t applying engine swap sounds)
[+] Synchronized paint booth particle effects
[+] Added protection against selecting the same mission location

1 Like

Hello, first of all thank you for this really great script.

I have a question, I’m looking for a mechanics script that is the most compatible with and vms boss menu and city hall because unfortunately you don’t make one yet.

1 Like

Hi, thank you very much!

You just found it - VMS Tuning is a script for a mechanic’s job that allows tuning vehicles - it is the most compatible resource with the mentioned resources

:notebook_with_decorative_cover: UPDATE 2.1.3


[+] Added new add-on engine sounds for Engine Swaps:
Übermacht (N55 V6), Übermacht (S55 V6), Benefactor (M113 V8), Benefactor (M155 V8), Benefactor (M177 V8), Benefactor (M178 V8), Pegassi (L539 V12)

[/] Fixed an issue that prevented creating a public workshop that does not require a job when using the target system

[/] Improved synchronization of primary & secondary RGB colors when starting the installation of tuning parts

[/] Fixed multiple parts points for target

[/] Updated the Vehicle Properties for qb-core and qbx_core
If you have experienced any issues with false engine-damage indicators or compatibility problems with KQ Wheel Damage, updating the vehicle properties is recommended.

:notebook_with_decorative_cover: UPDATE 2.1.4


  • Added modifications for Mod Type 49
    This modification requires adding entry to (modKit49 - Vehicle Properties)

:notebook_with_decorative_cover: UPDATE 2.1.5


:green_circle: Improvements

  • Added support for custom per-model offsets in Config.AdvancedInstallationsProps and Config.InstallationPartsPropsList.
    This allows precise adjustment of installation part positions for individual vehicle models.

  • Improved radio behavior after closing the tuning menu.
    The radio will now automatically turn off if it was unintentionally triggered after vehicle properties reload.

:yellow_circle: Adjustments & Stability

  • Fixed incorrect installation status display (e.g. Turbo) in qbx_core, where installed parts were not properly marked as “Selected”.

  • Improved vehicle repair handling and execution of Config.OnInstallationPart when using manual installation mode without workshop entries in Config.InstallationPartsPoints.

  • Refined modLivery handling in vehicle properties to improve compatibility across different frameworks.
    If you previously experienced livery-related inconsistencies, please update your framework SetVehicleProperties and GetVehicleProperties functions accordingly:

SetVehicleProperties

if props.modLivery ~= nil then
    if GetNumVehicleMods(vehicle, 48) > 0 then
        SetVehicleMod(vehicle, 48, props.modLivery, false)
        SetVehicleLivery(vehicle, 0)
    end
    if GetVehicleLiveryCount(vehicle) > 0 then
        SetVehicleMod(vehicle, 48, -1, false)
        SetVehicleLivery(vehicle, props.modLivery)
    end
end

GetVehicleProperties

modLivery = GetVehicleLiveryCount(vehicle) > 0 and GetVehicleLivery(vehicle) or GetVehicleMod(vehicle, 48),