> For the complete documentation index, see [llms.txt](https://docs.cuxial.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cuxial.com/scripts/vehicles/cuxial-gasstations/installation.md).

# Installation

Install Cuxial Gas Stations step by step: dependencies, convars, admin permission and start order.

Cuxial Gas Stations needs no SQL import and no inventory items. It creates its tables and loads its factory locations on first start.

{% stepper %}
{% step %}

## Check the dependencies

These must be installed and working first:

* OneSync enabled on the server
* `ox_lib`
* `oxmysql`
* `cuxial_bridge`, with one of the supported frameworks: QBox, QBCore or ESX
* `sleepless_interact`

Optional resources add features when they are running:

| Resource                             | With it                                                                                                                 | Without it                                                                                                      |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Cuxial Fuel (`cuxial_fuel`)          | Pumps sell from the station tanks at the owner's price, apply happy hours, hand out wash vouchers and can cause spills. | Fuel is sold when your own fuel script calls the [exports](/scripts/vehicles/cuxial-gasstations/developers.md). |
| Cuxial Garages (`cuxial_garages`)    | The driver receives the keys of the run vehicle or detailing van, and loses them when it is returned.                   | No keys are handed out. Your key system must let the driver use the vehicle.                                    |
| A phone supported by `cuxial_bridge` | Owner notices arrive on the phone, and customers can request mobile detailing with a message.                           | Notices use the standard `ox_lib` notification. Mobile detailing is requested with `/detailing`.                |
| {% endstep %}                        |                                                                                                                         |                                                                                                                 |

{% step %}

## Copy the resources

Place both folders inside your `resources` directory and keep their names:

* `cuxial_gasstations`
* `cuxial_gas_assets`

`cuxial_gas_assets` holds the props, the detailing van, the pressure gun and the sounds. If you also own Cuxial Fuel, it is the same resource: keep a single copy.
{% endstep %}

{% step %}

## Database

Nothing to import. On first start the resource:

* creates every `cuxial_gasstations_*` table;
* loads the factory delivery destinations and public pressure washers from `install/seed_points.sql`, only while the points table has none.

`install/cuxial_gasstations.sql` is a reference copy of the schema. You do not need to run it.
{% endstep %}

{% step %}

## Set the convars and the admin permission

{% code title="server.cfg" %}

```cfg
# Language (en and es are included)
setr ox:locale "en"

# Discord webhook for station logs (optional)
set cuxial_gasstations_webhook "https://discord.com/api/webhooks/..."

# Debug traces in the console (optional)
setr cuxial_gasstations_debug "0"

# Who can open the admin panel
add_ace group.admin cuxial_gasstations.admin allow
```

{% endcode %}

The admin panel also opens for anyone with the `admin` permission of your framework, so the `add_ace` line is only needed for other groups. Both names can be changed in `admin` in `shared/config.lua`.

{% hint style="info" %}
The webhook goes in `server.cfg`, never in `shared/config.lua`. The convar name can be changed in `logs.convar`.
{% endhint %}
{% endstep %}

{% step %}

## Allow the pressure gun in ox\_inventory

Skip this step if you do not use `ox_inventory`.

The pressure washer puts a tool in the player's hands that is not an inventory item. With its default settings `ox_inventory` removes it at once. Add it to the ignore list:

{% code title="server.cfg" %}

```cfg
setr inventory:ignoreweapons ["WEAPON_PRESSURE1"]
```

{% endcode %}

{% hint style="warning" %}
If you already have an `inventory:ignoreweapons` line, add `"WEAPON_PRESSURE1"` to its list instead of writing a second line. The resource prints a warning in the client console (F8) when the entry is missing.
{% endhint %}
{% endstep %}

{% step %}

## Start the resources

Start the script after its dependencies and after your framework:

{% code title="server.cfg" %}

```cfg
ensure ox_lib
ensure oxmysql
# your framework here (qbx_core, qb-core or es_extended)
ensure cuxial_bridge
ensure sleepless_interact
ensure cuxial_gas_assets
# optional
ensure cuxial_garages
ensure cuxial_fuel
ensure cuxial_gasstations
```

{% endcode %}

{% hint style="danger" %}
`cuxial_gas_assets` must start before `cuxial_gasstations`. Without it the pressure washers, the detailing van and the pressure gun do not exist.
{% endhint %}
{% endstep %}

{% step %}

## Check that it works

1. Join the server and open the map. Every station shows its blip.
2. Go to a station and use the **Manage gas station** interaction. The purchase dialog opens.
3. Type `/gasadmin`. The admin panel opens on the overview.
4. In the admin panel, open **Pressure washers** and place the first wash slot of a station. See [Features guide](/scripts/vehicles/cuxial-gasstations/features.md#admin-panel).
   {% endstep %}
   {% endstepper %}

Next: adjust prices, limits and modules in [Configuration](/scripts/vehicles/cuxial-gasstations/configuration.md).


---

# 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 by asking a question.

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

```
GET https://docs.cuxial.com/scripts/vehicles/cuxial-gasstations/installation.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 `automate deployments from our CI pipeline` 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.
