Aller au contenu principal
  • Livraison numérique instantanée
  • Mises à jour à vie sur les produits sélectionnés
  • Choisi par les propriétaires de serveurs
FiveMX
Boutique
Serveurs completsPacksNouveautés
FiveMX

Commencez à construire votre serveur aujourd'hui.

Ressources FiveM sélectionnées, livraison instantanée, mods gratuits de départ et guides pratiques dans une marketplace apaisée.

Parcourir la boutiquesupport@fivemx.com

Boutique

  • Boutique
  • Mods FiveM
  • Tous les produits
  • Mods gratuits
  • Meilleurs scripts & mods
  • Scripts FiveM

Frameworks

  • Scripts QBCore
  • Scripts ESX
  • QBox
  • Standalone

Communauté

  • Blog
  • Assistance
  • Créateurs
  • Affiliation

Mentions légales

  • Politique de confidentialité
  • Conditions d'utilisation
  • Politique de remboursement
  • Livraison numérique
  • Politique des cookies
  • Conformité RGPD
  • DMCA
  • Mentions légales
  • Charte éditoriale

Templates Serveur

  • Template Serveur QBCore
  • Template Serveur ESX
  • Template Serveur NoPixel
  • Packs Serveur
  • Templates Gratuits
  • Alternative à Tebex
© 2026 FiveMX. Tous droits réservés.·FiveMX n'est pas affilié à Rockstar Games, Take-Two Interactive ou CFX.re. Toutes les marques sont la propriété de leurs détenteurs respectifs.
DiscordDocs
  1. Accueil
  2. Boutique
  3. Garages & Industrial

11 images produit disponibles.

Garages & Industrial
Compatibilité:
ESX
QBCore
QBOX
Standalone
CD Garage
Processus de vérification
16,38 €1 vendus

Paiement sécurisé

Carte, Klarna et wallets pris en charge via Stripe. D'autres moyens de paiement locaux peuvent apparaître selon votre région.

Accès immédiat aux fichiers après le paiementAssistance et politique de remboursement visibles avant le paiement
Contacter le support avant achatLire la politique de remboursement
Accès instantané
Chiffré SSL
Carte, Klarna, wallets
Frameworksesx, qbcore, qbox, standalone
Installation

Requires a FiveM server, ESX or QBCore, access to server resources, and permission to restart the resource after configuration.

RequirementsPublié sur cette page
PreviewDisponible

Descriptif

Video preview

https://www.youtube.com/watch?v=nwHE1_pYNPA

The main config

Config = {}
Config.Keys={['ESC']=322,['F1']=288,['F2']=289,['F3']=170,['F5']=166,['F6']=167,['F7']=168,['F8']=169,['F9']=56,['F10']=57,['~']=243,['1']=157,['2']=158,['3']=160,['4']=164,['5']=165,['6']=159,['7']=161,['8']=162,['9']=163,['-']=84,['=']=83,['BACKSPACE']=177,['TAB']=37,['Q']=44,['W']=32,['E']=38,['R']=45,['T']=245,['Y']=246,['U']=303,['P']=199,['[']=39,[']']=40,['ENTER']=18,['CAPS']=137,['A']=34,['S']=8,['D']=9,['F']=23,['G']=47,['H']=74,['K']=311,['L']=182,['LEFTSHIFT']=21,['Z']=20,['X']=73,['C']=26,['V']=0,['B']=29,['N']=249,['M']=244,[',']=82,['.']=81,['LEFTCTRL']=36,['LEFTALT']=19,['SPACE']=22,['RIGHTCTRL']=70,['HOME']=213,['PAGEUP']=10,['PAGEDOWN']=11,['DELETE']=178,['LEFTARROW']=174,['RIGHTARROW']=175,['TOP']=27,['DOWNARROW']=173,['NENTER']=201,['N4']=108,['N5']=60,['N6']=107,['N+']=96,['N-']=97,['N7']=117,['N8']=61,['N9']=118,['UPARROW']=172,['INSERT']=121}
function L(cd) if Locales[Config.Language][cd] then return Locales[Config.Language][cd] else print('Locale is nil ('..cd..')') end end


--███████╗██████╗  █████╗ ███╗   ███╗███████╗██╗    ██╗ ██████╗ ██████╗ ██╗  ██╗
--██╔════╝██╔══██╗██╔══██╗████╗ ████║██╔════╝██║    ██║██╔═══██╗██╔══██╗██║ ██╔╝
--█████╗  ██████╔╝███████║██╔████╔██║█████╗  ██║ █╗ ██║██║   ██║██████╔╝█████╔╝ 
--██╔══╝  ██╔══██╗██╔══██║██║╚██╔╝██║██╔══╝  ██║███╗██║██║   ██║██╔══██╗██╔═██╗ 
--██║     ██║  ██║██║  ██║██║ ╚═╝ ██║███████╗╚███╔███╔╝╚██████╔╝██║  ██║██║  ██╗
--╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝ ╚══╝╚══╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝


--WHAT DOES 'auto_detect' DO?
--The 'auto_detect' feature automatically identifies your framework and SQL database resource, and applies the appropriate default settings.

Config.Framework = 'auto_detect' --[ 'auto_detect' / 'other' ]   If you select 'auto_detect', only ESX and QBCore frameworks will be detected. Use 'other' for custom frameworks.
Config.Database = 'auto_detect' --[ 'auto_detect' ]   If you select 'auto_detect', only MySQL, GHMattimysql, and Oxmysql SQL database resources will be detected.
Config.AutoInsertSQL = false --Would you like the script to insert the necessary SQL tables into your database automatically? If you have already done this, please set it to false.
Config.Notification = 'qbcore' --[ 'auto_detect' / 'other' ]   If you select 'auto_detect', only ESX, QBCore, okokNotify, ps-ui and ox_lib notifications will be detected. Use 'other' for custom notification resources.
Config.Language = 'PT' --[ 'EN' / 'CZ' / 'DE' / 'DK' / 'ES' / 'FI' / 'FR' / 'NL' / 'PT' / 'SE' / 'SK' ]   You can add your own locales to locales.lua, but be sure to update the Config.Language to match it.

Config.FrameworkTriggers = {
    esx = { --If you have modified the default event names in the es_extended resource, change them here.
        resource_name = 'es_extended',
        main = 'esx:getSharedObject',
        load = 'esx:playerLoaded',
        job = 'esx:setJob'
    },
    qbcore = { --If you have modified the default event names in the qb-core resource, change them here.
        resource_name = 'qb-core',
        main = 'QBCore:GetObject',
        load = 'QBCore:Client:OnPlayerLoaded',
        job = 'QBCore:Client:OnJobUpdate',
        gang = 'QBCore:Client:OnGangUpdate',
        duty = 'QBCore:Client:SetDuty'
    }
}


--██╗███╗   ███╗██████╗  ██████╗ ██████╗ ████████╗ █████╗ ███╗   ██╗████████╗
--██║████╗ ████║██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝██╔══██╗████╗  ██║╚══██╔══╝
--██║██╔████╔██║██████╔╝██║   ██║██████╔╝   ██║   ███████║██╔██╗ ██║   ██║   
--██║██║╚██╔╝██║██╔═══╝ ██║   ██║██╔══██╗   ██║   ██╔══██║██║╚██╗██║   ██║   
--██║██║ ╚═╝ ██║██║     ╚██████╔╝██║  ██║   ██║   ██║  ██║██║ ╚████║   ██║   
--╚═╝╚═╝     ╚═╝╚═╝      ╚═════╝ ╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝


