> For the complete documentation index, see [llms.txt](https://otters-developments.gitbook.io/otters-developments/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://otters-developments.gitbook.io/otters-developments/paid-resources/used-vehicle-dealership.md).

# Used Vehicle Dealership

Otters Used Vehicle Dealership is a modern player-to-player used vehicle marketplace for FiveM, designed for roleplay servers using **QBCore, Qbox or ESX**.

Players can list their own stored vehicles, automatically capture listing photos, browse physical showcase vehicles, take test drives, message sellers, make offers and purchase vehicles directly from other players.

The resource includes a dark/magenta custom UI, configurable dealerships, seller profiles, verified buyer reviews, a global seller directory, LB Phone support, listing bumps, Discord logging and a complete ACE-protected staff management area.

## Highlights

* QBCore, Qbox & ESX support
* Automatic framework detection
* Multiple configurable dealerships
* Physical showcase vehicle system
* Floating vehicle information cards
* Stored/garaged vehicle validation before listing
* Configurable listing fees and durations
* Automatic four-image vehicle photography
* Player-to-player vehicle ownership transfer
* Buyer and seller messaging
* Offers, accept/decline and counter offers
* Buyer balance validation before offers
* Configurable paid listing bumps
* Automatic listing expiration and relisting
* Seller profiles and verified buyer reviews
* Global Seller Directory
* LB Phone custom app support
* Configurable notifications, keys, fuel, garage and mileage integrations
* ACE-protected Admin Panel
* Seller bans and unbans
* Discord webhook logging
* Automatic SQL installation
* Configurable UI theme
* FiveM Asset Escrow ready

## Requirements

The required resources are:

* `ox_lib`
* `oxmysql`
* `screenshot-basic` when automatic listing photography is enabled
* One supported framework: QBCore, Qbox or ESX

Other integrations such as LB Phone, notification resources, vehicle keys, fuel, garage and mileage resources are optional and configured separately.

## Installation

{% stepper %}
{% step %}

### Place the resource

Place `otters_usedvehicles` in your resources folder.
{% endstep %}

{% step %}

### Start dependencies first

Ensure `ox_lib`, `oxmysql` and your framework start before Otters Used Vehicle Dealership.

Ensure `screenshot-basic` starts before the resource if `Config.Photos.Enabled = true`.
{% endstep %}

{% step %}

### Set up SQL

The resource automatically checks/creates its required SQL tables. `sql/otters_usedvehicles.sql` is also included as a manual backup.
{% endstep %}

{% step %}

### Configure the resource

Review `config.lua` and configure your dealership locations, integrations and listing settings.
{% endstep %}

{% step %}

### Configure staff permissions

Add the required ACE permission for staff who should use the Admin Panel.
{% endstep %}

{% step %}

### Add the resource to your server configuration

Add the following to `server.cfg`:

```cfg
ensure otters_usedvehicles
```

{% endstep %}

{% step %}

### Restart the server

Restart the server.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The supplied `config.lua` in this documentation pack is the **default distribution config**. Private Discord webhooks and image-upload endpoints are intentionally blank and should be configured by the server owner.
{% endhint %}

## Accessible Files

The release is prepared for FiveM Asset Escrow while keeping the server-owner files accessible:

* `config.lua`
* `html/css/theme.css`
* `README.md`
* `sql/otters_usedvehicles.sql`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://otters-developments.gitbook.io/otters-developments/paid-resources/used-vehicle-dealership.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
