Retro Garage
Vehicles donโt show up in the garage UI
Section titled โVehicles donโt show up in the garage UIโ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.
How impound fees are calculated
Section titled โHow impound fees are calculatedโImpoundPrice + (ImpoundPricePerHour ร hours), capped at ImpoundMaxFee.
For example with defaults: $500 base + $50/hr ร 10 hours = $1,000.
Adding a new public garage
Section titled โAdding a new public garageโ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' } }Setting up a job garage
Section titled โSetting up a job garageโ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.
Interior system isnโt working
Section titled โInterior system isnโt workingโSet Config.GarageInterior.enabled = true in config/config.lua. The MLO assets in stream/ must be present - donโt delete them.
Drive-out system
Section titled โDrive-out systemโ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.
Inter-garage transfer
Section titled โInter-garage transferโRequires Config.AllowInterGarageTransfer = true. Players pay Config.InterGarageTransferPrice to move a stored vehicle to another garage. A flatbed delivery animation plays at the destination.
Vehicle mods are lost after storing
Section titled โVehicle mods are lost after storingโ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.
Impound access
Section titled โImpound accessโOnly players with jobs in Config.ImpoundJobs (default: { 'police' }) can impound vehicles. Use /iv while looking at a vehicle.
Private garage creation
Section titled โPrivate garage creationโ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).
Key sharing
Section titled โKey sharingโ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 not working
Section titled โAdmin commands not workingโ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.