> 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-chipeo/configuration.md).

# Configuración

Todas las opciones de Cuxial Chipeo explicadas: ítems, audio, sobrecalentamiento, presión de cabina, altavoces, taller y staff.

Todo lo que se puede ajustar está en `shared/config.lua`. Reinicia el recurso después de cualquier cambio.

## Modo de pruebas

| Opción  | Tipo    | Por defecto | Qué hace                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `debug` | boolean | `false`     | `true` = modo de pruebas para el staff: a los jugadores con el permiso de `admin.permission` no se les exige ítem, dueño, trabajo ni materiales, no se les quita ni se les da nada del inventario, la biblioteca les ofrece USB virtuales y tienen los comandos de prueba de [Comandos y permisos](/scripts/es/vehiculos/cuxial-chipeo/commands.md#comandos-del-modo-de-pruebas). `false` = comportamiento normal. |

## Interfaz · `ui`

| Opción            | Tipo         | Por defecto  | Qué hace                                                                                                                                                                   |
| ----------------- | ------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `accent`          | string (hex) | configurable | Color de acento de la radio.                                                                                                                                               |
| `allowAccent`     | boolean      | `false`      | `true` deja que cada jugador elija su color en la pestaña de ajustes. `false` oculta esa sección y todos usan `accent`.                                                    |
| `allowBackground` | boolean      | `true`       | `true` deja que cada jugador ponga el enlace de una imagen o gif como fondo de la radio. `false` oculta la sección e ignora los fondos guardados.                          |
| `allowAcoustics`  | boolean      | `false`      | `true` deja que cada jugador apague para sí mismo el audio 3D y la oclusión. `false` oculta los dos interruptores y los valores del bloque `acoustics` valen para todos.   |
| `cameraKey`       | string       | `'Alt'`      | Tecla que, mantenida con la radio abierta, suelta el ratón para mover la cámara. Usa el nombre de la tecla tal como lo da el navegador: `'Alt'`, `'Control'`, `'Shift'`... |

## Abrir la radio

| Opción        | Tipo   | Por defecto | Qué hace                                                                                                                                                                                     |
| ------------- | ------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `command`     | string | `'chipeo'`  | Comando que abre y cierra la radio. `''` no registra comando.                                                                                                                                |
| `keybind`     | string | `'F4'`      | Tecla por defecto para lo mismo. `''` no registra tecla. Cada jugador puede cambiarla en los ajustes de teclas de GTA.                                                                       |
| `remoteRange` | number | `12.0`      | Metros. Fuera del coche, el dueño o quien instaló el equipo pueden abrir la radio hasta esta distancia. También es la distancia máxima a un altavoz portátil para manejar la radio desde él. |

## Ítems · `items`

| Opción    | Tipo   | Por defecto         | Qué hace                                                                                                                                                       |
| --------- | ------ | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `install` | string | `'chipeo_radio'`    | Ítem que instala el equipo. Se consume.                                                                                                                        |
| `unmount` | string | `'chipeo_unmount'`  | Ítem que desinstala el equipo. Se consume y se devuelve el ítem de `install`.                                                                                  |
| `usb`     | table  | `usb_8` a `usb_128` | Memorias USB: `nombre del ítem = número de canciones que caben`. Dos USB no pueden tener la misma capacidad.                                                   |
| `medusas` | table  | `{}`                | Altavoces portátiles: `nombre del ítem = nombre del prop`. Vacío = sin altavoces portátiles. Los props no están incluidos; pon solo los que tenga tu servidor. |

Cada nombre de ítem que aparezca aquí necesita su ítem en el inventario con el export `cuxial_chipeo.<nombre del ítem>`. Consulta [Instalación](/scripts/es/vehiculos/cuxial-chipeo/installation.md).

## Instalar y desinstalar · `install`

| Opción             | Tipo    | Por defecto | Qué hace                                                                                                              |
| ------------------ | ------- | ----------- | --------------------------------------------------------------------------------------------------------------------- |
| `timeMs`           | number  | `5000`      | Duración de la barra de progreso de instalación, en milisegundos.                                                     |
| `ownerOnly`        | boolean | `false`     | `true` = solo el dueño del vehículo puede instalar. `false` = cualquiera con el ítem, en cualquier vehículo.          |
| `unmountTimeMs`    | number  | `5000`      | Duración de la barra de progreso de desinstalación, en milisegundos.                                                  |
| `unmountOwnerOnly` | boolean | `true`      | `true` = solo el dueño del vehículo o quien instaló el equipo pueden desinstalarlo. `false` = cualquiera con el ítem. |
| `range`            | number  | `4.0`       | Metros hasta el vehículo para instalar o desinstalar desde fuera.                                                     |

## Audio · `audio`

| Opción            | Tipo      | Por defecto                              | Qué hace                                                                                                                                |
| ----------------- | --------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `defaultDistance` | number    | `10.0`                                   | Metros a los que se oye un vehículo, para los modelos que no están en `vehicles.distance`. Es el tope del mando de alcance de la radio. |
| `maxVolumeBoost`  | number    | `5.0`                                    | Tope del mando de volumen para los modelos que no están en `vehicles.volume`. `1.0` es el volumen normal.                               |
| `proximityMs`     | number    | `250`                                    | Milisegundos entre comprobaciones de distancia en cada cliente mientras suena algo. Más bajo es más fluido y cuesta más.                |
| `maxBass`         | number    | `100`                                    | Escala del mando de bajos.                                                                                                              |
| `bassHz`          | table     | `min = 60`, `max = 200`, `default = 110` | Rango y valor inicial del corte del subwoofer, en Hz.                                                                                   |
| `maxPunch`        | number    | `100`                                    | Escala del mando de pegada.                                                                                                             |
| `eqBands`         | number\[] | `60, 170, 350, 1000, 3500, 10000`        | Frecuencia central de cada banda del ecualizador, en Hz. El número de entradas es el número de bandas.                                  |
| `eqRangeDb`       | number    | `12`                                     | Cada banda se mueve entre menos y más estos dB.                                                                                         |
| `presetSlots`     | number    | `5`                                      | Presets de ecualizador que puede guardar cada jugador.                                                                                  |

## Sobrecalentamiento · `overheat`

Mientras suena una canción con los bajos en el umbral o por encima, el equipo se calienta un punto por segundo. Cuando el contador llega a `seconds`, se fríe.

| Opción              | Tipo    | Por defecto | Qué hace                                                                     |
| ------------------- | ------- | ----------- | ---------------------------------------------------------------------------- |
| `enabled`           | boolean | `true`      | `false` desactiva el sobrecalentamiento: el equipo nunca se fríe solo.       |
| `seconds`           | number  | `15`        | Segundos con los bajos por encima del umbral hasta que el equipo se fríe.    |
| `bassThreshold`     | number  | `80`        | Nivel de bajos, de 0 a `audio.maxBass`, a partir del cual se calienta.       |
| `cooldownPerSecond` | number  | `2`         | Puntos que baja el contador por segundo con los bajos por debajo del umbral. |
| `fireSeconds`       | number  | `20`        | Segundos que duran el fuego y el humo.                                       |
| `damagedMaxVolume`  | number  | `1.0`       | Volumen máximo con el equipo frito.                                          |
| `damagedMaxBass`    | number  | `20`        | Bajos máximos con el equipo frito.                                           |

Un equipo frito sigue limitado hasta que se repara. Mira el bloque `mechanic` más abajo.

## Presión de cabina · `pressure`

Con todas las puertas, ventanas y techo cerrados, las ventanas intactas y el volumen muy alto, la presión sube hasta que revienta una ventana.

| Opción              | Tipo    | Por defecto | Qué hace                                                                                                                                                                      |
| ------------------- | ------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `enabled`           | boolean | `true`      | `false` la desactiva: las ventanas nunca revientan.                                                                                                                           |
| `volumeThreshold`   | number  | `0.7`       | Fracción del volumen máximo del vehículo a partir de la cual sube la presión.                                                                                                 |
| `seconds`           | number  | `10`        | Tamaño del medidor de presión. La presión sube entre 0,35 y 1,3 puntos por segundo según el volumen, los bajos y la pegada, y una ventana revienta cuando llega a este valor. |
| `cooldownPerSecond` | number  | `2`         | Cuánto baja la presión por segundo cuando no se cumplen las condiciones.                                                                                                      |
| `breakCooldown`     | number  | `12`        | Segundos de gracia después de reventar una ventana.                                                                                                                           |

## Acústica · `acoustics`

| Opción          | Tipo    | Por defecto | Qué hace                                                                                                                                        |
| --------------- | ------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `spatial`       | boolean | `true`      | Audio 3D: el sonido llega desde donde está el coche respecto a la cámara.                                                                       |
| `occlusion`     | boolean | `true`      | Las paredes y edificios entre el jugador y la fuente apagan el sonido. Un coche en un interior distinto al del jugador se oye apagado del todo. |
| `occlusionRays` | number  | `3`         | Rayos que se trazan por fuente, de 1 a 3. Más es más fino y cuesta más.                                                                         |

Con `ui.allowAcoustics = true` cada jugador puede apagar `spatial` y `occlusion` para sí mismo. No puede encender lo que aquí esté en `false`.

## Efectos · `fx`

| Opción     | Tipo  | Por defecto                                          | Qué hace                                                                                                                                                                                               |
| ---------- | ----- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `fire`     | table | hueso del maletero, partículas `core`                | Fuego y humo cuando el equipo se fríe: hueso `bone`, diccionario de partículas `dict`, nombres de efecto `fire` y `smoke`, y sus escalas `fireScale` y `smokeScale`.                                   |
| `sparkle`  | table | `minBass = 60`, `intervalMs = 700`                   | Chispas mientras los bajos están en `minBass` o por encima, cada `intervalMs` milisegundos: `dict`, `name`, `scale` y `bone`.                                                                          |
| `shake`    | table | `enabled = true`, `multiplier = 0.5`, `minBass = 40` | Vibración de cámara cerca de un coche con los bajos en `minBass` o por encima. `enabled = false` la apaga; `multiplier` ajusta la fuerza.                                                              |
| `vehicles` | table | lista de ejemplo                                     | Por modelo: `fireBone` (un nombre o una lista) y `sparkleBones` (una lista), para vehículos cuyo equipo de audio tiene huesos propios. Los modelos que no estén usan los huesos de `fire` y `sparkle`. |

Si un hueso no existe en un vehículo, el efecto sale en el maletero.

## Vehículos · `vehicles`

| Opción      | Tipo      | Por defecto      | Qué hace                                                                                                       |
| ----------- | --------- | ---------------- | -------------------------------------------------------------------------------------------------------------- |
| `blacklist` | string\[] | bicicletas       | Modelos que no admiten equipo.                                                                                 |
| `distance`  | table     | lista de ejemplo | `nombre del modelo = metros`. Alcance máximo del sonido para ese modelo. El resto usa `audio.defaultDistance`. |
| `volume`    | table     | lista de ejemplo | `nombre del modelo = volumen máximo`. El resto usa `audio.maxVolumeBoost`.                                     |

Los modelos de `distance`, `volume` y `fx.vehicles` (`sultan` y `speedo`) son ejemplos. Cámbialos por los nombres de spawn de tus propios vehículos.

{% code title="shared/config.lua" %}

```lua
vehicles = {
    blacklist = { 'bmx', 'scorcher' },
    distance = { sultan = 20.0, speedo = 25.0 },
    volume = { sultan = 6.0, speedo = 7.0 },
},
```

{% endcode %}

## Altavoces portátiles · `medusa`

| Opción         | Tipo   | Por defecto | Qué hace                                                                                                                                                                                                                          |
| -------------- | ------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `pairRange`    | number | `15.0`      | Metros. Al colocarlo, el altavoz se empareja con el vehículo con equipo más cercano dentro de este radio.                                                                                                                         |
| `signalRange`  | number | `30.0`      | Metros. Si el coche se aleja más, el altavoz pierde la señal y deja de sonar. Después intenta emparejarse otra vez con un coche dentro de `pairRange`.                                                                            |
| `distance`     | number | `12.0`      | Metros a los que se oye el altavoz.                                                                                                                                                                                               |
| `maxPerPlayer` | number | `3`         | Altavoces que un jugador puede tener colocados a la vez.                                                                                                                                                                          |
| `cable`        | table  | activado    | Cable que se dibuja entre el altavoz y el coche. `enabled = false` lo oculta. `bone` y `offset` marcan dónde nace en el prop, `vehicleBone` dónde acaba en el coche, y `overrides` cambia `bone` y `offset` para props concretos. |

## Taller · `mechanic`

| Opción         | Tipo    | Por defecto           | Qué hace                                                                                                                                    |
| -------------- | ------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `enabled`      | boolean | `true`                | `false` quita el comando de reparación. Un equipo frito solo se podrá arreglar con el export `SetDamaged`.                                  |
| `command`      | string  | `'repairchipeo'`      | Comando que repara el equipo del vehículo más cercano.                                                                                      |
| `timeMs`       | number  | `30000`               | Duración de la barra de progreso de reparación, en milisegundos.                                                                            |
| `range`        | number  | `5.0`                 | Metros hasta el vehículo.                                                                                                                   |
| `jobs`         | table   | `{ mechanic = true }` | Trabajos que pueden reparar: `nombre del trabajo = true`. Añade los trabajos de mecánico de tu servidor.                                    |
| `requirements` | table   | cuatro materiales     | Materiales que consume una reparación. Cada entrada lleva `item`, `amount` y `label` (el nombre que se muestra cuando al jugador le falta). |

{% code title="shared/config.lua" %}

```lua
mechanic = {
    enabled = true,
    command = 'repairchipeo',
    timeMs = 30000,
    range = 5.0,
    jobs = { mechanic = true },
    requirements = {
        { item = 'chipeo_amp', amount = 1, label = 'Amplifier' },
        { item = 'chipeo_cables', amount = 2, label = 'Cables' },
    },
},
```

{% endcode %}

## Staff · `admin`

| Opción         | Tipo   | Por defecto         | Qué hace                                                                                                                                                                   |
| -------------- | ------ | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `permission`   | string | `'admin'`           | Permiso del framework, comprobado a través de Cuxial Bridge, que identifica al staff: da acceso a los comandos de staff, a recoger cualquier altavoz y al modo de pruebas. |
| `removeAll`    | string | `'removeallchipeo'` | Comando que retira todos los altavoces colocados.                                                                                                                          |
| `removeNearby` | string | `'removechipeo'`    | Comando que retira los altavoces colocados alrededor del miembro del staff.                                                                                                |
| `nearbyRadius` | number | `30.0`              | Radio de `removeNearby`, en metros.                                                                                                                                        |

## Biblioteca · `library`

| Opción              | Tipo             | Por defecto                                               | Qué hace                                                                                                                                                                                    |
| ------------------- | ---------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `autoNext`          | boolean          | `true`                                                    | `true` = cuando acaba una canción guardada en el USB insertado, suena la siguiente del USB, y tras la última vuelve a empezar. `false` = la reproducción se detiene al acabar cada canción. |
| `maxNameLength`     | number           | `60`                                                      | Longitud máxima del nombre de una canción.                                                                                                                                                  |
| `maxUrlLength`      | number           | `500`                                                     | Longitud máxima de un enlace.                                                                                                                                                               |
| `allowedExtensions` | string\[] \| nil | `mp3`, `wav`, `ogg`, `m4a`, `aac`, `flac`, `opus`, `webm` | Extensiones en las que tiene que acabar un enlace. `nil` acepta cualquier enlace `https://`.                                                                                                |

{% hint style="info" %}
Solo funcionan los enlaces directos a un archivo de audio. Un enlace se acepta cuando empieza por `https://`, no lleva espacios ni comillas y acaba en una de las extensiones permitidas. La dirección de una página de vídeo o de streaming no es un archivo de audio.
{% endhint %}


---

# 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-chipeo/configuration.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.
