Zum Inhalt springen

Crumbs & Debugging

Client-Crashes in FiveM sagen dir fast nichts. Crumbs sind die letzten Dinge, die davor passiert sind, in KVP gespeichert, damit sie den Crash überleben.

Binde es in dein Manifest ein:

client_script '@bs_core/shared/sh_crumbs.lua'

und streue Crumbs dort, wo etwas schiefgehen kann:

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

Der String wird nur formatiert, wenn Crumbs aktiv sind, ist also billig. Config in bs_core:

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

Nach einem Crash gibt der nächste Start [crumbs] last session: in F8 aus. /bs_crumbs gibt die aktuelle Sitzung aus. Exports: Crumb(tag, msg), CrumbsOn(), Crumbs().

Gute Stellen für einen Crumb: vor dem Erzeugen von Entities, dem Laden von Modellen/Anim-Dicts, dem Anhängen von Props, bei jedem Native auf eine Entity, die nicht mehr existieren könnte.

bs_core hat BS.Log.info/warn/error/debug(tag, msg), das Level kommt aus Config.Framework.logLevel. In anderen Ressourcen hast du BS.Log nicht, außer du bindest das Framework ein; ein einfaches print mit dem Ressourcennamen genügt.

BefehlWo
/bs_crumbsClientCrumbs dieser Sitzung
/refreshuiClientschließt jedes Panel, gibt den NUI-Fokus frei
/znet, /zsync, /zdiagServerZombie-Status, siehe Zombies
/znetc, /zgait, /zanim, /poolsClientZombie-Peds auf deinem Client, Ped-Pool
/hotbardebugInventar-Hotbar
/prefsdebugServerAdmin-Einstellungen
bsconfig_activeKonsoleaktives F1-Profil

Dazu die üblichen FiveM-Befehle: resmon 1 und profiler record.

Viele Configs haben ein Flag debug = false (Skills.Recoil.debug, Zombies.Net.debug, Guard.Settings.debug, Inventory.BodyRender.debug). Schalte das ein, das du brauchst, nicht alle.

  • was du getan hast und was du erwartet hast
  • Server-Konsolenzeilen rund um das Problem
  • F8 bei Client-Problemen, Crumbs bei Crashes
  • bei Zombies: die Ausgabe von /znet und /zsync