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.

Buy Here

FiveM Forums Post

YouTube Showcase Video

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

Translate


INSTALLATION GUIDE

Installation video


Step 1 - Download

1. Download your resource from FiveM’s Keymaster.

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.


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.


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'.

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.

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.

Update Type

Occasionally, updates are mandatory due to changes like authentication updates, which make older versions obsolete.

  • Mandatory - You must update to the latest version; older versions will stop working.

  • Optional - Updating is your choice, but we don’t support outdated versions.

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.

26/12/2020 - 21/06/2021

v3.0.0 - v3.0.7

Files Changed:

Update Type:

Changelog:

Add

  • Added search option to quick and impound menu

  • Vehicles can now be searched by name, location, plate or manufacturer

  • Added option to allow multiple jobs to use the JobRestricted garages

  • Added a staff command to change the plate of the vehicle you are in. This will allow custom plates to be used

  • Added logs for the vehicle management commands

  • Added a new function called SetFuel(), (just under the GetFuel() function) to the client_customise_me which will make adding compatibility with fuel scripts much easier. The read me has also been updated

  • Added a check for the /vehicle-plate command to make sure you can not change a plate to one that already exists

  • Added the vehicle labels to the transfer vehicle webhooks (ONLY when used from the chat command)

  • Added the ability to rename all esx events such as the setjob and playerloaded events

  • When using the regular job garage we added the ability to restrict cars to certain job grades

  • Added the ability to have dedicated car/air/boat garages for job garages. This will work with all 3 types of job garages

  • Added an event that you can trigger after a player purchases a vehicle and it will update the garage_type in the database

  • Added an event that you can trigger after purchasing a job vehicle and it will set the vehicle as a job owned vehicle (you can choose if you want this vehicle to be personal owned or society owned)

  • Added full locales to the discord logs so you no longer need to redo them every time the file is updated

Edit

  • Updated quick menu design

  • Improved load time of quick menu

  • Major optimisation of the client side ms usage

  • Updated all of the stylings of the logs

  • If you have added jobs to a JobRestricted garage, only people with said job(s) will be able to see this blip. It will also display which jobs this location is restricted to on the blip

  • Reworked the job cars garage to use the drawtextui instead of chat commands

  • Reworked the personal owned job vehicles. To make a vehicle a personal owned job vehicle you will need to set the new column in the database 'job_personalowned' to 1. Meaning you no longer need to add all of the personal owned job vehicles to a table in the config

  • Simplified the whole job garage system in the config so it's easier to understand

  • Updated the codesign error handlers

  • Reworked the garage tax system to get the garage tax value from each car from the "vehicles" database table. (make sure to insert the new SQL)

  • Reworked the use of the "vehicles" database table. We now get the vehicle display name, vehicle price, vehicle class and the garage tax amount for each vehicle

  • Updated the impound UI to the new system of getting the vehicle labels from the database if possible so it always shows the vehicles labels instead of the spawn names

  • Moved the webhooks to a server-only file so it can not be dumped from the config

  • When impounding a vehicle, you can now choose to send the ID of the vehicle you wish to impound (so you can impound vehicles which are still on the back of tow trucks)

  • Changed the /vehicle-add command so you can not add a vehicle to the database if it is already owned by a player

  • Changed the /vehicle-delete so it does not log to discord if the vehicle is not owned by a player

Fix

  • Fixed spawn bug with long vehicle loading times

  • Fixed a bug with the adv_stats on some vehicles in the database sometimes being set to false

  • The drawtextui now closes when the pause menu is open and reopens when you close it

  • Fixed a bug with the impound where it always showed the car being in the city impound even tho it could have been in other impounds

  • Fixed return vehicle not showing

  • Fixed unimpounding vehicle bug when Config.AnyoneCanImpound is enabled

  • Fixed /impound UI showing 'undefined'

  • Fixed a potential bug with pressing H (when you have no cars in garage) and then pressing E straight after

  • Fixed an issue with the cooldown on using the garage not working correctly

  • Fixed submarines not being recognised as boats

  • Fixed the job garages showing the ’Garage A’ on the UI as it should say ‘Job Garage’

  • Fixed a bug causing owned job garages to not function correctly

  • Fixed the regular job vehicles not displaying the vehicles label from the database

  • Fixed an issue with searching plates when using the impound UI

  • Fixed not being able to search for plates on the quick vehicle UI when caps lock is enabled

  • Temporary fix for the canary issue until the new Tebex FiveM license system is ready to launch, when this is released we will be fully switching over to the new system

Authentication

  • Authentication update

Last updated

Logo

Codesign Software © All rights reserved