Saltearse al contenido

Crumbs y debugging

Los crashes de cliente en FiveM no te dicen casi nada. Los crumbs son lo último que ocurrió antes, guardado en KVP para que sobreviva al crash.

Inclúyelo en tu manifest:

client_script '@bs_core/shared/sh_crumbs.lua'

y deja crumbs donde las cosas pueden salir mal:

Crumb('radiotower', 'spawn prop %s at %.1f %.1f', model, x, y)

La cadena solo se formatea cuando los crumbs están activados, así que es barato. Config en bs_core:

Config.Crumbs = {
enabled = true,
keep = 40, -- entries kept
saveMs = 2000, -- KVP write interval
}

Tras un crash, el siguiente arranque imprime [crumbs] last session: en F8. /bs_crumbs imprime la sesión actual. Exports: Crumb(tag, msg), CrumbsOn(), Crumbs().

Buenos sitios para un crumb: antes de crear entidades, cargar modelos/anim dicts, adjuntar props, cualquier native sobre una entidad que podría ya no existir.

bs_core tiene BS.Log.info/warn/error/debug(tag, msg), con el nivel de Config.Framework.logLevel. Dentro de otros recursos no tienes BS.Log a menos que incluyas el framework; un simple print con el nombre del recurso vale.

ComandoDónde
/bs_crumbsclientecrumbs de esta sesión
/refreshuiclientecierra todos los paneles, suelta el foco NUI
/znet, /zsync, /zdiagservidorestado de zombis, ver Zombis
/znetc, /zgait, /zanim, /poolsclientepeds de zombis en tu cliente, pool de peds
/hotbardebughotbar del inventario
/prefsdebugservidorpreferencias de admin
bsconfig_activeconsolaperfil F1 activo

Además de los habituales de FiveM: resmon 1 y profiler record.

Muchas configs tienen un flag debug = false (Skills.Recoil.debug, Zombies.Net.debug, Guard.Settings.debug, Inventory.BodyRender.debug). Activa el que necesites, no todos.

  • qué hiciste y qué esperabas
  • líneas de la consola del servidor alrededor del problema
  • F8 para problemas de cliente, crumbs para crashes
  • para zombis: la salida de /znet y /zsync