Garages
One resource for every garage on the server — public, job, gang and impound, plus police impound with insurance returns, player-to-player vehicle sales, buyable parking spaces and an in-game garage editor.
Vehicles are spawned server-side after an ownership and state check, so a garage can never be used to duplicate a car or pull one the player doesn't own.
Requirements
| Resource | Required | Notes |
|---|---|---|
ox_lib | Yes | Callbacks, menus, vehicle properties |
oxmysql | Yes | Garages, spaces and job vehicles |
ox_target | Yes | Garage and impound interaction |
| A framework | Yes | qbx_core or qb-core |
| Vehicle keys | Optional | qb-vehiclekeys / jj-vehiclekeys, wasabi_carlock, MrNewbVehicleKeys |
| Banking | Optional | tgg-banking, Renewed-Banking, okokBanking, qb-banking — for impound society fees |
| Fuel | Optional | cdn-fuel, LegacyFuel, ps-fuel, ox_fuel, or native |
Every optional backend is auto-detected and every third-party call is wrapped — a missing one never errors, it just falls back.
ESX: the framework layer has an ESX branch for player, job and money, but the vehicle data layer uses the QBCore-schema player_vehicles table keyed by citizenid. ESX servers running that schema work; stock owned_vehicles does not.
Install
- Drop
jj-garagesinto your resources folder. - Import
install/garages.sql. It creates three tables:jj_garages,jj_garage_spotsandjj_job_vehicles. - Add to
server.cfg, after your framework, ox_lib, ox_target and oxmysql:
ensure jj-garages
- Restart and open the editor in-game with
/garageeditorto place your first garage.
Vehicle images
The list shows a thumbnail per model, loaded from vehicle_images/. Images ship for the base game — for add-on vehicles, drop a PNG named after the spawn code into that folder.
Set Config.ShowVehicleImages = false to turn thumbnails off entirely.
First run
- Run
/garageeditoras an admin. - Create a garage, set its type (public, job, gang, impound, private or shared) and save. It persists to the database immediately — no config editing, no restart.
- Walk into the zone and press E (or use the radial, depending on
Config.GarageAccess). - Store a car, take it out, and check the fuel and condition bars carried over.
Players can find their cars at any time with /myvehicles, which lists every owned vehicle with its status and sets a waypoint.
Next: Configuration.