Настройка — не всегда новое окно#
Переключатель, число или выбор режима удобнее разместить в согласованном интерфейсе настроек расширений. Для нестандартной панели с собственным содержимым подойдёт своё окно.
Один из сторонних вариантов — 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, текст, тип и значение по умолчанию. Зарегистрируйте обработчик изменения. Полученное значение проверьте и сохраните в подходящем контексте своего мода.
Не сбрасывайте сохранённый выбор игрока значением по умолчанию при каждой загрузке. Перестроение меню не должно повторно применять дорогую игровую операцию.
Проверка#
Проверьте первое открытие, изменение значения, повторное открытие, сохранение и загрузку. Отдельно проверьте отсутствие зависимости или несовместимую версию. Сигнатуры берите из документации библиотеки, а не из непроверенного примера для старого выпуска.