[+] 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: French .json & some in .lua, Czech some in .lua, Spanish .json & some in .lua, 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
[+] 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
[/] 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.
[+] 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).
[+] 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
[+] 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
[+] 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
[+] 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
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.
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
[/] 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.
Added modifications for Mod Type 49
This modification requires adding entry to (modKit49 - Vehicle Properties)
UPDATE 2.1.5
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.
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:
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