Config.PlateFormats = 'mixed' --[ 'trimmed' /  'with_spaces' / 'mixed' ] CHOOSE CAREFULLY! Read our documentation website for more info on this if you are unsure! [https://docs.codesign.pro/paid-scripts/garage#step-6-vehicle-plate-format].
Config.UsingOnesync = true --Do you use OneSync legacy/infinity?
Config.IdentifierType = 'license' --[ 'steamid' / 'license' ] Choose the identifier type that your server uses.
Config.UseFrameworkDutySystem = false --Do you want to use your frameworks (esx/qbcore) built-in duty system?
Config.Debug = false --To enable debug prints.


--███╗   ███╗ █████╗ ██╗███╗   ██╗
--████╗ ████║██╔══██╗██║████╗  ██║
--██╔████╔██║███████║██║██╔██╗ ██║
--██║╚██╔╝██║██╔══██║██║██║╚██╗██║
--██║ ╚═╝ ██║██║  ██║██║██║ ╚████║
--╚═╝     ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝


Config.Keys = {
    QuickChoose_Key = Config.Keys['E'], --The key to open the quick garage (default E).
    EnterGarage_Key = Config.Keys['H'], --The key to open the inside garage (default H).
    StoreVehicle_Key = Config.Keys['G'], --The key to store your vehicle (default G).
    StartHotwire_Key = Config.Keys['E'] --The key to start hotwiring a vehicle (default E).
}

Config.UniqueGarages = true --Do you want to only be able to get your car from the garage you last put it in?
Config.SaveAdvancedVehicleDamage = true --Do you want to save poped tyres, broken doors and broken windows and re-apply them all when spawning a vehicle?
Config.UseExploitProtection = false --Do you want to enable the cheat engine protection to check the vehicle hashes when a vehicle is stored?
Config.ResetGarageState = false --Do you want the in_garage state of all vehicles to be reset when the script starts/restarts?


--██╗   ██╗███████╗██╗  ██╗██╗ ██████╗██╗     ███████╗███████╗    ██████╗  █████╗ ████████╗ █████╗ 
--██║   ██║██╔════╝██║  ██║██║██╔════╝██║     ██╔════╝██╔════╝    ██╔══██╗██╔══██╗╚══██╔══╝██╔══██╗
--██║   ██║█████╗  ███████║██║██║     ██║     █████╗  ███████╗    ██║  ██║███████║   ██║   ███████║
--╚██╗ ██╔╝██╔══╝  ██╔══██║██║██║     ██║     ██╔══╝  ╚════██║    ██║  ██║██╔══██║   ██║   ██╔══██║
-- ╚████╔╝ ███████╗██║  ██║██║╚██████╗███████╗███████╗███████║    ██████╔╝██║  ██║   ██║   ██║  ██║
--  ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═╝ ╚═════╝╚══════╝╚══════╝╚══════╝    ╚═════╝ ╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═╝


Config.VehiclesData = {
    ENABLE = false, --Do you want to allow the script to grab vehicles data ( ESX: from the 'vehicles' table in the database / QBCORE: from the shared.lua ).
    -- Read our documentation website for more info - https://docs.codesign.pro/paid-scripts/garage#vehicles-data.
    --This will be force enabled (at the bottom of this file) if you use QBCore.

    Vehicledatabase_Tablenames = { --FOR ESX ONLY. The 'vehicles' database table is common in esx servers, but we will repurpose this to store information for us to use on the garage UI's.
        [1] = 'vehicles', --As some people use multiple vehicles tables for donator vehicles, emergency vehicles etc, extra tables are optional for those people.
        --[2] = 'vehicles2',
        --[3] = 'add_more_here',
    },
}

Config.GarageTax = {
    ENABLE = false, --Do you want to enable the vehicle tax system? (each vehicle will be taxed 1 time per server restart).
    method = 'default', --[ 'default' / 'vehicles_data' ] Read below for more info on each on these 2 options.
    default_price = 1000, --If 'default' method is chosen, then it will be a set price to return any vehicle. (eg., $500 fee).
    vehiclesdata_price_multiplier = 1 --If 'vehicles_data' method is chosen, the return vehicle price will be a % of the vehcles value. (eg., 1% of a $50,000 car would be a $500 fee).
}

Config.Return_Vehicle = { --This is the price players pay for their vehicle to be returned to their garage if it has despawned or been blown up.
    ENABLE = true, --Do you want to allow players to return their vehicle if they are destroyed or despawned?
    method = 'default', --[ 'default' / 'vehicles_data' ] Read below for more info on each on these 2 options.
    default_price = 2500, --If 'default' method is chosen, then it will be a set price to return any vehicle. (eg., $500 fee).
    vehiclesdata_price_multiplier = 1 --If 'vehicles_data' method is chosen, the return vehicle price will be a % of the vehcles value. (eg., 1% of a $50,000 car would be a $500 fee).
}


--██╗███╗   ███╗██████╗  ██████╗ ██╗   ██╗███╗   ██╗██████╗ 
--██║████╗ ████║██╔══██╗██╔═══██╗██║   ██║████╗  ██║██╔══██╗
--██║██╔████╔██║██████╔╝██║   ██║██║   ██║██╔██╗ ██║██║  ██║
--██║██║╚██╔╝██║██╔═══╝ ██║   ██║██║   ██║██║╚██╗██║██║  ██║
--██║██║ ╚═╝ ██║██║     ╚██████╔╝╚██████╔╝██║ ╚████║██████╔╝
--╚═╝╚═╝     ╚═╝╚═╝      ╚═════╝  ╚═════╝ ╚═╝  ╚═══╝╚═════╝ 


Config.Impound = {
    ENABLE = true, --Do you want to use the built in impound system?
    chat_command = 'apreender', --Customise the chat command to impound vehicles.

    Authorized_Jobs = { --Only jobs inside this table can impound vehicles or unimpound vehicles.
        ['police'] = true,
        ['sheriff'] = true,
        --['add_more_here'] = true,
    },

    Impound_Fee = { --This is the price players pay for their vehicle to be unimpounded.
        method = 'default', --[ 'default' / 'vehicles_data' ] Read below for more info on each of these 2 options. (Config.VehiclesData.ENABLE must be enabled if you want to use 'vehicles_data').
        default_price = 5000, --If 'default' method is chosen, then it will be a set price to unimpounded any vehicle. (eg., $1000 fee).
        vehiclesdata_price_multiplier = 1 --If 'vehicles_data' method is chosen, the unimpounded vehicle price will be a % of the vehcles value. (eg., 1% of a $50,000 car would be a $500 fee).
    }
}


--████████╗██████╗  █████╗ ███╗   ██╗███████╗███████╗███████╗██████╗     ██╗   ██╗███████╗██╗  ██╗██╗ ██████╗██╗     ███████╗
--╚══██╔══╝██╔══██╗██╔══██╗████╗  ██║██╔════╝██╔════╝██╔════╝██╔══██╗    ██║   ██║██╔════╝██║  ██║██║██╔════╝██║     ██╔════╝
--   ██║   ██████╔╝███████║██╔██╗ ██║███████╗█████╗  █████╗  ██████╔╝    ██║   ██║█████╗  ███████║██║██║     ██║     █████╗  
--   ██║   ██╔══██╗██╔══██║██║╚██╗██║╚════██║██╔══╝  ██╔══╝  ██╔══██╗    ╚██╗ ██╔╝██╔══╝  ██╔══██║██║██║     ██║     ██╔══╝  
--   ██║   ██║  ██║██║  ██║██║ ╚████║███████║██║     ███████╗██║  ██║     ╚████╔╝ ███████╗██║  ██║██║╚██████╗███████╗███████╗
--   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚═╝     ╚══════╝╚═╝  ╚═╝      ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═╝ ╚═════╝╚══════╝╚══════╝


Config.TransferVehicle = {
    ENABLE = true, --Do you want to use the built features to transfer vehicles to another player?
    chat_command = 'transferir', --Customise the chat command to transfer vehicles.

    Transfer_Blacklist = { --Vehicles inside this table will not be able to be transfered to another player. Use the vehicles spawn name. eg., `adder`.
    [`pandemraptor`] = true,
    [`rr21shelbyf150`] = true,
    [`19gt500`] = true,
    [`sclgt63s`] = true, 
    [`rrmaybach`] = true,
    [`911turbos`] = true,
    [`rrr34w`] = true,

    [`rmodx6`] = true,
    [`panameramansory`] = true,
    [`r35`] = true,
    [`f458`] = true,
    [`pistas`] = true,
    [`rmodskyline34`] = true,

    [`ferrari812`] = true,
    [`812mnsry`] = true,
    [`pgt3`] = true,
    [`rrvulcan`] = true,

    [`lamks`] = true,
    [`rmodveneno`] = true,
    [`lamborghinihuracan`] = true,
    [`jesko2020`] = true,
    [`aperta`] = true,
    [`rrwchiron`] = true,
    [`rrlavoiture`] = true,
    [`rr20amggt`] = true,
    [`bmwi8`] = true,
    [`revuelto`] = true,

    [`r6`] = true,
    [`gs1200`] = true,
    [`h2carb`] = true,

    [`supervolito2`] = true,
    [`swift2`] = true,
    [`volatus`] = true,

    [`zentorno`] = true,

    [`zlay_gtrkuhl`] = true,
    [`gtrmosca`] = true,
        --[`add_more_here`] = true,
    }
}


--████████╗██████╗  █████╗ ███╗   ██╗███████╗███████╗███████╗██████╗      ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗
--╚══██╔══╝██╔══██╗██╔══██╗████╗  ██║██╔════╝██╔════╝██╔════╝██╔══██╗    ██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝
--   ██║   ██████╔╝███████║██╔██╗ ██║███████╗█████╗  █████╗  ██████╔╝    ██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗  
--   ██║   ██╔══██╗██╔══██║██║╚██╗██║╚════██║██╔══╝  ██╔══╝  ██╔══██╗    ██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝  
--   ██║   ██║  ██║██║  ██║██║ ╚████║███████║██║     ███████╗██║  ██║    ╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗
--   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚═╝     ╚══════╝╚═╝  ╚═╝     ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝


Config.TransferGarage = {
    ENABLE = true, --Do you want to allow players to pay for their vehicles to be transferred to another garage?
    transfer_fee = 5000 --The cost per vehicle garage transfer ^.
}


--██████╗ ██████╗ ██╗██╗   ██╗ █████╗ ████████╗███████╗     ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗███████╗
--██╔══██╗██╔══██╗██║██║   ██║██╔══██╗╚══██╔══╝██╔════╝    ██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝██╔════╝
--██████╔╝██████╔╝██║██║   ██║███████║   ██║   █████╗      ██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗  ███████╗
--██╔═══╝ ██╔══██╗██║╚██╗ ██╔╝██╔══██║   ██║   ██╔══╝      ██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝  ╚════██║
--██║     ██║  ██║██║ ╚████╔╝ ██║  ██║   ██║   ███████╗    ╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗███████║
--╚═╝     ╚═╝  ╚═╝╚═╝  ╚═══╝  ╚═╝  ╚═╝   ╚═╝   ╚══════╝     ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝


Config.PrivateGarages = {
    ENABLE = false, --Do you want to use the built private garages?
    create_chat_command = 'privategarage', --Customise the chat command to create a private garage to sell to a player.
    delete_chat_command = 'privategaragedelete', --Customise the chat command to delete a players private garage.

    Authorized_Jobs = { --Only jobs inside this table can use the command above.
        ['realestate'] = true,
        --['add_more_here'] = true,
    }
}


--██████╗ ██████╗  ██████╗ ██████╗ ███████╗██████╗ ████████╗██╗   ██╗     ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗███████╗
--██╔══██╗██╔══██╗██╔═══██╗██╔══██╗██╔════╝██╔══██╗╚══██╔══╝╚██╗ ██╔╝    ██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝██╔════╝
--██████╔╝██████╔╝██║   ██║██████╔╝█████╗  ██████╔╝   ██║    ╚████╔╝     ██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗  ███████╗
--██╔═══╝ ██╔══██╗██║   ██║██╔═══╝ ██╔══╝  ██╔══██╗   ██║     ╚██╔╝      ██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝  ╚════██║
--██║     ██║  ██║╚██████╔╝██║     ███████╗██║  ██║   ██║      ██║       ╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗███████║
--╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═╝   ╚═╝      ╚═╝        ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝


Config.PropertyGarages = {
    ENABLE = false, --Do you want to use built in property garages?
    only_showcars_inpropertygarage = false --Do you want the inside garage to only show the vehicles which are currently stored in a property garage. (this works for inside garage only, even with this enabled all the cars will show in the outside UI).
}


--███████╗ █████╗ ██╗  ██╗███████╗    ██████╗ ██╗      █████╗ ████████╗███████╗███████╗
--██╔════╝██╔══██╗██║ ██╔╝██╔════╝    ██╔══██╗██║     ██╔══██╗╚══██╔══╝██╔════╝██╔════╝
--█████╗  ███████║█████╔╝ █████╗      ██████╔╝██║     ███████║   ██║   █████╗  ███████╗
--██╔══╝  ██╔══██║██╔═██╗ ██╔══╝      ██╔═══╝ ██║     ██╔══██║   ██║   ██╔══╝  ╚════██║
--██║     ██║  ██║██║  ██╗███████╗    ██║     ███████╗██║  ██║   ██║   ███████╗███████║
--╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝    ╚═╝     ╚══════╝╚═╝  ╚═╝   ╚═╝   ╚══════╝╚══════╝


Config.FakePlates = {
    ENABLE = true, --Do you want to use the built in fake plate system?
    item_name = 'fakeplate', --The name of the usable item to add a fake plate.

    RemovePlate = {
        chat_command = 'removefakeplate', --Customise the chat command to remove a fake plate from a vehicle.
        allowed_jobs = {
            ENABLE = false, --Do you want to allow certain jobs to remove a fake plate? (the vehicles owner will always be able to remove plates).
            table = { --The list of jobs who can remove a fake plate.
                ['police'] = true,
                ['sheriff'] = true,
                --['add_more_here'] = true,
            }
        }
    }
}


--██╗   ██╗███████╗██╗  ██╗██╗ ██████╗██╗     ███████╗    ██╗  ██╗███████╗██╗   ██╗███████╗
--██║   ██║██╔════╝██║  ██║██║██╔════╝██║     ██╔════╝    ██║ ██╔╝██╔════╝╚██╗ ██╔╝██╔════╝
--██║   ██║█████╗  ███████║██║██║     ██║     █████╗      █████╔╝ █████╗   ╚████╔╝ ███████╗
--╚██╗ ██╔╝██╔══╝  ██╔══██║██║██║     ██║     ██╔══╝      ██╔═██╗ ██╔══╝    ╚██╔╝  ╚════██║
-- ╚████╔╝ ███████╗██║  ██║██║╚██████╗███████╗███████╗    ██║  ██╗███████╗   ██║   ███████║
--  ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═╝ ╚═════╝╚══════╝╚══════╝    ╚═╝  ╚═╝╚══════╝   ╚═╝   ╚══════╝


Config.VehicleKeys = {
    ENABLE = true, --Do you want to use the built in vehicle keys system?
    allow_shared_vehicles = false, --If this is enabled, when you give another player a saved key to one of your vehicles, it will allow them to spawn your vehicles from their garage.

    Commands = {
        temporary_key = 'darchaves', --These keys will be deleted on script/server restart (but keys will save if you relog).
        database_key = 'darchaves2', --These keys will be saved in the database meaning even after script/server restart the player will still have these keys.
        remove_key = 'removerchaves' --Remove temporary and database keys from a player.
    },

    Hotwire = {
        ENABLE = true, --Do you want players to only be able to drive vehicles they have the keys for?

        --seconds: (1-10) How many seconds it takes for the bar to reach from 1 side to the other. (less is faster).
        --size: (10-100) How wide the target bar is. (100 is widest and easiest to hit).
        --chances: How many chances you have on each action bar. (1 means if you fail the first time it cancels, 2 means if you fail the first and second time it cancels).
        ActionBar = {
            [1] = {seconds = 6, size = 30, chances = 3}, --Choose how many seperate action bars you will need to complete to hotwire a vehicle you do not have keys for.
            [2] = {seconds = 3, size = 20, chances = 2},
            [3] = {seconds = 2, size = 10, chances = 1}, --This is the 3rd action bar.
            --[4] = {seconds = 1, size = 10, chances = 1},
        }
    },

    Lock = {
        ENABLE = true, --Do you want to use the vehicle locking system?
        lock_from_inside = true, --Do you want to also lock the vehicle from the inside when the vehicle is locked? (meaning when the vehicle is locked players can not exit).
        command = 'trancar', --Customise the chat command.
        key = 'l' --Customise the key.
    },

    Lockpick = {
        ENABLE = true, --Do you want to use the vehicle lockpick system?
        command = { --Do you want players to use a chat command to start lockpicking a vehicle?
            ENABLE = false,
            chat_command = 'lockpick' --Customise the chat command.
        },
        usable_item = { --Do you want players to use a usable item to lockpick a vehicle?
            ENABLE = true,
            item_name = 'lockpick' --The name of the usable item to start lockpicking a vehicle.
        }
    },
}

--███╗   ███╗██╗██╗     ███████╗ █████╗  ██████╗ ███████╗
--████╗ ████║██║██║     ██╔════╝██╔══██╗██╔════╝ ██╔════╝
--██╔████╔██║██║██║     █████╗  ███████║██║  ███╗█████╗  
--██║╚██╔╝██║██║██║     ██╔══╝  ██╔══██║██║   ██║██╔══╝  
--██║ ╚═╝ ██║██║███████╗███████╗██║  ██║╚██████╔╝███████╗
--╚═╝     ╚═╝╚═╝╚══════╝╚══════╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝


Config.Mileage = {
    ENABLE = true, --Do you want to use the built in vehicle mileage system? The higher the miles the lower the vehicles max health will be. (or you can repurpose this for any other use).
    chat_command = 'verkms', --Customise the chat command to check your vehicles miles and max health.
    mileage_multiplier = 1.0, --If you increase this number it will increase how fast vehicles gain miles. (decrease to lower).
    speed_metrics = 'kilometers', --(miles/kilometers) Choose what you want the mileage to display as.
    show_maxhealth = false --Do you want to show the max health of the vehicle you are in when you use the /checkmiles command?
}


-- ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗    ███████╗██████╗  █████╗  ██████╗███████╗
--██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝    ██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝
--██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗      ███████╗██████╔╝███████║██║     █████╗  
--██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝      ╚════██║██╔═══╝ ██╔══██║██║     ██╔══╝  
--╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗    ███████║██║     ██║  ██║╚██████╗███████╗
-- ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝    ╚══════╝╚═╝     ╚═╝  ╚═╝ ╚═════╝╚══════╝


Config.GarageSpace = {
    ENABLE = false, --Do you want to limit the amount of cars each player can hold?
    chat_command_main = 'garagespace', --Customise the chat command to purchase extra garage space.
    chat_command_check = 'checkgaragespace', --Customise the chat command to check how many garage slots you have.

    Garagespace_Table = { --If Config.TransferGarage.ENABLE is enabled, this is the max amount of cars each player can own. To allow people to own more vehicles, add them to the table.
        [1] = 0,
        [2] = 0,
        [3] = 0,
        [4] = 0,
        [5] = 0,
        [6] = 0,
        [7] = 0,
        [8] = 25000,
        [9] = 50000,
        [10] = 75000,
        --[11] = 100000, --The number 11 would be the 11th garage slot, and the 100000 number would be the price for the 11th garage slot.
    },

    Authorized_Jobs = { --Only jobs inside this table can sell extra garage slots to players.
        ['cardealer'] = true,
        --['add_more_here'] = true,
    }
}


--██████╗ ███████╗██████╗ ███████╗██╗███████╗████████╗███████╗███╗   ██╗████████╗    ██╗   ██╗███████╗██╗  ██╗██╗ ██████╗██╗     ███████╗███████╗
--██╔══██╗██╔════╝██╔══██╗██╔════╝██║██╔════╝╚══██╔══╝██╔════╝████╗  ██║╚══██╔══╝    ██║   ██║██╔════╝██║  ██║██║██╔════╝██║     ██╔════╝██╔════╝
--██████╔╝█████╗  ██████╔╝███████╗██║███████╗   ██║   █████╗  ██╔██╗ ██║   ██║       ██║   ██║█████╗  ███████║██║██║     ██║     █████╗  ███████╗
--██╔═══╝ ██╔══╝  ██╔══██╗╚════██║██║╚════██║   ██║   ██╔══╝  ██║╚██╗██║   ██║       ╚██╗ ██╔╝██╔══╝  ██╔══██║██║██║     ██║     ██╔══╝  ╚════██║
--██║     ███████╗██║  ██║███████║██║███████║   ██║   ███████╗██║ ╚████║   ██║        ╚████╔╝ ███████╗██║  ██║██║╚██████╗███████╗███████╗███████║
--╚═╝     ╚══════╝╚═╝  ╚═╝╚══════╝╚═╝╚══════╝   ╚═╝   ╚══════╝╚═╝  ╚═══╝   ╚═╝         ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═╝ ╚═════╝╚══════╝╚══════╝╚══════╝


Config.PersistentVehicles = { --Requires OneSync to use.
    ENABLE = false --Do you want to use the built-in persistent vehicle feature?
}


--██╗   ██╗███████╗██╗  ██╗██╗ ██████╗██╗     ███████╗    ███╗   ███╗ █████╗ ███╗   ██╗ █████╗  ██████╗ ███████╗███╗   ███╗███████╗███╗   ██╗████████╗
--██║   ██║██╔════╝██║  ██║██║██╔════╝██║     ██╔════╝    ████╗ ████║██╔══██╗████╗  ██║██╔══██╗██╔════╝ ██╔════╝████╗ ████║██╔════╝████╗  ██║╚══██╔══╝
--██║   ██║█████╗  ███████║██║██║     ██║     █████╗      ██╔████╔██║███████║██╔██╗ ██║███████║██║  ███╗█████╗  ██╔████╔██║█████╗  ██╔██╗ ██║   ██║   
--╚██╗ ██╔╝██╔══╝  ██╔══██║██║██║     ██║     ██╔══╝      ██║╚██╔╝██║██╔══██║██║╚██╗██║██╔══██║██║   ██║██╔══╝  ██║╚██╔╝██║██╔══╝  ██║╚██╗██║   ██║   
-- ╚████╔╝ ███████╗██║  ██║██║╚██████╗███████╗███████╗    ██║ ╚═╝ ██║██║  ██║██║ ╚████║██║  ██║╚██████╔╝███████╗██║ ╚═╝ ██║███████╗██║ ╚████║   ██║   


Config.StaffPerms = {
    ['add'] = {
        ENABLE = true, --Do you want to allow staff to add vehicles to a players garage?
        chat_command = 'vehicle-add', --Customise the chat commands.
        perms = {
            ['esx'] = {'superadmin', 'admin'}, --You decide which permission groups can use the staff commands.
            ['qbcore'] = {'god'},
            ['other'] = {'change_me'}
        }
    },

    ['delete'] = {
        ENABLE = true, --Do you want to allow staff to delete vehicles from the database?
        chat_command = 'vehicle-delete',
        perms = {
            ['esx'] = {'superadmin', 'admin'},
            ['qbcore'] = {'god'},
            ['other'] = {'change_me'}
        }
    },

    ['plate'] = {
        ENABLE = true, --Do you want to allow staff to change a vehicles plate?
        chat_command = 'vehicle-plate',
        perms = {
            ['esx'] = {'superadmin', 'admin'},
            ['qbcore'] = {'god'},
            ['other'] = {'change_me'}
        }
    },

    ['keys'] = {
        ENABLE = true, --Do you want to allow staff to give theirself keys to a vehicle?
        chat_command = 'vehicle-keys',
        perms = {
            ['esx'] = {'superadmin', 'admin'},
            ['qbcore'] = {'god'},
            ['other'] = {'change_me'}
        }
    }
}


--██╗███╗   ██╗███████╗██╗██████╗ ███████╗     ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗
--██║████╗  ██║██╔════╝██║██╔══██╗██╔════╝    ██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝
--██║██╔██╗ ██║███████╗██║██║  ██║█████╗      ██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗  
--██║██║╚██╗██║╚════██║██║██║  ██║██╔══╝      ██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝  
--██║██║ ╚████║███████║██║██████╔╝███████╗    ╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗
--╚═╝╚═╝  ╚═══╝╚══════╝╚═╝╚═════╝ ╚══════╝     ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝


Config.InsideGarage = {
    ENABLE = true, --Do you want to allow players to use the inside garage?
    only_showcars_inthisgarage = false, --Do you want the inside garage to only show the vehicles which are currently stored at that garage (eg., garage A).  (this works for inside garage only, even with this enabled all the cars will show in the outside UI).
    shell_z_axis = 30, --This is how low under the ground the garage shell will spawn, you could use math.random(10,50) to make it random each time so players dont see each other in their garage.
    shell_time_script = 'easytime', --Choose which time script you are using so we can set the time when you enter the shell. [ 'easytime' / 'vsync' / 'qbcore' / 'other' ].
    engines_on = false, --Do you want the vehicles engine will be turned on when you enter the inside garage?
    lights_on = false, --Do you want the vehicles headlights will be turned on when you enter the inside garage?
    use_spotlight = true, --Do you want the spotlight to shine on the closest vehicle?
    
    Insidegarage_Blacklist = { --Vehicles inside this table will not be spawned inside the garage, this is used for large vehicles that will not fit.
        [`flatbed`] = true,
        --[`add_more_here`] = true,
    },

    Car_Offsets = { --This is the offsets of the vehicles inside the garage.
        ['10cargarage_shell'] = {
            [1] = {x = -4, y = 6.5, z = -99.43, h = 135.00},--1
            [2] = {x = -4, y = 10.8, z = -99.43, h = 135.00},--2
            [3] = {x = -4, y = 15.1, z = -99.43, h = 135.00},--3
            [4] = {x = -4, y = 19.4, z = -99.43, h = 135.00},--4
            [5] = {x = -4, y = 23.7, z = -99.42, h = 135.00},--5

            [6] = {x = -12, y = 23.7, z = -99.43, h = 225.00},--6
            [7] = {x = -12, y = 19.4, z = -99.42, h = 225.00},--7
            [8] = {x = -12, y = 15.1, z = -99.42, h = 225.00},--8
            [9] = {x = -12, y = 10.8, z = -99.43, h = 225.00},--9
            [10] = {x = -12, y = 6.5, z = -99.42, h = 225.00}--10
        },

        ['40cargarage_shell'] = {
            [1] = {x = 7.0, y = -7.0, z = 0, h = 352.0},--1
            [2] = {x = 11.0, y = -8.0, z = 0, h = 352.0},--2
            [3] = {x = 15.0, y = -9.0, z = 0, h = 352.0},--3
            [4] = {x = 19.0, y = -10.0, z = 0, h = 352.0},--4
            [5] = {x = 23.0, y = -11.0, z = 0, h = 352.0},--5
            [6] = {x = 27.0, y = -12.0, z = 0, h = 352.0},--6
            [7] = {x = 31.0, y = -13.0, z = 0, h = 352.0},--7
            [8] = {x = 35.0, y = -14.0, z = 0, h = 352.0},--8
            [9] = {x = 39.0, y = -15.0, z = 0, h = 352.0},--9
            [10] = {x = 43.0, y = -16.0, z = 0, h = 352.0},--10

            [11] = {x = 7.0, y = 5.0, z = 0, h = 162.0},--11
            [12] = {x = 11.0, y = 4.0, z = 0, h = 162.0},--12
            [13] = {x = 15.0, y = 3.0, z = 0, h = 162.0},--13
            [14] = {x = 19.0, y = 2.0, z = 0, h = 162.0},--14
            [15] = {x = 23.0, y = 1.0, z = 0, h = 162.0},--15
            [16] = {x = 27.0, y = 0.0, z = 0, h = 162.0},--16
            [17] = {x = 31.0, y = -1.0, z = 0, h = 162.0},--17
            [18] = {x = 35.0, y = -2.0, z = 0, h = 162.0},--18
            [19] = {x = 39.0, y = -3.0, z = 0, h = 162.0},--19
            [20] = {x = 43.0, y = -4.0, z = 0, h = 162.0},--20

            [21] = {x = -7.0, y = 5.0, z = 0, h = 192.0},--21
            [22] = {x = -11.0, y = 4.0, z = 0, h = 192.0},--22
            [23] = {x = -15.0, y = 3.0, z = 0, h = 192.0},--23
            [24] = {x = -19.0, y = 2.0, z = 0, h = 192.0},--24
            [25] = {x = -23.0, y = 1.0, z = 0, h = 192.0},--25
            [26] = {x = -27.0, y = 0.0, z = 0, h = 192.0},--26
            [27] = {x = -31.0, y = -1.0, z = 0, h = 192.0},--27
            [28] = {x = -35.0, y = -2.0, z = 0, h = 192.0},--28
            [29] = {x = -39.0, y = -3.0, z = 0, h = 192.0},--29
            [30] = {x = -43.0, y = -4.0, z = 0, h = 192.0},--30

            [31] = {x = -7.0, y = -7.0, z = 0, h = 13.0},--31
            [32] = {x = -11.0, y = -8.0, z = 0, h = 13.0},--32
            [33] = {x = -15.0, y = -9.0, z = 0, h = 13.0},--33
            [34] = {x = -19.0, y = -10.0, z = 0, h = 13.0},--34
            [35] = {x = -23.0, y = -11.0, z = 0, h = 13.0},--35
            [36] = {x = -27.0, y = -12.0, z = 0, h = 13.0},--36
            [37] = {x = -31.0, y = -13.0, z = 0, h = 13.0},--37
            [38] = {x = -35.0, y = -14.0, z = 0, h = 13.0},--38
            [39] = {x = -39.0, y = -15.0, z = 0, h = 13.0},--39
            [40] = {x = -43.0, y = -16.0, z = 0, h = 13.0},--40
        }
    }
}


--     ██╗ ██████╗ ██████╗     ██╗   ██╗███████╗██╗  ██╗██╗ ██████╗██╗     ███████╗███████╗
--     ██║██╔═══██╗██╔══██╗    ██║   ██║██╔════╝██║  ██║██║██╔════╝██║     ██╔════╝██╔════╝
--     ██║██║   ██║██████╔╝    ██║   ██║█████╗  ███████║██║██║     ██║     █████╗  ███████╗
--██   ██║██║   ██║██╔══██╗    ╚██╗ ██╔╝██╔══╝  ██╔══██║██║██║     ██║     ██╔══╝  ╚════██║
--╚█████╔╝╚██████╔╝██████╔╝     ╚████╔╝ ███████╗██║  ██║██║╚██████╗███████╗███████╗███████║
-- ╚════╝  ╚═════╝ ╚═════╝       ╚═══╝  ╚══════╝╚═╝  ╚═╝╚═╝ ╚═════╝╚══════╝╚══════╝╚══════╝


Config.JobVehicles = {
    ENABLE = true, --Do you want players with defined jobs (below) to be able to use the garage ui to spawn job vehicles? (if disabled none of the options below will be used).
    choose_liverys = false, --Do you want players to be able to change liverys when they spawn a vehicle at a job garage?
    share_job_keys = false, --Do you want job vehicle keys to be automatically shared with other players with the same job? (requires you to be using the built in cd_garage keys feature).

    Locations = {
        ['police'] = { -- FEITO
          [1] = {coords = vector3(446.08, -1022.31, 28.53), spawn_coords = vector4(446.08, -1022.31, 28.53, 88.89), distance = 4, garage_type = 'car', method = 'regular'}, -- FEITO
          [2] = {coords = vector3(451.0923, -984.5444, 25.6998), spawn_coords = vector4(451.0923, -984.5444, 25.6998, 176.5724), distance = 6, garage_type = 'car', method = 'regular'},
          [3] = {coords = vector3(449.87, -981.33, 43.69), spawn_coords = vector4(449.87, -981.33, 43.69, 91.14), distance = 6, garage_type = 'air', method = 'regular'}, -- FEITO
          [4] = {coords = vector3(-862.7, -1324.26, 1.61), spawn_coords = vector4(-861.61, -1330.14, -0.12, 114.66), distance = 10, garage_type = 'boat', method = 'regular'}, -- FEITO
        },

        ['ambulance'] = {
            --PILLBOX HOSPITAL
            [1] = {coords = vector3(331.8782, -588.363, 28.796), spawn_coords = vector4(326.9487, -578.833, 28.796, 333.14), distance = 10, garage_type = 'car', method = 'regular'}, -- FEITO
            [2] = {coords = vector3(352.22, -588.03, 74.17), spawn_coords = vector4(352.22, -588.03, 74.17, 74.5), distance = 10, garage_type = 'air', method = 'regular'}, -- FEITO
            [3] = {coords = vector3(1426.31, 3750.12, 31.76), spawn_coords = vector4(1430.37, 3771.52, 29.86, 336.36), distance = 20, garage_type = 'boat', method = 'regular'}, -- FEITO
            [4] = {coords = vector3(-1598.49, -1201.4, 0.82), spawn_coords = vector4(-1609.96, -1210.83, -0.03, 134.45), distance = 20, garage_type = 'boat', method = 'regular'}, --- FEITO
            --Sandy MEDICAL
            [5] = {coords = vector3(1808.53, 3677.7, 34.28), spawn_coords = vector4(1805.42, 3681.13, 34.22, 298.45), distance = 10, garage_type = 'car', method = 'regular'}, -- FEITO
            [6] = {coords = vector3(1830.74, 3634.77, 34.39), spawn_coords = vector4(1830.74, 3634.77, 34.39, 29.63), distance = 10, garage_type = 'air', method = 'regular'}, -- FEITO
        },

        ['sheriff'] = { -- FEITO
           [1] = {coords = vector3(1869.325, 3692.594, 33.715), spawn_coords = vector4(1857.697, 3698.295, 33.794, 209.43), distance = 10, garage_type = 'car', method = 'regular'}, -- FEITO
           [2] = {coords = vector3(453.7986, -1017.99, 28.440), spawn_coords = vector4(446.4907, -1018.55, 28.600, 102.74), distance = 10, garage_type = 'car', method = 'regular'}, -- FEITO
           [3] = {coords = vector3(1832.367, 3677.039, 38.930), spawn_coords = vector4(1833.148, 3668.689, 38.930, 165.93), distance = 5, garage_type = 'air', method = 'regular'}, -- FEITO
           [4] = {coords = vector3(-1598.49, -1201.4, 0.82), spawn_coords = vector4(-1609.96, -1210.83, -0.03, 134.45), distance = 20, garage_type = 'boat', method = 'regular'}, -- FEITO
           [5] = {coords = vector3(1426.31, 3750.12, 31.76), spawn_coords = vector4(1430.37, 3771.52, 29.86, 336.36), distance = 20, garage_type = 'boat', method = 'regular'}, -- FEITO
        },

        ['governo'] = { -- FEITO
            [1] = {coords = vector3(301.3, -1085.8, 29.25), spawn_coords = vector4(301.3, -1085.8, 29.25, 348.32), distance = 5, garage_type = 'car', method = 'societyowned'},
        },

        ['safky'] = { 
            [1] = {coords = vector3(-1101.0, -262.0, 38.0), spawn_coords = vector4(-1101.0, -262.0, 38.0, 202.0), distance = 3, garage_type = 'car', method = 'societyowned'}, 
        },

        ['oficina1'] = { -- FEITO
            [1] = {coords = vector3(-211.05, -1304.74, 31.33), spawn_coords = vector4(-211.05, -1304.74, 31.33, 89.78), distance = 5, garage_type = 'car', method = 'societyowned'},
        },

        ['oficina2'] = { -- FEITO
            [1] = {coords = vector3(-368.04, -146.34, 38.45), spawn_coords = vector4(-368.04, -146.34, 38.45, 28.18), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['acess1'] = { 
            [1] = {coords = vector3(231.371, -36.691, 69.711), spawn_coords =  vector4(231.371, -36.691, 69.711, 66.297), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },
        ['acess2'] = { 
            [1] = {coords = vector3(821.878, -2140.369, 29.026), spawn_coords =  vector4(821.878, -2140.369, 29.026, 0.050), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['acess3'] = { -- FEITO
            [1] = {coords = vec3(-1099.09, 360.29, 68.52), spawn_coords = vector4(-1102.33, 369.31, 68.88, 262.08), distance = 5, garage_type = 'car', method = 'societyowned'}, 
       },

       ['acess4'] = { 
          [1] = {coords = vector3(-24.8, -1439.72, 30.65), spawn_coords = vector4(-24.8, -1439.72, 30.65, 171.66), distance = 5, garage_type = 'car', method = 'societyowned'}, 
       },

       ['acess6'] = { 
            [1] = {coords = vector3(971.0, -124.0, 74.0), spawn_coords = vector4(971.0, -124.0, 74.0, 136.0), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['minas1'] = { -- FEITO
            [1] = {coords = vector3(-1636.75, 401.05, 91.06), spawn_coords = vector4(-1636.75, 401.05, 91.06, 60.58), distance = 5, garage_type = 'car', method = 'societyowned'}, -- PACIFIC VILLA CARROS

        },

        ['minas2'] = { -- FEITO
            [1] = {coords = vector3(783.62, 3397.83, 62.68), spawn_coords = vector4(783.62, 3397.83, 62.68, 95.09), distance = 5, garage_type = 'car', method = 'societyowned'}, -- DESERT MANSION CARROS
            [2] = {coords = vector3(686.04, 3436.88, 57.75), spawn_coords = vector4(686.04, 3436.88, 57.75, 102.41), distance = 5, garage_type = 'air', method = 'societyowned'}, -- DESERT MANSION HELIS
        },
        
        ['armas4'] = {
            [1] = {coords = vector3(-1529.65, 90.13, 56.65), spawn_coords = vector4(-1529.65, 90.13, 56.65, 251.08), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },

        ['armas3'] = {
            [1] = {coords = vector3(-126.63, 1001.76, 235.73), spawn_coords = vector4(-126.63, 1001.76, 235.73, 184.72), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },
        -- ## ILEGAL 
        ['bairro5'] = { 
            [1] = {coords = vector3(-126.722, -28.053, 58.194), spawn_coords = vector4(-126.722, -28.053, 58.194, 69.652), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['armas1'] = { -- FEITO
            [1] = {coords = vector3(-1639.38, 391.77, 91.14), spawn_coords = vector4(-1639.38, 391.77, 91.14, 337.03), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['armas2'] = { -- FEITO
            [1] = {coords = vector3(-822.0, 157.49, 70.16), spawn_coords = vector4(-822.0, 157.49, 70.16, 85.55), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['pearls'] = { -- FEITO
        [1] = {coords = vector3(-1851.18, -1186.14, 13.02), spawn_coords = vector4(-1851.18, -1186.14, 13.02, 323.59), distance = 5, garage_type = 'car', method = 'societyowned'}, 
    },

        ['lavagem1'] = { -- FEITO
            [1] = {coords = vector3(-1373.9, -649.7, 28.68), spawn_coords = vector4(-1373.9, -649.7, 28.68, 206.96), distance = 5, garage_type = 'car', method = 'societyowned'}, -- CARROS
            [2] = {coords = vector3(-1387.81, -606.61, 43.24), spawn_coords = vector4(-1387.81, -606.61, 43.24, 302.11), distance = 5, garage_type = 'air', method = 'societyowned'}, -- HELI
            
        },

        ['lavagem2'] = { -- FEITO
            [1] = {coords = vector3(147.78, -1280.84, 29.0), spawn_coords = vector4(147.78, -1280.84, 29.0, 206.87), distance = 5, garage_type = 'car', method = 'societyowned'}, 
        },

        ['bairro1'] = {
            [1] = {coords = vector3(103.38, -1949.03, 20.75), spawn_coords = vector4(103.38, -1949.03, 20.75, 321.11), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },

        ['uwu'] = {
            [1] = {coords = vector3(-607.45, -1060.21, 21.79), spawn_coords = vector4(-607.45, -1060.21, 21.79, 85.06), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },

        ['bairro3'] = {
            [1] = {coords = vector3(-117.73, -1609.94, 31.86), spawn_coords = vector4(-117.73, -1609.94, 31.86, 314.28), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },

        ['bairro2'] = {
            [1] = {coords = vector3(319.18, -2026.94, 20.68), spawn_coords = vector4(319.18, -2026.94, 20.68, 47.9), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },

        ['bairro4'] = {
            [1] = {coords = vector3(-1570.91, -264.5, 48.28), spawn_coords = vector4(-1570.91, -264.5, 48.28, 131.38), distance = 5, garage_type = 'car', method = 'societyowned'}, -- FEITO
        },
    },


    --This will only be used if any of the 'method'(s) in the table above are set to use 'regular' job vehicles.
   --This will only be used if any of the 'method'(s) in the table above are set to use 'regular' job vehicles.
   RegularMethod = {
        ['police'] = {
            [1] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `bmwi20`},
            [2] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `m5psp`},
            [3] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `polgs350`},
            [4] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `a45psp`},
            [5] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `q8psp`},
            [6] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `clapsp`},
            [7] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `explorer`},
            [8] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `rav4`},
            [9] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `ghispo3`},
            [10] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `gt63`},
            [11] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `x6psp`},
            [12] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `m8comando`},
            [13] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `gt63s`},
            [14] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `r820p`},
            [15] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `uep_l200`},
            [16] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `amarokgoe`},
            [17] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `riot`},
            [18] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `policeinsurgent`},
            [19] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `psp_mbsprinter`},
            [20] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `pspt`},
            [21] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `WRr1200`},
            [22] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `psp_bmwgs`},
            [23] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `ktmpsp`},
            [24] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `pbus`},
            [25] = {job = 'police', spawn_max = true, plate = 'XKI', job_grade = 0, garage_type = 'car', model = `bensonpsp`},
            [26] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `WRbmwm4`},
            [27] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `rs6patrulha`},
            [28] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `rs6transito`},
            [29] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `ndds63`},
            [30] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `pspmachep`},
            [31] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `X5PSP`},
            [32] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `q7psp`},
            [33] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_m5`},
            [34] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_m8`},
            [35] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_rrst`},
            [36] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_wagon`},
            [37] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_amggtr`},
            [38] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_avent`},
            [39] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_jeep`},
            [40] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_rs7`},
            [41] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'car', model = `nm_wagon`},
            [42] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'air', model = `heligoe`},
            [43] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'air', model = `heligoe2`},
            [44] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'air', model = `heli1psp`},

            [45] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'boat', model = `pspjski`},
            [46] = {job = 'police', spawn_max = true, plate = 'PSP', job_grade = 0, garage_type = 'boat', model = `barcopsp1`},
        },
        
        ['ambulance'] = {
            [1] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'car', model = `clainem1`},
            [2] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'car', model = `motobm`},
            [3] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'car', model = `inem_l2001`},
            [4] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'car', model = `explorerinem1`},
            [5] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'car', model = `sprintersiv`},
            [6] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'car', model = `ambulancec`},
            [7] = {job = 'ambulance', spawn_max = true, plate = 'INEM', job_grade = 0, garage_type = 'air', model = `polmav`},
        },

        ['sheriff'] = {
            [1] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnrx6`},
            [2] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `BMW340iGNR`},
            [3] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `BMWX5GNR`},
            [4] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `panameragnr`},
            [5] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `WRr1200gnr`},
            [6] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_1200`},
            [7] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `a45gnr`},
            [8] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `bbspaudi`},
            [9] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `sandcatmx`},
            [10] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `sheriffinsurgent`},
            [11] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `benson`},
            [12] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `g63amg6x6cop`},
            [13] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_jeep`},
            [14] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_carrinhanova`},
            [15] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_i8`},
            [16] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `sheriffgtr2`},
            [17] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_1200`},
            [18] = {job = 'gnr', spawn_max = true, plate = 'HWP', job_grade = 0, garage_type = 'car', model = `21rav4`},
            [19] = {job = 'gnr', spawn_max = true, plate = 'HWP', job_grade = 0, garage_type = 'car', model = `gnrs2`},
            [20] = {job = 'gnr', spawn_max = true, plate = 'HWP', job_grade = 0, garage_type = 'car', model = `m5gnr`},
            [21] = {job = 'gnr', spawn_max = true, plate = 'HWP', job_grade = 0, garage_type = 'car', model = `gnrgs350`},
            [22] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `volgnr`},
            [23] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `machep`},
            [24] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_thilux`},
            [25] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `gnr_mase`},
            [26] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `2022pshrb`},
            [27] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `q8gnr`},
            [28] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `reamcarro`},
            [29] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nelitocarro`},
            [30] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `mach1gnr`},
            [31] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `m8comandognr`},
            [32] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `q7gnr`},
            [33] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_m5`},
            [34] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_m8`},
            [35] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_rrst`},
            [36] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_wagon`},
            [37] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_amggtr`},
            [38] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_avent`},
            [39] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_jeep`},
            [40] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_rs7`},
            [41] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'car', model = `nm_wagon`},
            [42] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'air', model = `swift`},
            [43] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'air', model = `heli1gnr`},
            [44] = {job = 'gnr', spawn_max = true, plate = 'GNR', job_grade = 0, garage_type = 'boat', model = `dinghy`},
        },

        -- ['oficina1'] = {
        --     [1] = {job = 'oficina1', spawn_max = true, plate = 'OFICINA', job_grade = 0, garage_type = 'car', model = `towtruck`},
        --     [2] = {job = 'oficina1', spawn_max = true, plate = 'OFICINA', job_grade = 0, garage_type = 'car', model = `flatbed`},
        -- },

        -- ['oficina2'] = {
        --     [1] = {job = 'oficina2', spawn_max = true, plate = 'OFICINA', job_grade = 0, garage_type = 'car', model = `towtruck`},
        --     [2] = {job = 'oficina2', spawn_max = true, plate = 'OFICINA', job_grade = 0, garage_type = 'car', model = `flatbed`},
        -- },
    }
}


