JG Docs
Advanced Garages

Job & Gang Garages

Gang garages are available in the QBCore version only, as QBCore has gang functionality built in. For ESX, you can set up a job garage for gang use.

Job/gang garages are shared between players who are assigned to a particular job or gang, usually via /setjob or /setgang.

There are 3 distinct garage types:

1. Vehicle Spawner2. Owned Vehicles3. Personal Vehicles

A vehicle spawner garage is the most basic garage type. You can define a list of vehicles that members of the job/gang should be able to choose from, a minimum job rank for each vehicle if applicable, and a plate that you'd like each vehicle to spawn with.

All vehicles can be spawned as many times as a player wants without restriction.

An owned vehicles job garage is where all the vehicles available in the garage to job/gang members are stored in the database, just like personal vehicles.

Job/gang members can customise the cars, but are responsible for any damage or loss while out. If a vehicle has been taken out, it cannot be taken out again if Config.JobGaragesAllowInfiniteVehicleSpawns is set to false.

A personal vehicles garage lets you store personally owned vehicles like a standard public garage.

The difference to a public garage is that only members of the job/gang can see or interact with the garage.

Setting up a garage

Open jg-advancedgarages/config/config.lua. Job garages are configured in Config.JobGarageLocations. Gang garages are configured in Config.GangGarageLocations.

Copy one of the existing garage entries in the correct section, then change:

  • The name inside brackets. Every garage name must be unique.
  • coords to the location where players open the garage.
  • spawn to one or more vehicle spawn locations.
  • job or gang to the in-game job or gang name.
  • type to "car", "sea" or "air".
  • distance to the radius where players can use the garage.
  • vehiclesType to "personal", "owned" or "spawner".

You can allow more than one job or gang by adding each name to the table, such as job = {"police", "ambulance"}.

Only private garages have an in-game creation command. Use /privategarages to create a private garage. Public, job, gang and impound locations must be added in config/config.lua.

Personal Vehicle Garages

These work just like public garages. Set the job/gang garage to store personal vehicles, and players can store their personal vehicles as usual. Players who aren't part of the job/gang can't see or interact with the garage.

Owned Vehicle Garages

If a job buys a vehicle through JG Dealerships using society funds, store it in an Owned Vehicles garage. The garage must have vehiclesType = "owned". This makes the purchased vehicle available to members of that job. It won't store in a Vehicle Spawner garage with vehiclesType = "spawner".

Once you've added an owned vehicle garage to Config.JobGarageLocations or Config.GangGarageLocations, add vehicles to it in-game:

  1. As an admin in-game, get a car into your personal garage by either purchasing it from a vehicle store, or by spawning it in with /car and then adding it to your garage with /admincar. Or, get in an owned car from another player.
  2. Use the command /setjobvehicle [job_name] [min_job_grade] or
    /setgangvehicle [gang_name] [min_gang_grade] to add this owned vehicle to the shared job/gang garage respectively.
  3. Admins can use /removejobvehicle [new_player_owner_id] while in the car to give it back to a player and make it a personal vehicle again.

Vehicle Spawner Garages

Set vehiclesType = "spawner", then add the available vehicles to the garage's vehicles table in config/config.lua:

config/config.lua
vehiclesType = "spawner",
showLiveriesExtrasMenu = true,
vehicles = {
  [1] = {
    model = "police",
    plate = "PD",
    minJobGrade = 0,
    nickname = "Police car",
    livery = 1,
    modLivery = 1,
    extras = {1, 2},
    maxMods = true
  }
}

Set plate = false to generate a random plate. Don't use a fixed plate that already exists in your database. Restart jg-advancedgarages after changing the file.

Last updated 21 July 2026

On this page