Как создать сервер в Hytale
Полное руководство по серверам Hytale по настройке, конфигурации и администрированию выделенных серверов Hytale. Установка Java, запуск сервера, настройка файрвола, моды и мультисерверная архитектура.
Введение
Это руководство охватывает настройку, конфигурацию и эксплуатацию выделенных серверов Hytale.
Для кого: Администраторы серверов и игроки, которые хотят хостить собственные серверы.
Содержание
- Настройка сервера — установка Java, файлы сервера, системные требования
- Запуск сервера — команды запуска, аутентификация, порты, файрвол
- Советы и хитрости — моды, AOT-кэш, Sentry, рекомендуемые плагины
- Мультисерверная архитектура — переадресация игроков, редиректы, фоллбэки
- Дополнительно — JVM аргументы, обновления протокола, конфигурационные файлы
- Будущие функции — каталог серверов, группы, платёжная система, API
Настройка сервера
Системные требования
Сервер Hytale может работать на любом устройстве с:
- Минимум 4 ГБ оперативной памяти
- Java 25
- Архитектура x64 или arm64
Рекомендуем мониторить использование RAM и CPU во время работы сервера, чтобы понять типичное потребление ресурсов для вашего количества игроков и стиля игры.
Что влияет на ресурсы
- CPU — большое количество игроков или сущностей (NPC, мобы)
- RAM — большая загруженная область мира (высокая дальность прорисовки, игроки исследуют мир независимо друг от друга)
Совет: Экспериментируйте с параметром -Xmx для установки явных лимитов памяти. Типичный симптом нехватки памяти — повышенное использование CPU из-за сборки мусора.
Установка Java 25
Установите Java 25. Рекомендуем Adoptium Temurin.
Проверьте установку командой:
java --version
Ожидаемый вывод:
openjdk 25.0.1 2025-10-21 LTS
OpenJDK Runtime Environment Temurin-25.0.1+8 (build 25.0.1+8-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.1+8 (build 25.0.1+8-LTS, mixed mode, sharing)
Получение файлов сервера
Два способа получить файлы сервера:
Способ 1: Копирование из лаунчера
Подходит для: Быстрого тестирования. Неудобно обновлять.
Найдите файлы в папке установки лаунчера:
- Windows:
%appdata%\Hytale\install\release\package\game\latest - Linux:
$XDG_DATA_HOME/Hytale/install/release/package/game/latest - MacOS:
~/Application Support/Hytale/install/release/package/game/latest
Скопируйте папку Server и файл Assets.zip на ваш сервер.
Способ 2: Hytale Downloader CLI
Подходит для: Продакшен-серверов. Легко обновлять.
Скачайте: hytale-downloader.zip (Linux и Windows)
Основные команды:
./hytale-downloader— скачать последний релиз./hytale-downloader -print-version— показать версию игры без скачивания./hytale-downloader -check-update— проверить обновления./hytale-downloader -patchline pre-release— скачать из пре-релизного канала
Запуск сервера Hytale
Базовая команда запуска
java -jar HytaleServer.jar --assets PathToAssets.zip
Аутентификация сервера
После первого запуска необходимо аутентифицировать сервер:
> /auth login device
===================================================================
DEVICE AUTHORIZATION
===================================================================
Перейдите: https://accounts.hytale.com/device
Введите код: ABCD-1234
===================================================================
Ожидание авторизации (истекает через 900 секунд)...
[Пользователь завершает авторизацию в браузере]
> Authentication successful! Mode: OAUTH_DEVICE
После аутентификации сервер может принимать подключения игроков.
Лимит: 100 серверов на одну лицензию Hytale. Если нужно больше — купите дополнительные лицензии или подайте заявку на аккаунт Server Provider.
Справка по аргументам
java -jar HytaleServer.jar --help
Основные аргументы:
--assets <путь>— путь к файлу Assets.zip--bind 0.0.0.0:5520— адрес и порт для прослушивания--auth-mode <authenticated|offline>— режим аутентификации--backup— включить автоматические бэкапы--backup-frequency <минуты>— интервал бэкапов (по умолчанию 30)--accept-early-plugins— разрешить загрузку ранних плагинов
Настройка порта
Порт по умолчанию — 5520. Изменить можно аргументом --bind:
java -jar HytaleServer.jar --assets PathToAssets.zip --bind 0.0.0.0:25565
Настройка файрвола
Важно: Hytale использует протокол QUIC поверх UDP (не TCP)!
Проброс портов
Если сервер за роутером, пробросьте UDP порт 5520 (или ваш кастомный порт). Проброс TCP не требуется.
Правила файрвола
Windows (PowerShell от администратора):
New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow
Linux (iptables):
sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT
Linux (ufw):
sudo ufw allow 5520/udp
Проблемы с NAT
QUIC хорошо справляется с NAT в большинстве случаев. Если игроки не могут подключиться:
- Убедитесь, что порт проброшен именно для UDP, а не TCP
- Симметричный NAT может вызывать проблемы — рассмотрите VPS или выделенный сервер
- Игроки за CGNAT (часто на мобильных сетях) подключаются как клиенты без проблем
Структура файлов сервера
.cache/— кэш оптимизированных файловlogs/— логи сервераmods/— установленные модыuniverse/— данные миров и игроковbans.json— заблокированные игрокиconfig.json— конфигурация сервераpermissions.json— права доступаwhitelist.json— белый список игроков
Структура мира (universe)
Директория universe/worlds/ содержит все игровые миры. У каждого мира свой config.json с настройками:
Seed— сид генерации мираWorldGen— тип генератора мираIsPvpEnabled— включён ли PvPIsFallDamageEnabled— урон от паденияIsSpawningNPC— спавн NPCIsSavingChunks— сохранение чанков
Каждый мир работает в своём основном потоке и распределяет параллельную работу в общий пул потоков.
Советы и хитрости
Установка модов
Скачайте моды (.zip или .jar) с CurseForge и положите их в папку mods/.
Отключение Sentry (отчёты об ошибках)
Важно: Отключайте Sentry при активной разработке плагинов, чтобы не отправлять ваши ошибки разработчикам Hytale.
java -jar HytaleServer.jar --assets PathToAssets.zip --disable-sentry
AOT-кэш для быстрого запуска
Сервер поставляется с предварительно обученным AOT-кэшем (HytaleServer.aot), который ускоряет запуск, пропуская JIT-прогрев:
java -XX:AOTCache=HytaleServer.aot -jar HytaleServer.jar --assets PathToAssets.zip
Рекомендуемые плагины
Партнёры Hypixel Studios — Nitrado и Apex Hosting — поддерживают полезные плагины:
- Nitrado:WebServer — базовый плагин для веб-приложений и API
- Nitrado:Query — статус сервера (онлайн игроков и т.д.) через HTTP
- Nitrado:PerformanceSaver — динамическое ограничение дальности прорисовки
- ApexHosting:PrometheusExporter — детальные метрики сервера и JVM
Дальность прорисовки (View Distance)
Дальность прорисовки — основной фактор потребления RAM. Рекомендуем ограничить максимум до 12 чанков (384 блока).
Для сравнения: в Minecraft серверы по умолчанию используют 10 чанков (160 блоков). Hytale по умолчанию — 384 блока, что эквивалентно 24 чанкам Minecraft. Ожидайте более высокое потребление RAM с настройками по умолчанию.
Мультисерверная архитектура
Hytale поддерживает встроенные механизмы маршрутизации игроков между серверами. Прокси типа BungeeCord не требуется!
Переадресация игрока (Player Referral)
Переводит подключённого игрока на другой сервер. Сервер отправляет пакет с адресом цели и опциональной полезной нагрузкой (до 4 КБ).
PlayerRef.referToServer(@Nonnull final String host, final int port, @Nullable byte[] data)
Безопасность: Полезная нагрузка передаётся через клиент и может быть изменена. Подписывайте данные криптографически (например, HMAC с общим секретом), чтобы принимающий сервер мог проверить подлинность.
Применение: Перевод между игровыми серверами, передача контекста сессии, доступ через матчмейкинг.
Редирект при подключении
Во время рукопожатия сервер может отклонить игрока и перенаправить на другой сервер. Клиент автоматически подключается к новому адресу.
PlayerSetupConnectEvent.referToServer(@Nonnull final String host, final int port, @Nullable byte[] data)
Применение: Балансировка нагрузки, региональная маршрутизация, принудительное подключение через лобби.
Фоллбэк при отключении
При неожиданном отключении (краш сервера, проблемы с сетью) клиент автоматически переподключается к заранее настроенному фоллбэк-серверу вместо возврата в главное меню.
Применение: Возврат игроков в лобби после краша игрового сервера, поддержание вовлечённости при перезапусках.
Создание прокси
Собственные прокси-серверы можно создать с помощью Netty QUIC. Hytale использует исключительно QUIC для связи клиент-сервер.
Определения пакетов и структура протокола доступны в HytaleServer.jar:
com.hypixel.hytale.protocol.packets
Дополнительные детали
JVM аргументы
Используйте -Xms и -Xmx для управления размером кучи. Подробнее: Guide to the Most Important JVM Parameters.
Обновления протокола
Протокол Hytale использует хеш для проверки совместимости клиента и сервера. Если хеши не совпадают точно — подключение отклоняется.
Текущее ограничение: Клиент и сервер должны быть на одинаковой версии протокола. При выходе обновления серверы должны обновиться немедленно.
Скоро: Толерантность протокола ±2 версии между клиентом и сервером.
Конфигурационные файлы
Файлы конфигурации (config.json, permissions.json и т.д.) читаются при запуске сервера и записываются при внутриигровых действиях. Ручные изменения при работающем сервере могут быть перезаписаны.
Maven Central артефакт
HytaleServer.jar будет опубликован в Maven Central для использования в проектах моддинга:
<dependency>
<groupId>com.hypixel.hytale</groupId>
<artifactId>Server</artifactId>
</dependency>
Будущие функции
Каталог серверов и мини-игр
Каталог в главном меню, где игроки смогут находить серверы и мини-игры. Операторы серверов смогут добавить свой сервер в каталог.
Требования для листинга:
- Соответствие правилам для операторов серверов
- Самооценка контента (для фильтрации и родительского контроля)
- Серверы, нарушающие самооценку, подлежат санкциям
Верификация количества игроков: Онлайн в каталоге собирается из телеметрии клиентов, а не от серверов. Это предотвращает накрутку.
Система групп (Party)
Система групп, позволяющая игрокам объединяться и оставаться вместе при переходах между серверами и в очередях мини-игр.
Встроенная платёжная система
Платёжный шлюз в клиенте, который серверы могут использовать для приёма платежей от игроков.
Для операторов: Приём платежей без обработки платёжных данных и создания инфраструктуры.
Для игроков: Не нужно посещать внешние сайты, все транзакции безопасны и отслеживаемы.
Поддержка SRV-записей
Позволит игрокам подключаться по домену (например, play.example.com) без указания порта.
Статус: Не поддерживается. На рассмотрении.
Официальные API-эндпоинты
Аутентифицированные серверы получат доступ к официальным API:
- UUID ↔ Имя — конвертация имён игроков в UUID и обратно
- Версия игры — текущая версия, версия протокола, проверка обновлений
- Профиль игрока — косметика, аватары, публичная информация
- Телеметрия сервера — статус, онлайн, метаданные для каталога
- Репорты — жалобы на игроков за нарушение ToS
- Платежи — обработка платежей через встроенный шлюз
На рассмотрении:
- Глобальные санкции — проверка платформенных банов игрока
- Список друзей — получение друзей игрока (с разрешениями)
- Вебхуки — подписка на события (смена имени, санкции и т.д.)