Solución de problemas
Los problemas con los que la gente se encuentra de verdad, más o menos en el orden en que aparecen.
El recurso no arranca: “could not find dependency fmLib”
Sección titulada «El recurso no arranca: “could not find dependency fmLib”»fmLib es obligatorio, no opcional: la parte de servidor lee el dinero, los ítems y los trabajos a través de él. Instálalo y pon ensure fmLib encima de ensure mic_questcreator en server.cfg. Lo mismo vale para oxmysql.
“CRITICAL ERROR: FMLIB NOT FOUND!”, “ESX NOT FOUND!” o “QBCore NOT FOUND!”
Sección titulada «“CRITICAL ERROR: FMLIB NOT FOUND!”, “ESX NOT FOUND!” o “QBCore NOT FOUND!”»O bien el quest creator arrancó antes que fmLib o que tu framework, o bien Config.Framework indica el equivocado. No se detecta solo: pon 'esx' o 'qbcore' en config.lua según tu servidor y luego revisa el orden de arranque.
En QBox, el valor es 'qbcore' (QBox ejecuta los recursos de QBCore a través de su capa de compatibilidad) y qbx_core debe arrancar antes que mic_questcreator.
Un cambio en un archivo no ha hecho nada
Sección titulada «Un cambio en un archivo no ha hecho nada»restart no vuelve a leer fxmanifest.lua. Si has añadido un archivo (un nuevo locale, por ejemplo), escribe primero refresh en la consola del servidor y luego restart mic_questcreator. Sin eso, el servidor sigue con la lista de archivos que tenía.
/questcreator dice que no tengo permiso
Sección titulada «/questcreator dice que no tengo permiso»Necesitas el ACE mic_questcreator.open. Comprueba que la línea add_ace usa el identificador con el que te conectas de verdad (un ID de Discord solo funciona si tu servidor lee identificadores de Discord), o que tu línea de grupo coincide con un grupo al que realmente perteneces. Los cambios de permisos en server.cfg necesitan reiniciar el servidor; los cambios hechos en directo en la consola se aplican al momento.
Guardar una misión no hace nada, o la consola dice que una tabla no existe
Sección titulada «Guardar una misión no hace nada, o la consola dice que una tabla no existe»No se ha importado install.sql, o se importó en una base de datos distinta de la que usa oxmysql. El recurso no crea sus tablas por sí mismo. Importa el archivo una vez y reinicia.
El NPC de la misión no está
Sección titulada «El NPC de la misión no está»- El personaje no había cargado. Los NPCs de misión se crean cuando tu framework indica que el jugador ha cargado (
esx:playerLoadedoQBCore:Client:OnPlayerLoaded). Un script de multipersonaje o de spawn que nunca lanza ese evento los deja sin aparecer; reiniciar el recurso con el jugador dentro del juego los crea. - El modelo está mal. Un modelo de ped que no existe no genera nada. Elige uno de la lista en el editor de ubicaciones.
- Lo acabas de guardar. Al guardar se refrescan los NPCs de todos los jugadores; si sigue faltando alguno, reinicia el recurso.
Veo el NPC pero no puedo hablar con él
Sección titulada «Veo el NPC pero no puedo hablar con él»Config.InteractionType no coincide con lo que usas. Viene como 'ox_target'. Con qb-target, pon 'qb-target'; sin ninguno, pon 'drawtext' y los jugadores pulsan E dentro de Config.InteractionDistance.
El coche de la misión sigue cerrado, o no recibo llaves
Sección titulada «El coche de la misión sigue cerrado, o no recibo llaves»El coche empieza cerrado a propósito. El jugador debe usar Search for Keys o Break In sobre él. Las llaves se dan a través de fmLib, así que fmLib tiene que ser compatible con tu recurso de llaves de vehículos. Si Break In necesita un ítem, el jugador debe llevarlo encima.
Con qb-target o 'drawtext', esas opciones aparecen como texto 3D junto al coche en lugar de como opción de target.
La recompensa de dinero va a la cuenta equivocada
Sección titulada «La recompensa de dinero va a la cuenta equivocada»Give Money, Remove Money y el dinero de un Reward Bundle siempre usan efectivo, muestre el nodo la cuenta que muestre; en esta versión no hay ningún ajuste para ello. Check Money es el único nodo que lee la cuenta que elijas.
Un nodo Condition (IF/ELSE) con “Job” nunca avanza
Sección titulada «Un nodo Condition (IF/ELSE) con “Job” nunca avanza»Usa el nodo Has Job para comprobar trabajos. La opción Job del nodo Condition genérico no está conectada en esta versión, y el flujo se queda esperando en ella.
El jugador muere y no pasa nada
Sección titulada «El jugador muere y no pasa nada»El gestor de muerte es por evento y está desactivado hasta que lo actives en los ajustes del evento. Cuando revive a alguien, lo hace a través de Bridge.Client.RevivePlayer en bridge/bridge_client.lua, que llama a esx_ambulancejob:revive (ESX) o hospital:client:Revive (QBCore). Si usas otro script de ambulancia, pon ahí su evento de revivir.
El nodo de webhook no publica nada
Sección titulada «El nodo de webhook no publica nada»Solo se aceptan URLs de webhooks de Discord; cualquier otra se rechaza y la consola dice Blocked invalid webhook URL. Para adjuntar una captura de pantalla, screenshot-basic debe estar en marcha y Config.ScreenshotBasic debe ser true.
Community Events está vacío
Sección titulada «Community Events está vacío»La lista se descarga de GitHub al abrirla. Si tu host bloquea las peticiones salientes, se queda vacía y la consola muestra Error fetching community events.
Export dice que lo ha guardado en la raíz
Sección titulada «Export dice que lo ha guardado en la raíz»La carpeta exports no existe en el recurso. Crea una carpeta exports vacía dentro de mic_questcreator y vuelve a exportar.
He puesto checo y veo “Translation [cs][…] does not exist”
Sección titulada «He puesto checo y veo “Translation [cs][…] does not exist”»locales/cs.lua viene incluido pero no está en fxmanifest.lua. Añádelo a shared_scripts con los demás archivos de idioma, haz refresh y reinicia.