LogoLogo
  • Codesign Documentation
  • Information
    • Discord Roles
    • FiveM Asset Escrow System
    • Authentication & Transfers
  • Coding Information
    • Register Key Mapping
    • Code Snippets
    • Self Debugging
  • Paid scripts
    • Arm Wrestling
      • Configs, Locales & SQL
    • Car HUD
      • Configs, Locales & SQL
    • CCTV Cameras
      • Configs, Locales & SQL
    • Darts
      • Configs, Locales & SQL
    • Dispatch
      • Configs, Locales & SQL
      • Resource Integration
    • Dispatch 3D
      • Configs, Locales & SQL
      • Resource Integration
      • Custom vehicle models
    • Door Lock
      • Configs, Locales & SQL
    • Garage
      • Keys/Chat/Events/Exports
      • Optional Features
      • Configs, Locales & SQL
      • Resource Integration
    • Gun Range
      • Configs, Locales & SQL
    • Identity
      • Configs, Locales & SQL
    • Multicharacter
      • Configs, Locales & SQL
    • Player HUD
      • Configs, Locales & SQL
    • Props
      • Configs, Locales & SQL
    • Radar
      • Configs, Locales & SQL
    • Spawn Select
      • Configs, Locales & SQL
    • Terminal Hacker
      • Configs, Locales & SQL
    • Vehicle Control
      • Configs, Locales & SQL
    • VIP Shop
      • Configs, Locales & SQL
  • Free Scripts
    • Easytime
      • Keys/Chat/Events/Exports
      • Optional Features
      • Configs & Locales
    • Drawtext UI
    • Devtools
    • Keymaster - Minigame
    • Staff Support
    • Notifications
Powered by GitBook
On this page
  1. Paid scripts

Garage

A step-by-step installation guide, common issues and solutions, code snippets, error codes, config previews, locales previews, SQL previews, and changelogs—all in one easily accessible place.

PreviousConfigs, Locales & SQLNextKeys/Chat/Events/Exports

Last updated 3 days ago

Was this helpful?

LogoLogo

Codesign Software © All rights reserved

CtrlK
  • INSTALLATION GUIDE
  • Installation video
  • Step 1 - Download
  • Step 2 - Fxmanifest
  • Step 3 - Configure Resource
  • Step 4 - SQL Database
  • Step 5 - Configure Key Binds
  • Step 6 - Install Dependencies
  • Step 7 - Vehicle Keys
  • Step 8 - Vehicle Plate Format
  • COMMON ISSUES
  • ERROR CODES
  • CHANGELOG

Was this helpful?

Buy Here

FiveM Forums Post

YouTube Showcase Video

This resource can be purchased as part of a bundle for a discount here.

Translate

  • Click here to translate this page.

  • How do I change language?


INSTALLATION GUIDE

Installation video

If you are getting stuck on any of the steps feel free to follow the video guide

Step 1 - Download

1. Download your resource from FiveM’s Portal.

2. Unzip the cd_garage.zip folder and place this folder in your server's resource folder.

3. Add the resource to your server start config (server.cfg). Make sure cd_garage is listed below your framework resource e.g., es_extended, not above it.

ensure es_extended
ensure cd_garage

Step 2 - Fxmanifest

Depending on your framework and dependencies, you may need to make some changes inside [cd_garage/fxmanifest.lua]. We have simplified this process by commenting on the lines that you may need to modify.


Step 3 - Configure Resource

You must read all configurable options inside [cd_garage/configs/config.lua] and adjust them to fit your server's needs. Please pay attention to the "commented out help text" at the end of each line to understand the purpose of each config option.

The most important sections are those under the Framework and Important categories at the top of the config.lua. Everything else is optional.


Step 4 - SQL Database

Insert Automatically?

If you set Config.AutoInsertSQL in [cd_garage/configs/config.lua] to true, the resource will automatically insert the SQL for you. You can change this to false after the SQL has been successfully inserted.


Insert Manually?

Alternatively, if you prefer to insert the SQL queries manually, you can find them here.


