Включите журнал#

Параметры запуска для диагностики скриптов:

TEXT
-debug scripts -logfile debuglog.txt

Журнал создаётся в пользовательской папке игры. Ищите его в профиле, из которого действительно запущен процесс, особенно при нескольких тестовых профилях.

Для своего MD-кода добавьте отличимую метку:

XML
<debug_text text="'WIKI: entered Read handler'" />

В 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 карты помогли короткие ограниченные метки входа и аргументов.