Настройка — не всегда новое окно#

Переключатель, число или выбор режима удобнее разместить в согласованном интерфейсе настроек расширений. Для нестандартной панели с собственным содержимым подойдёт своё окно.

Один из сторонних вариантов — X4 Mod Support APIs (sn_mod_support_apis). Его Simple Menu API предоставляет настройки и построение меню, Lua Loader API помогает с загрузкой и отложенной инициализацией.

Отделяйте библиотеку от игры#

Register_OnLoad_Init и MD-точки Simple_Menu_Options принадлежат этой библиотеке. Это не функции, которые обязательно присутствуют в чистой X4.

Для нового использования прочитайте документацию установленной версии, объявите зависимость в content.xml и нужную UI-зависимость в ui.xml. Не вызывайте библиотеку до её готовности.

Маршрут настройки#

Задайте уникальный ID, текст, тип и значение по умолчанию. Зарегистрируйте обработчик изменения. Полученное значение проверьте и сохраните в подходящем контексте своего мода.

Не сбрасывайте сохранённый выбор игрока значением по умолчанию при каждой загрузке. Перестроение меню не должно повторно применять дорогую игровую операцию.

Проверка#

Проверьте первое открытие, изменение значения, повторное открытие, сохранение и загрузку. Отдельно проверьте отсутствие зависимости или несовместимую версию. Сигнатуры берите из документации библиотеки, а не из непроверенного примера для старого выпуска.