> 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-medical/troubleshooting.md).

# Problemas frecuentes

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

Los problemas más habituales tras instalar Cuxial Medical, 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 script. Cuxial Medical necesita OneSync, `ox_lib`, `oxmysql` y `cuxial_bridge`.

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

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

```cfg
ensure ox_lib
ensure oxmysql
ensure cuxial_bridge
ensure cuxial_medical
```

{% endcode %}

</details>

<details>

<summary>He cambiado shared/config.lua o data/hospitals.lua y en juego no cambia nada</summary>

**Causa.** En el primer arranque el script copia esos valores a la base de datos, y desde entonces manda la copia de la base de datos en todas las secciones del panel de administración.

**Solución.** Cambia la opción desde `/medadmin`. Para cargar los valores del archivo, reinicia el recurso y pulsa **Fábrica** en esa sección del panel. Los bloques `debug`, `ui`, `admin`, `commands`, `hospital` y `compat` se leen siempre del archivo y solo necesitan un reinicio.

</details>

<details>

<summary>Los jugadores mueren y reaparecen, se reaniman o se teletransportan sin motivo</summary>

**Causa.** Hay otro script de muerte o de ambulancia en marcha. Cuxial Medical proporciona `qb-ambulancejob` y no puede compartir ese papel.

**Solución.** Quita cualquier otro script médico de `server.cfg` y reinicia el servidor.

</details>

<details>

<summary>La pantalla de muerte o el panel de administración no aparecen</summary>

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

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

</details>

<details>

<summary>/medadmin responde que no tengo acceso</summary>

**Causa.** Tu framework no te concede el permiso de `admin.permission` (`'admin'` por defecto).

**Solución.** Date ese permiso en tu framework, o cambia `admin.permission` en `shared/config.lua` y reinicia el recurso.

</details>

<details>

<summary>/revive, /heal o /kill no están disponibles para mi staff</summary>

**Causa.** Por defecto esos comandos están restringidos al grupo ACE `group.mod`, no al permiso del framework.

**Solución.** Añade al miembro del staff al grupo:

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

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

{% endcode %}

O pon `restricted = false` en el comando en `shared/config.lua`, para que use `admin.permission`.

</details>

<details>

<summary>«No estás de servicio como EMS» al usar un ítem</summary>

**Causa.** El trabajo del jugador no está en `jobs`, o el jugador está fuera de servicio. Todos los ítems médicos, el bolso médico y la camilla exigen ambas cosas.

**Solución.** Añade el trabajo en la sección **Trabajos EMS** del panel y entra de servicio con el sistema de tu framework. En ESX, comprueba que tu versión guarda el estado de servicio del trabajo.

</details>

<details>

<summary>Usar un ítem médico no hace nada</summary>

**Causa.** Una de estas:

* El ítem no existe en tu inventario con el nombre fijado en la configuración.
* El inventario no es uno de los compatibles con `cuxial_bridge`.
* El nombre del ítem se cambió en la sección **Items** o **Extras** del panel y no se ha reiniciado el recurso.

**Solución.** Compara los nombres de los ítems con `install/items.lua`, y reinicia el recurso después de cambiarlos.

</details>

<details>

<summary>El desfibrilador pide un medikit</summary>

**Causa.** El ítem `defib` inicia el modo de RCP fijado en `treatment.reviveAnimMode`. El modo de fábrica, `fast`, exige y consume el ítem de `treatment.cpr.fast`, un `medkit`.

**Solución.** Pon `reviveAnimMode` en `full` para reanimar solo con el desfibrilador, o cambia los ítems de `treatment.cpr`.

</details>

<details>

<summary>Un jugador caído no puede reaparecer</summary>

**Causa.** Una de estas:

* La fase actual tiene `respawn = false`. Con los valores de fábrica, la primera fase no lo permite.
* `respawn.checkIn.enabled` está en `true` y hay suficientes EMS de servicio.
* El jugador no puede pagar la tarifa de la fase con la cuenta de `respawn.payAccount`.

**Solución.** Espera a la fase siguiente o a un médico, o ajusta las fases en la sección **Muerte y fases**. Cuando termina la última fase el jugador reaparece sin coste.

</details>

<details>

<summary>El jugador reaparece de pie en el hospital en lugar de en una cama</summary>

**Causa.** `respawn.useBed` está en `false`, o el hospital no tiene ninguna cama pública libre. Las camas marcadas como privadas nunca se asignan.

**Solución.** Activa `useBed` y añade más camas públicas al hospital.

</details>

<details>

