Hot reload и ресурсы
Во время разработки используется сгенерированная папка прямо в игровой
Modules. CLI наблюдает за TypeScript-проектом, собирает его в отдельном
локальном месте и начинает синхронизацию только после полной успешной сборки.
save → проверка и компиляция → полная локальная сборка → sync в игруошибка ─────────────────────────────────────┘ оставляет прошлую версиюОднократное подключение игры
Заголовок раздела «Однократное подключение игры»npx killscript@0.1.2 link "/path/to/KILLSCRIPT/Modules"npm run install:gamenpm run devlink сохраняет путь текущего компьютера в .killscript/local.json. Файл
игнорируется Git, поэтому другой разработчик подключит Windows-путь, macOS SMB
mount или другую установку без изменения проекта.
install:game один раз собирает и синхронизирует модуль. dev повторяет тот же
безопасный процесс после каждого подходящего изменения и продолжает наблюдать.
Что перезагружается
Заголовок раздела «Что перезагружается»Watcher следит за:
- TypeScript, достижимым от клиентского и Reflex entries;
killscript.config.json;- top-level объявлениями settings и controls;
- файлами внутри
public/.
Изменение клиентского скрипта подхватывает folder hot reload игры. Реальное
изменение scripts/server.lua также запрашивает перезапуск Reflex текущего
матча и выводит уведомление. Не выключайте и не включайте модуль только ради
серверного кода: в некоторых сборках переключатель списка перезапускает лишь
клиент.
При ошибке компиляции неполный результат не копируется. Исправьте первую диагностику и сохраните снова; до этого игра продолжит выполнять последнюю успешную версию.
Добавление ресурсов
Заголовок раздела «Добавление ресурсов»Кладите файлы в public/ по относительным путям, которые ожидает нативный API:
public/├── images/│ └── Icon.png├── sounds/│ └── Toggle.ogg├── ui/│ └── Hud.uxml└── localization.csvВсё содержимое public/ копируется в корень модуля с тем же относительным
путём. Например:
const icon = Textures.GetTexture("images/Icon.png");const sound = Sounds.GetSound("Toggle.ogg");Сгенерированные имена module.json, config.json, inputs.json и scripts/
зарезервированы. Символические ссылки отклоняются, чтобы релиз случайно не
захватил файлы за пределами проекта.
Безопасность SMB и папки
Заголовок раздела «Безопасность SMB и папки»Для игровой Windows-папки через SMB CLI предпочитает замену изменённого файла одним переименованием и повторяет временные ошибки общего доступа. Если файловая система не умеет заменять файл таким способом, применяется восстановимая последовательность через резервную копию; в ней возможен очень короткий промежуток замены.
Целевая папка должна отсутствовать, иметь тот же UUID модуля или marker этого проекта. Чужой модуль никогда не перезаписывается и не удаляется автоматически.
Не редактируйте сгенерированный Lua в SMB-папке: следующая рабочая сборка
заменит его. Если синхронизация остановилась, запустите npm run doctor и откройте
Решение проблем.