Step 5 - Configure Key Binds

Before starting this resource on your main/live server, we highly recommend configuring your key binds, as this resource uses FiveM's Key Mapping.

Where Can I Configure My Key Binds?

You can configure key binds in the Keys and Commands section near the bottom of [cd_garage/configs/config.lua].

Why Do I Need to Do This?

In short, once a player joins your server with this resource running, you can no longer force changes to their key binds through the config.lua. Only the players themselves can modify their key binds in the in-game pause menu settings. However, changes you make will apply to other players who join after the update.

The benefit of this system is that it is much more optimized, allowing players to easily customize their key binds for both keyboards and controllers. You can also check out the Default Keybinds for this resource.


Step 6 - Install Dependencies

Where Can I Find These Dependencies?

You can find the dependencies by opening the [cd_garage/dependencies] folder. Inside, you’ll find folders for each required dependency, and each folder contains a text file with a GitHub download link. Alternatively, the dependencies are listed in the table below.


Where Should I Put These Dependencies?

These resources should be placed in your resources folder like any other. However, make sure not to put them inside the cd_garage folder.


Do I Need to Add Them to the Server Start Config?

  • Required: If a dependency is listed as required, you do not need to add it to the server start config, as it will start automatically due to being a dependency of this resource.

  • Optional: If a dependency is listed as optional, then yes, you need to add it to your server.cfg.

Resource Name
Download
Details

cd_garageshell

cd_garage/dependancies

REQUIRED for the inside garage shell.

cd_drawtextui

Github

REQUIRED by default but can be replaced.

cd_easytime

Github

OPTIONAL is used by default for syncing the time inside the garage shell but can be replaced.

cd_keymaster

Github

OPTIONAL is used by default for vehicle lockpicking if enabled but can be replaced/removed.


Step 7 - Vehicle Keys

Do You Use cd_garage’s Built-in Vehicle Key System?

Yes? The keys will automatically be given when you spawn a vehicle from the garage. Be sure to read the information in the #VehicleKeys, as you may need to modifications in other resources that spawn vehicles, such as vehicle shops or your framework’s /car chat command.


Do You Use a Different Vehicle Key Script?

Yes? By default, we have added compatibility with some, but not all, key resources. If your key resource isn't listed, open [cd_garage/configs/client_customise_me.lua] and locate the function named [GiveVehicleKeys]. You will need to add the event/export from your existing vehicle keys script to grant a player keys when a vehicle is spawned from the garage. (See image below.)


Do You Not Use Any Vehicle Key Script?

Then you can skip this step.

cd_garage/configs/cient_cutomise_me.lua

Step 8 - Vehicle Plate Format

PLEASE READ CAREFULLY!

You must complete this step correctly. You must read the information below and confirm your server's plate format.

Please read all 3 options below carefully before confirming which one you use.

Please note that you NEED to use the plate format your server already uses; changing them just because you like the benefits can cause script-breaking issues.

What is vehicle plate formats?

Your vehicle shop/car dealer is the script that usually decides what plate format owned vehicles will use on your server. So you need to configure the Config.PlateFormats in the [configs/config.lua] file to what plate format your server uses. We have added compatibility with all 3 known plate formats.

Short Explanation

By default, every vehicle's plate in FiveM is 8 characters long. So for example if your vehicle shop forces the plate to be 4 characters long, when you use the FiveM native to get a vehicle's plate GetVehicleNumberPlateText(vehicle), this will return a string that is 8 characters long even though the plate is 4 characters long on your vehicle in-game (ABCD); because FiveM will add whitespaces until the plate is 8 characters long including whitespaces.

What do you mean by "trimmed" plate format?

By "trimmed", we mean your vehicle shop removes all spaces and whitespaces from the default 8-character plate.

Example of what the "trimmed" plate looks like when using DEBUG PRINTS.

Example of what the "trimmed" plate looks like in the DATABASE.

Example of what the "trimmed" plate looks like IN-GAME.

