Launcher — desktop-приложение на Electron 39 и React 19. Оно показывает список серверов без обязательного входа, а перед установкой или запуском защищённой сборки запрашивает авторизацию и регистрирует устройство.

Архитектура процессов

Границы main, preload, renderer и native-процессов.

Игровые сборки

Профиль, assets, Java, проверка, установка и запуск Minecraft.

Локальные настройки

Каталог данных, RAM для сервера и безопасная запись config.json.

Выпуск приложения

Обязательное обновление, S3 feed и проверка release artifacts.

Возможности

  • device OAuth через сайт;
  • realtime-профиль игрока и группы;
  • серверы из Wraithbound API;
  • electron-store для локальных настроек;
  • GitHub auto-update с резервным generic S3;
  • Discord Rich Presence;
  • отдельное окно debug console;
  • Rust Scanner и Downloader;
  • Machine ID и Guardian.

Данные пользователя

Настройки приложения, выбранный storageRoot и параметры отдельных серверов хранятся в секциях единого {userData}/config.json. Защищённая сессия живёт отдельно и шифруется через Electron safeStorage. Тяжёлые игровые данные используют storageRoot: сборки находятся в common/{profile.dir}, assets — в assets/{assetIndex}, Java — в runtimes/{runtime.id}. По умолчанию это {userData}/storage, но пользователь может перенести данные на другой диск в настройках. Старые раздельные файлы настроек допускаются только как одноразовый источник миграции.
Пользователь может открыть лаунчер и просматривать серверы без аккаунта. Авторизация обязательна перед загрузкой/запуском защищённого игрового клиента.

Путь от выбора сервера до игры

Страница только инициирует сценарий и отображает типизированное состояние. Пути, session token, JVM arguments, политика Guardian и дочерние процессы остаются в main-процессе.