-- ██████╗  █████╗ ███╗   ██╗ ██████╗      ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗███████╗
--██╔════╝ ██╔══██╗████╗  ██║██╔════╝     ██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝██╔════╝
--██║  ███╗███████║██╔██╗ ██║██║  ███╗    ██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗  ███████╗
--██║   ██║██╔══██║██║╚██╗██║██║   ██║    ██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝  ╚════██║
--╚██████╔╝██║  ██║██║ ╚████║╚██████╔╝    ╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗███████║


Config.GangGarages = {
    ENABLE = false, --Do you want players in defined gangs to be able to use this specific gang garage?
    not_in_gang_name = 'none', --What's the gang name if a player isn't part of a gang? (eg., when a player dosnt have a job, their job name is usually unemployed). (none is the default on qbcore).

    Blip = { --You can find more info on blips here - https://docs.fivem.net/docs/game-references/blips.
        sprite = 84, --Icon of the blip.
        scale = 0.6, --Size of the blip.
        colour = 22, --Colour of the blip.
        name = L('gang_garage')..': ' --You dont need to change this.
    },

    Locations = {
        --gang: The gang name, not gang label.
        --garage_id: The unique id of the garage (this can not be named same as other normal garages).
        --coords: Where the gang garage can be accessed from.
        --spawn_coords: Where the chosen vehicle will spawn.
        --distance: If the player is within the 'distance' of these coords ^, they can open the gang garage UI.
        --garage_type: The type of vehicles that can be accessed from this location ('car' / 'boat', 'air').

        [1] = {gang = 'ballas', garage_id = 'Ballas', coords = vector3(102.48, -1955.1, 20.73), spawn_coords = vector4(104.51, -1954.2, 20.27, 336.53), distance = 10, garage_type = 'car'}, --GROVE STREET
        --[2] = {gang = 'CHANGE_ME', garage_id = 'CHANGE_ME', coords = vector3(0.0, 0.0, 0.0), spawn_coords = vector4(0.0, 0.0, 0.0, 0.0), distance = 10, garage_type = 'car'},
    },
}


