[ESX/QB] VMS Garages V2 | Most Advanced Garages & Parking System

Hey! Is it possible to park freely on streets? And if not, as I think I understood, are you planning to do it in the future?

Hey, yes, our script is compatible with QBOX.

Hey, sorry to hear that, but I doubt you’ll be waiting a month for support, as I currently don’t see any ticket that’s been active for over a month, our support team is still active, I encourage you to contact them in case of any issues.

Hey!

Currently, there is no Vehicle Persistent option you are probably talking about, which allows you to leave your vehicle anywhere. Currently, our script requires you to park in the parking space you have configured.

Yes, we plan to introduce Vehicle Persistent to the resource soon! :grinning:

:notebook_with_decorative_cover: UPDATE 1.3.0


[+] Added compatibility with kq_wheeldamage and VehicleDeformation using CL.SetOnVehicleSpawn & CL.SetOnVehicleSpawnLocally.

[+] Added Parking Objects system - you can now place decorative or functional objects (e.g. parking meters) via config.garages.lua (parkingObjects).

[+] Added recoverableFrom option to Config.Impounds - allows you to define a list of impounds from which a vehicle can be recovered in a specific impound point.

[+] Added price editing in Management Menu for Business Parkings:
- Price Per Day
- Price for Infinity (flat fee)

[+] Added automatic garage registration for nolag_properties and qs-housing.
:warning: Note: If you’ve already registered housing garages and later change the Enter Garage point in the property management menu, it may cause inconsistencies.
For stability, filenames should follow this format:

  • File name: nolag_property:HousingID
  • Garage ID: HouseGarage:nolag_property-HousingID
    We recommend re-registering garages for full compatibility and future-proofing.

[+] Introduced a new Housing Garage Menu system - works like regular garages but allows vehicle storage limits and is fully supported in the Parking Creator.

[+] Added Config.InstantVehicleLoading to config.lua - enables loading all vehicles at once upon entering the PolyZone.
:warning: This is an experimental feature. We recommend testing it on your own server, especially if you use many add-on vehicles.

[+] Added refreshVehicles server-side export - allows dynamic refresh of parked vehicles (useful for scripted events or admin tools).

[/] Fixed: Garage registration now properly closes the menu on success.

[/] Changed: Tag for gang-owned garages now shows correctly as GANG GARAGE.

I love this script. However my question is. How is it possible to manage a parking zone already created? Or delete it. /createparking only allows you to create but not manage/edit

Hello, thank you very much!

Yes, at the moment it’s only possible to create parking spots - editing them is not available yet.
Our current system is based on .lua files. If we had used .json, editing would’ve been easier.

That said, we’re not limiting ourselves to one format - it’s very likely we’ll introduce JSON-based parking spots with full editing support via the parking creator menu in the future.

Thanks again for the suggestion!

:notebook_with_decorative_cover: UPDATE 1.3.1


[/] Fixed a vehicle rotation issue on parking spots
[/] Fixed a missing checkAreaOccupied validation for impounds

:notebook_with_decorative_cover: UPDATE 1.3.2


[+] Added multi-level parking support for apartment buildings in VMS Housing
[/] Fixed notification bug for parking spot rental price change
[/] Resolved black screen issue in House Garages (Menu Mode)

:notebook_with_decorative_cover: UPDATE 1.3.3


[/] Fixed an issue when bringing a vehicle via phone using the vms_garagesv2:vehicleTakenByPhone event

:notebook_with_decorative_cover: UPDATE 1.3.4


[+] Compatibility with LB-Phone (Already available in the documentation!)
[+] Compatibility with vms_notifyv2 Text UI
[/] Changed the SQL method for fetching vehicles in garages to optimize the query
[/] Fixed a bug related to vehicle properties after disconnecting from the server or leaving the vehicle outside of rendering range
[/] Fixed a visual bug that showed the vehicle as parked for 23H for a few seconds after parking - it now correctly shows -1H immediately

:notebook_with_decorative_cover: UPDATE 1.3.5


[+] Added native SetVehicleEngineOn in CL.SetOnVehicleSpawnLocally so that parked boats have the engine turned off
[+] Added VIN number generation in the SV.GiveCar function when using the /givecar command with vms_cityhall
[/] Fixed a bug that prevented license plates consisting only of numbers

:notebook_with_decorative_cover: UPDATE 1.3.6


[+] Added Vehicle Persistence (Beta Mode) (Config.VehiclePersistence)
If you encounter any issues related to Vehicle Persistence, please create a thread on discord.

ALTER TABLE `owned_vehicles` ADD COLUMN IF NOT EXISTS `position` longtext DEFAULT NULL;

[+] Added server-side export deleteVehicle
Allows you to delete persistent vehicles - you can integrate this export into your /dv command within your framework.

[+] Added Config.HousingGaragesType
If you’re using VMS Housing and your vehicle type differs (e.g., car instead of vehicle), you can now adjust it so the system automatically generates garages using your custom type.

[/] Fixed a bug that prevented ordering a company vehicle for grade 0.

:notebook_with_decorative_cover: UPDATE 1.3.7


[+] Added the /dvp command - works like the default /dv framework command but also deletes persistent vehicles (Config.DeletePersistentVehicleCommand).

[/] Fixed setting the position column to NULL with /tow command (Patch for Vehicle Persistent).

