--- title: Журнал и поиск ошибок summary: Логи X4, полезные диагностические метки и различие между ошибкой XML, события и игрового эффекта. section: start kind: guide status: reference tags: ["debug","log","debug_text","DebugError","ошибка","журнал"] sources: ["https://wiki.egosoft.com/X%20Rebirth%20Wiki/Modding%20support/Mission%20Director%20Guide/"] --- ## Включите журнал Параметры запуска для диагностики скриптов: ```text -debug scripts -logfile debuglog.txt ``` Журнал создаётся в пользовательской папке игры. Ищите его в профиле, из которого действительно запущен процесс, особенно при нескольких тестовых профилях. Для своего MD-кода добавьте отличимую метку: ```xml ``` В Lua UI для ошибки можно использовать имеющийся в игре `DebugError`: ```lua if type(RegisterEvent) ~= "function" then DebugError("[WIKI] UI event API unavailable") return end ``` ## Четыре разных отказа | Этап | Что проверять | | --- | --- | | Импорт | Корректность XML, схема, имя файла, зависимость | | Событие | Имена screen/control, момент регистрации callback | | Исполнение | Типы параметров, существование объекта, разрешения | | Результат | Реальное значение в игре, объект, счёт или очередь | Не добавляйте общий «успех» сразу после отправки события. Назовите метку точнее: `sent`, `received`, `validated`, `applied`, `readback_ok`. ## Собирайте один полный снимок Сначала считайте все нужные факты, затем постройте отчёт о различиях. Если первая ошибка прерывает сбор, вы теряете сведения об остальных объектах и рискуете повторять дорогой сценарий без необходимости. В изучаемой сборке UI стандартная библиотека Lua `debug` отсутствовала. Не делайте диагностический инструмент зависимым от неё без проверки. Для callbacks карты помогли короткие ограниченные метки входа и аргументов.