SashegDev 1aefca32f2 site: dawn.gg-style landing at root + port /skin/* for TG bot
- serve new launcher landing site (zern.cc root -> launcher server 1582)
- static assets mounted at /css /js /img
- port GET/HEAD /skin/{filename} from old site with identical headers
- exempt /skin/* + site assets from rate-limit and cache middleware
- Caddy: root domains -> 1582, old site preserved at legacy.zernmc.*
2026-08-20 08:26:00 +00:00
2026-04-20 19:57:52 +03:00

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 UI
  • lib/jre21 — встроенный JRE 21
  • lib/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).

Как скачать и запустить

Скачать последнюю версию можно по ссылкам:

Скачать лаунчер:

Инструкция:

  1. Скачайте zip-архив
  2. Распакуйте в удобную папку (например C:\ZernMC)
  3. Запустите zernmc.exe (или zernmc-cli.exe для консольного режима)
  4. Войдите в аккаунт и нажмите «Начать игру»

Установка первой сборки

Если у вас ещё нет сборок:

  1. Выберите «Установить новую сборку»
  2. Выберите тип сборки:
    • 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. Решение:

  1. Запустите версию и посмотрите в логах, какой .json файл он пытается загрузить.
  2. Скопируйте правильный файл из assets/indexes/ и переименуйте его в нужное имя.

Forge / NeoForge

Работает через установщики лоадеров. Если у вас нет внешнего доступа к Maven-репозиториям — используйте прокси-режим.

Прокси-режим

Если нет доступа к Fabric/Forge Maven или серверам Mojang — лаунчер пытается использовать наш сервер как прокси. Если и к нему нет доступа — загрузка может не работать.

Как сообщить об ошибке (Issue)

  1. Скопируйте весь текст ошибки из логов (latest.log)
  2. Укажите, что вы делали перед ошибкой
  3. Укажите версию лаунчера
  4. Создайте 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
  • Стабилизацией серверной части
  • Вообще улучшением клиента
S
Description
Launcher
Readme MIT 88 MiB
Languages
Java 48.1%
Python 22.5%
JavaScript 15.8%
HTML 6.7%
CSS 5.7%
Other 1.2%