> 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/policia-y-medico/cuxial-diseases/troubleshooting.md).

# Problemas frecuentes

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

Los fallos más habituales tras instalar Cuxial Diseases, 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. Cuxial Diseases 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_diseases
```

{% endcode %}

</details>

<details>

<summary>Todos los jugadores enfermaron a los pocos días de instalarlo</summary>

**Causa.** El plazo de vacunación está activado (`onboarding.enabled = true`). Los personajes que ya existían tienen `onboarding.hoursExisting` horas desde su primera entrada y los nuevos, `onboarding.hours`. Quien no se vacuna a tiempo contrae la enfermedad de `onboarding.disease`.

**Solución.** Asegúrate de que el ítem de la vacuna existe y de que los jugadores pueden conseguirlo, o pon `onboarding.enabled = false`. Para librar solo a los personajes que ya existían, pon `onboarding.applyToExisting = false`. El staff puede curar a un jugador con `/disease cure` y reiniciar su plazo con `/disease onboarding <id>`.

</details>

<details>

<summary>La consola muestra un error de «onboarding» cuando entra un jugador</summary>

**Causa.** El plazo de vacunación lee la tabla de personajes del framework y necesita las columnas `id` y `citizenid`. Existen en QBox y QBCore, no en ESX.

**Solución.** En ESX, deja `onboarding.enabled = false`. Si usas una tabla de personajes propia, revisa el nombre de tabla indicado a `cuxial_bridge`.

</details>

<details>

<summary>Usar un ítem no hace nada, o el inventario avisa de que falta un export</summary>

**Causa.** Una de estas:

* El ítem no aparece en `data/diseases.lua` como `test.item`, `treatment.item`, `treatment.box.item` o `vaccine.item`, así que el script no registra ningún export para él.
* `server.export` en la definición del ítem no coincide con `cuxial_diseases.<nombre del ítem>`.
* Se cambió el nombre de la carpeta del recurso.
* La prueba está marcada con `external = true` en el catálogo, así que debe gestionarla otro recurso.

**Solución.** Usa el nombre exacto del ítem del catálogo en los dos sitios y conserva el nombre de carpeta `cuxial_diseases`. Reinicia el servidor después de cambiar el catálogo.

</details>

<details>

<summary>Un medicamento responde «No necesitas esto»</summary>

**Causa.** El jugador no tiene ninguna enfermedad activa que ese ítem trate. El ítem no se gasta.

**Solución.** No hace falta ninguna. Comprueba lo que tiene el jugador con `/disease status <id>`.

</details>

<details>

<summary>Una pastilla se rechaza porque la anterior sigue activa</summary>

**Causa.** La siguiente dosis solo se admite cuando la anterior se ha agotado, o pasadas `treatment.minIntervalHours` si la enfermedad lo indica.

**Solución.** Espera las horas que dice el mensaje, o baja `minIntervalHours` en esa enfermedad.

</details>

<details>

<summary>Las dosis tomadas han vuelto a cero</summary>

**Causa.** El jugador pasó demasiado tiempo sin tomar una dosis. Pasadas `treatment.resetAfterHours` desde la última, el doble de `effectHours` por defecto, la rutina se da por rota y el contador empieza de nuevo.

**Solución.** Sube `resetAfterHours` en esa enfermedad, o ponlo en `0` para que el contador nunca se pierda.

</details>

<details>

<summary>Un jugador enfermo no tiene síntomas</summary>

**Causa.** Una de estas:

* `symptoms.enabled` está en `false`.
* La etapa actual no tiene síntomas, como en una etapa de incubación.
* Hay una dosis activa y el tratamiento tiene `suppressSymptoms = true`, o los reduce.
* El jugador está muerto o inconsciente y `symptoms.skipWhenDead` está en `true`.
* El jugador va en un vehículo: tos, mareo, vómito y fatiga esperan a que se baje.
* No ha pasado tiempo suficiente. Los intervalos son minutos de juego y cada uno es aleatorio entre `min` y `max`.

**Solución.** Revisa el caso con `/disease status <id>`, cámbialo de etapa con `/disease stage` y prueba las animaciones con `/disease symptom <id>`.

</details>

<details>

<summary>Nadie se contagia de los jugadores enfermos</summary>

**Causa.** El contagio por cercanía viene desactivado. Con él activado, una enfermedad solo se transmite si tiene `contagion.proximity`, el enfermo está en una de las etapas que ahí se listan y el otro jugador está dentro del radio. Una mascarilla en el inventario, una inmunidad o una vacuna reducen o eliminan el riesgo.

**Solución.** Pon `proximity.enabled = true` en `shared/config.lua` y reinicia el recurso. Sube `chance` en el catálogo para un contagio más rápido.

</details>

<details>

<summary>El paciente no sabe qué enfermedad tiene</summary>

**Causa.** `diagnosis.revealToPatient` está en `false`. El nombre queda oculto hasta que el caso se diagnostica.

**Solución.** Diagnostica el caso con una prueba positiva, desde la MDT de Cuxial Police o con `/disease diagnose`. Para mostrar el nombre desde el principio, pon `diagnosis.revealToPatient = true`.

</details>

<details>

<summary>Una prueba sale negativa o no concluyente en un jugador enfermo</summary>

**Causa.** Una prueba solo comprueba las enfermedades que nombran ese ítem en `test.item`. Durante `incubationHours` el resultado puede ser no concluyente, con el porcentaje de `test.inconclusiveChance`.

**Solución.** Usa el ítem de prueba de esa enfermedad, o repite la prueba pasado el tiempo de incubación.

</details>

<details>

<summary>/disease responde que no tienes permiso, o el comando no existe para ti</summary>

**Causa.** Los comandos necesitan dos cosas: pertenecer al grupo ACE de `admin.restricted` y tener el permiso del framework de `admin.permission`.

**Solución.** Añade al miembro del staff al grupo en `server.cfg` y dale el permiso de administrador de tu framework:

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

```cfg
add_principal identifier.license:xxxxxxxxxxxxxxxx group.admin
```

{% endcode %}

</details>

<details>

<summary>Una vacuna se rechaza con «la vacuna no sirve ahora»</summary>

**Causa.** El jugador ya tiene la enfermedad contra la que protege la vacuna. Una vacuna no cura.

**Solución.** Trata primero la enfermedad y vacuna después.

</details>

<details>

<summary>Una etapa letal nunca derriba al paciente</summary>

**Causa.** El colapso lo ejecuta `cuxial_medical`. Sin él, el script solo envía el evento `collapse`. Un colapso necesita además que el paciente esté conectado, sin una dosis activa, y `symptoms.enabled = true` para el que provoca la pérdida de vida.

**Solución.** Arranca `cuxial_medical`, o gestiona el evento desde tu propio script de ambulancia. Consulta [Exports y eventos](/scripts/es/policia-y-medico/cuxial-diseases/developers.md#hooks).

</details>

<details>

<summary>Un médico no puede completar el plan de cura</summary>

**Causa.** Los pasos de `cure.steps` se aplican desde la MDT de Cuxial Police. Un paso con `hours` no se puede hacer antes de que pase ese tiempo, y un paso con `item` necesita que el médico lo lleve encima.

**Solución.** Arranca `cuxial_police`. Sin él, completa los pasos desde tu propio recurso con el export `AdvanceCureStep`, o cura con `/disease cure`.

</details>

<details>

<summary>La app de salud no está en el teléfono</summary>

**Causa.** Una de estas:

* `lb-phone` no está en marcha.
* `app.enabled` está en `false`.
* `app.defaultApp` está en `false`, así que la app hay que descargarla de la tienda de apps del teléfono.

**Solución.** Arranca `lb-phone`, revisa el bloque `app` y, para instalarla en todos los teléfonos, pon `app.defaultApp = true`.

</details>

<details>

<summary>La app de salud se abre en blanco</summary>

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

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

</details>

<details>

<summary>La pestaña de citas de la app está siempre vacía</summary>

**Causa.** Las citas vienen de Cuxial Police. Sin ese recurso no hay ninguna.

**Solución.** No hace falta ninguna si no usas Cuxial Police.

</details>

<details>

<summary>A un personaje embarazado le cambia la parte de arriba por una prenda equivocada</summary>

**Causa.** `belly.enabled` está en `true` y los valores `drawable` de `belly.stages` están en su valor por defecto, `0`.

**Solución.** En `data/pregnancy.lua`, pon en `belly.stages` la ropa de barriga de tu servidor, o pon `belly.enabled = false`.

</details>

<details>

<summary>No hay citas de revisión ni aviso a EMS durante un embarazo</summary>

**Causa.** Las dos cosas se crean mediante Cuxial Police. Las revisiones y la cita de parto necesitan además que el embarazo sea conocido: una prueba positiva, la MDT o `/pregnancy reveal`.

**Solución.** Arranca `cuxial_police`. Sin él, el embarazo sigue avanzando, el parto empieza y el nacimiento ocurre cuando se agota `labor.durationMin`.

</details>

<details>

<summary>Los nombres de las enfermedades salen en otro idioma</summary>

**Causa.** Los avisos y los comandos siguen la convar `ox:locale`, con `es` y `en` incluidos. Los nombres de enfermedades, etapas, pasos de cura y meses de embarazo son texto escrito en `data/diseases.lua` y `data/pregnancy.lua`.

**Solución.** Define la convar y traduce los textos de los dos archivos de datos:

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

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

{% endcode %}

</details>

<details>

<summary>Una enfermedad ha desaparecido de los jugadores tras editar el catálogo</summary>

**Causa.** Su `id` se cambió o se borró en `data/diseases.lua`. Los casos existentes conservan el id antiguo y dejan de procesarse.

**Solución.** Recupera el `id` antiguo. Para retirar una enfermedad, cura antes los casos activos.

</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/policia-y-medico/cuxial-diseases/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.
