HRScripts Documentation
  • HRScripts Documentation
  • Resources
    • 📚HRLib
      • Classes
        • HRLibConfig
        • HRLibClientFPlayer
        • HRLibServerFPlayer
        • HRLibClientIPlayer
        • HRLibServerIPlayer
        • HRLibCloseIPlayer
        • HRLibCloseFPlayer
        • HRLibBlipOptions
        • HRLibBlipForCoordOptions
        • HRLibBlipForEntityOptions
        • HRLibBlipForAreaOptions
        • HRLibBlipForPickupOptions
        • HRLibInputDialogueTextOptions
        • HRLibVehicleProperties
      • Modules
        • Bridge
          • Shared
          • Client
          • Server
        • Callbacks
          • Shared
          • Client
          • Server
        • Closest
          • Client
        • Controls Disable
          • Client
        • CreateBlip
          • Client
        • DiscordMsg
          • Server
        • DoesIdExist
          • Shared
        • FPlayer
          • Shared
          • Client
          • Server
        • GetPedsInVehicle
          • Client
        • GetPedWeapons
          • Client
        • GetPlayers
          • Client
        • GetVehicleDoorStatus
          • Client
        • GetVehicleFromPlate
          • Client
        • Interface
          • Client
          • Server
        • IPlayer
          • Client
          • Server
        • PlayerIdentifiers
          • Server
        • RadomValueWithNoRepetition
          • Shared
        • RegCommand
          • Client
          • Server
        • Resource
          • Shared
          • Server
        • SpawnVehicle
          • Shared
        • Streaming
          • Client
        • string
          • Shared
        • table
          • Shared
        • ToVector
          • Shared
        • TrackingEntities
          • Client
            • Functions
            • Events
        • Values
          • Shared
          • Client
        • VehicleProperties
          • Client
          • Server
        • SetDefaultPedVariation
          • Shared
    • HRGarages
      • Classes
        • HRGaragesConfig
        • HRGaragesVehicleInfo
        • HRGaragesClientFunctions
      • Exports
        • Server
    • 📦HRStorages
      • Exports
        • Client
        • Server
      • Callbacks
      • Commands
    • 🧹HRComserv
    • 🥷HRHostage
    • HRAdminMenu
      • Events
      • Exports
        • Client
        • Server
      • State Bags
    • ☑️HRWhitelist
    • HRExtraCommands
    • 🚦HRRealisticTraffic
    • 🗣️HRNPCDialogue
      • Classes
Powered by GitBook
On this page
  • Preview
  • Purchase
  • Dependencies
  • Installation
  • Config
  1. Resources

HRGarages

Advanced garages system with impound garages and rent-a-car extras with ESX/QBCore support

PreviousSharedNextClasses

Last updated 21 days ago

Preview

Purchase

Dependencies

Installation

  • Configure HRLib, oxmysql and the framework for your needs

  • HRGarages is pre-configured script but you'll need to have a look through its config files, found in HRGarages/config/ folder

  • Add this to your server.cfg

    start oxmysql
    start HRLib
    start framework # es_extended or "qb-core"
    start HRGarages
  • Restart your server and enjoy the script

Config

HRGarages config is separated in couple files for better definition of the script's features configs. You can find these files in HRGarages/config/ folder. Very important to know is when you have custom cars, you have to add your own images for the cars in the rent-a-car feature if any of them is with custom model. You can do this by putting .webp images in HRGarages/config/customImages/ folder.

local config <const> = {}

config.commands = {
    enable = true,
    commandsSettings = {
        giveVehicle = {
            enable = true,
            isRestricted = true,
            name = 'giveVehicle',
            description = 'Give vehicle to player',
            suggestions = {
                {
                    name = 'playerId',
                    help = 'Target player server Id'
                },
                {
                    name = 'vehicleModel',
                    help = 'The vehicle model (spawn code)'
                },
                {
                    name = 'vehiclePlate',
                    help = 'The vehicle\'s plate, must be 8 characters long, not more or less (not necessary, default - random plate)'
                },
                {
                    name = 'garageIndex',
                    help = 'The garage where to put the vehicle in (not necessary, default - random garage)'
                }
            }
        },
        removeVehicle = { -- Remove vehicle from garage
            enable = true,
            isRestricted = true,
            name = 'removeVehicle',
            description = 'Remove vehicle from someone\'s garage',
            suggestions = {
                {
                    name = 'vehiclePlate',
                    help = 'The target vehicle\'s plate'
                }
            }
        }
    }
}
local config <const> = {}