[/] Fixed the deleteVehicle export to ensure it works for players in the Impound and prevents the vehicle from respawning at its last position after a restart.

:notebook_with_decorative_cover: UPDATE 1.3.8


:green_circle: New Features

  • Added automatic removal of water-damaged vehicles from map after retrieving a vehicle from the impound.
  • Added Config.ForcePropertiesSync
    For some users this option will work good, for some it will not. It is recommended to set false as it is by default, you can also test with true, but each time you leave the vehicle, it can make an attempt to synchronize, it can also cause the doors to close, again cracking the windows/tires.

:yellow_circle: Fixed Issues

  • Fixed a bug where the netid was not being removed from the database after parking a vehicle in a garage.
  • Fixed a bug that allowed vehicle theft from Underground Parking regardless of the AllowLockpick option.
  • Fixed an issue with vehicle recovery in Job Impounds when fine_amount was set to 0 and the Config.AllowJobImpoundsTakeVehWithoutPaying option was disabled.
  • Disabled Persistent Vehicles in Underground Parkings.
  • Modified Vehicle Properties assignment.
    Vehicles will no longer attempt to resynchronize.

Improved the compatibility guide for kq_wheeldamage with qb-core/qbx_core
Improved documentation for VehicleDeformation

:notebook_with_decorative_cover: UPDATE 1.3.9


:green_circle: New Features

  • Added Config.PersistenceSpawnDelay
    Delay before persistent vehicles can start spawning after the PlayerLoaded event is triggered.
    Helps avoid conflicts with player loading, routing buckets, and other resources.
  • Added Config.PersistenceSpawnThrottle
    Time to wait between consecutive persisted vehicle spawn requests.
    This value is used as a throttle to prevent sending multiple spawn events at once when several persisted vehicles are within the spawn range.

:yellow_circle: Fixed Issues

  • Fixed a rare issue related to Housing Garages occurring during vehicle parking
  • Improved stability and resolved edge cases related to Persistent Vehicles

:notebook_with_decorative_cover: UPDATE 1.4.0


:green_circle: New Features

  • Changed the vehicle spawn method on the server side.
    This change likely resolves all issues related to Vehicle Persistence and also improves vehicle properties loading speed.

  • Added SV.OnVehicleSpawn function in config.server.lua.
    Due to the new spawn method, the FiveM entityCreated event no longer detects spawned vehicles.
    If you had any logic relying on that event, it should now be implemented inside this function.

  • Added Config.ShowLoadingText and Config.LoadingTextScale
    When you enter the parking zone, during the creation of vehicles, you will see the test “Loading
”.
    Recommended for debugging but not only - in the case of players with a weaker internet connection, then it will know that a vehicle will be loaded at this location.

  • Added a safeguard preventing vehicles from being taken from the garage or impound before the vehicle model has finished loading, to prevent duplicate “ghost” vehicles appearing in the vehicle selection point.

  • Added more debug prints

:notebook_with_decorative_cover: UPDATE 1.4.1


:green_circle: New Features

  • Added automatic vehicle state validation & cleanup on resource start to prevent rare persistence edge-cases after unexpected restarts.
  • Added new client-side hook CL.OnVehiclePersistent(action, vehicle) for advanced customization and extended compatibility handling.
  • Extended allowParkPrivateVehicles support to company garages.

:yellow_circle: Fixed Issues

  • Fixed potential UI race condition when rapidly closing garage/impound menus.
  • Enhanced vehicle spawn validation to prevent rare edge-case freeze states.

:notebook_with_decorative_cover: UPDATE 1.4.2


:yellow_circle: Improvements

  • Fixed an issue with parking company vehicles when Config.AllowParkingCompanyVehiclesEverywhere = false.
    In some cases, vehicles assigned to a company with a specific employee grade could trigger the message “This vehicle is not suitable for this garage.”.

:notebook_with_decorative_cover: UPDATE 1.4.3


:green_circle: New Features

  • Added additional validation checks to ensure vehicles are properly requested and created locally (up to 3 attempts)
  • Added server-side exports getAllGarages and getAllImpounds
  • Added support for accessing vehicles from higher grades/ranks (Config.AllowCompanyAccessAboveRank & Config.AllowGangAccessAboveRank)

:yellow_circle: Improvements

  • Reworked and improved the vehicle access/permission system for company and gang vehicles
  • Improved internal validation and permission checks for garage and impound vehicle access
  • Improved overall stability and reliability of local vehicle spawning/loading
  • Refactored and optimized multiple garage/impound permission and access systems
  • Added additional safeguards and fallback checks for vehicle creation/loading
  • Vehicle door lock states are now refreshed automatically when the player’s job changes inside a garage polyzone
  • Improved getGarageInfo export
  • Reduced the minimum required polyzone height from 10.0 to 5.0 to better support underground and low-height parking garages without collisions
  • Added additional validation to ensure the player is properly inside a garage polyzone after joining the server

:red_circle: Fixes

  • Fixed an issue where company/gang bosses could retrieve shared vehicles but were unable to park them back
  • Fixed multiple edge cases related to company/gang vehicle access validation
  • Fixed several permission-related inconsistencies for garages and impounds

:notebook_with_decorative_cover: UPDATE 1.4.4


:red_circle: Fixes

  • Fixed vehicle spawning issues in underground parkings and housing garages.