--██████╗ ██╗     ██╗██████╗ ███████╗
--██╔══██╗██║     ██║██╔══██╗██╔════╝
--██████╔╝██║     ██║██████╔╝███████╗
--██╔══██╗██║     ██║██╔═══╝ ╚════██║
--██████╔╝███████╗██║██║     ███████║
--╚═════╝ ╚══════╝╚═╝╚═╝     ╚══════╝


Config.Unique_Blips = false --Do you want each garage to be named by its unique id, for example: 'Garage A'? (If disabled all garages will be called 'Garage').
Config.Blip = { --You can find more info on blips here - https://docs.fivem.net/docs/game-references/blips.
    ['car'] = {
        sprite = 357, --Icon of the blip.
        scale = 0.6, --Size of the blip.
        colour = 3, --Colour of the blip.
        name = L('garage')..' ' --You dont need to change this.
    },

    ['boat'] = {
        sprite = 357,
        scale = 0.6,
        colour = 3,
        name = L('harbor')..' '
    },

    ['air'] = {
        sprite = 357,
        scale = 0.6,
        colour = 3,
        name = L('hangar')..' '
    }
}


-- ██████╗  █████╗ ██████╗  █████╗  ██████╗ ███████╗    ██╗      ██████╗  ██████╗ █████╗ ████████╗██╗ ██████╗ ███╗   ██╗███████╗
--██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██╔════╝    ██║     ██╔═══██╗██╔════╝██╔══██╗╚══██╔══╝██║██╔═══██╗████╗  ██║██╔════╝
--██║  ███╗███████║██████╔╝███████║██║  ███╗█████╗      ██║     ██║   ██║██║     ███████║   ██║   ██║██║   ██║██╔██╗ ██║███████╗
--██║   ██║██╔══██║██╔══██╗██╔══██║██║   ██║██╔══╝      ██║     ██║   ██║██║     ██╔══██║   ██║   ██║██║   ██║██║╚██╗██║╚════██║
--╚██████╔╝██║  ██║██║  ██║██║  ██║╚██████╔╝███████╗    ███████╗╚██████╔╝╚██████╗██║  ██║   ██║   ██║╚██████╔╝██║ ╚████║███████║
-- ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝    ╚══════╝ ╚═════╝  ╚═════╝╚═╝  ╚═╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝╚══════╝

