whereiaml_garage
Configuration
Garages, impound lots, fees and behaviour.
Everything lives in three files. Most of the time you're just editing shared.lua to place
your garages.
config/shared.lua
Config.Notifications = 'custom' -- 'custom' = built-in Mantine toasts, 'framework' = qbx/esx
Config.Keys = 'auto' -- 'auto' | 'none' | 'qbx_vehiclekeys' | 'wasabi_carlock' | ...Categories
Config.ClassToCategory maps GTA's vehicle class (0–21) to a category id, and
Config.Categories is the tab list shown in the UI. Anything not mapped falls back to car.
Config.ClassToCategory = { [8] = 'motorcycle', [14] = 'boat', [15] = 'air', [16] = 'air' }A garage
{
id = 'legion',
label = 'Legion Square Garage',
ped = 's_m_m_autoshop_01',
coords = vec4(-336.0, -136.0, 39.0, 70.0), -- the attendant + where you interact
blip = { enabled = true, sprite = 357, color = 3, scale = 0.8 },
categories = nil, -- nil = accepts everything; or { 'boat' }
studio = { -- the private showroom (put it somewhere empty)
podium = vec4(-1395.0, -3000.0, 13.95, 240.0),
ped = vec3(-1398.5, -3002.5, 13.95),
},
spawns = { -- exit points; first free one is used
vec4(-330.0, -141.0, 39.0, 70.0),
vec4(-325.0, -145.0, 39.0, 70.0),
},
}categories is how you make a marina or a hangar — set it to { 'boat' } and that garage only
shows (and accepts) boats. Give a garage a few spawns so cars don't stack on top of each other
when the exit is busy.
An impound lot
{
id = 'citywide',
label = 'City Impound',
ped = 's_m_y_cop_01',
coords = vec4(409.0, -1623.0, 29.29, 230.0),
blip = { enabled = true, sprite = 68, color = 1, scale = 0.7 },
spawn = vec4(404.0, -1621.0, 29.29, 230.0),
}config/server.lua
This is the authoritative side — fees, behaviour, anti-abuse.
| Option | What it does |
|---|---|
impoundFeePercent | Release fee as a % of the car's value. Default 10. |
minFee / maxFee | Clamp the fee so cheap and expensive cars stay sane. |
impoundFeeFrom | 'cash' or 'bank'. |
allowBankOverdraft | Let bank payments go negative. Default false. |
fallbackVehicleValue | Used for the fee when the framework has no price for a model. |
ImpoundOn | { destroyed = true, water = true } — what sends a car to impound. |
OutVehicle | 'restore_on_return' (car comes back where you left it next time you log in) or 'always_present' (it never despawns and is re-created on restart). |
FuelResource | 'auto' or a fuel script name. |
purchaseCooldown | Milliseconds between store/retrieve/pay actions per player. |
studioRadius | How close you must be to a garage ped to enter its showroom. |
saveInterval | Seconds between background position saves for a car that's out. |
config/client.lua
The showroom camera and mouse feel — fov, orbit distance, rotateSpeed, zoomSpeed, etc.
The defaults match the dealership; tweak only if you want a different framing.