Skip to main content
2

Configure the script

The script comes auto-configured and works out of the box. You only need to edit config.lua if you want to change framework, locale, prices, or other options.
Optional: view or copy the default config in the dropdown below.
Config = {}

-- Set to true to print debug logs to server/client console (helps fix park/list/plate issues)
Config.Debug = false

-- Locale key from locales/*.lua (default: en)
Config.Locale = "en"

-- Framework: "esx", "qb", "qbx", or "standalone". "auto" = detect (esx > qbx > qb > standalone)
Config.Framework = "esx"

Config.ParkingPrice = 5000 -- Price to buy a parking spot (paid via core/framework money: ESX xPlayer.removeMoney, QB/QBX RemoveMoney, etc.)
Config.Impound = 2500 -- Price to impound a vehicle back to garage state when it is out/not stored

-- Max distance (meters) from your spot to park a vehicle (server uses this for security check)
Config.SpotInteractionDistance = 5.0

-- Which inventory your server uses (for compatibility / other scripts). Money is always taken from the core, not inventory.
-- Options: "ox_inventory", "qb-inventory", "ps-inventory", "codem-inventory", "qs-inventory", "core_inventory", "none"
Config.Inventory = "ox_inventory"

-- Mileage integration (used in the list UI).
-- mode = "auto"  -> tries known resources in order from autoResources
-- mode = "manual" -> uses resource + export below
Config.Mileage = {
    mode = "auto",
    resource = "jg-advancedmileage",
    export = "getMileageByPlate",
    autoResources = {
        "jg-advancedmileage",
        "jg-adavancedmileage", -- typo-safe fallback for misnamed resources
        "jg-vehiclemileage",
    }
}

--[[
    Caching: when true, spots list is cached briefly (server 5s, client 3s). Cache is cleared on buy/park/unpark. Spots are stored in SQL and persist across restarts/reconnects.
    Benefits: Fewer DB queries, snappier list menu when reopening, less server load on busy servers.
    Cons: After buying a spot, parking, or unparking, the list can show old data for a few seconds until the cache refreshes.
]]
Config.UseCache = true

Config.Messages = (Locales and Locales[Config.Locale]) or (Locales and Locales["en"]) or {}

-- Map blips for your parking spots (true = show blips)
Config.ShowSpotBlips = true

-- ox_lib progress (park action)
Config.ParkProgress = {
    duration = 2000,
    position = "bottom",
}
3

Create a new subfolder (optional)

This step is optional, but highly recommended.
If you haven’t already, create a new subfolder named [ghetto] in your server’s root resources directory. Unzip (extract) this script into the newly created [ghetto] subfolder.
4

Update server.cfg & perform a full restart

Once all other steps are completed, open your server.cfg and add ensure [ghetto] to the very bottom of your resource start list. Finally, perform a full server restart.
Failure to perform a full restart after installation will cause errors.
Upon completion, do not delete the install folder or any .sql files or you will experience errors.