local UIText
if Config.InsideGarage.ENABLE then
    UIText = ''..L('garage')..'

'..L('open_garage_1')..'

'..L('open_garage_2').. '

'..L('notif_storevehicle') else UIText = L('garage')..' - '..L('open_garage_1') end Config.Locations = { { Garage_ID = '1', --The very first car garage's `garage_id` must be the same as the default value of the `garage_id` in the database as when a vehicle is purchased it gets sent to this garage. You can change the garage id's to what ever you like but make sure to also change the default garage_id in the database. Type = 'car', --The type of vehicles which use this garage. ('car'/'boat'/'air'). Dist = 10, --The distance that you can use this garage. x_1 = 215.09, y_1 = -805.17, z_1 = 30.81, --This is the location of the garage, where you press e to open for example. EventName1 = 'cd_garage:QuickChoose', --DONT CHANGE THIS. EventName2 = 'cd_garage:EnterGarage', --DONT CHANGE THIS. Name = UIText, --You dont need to change this. x_2 = 212.42, y_2 = -798.77, z_2 = 30.88, h_2 = 336.61, --This is the location where the vehicle spawns. EnableBlip = true, --If disabled, this garage blip will not show on the map. JobRestricted = nil, --This will allow only players with certain jobs to use this. This is not a job garage, its still a normal garage. (SINGLE JOB EXAMPLE: JobRestricted = {'police'}, MULTIPLE JOBS EXAMPLE: JobRestricted = {'police', 'ambulance'}, ) ShellType = '10cargarage_shell', --[ '10cargarage_shell' / '40cargarage_shell' / nil ] --You can choose the shell which is loaded when you enter the inside garage from this location. If you set it to nil the script will load a shell based on the amount of cars you own. }, { Garage_ID = '2', --PINK MOTEL Type = 'car', Dist = 10, x_1 = 273.0, y_1 = -343.85, z_1 = 44.91, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 270.75, y_2 = -340.51, z_2 = 44.92, h_2 = 342.03, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '3', --GROVE Type = 'car', Dist = 10, x_1 = -71.46, y_1 = -1821.83, z_1 = 26.94, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -66.51, y_2 = -1828.01, z_2 = 26.94, h_2 = 235.64, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '4', --MIRROR Type = 'car', Dist = 10, x_1 = 1032.84, y_1 = -765.1, z_1 = 58.18, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 1023.2, y_2 = -764.27, z_2 = 57.96, h_2 = 319.66, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '5', --BEACH Type = 'car', Dist = 10, x_1 = -1248.69, y_1 = -1425.71, z_1 = 4.32, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -1244.27, y_2 = -1422.08, z_2 = 4.32, h_2 = 37.12, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '6', --G O HIGHWAY Type = 'car', Dist = 10, x_1 = -2961.58, y_1 = 375.93, z_1 = 15.02, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -2964.96, y_2 = 372.07, z_2 = 14.78, h_2 = 86.07, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '7', --SANDY WEST Type = 'car', Dist = 10, x_1 = 217.33, y_1 = 2605.65, z_1 = 46.04, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 216.94, y_2 = 2608.44, z_2 = 46.33, h_2 = 14.07, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '8', --SANDY MAIN Type = 'car', Dist = 10, x_1 = 1878.44, y_1 = 3760.1, z_1 = 32.94, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 1880.14, y_2 = 3757.73, z_2 = 32.93, h_2 = 215.54, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '9', --VINEWOOD Type = 'car', Dist = 10, x_1 = 365.21, y_1 = 295.65, z_1 = 103.46, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 364.84, y_2 = 289.73, z_2 = 103.42, h_2 = 164.23, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '10', --GRAPESEED Type = 'car', Dist = 10, x_1 = 1713.06, y_1 = 4745.32, z_1 = 41.96, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 1710.64, y_2 = 4746.94, z_2 = 41.95, h_2 = 90.11, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '11', --PALETO Type = 'car', Dist = 10, x_1 = 107.32, y_1 = 6611.77, z_1 = 31.98, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 110.84, y_2 = 6607.82, z_2 = 31.86, h_2 = 265.28, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '12', --VESPUCCI Type = 'car', Dist = 10, x_1 = -1144.06, y_1 = -747.700, z_1 = 19.546, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -1139.93, y_2 = -754.353, z_2 = 19.200, h_2 = 281.09, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '13', --ROUTE68 Type = 'car', Dist = 10, x_1 = -1157.23, y_1 = 2667.353, z_1 = 18.093, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -1150.74, y_2 = 2660.105, z_2 = 18.093, h_2 = 221.38, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '14', --CATCAFE Type = 'car', Dist = 10, x_1 = -587.73, y_1 = -1113.88, z_1 = 22.18, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -587.73, y_2 = -1113.88, z_2 = 22.18, h_2 = 175.9, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '15', --PRISAO Type = 'car', Dist = 5, x_1 = 1869.81, y_1 = 2591.9, z_1 = 45.67, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 1869.81, y_2 = 2591.9, z_2 = 45.67, h_2 = 85.89, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '16', --NORAUTO Type = 'car', Dist = 10, x_1 = -358.94, y_1 = -91.93, z_1 = 45.66, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -358.94, y_2 = -91.93, z_2 = 45.66, h_2 = 338.86, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '17', --cemiterio Type = 'car', Dist = 10, x_1 = -1656.64, y_1 = -243.5, z_1 = 54.97, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -1656.64, y_2 = -243.5, z_2 = 54.97, h_2 = 275.28, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '18', --BAHAMAS Type = 'car', Dist = 10, x_1 = -1473.278, y_1 = -660.317, z_1 = 28.943, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -1473.278, y_2 = -660.317, z_2 = 28.943, h_2 = 301.493, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '19', --PRAIA Type = 'car', Dist = 10, x_1 = -1790.47, y_1 = -1196.31, z_1 = 13.02, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -1790.47, y_2 = -1196.31, z_2 = 13.02, h_2 = 49.04, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '20', --FUNDIR Type = 'car', Dist = 10, x_1 = 992.37, y_1 = -1953.61, z_1 = 29.32, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 992.37, y_2 =-1953.61, z_2 = 30.8, h_2 = 164.53, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '21', --LENHADOR Type = 'car', Dist = 10, x_1 = -596.19, y_1 = 5301.41, z_1 = 70.21, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -592.05, y_2 =5302.01, z_2 = 70.21, h_2 = 332.42, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '22', --MINA LEGAL Type = 'car', Dist = 10, x_1 = 2541.37, y_1 = 2618.52, z_1 = 37.94, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 2541.37, y_2 = 2618.52, z_2 = 37.94, h_2 = 282.23, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '23', --perto stand Type = 'car', Dist = 10, x_1 = -144.88, y_1 = -1349.07, z_1 = 29.71, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -144.88, y_2 = -1349.07, z_2 = 29.71, h_2 = 224.67, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '24', -- AIRPORT Type = 'car', Dist = 10, x_1 = 1697.76, y_1 = 3267.56, z_1 = 41.06, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = 1697.76, y_2 = 3267.56, z_2 = 41.06, h_2 = 195.78, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '25', -- garagem apartamentos Type = 'car', Dist = 10, x_1 = -527.46, y_1 = 45.54, z_1 = 52.58, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -527.46, y_2 = 45.54, z_2 = 52.58, h_2 = 350.45, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { Garage_ID = '26', Type = 'car', Dist = 10, x_1 = -38.13, y_1 = -2646.01, z_1 = 6.01, EventName1 = 'cd_garage:QuickChoose', EventName2 = 'cd_garage:EnterGarage', Name = UIText, x_2 = -38.13, y_2 = -2646.01, z_2 = 6.01, h_2 = 82.22, EnableBlip = true, JobRestricted = nil, ShellType = '10cargarage_shell', }, { --THIS IS A BOAT GARAGE, YOU CAN REMOVE OR ADD NEW BOAT GARAGES IF YOU WISH. Garage_ID = 'A', --The very first boat garage's `garage_id` must be the same as the default value of the garage_id in the database as when a vehicle is purchased it gets sent to this garage. Type = 'boat', Dist = 10, x_1 = -806.22, y_1 = -1496.7, z_1 = 1.6, EventName1 = 'cd_garage:QuickChoose', Name = ''..L('harbor')..'

