Skip to content

Retro Garage

Make sure your player_vehicles (QBCore/QBox) or owned_vehicles (ESX) table actually has vehicles for the player. The garage column needs to match a valid garage ID from config.

ImpoundPrice + (ImpoundPricePerHour ร— hours), capped at ImpoundMaxFee.

For example with defaults: $500 base + $50/hr ร— 10 hours = $1,000.

Add an entry to config/garages/public_garages.lua:

{ id = 'mygarage', label = 'My Garage', type = 'public',
blip = { enabled = true, sprite = 357, color = 3, scale = 0.7 },
spawn = { vector4(x, y, z, heading) },
npc = { enabled = true, model = 's_m_y_valet_01', coords = vector4(x, y, z, heading) },
vehicleTypes = { 'car', 'bike' } }

Add to config/garages/job_garages.lua with type = 'job' and job = 'yourjob'. Set blip.enabled = false if you donโ€™t want a map blip for non-job players.

Set Config.GarageInterior.enabled = true in config/config.lua. The MLO assets in stream/ must be present - donโ€™t delete them.

Enter a vehicle inside the MLO interior, drive toward the driveOutExit coordinate, and once youโ€™re within driveOutRadius the system teleports you outside and spawns the real vehicle at the garage spawn point.

Requires Config.AllowInterGarageTransfer = true. Players pay Config.InterGarageTransferPrice to move a stored vehicle to another garage. A flatbed delivery animation plays at the destination.

Check that oxmysql is running properly. Mods get saved as JSON in the mods column on store. If the column is missing or too small, data gets truncated.

Only players with jobs in Config.ImpoundJobs (default: { 'police' }) can impound vehicles. Use /iv while looking at a vehicle.

Restricted to jobs in Config.PrivateGarages.createJobs (default: { 'police', 'realestate' }). Use /creategarage at the desired spot.

When a private garage is deleted, all vehicles in it are automatically moved to the first public garage (motelgarage).

The vehicle owner can share keys with up to Config.MaxSharedKeys players. Shared vehicles show up in the โ€œSharedโ€ tab. Shared players can spawn and store the vehicle but canโ€™t transfer or re-share it.

Admin commands go through Bridge.IsAdmin(src). For QBCore this checks admin/god permissions. Make sure your player has the right admin level in your framework.