Does your server use the "trimmed" vehicle plate format?

Then you need to set the Config.PlateFormats in the config.lua to 'trimmed'.

What do you mean by "with spaces" plate format?

By "with spaces", we mean your vehicle shop does not modify the plate, so all plates will be 8 characters long no matter how many letters or numbers are in the plate because it will include whitespaces to make the length 8.

Example of what the "with spaces" plate looks like when using DEBUG PRINTS.

Example of what the "with spaces" plate looks like in the DATABASE.

Example of what the "with spaces" plate looks like IN-GAME.

Does your server use the "with_spaces" vehicle plate format?

Then you need to set the Config.PlateFormats in the config.lua to 'with_spaces'.

What do you mean by "mixed" plate format?

By "mixed", we mean your vehicle shop will remove any whitespaces at the start and the end of the plate, but it will not remove spaces in the centre of the plate. You should only be using this option if you use Qbcore or esx_vehicleshop.

QBCore: This option is recommended for QBCore servers as this is what QBCore also uses in its get plate function. Normally, QBCore's plates are 8 characters long with no spaces, so the examples below may not be relevant to you.

esx_vehicleshop: If your vehicle plates in the database are the same format as the examples below, you should use this option, as some esx vehicle shops by default, force the plate format to be 7 characters long with a space in the middle.

Example of what the "mixed" plate looks like when using DEBUG PRINTS.

Example of what the "mixed" plate looks like in the DATABASE.

Example of what the "mixed" plate looks like IN-GAME.

Does your server use the "mixed" vehicle plate format?

Then you need to set the Config.PlateFormats in the config.lua to 'mixed'.

To sum up the above:

Do you use QBCore?

Use the "mixed" option.

Do you use esx_vehicleshop, and are your plates formatted like [ABC 123]?

Use the "mixed" option.

My plates are 8 characters with no spaces [ABCD1234]?

Use the "trimmed" option.



COMMON ISSUES

Please check out our Troubleshooting Guide before contacting our support.

🔔 Folder Name Make sure the name of the folder is cd_garage.

🔔 Encrypted Files Do not edit the encrypted files in any way.

Screen Flickering?

eg., if your screen is flickering while using cd_easytime.

✔️ This is due to you having multiple time/weather sync scripts running at the same time fighting each other eg., vSync or vMenu. Stop the other time/weather script that is causing this or stop cd_easytime and remove it from the dependencies in the fxmanifest.lua of cd_garage.

SQL Default Value?

eg., if you see an error similar to this example when inserting an SQL query into your database - “BLOB/TEXT column 'adv_stats' can't have a default value”.

✔️ You can use “VARCHAR(256)” instead of “LONGTEXT” in the SQL query.

SQL Unknown Column?

eg., if you see an SQL error in the server console similar to this example - ER_BAD_FIELD_ERROR: Unknown colum 'job_personalspawn' in 'where clause'.

✔️ You are missing one of the required database columns. The SQL file can be found in the "READ_ME_AFTER_PURCHASING" folder.

Is the impound Not Opening?

eg., if you see a thin line on screen where the impound UI should be and you see a client F8 print saying "toLowerCase".

✔️ Part 1: Use this chat command in your server console before any player joins.
cd_garage_jobvehicles
✔️ Part 2: Execute this SQL query in your database.
UPDATE owned_vehicles SET impound = 0, impound_data = '' WHERE impound > 0

'L' client-side F8 Error?

eg., if you see an error in the client-side F8 console similar to this example - attempt to call a number value (field 'L') - example.

✔️ This is caused by your anti-cheat. The creator of the anti-cheat most likely has a line of code that you can to add to the [cd_garage/fxmanifest.lua]. This should whitelist this resource and fix the issue.

Fuel Not Saving Correctly?

eg., if your vehicles fuel is not saving when you store a vehicle or not applying when spawning a vehicle in the garage.

✔️ This is because the GetFuel() and SetFuel() functions in the [configs/client_customise_me.lua] resource has not been configured for your servers vehicle fuel resource.