config.impoundGarages = {
    impoundFee = 500,
    feeAccount = 'bank',
    blipSettings = {
        blipLabel = 'Наказателен Паркинг',
        blipSprite = 50,
        blipScale = 0.8,
        blipColor = 1,
        blipDisplay = 2
    },
    garagesCoords = {
        { -- The positions are the positions of davispd's impound
            pedPosition = vector4(407.3775, -1624.6903, 29.2919, 229.4537),
            spawnCoords = {
                vector4(419.4937, -1629.6766, 28.7694, 141.8549),
                vector4(416.9567, -1627.7761, 28.7691, 140.8800),
                vector4(420.7558, -1635.7812, 28.7695, 90.0989),
                vector4(420.2980, -1638.9332, 28.7694, 89.4561),
                vector4(420.0670, -1641.9648, 28.7682, 90.4215),
                vector4(417.9238, -1645.8817, 28.7692, 50.1330),
                vector4(409.5179, -1639.7175, 28.7694, 50.1143),
                vector4(411.7224, -1637.4547, 28.7677, 49.5121),
                vector4(410.9884, -1656.1366, 28.7684, 320.7554),
                vector4(408.5130, -1654.0081, 28.7674, 320.4073),
                vector4(406.2133, -1651.8816, 28.7680, 321.2579),
                vector4(403.6921, -1650.1006, 28.7698, 319.3674),
                vector4(401.2584, -1647.9384, 28.7686, 321.0678),
                vector4(398.8898, -1645.9050, 28.7681, 320.1758),
                vector4(396.4982, -1643.9979, 28.7678, 319.6743)
            },
        },
        {
            pedPosition = vector4(-997.5369, -2609.1375, 34.1051, 61.4905),
            spawnCoords = {
                vector4(-1036.0671, -2594.7007, 33.6415, 239.7062),
                vector4(-1041.9172, -2604.7439, 34.7515, 239.8721),
                vector4(-1041.9172, -2604.7439, 34.7515, 239.8721),
                vector4(-1043.8073, -2607.8970, 35.2286, 239.8059),
                vector4(-1045.6228, -2611.1833, 35.6566, 242.0721),
                vector4(-1047.4730, -2614.4690, 35.9615, 240.4093),
                vector4(-1049.4044, -2617.7058, 36.0810, 240.4273),
                vector4(-1051.3844, -2621.1892, 36.0819, 238.7776),
                vector4(-1053.3983, -2624.7075, 36.0808, 239.7022),
                vector4(-1055.1411, -2627.9231, 36.0809, 240.7404),
                vector4(-1050.9165, -2634.1196, 36.0807, 330.4901),
                vector4(-1045.8861, -2636.8496, 36.0816, 331.4610),
                vector4(-1042.6552, -2638.9565, 36.0816, 329.7005),
                vector4(-1039.1205, -2640.5459, 36.0813, 329.0218),
                vector4(-1036.0254, -2642.4661, 36.0815, 329.2130),
                vector4(-1032.8802, -2644.4602, 36.0807, 330.1822),
                vector4(-1027.5354, -2647.1790, 36.0808, 329.9557),
                vector4(-1020.0037, -2648.1252, 36.0807, 59.1351),
                vector4(-1017.9937, -2645.0789, 36.0802, 59.2972),
                vector4(-1016.4663, -2641.2429, 36.0812, 60.2956),
                vector4(-1014.5867, -2637.9485, 36.0804, 61.3253),
                vector4(-1012.6148, -2634.7622, 35.9692, 59.9850),
                vector4(-1010.6698, -2631.4111, 35.6602, 59.4836),
                vector4(-1008.7834, -2628.1858, 35.2374, 60.3894),
                vector4(-1007.1145, -2624.9565, 34.7649, 59.8900),
                vector4(-1005.0043, -2621.5977, 34.2634, 59.6823),
                vector4(-990.3429, -2596.3906, 34.2909, 59.7864),
                vector4(-988.6157, -2593.0942, 34.7629, 59.1846),
                vector4(-986.8103, -2589.9231, 35.2353, 59.6966),
                vector4(-984.6647, -2586.6897, 35.6740, 59.7913),
                vector4(-983.0892, -2583.2856, 35.9689, 60.2164),
                vector4(-981.1096, -2580.1484, 36.0817, 61.1329),
                vector4(-979.1969, -2576.8584, 36.0813, 60.7341),
                vector4(-977.2566, -2573.2073, 36.0814, 60.6374),
                vector4(-975.1840, -2570.1863, 36.0806, 60.1721),
                vector4(-979.5862, -2564.1074, 36.0814, 150.6615),
                vector4(-984.6801, -2561.2854, 36.0803, 150.1661),
                vector4(-988.0023, -2559.4822, 36.0808, 150.6355),
                vector4(-991.0923, -2557.3784, 36.0819, 149.6764),
                vector4(-994.3614, -2555.3557, 36.0806, 150.0310),
                vector4(-997.5494, -2553.7366, 36.0804, 150.0156),
                vector4(-1010.4410, -2549.7795, 36.0813, 239.5906),
                vector4(-1012.2613, -2553.1436, 36.0803, 239.5801),
                vector4(-1013.7484, -2556.6387, 36.0806, 240.5843),
                vector4(-1015.9405, -2560.0564, 36.0814, 241.2577),
                vector4(-1017.8153, -2563.3386, 35.9638, 238.7151),
                vector4(-1019.6935, -2566.4441, 35.6764, 240.0490),
                vector4(-1021.4668, -2569.7725, 35.2512, 239.9813),
                vector4(-1023.5087, -2573.1062, 34.7443, 240.8344),
                vector4(-1029.4121, -2583.2139, 33.6442, 240.5854),
                vector4(-1032.8279, -2587.5667, 33.5808, 149.9727),
                vector4(-1026.3269, -2631.1487, 36.0819, 60.3608),
                vector4(-1024.6825, -2627.9026, 36.1887, 61.8188),
                vector4(-1022.7653, -2624.3979, 36.5100, 61.4683),
                vector4(-1020.8685, -2621.1584, 36.9404, 61.1954),
                vector4(-1018.7793, -2617.7974, 37.4556, 59.8752),
                vector4(-1017.1857, -2614.5049, 37.9135, 61.4325),
                vector4(-1015.4185, -2611.3396, 38.2855, 62.0851),
                vector4(-1013.4188, -2607.7563, 38.5135, 59.8955),
                vector4(-1011.1500, -2603.8184, 38.5812, 61.7686),
                vector4(-1008.8450, -2600.1765, 38.5809, 60.5307),
                vector4(-1006.8692, -2596.5051, 38.5249, 60.3360),
                vector4(-1004.6511, -2592.7224, 38.2919, 58.7827),
                vector4(-1002.6298, -2589.6340, 37.9152, 60.2502),
                vector4(-1001.0703, -2586.1936, 37.4431, 60.1256),
                vector4(-998.9055, -2582.9937, 36.9406, 56.9936),
                vector4(-997.0244, -2579.6938, 36.5058, 57.2840),
                vector4(-995.3116, -2576.2146, 36.1944, 59.0174),
                vector4(-993.0876, -2573.2109, 36.0807, 60.6300),
                vector4(-1003.7957, -2567.1321, 36.0827, 239.0772),
                vector4(-1005.5946, -2570.4246, 36.2016, 240.0495),
                vector4(-1007.3491, -2573.5938, 36.4941, 242.8657),
                vector4(-1009.3415, -2576.9468, 36.9389, 241.6693),
                vector4(-1009.3415, -2576.9468, 36.9389, 241.6693),
                vector4(-1013.2113, -2583.4050, 37.9021, 241.9596),
                vector4(-1015.2641, -2586.6960, 38.2993, 240.7301),
                vector4(-1017.1455, -2590.1094, 38.5125, 242.2208),
                vector4(-1024.6184, -2601.6292, 38.5058, 239.7758),
                vector4(-1025.5967, -2605.3992, 38.2896, 239.7485),
                vector4(-1027.7299, -2608.4958, 37.9054, 237.1125),
                vector4(-1029.4259, -2611.9224, 37.4243, 239.3226),
                vector4(-1031.4971, -2615.0906, 36.9329, 237.0353),
                vector4(-1033.2600, -2618.4114, 36.5051, 238.1352),
                vector4(-1034.9653, -2621.7273, 36.2016, 239.4849),
                vector4(-1037.1334, -2624.9343, 36.0816, 238.6463),
            },
        },
    }
}
local config <const> = {}

