Full View config.garages.lua

Preview File Updated: v1.0.5 - 12.09.2024

---@class Impounds 
Config.Impounds = {
    ['Impound1'] = {
        label = 'Capital Blvd',
        type = 'vehicle',

        societyName = 'society_mechanic',
        percentFromFineAmountToSociety = 40,

        nameBlip = 'impound:vehicle',
        showBlip = true,
        blipCoords = vector3(485.16, -1322.74, 49.07),

        jobImpound = nil,

        garageZone = { -- PolyZone
            vec2(522.45, -1346.62),
            vec2(480.01, -1349.45),
            vec2(463.45, -1299.82),
            vec2(491.68, -1299.93),
        },
        minZ = 26.0,
        maxZ = 40.0,

        -- priceForImpound = 1000, -- Static price, regardless of the time how much is the vehicle towed
        priceForImpoundPerDay = 800, -- Price depends on how long the vehicle is towed away

        npc = {
            enabled = true,
            model = 'a_m_m_rurmeth_01',
            animation = {'mini@hookers_spvanilla', 'idle_reject_loop_a'},
            coords = vector4(495.75, -1340.83, 28.31, 358.03),
        },
        impoundPoint = vector3(495.73, -1340.29, 29.31),

        impoundData = {
            pedCoords = vector4(489.62, -1332.06, 28.33, 320.0),
            vehicleCoords = vector4(488.86, -1334.42, 28.24, 272.15),
            cameraCoords = vector3(493.58, -1328.73, 30.75),
            cameraFov = 60.0,
        },

        spawnPoint = vector4(485.44, -1307.5, 28.26, 214.9),
        checkAreaOccupied = true,
    },

    ['ImpoundBoat'] = {
        ...
    },

    ['ImpoundPlane'] = {
        ...
    },

    ['ImpoundHeli'] = {
        ...
    },
    
    ['ImpoundPolice'] = {
        ...
    },
}