RGB Colours Not Saving Correctly?

eg., if your vehicles RGB colours are not saving when you store a vehicle or not applying when spawning a vehicle in the garage.

✔️ This is because you have not made the changes to your frameworks GetVehicleProperties() and SetVehicleProperties() functions that your mechanic/customs resource requires you to do.

"ExitLocation" client-side F8 error?

eg., if you see an error in the client-side F8 console similar to this example - attempt to call a nil value (field 'ExitLocation').

✔️ This happens when you spam the button on the UI to spawn a vehicle too fast, it does not break anything and can be ignored.


ERROR CODES

If you encounter an error code not listed below, please open a support ticket in the Codesign Discord for assistance.

6458145 - #Step 4 was not completed correctly. The adv_stats column is missing from the database.

468454 - #Step 4 was not completed correctly. The vehicles table is missing from the database.

46584645 - #Step 4 was not completed correctly. The impound and impound_data columns are missing from the database.

5454 - #Step 4 was not completed correctly. The cd_garage_keys table is missing from the database.

3122 - #Step 4 was not completed correctly. The cd_garage_privategarage table is missing from the database.

1975 - The vehicle shown in the server side print hasn't been added to QBCore's shared vehicle table.

0985 - The hash for a vehicle in your QBCore shared vehicle table is formatted incorrectly. It’s currently a string, but it should use backticks instead of apostrophes.

5111 - This warning appears when Config.UseExploitProtection is disabled. It likely means the model variable in the vehicle/mods column is missing for a player's vehicle. This could be caused by a faulty vehicle shop or, less commonly, a player using a cheat engine. To fix it, delete the vehicle or manually add the plate in the JSON file.

1654651 - The plate column in the owned_vehicles/player_vehicles table is NULL or not a string for one of this player's vehicles.

87458434 / 3216584884 - The adv_stats column in the owned_vehicles/player_vehicles table is NULL or not a table for one of this player's vehicles.

77745646844 / 66546544658 / 749864 - The vehicle/mods column in the owned_vehicles/player_vehicles table is NULL or not a table for one of this player's vehicles.

2472782 - The garage_id column in the owned_vehicles/player_vehicles table is NULL or not a string for one of this player's vehicles.

465146541 - The property column in the owned_vehicles/player_vehicles table is NULL or not a number for one of this player's vehicles.

6584165 - The in_garage column in the owned_vehicles/player_vehicles table is NULL or not a boolean. It should be a TINYINT (0 or 1).

63548 - The GetJob_grade() function in client_customise_me.lua returned nil when it should return a number.

013552 - The plate variable in the vehicle/mods column for one of this player's vehicles is missing. You can either delete this vehicle or manually add the plate in the JSON file.

3459 - Duplicate garage_id found in Config.GangGarages and Config.Locations. IDs must be unique.

68541545 - You are using a regular job garage but haven't added vehicles for that job in Config.JobVehicles.RegularMethod.

68445154 - Error in the SpawnVehicle function in client/main/functions.lua.

768415 - The impound column in the owned_vehicles/player_vehicles table is a boolean, but it should be a number.

434543522 - Error in the GetFuel function in client_customise_me.lua.



CHANGELOG

Files Changed

Not every update requires replacing the entire folder, as we understand it’s a hassle to redo configs for each update.

  • All Files: Delete the old cd_garage folder, download the latest version, reconfigure the configs folder, and restart your server.

  • All Files Except config.lua: Follow the steps above, but first back up your existing config.lua file. After downloading, replace the new config.lua with your backup.

  • Specific Files: Simply copy and paste the specific updated files over the old ones, then restart your server.

Skipping Updates

If you’ve skipped previous updates, it’s best to update all files to ensure compatibility. For example, if you're on v4.0.1, skipped v4.0.2, and now want to update to v4.0.3, use the "All Files" method for safety.

21/08/2025

Files Changed:

fxmanifest.lua
configs/locales.lua --(added ['exit_garage'] = 'Exit Garage').
client/other/garage_interact.lua
client/other/job_garages.lua
client/other/impound.lua