config.jobGarages = {
    blip = {
        scale = 0.8,
        displayId = 2,
        asShortRange = true,
    },
    garagesPositions = {
        {
            blipLabel = 'LSPD Garage',
            blipSprite = 830,
            blipColor = 3,
            includeImpoundGarage = true,
            jobs = {
                'police'
            },
            vehiclesList = {
                { vehicle = 'police', minGrade = 2 },
                { vehicle = 'police2', minGrade = 2 },
                { vehicle = 'police3', minGrade = 2 },
                { vehicle = 'police4', minGrade = 2 },
                { vehicle = 'police5', minGrade = 2 },
            },
            coords = {
                impoundBlipWaypointCoords = vector2(425.1, -979.5), -- It only matters to enter its value when includeImpoundGarage is true, it answers to the position of the waypoint when a player wants to see where its impounded vehicle is while its vehicle is in the job impound garage
                pedCoords = vector4(459.0820, -1017.1157, 27.1510, 92.1553),
                storeVehicle = vector3(449.1385, -1017.2701, 28.0165),
                spawnCoords = {
                    vector4(462.2119, -1015.1483, 27.5545, 92.0322),
                    vector4(462.0640, -1019.4016, 27.5717, 91.4052),
                    vector4(446.0865, -1025.1759, 28.1097, 4.4707),
                    vector4(442.7256, -1025.6680, 28.1767, 3.2357),
                    vector4(438.7279, -1025.7568, 28.2453, 2.9294),
                    vector4(435.0581, -1026.0345, 28.3139, 1.2065),
                    vector4(431.2184, -1026.6810, 28.3892, 2.7038),
                    vector4(427.3548, -1026.9606, 28.4574, 3.2657)
                }
            }
        },
        {
            blipLabel = 'Hospital Garage',
            blipSprite = 830,
            blipColor = 1,
            jobs = {
                'ambulance'
            },
            vehiclesList = {
                { vehicle = 'ambulance', minGrade = 2 },
            },
            coords = {
                pedCoords = vector4(294.1237, -597.9418, 42.3017, 67.4052),
                storeVehicle = vector3(287.3814, -597.8590, 42.6540),
                spawnCoords = {
                    vector4(295.6890, -604.4202, 43.0926, 70.7867),
                    vector4(294.7276, -607.4980, 43.1167, 70.6208),
                    vector4(293.2164, -610.1205, 43.1302, 68.7475)
                }
            }
        }
    }
}
local config <const> = {}