---@class Garages Configuration Guide - https://docs.vames-store.com/assets/vms_garagesv2/guides/registering-new-garage
Config.Garages = {
    -- █▀ █▀▄ ██▀ ██▀   ▄▀  ▄▀▄ █▀▄ ▄▀▄ ▄▀  ██▀ ▄▀▀   
    -- █▀ █▀▄ █▄▄ █▄▄   ▀▄█ █▀█ █▀▄ █▀█ ▀▄█ █▄▄ ▄██   
    
    -- Vehicles Garages:
    ['EclipseTowerGarage'] = {
        label = "Eclipse Tower Garage",
        type = 'vehicle',

        isPaid = false,

        nameBlip = 'free_garage:vehicle',
        showBlip = true,
        blipCoords = vec3(-796.06, 323.87, 84.7),

        garageZone = { -- PolyZone
            vec2(-801.79, 305.05),
            vec2(-789.88, 304.67),
            vec2(-782.44, 340.66),
            vec2(-810.96, 340.84),
        },
        minZ = 82.0,
        maxZ = 92.0,
        
        menuPoint = vec3(-803.15, 325.57, 85.7),

        garageData = {
            pedCoords = vec4(-797.95, 319.04, 84.68, 165.48),
            vehicleCoords = vec4(-796.15, 322.22, 84.62, 180.85),
            cameraCoords = vec3(-798.75, 313.43, 87.13),
            cameraFov = 60.0,
        },

        spawnPoint = vec4(-800.42, 332.31, 85.7, 180.46),
        checkAreaOccupied = true,
        returnVehiclePoint = vec3(-791.66, 331.94, 85.7)
    },
    ['EastbourneWayGarage'] = {
        ...
    },

    -- Planes Garages:
    ['InternationalAirport'] = {
        ...
    },

    -- Helicopters Garages:
    ['InternationalAirportHeli'] = {
        ...
    },


    -- █▀ █▀▄ ██▀ ██▀   ▄▀  ▄▀▄ █▀▄ ▄▀▄ ▄▀  ██▀ ▄▀▀   █ █▄ █ ▀█▀ ██▀ █▀▄ █ ▄▀▄ █▀▄
    -- █▀ █▀▄ █▄▄ █▄▄   ▀▄█ █▀█ █▀▄ █▀█ ▀▄█ █▄▄ ▄██   █ █ ▀█  █  █▄▄ █▀▄ █ ▀▄▀ █▀▄
    
    -- Vehicles Garages:
     ['OlimpicFwyGarage'] = {
        label = "Olimpic Fwy Garage",
        type = 'vehicle',
        requiredJob = nil,
        isPaid = false,
        
        nameBlip = 'free_garage:vehicle',
        showBlip = true,
        blipCoords = vector3(-219.33, -1164.8, 22.02),
        
        garageZone = { -- PolyZone
            vec2(-214.94, -1154.14),
            vec2(-247.95, -1152.02),
            vec2(-250.58, -1195.97),
            vec2(-215.42, -1191.78),
        },
        minZ = 21.0,
        maxZ = 30.0,

        interior = {
            routingBucket = 1001,
            
            enterOnFoot = vec4(-218.64, -1162.0, 23.02, 91.21),
            exitOnFoot = vec4(1380.2, 178.5, -48.99, 358.12),
            
            enterWithVehicle = vec4(-222.67, -1162.87, 23.02, 359.46),
            exitWithVehicle = vec4(1339.74, 190.82, -48.31, 269.62),
        },

        parkingSpaces = {
            [1] = {coords = vector4(1366.35, 200.26, -50.41, 89.89)},
            [2] = {coords = vector4(1366.19, 204.52, -50.41, 90.23)},
            [3] = {coords = vector4(1366.29, 208.72, -50.41, 89.73)},
            ...
        },
    },


    -- █▀ █▀▄ ██▀ ██▀   █▀▄ ▄▀▄ █▀▄ █▄▀ █ █▄ █ ▄▀  ▄▀▀
    -- █▀ █▀▄ █▄▄ █▄▄   █▀  █▀█ █▀▄ █ █ █ █ ▀█ ▀▄█ ▄██
    
    -- Vehicle Parkings:
    ['LegionSquareParking'] = {
        label = "Legion Square Parking",
        type = 'vehicle',
        requiredJob = nil,
        isPaid = false,
        
        nameBlip = 'free_garage:vehicle',
        showBlip = true,
        blipCoords = vector3(229.87, -784.03, 54.95),
        
        garageZone = { -- PolyZone
            vec2(250.83, -847.42),
            vec2(175.2, -818.76),
            vec2(216.62, -699.35),
            vec2(292.69, -735.6),
        },
        minZ = 29.0,
        maxZ = 45.0,

        parkingSpaces = {
            [1] = {coords = vector4(206.21, -800.94, 29.29, 69.48)},
            [2] = {coords = vector4(207.09, -798.51, 29.28, 69.48)},
            [3] = {coords = vector4(208.22, -796.05, 29.26, 68.63)},
            ...
        },
    },

    ['AmericanoParking'] = {
        ...
    },

    ['MiltonRdParking'] = {
        ...
    },

    ['BoulevardDelPerro'] = {
        ...
    },

    ['BoulevardDelPerro2'] = {
        ...
    },

    ['GreatOceanHwy'] = {
        ...
    },

    -- Boat Parkings:
    ['GomaStParking'] = {
        ...
    },


    -- █▀▄ ▄▀▄ █ █▀▄   █▀▄ ▄▀▄ █▀▄ █▄▀ █ █▄ █ ▄▀  ▄▀▀
    -- █▀  █▀█ █ █▄▀   █▀  █▀█ █▀▄ █ █ █ █ ▀█ ▀▄█ ▄██

    -- Vehicles Parkings:
    ['MacDonaldParking'] = {
        label = "Mac Donalds Parking",
        type = 'vehicle',
        
        requiredJob = nil,
        isPaid = true,

        pricePerHour = 20, -- 20$ per hour
        payStations = {
            vector3(345.61, -1686.81, 27.3), -- Floor G
            vector3(386.29, -1681.73, 27.31), -- Floor G

            vector3(345.63, -1686.8, 32.51), -- Floor 1
            vector3(386.34, -1681.8, 32.53), -- Floor 2

            vector3(345.63, -1686.8, 37.79), -- Floor 2
            vector3(386.29, -1681.73, 37.79), -- Floor 2

            vector3(345.63, -1686.8, 43.05), -- Floor 3
            vector3(386.28, -1681.75, 43.05), -- Floor 3
            
            vector3(345.63, -1686.8, 48.31), -- Floor 4
            vector3(386.28, -1681.75, 48.3), -- Floor 4
        },

        nameBlip = 'paid_garage:vehicle',
        showBlip = true,
        blipCoords = vector3(370.76, -1674.14, 31.53),

        garageZone = { -- PolyZone
            vec2(358.37, -1742.52),
            vec2(312.49, -1703.84),
            vec2(376.71, -1633.93),
            vec2(419.48, -1668.84),
        },
        minZ = 24.0,
        maxZ = 55.0,

        parkingSpaces = {
            [1] = {coords = vector4(364.69, -1707.2, 26.05, 139.26)},
            [2] = {coords = vector4(362.06, -1704.85, 26.05, 139.22)},
            [3] = {coords = vector4(359.12, -1702.56, 26.05, 139.63)},
            ...
        },
    },

    ['MeteorStParking'] = {
        ...
    },

    -- █▀▄ ▄▀▄ █▀▄ █▄▀ █ █▄ █ ▄▀    █▀ ▄▀▄ █▀▄   █▀▄ ██▀ █▄ █ ▀█▀
    -- █▀  █▀█ █▀▄ █ █ █ █ ▀█ ▀▄█   █▀ ▀▄▀ █▀▄   █▀▄ █▄▄ █ ▀█  █ 

    -- Vehicles Parkings:
    ['NorthRockfordParking'] = {
        label = "North Rockford Parking",
        type = 'vehicle',

        requiredJob = nil,
        isPaid = false,
        isForRent = true,
        
        payStations = {
            vector3(-1161.07, -740.21, 20.7),
        },
        pricePerDay = 1200, -- 1200$ per day
        rentDays = {1, 2, 3, 4, 5, 6, 7, 14},
        
        npc = {
            enabled = true,
            model = 'cs_stretch',
            animation = {'rcmnigel1a', 'base'},
            coords = vector4(-1161.07, -740.21, 18.73, 130.08),
        },

        nameBlip = 'rent_garage:vehicle',
        showBlip = true,
        blipCoords = vector3(-1141.54, -752.76, 38.03),

        garageZone = { -- PolyZone
            vec2(-1141.25, -714.22),
            vec2(-1179.01, -746.88),
            vec2(-1139.72, -792.12),
            vec2(-1100.56, -761.01),
        },
        minZ = 14.0,
        maxZ = 25.0,

        parkingSpaces = {
            [1] = {coords = vector4(-1146.21, -745.69, 18.23, 286.29), camCoords = vec(-1150.42, -747.32, 20.9)},
            [2] = {coords = vector4(-1143.56, -748.69, 18.08, 287.42), camCoords = vec(-1148.0, -750.22, 20.9)},
            [3] = {coords = vector4(-1140.94, -751.61, 17.94, 286.41), camCoords = vec(-1145.38, -753.19, 20.9)},
            ...
        },
    },


    --    █ ▄▀▄ ██▄   █▀▄ ▄▀▄ █▀▄ █▄▀ █ █▄ █ ▄▀  ▄▀▀
    --  ▀▄█ ▀▄▀ █▄█   █▀  █▀█ █▀▄ █ █ █ █ ▀█ ▀▄█ ▄██

    -- Vehicles Parkings:
    ['MissionRow'] = {
        label = "Police Parking",
        type = 'vehicle',

        requiredJob = {
            ['police'] = {0, 1, 2, 3, 4, 5, 6},
            ['sheriff'] = true
        },
        isPaid = false,

        nameBlip = 'job_garage',
        showBlip = false,
        blipCoords = vector3(0.0, 0.0, 0.0),

        garageZone = { -- PolyZone
            vec2(405.26, -1007.58),
            vec2(404.81, -1036.99),
            vec2(459.96, -1030.72),
            vec2(459.46, -1001.09)
        },
        minZ = 26.0,
        maxZ = 45.0,
        
        allowedModels = {
            [joaat('police')] = true,
            [joaat('police2')] = true,
            [joaat('police3')] = true,
            [joaat('police4')] = true,
            [joaat('police5')] = true,
        },

        parkingSpaces = {
            [1] = {coords = vector4(427.59, -1027.5, 27.55, 178.6)},
            [2] = {coords = vector4(431.11, -1026.96, 27.48, 183.28)},
            [3] = {coords = vector4(434.84, -1026.5, 27.41, 182.98)},
            ...
        },
    },


    --   █ ▄▀▄ ██▄   ▄▀  ▄▀▄ █▀▄ ▄▀▄ ▄▀  ██▀ ▄▀▀   █▀▄ █▀▄ ██▀ █▀▄ ██▀ █▀ █ █▄ █ ██▀ █▀▄   █ █ ██▀ █▄█ █ ▄▀▀ █   ██▀ ▄▀▀
    -- ▀▄█ ▀▄▀ █▄█   ▀▄█ █▀█ █▀▄ █▀█ ▀▄█ █▄▄ ▄██   █▀  █▀▄ █▄▄ █▄▀ █▄▄ █▀ █ █ ▀█ █▄▄ █▄▀   ▀▄▀ █▄▄ █ █ █ ▀▄▄ █▄▄ █▄▄ ▄██
    ['SandyShoresPolice'] = {
        label = "Police Garage",
        type = 'vehicle',

        requiredJob = {
            ['police'] = {0, 1, 2, 3, 4},
        },
        isPaid = false,

        nameBlip = 'job_garage',
        showBlip = false,
        blipCoords = vector3(0.0, 0.0, 0.0),

        garageZone = { -- PolyZone
            vec2(1883.49, 3686.12),
            vec2(1866.77, 3712.9),
            vec2(1848.26, 3704.3),
            vec2(1864.46, 3675.74),
        },
        minZ = 29.0,
        maxZ = 39.0,
        
        allowedModels = {
            [joaat('police')] = true,
            [joaat('police2')] = true,
            [joaat('police3')] = true,
            [joaat('police4')] = true,
            [joaat('police5')] = true,
        },

        availableVehicles = {
            ['police'] = {
                model = 'police'
            },
            
            ['police2'] = {
                model = 'police2',
                gradesAccess = {1, 2, 3, 4}
            },
            
            ['police3'] = {
                model = 'police3',
                gradesAccess = {2, 3, 4}
            },

            ['police4'] = {
                model = 'police4',
                gradesAccess = {3, 4}
            },

            ['police5'] = {
                model = 'police5',
                gradesAccess = {4},
                customProperties = {
                    ['modEngine'] = 3,
                    ['modTurbo'] = true,
                    ['windowTint'] = 2,
                }
            },
        },

        menuPoint = vector3(1866.63, 3688.4, 34.27),

        garageData = {
            pedCoords = vector4(1873.61, 3691.09, 32.53, 238.32),
            vehicleCoords = vector4(1870.77, 3691.41, 32.38, 206.87),
            cameraCoords = vector3(1876.68, 3688.59, 33.9),
            cameraFov = 60.0,
        },

        spawnPoint = vector4(1873.36, 3682.98, 32.49, 119.93),
        checkAreaOccupied = true,
        returnVehiclePoint = vector4(1870.77, 3691.41, 33.38, 206.87),
    },


    --   █ ▄▀▄ ██▄   ▄▀  ▄▀▄ █▀▄ ▄▀▄ ▄▀  ██▀ ▄▀▀   ▄▀▄ █   █ █▄ █ ██▀ █▀▄   █ █ ██▀ █▄█ █ ▄▀▀ █   ██▀ ▄▀▀
    -- ▀▄█ ▀▄▀ █▄█   ▀▄█ █▀█ █▀▄ █▀█ ▀▄█ █▄▄ ▄██   ▀▄▀ ▀▄▀▄▀ █ ▀█ █▄▄ █▄▀   ▀▄▀ █▄▄ █ █ █ ▀▄▄ █▄▄ █▄▄ ▄██
    ['PaletoBayPolice'] = {
        label = "Police Garage",
        type = 'vehicle',

        requiredJob = {
            ['police'] = true,
            ['sheriff'] = true,
        },
        isPaid = false,

        nameBlip = 'job_garage',
        showBlip = false,
        blipCoords = vector3(0.0, 0.0, 0.0),

        garageZone = { -- PolyZone
            vec2(-463.86, 6043.0),
            vec2(-442.56, 6023.36),
            vec2(-463.51, 6002.4),
            vec2(-482.54, 6020.82)
        },
        minZ = 29.0,
        maxZ = 35.0,

        societyName = "society_police",
        vehiclesToOrder = {
            ['police'] = {label = "Police", model = "police", price = 50000},
            ['police2'] = {label = "Police 2", model = "police2", price = 70000},
            ['police3'] = {label = "Police 3", model = "police3", price = 65000},
        },
        platePrefix = "LSPD",
        plateFormat = "LSPD 999",

        menuPoint = vector3(-460.9, 6014.68, 31.48),

        garageData = {
            pedCoords = vector4(-468.35, 6022.44, 30.34, 234.34),
            vehicleCoords = vector4(-470.41, 6023.94, 29.95, 277.97),
            cameraCoords = vector3(-464.82, 6021.1, 32.1),
            cameraFov = 60.0,
        },

        spawnPoint = vector4(-462.76, 6018.75, 30.35, 314.31),
        checkAreaOccupied = true,
        returnVehiclePoint = vector3(-462.46, 6035.22, 31.34)
    },
    
    ['PillboxAmbulance'] = {
        ...
    },


    --  ██▄ █ █ ▄▀▀ █ █▄ █ ██▀ ▄▀▀ ▄▀▀   █▀▄ ▄▀▄ █▀▄ █▄▀ █ █▄ █ ▄▀ 
    --  █▄█ ▀▄█ ▄██ █ █ ▀█ █▄▄ ▄██ ▄██   █▀  █▀█ █▀▄ █ █ █ █ ▀█ ▀▄█
    ['VespucciBlvdParking'] = {
        label = "Vespucci Blvd Parking",
        type = 'vehicle',

        purchasePrice = 1100000,
        businessGarage = true,
        
        managementPoint = vector3(-281.09, -888.47, 31.32),

        requiredJob = nil,
        isPaid = false,
        isForRent = true,

        payStations = {
            vector3(-349.11, -874.61, 31.32)
        },
        pricePerDay = 1200, -- 1200$ per day
        priceForInfinity = 80000,
        rentDays = {1, 2, 3, 4, 5, 6, 7, -1},
        
        nameBlip = 'rent_garage:vehicle',
        showBlip = true,
        blipCoords = vector3(-335.97, -917.15, 46.34),

        garageZone = { -- PolyZone
            vec2(-261.06, -880.88),
            vec2(-304.71, -867.69),
            vec2(-364.54, -856.91),
            vec2(-364.52, -970.61),
            vec2(-274.68, -1003.16),
            vec2(-268.24, -984.5),
            vec2(-309.87, -968.94),
            vec2(-292.67, -922.81),
            vec2(-282.14, -925.86),
        },
        minZ = 26.0,
        maxZ = 40.0,

        parkingSpaces = {
            [1] = {coords = vector4(-343.7, -875.52, 29.43, 347.93), camCoords = vector3(-344.69, -880.17, 32.23)},
            [2] = {coords = vector4(-339.98, -876.38, 29.43, 347.56), camCoords = vector3(-341.01, -881.02, 32.23)},
            [3] = {coords = vector4(-336.38, -876.94, 29.43, 347.72), camCoords = vector3(-337.39, -881.59, 32.23)},
            ...
        }
    },
}

---@class HousingGarages Garages belonging to houses
Config.HousingGarages = {
    ['HouseGarage:1'] = { -- SMALL GARAGE (2 VEHICLES)
        routingBucket = 10001,

        zoneSize = 8.0,
        houseCoords = vector4(1274.34, -672.64, 64.92, 272.98),
        exitCoords = vector4(178.74, -1006.61, -99.0, 89.23),

        parkingSpaces = {
            [1] = {coords = vector4(175.26, -1004.05, -100.02, 179.98)},
            [2] = {coords = vector4(171.35, -1004.15, -100.02, 178.67)},
        }
    },
    ['HouseGarage:2'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:3'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:4'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:5'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:6'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:7'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:8'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:9'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ['HouseGarage:10'] = { -- SMALL GARAGE (2 VEHICLES)
        ...
    },
    ...
}

Last updated