WhereiamL
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.

OptionWhat it does
impoundFeePercentRelease fee as a % of the car's value. Default 10.
minFee / maxFeeClamp the fee so cheap and expensive cars stay sane.
impoundFeeFrom'cash' or 'bank'.
allowBankOverdraftLet bank payments go negative. Default false.
fallbackVehicleValueUsed 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.
purchaseCooldownMilliseconds between store/retrieve/pay actions per player.
studioRadiusHow close you must be to a garage ped to enter its showroom.
saveIntervalSeconds 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.

On this page