<summary>El jugador queda tumbado en el aire o dentro de la cama</summary>

**Causa.** El modelo de la cama no tiene entrada en `data/beds.lua`, o su desplazamiento no coincide con el prop.

**Solución.** Añade tu modelo de cama a `data/beds.lua` con el `offset` y el `heading` correctos, reinicia el recurso y elige ese modelo para las camas en el panel.

</details>

<details>

<summary>Al guardar en el panel responde «Ajuste con forma inválida»</summary>

**Causa.** La sección no ha pasado la validación:

* El `id` de una fase o de un hospital está repetido, o tiene caracteres que no son minúsculas, números y `_`.
* Una fase dura menos de 1 segundo, o su icono no es `heart`, `drop` o `skull`.
* La cuenta no es `cash` ni `bank`.
* Una cama usa un modelo que no está en `data/beds.lua`.

**Solución.** Corrige el valor y vuelve a guardar.

</details>

<details>

<summary>No hay NPC en la recepción</summary>

**Causa.** Una de estas:

* `cuxial_interactions` no está en marcha.
* `hospital.reception.enabled` está en `false`.
* El hospital está desactivado, o su recepción está desactivada o no tiene posición.

**Solución.** Arranca `cuxial_interactions`, abre **Hospitales y camas** en el panel y sitúa el NPC con **Colocar**. El NPC aparece sin reiniciar.

</details>

<details>

<summary>La camilla no aparece o no se puede cargar en la ambulancia</summary>

**Causa.** Una de estas:

* `stretcher.enabled` está en `false`.
* El jugador no es EMS de servicio.
* `stretcher.model` se cambió por un modelo que el servidor no transmite.
* El modelo del vehículo no está en `stretcher.vehicles`, o el médico está más lejos que su `dist`.

**Solución.** Conserva el modelo de fábrica, que va incluido en el recurso, y añade los modelos de tus ambulancias en **Vehículos compatibles**, dentro de la sección **Camilla**.

</details>

<details>

<summary>La policía no recibe los avisos de auxilio</summary>

**Causa.** `cuxial_police` no está en marcha, o `dispatch.police` está en `false`.

**Solución.** Arranca `cuxial_police` y activa **Enviar a cuxial\_police** en la sección **Avisos**. A los EMS de servicio se les avisa en cualquier caso.

</details>

<details>

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

**Causa.** La convar del webhook está vacía, tiene un nombre distinto al de `logs.convar`, o se definió después de arrancar el recurso.

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

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

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

{% endcode %}

Después comprueba que `death`, `revive` y `combat` están activados en la sección **Registros**.

</details>

<details>

<summary>He cambiado una tecla en death.keys pero sigue funcionando la anterior</summary>

**Causa.** `death.keys` solo contiene los valores por defecto. Cuando un jugador ya ha entrado, FiveM recuerda su asignación de teclas.

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

</details>

<details>

<summary>Un jugador entra al servidor ya caído</summary>

**Causa.** Se desconectó estando caído. El estado se guarda con el personaje y se recupera en el siguiente inicio de sesión, en la fase que corresponde al tiempo transcurrido.

**Solución.** No hace falta ninguna. Es intencionado. El staff puede usar `/revive`.

</details>

<details>

<summary>Un jugador no recibe heridas y nunca cae</summary>

**Causa.** El jugador tiene el state bag `inDuel` o `inEvent`. Cuxial Medical los ignora a propósito para que los recursos de duelos y eventos gestionen la muerte por su cuenta. También ocurre con `injury.enabled = false`, que desactiva solo las heridas.

**Solución.** Limpia el state bag desde el recurso que lo puso.

</details>

<details>

<summary>El hambre y la sed no se restablecen tras una reanimación en ESX</summary>

**Causa.** El script restablece el hambre y la sed mediante los metadatos del jugador `hunger` y `thirst`. Los scripts de estado que guardan sus propios valores no los leen.

**Solución.** Restablece tu script de estado desde un hook de servidor:

```lua
exports.cuxial_medical:onTreatment('revive', function(medic, target)
    -- restablece el hambre y la sed de target en tu script de estado
end)
```

</details>

<details>

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

**Causa.** El script sigue la convar `ox:locale`. Los nombres de las fases y el nombre y el cargo del NPC de recepción son texto plano que se define en el panel.

**Solución.** Define la convar en `server.cfg` y reinicia. Se incluyen `en` y `es`, y los dos archivos de `locales/` se pueden editar:

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

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

{% endcode %}

Después renombra las fases en **Muerte y fases**.

</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-medical/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.
