> 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/interfaz/cuxial-chat/troubleshooting.md).

# Problemas frecuentes

Problemas habituales de Cuxial Chat, con su causa y su solución.

Los fallos más habituales después de instalar Cuxial Chat, con la causa y la solución de cada uno.

<details>

<summary>El recurso no arranca</summary>

**Causa.** Falta una dependencia o arranca después del chat. Cuxial Chat necesita OneSync, `ox_lib`, `oxmysql` y `cuxial_bridge`.

**Solución.** Activa OneSync y arranca primero las dependencias:

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

```cfg
ensure ox_lib
ensure oxmysql
ensure cuxial_bridge
ensure cuxial_chat
```

{% endcode %}

</details>

<details>

<summary>Salen dos chats, o sigue abriéndose el chat por defecto</summary>

**Causa.** Hay otro recurso de chat en marcha. Cuxial Chat ocupa el lugar de `chat` y no puede compartirlo.

**Solución.** Quita `ensure chat` y cualquier otro script de chat de `server.cfg` y reinicia el servidor.

</details>

<details>

<summary>Pulsar T no hace nada y el chat no aparece</summary>

**Causa.** La interfaz no carga. Falta la carpeta `web/dist` o está incompleta, normalmente por una subida a medias.

**Solución.** Comprueba que existen `web/dist/index.html` y la carpeta `web/dist/assets` dentro del recurso. Si faltan, vuelve a copiar el recurso desde el paquete original y reinicia el servidor.

</details>

<details>

<summary>He cambiado ui.openKey y el chat sigue abriéndose con la tecla anterior</summary>

**Causa.** `ui.openKey` es solo el valor por defecto. Cuando un jugador ya ha entrado, FiveM recuerda su tecla.

**Solución.** Cada jugador la cambia en los ajustes de GTA, en las teclas de FiveM. Los jugadores nuevos reciben el valor nuevo.

</details>

<details>

<summary>/me y /do no salen en el chat</summary>

**Causa.** `actions.display` está en `'head'`, así que las acciones solo se ven sobre la cabeza.

**Solución.** Pon `actions.display = 'both'` en `shared/config.lua`. Quien ya haya elegido un valor en sus ajustes conserva el suyo.

</details>

<details>

<summary>Los nombres salen como «Jugador 12»</summary>

**Causa.** El chat no ha podido leer el nombre del personaje. `cuxial_bridge` no está conectado al framework o arrancó antes que él.

**Solución.** Arranca el framework antes que `cuxial_bridge`, y `cuxial_bridge` antes que `cuxial_chat`.

</details>

<details>

<summary>El nombre no se oculta al llevar máscara</summary>

**Causa.** Una de estas:

* `anonymous.enabled` está en `false`.
* `anonymous.anyMask` está en `false` y el número de la máscara no está en `anonymous.masks`.
* El canal no está en `true` dentro de `anonymous.channels`.
* Es un mensaje privado o del canal de organizaciones. Los dos muestran siempre el nombre real.
* El recurso de ropa acaba de cambiar la máscara.

**Solución.** Revisa el bloque `anonymous`. Para que se actualice al momento tras un cambio de ropa, llama a `exports.cuxial_chat:refreshMask()` desde el cliente.

</details>

<details>

<summary>/gchat responde «No perteneces a ninguna organización»</summary>

**Causa.** El jugador no tiene banda y su trabajo no está en `gchat.policeJobs` (o está fuera de servicio con `gchat.requireDuty = true`).

**Solución.** Asigna una banda al jugador, o añade su tipo o nombre de trabajo a `gchat.policeJobs`.

</details>

<details>

<summary>Todas las organizaciones salen con el mismo color en /gchat</summary>

**Causa.** `cuxial_gang` no está en marcha, así que todas usan `gchat.fallbackColor`.

**Solución.** Arranca `cuxial_gang`, o cambia `gchat.fallbackColor`. El chat vuelve a leer los colores en menos de un minuto; no hace falta reiniciar.

</details>

<details>

<summary>El comando de imágenes no existe o rechaza el enlace</summary>

**Causa.** `images.enabled` viene en `false`. Con él activado, un enlace se rechaza si no es `https`, si pasa de 400 caracteres, si su dominio no está en `images.hosts`, si no acaba en una extensión de `images.extensions`, o si el jugador ha superado `images.perMinute`.

**Solución.** Pon `images.enabled = true` y añade los dominios que quieras permitir. El chat le dice al jugador por qué se ha rechazado el enlace.

</details>

<details>

<summary>Los ajustes se pierden cuando el jugador reconecta</summary>

**Causa.** `persistSettings` está en `false`, o no se pudo crear la tabla `cuxial_chat_settings`.

**Solución.** Pon `persistSettings = true` y revisa en la consola del servidor los errores de `oxmysql` al arrancar el recurso. El usuario de la base de datos necesita permiso para crear tablas.

</details>

<details>

<summary>Los registros no llegan a Discord</summary>

**Causa.** La convar del webhook está vacía o no se llama como indica `logs.discord.convar`, o el canal no está activado en `logs.channels`.

**Solución.** Añade la convar a `server.cfg` antes de que arranque el chat. Se lee una sola vez, al arrancar el recurso:

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

```cfg
set cuxial_chat_webhook "https://discord.com/api/webhooks/..."
```

{% endcode %}

Los mensajes se envían por lotes, así que pueden tardar hasta `logs.discord.flushMs` en llegar. Con `debug = true` la consola indica si Discord está activo y cualquier respuesta fallida.

</details>

<details>

<summary>Los textos salen en otro idioma</summary>

**Causa.** El chat sigue la convar `ox:locale`.

**Solución.** Defínela en `server.cfg` y reinicia. Se incluyen `es` y `en`:

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

```cfg
setr ox:locale "es"
```

{% endcode %}

</details>

<details>

<summary>Faltan comandos de otro recurso en el autocompletado</summary>

**Causa.** Ese recurso no anuncia sus comandos al chat.

**Solución.** Añádelos con el evento estándar:

```lua
TriggerClientEvent('chat:addSuggestion', -1, '/micomando', 'Qué hace')
```

</details>

<details>

<summary>Los mensajes enviados muy seguidos se pierden</summary>

**Causa.** Para el texto escrito sin comando, el chat acepta un mensaje cada 300 milisegundos por jugador. Los mensajes están limitados a 400 caracteres. Protege al servidor del spam.

**Solución.** No hace falta ninguna. Es intencionado.

</details>


---

# 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/interfaz/cuxial-chat/troubleshooting.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.
