- installer/main.go: Go absolute GUI wizard (Welcome->Dir->Progress->Finish) via dialog, bootstrap colors, embed offline.zip for offline 104M standalone, online 5.8M downloads JRE+meta full files - go.mod: +walk/win for Inno-like wizard (Go 1.21, sys 0.28) - pom hotfix 5, Go build: online small (empty offline.zip) + offline large (embed ZernMC-win-*.zip), both signed, Content-Disposition kept
ZernMC Launcher
ZernMC Launcher — это полностью самописный Minecraft-лаунчер, созданный с нуля.
Клиент написан на Java, серверная часть — на Python (FastAPI).
Основные особенности
- Написан полностью с нуля, без использования готовых решений
- Удобная загрузка и обновление сборок прямо с сервера ZernMC
- Чистый и относительно читаемый код как клиента, так и сервера
- Графический интерфейс на JavaFX (по умолчанию) + TUI (режим
--cli) - Поддержка прокси-режима через свой сервер при проблемах с внешними ресурсами (Fabric/Forge Maven, Mojang и т.д.), обход блокировок через выбор домена и SNI
- Поддержка загрузчиков Fabric, Forge, NeoForge и ванильных версий (установка через встроенный JRE)
- Ротационные логи в стиле Minecraft:
latest.log+ архивы.log.gz - Инкрементальное обновление JavaFX и автообновление лаунчера
- Подпись exe самоподписным сертификатом Zern.cc (jsign/Authenticode)
- Полное отсутствие рекламы и телеметрии
- Не собирает никаких данных о пользователе
- Работает «из коробки»: достаточно распаковать архив и запустить
zernmc.exe - Есть система аккаунтов и проходок
Состав дистрибутива
Онлайн-установщик ZernMC-Online-Setup.exe (Go, ~5.7М, без Java):
- Спрашивает папку установки (default
C:\ZernMC) + чекбоксЯрлык ZernMC Launcher.lnk на рабочем столе - Качает
JRE 47М→lib/jre21, затемmeta/fileдляlib/javafx,bin/,assets/,zernmc.exe - Пишет
build.version, создаётuninstall.exe(C:\ZernMC\uninstall.exe), ярлык - Локальные файлы
~/.zernmcне трогает
Оффлайн ZernMC-win-<версия>.zip (или ZernMC-Offline-Setup.exe — тот же выбор папки + ярлык):
zernmc.exe— GUI (JavaFX)zernmc-cli.exe— TUIzernmc-cli-jfx.exe— консоль + JavaFXlib/jre21— JRE 21 (только оффлайн)lib/javafx— JavaFX 23.0.1
Bootstrap встроен в .exe.
Чего пока нет в лаунчере
- Готовых пресетов оптимизации JVM (настраиваются Java и выделенная память)
- Поддержки Quilt, LabyMod и других лоадеров
- Кастомных модов (UI, спавнеры, DPI, карточки)
- Сайта для лаунчера и сервера (текущий требует переделки)
- Трекинга наигранного времени (обновление раз в час вместо минуты)
Что планируется доработать в ближайшее время
- UI мод — переписать мод на UI: красивое главное меню, анимации, анимированный задний фон, эмбиент звуки, интерактивность, урезание ванильных элементов до используемых
- GUI мод — привести в единый стиль с главным меню
- Мод на спавнеры — кастомные спавнеры с лимитами (5-15 спавнов), отслеживание спавнов вокруг, замена на базовый спавнер при достижении предела с эффектами и звуками, данжи «временного парадокса» с процедурной генерацией этажей, минибоссы, лут
- DPI мод — отслеживание не-ZernMC лаунчеров, защита от форков с выпиленной проверкой, уведомления админу в Telegram с технической информацией
- Сайт — полноценный сайт для лаунчера и сервера
- Система карточек — дроп случайных карточек (обучена на датасете скинов CS2), просмотр, продажа, крафт, обмен между игроками, внутриигровая валюта «йоны», начисление йонов на баланс, обмен йонов на предметы, вывод йонов в отдельный предмет, анимации и эффекты
- Web API — OpenAPI документация, уровни доступа к API (например, получение списка игроков требует проходку)
- Трекинг наигранного времени — обновление каждую минуту вместо часа для нормальных графиков игроков
- Генерацию команды запуска Minecraft
- Стабильную работу автообновления лаунчера
- Полноценные настройки
- Улучшенный античит / ClientChecker — проверка подлинности клиента при подключении к серверу, без нужного клиента не пустит; поставляется вместе с лаунчером, не общедоступный. Хеш-проверка всех папок и файлов сборки при каждом запуске — при несовпадении одного хеша все моды переустанавливаются. Игнорируются только: логи, ресурспаки, шейдеры, сейвы, личные файлы. Защита от подмены libs и лоадеров (Meteor и аналоги), проверка целостности модов через хеши. В перспективе — защита от Mixin-атак (перехват логики других модов), сбор отчёта о текущей сборке и сравнение с базовой
- Баг-фиксы сервера: подключить
admin_routerвmain.py, исправить импорты ролей (ROLE_USERи др. не существуют вroles.py), добавить эндпоинт/auth/pass/activate, убрать дубли импортов (TTLCache,Response) - Улучшение прокси-режима
- Стабильность и производительность серверной части
- Общую надёжность загрузки файлов с сервера
Важная информация перед использованием
Управление в лаунчере (TUI)
Консольные версии (zernmc-cli.exe, а также режим --cli) используют текстовый интерфейс (TUI):
W/S(илиЦ/Ы) или↑/↓— перемещение по менюENTER— выбор пунктаESCили пункт «Назад» — возврат назад
Если вы случайно кликнули мышкой в окне лаунчера и он «заморозился» — просто нажмите любую клавишу на клавиатуре.
Основная версия zernmc.exe запускает графический интерфейс JavaFX.
Расположение сборок
Все установленные сборки хранятся в папке:
- Windows:
%USERPROFILE%\.zernmc\instances - Linux:
~/.zernmc\instances
Если сборка не удаляется корректно — удалите папку вручную.
Логи
Логи лаунчера пишутся в файл latest.log рядом с исполняемым файлом; старые логи архивируются в .log.gz (в стиле Minecraft).
Как скачать и запустить
Скачать лаунчер (выбери один):
- Онлайн-установщик (рекомендуется) —
ZernMC-Online-Setup.exe(~5.7М, Go, без Java): скачай → выбери папку установки (по умолчаниюC:\ZernMC) → [x] Создать ярлык ZernMC Launcher на рабочем столе → Установить. Первый запуск докачает JRE 47М + файлы лаунчера 50М. Данные сборок~/.zernmcостаются в профиле пользователя. Деинсталляция —C:\ZernMC\uninstall.exeили удаление папки. - Оффлайн ZIP —
ZernMC-win-<версия>.zip(98М, с JRE): скачай → выбери папку куда распаковать (диалог вZernMC-Offline-Setup.exeили вручную) → [x] Ярлык → готово. Для air-gapped.
Зеркала (оба варианта):
- https://api.zern.cc/launcher/download/jre — JRE для онлайн
- https://api.zernmc.ru/launcher/download/latest / https://api.zernmc.online/launcher/download/latest — ZIP
Инструкция (оба):
- Скачай online exe или offline zip
- Запусти установщик → выбери папку (по умолчанию
C:\ZernMC, можноD:\Games\ZernMC) → ярлык - Запусти
zernmc.exe(илиzernmc-cli.exe) из папки установки - Войди в аккаунт и нажми «Начать игру»
Установка первой сборки
Если у вас ещё нет сборок:
- Выберите «Установить новую сборку»
- Выберите тип сборки:
- ZernMC — готовые сборки с нашего сервера
- Модовый загрузчик — Fabric / Forge / NeoForge
- Ваниль — чистая версия от Mojang
Рекомендация: Не используйте кириллицу в названии сборки! (science 1.0.0-1.0.5)
Возможные проблемы и решения
«Error: Invalid or corrupt jarfile» при запуске exe
Перекачайте архив целиком из https://api.zernmc.ru/launcher/download/latest и распакуйте заново — старые версии (до 1.0.16.17) были повреждены подписью и не запускаются.
Проблемы с загрузкой ассетов
Иногда лаунчер неправильно определяет Asset Index. Решение:
- Запустите версию и посмотрите в логах, какой
.jsonфайл он пытается загрузить. - Скопируйте правильный файл из
assets/indexes/и переименуйте его в нужное имя.
Forge / NeoForge
Работает через установщики лоадеров. Если у вас нет внешнего доступа к Maven-репозиториям — используйте прокси-режим.
Прокси-режим
Если нет доступа к Fabric/Forge Maven или серверам Mojang — лаунчер пытается использовать наш сервер как прокси. Если и к нему нет доступа — загрузка может не работать.
Как сообщить об ошибке (Issue)
- Скопируйте весь текст ошибки из логов (
latest.log) - Укажите, что вы делали перед ошибкой
- Укажите версию лаунчера
- Создайте Issue на GitHub
Разработка (для желающих помочь)
git clone https://github.com/SashegDev/launcher
Откройте launcher/launcher/pom.xml
отредактируйте пути для билда, так как сейчас - он рассчитан на разработку только на своём сервере
mvn clean package
можете начинать!
Сборка exe на Linux требует: jsign (~/tools/jsign/jsign.jar), файлы сертификата в /root/cert/codesign/, встроенный JRE в ~/launcher/jre/jre21.
Благодарность
- Glitch135 — за бета-тест лаунчера и фидбеки
Буду рад помощи в разработке! Особенно приветствуется помощь с:
- Улучшением генерации команды запуска
- Добавлением поддержки Quilt / LabyMod
- Стабилизацией серверной части
- Вообще улучшением клиента