Fix

This was a quick hotfix for known issues, any other issues please report them so we can resolve them asap).

  • Fixed target systems not working at job garages.

  • Fixed regular method at job garages only spawning the first vehicle in list.

  • Fixed target systems not working at impounds.

  • Fixed target when trying to exit the inside garage.

  • Fixed error in garage raid plate search when a vehicle is not found.

  • Garage peds now have no collision.

19/08/2025

Files Changed:

fxmanifest.lua
client/other/garage_interact.lua
client/other/keys.lua
client/other/impound.lua
--[[(DELETE THIS FILE)--]] client/other/garage_usage_method.lua --[[(DELETE THIS FILE)--]]

Fix

This was a quick hotfix for known issues, any other issues please report them so we can resolve them asap).

  • Fixed duplicate garage peds, delete this file: (client/other/garage_usage_method.lua).

  • Fixed mouse stuck on screen (Nui focus) when closing garage.

  • Added new config option for spawning peds: Config.SpawnGaragePeds.

  • Fixed vehicle locking.

  • Removed most pre-translated locales as a lot were missing, locales update is coming shortly.

16/08/2025

Files Changed:

Changelog:

UI Changes

  • General

    • Complete UI rewrite

    • Slight design changes to outside and inside menu

    • Hotbar minigame rewrite

    • Locale changes

    • Config changes

  • Quick (outside) UI

    • Added vehicle images

    • Added the ability to rename owned vehicles

    • Added settings tab

    • Transferring a vehicle can now be done through selecting a player or garage from the dropdown list

  • Inside UI

    • Redesigned, now takes up less space

  • Impound

    • When impounding an officer can now set a specific time and date of release

    • Impound now displays a countdown until the vehicle is released

  • Keys

    • Key UI redesign

    • Giving and removing keys now handled through UI

    • Key UI now displays given and received keys

  • Raid feature

    • Added plate searching for new raid feature

Add

  • Rename Vehicles: Added the ability to rename your vehicles on the UI.

  • Persistent Vehicles: Reworked the persistent vehicles to allow vehicles to save even after a restart.

  • Target Support: Added support for ox_target and qb-target, we will auto detect your target resource.

  • Garage Raiding: Police have the ability to raid garages searching for specific cars.

  • Garage Peds: Added a ped to spawn at every garage location.

  • Added new event cd_garage:AddKeysOwnedVehicle, explained in docs.

Edit

  • Rewrote and updated the auto insert SQL system.

  • Rewrote and improved the player blips system.

  • Rewrote and improved the impound code.

Fix

  • Fixed issues with vehicle locking states not saving correctly with persistent vehicles.

  • Improved the stability of the vehicle locking system.

03/09/2024

Files Changed:

fxmanifest.lua
configs/config.lua (line 421-477)
configs/locales.lua
configs/locales_ui.js
client/main/client.lua
client/other/job_garages.lua
server/main/auto_sql_insert.lua

Update Type:

Changelog:

Add

  • Added NO locales thanks to DannyJ.

  • Added option to open a specific garage via an event using the garage ID.

Fix

  • Fixed an auto insert SQL error.

  • Fixed garage shell z coords not being used.

  • Fixed job boat not teleporting player when storing boat.

04/06/2023

Files Changed:

fxmanifest.lua
server/main/version_check.lua
configs/server_customise_me.lua
configs/client_customise_me.lua
server/other/keys.lua
html (full folder)

Update Type:

Changelog:

Add

  • Added pre-configured compatibility with lb-phone for garage tax.

Fix

  • Fixed an issue with the search bar.

  • Fixed an error with the shared garage keys.

  • Fixed a typo with the ox_lib notifications.

02/05/2023

Files Changed:

Update Type:

Changelog:

