Pular para o conteúdo

Crumbs e debugging

Os crashes do cliente no FiveM quase não te dizem nada. Os crumbs são as últimas coisas que aconteceram antes, guardadas em KVP para sobreviverem ao crash.

Inclui-o no teu manifest:

client_script '@bs_core/shared/sh_crumbs.lua'

e larga crumbs onde as coisas podem correr mal:

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

A string só é formatada quando os crumbs estão ligados, por isso é barato. Config no bs_core:

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

Depois de um crash, o arranque seguinte imprime [crumbs] last session: no F8. /bs_crumbs imprime a sessão atual. Exports: Crumb(tag, msg), CrumbsOn(), Crumbs().

Bons sítios para um crumb: antes de criar entidades, carregar modelos/anim dicts, anexar props, qualquer native sobre uma entidade que possa já não existir.

O bs_core tem BS.Log.info/warn/error/debug(tag, msg), com o nível vindo de Config.Framework.logLevel. Dentro de outros recursos não tens BS.Log a não ser que incluas o framework; um simples print com o nome do recurso serve.

ComandoOnde
/bs_crumbsclientecrumbs desta sessão
/refreshuiclientefecha todos os painéis, larga o foco NUI
/znet, /zsync, /zdiagservidorestado dos zombies, ver Zombies
/znetc, /zgait, /zanim, /poolsclientepeds de zombies no teu cliente, pool de peds
/hotbardebughotbar do inventário
/prefsdebugservidorpreferências de admin
bsconfig_activeconsolaperfil F1 ativo

Mais os comandos habituais do FiveM: resmon 1 e profiler record.

Muitas configs têm uma flag debug = false (Skills.Recoil.debug, Zombies.Net.debug, Guard.Settings.debug, Inventory.BodyRender.debug). Liga a que precisas, não todas.

  • o que fizeste e o que esperavas
  • linhas da consola do servidor à volta do problema
  • F8 para problemas de cliente, crumbs para crashes
  • para zombies: o output de /znet e /zsync