Перейти к содержимому

Crumbs и отладка

Краши клиента в FiveM почти ничего не говорят. Crumbs - последние события перед ним, сохранённые в KVP, чтобы пережить краш.

Подключите в манифесте:

client_script '@bs_core/shared/sh_crumbs.lua'

и оставляйте crumbs там, где что-то может пойти не так:

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

Строка форматируется только когда crumbs включены, так что это дёшево. Конфиг в bs_core:

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

После краша при следующем запуске в F8 выводится [crumbs] last session:. /bs_crumbs выводит текущую сессию. Экспорты: Crumb(tag, msg), CrumbsOn(), Crumbs().

Хорошие места для crumb: перед созданием сущностей, загрузкой моделей/словарей анимаций, прикреплением пропов, любым нативом на сущности, которой могло уже не быть.

У bs_core есть BS.Log.info/warn/error/debug(tag, msg), уровень берётся из Config.Framework.logLevel. В других ресурсах BS.Log нет, пока вы не подключите фреймворк, достаточно обычного print с именем ресурса.

КомандаГде
/bs_crumbsclientcrumbs этой сессии
/refreshuiclientзакрыть все панели, снять фокус NUI
/znet, /zsync, /zdiagserverсостояние зомби, см. Зомби
/znetc, /zgait, /zanim, /poolsclientпеды зомби на вашем клиенте, пул педов
/hotbardebugбыстрая панель инвентаря
/prefsdebugserverнастройки админа
bsconfig_activeконсольактивный профиль F1

Плюс стандартные команды FiveM: resmon 1 и profiler record.

Во многих конфигах есть флаг debug = false (Skills.Recoil.debug, Zombies.Net.debug, Guard.Settings.debug, Inventory.BodyRender.debug). Включайте нужный, а не все.

  • что вы сделали и чего ожидали
  • строки консоли сервера вокруг события
  • F8 для проблем клиента, crumbs для крашей
  • для зомби: вывод /znet и /zsync