> 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/es/vehiculos/cuxial-fuel/developers.md).

# Exports y eventos

API pública de Cuxial Fuel: exports y state bag para leer y fijar el combustible desde otros recursos.

Lee y fija el combustible de un vehículo desde tus propios recursos, en el cliente o en el servidor. El combustible es siempre un porcentaje del depósito, de `0` a `100`.

## State bag

El nivel de combustible de cada vehículo se publica en su state bag `fuel` (`number`, de `0` a `100`). Está replicado, así que se puede leer en cualquier lado:

```lua
local level = Entity(vehicle).state.fuel
```

El valor es `nil` hasta que alguien ha conducido el vehículo o un recurso lo ha fijado. Para escribirlo, usa los exports de abajo.

## Exports de cliente

### GetFuel

Devuelve el nivel de combustible de un vehículo.

```lua
local level = exports.cuxial_fuel:GetFuel(vehicle)
```

| Parámetro | Tipo   | Descripción           |
| --------- | ------ | --------------------- |
| `vehicle` | number | Entidad del vehículo. |

**Devuelve:** `number`, de `0` a `100`. `0` cuando el vehículo no existe.

```lua
if exports.cuxial_fuel:GetFuel(cache.vehicle) < 10 then
    lib.notify({ description = 'Poco combustible' })
end
```

### SetFuel

Fija el nivel de combustible de un vehículo.

```lua
exports.cuxial_fuel:SetFuel(vehicle, value)
```

| Parámetro | Tipo   | Descripción                        |
| --------- | ------ | ---------------------------------- |
| `vehicle` | number | Entidad del vehículo.              |
| `value`   | number | Porcentaje. Se limita a `0`–`100`. |

```lua
exports.cuxial_fuel:SetFuel(vehicle, 100.0)
```

{% hint style="warning" %}
El nivel solo llega a los demás jugadores cuando el cliente que llama al export es el dueño de red del vehículo, normalmente su conductor. Desde cualquier otro cliente, usa el export de servidor.
{% endhint %}

### SetFuelType

Fija el tipo de combustible guardado de un vehículo. No vacía el depósito.

```lua
exports.cuxial_fuel:SetFuelType(vehicle, fuel)
```

| Parámetro | Tipo          | Descripción                                                                                                                                                                      |
| --------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `vehicle` | number        | Entidad del vehículo. Tiene que estar en red.                                                                                                                                    |
| `fuel`    | string \| nil | `'regular'`, `'plus'`, `'premium'`, `'diesel'`, `'electric_fast'` o `'electric_normal'`. `nil`, `''` o `'default'` borra el tipo guardado, y el vehículo vuelve al de su modelo. |

El jugador tiene que estar dentro del vehículo o a menos de `distances.fuelType` metros de él. El servidor acepta 5 cambios cada 10 segundos por jugador.

```lua
exports.cuxial_fuel:SetFuelType(vehicle, 'diesel')
```

### Alias en minúscula

`getFuel`, `setFuel` y `setFuelType` son los mismos exports con la primera letra en minúscula.

```lua
local level = exports.cuxial_fuel:getFuel(vehicle)
```

## Exports de servidor

### GetFuel

Devuelve el nivel de combustible de un vehículo.

```lua
local level = exports.cuxial_fuel:GetFuel(vehicle)
```

| Parámetro | Tipo   | Descripción                          |
| --------- | ------ | ------------------------------------ |
| `vehicle` | number | Entidad del vehículo en el servidor. |

**Devuelve:** `number` de `0` a `100`, o `nil` cuando el vehículo no existe o no tiene nivel.

```lua
local vehicle = NetworkGetEntityFromNetworkId(netId)
local level = exports.cuxial_fuel:GetFuel(vehicle) or 0
```

### SetFuel

Fija el nivel de combustible de un vehículo. El cliente dueño del vehículo lo aplica en el juego.

```lua
local ok = exports.cuxial_fuel:SetFuel(vehicle, value)
```

| Parámetro | Tipo   | Descripción                          |
| --------- | ------ | ------------------------------------ |
| `vehicle` | number | Entidad del vehículo en el servidor. |
| `value`   | number | Porcentaje. Se limita a `0`–`100`.   |

**Devuelve:** `boolean`. `false` cuando el vehículo no existe o el valor no es un número.

```lua
-- Depósito lleno para un vehículo que sale de un garaje
exports.cuxial_fuel:SetFuel(vehicle, 100)
```

## Compatibilidad con otros scripts de combustible

Cuxial Fuel declara, con `provide`, los nombres de recurso de los scripts de combustible más habituales. Están al principio de su `fxmanifest.lua`. Un recurso que llama a los exports de combustible con uno de esos nombres sigue funcionando sin cambios:

| Lado     | Exports que responde con esos nombres                        |
| -------- | ------------------------------------------------------------ |
| Cliente  | `GetFuel`, `SetFuel`, `SetFuelType` y sus alias en minúscula |
| Servidor | `GetFuel`, `SetFuel`                                         |

## Eventos

Cuxial Fuel no tiene eventos públicos. Usa los exports y el state bag.

## Integración con Cuxial Gas Stations

El enlace con `cuxial_gasstations` es automático: cuando ese recurso está arrancado, Cuxial Fuel le pide precios, stock y promociones y le comunica cada venta, reembolso y derrame. No hay nada que configurar ni que llamar desde tus recursos.


---

# 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/es/vehiculos/cuxial-fuel/developers.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.
