Aller au contenu

Crumbs et debugging

Les crashs client sous FiveM ne vous disent presque rien. Les crumbs sont les dernières choses survenues avant, enregistrées en KVP pour survivre au crash.

Incluez-le dans votre manifest :

client_script '@bs_core/shared/sh_crumbs.lua'

et laissez des crumbs là où ça peut mal tourner :

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

La chaîne n’est formatée que lorsque les crumbs sont activés, donc c’est peu coûteux. Config dans bs_core :

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

Après un crash, le démarrage suivant affiche [crumbs] last session: dans F8. /bs_crumbs affiche la session en cours. Exports : Crumb(tag, msg), CrumbsOn(), Crumbs().

Bons endroits pour un crumb : avant de créer des entités, de charger des modèles/anim dicts, d’attacher des props, tout native sur une entité qui pourrait ne plus exister.

bs_core a BS.Log.info/warn/error/debug(tag, msg), le niveau vient de Config.Framework.logLevel. Dans les autres ressources vous n’avez pas BS.Log sauf si vous incluez le framework ; un simple print avec le nom de la ressource suffit.

CommandeOù
/bs_crumbsclientcrumbs de cette session
/refreshuiclientferme tous les panneaux, libère le focus NUI
/znet, /zsync, /zdiagserveurétat des zombies, voir Zombies
/znetc, /zgait, /zanim, /poolsclientpeds de zombies sur votre client, pool de peds
/hotbardebughotbar de l’inventaire
/prefsdebugserveurpréférences admin
bsconfig_activeconsoleprofil F1 actif

Plus les classiques de FiveM : resmon 1 et profiler record.

Beaucoup de configs ont un flag debug = false (Skills.Recoil.debug, Zombies.Net.debug, Guard.Settings.debug, Inventory.BodyRender.debug). Activez celui dont vous avez besoin, pas tous.

  • ce que vous avez fait, et ce que vous attendiez
  • les lignes de la console serveur autour du problème
  • F8 pour les problèmes client, crumbs pour les crashs
  • pour les zombies : la sortie de /znet et /zsync