Lo que falla con más frecuencia, lo que significa realmente y qué hacer al respecto. La mayoría se reduce al orden de carga, un ace o un ajuste en la pestaña Admin.
Instalación y acceso#
"oxmysql resource never reached `started` state"
El script esperó 30 segundos a oxmysql y se rindió. Asegúrate de que ensure oxmysql está en server.cfg, por encima de ensure qs-crosshair, y de que oxmysql se conecta a tu base de datos — su propio error está unas líneas más arriba en la consola.
El banner dice SQL: n/a
No se pudieron crear las tablas o no se alcanzaron a tiempo. Los jugadores siguen teniendo una mira, pero su mira activa, los códigos para compartir y los ajustes de administración no se guardan. Busca una línea que empiece por [qs-crosshair] SQL bootstrap failed — indica la sentencia que falló, normalmente un usuario de base de datos sin permisos de CREATE. Ejecuta [sql]/install.sql a mano en ese caso.
La pestaña Admin no aparece
El servidor no considera al jugador administrador. Necesita uno de estos: el grupo en Config.Admin.AceGroup, el ace command o qs-crosshair.admin. Comprueba que el identificador en add_principal es su identificador license: y luego cierra y vuelve a abrir el panel — el estado de administrador se comprueba en cada apertura.
Si la consola imprime Config.Admin.AceGroup = "…" — expected "group.*" or "principal.*", el valor en config/main.lua no es un nombre de grupo.
El panel se abre, pero nada de lo que elijo aparece
Comprueba que la carpeta se llama exactamente qs-crosshair. El script llama a sus propios exports por ese nombre; una copia renombrada no puede alcanzarse a sí misma, así que el panel se abre pero la mira activa nunca se aplica.
Cambié un archivo de configuración y no pasó nada
Los archivos de config/ se leen cuando se inicia el recurso. Reinícialo con ensure qs-crosshair. Los ajustes de la pestaña Admin, en cambio, se aplican al instante y no sobrescriben nada de los archivos.
La retícula#
No hay mira al apuntar
Revisa esto en orden:
El interruptor principal del encabezado del panel dice Crosshair Off. Los jugadores nuevos empiezan con él desactivado cuando
Config.EnabledByDefault = false.El jugador lleva puños, un arma cuerpo a cuerpo o un rifle de francotirador, que están ocultos por defecto en la pestaña Admin.
La opacidad en la pestaña Build está en 0 o cerca.
Otro recurso de mira o de HUD está dibujando encima o ocultando la superposición.
Justo después de entrar, la mira anterior tarda unos segundos en volver
Es el comportamiento correcto. El cliente espera a que el jugador esté completamente en la sesión, luego pide su mira al servidor y reintenta durante unos diez segundos mientras la base de datos arranca. Una base de datos lenta en un arranque en frío es el motivo habitual de que tarde más de un segundo.
Falta un comportamiento dinámico o la pestaña Draw
Un administrador lo desactivó en la pestaña Admin. Las funciones desactivadas se eliminan a propósito del panel de todos los jugadores, sin candado ni etiqueta.
Fire feedback no hace nada
O bien la forma activa es un punto — no hay nada que expandir, así que el interruptor está desactivado — o bien el arma no está perdiendo munición. Los disparos se detectan porque baja el cargador, así que un arma con munición infinita de otro script nunca lo activa.
El hitmarker no destella en algunos impactos
Solo marca el daño al que apuntó el jugador. Las balas que el autoapuntado desvía hacia alguien lejos del centro de la retícula se ignoran a propósito, igual que los objetivos que ya estaban muertos. También marca una vez por bala, así que un disparo de escopeta muestra un solo destello.
El icono de munición baja nunca aparece
Cuenta el cargador, no la reserva, y solo mientras se apunta. Las armas cuerpo a cuerpo, las granadas y las armas sin cargador nunca lo muestran. Los umbrales son HalfMagRatio y CriticalRounds en config/dynamics.lua.
Los jugadores nuevos no reciben la mira oficial
La mira oficial se entrega a un jugador la primera vez que abre el panel, y solo una vez por licencia. Los jugadores que usaron el panel antes de configurarla conservan la suya. Comprueba que está configurada — la pestaña Admin muestra la actual — y pide al jugador que abra el panel.
Biblioteca y compartir#
"Library is full"
El jugador tiene Config.Library.MaxBuilds diseños guardados (50 por defecto). Elimina uno, o sube el límite y reinicia el recurso.
Se rechaza el nombre de un diseño
Los nombres deben tener entre 1 y Config.Library.MaxNameLength caracteres (32 por defecto).
No aparece nadie en Nearby Players
El otro jugador está más lejos que el radio (Config.Share.DefaultRadiusM, 30 m) o en otro routing bucket — otra instancia, un apartamento, un minijuego. Solo se muestran los cinco más cercanos. Si la lista muestra Cooling down…, espera dos segundos entre actualizaciones.
Un diseño enviado nunca llegó, o "Share expired"
El destinatario no respondió en Config.Share.TTLSeconds (60 segundos). Si no le llegó nada, el remitente alcanzó el límite de cinco envíos por minuto, o uno de los dos cambió de routing bucket entre tanto.
"Server unreachable — some features unavailable"
Una petición al servidor agotó el tiempo de espera — normalmente por una base de datos lenta o sobrecargada. El panel sigue funcionando con lo que ya tiene; vuelve a abrirlo en un momento.
Mensajes de los códigos para compartir#
Lo que dice la Library cuando no se puede importar un código QSR-XXXX:
Mensaje | Significa |
|---|---|
Invalid code format. Expected QSR-XXXX. | El texto pegado no es un código — a menudo falta una parte o hay un espacio de más. Pídelo de nuevo. |
Code not found | Tiene más de 30 días, viene de otro servidor o el remitente nunca pulsó Copy — copiarlo es lo que lo registra. |
Unknown code | El servidor no tiene ningún diseño para él. Pide al remitente que lo vuelva a copiar en el juego. |
This code is already in your Library. | Nada que importar — ya se añadió antes. |
Server offline / Network error | La búsqueda no obtuvo respuesta. Inténtalo de nuevo en un momento. |
Un código que coincide con otro diseño ya registrado con el mismo código se rechaza en lugar de sobrescribirlo; comparte ese diseño enviándolo a un jugador cercano en su lugar.
Salida de depuración#
Para cualquier cosa que no se cubra aquí, activa la salida de depuración en config/main.lua y reinicia el recurso:
Config.Debug = trueAmbas consolas imprimen entonces una línea etiquetada para cada paso — [qs-crosshair][SERVER][state] para guardados y cargas, [CLIENT][hydrate] para restaurar la mira al entrar, [CLIENT][aim] para cambios de apuntado y [CLIENT][dyn] para la clase de arma y los comportamientos dinámicos. Lee el lado del cliente en F8. Desactívala después: está pensada para resolver problemas y llena la consola.
¿Sigues atascado? Abre un ticket e incluye el banner de inicio, las líneas de la consola del servidor y de la consola F8 con
Config.Debugactivado, y los pasos que reproducen el problema.