'..L('open_garage_3'), x_2 = -811.54, y_2 = -1509.42, z_2 = -0.47, h_2 = 130.14, EnableBlip = true, JobRestricted = nil, }, { --THIS IS AN AIR GARAGE, YOU CAN REMOVE OR ADD NEW AIR GARAGES IF YOU WISH. Garage_ID = 'A', --The very first air garage's `garage_id` must be the same as the default value of the `garage_id` in the database as when a vehicle is purchased it gets sent to this garage. Type = 'air', Dist = 10, x_1 = -982.55, y_1 = -2993.94, z_1 = 13.95, EventName1 = 'cd_garage:QuickChoose', Name = ''..L('hangar')..'

'..L('open_garage_4'), x_2 = -989.59, y_2 = -3004.93, z_2 = 13.94, h_2 = 58.15, EnableBlip = true, JobRestricted = nil, }, } --██╗███╗ ███╗██████╗ ██████╗ ██╗ ██╗███╗ ██╗██████╗ ██╗ ██████╗ ██████╗ █████╗ ████████╗██╗ ██████╗ ███╗ ██╗███████╗ --██║████╗ ████║██╔══██╗██╔═══██╗██║ ██║████╗ ██║██╔══██╗ ██║ ██╔═══██╗██╔════╝██╔══██╗╚══██╔══╝██║██╔═══██╗████╗ ██║██╔════╝ --██║██╔████╔██║██████╔╝██║ ██║██║ ██║██╔██╗ ██║██║ ██║ ██║ ██║ ██║██║ ███████║ ██║ ██║██║ ██║██╔██╗ ██║███████╗ --██║██║╚██╔╝██║██╔═══╝ ██║ ██║██║ ██║██║╚██╗██║██║ ██║ ██║ ██║ ██║██║ ██╔══██║ ██║ ██║██║ ██║██║╚██╗██║╚════██║ --██║██║ ╚═╝ ██║██║ ╚██████╔╝╚██████╔╝██║ ╚████║██████╔╝ ███████╗╚██████╔╝╚██████╗██║ ██║ ██║ ██║╚██████╔╝██║ ╚████║███████║ --╚═╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ Config.ImpoundLocations = { --DO NOT CHANGE THE TABLE IDENTIFIERSs, for example - ['car_2'], if you wish to add more, then name the next one ['car_3']. It must have either 'car'/'boat'/'air' in the name and also be unique. ['car_1'] = { ImpoundID = 1, --The unique id of the impound. coords = {x = 401.28, y = -1631.44, z = 29.29}, --This is the location of the garage, where you press e to open for example. spawnpoint = {x = 404.66, y = -1642.03, z = 29.29, h = 225.5}, --This is the location where the vehicle spawns. blip = { sprite = 68, --Icon of the blip. scale = 0.7, --Size of the blip. colour = 5, --Colour of the blip. name = L('car_city_impound'), --This can be changed in the Locales. } }, ['car_2'] = { ImpoundID = 2, coords = {x = 469.3558, y = -1089.5321, z = 29.2037}, spawnpoint = {x = 469.3558, y = -1089.5321, z = 29.2037, h = 187.4288}, blip = { sprite = 68, scale = 0.7, colour = 5, name = Apreendidos PSP, } }, ['car_3'] = { ImpoundID = 3, coords = {x = 1842.94, y = 3702.36, z = 34.04}, spawnpoint = {x = 1842.94, y = 3702.36, z = 34.04, h = 118.1}, blip = { sprite = 68, scale = 0.7, colour = 5, name = Apreendidos GNR, } }, ['boat_1'] = { ImpoundID = 3, coords = {x = -848.8, y = -1368.42, z = 1.6}, spawnpoint = {x = -848.4, y = -1362.8, z = -0.47, h = 113.0}, blip = { sprite = 68, scale = 0.7, colour = 5, name = L('boat_impound'), } }, ['air_1'] = { ImpoundID = 4, coords = {x = -956.49, y = -2919.74, z = 13.96}, spawnpoint = {x = -960.22, y = -2934.4, z = 13.95, h = 153.0}, blip = { sprite = 68, scale = 0.7, colour = 5, name = L('air_impound'), } }, } -- ██████╗ ████████╗██╗ ██╗███████╗██████╗ --██╔═══██╗╚══██╔══╝██║ ██║██╔════╝██╔══██╗ --██║ ██║ ██║ ███████║█████╗ ██████╔╝ --██║ ██║ ██║ ██╔══██║██╔══╝ ██╔══██╗ --╚██████╔╝ ██║ ██║ ██║███████╗██║ ██║ -- ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ function Round(cd) return math.floor(cd+0.5) end function Trim(cd) return cd:gsub('%s+', '') end function GetConfig() return Config end function GetCorrectPlateFormat(plate) if Config.PlateFormats == 'trimmed' then return Trim(plate) elseif Config.PlateFormats == 'with_spaces' then return plate elseif Config.PlateFormats == 'mixed' then return string.gsub(plate, ^%s*(.-)%s*$, %1) end end -- █████╗ ██╗ ██╗████████╗ ██████╗ ██████╗ ███████╗████████╗███████╗ ██████╗████████╗ --██╔══██╗██║ ██║╚══██╔══╝██╔═══██╗ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ --███████║██║ ██║ ██║ ██║ ██║ ██║ ██║█████╗ ██║ █████╗ ██║ ██║ --██╔══██║██║ ██║ ██║ ██║ ██║ ██║ ██║██╔══╝ ██║ ██╔══╝ ██║ ██║ --██║ ██║╚██████╔╝ ██║ ╚██████╔╝ ██████╔╝███████╗ ██║ ███████╗╚██████╗ ██║ --╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ -----DO NOT TOUCH ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING.----- if Config.Framework == 'auto_detect' then if GetResourceState(Config.FrameworkTriggers.esx.resource_name) == 'started' then Config.Framework = 'esx' elseif GetResourceState(Config.FrameworkTriggers.qbcore.resource_name) == 'started' then Config.Framework = 'qbcore' end if Config.Framework == 'esx' or Config.Framework == 'qbcore' then for c, d in pairs(Config.FrameworkTriggers[Config.Framework]) do Config.FrameworkTriggers[c] = d end Config.FrameworkTriggers.esx, Config.FrameworkTriggers.qbcore = nil, nil end end Config.Database = 'oxmysql' Config.Notification = 'ox_lib' Config.FrameworkSQLtables = { vehicle_table = 'player_vehicles', vehicle_identifier = 'citizenid', vehicle_props = 'mods', users_table = 'players', users_identifier = 'citizenid', } Config.VehiclesData.ENABLE = true if not Config.VehiclesData.ENABLE then Config.Impound.Impound_Fee.method = 'default' Config.GarageTax.method = 'default' Config.Return_Vehicle.method = 'default' end -----DO NOT TOUCH ANYTHING ABOVE THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING.-----

