- server status cards (online/players/version) via /api/status mcstatus ping - highlights carousel ported from old site (/highlights/ static media) - OBT (war in Zarya, open beta event server) + Season (Prologue, Create: Aeronautics, year-long) sections - nav updated, sections renumbered 01-06
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-win-<версия>.zip:
zernmc.exe— основная версия с GUI (JavaFX)zernmc-cli.exe— консольная версия (TUI)zernmc-cli-jfx.exe— консоль + JavaFX UIlib/jre21— встроенный JRE 21lib/javafx— модули JavaFX 23.0.1
Bootstrap-модуль встроен прямо в .exe, отдельный jar рядом не нужен.
Чего пока нет в лаунчере
- Готовых пресетов оптимизации 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).
Как скачать и запустить
Скачать последнюю версию можно по ссылкам:
Скачать лаунчер:
Инструкция:
- Скачайте zip-архив
- Распакуйте в удобную папку (например
C:\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
- Стабилизацией серверной части
- Вообще улучшением клиента