Lo que falla con más frecuencia, lo que significa realmente y qué hacer al respecto. La mayoría de estos casos son de configuración, no fallos. Para cualquier cosa sobre un botón que debería o no debería estar ahí, activa Config.Debug = true, reinicia, abre la rueda y lee la consola F8: imprime cada nodo que comprobó, el trabajo y el rango del jugador, y por qué cada uno se mantuvo o se ocultó.
Instalación y acceso#
/radialedit no hace nada
El servidor no reconoció al jugador como administrador, y responde a eso en silencio. Revisa las vías en Obtener acceso de administrador: una línea ACE añadida a server.cfg necesita reiniciar el servidor, y un identificador en Config.AdminIdentifiers debe pertenecer a la cuenta que está realmente en el juego. Para ver los identificadores de esa cuenta, activa Config.DevOpenEditor un momento: la consola los imprime cuando escribe el comando.
"Save failed, see the server console"
La base de datos rechazó la escritura. La consola del servidor tiene una línea [qs-radialmenu] Saving "…" failed: seguida del motivo de oxmysql: normalmente una conexión perdida o un usuario de base de datos sin permiso para crear o escribir la tabla qs_radialmenu. Asegúrate de que ensure oxmysql vaya antes del recurso.
"Server did not respond within 7s"
El editor envió un guardado y nunca recibió respuesta, normalmente porque el recurso se reinició con el editor abierto o el servidor estaba con mucha carga. Cierra el editor, vuelve a abrirlo y guarda otra vez.
La consola dice standalone, pero uso un framework
El framework se inició después de Radial Menu, o funciona con otro nombre de recurso. Mueve su ensure por encima de ensure qs-radialmenu, o fíjalo con Config.Framework = 'esx' (o 'qb', 'vrp').
"Row … in qs_radialmenu is not valid JSON, ignoring it"
Una fila se editó a mano —o se pegó durante una actualización— y su texto está roto. El recurso la ignora y usa los valores predeterminados para esa parte. Corrige el JSON de esa fila, o elimina la fila y guarda de nuevo desde el editor.
La rueda#
F3 no abre la rueda
Prueba /radial. Si eso funciona, el problema es la tecla: FiveM guarda la asignación propia de cada jugador, así que una tecla cambiada en Config.OpenKey no llega a los jugadores que ya tienen una, y otro recurso puede usar la misma tecla. El jugador comprueba Settings → Key Bindings → FiveM → Radial Menu: Open. La tecla tampoco hace nada mientras el menú de pausa está abierto.
El cursor del ratón se queda en pantalla
Pulsa F10 o escribe /radialunstick. Si vuelve a aparecer, /radialreload recarga toda la interfaz. Esto ocurre sobre todo cuando el recurso se reinicia mientras un jugador tiene abierta la rueda, los ajustes o el editor.
Un botón o una sección no aparece
Por orden de probabilidad:
El trabajo, la banda o el rango del jugador no coinciden. Los rangos son mínimos, los nombres de trabajo son exactos, y un nodo con trabajo y banda necesita ambos.
Su
canInteracto una de sus condiciones devolvió false.Es una sección y ninguno de sus botones es visible: las secciones vacías se ocultan.
El servidor funciona en standalone, así que no hay trabajos ni bandas.
Es un elemento sin acción: esos se omiten.
Config.Debug = true imprime cuál de estos fue.
Siguen apareciendo secciones de scripts que no tengo
Apartments, Laboratory y Motorhome deciden si mostrarse preguntando a qs-apartments, qs-drugs-creator o qs-motorhome. Cuando ese recurso falta, la consulta falla, y una sección sin trabajo ni banda cuya condición falla se muestra en lugar de ocultarse. Elimina esas secciones de config/menu.lua — o del árbol del editor.
Mis cambios en config/menu.lua no se ven
O el recurso no se reinició tras la edición, o la opción Override active del editor está activada, y entonces su árbol reemplaza el archivo por completo. Desactívala y guarda en /radialedit → Menu, o haz el cambio en el editor. /radialeditdebug imprime si el override está activo.
La sección Admin nunca aparece
La sección Admin incluida se muestra cuando el state bag qs_isAdmin del jugador es true. Radial Menu no lo establece: lo hace tu recurso de administración. Si el tuyo no lo hace, sustituye el canInteract de esa sección por una restricción de trabajo o por tu propia condición.
"Error executing action" o "Action not found"
Error executing action significa que la función del botón falló; la notificación incluye el error de Lua, que normalmente nombra un recurso que no está en ejecución o un export que no existe. Action not found significa que el menú cambió mientras estaba abierto: ciérralo y vuelve a abrirlo.
Un botón no hace nada
Su evento o comando no tiene ningún listener: falta el recurso que lo respalda o el nombre está mal escrito. Los eventos distinguen mayúsculas y minúsculas. Un comando se escribe sin la barra: e wave, no /e wave.
El editor#
Al guardar, se rechaza con una lista de IDs
Dos nodos comparten un ID. El mensaje los nombra y el campo ID de cada uno muestra un aviso. Dale a uno un ID nuevo; duplicar un nodo es la causa habitual.
Los botones importados aparecen marcados
Su acción en config/menu.lua hace algo más que ejecutar un comando o evento, así que no se pudo convertir. Elige una acción registrada o un evento personalizado para cada uno, o registra el código como acción en custom/registry.lua y elígela.
Tras activar el override, todos ven todo
La importación no trae las funciones canInteract. Marca las condiciones equivalentes en esos nodos — Vehicle: in any vehicle, Seats: is the driver, etc. — o añade restricciones de trabajo, y luego guarda.
Los jugadores no ven el menú que creé
Override active está desactivado, así que el árbol se guarda pero no se usa. Actívalo y guarda. Llega al instante a todos los conectados; no hay nada que reiniciar.
Una acción desapareció del desplegable
La registró otro recurso que se ha detenido, o custom/registry.lua tiene un error: busca una línea roja en F8. Los botones que la usan conservan su referencia y vuelven a funcionar cuando se registra.
Apariencia y ajustes del jugador#
Los jugadores no pueden cambiar colores, tamaño ni posición
Un administrador bloqueó ese grupo en /radialedit → Permissions. El panel de ajustes muestra un aviso sobre la parte bloqueada, y la rueda usa los valores del servidor para ella.
El aspecto de un jugador es distinto en otro PC, o se perdió
Los ajustes del jugador se guardan en su propio PC, no en el servidor, así que otro ordenador o una instalación nueva de FiveM vuelve a partir del aspecto del servidor. Además, los cambios solo se conservan después de Save Settings.
La rueda está fuera de la pantalla o es demasiado pequeña
Abre /radialsettings, vuelve a poner Position en Center y Menu size en 100%, y guarda, o pulsa Reset to Defaults. Si la posición está bloqueada, la que hay que corregir es la posición del propio servidor, en /radialedit → Appearance.
Un icono se muestra como un círculo simple
El nombre del icono no es un icono de Lucide. Los nombres se escriben en PascalCase: HeartPulse, no heart-pulse. Busca en lucide.dev/icons, o elige uno con el selector de iconos del editor.
Mensajes de error#
Lo que devuelven los exports como segundo valor, y lo que muestra el editor cuando se rechaza un guardado:
Mensaje | Significado |
|---|---|
| Falta el primer argumento, está vacío o no es una cadena. |
| Ese ID ya está en uso, por una llamada anterior tuya o por otro recurso. Pon como prefijo de los IDs el nombre de tu recurso. |
| Falta el segundo argumento. |
| Ambos son obligatorios en categorías y elementos. |
| Ninguna sección tiene ese ID. Crea primero la sección padre, o añade |
|
|
| El elemento no tiene nada que ejecutar. Desde otro recurso, una función no cuenta: usa |
|
|
|
|
| Anular el registro de algo que no existe. Inofensivo. |
| Un guardado del editor de un jugador al que el servidor no considera administrador, por ejemplo tras retirarle los permisos de administrador con el editor aún abierto. |
| La pestaña Actions: a esa fila le falta el ID, la etiqueta o el evento, o repite un ID. |
¿Sigues atascado? Abre un ticket e incluye las líneas
framework loadedde ambas consolas, la salida de F8 conConfig.Debug = truemientras reproduces el problema, y tu framework y su versión.