Related Garage Scripts

  • Trowbridge Police Station MLO
  • Lab Crew System
  • Legion Garage V3
  • JG Advanced Garages

Acheter si cela fait gagner du temps de configuration

Utilisez cette checklist pour vérifier rapidement si la ressource correspond à votre serveur, votre framework et vos attentes de support.

Gain pour l'administrateur serveur

CD Garage vise à réduire Garages & Industrial au lieu de vous obliger à reconstruire le même système.

Compatibilité

Fonctionne avec esx, qbcore, qbox, standalone. Vérifiez le bloc des prérequis avant de l'ajouter à un serveur en production.

Confiance avant achat

Téléchargement instantané, paiement Stripe, accès au support et contexte de remboursement sont affichés avant le paiement.

Éléments de décision

Prérequis, Vidéo d'aperçu, Questions produit

Compatibilité, installation et preuves en un coup d'œil

Utilisez les informations publiées sur cette page pour confirmer si CD Garage correspond à votre serveur avant l'achat.

Compatibilité

Frameworks
ESX, QBCore, QBOX, Standalone
Category
Garages & Industrial

Installation & prérequis

Install flow
Télécharger → dossier resources → ensure dans server.cfg
Requirements
Publié sur cette page
File size
4.48 MB

Preuves & questions acheteurs

