> ## Documentation Index
> Fetch the complete documentation index at: https://docs.roadshop.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Complete setup guide for RoadGarage

# Installation

RoadGarage covers garages, impound lots and vehicle sharing for your server.
It handles public car, boat and air garages, job and gang garages with fleets,
police impounds with a fee and a hold time, and selling a car to the player in
front of you. Players use it at garage attendants and impound lots on the map,
in the same design as RoadPhone.

Vehicle state is stored in your framework's own columns, so other scripts that
read `owned_vehicles` or `player_vehicles` keep working.

![RoadGarage garage list at Pillbox Garage](https://mintcdn.com/roadshop/Kjb4cLT9F-ZzMKNz/images/roadgarage/garage-list.webp?fit=max\&auto=format\&n=Kjb4cLT9F-ZzMKNz\&q=85\&s=b08e92fec921b50dfcbc30196543ae8b)

> [!CAUTION]
>
> **Do not use FileZilla**. It can corrupt or skip hidden files during upload.
> We recommend **WinSCP**.

> [!NOTE]
>
> The download comes from the [cfx.re Portal](https://docs.roadshop.org/license-system.md). The database
> tables are created automatically on the first start.

## 📋 Prerequisites

> [card] OneSync
>
> Required: vehicles are spawned on the server (`set onesync on`).

> [card] oxmysql and ox\_lib
>
> Both are required and must start before RoadGarage. mysql-async works
> instead of oxmysql.

> [card] Framework
>
> ESX Legacy, QBCore, Qbox or no framework (standalone).

> [card] Optional
>
> ox\_target or qb-target, a vehicle key script and a fuel script. All of
> them are detected automatically.

## 🚀 Setup Instructions

**1. Extract the resource**

Put the folder into your resources. We recommend a `[road]` folder
alongside our other scripts:

```bash theme={null}
resources/
└── [road]/
    ├── road_garage/
    └── other_scripts/
```

> [!WARNING]
>
> The folder name must stay `road_garage`. Events and exports use this
> name.

**2. Start it after its dependencies**

```cfg server.cfg theme={null}
ensure oxmysql
ensure ox_lib
# your framework, key script, fuel script and housing script
ensure road_garage
```

Start RoadGarage after your housing script if you use
[house garages](https://docs.roadshop.org/roadgarage/job-garages.md#house-garages).

**3. Stop your old garage script**

Run only one garage system. Two garage scripts compete for the same
vehicles and the same key. Stop the old one (for example qb-garages or
qbx\_garages) before you start RoadGarage.

**4. Database**

On the first start, RoadGarage creates its tables. On ESX it also adds
`garage_id` and `impounded` to `owned_vehicles`.

If your database user has no `ALTER` rights, run the files yourself:

| File | When |
| - | - |
| `sql/install.sql` | New installation |
| `sql/esx_columns.sql` | New installation on ESX |
| `sql/migrations/1.1.0.sql` | Update from 1.0.0 |

**5. Give your admins access (optional)**

```cfg server.cfg theme={null}
add_ace group.admin road_garage.admin allow
```

This unlocks [`/garageadmin`](https://docs.roadshop.org/roadgarage/commands#garageadmin).

## 🌐 Language

```lua config.lua theme={null}
Config.Locale = 'en'
```

English (`en`) and German (`de`) are built in. The setting changes both the
in-game texts and the garage screen. To add your own language, see
[Configuration](https://docs.roadshop.org/roadgarage/configuration.md#language).

## 📱 RoadPhone

RoadGarage keeps vehicle state in the framework's own columns (`stored` /
`state`, `garage_id` / `garage`). RoadPhone's Garage app and valet therefore
keep working without changes.

With `Config.roadGarage = true` in RoadPhone 3.0, the Garage app also shows:

* garage names and nicknames;
* mileage and impound details;
* vehicles shared with the player.

The valet then delivers through RoadGarage, with saved damage, fuel, keys and
the activity log.

## ✅ Verification

1. The server console shows no `road_garage` errors on start.
2. Garage and impound blips appear on the map.
3. At a garage attendant you get the target option or the **E** help text,
   and the garage opens with your vehicles.
4. A vehicle you take out spawns on a free parking slot. With a key script,
   you get its keys.

## 📚 Next Steps

> [card] [Using garages](https://docs.roadshop.org/roadgarage/garages.md)
>
> Opening, parking, the vehicle page and the live preview

> [card] [Impound](https://docs.roadshop.org/roadgarage/impound.md)
>
> Impounding, hold times, fees and release

> [card] [Configuration](https://docs.roadshop.org/roadgarage/configuration.md)
>
> Garages, fees, parking spaces, mileage and hooks

> [card] [FAQ](https://docs.roadshop.org/roadgarage/faq.md)
>
> Any problems or questions?


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.