Add

  • Shared Vehicles Added a new feature allowing you to share your vehicle with others if you give them a saved key. They can spawn your vehicle from your garage even if you are offline. Their access is removed when you remove their saved key. It can be disabled in the config.

  • Job Garage Shared Keys Added a new feature which allows keys for vehicles spawned through the job garage to be shared with other players of the same job. It can be disabled in the config.

  • Lockpicking Item Lockpicking vehicles can now be done using a usable item or a chat command.

  • Impound Vehicle Event Added a new event allowing you to impound a vehicle directly from an event from external scripts.

  • Added an animation when lockpicking a vehicle.

  • Added pre-configured compatible code for 3 different notification scripts.

  • Added pre-configured compatible code for 10 different fuel scripts.

  • Added pre-configured compatible code for 5 different vehicle key scripts.

    • (more pre-configured compatibility will be added for scripts with public docs or if their authors contact us.)

  • Added pre-configured compatibility with AdvancedParking and new functions to the client_customise_me.lua for easier compatibility with other persistent vehicle scripts.

  • Regular job vehicles now spawn with max fuel.

Edit

  • Added a function to the server_customise_me.lua which is triggered when a fake plate is added/removed, allowing you easier compatibility with external scripts.

  • Further organised different parts of the code and moved them into their own files.

  • Removed the "Config.DisableOwnership" option.

  • If the return vehicle feature is disabled, the button is not hidden.

Fix

  • Fixed the return vehicle feature not working when the return price is set to 0.

  • Fixed an error with the auto-insert SQL on fresh installs.

  • Implemented a permanent fix for the 5111 error code.

  • Fixed an issue with persistent vehicles when using the /vehicle-plate admin command.

  • Fixed the "JobRestrictNotif" client-side error.

  • Fixed the impound UI's "impound time" default value disappearing when closing and reopening the UI.

  • Fixed the impound UI's character count from not resetting when closing and reopening the UI.

21/02/2023

Files Changed:

Update Type:

Changelog:

Add

  • Added more locales.

  • Added car alarms when hotwiring and lockpicking vehicles.

  • When changing the garage names, the script will automatically update the default garage_id in the database and the garage_id for all vehicles in the database.

Edit

  • Updated the "cd_garage:UpdateGarageType" event to ensure the vehicle is added to the correct default garage for boat or air vehicles.

  • Cleaned up and organised the open files.

Fix

  • Fixed a server-side error on qb when storing a vehicle in the gang garage or trying to store a vehicle you don't own.

  • Fixed the regular job garage vehicle deleter from deleting vehicles far away.

  • Fixed being able to duplicate vehicles from impounds if you tried to impound a vehicle when a player was still sitting inside.

  • Fixed the esx depreciated event warning.

  • Fix for some mechanic scripts saving the model as the vehicle spawn name instead of the model hash.

  • Fix for some auto SQL insert errors when first installing the resource.

10/02/2023

Files Changed:

Update Type:

Changelog:

Add

  • Auto Framework Detection - We have added a new feature we are calling 'auto_detect', which will automatically identify your framework, SQL database resource, and framework notifications and apply the appropriate default settings.

  • Auto SQL Insert - If you set Config.AutoInsertSQL in [configs/config.lua] to true, the resource will automatically insert the SQL for you. You can set this to false after the SQL has been inserted.

  • Added the GiveVehicleKeys function in the client customise, which is triggered every time the script needs to give vehicle keys to a player. You can put your external give key events/exports here.

Edit

  • Removed some old default notification types.

  • Reverted the change to allow vehicles to be driven without keys when hotwire was disabled.

Fix

  • Fixed all known issues with persistent vehicles.

  • Fixed issues when storing vehicles with an empty mods column on qbcore.

  • Fixed a typo that caused you to fall through the ground when spawning a car inside the garage.

  • Fixed an abusable bug to avoid hotwiring vehicles.

  • Fixed the "no NUI callback captured" warning.

  • Fixed the wrong return vehicle fee being displayed on the inside garage UI sometimes.

  • Added extra checks to the impound event for when you are using radial menus, and they send the incorrect data.

  • Fixed a typo with the check vehicle on streets callback, allowing duplicate vehicles.