Логирование
Игра показывает вывод модуля во встроенной консоли. Логгер добавляет постоянный префикс компонента и помогает управлять повторяющимися сообщениями. Он не пишет файлы и не отправляет телеметрию.
Создавайте логгер рядом с компонентом, которому принадлежат сообщения:
import { logger } from "@killscript/sdk/client";
const log = logger("Targeting");
log.info("enabled");log.debug(`Target: ${target?.Nickname ?? "none"}`);log.warn("Local agent is unavailable");В консоли появится:
[Targeting] enabled[Targeting] [DEBUG] Target: Bot1[Targeting] [WARN] Local agent is unavailablelogger() доступен и на клиенте, и в Reflex. Это небольшая сгенерированная
функция, а не загружаемый пакет.
Один копируемый отчёт
Заголовок раздела «Один копируемый отчёт»Отдельный print() для каждого поля создаёт много записей, перемешанных с
логами движка. Если строки описывают один результат, используйте batch():
log.batch([ "Scan complete", `Candidates: ${candidates.length}`, `Selected: ${target?.Nickname ?? "none"}`, `Tick: ${Time.Tick}`,]);Logger объединит строки и выполнит один нативный print. Такой отчёт можно выделить и скопировать целиком.
Ограничение повторов
Заголовок раздела «Ограничение повторов»once() подходит для условия, которое проверяется на каждом обновлении, но
должно попасть в лог один раз:
if (Agents.GetLocalAgent() === undefined) { log.once("missing-player", "Local agent is unavailable");}throttled() используйте, когда свежее значение полезно, но не на каждом
кадре:
log.throttled( "local-position", 1, `Position: ${local.Movement.Position}`,);Ключи принадлежат одному logger. Два logger могут использовать
"missing-player" независимо друг от друга. once() помнит ключ до
перезагрузки среды модуля, а throttled-сообщение снова разрешается после
заданного интервала.