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

# FAQ

> Frequently asked questions about RoadGarage

# FAQ

> [accordion] My vehicles do not show up in the garage
>
> * RoadGarage reads the vehicles from your framework's table
>   (`owned_vehicles` on ESX, `player_vehicles` on QBCore and Qbox). A
>   vehicle must be owned by the character you play.
> * A garage only lists vehicles of its kind: boats in boat garages,
>   aircraft in hangars and helipads.
> * Vehicles that are out or impounded appear under **Away** or
>   **Impounded**, not under **In this garage**.

> [accordion] "All parking spots are blocked."
>
> Every parking slot of the garage has another vehicle within
> `Config.SpawnClearance` metres. Move the vehicles away, or add more slots
> to the garage's `spawns`.

> [accordion] Players get no keys
>
> RoadGarage detects the common key scripts on its own (qb-vehiclekeys,
> qbx\_vehiclekeys, qs-vehiclekeys, wasabi\_carlock and others). For any other
> script, give the keys in `ClientHooks.GiveKeys` in `client/hooks.lua` and
> return `true`. See [Hooks](https://docs.roadshop.org/roadgarage/configuration.md#hooks).

> [accordion] Fuel is not saved
>
> The fuel scripts listed under [Hooks](https://docs.roadshop.org/roadgarage/configuration.md#hooks) are
> detected on their own. For another script, read and set the level in
> `ClientHooks.GetFuel` and `ClientHooks.SetFuel`.

> [accordion] E opens another script, or vehicles appear twice
>
> Another garage script is still running. Two garage systems compete for the
> same vehicles and the same key. Stop the old one and keep only RoadGarage.

> [accordion] Database errors about missing columns
>
> Your database user may not change tables. Run `sql/install.sql` (and
> `sql/esx_columns.sql` on ESX) yourself, or `sql/migrations/1.1.0.sql` when
> you update from 1.0.0. See [Installation](https://docs.roadshop.org/roadgarage/installation.md).

> [accordion] A vehicle shows as Missing
>
> It is out, but no longer exists in the world, for example after a server
> restart. The owner recovers it at any garage or impound lot for
> `Config.RecoveryFee`. With `Config.ReturnLostOnStart = true`, missing
> vehicles return to their last garage when RoadGarage starts.

> [accordion] Does it work with RoadPhone's Garage app?
>
> Yes. RoadGarage keeps vehicle state in the framework's own columns, so the
> app and the valet keep working. With `Config.roadGarage = true` in
> RoadPhone 3.0, the app also shows garage names, nicknames, mileage,
> impound details and shared vehicles. See
> [Installation](https://docs.roadshop.org/roadgarage/installation.md#roadphone).

> [accordion] Can I use it without a framework?
>
> Yes. RoadGarage runs on ESX Legacy, QBCore, Qbox and standalone. OneSync,
> oxmysql (or mysql-async) and ox\_lib are always required.

> [accordion] The Discord logs stay empty
>
> Webhook URLs go into `API.lua`, not `config.lua`. A channel without a URL
> uses `default`; when `default` is empty too, nothing is posted. See
> [Discord logs](https://docs.roadshop.org/roadgarage/configuration.md#discord-logs).

> [accordion] How do I add my own garage?
>
> Add an entry to `Config.Garages` with coordinates for the attendant and at
> least one parking slot. See
> [Adding a garage](https://docs.roadshop.org/roadgarage/configuration.md#adding-a-garage). Housing and
> other scripts can add garages at runtime with
> [`RegisterGarage`](https://docs.roadshop.org/roadgarage/api/exports#registergarage).

> [!NOTE]
>
> Still stuck? Open a ticket on our [Discord](https://discord.gg/2nZrmmvM2q).


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