Reviews
Aucun avis — soyez le premier
Sales
1

Seuls les faits publiés sur cette page doivent être considérés comme confirmés. Si vous avez besoin de plus de détails, consultez la description, les prérequis, le journal des modifications, les avis et les questions produit avant l'achat.

Compatibilité:

CD Garage

16,38 €1 vendus

Paiement sécurisé

Carte, Klarna et wallets pris en charge via Stripe. D'autres moyens de paiement locaux peuvent apparaître selon votre région.

Accès immédiat aux fichiers après le paiementAssistance et politique de remboursement visibles avant le paiement
Contacter le support avant achatLire la politique de remboursement
Accès instantané
Chiffré SSL
Carte, Klarna, wallets
Frameworksesx, qbcore, qbox, standalone
Installation

Requires a FiveM server, ESX or QBCore, access to server resources, and permission to restart the resource after configuration.

RequirementsPublié sur cette page
PreviewDisponible

Notes d'installation

Requires a FiveM server, ESX or QBCore, access to server resources, and permission to restart the resource after configuration.
Notes d'installation
Requires a FiveM server, ESX or QBCore, access to server resources, and permission to restart the resource after configuration.
DescriptifPrérequisVidéo d'aperçu

Caractéristiques Principales

  • Auto-Detection Framework Support

    The 'auto_detect' feature automatically identifies your framework (ESX or QBCore) and SQL database resource (MySQL, GHMattimysql, or Oxmysql), applying appropriate default settings.

  • Multiple Language Support

    Supports 11 languages including EN, CZ, DE, DK, ES, FI, FR, NL, PT, SE, and SK, with the ability to add custom locales.

  • Advanced Vehicle Damage Preservation

    Saves and reapplies popped tires, broken doors, and broken windows when spawning a vehicle from the garage.

  • Unique Garage Assignment

    Allows configuration to restrict vehicle retrieval to only the garage where the vehicle was last stored.

  • Customizable Keybind System

    Comprehensive key mapping system with configurable controls for quick choose (E), enter garage (H), store vehicle (G), and hotwire start (E).

Questions Fréquemment Posées

Garages & Industrial
ESX
QBCore
QBOX
Standalone
Processus de vérification

Produits associés

11,64 €
12,93 €
14,65 €

Related Tutorials & Guides

Learn more about setting up, configuring, and using this type of resource.

Meilleurs scripts QBCore 2026 : Stack serveur essentiel

Meilleurs scripts QBCore 2026 : Stack serveur essentiel

Un ensemble pratique de scripts QBCore pour les propriétaires de serveurs FiveM en 2026. Couvre la police, les métiers, le HUD, le téléphone, l'inventaire, le logement, l'économie, les véhicules et les options de démarrage gratuites.

Meilleurs scripts de garage et de véhicules FiveM 2026 : Guide complet

Meilleurs scripts de garage et de véhicules FiveM 2026 : Guide complet

Les véhicules sont au cœur de l'expérience FiveM. Les joueurs passent des heures à gagner de l'argent pour acheter des voitures, les personnaliser dans les ateliers mécaniques et conduire à travers Los Santos.

Meilleurs scripts de garage et de véhicule FiveM 2026 : Guide complet

Meilleurs scripts de garage et de véhicule FiveM 2026 : Guide complet

Les véhicules sont essentiels à l'expérience FiveM. Les joueurs passent des heures à gagner de l'argent pour acheter des voitures, les personnaliser dans des ateliers mécaniques et traverser Los Santos pour…

Continuez à construire votre serveur FiveM

Utilisez ce produit dans une configuration plus large. Explorez les catégories associées, les frameworks alternatifs, les packs premium et les téléchargements gratuits complémentaires.

Explorer Car DealersExplorer Mechanic ScriptsParcourir tous les scriptsScripts Garages & IndustrialScripts esxEssayer QBCore à la placeEssayer QBox à la placeMods FiveM gratuitsComparer les packs
Group 6 MLO

Group 6 MLO

11,64 €
FiveM Airport Map (MLO)

FiveM Airport Map (MLO)

Tuning Garage - SportRacer

Tuning Garage - SportRacer

JG Advanced Garages

JG Advanced Garages