config.language = 'en'

config.pedInteraction = 'target' -- 'target' or 'key'

config.interactionSettings = {
    target = {
        distance = 5.0,
        translation = {
            optionLabel = 'Open garage'
        }
    },
    key = {
        distance = 1.0,
        keyToInteract = 'E',
        translation = {
            textUIDescription = '[%s] - Garage' -- You must have the `%s` in the string, otherwise there will be an error!
        }
    }
}

config.garagePeds = {
    'a_m_y_stbla_02',
    'a_m_y_smartcaspat_01'
}

config.garagesBlip = {
    blipLabel = 'Garage',
    blipSprite = 357,
    blipScale = 0.8,
    blipColor = 5,
    blipDisplay = 2,
    asShortRange = true
}

config.storePoints = {
    markerType = 36,
    showInteractDistance = 20.0,
    showTextUIDistance = 3.0,
    color = { r = 255, g = 0, b = 0 },
    alpha = 1000.0,
    interactKey = 'E',
    textUILabel = '[%s] - To store the vehicle' -- The %s is important (it is being replaced with the interact key)
}
local config <const> = {}

config.rentACar = {
    enable = true,
    finesAccount = 'bank',
    rentACarAccount = 'bank',
    cars = {
        {
            model = 'asbo',
            price = 200,
            fine_markup = 100,
            finePer10PercentDamage = 100
        },
        {
            model = 'issi2',
            price = 350,
            fine_markup = 200,
            finePer10PercentDamage = 150
        },
        {
            model = 'blista',
            price = 250,
            fine_markup = 100,
            finePer10PercentDamage = 200
        },
        {
            model = 'carbonizzare',
            price = 1000,
            fine_markup = 300,
            finePer10PercentDamage = 220
        },
        {
            model = 'comet2',
            price = 900,
            fine_markup = 300,
            finePer10PercentDamage = 300
        },
        {
            model = 'comet6',
            price = 2000,
            fine_markup = 500,
            finePer10PercentDamage = 400
        }
    }
}

You can purchase HRGarages from our and also join our server to follow for discounts

/ framework

Purchase from our tebex store and move the script in your resources folder

Download the

webstore
discord
HRLib
oxmysql
ESX Legacy
QBCore
HRGarages
dependencies