Lo que falla con más frecuencia, lo que significa realmente y qué hacer al respecto. Casi todo aquí es un ajuste o un orden de carga más que un bug, y lo primero que conviene hacer en cada caso es poner Config.Debug = true en config/config.lua, reiniciar y leer lo que la consola dice que detectó.
Instalación y acceso#
"You don't have permission to access the mechanic creator"
El comando llegó al servidor y el servidor dijo que no. Se aceptan tres cosas: el ace mechanic.admin (o el ace general command), un grupo de ESX admin o superadmin, o un permiso de QBCore/Qbox admin o god. Nueve de cada diez veces el ace está en server.cfg pero el servidor nunca se reinició después de añadirlo, o el grupo se otorgó a una cuenta distinta de la que está en el juego.
El comando no existe en absoluto
No se registró nada, lo que significa que el recurso no terminó de iniciarse. Lee la consola del servidor desde la línea ensure hacia abajo: la causa habitual es que falte oxmysql o ox_lib, y también una carpeta renombrada. El creador es siempre /mechanic_creator; no se puede renombrar. El comando de reparación fix_command sí, pero solo al arrancar — cámbialo en el panel y reinicia el recurso antes de esperar que el nuevo nombre funcione.
Algo que uso no se detectó
La detección ocurre una vez, mientras este recurso arranca, preguntando si cada recurso conocido ya está en ejecución. Un recurso que se inicia después es invisible para él durante el resto de la sesión, lo que se nota como un inventario que no acepta ítems, facturas que nunca llegan o llaves que nunca se entregan. Corrige el orden en server.cfg para que todo con lo que se integra este recurso se ejecute con ensure por encima de él.
Tener dos recursos de la misma familia en ejecución a la vez tiene el mismo efecto: la detección se detiene en la primera coincidencia, y cuál es puede cambiar entre reinicios. Un inventario, un script de facturación, un sistema de llaves, un script de ropa.
Edité un valor en shared/settings.lua y no cambió nada
Ese archivo contiene el valor por defecto de cada ajuste. Una vez que un ajuste se ha guardado desde el panel, gana el valor guardado y el valor por defecto no se vuelve a leer. Cámbialo en el panel, o pulsa Reset en esa sección para que vuelva a seguir el archivo.
Un jugador se queda atascado con un cursor y no puede cerrar nada
Escape cierra el creador, la tablet y el menú de tuning. Si no lo hace, el recurso se reinició mientras el panel estaba abierto, lo que deja al juego con el foco en una interfaz que ya no existe — volver a entrar, o reiniciar de nuevo el recurso, lo libera. Evita reiniciar el recurso mientras alguien tiene el creador abierto; de todos modos nada en él necesita un reinicio para aplicarse.
La tablet y quién puede usarla#
"You don't have access to any mechanic shop"
Este es el mensaje más común, y funciona según lo previsto. La tablet pertenece a alguien vinculado a una tienda: su dueño, alguien contratado en ella con open_tablet, o cualquiera del trabajo o banda que tenga asignada una tienda gestionada por trabajo. Un jugador que no es nada de eso no obtiene nada, esté donde esté.
Así que comprueba, en orden: si existe una tienda y tiene dueño; si este jugador es el dueño o está en su plantilla; y si está gestionada por un trabajo, si el nombre de su trabajo coincide exactamente. La distancia no influye — la tablet funciona desde cualquier lugar.
Una tienda gestionada por un trabajo no deja entrar a nadie
El nombre tiene que ser el que tu framework usa internamente — mechanic, no la etiqueta que los jugadores ven en su ropa. Cópialo de tu propio archivo de trabajos en lugar de volver a escribirlo. Las mayúsculas y los espacios sobrantes no importan: Mechanic y mechanic coinciden ambos.
Una tienda puede indicar varios trabajos, separados por comas — mechanic, bennys — y cualquiera que tenga alguno de ellos es personal. Solo la coma los separa, así que un nombre con espacios se mantiene tal como se escribió. La lista completa tiene que caber en 255 caracteres; si se pasa, los nombres se descartan desde el final en lugar de cortarse a la mitad.
En una tienda de banda se aplica lo mismo a los nombres de banda, y lo que se compara es la banda del jugador, no su trabajo.
Un empleado no puede ver o hacer algo que su jefe sí puede
Los permisos son por tienda y por empleado, y el dueño los tiene todos implícitamente, así que un rango mal configurado nunca puede dejar a un dueño fuera de su propia tienda. Abre la lista de empleados de la tablet y marca lo que realmente debe hacer ese rol; un empleado nunca puede conceder un permiso que no tenga él mismo.
En una tienda gestionada por un trabajo las reglas son fijas: todos los del trabajo obtienen los permisos del día a día, solo el rango de gerente y superiores pueden retirar dinero o cambiar los ajustes de la tienda, y la gestión de empleados nunca está disponible, porque una tienda de trabajo no tiene plantilla que gestionar — el trabajo es la plantilla.
Se compró una tienda y su trabajo ya no funciona
Es deliberado. Una tienda se gestiona de una forma o de la otra, nunca de ambas, y un dueño tiene prioridad sobre un trabajo — si no, vender una tienda dejaría discretamente a todo un departamento con las llaves. Si quieres recuperar el trabajo, quita el dueño en el creador.
"Shop data not loaded yet" o "Loading player data"
El cliente preguntó antes de que el servidor respondiera, y volver a preguntar un segundo después normalmente funciona. Si nunca deja de decirlo, las tiendas no llegan al cliente en absoluto: busca un error de base de datos en la consola del servidor y asegúrate de que oxmysql se ejecuta con ensure por encima de este recurso.
Ítems e inventario#
Usar la tablet, el kit, la esponja o la cuerda no hace nada
El inventario nunca llegó a este recurso. Revisa la definición del ítem que añadiste: el nombre del export tiene que coincidir, y el recurso al que apunta tiene que escribirse qs-mechanic-creator exactamente. Un inventario que llama a un export que no existe suele fallar en silencio en lugar de mostrar nada, y por eso parece que no pasa nada.
Las definiciones para cada inventario compatible están en la página Ítems de inventario.
"You need an item" cuando el jugador lo tiene
El nombre en el panel y el nombre en tu inventario son cadenas distintas. Los nombres de ítems que pide una acción radial están en Settings → Items, y por defecto son repairkit, sponge y rope. Si tus ítems se llaman de otra forma, indícalo ahí en lugar de renombrar tus ítems.
Repostar pide un ítem que no existe
El bidón es el único ítem cuyo nombre realmente difiere entre inventarios, así que su valor por defecto se elige según el inventario detectado: WEAPON_PETROLCAN en ox_inventory, weapon_petrolcan en los demás. Si tu servidor usa un ítem normal en lugar del arma, pon su nombre en Settings → Items.
Un kit de reparación nunca se gasta, o se gasta dos veces
En qs-inventory un ítem definido con removeAfterUse = true lo retira el propio inventario. Eso está contemplado, así que el ítem solo se quita una vez — pero sí significa que el comportamiento sigue tu definición del ítem. Si un kit sobrevive a cada reparación, la definición no lo quita y ninguna de las dos partes cree que deba hacerlo; configura removeAfterUse o deja que este recurso lo retire, no que ninguna lo haga.
La tienda de piezas o el almacén de una tienda nueva aún no existe
Los almacenes y las tiendas de piezas pertenecen al inventario, no a este recurso, así que cada uno tiene que registrarse en él. En ox_inventory eso ocurre en el momento en que guardas la tienda, y un almacén nuevo funciona de inmediato. A todos los demás inventarios se les informa al arrancar, así que una tienda creada con el servidor en marcha no tiene almacén hasta que el recurso se reinicie una vez.
Si no aparece ningún almacén incluso después de reiniciar, no se detectó ningún inventario, o el que usas no admite almacenes registrados — codem-inventory es uno de ellos. La consola con debug activado indica qué inventario se encontró.
Tiendas, elevadores y avisos#
Una tienda no tiene blip en el mapa
El blip se dibuja en el punto de blip de la tienda, y si no hay, en su punto de compra y luego en su primera bahía de tuning. Una tienda sin ninguno de los tres no tiene dónde anclar un blip. Coloca al menos un punto y guarda.
No hay marcador donde coloqué un punto
Correcto. Solo el punto de compra de una tienda en venta dibuja un marcador en el suelo; todos los demás puntos permanecen en silencio hasta que estás lo bastante cerca para que aparezca su aviso. Así un taller parece un taller en lugar de un campo de cilindros de colores.
El aviso en una bahía de tuning o elevador nunca aparece
Ponte o detente donde realmente colocaste el punto, no donde parece estar el elevador. Los puntos se colocan con la freecam, lo que facilita dejar uno a un metro en el aire o dentro de una pared — mueve la cámara a la altura de los ojos sobre el lugar antes de guardarlo.
Una bahía de tuning también espera un vehículo encima, y un elevador espera que el vehículo esté detenido. Si el aviso aparece pero el menú se niega, es un permiso o un precio, no la colocación.
Faltan props, o están en el aire, o en el suelo
Cada prop que coloca una tienda queda a la altura a la que se guardó el punto. Ajusta el punto en lugar del prop. Si a un jugador le falta un prop por completo y a otro no, ese jugador está fuera de su distancia de dibujado o su cliente aún no ha recibido la tienda — volver a entrar lo soluciona.
Una tienda sin dueño cobra a los clientes pero no gana nada
Es lo previsto. Una tienda sin dueño ni trabajo es el tuneshop público de pagar y conducir: cualquiera puede usarla, el dinero sale del cliente y no hay ningún negocio detrás que lo reciba. Dale un dueño o un trabajo y empezará a aceptar pedidos, guardar fondos y llevar un libro de cuentas.
El dyno y sus pantallas#
La tablet nunca pregunta qué pantalla usar
Solo pregunta cuando hay algo que elegir. La tienda necesita al menos un punto Dyno Screen colocado en el creador, y el mecánico tiene que estar a menos de treinta metros de él. Sin ninguna pantalla en rango, la prueba simplemente se ejecuta en la tablet, por eso una tienda sin TV nunca ve un diálogo que no le sirve.
La TV está ahí pero sigue apagada
La imagen solo se dibuja a unos dieciocho metros de la pantalla; más lejos la TV es solo un prop, que no cuesta nada. Acércate a ella.
También tarda un par de segundos en encenderse al inicio de una prueba: esa pausa es el tiempo que se da al navegador para cargar, y la tarjeta de espera es lo que deberías ver durante ella. Después, los resultados se quedan en la pantalla un minuto tras terminar la prueba, y se borran cuando empieza otra.
La TV flota, o se hunde en la pared
El modelo de pantalla se apoya sobre algo en lugar de colgar, así que su origen está en la base y no en el cristal. Colocarla pegada a una pared la deja flotando a la altura de su soporte; baja el punto esa misma medida. Ejecuta /dynoscreens con debug activado e informa de las pantallas cercanas, enciende la más próxima e imprime el tamaño de panel que calculó.
Dinero, facturas y motores#
Las facturas nunca llegan al cliente
No se detectó ningún recurso de facturación, así que no hay a través de qué enviar una factura y el cobro se hace directamente. Ejecuta tu script de facturación con ensure por encima de este y reinicia. Solo un script de facturación — la detección se detiene en la primera coincidencia.
El dinero de una tienda no está en su cuenta de sociedad
Por defecto no tiene que estarlo: cada tienda guarda sus propios fondos, cada movimiento se registra en su libro de cuentas y una retirada va directamente al jugador que la hace. Nada que conciliar con el script de gestión de tu framework.
Si prefieres que el dinero esté en la cuenta del framework, pon Balance source en society en Settings → Money. Entonces todo lee y escribe en esa cuenta: depósitos, retiradas, salarios, piezas, motores e ingresos por pedidos.
Dos cosas deciden si realmente se aplica. Solo se aplica a una tienda gestionada por un trabajo, y usa la cuenta del primer trabajo de su lista; una tienda con dueño, y una tienda de banda, mantienen su propio saldo diga lo que diga el ajuste. Y tiene que haber una cuenta de sociedad que responda por ese trabajo — esx_addonaccount (society_<job>), qb-banking, qb-management o Renewed-Banking. Si ninguna lo hace, la tienda sigue usando discretamente su saldo interno y la consola del servidor lo indica una vez por trabajo, que es la línea que hay que buscar cuando el dinero no está donde esperabas.
"No engine on pallet"
Hay que comprar un motor en el portátil y colocarlo en el palé antes de que pueda empezar un cambio. Compra uno, sácalo y déjalo en el palé — el aviso del portátil y el aviso del palé son pasos distintos del mismo trabajo.
Un cambio de motor no sobrevivió a guardar el vehículo
Los motores cambiados se guardan por matrícula, así que lo que tiene que seguir igual es la matrícula. Un script de garaje que vuelve a generar un coche con una matrícula nueva pierde el vínculo, y lo mismo pasa al editar una matrícula a mano en la base de datos.
Tunear un coche no hace nada, o choca con otro script
Dos recursos que reclaman el menú de tuning es la única configuración que no puede funcionar: gana el que escribe al final, y el resultado cambia entre reinicios. Elimina cualquier otro script de mecánico, tuning y rendimiento antes de culpar a un ajuste de aquí.
La tecla del nitro no hace nada
Tienen que cumplirse tres cosas: el coche tiene un kit instalado desde la pantalla Dyno de la tablet, el jugador está en el asiento del conductor y a la botella le queda carga. En un coche sin kit la tecla no hace nada a propósito, porque su valor por defecto (LSHIFT) también hace otras cosas en el juego.
La tecla en sí es Settings → Tuneshop → Nitrous key, y el juego solo toma ese valor por defecto una vez, al arrancar: cámbialo y reinicia el recurso. Un jugador que ya haya asignado la tecla por su cuenta conserva su asignación — la suya siempre gana — y puede cambiarla en Settings → Key Bindings → FiveM.
Mantén pulsada la tecla en lugar de pulsarla una vez. La botella se vacía durante la duración del kit y se recarga sola aproximadamente un segundo y medio después de soltarla.
Sistemas de conducción#
Las ruedas se rompen todo el rato, o nunca se rompen
El daño en las ruedas, los frenos calientes y el sistema fuera de carretera tienen cada uno su propia sección en el panel de ajustes, con sus propios umbrales y sus propias listas negras, y cada uno puede desactivarse por completo. Si una sección ha quedado en un estado que preferirías olvidar, mechanicresetconfig wheeldamage — o heatedbrakes, o offroadsystem — la restablece a los valores por defecto desde la consola del servidor.
Las ruedas rotas vuelven después de guardar un vehículo
Esa es la idea: el daño se guarda por matrícula para que pasar por un garaje no sea una reparación gratis. Si tu script de garaje prefiere gestionarlo, puede leer y volver a aplicar el daño por sí mismo con los exports de la página Comandos y exports.
El barro fuera de carretera nunca se quita
Un lavado lo quita, y también ForceResetVehicleWheels. Para ver qué superficies cuentan como fuera de carretera, activa debug y ejecuta /debug_offroad_zones.
Claves de error#
El panel de ajustes informa de un fallo con una clave corta en lugar de una frase, para que se lea en el idioma del propio jugador. Si ves una en una consola o en un ticket:
Clave | Significado |
|---|---|
| El jugador no es administrador por ninguna de las tres vías anteriores. |
| Los ajustes no han terminado de cargarse desde la base de datos. Vuelve a intentarlo en un momento; si persiste, el lugar donde mirar es la base de datos. |
| La solicitud no parecía en absoluto un payload de ajustes — normalmente una interfaz desactualizada tras una actualización. Vuelve a conectarte e inténtalo de nuevo. |
¿Sigues atascado? Abre un ticket e incluye la salida de la consola con
Config.Debug = true, tus líneasensureen el orden en que aparecen enserver.cfg, la consola F8 del cliente donde ocurrió y lo que estabas haciendo cuando pasó. Esas cuatro cosas juntas responden a la mayoría de tickets antes de que nadie tenga que preguntar.



