Lo que falla con más frecuencia, qué significa realmente y qué hacer al respecto. La mayoría son de configuración, no fallos — y la consola suele decir cuál. Pon Config.Debug = true para obtener más detalle antes de abrir un ticket.
Instalación y acceso#
"no database resource found" en la consola
Ni oxmysql ni mysql-async estaban en ejecución cuando se inició Tutorial Creator. Los tutoriales incluidos se siguen reproduciendo, pero no se guarda nada — el creador no puede almacenar tutoriales y todos ven el tutorial en cada spawn. Inicia tu recurso de base de datos antes de qs-tutorial en server.cfg y reinicia.
"You are not allowed to open the tutorial creator"
El jugador no tiene ni el ace command.tutorialcreator ni un grupo de Config.Creator.adminGroups. La respuesta se recuerda durante la sesión, así que tras conceder el acceso el jugador debe reconectarse. En QBCore, los permisos de grupo vienen de la lista de permisos propia del core, no del trabajo — consulta Instalación.
"The interface is still loading, try again in a second"
La superposición aún no estaba lista, o no apareció en cuatro segundos, así que se liberó el foco en lugar de dejar al jugador atascado con un cursor. Justo después de entrar, simplemente inténtalo de nuevo. Si nunca funciona, el recurso se copió de forma incompleta — vuelve a copiar toda la carpeta de la descarga.
"framework loaded: standalone" en un servidor con framework
El framework no estaba en ejecución cuando se buscó. Inícialo antes de qs-tutorial, o fíjalo con Config.Framework. Un framework que añadiste tú mismo en custom/ nunca se detecta automáticamente y siempre debe fijarse. Si la consola también muestra custom/<name>/client.lua could not be loaded, ese adaptador tiene un error de Lua — el mensaje que le sigue indica dónde.
Reproducir el tutorial#
Se reproduce cada vez que alguien entra
Only once per character está desactivado para ese tutorial (pestaña Settings). Dispatch viene con él desactivado a propósito.
No se puede guardar nada: revisa la consola por si hay un error de base de datos.
Tu adaptador de framework no devuelve ningún identificador, así que el progreso no se guarda en ningún sitio. Revisa
getIdentifierencustom/<framework>/server.lua.
Nunca se reproduce al hacer spawn
Config.Tutorial.autoStartestá desactivado — correcto si tu script de spawn lo inicia.Este personaje ya lo ha visto.
/resettutorialy vuelve a entrar para probar.El inicio automático está esperando a una pantalla de spawn que nunca indicó que se cerró. Un script de spawn personalizado debe llamar a
exports['qs-tutorial']:SetSpawnBusy(false)una vez que el jugador está en el mundo.El tutorial activo no tiene pasos activados.
Se abre encima de la selección de personaje
Tu recurso de multipersonaje o spawn no es uno de los estándar que escucha el tutorial. Llama a SetSpawnBusy(true) cuando se abra su pantalla y a SetSpawnBusy(false) después de que el jugador aparezca, o inicia tú mismo el tutorial desde el script de spawn — consulta Integraciones.
Los jugadores se quedan atascados en un paso
El paso espera un clic y no hay ningún elemento Continue visible — o está limitado con Shows on a otro paso. La pestaña Settings y la checklist avisan de esto. Añade un elemento Continue o configura el paso para avanzar After a while. Escribir /tutorial de nuevo siempre lo detiene.
El botón Skip no hace nada
Let players skip it está desactivado para ese tutorial. El elemento se sigue dibujando en el creador para poder diseñar el layout, pero no hace nada en el juego.
Faltan edificios o el plano aparece en un mundo vacío
El plano no terminó de cargar a tiempo. Deja Config.Cinematic.focusStreaming activado y aumenta streamWait (entre pasos) o maxStreamWait (el primer plano). Los planos muy lejanos seguidos son los que más tardan en cargar — una mezcla entre planos cercanos es lo que mejor lo disimula.
El clima o la hora siguen cambiados después
Comprueba que Config.Cinematic.restoreWeather y restoreTime estén activados. Un script de sincronización del clima restablece el clima del servidor en su siguiente tick.
Un botón que ejecuta un comando no hace nada
El comando está en Config.Actions.blockedCommands — la consola F8 dice a tutorial button tried to run the blocked command — o el jugador no tiene permiso para ejecutarlo. El comando se ejecuta exactamente como si el jugador lo hubiera escrito.
Reinicié el recurso durante un tutorial
Está contemplado. Al detenerse e iniciarse, la cámara se destruye, se libera el foco, el jugador se hace visible y se descongela y la pantalla vuelve con un fundido — nadie se queda en un vacío negro.
El creador#
"Could not save the tutorial"
El servidor ya tiene
Config.MaxTutorialstutoriales guardados. Elimina uno o aumenta el límite.El tutorial ocupa más de 1 MB — normalmente una imagen pegada como datos en lugar de un archivo en
images/.La base de datos no está conectada; revisa la consola.
"Save the tutorial before setting it live"
Set live envía la versión guardada, así que primero hay que guardar los cambios. Usa Play in game para probar un borrador sin guardar.
"Could not delete the tutorial"
Solo se pueden eliminar los tutoriales guardados. Un tutorial incluido que nunca has guardado vive en presets/, no en la base de datos, así que no hay nada que eliminar.
La checklist dice que hay pasos que necesitan una cámara
Esos pasos todavía tienen la posición predeterminada con la que se crea un paso nuevo. Abre cada uno y pulsa Capture from game. Los pasos configurados como Follow the player nunca la necesitan.
Los planos de un tutorial incluido están un poco desviados
Es normal en algunos mapas: las coordenadas incluidas se escribieron a mano, no se capturaron en tu build. Fly there para revisar un plano y Capture from game para corregirlo, y luego guarda.
Música, video y multimedia#
Un video es un rectángulo negro
Es un .mp4. El navegador de FiveM no puede decodificar H.264. Conviértelo a WebM (VP9) — consulta Uso → Música y video.
Mi archivo no aparece en el desplegable del creador
Las carpetas se leen una vez, cuando se inicia el recurso — reinícialo después de añadir archivos. Comprueba también la extensión: PNG, JPG, WebP o GIF en images/, WebM en videos/, OGG, MP3 o WAV en audio/. Si la consola dice io.readdir is missing on this server build, actualiza los artifacts de tu servidor — mientras tanto, escribe la ruta en el campo URL.
La música o el video que usaban un enlace de YouTube ya no se reproducen
Es intencionado. Los enlaces de YouTube y otras URL externas rompían la reproducción para los jugadores, así que la música y el video ahora solo se reproducen desde las carpetas audio/ y videos/ del propio recurso, y cualquier enlace se ignora. Un tutorial guardado con un enlace en una versión anterior se sigue reproduciendo, pero sin esa pista o video.
Para solucionarlo, añade el archivo a la carpeta (OGG, MP3 o WAV para música, WebM para video), reinicia el recurso, elígelo en el desplegable del creador y guarda. Consulta Uso → Música y video.
Las fuentes se ven distintas de las capturas
Noir y Skyline usan Georgia y Dispatch usa Courier New, que vienen con Windows y no con el recurso. Cambia la fuente de esos elementos si quieres una incluida.
Mensajes de consola#
Todos los mensajes empiezan por [qs-tutorial]. Los mensajes del servidor están en la consola del servidor, y los del cliente en F8.
Mensaje | Significa |
|---|---|
| Se encontró el recurso de base de datos pero no terminó de iniciarse en 20 segundos. No se guardará nada hasta reiniciar. |
| Un archivo de tutorial incluido se eliminó o renombró, o ya no es JSON válido. Restáuralo desde la descarga. |
| La fila de un tutorial guardado en |
| Un export, comando o evento pidió un id que no existe. El id está en Settings, en el creador. |
| No hay nada activo y no se encontró el predeterminado. Activa uno en el creador. |
| La interfaz no respondió a tiempo; se liberó el foco. Consulta el mensaje de carga de más arriba. |
¿Sigues atascado? Abre un ticket e incluye tu framework y su versión, las líneas
[qs-tutorial]de la consola del servidor conConfig.Debug = true, y una captura de la consola F8 para cualquier cosa relacionada con la interfaz.



