Depurar en FiveM
La depuración es una habilidad fundamental para cualquier desarrollador de FiveM. El entorno ofrece tanto potentes herramientas de depuración como desafíos únicos que no se ven en otros ecosistemas de scripting. Entender las herramientas disponibles y los patrones de depuración adecuados reduce drásticamente el tiempo que tardas en localizar y arreglar problemas. En FiveM, los bugs pueden aparecer en el cliente, en el servidor o en la comunicación entre ellos, por lo que las estrategias de depuración deben cubrir los tres escenarios.
Logs en servidor y en cliente
Los mensajes print() son tu primera línea de defensa. Los prints del servidor aparecen en la consola de txAdmin y en los logs del servidor, mientras que los del cliente se ven en la consola F8 de FiveM. Usa prefijos descriptivos y formato estructurado para encontrar rápido la información. Evita dejar prints ruidosos en producción, porque saturan los logs y dificultan detectar los eventos importantes. Una buena práctica es envolver los prints de debug en una comprobación de flag de configuración que se pueda activar o desactivar sin tocar el código.
Herramientas del cliente: F8 y el profiler
La consola F8 en FiveM ofrece acceso directo a logs del cliente, comandos y herramientas de profiling. Usa el comando resmon para ver el coste en ms por recurso en tiempo real e identificar los que consumen demasiado. El profiler integrado permite capturar perfiles de rendimiento detallados para buscar funciones lentas. Los comandos netgraph y con_miniconChannels muestran estadísticas de red y filtran los logs para centrarte en canales específicos.
Depurar eventos y comunicación
Los errores en eventos son especialmente escurridizos porque los datos cruzan la red entre cliente y servidor. Registra cada evento en su handler con los parámetros recibidos y el source del jugador. Un middleware que intercepte TriggerServerEvent y TriggerClientEvent y los registre centralizadamente te da una vista panorámica de lo que ocurre. Para eventos que fallan silenciosamente, valida las entradas al principio del handler y registra los rechazos junto con el motivo.
Herramientas para depurar bases de datos
Los problemas con la base de datos aparecen a menudo como inconsistencias de datos. Configura oxmysql para registrar todas las queries con su tiempo de ejecución, lo que permite detectar queries lentas o errores SQL. Usa una herramienta GUI como DBeaver o TablePlus para inspeccionar los datos directamente y confirmar lo que ve tu script. Para bugs reproducibles, activa el log general de MySQL temporalmente para capturar cada query ejecutada contra la base de datos.
Flujo de trabajo y buenas prácticas
Trabaja en un servidor de desarrollo separado del de producción con una copia sanitizada de los datos. Reproduce los bugs de forma sistemática: si no puedes reproducir, no puedes arreglar. Una vez reproducido, aísla la causa raíz comentando código, añadiendo prints y dividiendo en pequeños pasos. Usa git para experimentar con seguridad, creando ramas para cada hipótesis. Documenta los bugs encontrados y sus soluciones en un wiki o issue tracker para que tu equipo acumule conocimiento con el tiempo.
