Консольные команды
Серверная консоль и rcon.Управление
lua_reload <plugin> снимает хендлеры, таймеры, команды и базы плагина,
выполняет plugin.on_unload и запускает manifest.lua,
затем init.lua заново с чистым кешем require.
После правок в
core/ и lib/ нужна полная перезагрузка: их разделяют
все плагины.lua_check <plugin> выполняет только manifest.lua — plugin{}, права,
конфиг — в отдельном одноразовом слоте, который не попадает в список
работающих плагинов и убирается сразу после проверки. init.lua не
запускается вовсе. Так ловится битый plugin{}, отсутствующий require или
синтаксическая ошибка в manifest.lua до того, как lua_reload реально
остановит плагин.
Порядок загрузки
addons/lua/load_order.txt задаёт, какие плагины грузятся первыми и в каком
порядке. Обработчики событий вызываются в том же порядке, поэтому файл решает,
кто выигрывает на отменяемом событии.
lua_list показывает итоговый порядок и сколько мест задано вручную.
lua_list показывает по каждому плагину, сколько он держит обработчиков (h),
таймеров (t) и открытых баз (db) — общая цифра говорит, что что-то течёт,
эта колонка говорит, кто именно.
Профилировка
Единственный ответ на «какой плагин лагает». Выключена по умолчанию: чтение часов на обработчик дёшево, но не бесплатно.ms/call: обработчик
weapon_fire вызывается тысячи раз и обязан быть дешёвым, а обработчик
round_start может позволить себе больше.
Диагностика вывода
Вывод идёт всем подключённым — это способ увидеть сообщение глазами игрока.