Config
Explanations for all config values.
General Information
Additional Settings
If there is a feature within the script that you can't find in the script's config, there is a chance that the configuration lies within zyke-lib.
Keymapping
When stated to utilize keymapping, the key can be changed in your GTA / FiveM keybinds.
Keys
All available keys can be found in the currentzyke_libkey reference.
Prop Models
All prop models can be found here.
Ped Models
All ped models can be found here.
Blip Settings
All blip settings can be found here.
#Config.Settings
All basic settings.
Vehicle key access, key fob controls, lockpicking, hotwiring, NPC key theft, witnesses, and engine controls are configured in the selected key provider. See the Vehicle Keys config when using zyke_vehiclekeys.
#keyServices
Garage-owned services that call the selected vehicle-key provider. These settings do not select or configure the provider itself. Set
vehicleKeysinzyke_lib/dependency_override.luafor that.
Example:luakeyServices = { handleAutomaticKeys = true, disableGaragePurchase = false, newKeyPrice = 500, repayOnCleanup = 100, }
#keyServices.handleAutomaticKeys
Automatically gives a new owner access through the selected key provider after ownership is assigned.
Example:luahandleAutomaticKeys = true
#keyServices.disableGaragePurchase
Disables replacement-key purchases and the related garage personal settings. This does not disable the selected key provider.
Example:luadisableGaragePurchase = false
#keyServices.newKeyPrice
Price charged by Garages for a replacement physical key. Identifier-based providers do not use replacement purchases.
Example:luanewKeyPrice = 500
#keyServices.repayOnCleanup
Percentage of the configured key price repaid per matching physical key removed by the player's Key Cleanup garage setting.
Example:luarepayOnCleanup = 100
#debug
Debugging is a development tool used to track values within the resource. If you are experiencing odd issues, we recommend using the debug functionality to have a transparent view of what happens within the script. Utilizing debug can help you spot weird values and easily address the problem.
Example:luadebug = { basic = false, permission = {"command"}, persistentVehicles = false, displayGarageCoverage = false, databaseIntegrity = false, vehicleActions = false, garageMenuBenchmark = false, startup = false }
#debug.basic
Basic debugging.
Example:luabasic = false
#debug.permission
The permission required to use the debug commands.
Example:luapermission = {"command"}
#debug.persistentVehicles
Everything regarding persistent vehicles. This can spam quite a lot, so unless you specifically want to see it, we can disable it.
Example:luapersistentVehicles = false
#debug.displayGarageCoverage
Displays a radius around each garage blip on the map, this helps visualize the garage coverage and find dead-zones.
Example:luadisplayGarageCoverage = false
#debug.databaseIntegrity
Database integrity debugs.
Example:luadatabaseIntegrity = false
#debug.vehicleActions
This is for loops of vehicle actions, and can spam quite a lot. Such as locking newly spawned NPC vehicles etc. This won't log you just locking your car normally.
Example:luavehicleActions = false
#debug.garageMenuBenchmark
Benchmarks garage menu open/fetch/render timings.
Example:luagarageMenuBenchmark = false
#debug.startup
Verbose startup flow timings for client/server initialization issues.
Example:luastartup = false
#blipCategories
Categories used to clump together blips in the map menu. These have to be unique to not interfere with other resources, set as
nilto disable a category.
Example:luablipCategories = { garages = 167, impounds = 168, trackedVehicles = 170, impounderPositions = 171, }
#reservedBucket
Routing buckets are what is used to distribute people across "private sessions". We utilize them to only display entities or players in certain private garages or prevent problems when using the garage builder. When entering a private garage it will take the reserved value plus the index of the garage, which is basically in which order you created the garages. So if you have 100 garages, your range would be between 1001-1101 if you have 1000 as your value. It is important that these are unique to not cause any issues with other resources.
Example:luareservedBucket = 1000
#vinLength
Number of characters the vin number will be. Should not touch this. Note that if you change this after vehicles have received a vin, it may break certain functionalities, also important that it has to be larger than entity identifiers, which is ~7
Example:luavinLength = 17
#transferOwnershipInGarage
If disabled, the transfer ownership button is removed from the garage UI. This is just the basic button, disable transferContracts too, if you want to hide any transfer option completely.
Example:luatransferOwnershipInGarage = false
#transferContracts
Various settings for the transfer contracts, which are used to transfer vehicle ownership between players.
Example:luatransferContracts = { enabled = true, item = "vehicle_transfer_contract", draftCooldown = 5, }
#transferContracts.enabled
Enable or disable transfer contracts entirely.
Example:luaenabled = true
#transferContracts.item
The item that is consumed when creating a transfer contract.
Example:luaitem = "vehicle_transfer_contract"
#transferContracts.draftCooldown
Cooldown in seconds before you can create another draft after creating one.
Example:luadraftCooldown = 5
#gradeSeparator
When handling and tracking profession-based access we separate other types of identifiers from profession grades by adding this separator at the very beginning. If you have any grades with the separator already in their name, it will cause issues. It will format "chief" to "grade:chief".
Example:luagradeSeparator = "grade:"
#spawnInVehicle
If enabled, you will teleport into the vehicle you spawned from a garage or impound.
Example:luaspawnInVehicle = false
#baseVehicleImage
Various settings for the base vehicle images shown in the garage menu.
Example:luabaseVehicleImage = { baseUrl = "https://cdn.zykeresources.com/basevehicles", url = "edited/<model>_sideview.png", useThumbnails = true, disableImageStudio = false, }
#baseVehicleImage.baseUrl
The base URL of the hosted vehicle images. Missing images fall back to this base URL plus the url path.
Example:luabaseUrl = "https://cdn.zykeresources.com/basevehicles"
#baseVehicleImage.url
The image path for each vehicle model,
<model>is replaced with the vehicle's model name. With the defaults, adder resolves tohttps://cdn.zykeresources.com/basevehicles/edited/adder_sideview.png.
Example:luaurl = "edited/<model>_sideview.png"
#baseVehicleImage.useThumbnails
Recommended to reduce image size and garage menu load time, the difference can be up to 60x faster loading, with barely noticeable difference.
Example:luauseThumbnails = true
#baseVehicleImage.disableImageStudio
If enabled, the base URL is always used, even when zyke_imagestudio is started.
Example:luadisableImageStudio = false
#impound
Various settings for the impounds.
luaimpound = { command = "gimpound", defaultPoliceLock = false, management = { command = "gimpounds", commandEnabled = true, targetEnabled = true, itemsPerPage = 20, }, licenseMapping = { -- Maps vehicle classes to license names, all classes are mapped in the config }, defaultPrice = 2500, useSocietyPayout = true, entryMethods = { command = true, commandInZone = true, parkInZone = true, position = true, }, positionBlip = { sprite = 525, scale = 0.8, color = 47, shortRange = true, }, jobs = { {name = "mechanic", society = "mechanic", label = "Mechanic", restricted = 6, maxPrice = 20000, allowLicenseRequirement = true, allowVehicleRemoval = true}, {name = "police", society = "police", label = "Police", maxPrice = 50000, allowLicenseRequirement = true}, {name = "security", society = "security", label = "Security", restricted = 3, maxPrice = 5000}, }, length = { {value = 0, label = "Available Instantly"}, {value = 3600, label = "1 Hour"}, {value = 14400, label = "4 Hours"}, {value = 43200, label = "12 Hours"}, {value = 86400, label = "1 Day"}, {value = 172800, label = "2 Days"}, {value = 345600, label = "4 Days"}, {value = 604800, label = "7 Days"}, }, autoImpound = { enabled = true, price = 2500, destroyedPrice = 10000, locked = 0, }, }
#impound.command
Command to prompt the impound menu.
Example:luacommand = "gimpound"
#impound.defaultPoliceLock
Default state of the police lock option when impounding a vehicle.
Example:luadefaultPoliceLock = false
#impound.management
Various settings for the impound management menu.
Example:luamanagement = { command = "gimpounds", commandEnabled = true, targetEnabled = true, itemsPerPage = 20, }
#impound.management.command
The command to open the impound management menu.
Example:luacommand = "gimpounds"
#impound.management.commandEnabled
Allow opening impound management with the command.
Example:luacommandEnabled = true
#impound.management.targetEnabled
Add impound management to configured impound garage targets.
Example:luatargetEnabled = true
#impound.management.itemsPerPage
Amount of entries displayed per page. Probably don't touch.
Example:luaitemsPerPage = 20
#impound.defaultPrice
Default price is applied when you get your vehicle through the onRestart functionality.
Example:luadefaultPrice = 2500
#impound.useSocietyPayout
If enabled, all the money paid for impounds will go to the society account of the impounder. If disabled, it will not pay out to anything, just remove the money from the player.
Example:luauseSocietyPayout = true,
#impound.licenseMapping
Maps vehicle classes (GetVehicleClass) to a license name for Z.hasLicense. If a class is not listed or set to nil, no license is required for that class even if the license requirement is toggled on. License names are bridge-level, Z.hasLicense handles framework translation, such as "car" to "driver" for QB or "drive" for ESX.
Example:lualicenseMapping = { [0] = "car", -- Compacts [1] = "car", -- Sedans [8] = "bike", -- Motorcycles [14] = "boat", -- Boats [15] = "pilot", -- Helicopters }
#impound.entryMethods
Different ways to interact with an impound.
Example:luaentryMethods = { command = true, commandInZone = true, parkInZone = true, position = true, }
#impound.entryMethods.command
Allow opening the impound menu through the command anywhere.
Example:luacommand = true
#impound.entryMethods.commandInZone
Allow opening the impound menu through the command while inside the impound zone.
Example:luacommandInZone = true
#impound.entryMethods.parkInZone
Allow parking vehicles directly inside of the impound zone.
Example:luaparkInZone = true
#impound.entryMethods.position
Allow interacting with the impound position, such as through a target or prompt.
Example:luaposition = true
#impound.positionBlip
Blip settings for the impound positions.
Example:luapositionBlip = { sprite = 525, scale = 0.8, color = 47, shortRange = true, }
#impound.positionBlip.sprite
The sprite for the impound position blip.
Example:luasprite = 525
#impound.positionBlip.scale
The scale / size of the blip.
Example:luascale = 0.8
#impound.positionBlip.color
The color of the blip.
Example:luacolor = 47
#impound.positionBlip.shortRange
Enabling shortrange will hide the icon on your minimap unless you are close enough to it where it can be properly shown.
Example:luashortRange = true
#impound.jobs
All jobs able to perform impound actions.
Example:luajobs = { {name = "mechanic", society = "mechanic", label = "Mechanic", restricted = 6, maxPrice = 20000, allowLicenseRequirement = true, allowVehicleRemoval = true}, {name = "police", society = "police", label = "Police", maxPrice = 50000, allowLicenseRequirement = true}, {name = "security", society = "security", label = "Security", restricted = 3, maxPrice = 5000}, },
#impound.jobs[x].name
The name of the job.
Example:luaname = "mechanic"
#impound.jobs[x].label
Neatly typed label for the menu.
Example:lualabel = "Mechanic"
#impound.jobs[x].restricted
Utilizing the restricted value, you can restrict the max time a job can impound a vehicle for. The number you set is the index inside of lengths found here: impound.length.
Restricting in this way means that the vehicle can not have it's impound fee paid for and can not be driven at all. This is recommended to only be utilized by law enforcement.
Set the value to 1 to completely disable this feature as it will only allow the impounder to set it to instantly available.
Example:luarestricted = 6
#impound.jobs[x].maxPrice
Limit the max price this job can set as your impound fee. Recommended to have it divisble by the price stepper to make the UI cleaner.
Example:luamaxPrice = 20000
#impound.jobs[x].allowLicenseRequirement
If enabled, your job can require a drivers license for the owner of the vehicle to pay the impound fee. This is mainly meant for police when they remove someone's license, impounds the vehicle and don't want them to access the vehicle before receiving a new license.
Example:luaallowLicenseRequirement = true
#impound.jobs[x].allowVehicleRemoval
If enabled, your job can instantly have vehicles removed by ticking the "remove vehicle" box when impounding.
Example:luaallowVehicleRemoval = true
#impound.length
Different lengths impounders can lock a vehicle for. Always keep at least one value in here, otherwise it is free to change however you want.
Example:lualength = { {value = 0, label = "Available Instantly"}, {value = 3600, label = "1 Hour"}, {value = 14400, label = "4 Hours"}, {value = 43200, label = "12 Hours"}, {value = 86400, label = "1 Day"}, {value = 172800, label = "2 Days"}, {value = 345600, label = "4 Days"}, {value = 604800, label = "7 Days"}, }
#impound.length[x].value
The length of the restriction in seconds.
Example:luavalue = 3600
#impound.length[x].label
Neatly typed label for the option.
Example:lualabel = "1 Hour"
#impound.autoImpound
Various settings for automatically impounding vehicles.
Example:luaautoImpound = { enabled = true, price = 2500, destroyedPrice = 10000, locked = 0, }
#impound.autoImpound.enabled
Enable or disable the auto impound functionality.
Example:luaenabled = true
#impound.autoImpound.jobName
The job that is set as the impounder when a vehicle is automatically impounded.
Example:luajobName = "police"
#impound.autoImpound.price
The price to get a vehicle out of the impound when it was automatically impounded.
Example:luaprice = 2500
#impound.autoImpound.destroyedPrice
The price to get a destroyed vehicle out of the impound when it was automatically impounded.
Example:luadestroyedPrice = 10000
#impound.autoImpound.locked
The index inside of the impound lengths to lock automatically impounded vehicles for.
Example:lualocked = 0
#impound.autoImpound.reason
The impound reason given to vehicles that were automatically impounded.
Example:luareason = "Auto impounded"
#impound.autoImpound.destroyedReason
The impound reason given to destroyed vehicles that were automatically impounded.
Example:luadestroyedReason = "Auto impounded (destroyed)"
#useLegacyESXJobColumn
When enabled (ESX only, auto-ignored on other frameworks), the
jobcolumn from owned_vehicles is used to bind vehicles to profession garages. This is additive and does not interfere with the existing profession system. This was created as a compatibility layer for those that relied on this system.
Example:luauseLegacyESXJobColumn = true
#professionGaragesRequireProfessionVehicles
When enabled, profession garages only accept vehicles owned by one of the professions allowed in that garage. This blocks personal vehicles from being parked in profession fleet garages.
Example:luaprofessionGaragesRequireProfessionVehicles = true
#professionVehicleGarageRestrictionExemptions
Profession vehicles are restricted to matching profession garages by default. Add a profession here to allow its vehicles to park or transfer to regular garages too. This applies both to the legacy ESX
jobcolumn (when useLegacyESXJobColumn is enabled) and to the script's own profession vehicle ownership.
Example:luaprofessionVehicleGarageRestrictionExemptions = { -- ["mechanic"] = true, }
#windowControls
Various settings for the window controls. All keys utilize keymapping.
Example:luawindowControls = { upKey = "UP", downKey = "DOWN", }
#windowControls.upKey
The key used to roll up the windows.
Example:luaupKey = "UP"
#windowControls.downKey
The key used to roll down the windows.
Example:luadownKey = "DOWN"
#storeVehicle
Various settings for storing vehicles.
Example:luastoreVehicle = { openKey = "E", garageMenuOnly = false, garageMenuParkingRange = -1, maxParkingSpeedKmh = 20.0, }
#storeVehicle.garageMenuOnly
Forces parking through the garage menu, optionally showing an E prompt that tells players to use the menu. Can be
false,"hide"or"notify".
Example:luagarageMenuOnly = false
#storeVehicle.garageMenuParkingRange
Max distance from the player to a spawned vehicle before the garage menu allows parking it from a section. Set to
-1to only require section placement, set to a number like20.0to have a max distance.
Example:luagarageMenuParkingRange = -1
#storeVehicle.maxParkingSpeedKmh
Max vehicle speed while parking, in km/h. 20 km/h is about 12.4 mph. Set to
-1to disable.
Example:luamaxParkingSpeedKmh = 20.0
#storeVehicle.openKey
Default key to press to store your vehicles. Utilizes keymapping.
Example:luaopenKey = "E"
#blipDetails
Global blip settings for all garages, unless new settings are applied in the garage builder.
Example:luablipDetails = { enabled = true, icon = 357, scale = 0.8, color = 3, shortRange = true, scaleRange = {0.2, 1.0}, }
#blipDetails.enabled
Enable or disable the blip.
Example:luaenabled = true
#blipDetails.icon
The icon for the garage blip on the map.
Example:luaicon = 357
#blipDetails.scale
The scale / size of the blip. The default is a great middleground, can be smaller if you want to make the map more clean.
Example:luascale = 0.8
#blipDetails.color
Color of the blip, set to -1 to disable.
Example:luacolor = 3
#blipDetails.shortRange
Enabling shortrange will hide the icon on your minimap unless you are close enough to it where it can be properly shown. Recommended to keep this set as
true, otherwise your minimap will get very cluttered.
Example:luashortRange = true
#blipDetails.scaleRange
Minimum and maximum scale allowed for the blip settings in the garage builder. This means that the garage builder can set the blip to any value in here. Recommended to modify to your server's needs, perhaps even setting both the minimum and maximum to the default scale to enforce consitency throughout the map.
Note that anything below 0.2 will be invisible, hence why the minimum is set as that.
Example:luascaleRange = {0.2, 1.0}
#fakePlate
Various settings for the fake plate.
Example:luafakePlate = { enabled = false, item = "vehicleplate", allowNonUniquePlates = false, requiredCharacters = 6, price = 2500, applicationTools = { {name = "screwdriverset", amount = 1, remove = false}, }, removalTools = { {name = "screwdriverset", amount = 1, remove = false}, }, }
#fakePlate.enabled
Enable or disable the fake plate functionality entirely. Fake plates are disabled by default, this is because they can be heavily abused unless you set your server up correctly.
Example:luaenabled = false
#fakePlate.item
The item that is consumed when applying a fake plate.
Example:luaitem = "vehicleplate"
#fakePlate.allowNonUniquePlates
This allows you to set your plate as whatever, even though it's already claimed, disabled by default.
Example:luaallowNonUniquePlates = false
#fakePlate.requiredCharacters
The minimum amount of characters required for a fake plate. Keep at least one character, otherwise you might run into issues.
Example:luarequiredCharacters = 6
#fakePlate.price
The price to pay to apply a fake plate.
Example:luaprice = 2500
#fakePlate.applicationTools
The tools required in your inventory to apply a fake plate. The first item in the list will be registered as usable, to trigger the process.
Example:luaapplicationTools = { {name = "screwdriverset", amount = 1, remove = false}, }
#fakePlate.removalTools
The tools required in your inventory to remove a fake plate. The first item in the list will be registered as usable, to trigger the process.
Example:luaremovalTools = { {name = "screwdriverset", amount = 1, remove = false}, }
#fakePlate.mechanic
Settings for the mechanic that can apply fake plates.
Example:luamechanic = { pos = vec4(732.290100, -1065.217529, 22.152344, 138.897629), name = "Robert", model = "s_m_y_dockwork_01", blip = { enabled = true, sprite = 739, color = 46 } }
#fakePlate.mechanic.pos
The position of the fake plate mechanic.
Example:luapos = vec4(732.290100, -1065.217529, 22.152344, 138.897629)
#fakePlate.mechanic.name
The name of the fake plate mechanic.
Example:luaname = "Robert"
#fakePlate.mechanic.model
The model of the fake plate mechanic.
Example:luamodel = "s_m_y_dockwork_01"
#fakePlate.mechanic.blip
Blip settings for the fake plate mechanic.
Example:luablip = { enabled = true, sprite = 739, color = 46 }
#wipeVehicle
Various settings for the wipe vehicle functionality.
Note that you have to sit in a vehicle to wipe it.
Example:luawipeVehicle = { enabled = true, command = "gwipe", permission = {"command"}, }
#wipeVehicle.enabled
Enable/disable this functionality enitrely.
Example:luaenabled = true
#wipeVehicle.command
The command for wiping a vehicle.
Example:luacommand = "gwipe"
#wipeVehicle.permission
The required permission to perform this action.
Example:luapermission = {"command"}
#setPlate
Various settings for setting a vehicle plate.
Example:luasetPlate = { enabled = true, command = "gsetplate", permission = {"command"}, }
#setPlate.enabled
Enable/disable this functionality entirely.
Example:luaenabled = true
#setPlate.command
The command for setting a plate.
Example:luacommand = "gsetplate"
#setPlate.permission
The required permission to perform this action.
Example:luapermission = {"command"}
#adminVehicleManagement
Various settings for the admin vehicle management menu.
Example:luaadminVehicleManagement = { enabled = true, command = "gvehicles", permission = {"command"}, itemsPerPage = 20, }
#adminVehicleManagement.enabled
Enable or disable this functionality entirely.
Example:luaenabled = true
#adminVehicleManagement.command
The command to open the admin vehicle management menu.
Example:luacommand = "gvehicles"
#adminVehicleManagement.permission
The required permission to perform this action.
Example:luapermission = {"command"}
#adminVehicleManagement.itemsPerPage
Amount of entries displayed per page. Probably don't touch.
Example:luaitemsPerPage = 20
#plateChange
Various settings for the plate change functionality.
Example:luaplateChange = { enabled = true, openKey = "E", ui = "paper", price = 7500, paymentAccount = "bank", cooldowns = { player = 3600, vehicle = 86400, }, format = { enabled = true, pattern = "********", requireFullLength = true, }, ped = { model = "a_m_y_business_01", blip = { enabled = true, sprite = 525, scale = 0.8, color = 3, shortRange = true, } } }
#plateChange.enabled
Enable or disable the plate change functionality entirely.
Example:luaenabled = true
#plateChange.openKey
Default key to press to start a plate change. Utilizes keymapping.
Example:luaopenKey = "E"
#plateChange.ui
The UI style used for the plate change.
"paper"uses the contract-style NUI,"modern"uses a zyke_lib form.
Example:luaui = "paper"
#plateChange.price
The price to pay for a plate change.
Example:luaprice = 7500
#plateChange.paymentAccount
Which account the price is paid from, such as
cash,bank,moneyordirty_cash/black_moneydepending on your framework and inventory.
Example:luapaymentAccount = "bank"
#plateChange.cooldowns
Cooldown settings for plate changes.
Example:luacooldowns = { player = 3600, vehicle = 86400, }
#plateChange.cooldowns.player
Seconds before the same player can change any plate again.
Example:luaplayer = 3600
#plateChange.cooldowns.vehicle
Seconds before the same vehicle can receive another plate change.
Example:luavehicle = 86400
#plateChange.format
Formatting rules for the plate.
Example:luaformat = { enabled = true, pattern = "********", requireFullLength = true, }
#plateChange.format.enabled
Enable or disable the plate format enforcement.
Example:luaenabled = true
#plateChange.format.pattern
The pattern the plate has to follow,
A= letter,9= number,*= letter or number, spaces are saved as plate spaces. Examples are generated automatically from the pattern.
Example:luapattern = "********"
#plateChange.format.requireFullLength
Forces every
A,9and*slot in the pattern to be filled.
Example:luarequireFullLength = true
#plateChange.ped
Settings for the ped that handles plate changes.
Example:luaped = { model = "a_m_y_business_01", blip = { enabled = true, sprite = 525, scale = 0.8, color = 3, shortRange = true, } }
#plateChange.ped.model
The model of the plate change ped.
Example:luamodel = "a_m_y_business_01"
#plateChange.ped.blip
Blip settings for the plate change ped.
Example:luablip = { enabled = true, sprite = 525, scale = 0.8, color = 3, shortRange = true, }
#saveVehicle
Various settings for saving the vehicle manually.
This functionality is mainly meant to aid jobs that modify your vehicle. Instead of driving it into the garage to save it, running the command will do it. Utilizing our save system will ensure that you have the correct values in the database.
Can also be used for mechanics or other jobs that can repair vehicles.
Note that we also offer an export to do this (LINK EXPORT).
Example:luasaveVehicle = { command = "gsavevehicle", jobs = {"mechanic", "bennys"} }
#saveVehicle.command
The command to save the vehicle.
Example:luacommand = "gsavevehicle"
#saveVehicle.jobs
The jobs allowed to manually save a vehicle. This is recommended to limit to jobs that can modify or repair vehicles.
Example:luajobs = {"mechanic", "bennys"}
#claimVehicle
Various settings for claiming vehicles.
Example:luaclaimVehicle = { command = "gclaim", enabledForPersonalVehicles = true, enabledForPublicVehicles = true, permission = {"command"}, }
#claimVehicle.command
Command to claim a vehicle.
Example:luacommand = "gclaim"
#claimVehicle.enabledForPersonalVehicles
Enabling this feature allows admins to claim another person's vehicle and transfer the ownership.
Example:luaenabledForPersonalVehicles = true
#claimVehicle.enabledForPublicVehicles
Enabling this feature allows admins to claim "NPC" vehicles and transfer the ownership. This means that any vehicle that is not owned in the database can be claimed.
Example:luaenabledForPublicVehicles = true
#claimVehicle.permission
The permission required to perform this action.
Example:luapermission = {"command"}
#vehicleTypes
All vehicle types that exist. Not recommended to touch, unless you're just changing the label.
Example:luavehicleTypes = { {name = "automobile", label = "Car"}, {name = "bike", label = "Bike"}, {name = "trailer", label = "Trailer"}, {name = "boat", label = "Boat"}, {name = "submarine", label = "Submarine"}, {name = "heli", label = "Helicopter"}, {name = "plane", label = "Plane"}, {name = "train", label = "Train"}, }
#vehicleTypes[x].name
The name for the vehicle type. Do not touch as all types are already added and properly named.
#vehicleTypes[x].label
Neatly typed label for the menu.
Example:lualabel = "Car"
#garageTransfers
Various settings for garage transfers.
Example:luagarageTransfers = { enabled = true, flatPriceEnabled = false, flatPrice = 1250, personalBasePrice = 1250, professionBasePrice = 1250, vehicleTypeMultipliers = { ["automobile"] = 1.0, ["bike"] = 1.0, }, }
#garageTransfers.enabled
Enable or disable transferring vehicles between different garagers.
Example:luaenabled = true
#garageTransfers.flatPriceEnabled
If enabled, all transfers cost the same regardless of vehicle type or ownership, using the flatPrice.
Example:luaflatPriceEnabled = false
#garageTransfers.flatPrice
The price paid when flatPriceEnabled is enabled.
Example:luaflatPrice = 1250
#garageTransfers.personalBasePrice
The base price paid when transferring a personal vehicle, set to
0to disable.
Example:luapersonalBasePrice = 1250
#garageTransfers.professionBasePrice
The base price paid when transferring a profession vehicle, set to
0to disable.
Example:luaprofessionBasePrice = 1250
#garageTransfers.vehicleTypeMultipliers
Multipliers applied to the base price depending on the vehicle type.
Example:luavehicleTypeMultipliers = { ["automobile"] = 1.0, ["bike"] = 1.0, }
#initializeVehicles
Various settings for initializing vehicles, this is for migrating vehicles from an old garage system to ours.
Example:luainitializeVehicles = { default = { permission = {"command"}, command = "ginitdefault", }, custom = { permission = {"command"}, command = "ginitvehicles", }, disabled = { permission = {"command"}, command = "ginitdisabled", }, },
#initializeVehicles.default
Initialize a base set of vehicles. This command is instant, and appends the performance modifications to all documented base Gta vehicles in the latest version tested. After this is ran, only your custom vehicles would need to be spawned & seeded via our migration.
Example:luadefault = { permission = {"command"}, command = "ginitdefault", },
#initializeVehicles.custom
Initializes all of the vehicles in your owned database that are not part of the default list. This can be custom vehicles, or vehicles in a version newer than the one that was captured.
Example:luacustom= { permission = {"command"}, command = "ginitvehicles", },
#initializeVehicles.disabled
Various settings for initializing disabled vehicles. This is used to initialize vehicles that have been set as disabled for various reasons.
Example:luadisabled = { permission = {"command"}, command = "ginitdisabled", },
#purgeDisabledVehicles.command
Command to purge disabled vehicles from the database. This has to be ran from the server console.
Example:luacommand = "gpurgedisabled"
#resetOutVehicles
Ensures that every vehicle has a valid garage and is set as parked. Mainly used along migration commands in case you need a full reset of the values.
Example:luaresetOutVehicles = { command = "gresetoutvehicles", permission = {"command"}, }
#resetOutVehicles.command
The command to reset out vehicles.
Example:luacommand = "gresetoutvehicles"
#resetOutVehicles.permission
The required permission to perform this action.
Example:luapermission = {"command"}
#inspectBroken
Various settings for inspecting broken vehicles.
Example:luainspectBroken = { permission = {"command"}, }
#inspectBroken.permission
The required permission to inspect broken vehicles.
Example:luapermission = {"command"}
#garageBuild
Various settings for the garage builder.
Example:luagarageBuild = { command = "gbuild", jobs = {"realestate"}, permission = {"command"}, }
#garageBuild.command
The command to open the garage builder.
Example:luacommand = "gbuild"
#garageBuild.jobs
Jobs allowed to open the garage builder. This is recommended to only allow individuals that create properties to use. With this ability they can create and modify garages.
Note that you can only modify garages made by your current job, unless you are an admin. Admins can change the creator job to lock it or allow a new job to manage it.
Example:luajobs = {"realestate"}
#garageBuild.permission
Permission required to open the menu without having the proper job. Having the correct permission also allows you to manage any garage and change the creator value, meaning you can lock modifications to garages.
Example:luapermission = {"command"}
#professionVehicles
Various settings for profession vehicles.
Example:luaprofessionVehicles = { permission = {"command"}, upgradeCommand = "gpimpvehicle", upgradeEntry = "position", upgradeDistance = 5.0, temporaryVehicles = { enabled = false, maxActivePerPlayer = 1, }, societyAccounts = { -- ["police"] = "society_police", }, }
#professionVehicles.permission
The required permission to manage profession vehicles.
Example:luapermission = {"command"}
#professionVehicles.upgradeCommand
The command to upgrade a profession vehicle.
Example:luaupgradeCommand = "gpimpvehicle"
#professionVehicles.upgradeEntry
How the upgrade is triggered,
"command"or"position".
Example:luaupgradeEntry = "position"
#professionVehicles.upgradeDistance
The distance from the vehicle required to upgrade it when using the position entry.
Example:luaupgradeDistance = 5.0
#professionVehicles.temporaryVehicles
Settings for spawning fresh temporary copies while keeping purchased vehicles as management templates.
Example:luatemporaryVehicles = { enabled = false, maxActivePerPlayer = 1, }
#professionVehicles.temporaryVehicles.enabled
Enable spawning fresh temporary copies while keeping purchased vehicles as management templates.
Example:luaenabled = false
#professionVehicles.temporaryVehicles.maxActivePerPlayer
The max amount of active copies per player, set to
0to disable the active-copy limit.
Example:luamaxActivePerPlayer = 1
#professionVehicles.societyAccounts
Optional society account overrides for each profession. ESX also tries
society_<job>automatically.
Example:luasocietyAccounts = { -- ["police"] = "society_police", }
#spawnMenu
Various settings and display functions for the spawn menu.
Example:luaspawnMenu = { openKey = "E", maxSpawnDistance = 100.0, displayers = { marker = true, text3d = true } }
#spawnMenu.openKey
The key to open the garage menu when inside of a spawn menu zone. This is only relevant if you are not using a target system.
Example:luaopenKey = "E"
#spawnMenu.displayers
Various displayers to show where the spawn menu is at. Set to
trueto utilize them.
Example:luadisplayers = { marker = true, text3d = true }
#spawnMenu.maxSpawnDistance
Maximum distance from the used entrance to a spawn position, set to
-1to disable.
Example:luamaxSpawnDistance = 100.0
#deleteGarage
Various settings for deleting garages
If you want to completely disable deleting garages, setallowedForCreatortofalseandpermissiontonil.
You can still delete garages that are still being created, as cancelling the creation completely deletes the progress.
Example:luadeleteGarage = { allowedForCreator = true, permission = {"command"}, }
#deleteGarage.allowedForCreator
Allow the creator of the garage to delete it. Note that it checks for the job, so anyone with the real estate job can delete garages created by another real estate agent.
Example:luaallowedForCreator = true
#deleteGarage.permission
If you want your admins to be able to delete garages despite not having the correct job, you can set this to
true. Set the permission tonilor remove it completely to remove this feature.
Example:luapermission = {"command"}
#garageInterior
Various settings and locations for the garage interiors.
The available interiors are located in theinteriors.luafile.
Example:luagarageInterior = { exitGarage = "E", openGarage = "G", quickEnterModifier = "LSHIFT", exitLoadingscreen = "X", publicInteriors = { enabled = true, defaultInterior = "gigantic_car", sessionBucketOffset = 10000, inviteTimeout = 60, requestTimeout = 60, defaultRequestMode = "ask", defaultShowSession = true, }, }
#garageInterior.exitGarage
Key to exit the garage when you are in the correct location. Utilizes keymapping.
Example:luaexitGarage = "E"
#garageInterior.openGarage
Key to open the garage menu while inside of the interior. Utilizes keymapping.
Example:luaopenGarage = "G"
#garageInterior.quickEnterModifier
The modifier key held while parking to quickly enter the interior together with the vehicle. Utilizes keymapping.
Example:luaquickEnterModifier = "LSHIFT"
#garageInterior.exitLoadingscreen
Pressing this key during the loadingscreen will exit the garage and stop you from loading. Utilizes keymapping.
Example:luaexitLoadingscreen = "X"
#garageInterior.publicInteriors
Various settings for public garage interiors, which can be shared with other players.
Example:luapublicInteriors = { enabled = true, defaultInterior = "gigantic_car", sessionBucketOffset = 10000, inviteTimeout = 60, requestTimeout = 60, defaultRequestMode = "ask", defaultShowSession = true, }
#garageInterior.publicInteriors.enabled
Global quick-disable for all public garage interiors.
Example:luaenabled = true
#garageInterior.publicInteriors.defaultInterior
The interior used for public garage sessions by default.
Example:luadefaultInterior = "gigantic_car"
#garageInterior.publicInteriors.sessionBucketOffset
The routing bucket offset used for public interior sessions.
Example:luasessionBucketOffset = 10000
#garageInterior.publicInteriors.inviteTimeout
How long an invite stays valid, in seconds.
Example:luainviteTimeout = 60
#garageInterior.publicInteriors.requestTimeout
How long a join request stays valid, in seconds.
Example:luarequestTimeout = 60
#garageInterior.publicInteriors.defaultRequestMode
The default request mode for new sessions,
"ask","accessListOnly"or"block".
Example:luadefaultRequestMode = "ask"
#garageInterior.publicInteriors.defaultShowSession
Whether new sessions are visible to other players by default.
Example:luadefaultShowSession = true
#garageInterior.interiors
A list of available interiors that you can use.
Example:luainteriors = { { label = "Small (2 Slots)", name = "small_car", allowedTypes = {"automobile", "bike"}, teleport = vec4(178.96, -1000.28, -98.99, 179.49), computer = { target = vec3(172.93, -999.41, -98.97), position = vec3(172.96463012695, -1000.1442260742, -98.999992370605), }, vehiclePositions = { vec4(174.9736328125, -1004.135925293, -99.98, 180.0), vec4(171.43930053711, -1004.1841430664, -99.98, 180.0), } }, -- 6 vehicles, 10 vehicles and hangar are also mapped in the config }
#garageInterior.interiors[x].label
Neatly typed label for the menu.
Example:lualabel = "Small (2 Slots)"
#garageInterior.interiors[x].name
A unique identifier for the garage. Can be anything, as long as it's unique, but recommended to be somewhat descriptive of what interior it is.
Example:luaname = "small_car"
#garageInterior.interiors[x].allowedTypes
The allowed vehicle types for the garage. This will mostly be limited to
automobileandbikeas they are the only ones to fit.
Example:luaallowedTypes = {"automobile", "bike"}
#garageInterior.interiors[x].teleport
This is the location you will be teleported to when entering the interior, or teleport from to the outside. Make sure to provide x, y, z and the heading.
Example:luateleport = vec4(178.96, -1000.28, -98.99, 179.49)
#garageInterior.interiors[x].computer
The location for the computer, so that you can transfer vehicles, inside of the garage. Make sure to configure based on your settings, if you are using a target system or not.
Example:luacomputer = { target = vec3(235.8563, -975.5742, -98.9819), position = vec3(235.1254, -976.1618, -98.9999) }
#garageInterior.interiors[x].vehiclePositions
The locations for the vehicles inside of the interior. This can be modified to fit more or less vehicles, or just rearrange them if wanted. Make sure to provide x, y, z and the heading.
Example:luavehiclePositions = { vec4(174.9736328125, -1004.135925293, -99.98, 180.0), vec4(171.43930053711, -1004.1841430664, -99.98, 180.0), }
#personalSettings
Various settings for the personal garage settings menu.
Example:luapersonalSettings = { command = "gsettings", kvp = "garage_personal_settings", settings = { { name = "displayLockedGarages", values = {false, true}, default = false, force = false, }, } }
#personalSettings.command
The command to open the menu.
Example:luacommand = "gsettings"
#personalSettings.kvp
This identifier decides where the information is stored. We utilize the client's kvp storage to store the settings. This means that the settings are completely client-sided.
Should not need to change this key, but you can if you wish. Just remember to keep it as a unique key.
Example:luakvp = "garage_personal_settings"
#personalSettings.settings
A list of settings that each player can configure for themselves. The available settings are
displayLockedGarages,displayIndividualSpawners,autoPurchaseKeys,cleanOwnedKeys,quickSpawn,closeMenuOnSpawn,quickEnterInterior,showQuickEnterInteriorPrompt,automaticTransfer,publicInteriorRequestMode,publicInteriorShowSession,publicInteriorBatchKeyboardHint, andnearbyGaragesLimit.
Example:luasettings = { { name = "displayLockedGarages", values = {false, true}, default = false, force = false, }, }
#personalSettings.settings[x].name
A unique name for the setting. Can be changed, but not recommended to touch.
Example:luaname = "displayLockedGarages"
#personalSettings.settings[x].values
The values the player can pick between.
Example:luavalues = {false, true}
#personalSettings.settings[x].default
The default value for this setting, set the absolute first time a user loads the script on the server, and can later be changed in the menu.
Example:luadefault = false
#personalSettings.settings[x].force
If enabled, the configured default value is forced, the user can't change it in the menu, and it will override previous configuration.
Example:luaforce = false
#persistentVehicles
Various settings for persistent vehicles.
Note that all of the cleanup settings for these vehicles can be found in the garage builder menu.
Example:luapersistentVehicles = { kvpString = "persistent_vehicles", distances = { registerInteraction = 50, registerInProximity = 200, }, cleanup = { permission = {"command"}, }, getInfo = { permission = {"command"}, command = "pvehicleinfo", } }
#persistentVehicles.kvpString
Don't touch this unless you know what you are doing. Should not need to be changed.
#persistentVehicles.distances
Various settings for registering distances. Should not change these values, hence why they're not part of the cleanup settings ui.
Example:luadistances = { registerInteraction = 50, registerInProximity = 200, },
#persistentVehicles.distances.registerInteraction
The units between you and the vehicle to register that you are within the interaction range.
Example:luaregisterInteraction = 50
#persistentVehicles.distances.registerInProximity
The units between you and the vehicle to register that you are in the proximity of it.
Example:luaregisterInProximity = 200
#persistentVehicles.cleanup
Various settings for cleanup.
Example:luacleanup = { permission = {"command"}, }
#persistentVehicles.cleanup.permission
The permission required to change the cleanup settings.
Example:luapermission = {"command"}
#persistentVehicles.getInfo
General info about a persistent vehicle via their vin, mainly for debug purposes.
Example:luagetInfo = { permission = {"command"}, command = "pvehicleinfo", }
#persistentVehicles.getInfo.permission
The required permission to perform this action.
Example:luapermission = {"command"}
#persistentVehicles.getInfo.command
The command to get the persistent vehicle info.
Example:luacommand = "pvehicleinfo"
#vinScratch
Various settings for vin scratching.
Example:luavinScratch = { deletionPermission = {"police", "mechanic"}, }
#vinScratch.deletionPermission
List of jobs that can delete vehicles with their vins scratched.
Example:luadeletionPermission = {"police", "mechanic"}
#commandsOverriding
Overriding default commands, to prevent snipping pasting.
Example:luacommandsOverriding = { deleteVehicle = {"dv", "cardel", "dvall"}, deleteVehiclePermission = {"command"}, createVehicle = {"car", "c", "v"}, createVehiclePermission = {"command"}, }
#commandsOverriding.deleteVehicle
The commands that delete the vehicle you are sitting in.
Example:luadeleteVehicle = {"dv", "cardel", "dvall"}
#commandsOverriding.deleteVehiclePermission
The required permission to use the delete vehicle commands.
Example:luadeleteVehiclePermission = {"command"}
#commandsOverriding.createVehicle
The commands that spawn a vehicle.
Example:luacreateVehicle = {"car", "c", "v"}
#commandsOverriding.createVehiclePermission
The required permission to use the create vehicle commands.
Example:luacreateVehiclePermission = {"command"}
#defaultPlatePattern
Various settings for the default plate pattern.
Example:luadefaultPlatePattern = { pattern = "........", setInterval = 0, }
#defaultPlatePattern.pattern
The pattern used to generate default plates, mainly to overwrite horrible framework defaults. Can be changed as you please, as long as it has some form of random combinations.
Example:luapattern = "........"
#defaultPlatePattern.setInterval
Interval in ms to keep setting the default plate if needed, recommended to strip other resources of this. Set to
0to disable. Even at 0, we set it once during script start, but don't keep spamming it.
Example:luasetInterval = 0
#favorite
Various settings for the favorite vehicles functionality.
Example:luafavorite = { kvp = "zyke_garages:FavoritedVehicles", }
#favorite.kvp
The kvp key used to store the favorited vehicles. Should not need to change this key.
Example:luakvp = "zyke_garages:FavoritedVehicles"
#policeLock
Apply "police lock" for impounded vehicles to block them from being bailed out.
Example:luapoliceLock = { jobs = { ["police"] = {"boss", "secretary", "officer"}, ["police2"] = {} } }
#policeLock.jobs
Select jobs and ranks that are allowed to remove the police locks. Restrict if you believe only superiors should be able to remove police locks, or allow all ranks to remove them. Leave the table empty to allow all ranks for that job.
Example:luajobs = { ["police"] = {"boss", "secretary", "officer"}, ["police2"] = {} }
#locksmith
Various settings for the locksmith.
Example:lualocksmith = { allowKeySales = true, ped = { blip = { enabled = true, sprite = 187, color = 39, size = 1.0, }, anim = {dict = "mini@strip_club@idles@bouncer@idle_a", clip = "idle_a"}, model = "mp_m_waremech_01", } }
#locksmith.allowKeySales
If disabled, interacting with the locksmith opens only the key label editor when the selected provider supports custom labels; players cannot buy keys through the locksmith.
Example:luaallowKeySales = true
#locksmith.ped
Settings for the locksmith peds.
Example:luaped = { blip = { enabled = true, sprite = 187, color = 39, size = 1.0, }, anim = {dict = "mini@strip_club@idles@bouncer@idle_a", clip = "idle_a"}, model = "mp_m_waremech_01", }
#locksmith.ped.blip
Blip settings for the locksmith peds.
Example:luablip = { enabled = true, sprite = 187, color = 39, size = 1.0, }
#locksmith.ped.positions
The positions of the locksmith peds.
Example:luapositions = { vec4(170.09126281738, -1799.4538574219, 29.315879821777, 320.791015625), }
#locksmith.ped.anim
The animation played by the locksmith peds.
Example:luaanim = {dict = "mini@strip_club@idles@bouncer@idle_a", clip = "idle_a"}
#locksmith.ped.model
The model of the locksmith peds.
Example:luamodel = "mp_m_waremech_01"
#summon
Various settings for the summon functionality.
Example:luasummon = { maxDistance = 100, allowedVehicles = {}, }
#summon.maxDistance
The max distance the vehicle can be summoned from. This has to be lower than 400, otherwise you can not render and give instructions to the vehicle.
Example:luamaxDistance = 100
#summon.allowedVehicles
Add individual model names in here, leave empty to allow all.
Example:luaallowedVehicles = {}
#Config.Database
This is where we have translated previous database values into our own. This is to make the script framework-independent and allow you to migrate from other garages to ours by changing values.
With this approach you can easily switch over to our script without any database hassle.
Qbox is automatically set as an alias of QB.
Example:luaConfig.Database = { ["QB"] = { ["player_vehicles"] = "player_vehicles", -- Previously existing ["id"] = "id", ["license"] = "license", ["owner"] = "citizenid", ["vehicle"] = "vehicle", ["hash"] = "hash", -- QB specific ["mods"] = "mods", ["plate"] = "plate", ["fakePlate"] = "fakeplate", ["garage"] = "garage", ["parked"] = "state", ["fuel"] = "fuel", ["engine"] = "engine", ["body"] = "body", ["distancedriven"] = "drivingdistance", ["balance"] = "balance", ["paymentamount"] = "paymentamount", ["paymentsleft"] = "paymentsleft", ["financetime"] = "financetime", -- Additions ["vin"] = "vin", ["type"] = "type", ["impound"] = "impound", ["deformation"] = "deformation", ["temp"] = "temp", ["nickname"] = "nickname", ["keyFreq"] = "keyFreq", ["vinScratched"] = "vinScratched", ["class"] = "class", ["modelLabel"] = "modelLabel", ["vehicleImage"] = "vehicleImage", ["access"] = "access", ["key_counter"] = "key_counter", ["disabled"] = "disabled", }, ["ESX"] = { ["player_vehicles"] = "owned_vehicles", -- Previously existing ["owner"] = "owner", ["mods"] = "vehicle", ["plate"] = "plate", ["garage"] = "parking", ["impound"] = "pound", ["parked"] = "stored", ["type"] = "type", ["vehicle"] = "model", -- Additions ["id"] = "id", ["license"] = "license", ["vin"] = "vin", ["fakePlate"] = "fakeplate", ["fuel"] = "fuel", ["engine"] = "engine", ["body"] = "body", ["distancedriven"] = "distancedriven", ["balance"] = "balance", ["paymentamount"] = "paymentamount", ["paymentsleft"] = "paymentsleft", ["financetime"] = "financetime", ["deformation"] = "deformation", ["temp"] = "temp", ["nickname"] = "nickname", ["keyFreq"] = "keyFreq", ["vinScratched"] = "vinScratched", ["class"] = "class", ["modelLabel"] = "modelLabel", ["vehicleImage"] = "vehicleImage", ["access"] = "access", ["key_counter"] = "key_counter", ["disabled"] = "disabled", ["job"] = "job", }, }