MLoadBalancer - Secure transfer and load balancing / BungeeCord alternative
A secure (signed) load balancer system for Hytale servers with JWT authentication.
Описание
MLoadBalancer
Система балансировки нагрузки для серверов Hytale с аутентификацией JWT. Поддерживает два режима работы: лоббист (перенаправляет игроков) и цель (перенаправление игроков).
Альтернатива BungeeCord для Hytale
MLoadBalancer является родной альтернативой BungeeCord (прокси Minecraft), специально разработанной для сказка.
Зачем использовать MLoadBalancer вместо BungeeCord?
- Родом из HytaleСоздан специально для API Hytale, внешний прокси не нужен
- Интегрированная аутентификацияJWT с подписью HMAC, встроенной в саму игру
- проще: Нет необходимости запускать отдельный прокси-сервер - работает как плагин внутри сервера
- Лучшее исполнениеПеренаправление Native Hytale, без посредников
- Легкая конфигурация: Все в одном файле JSON5 без сложной настройки сети
Быстрое сравнение:
- BungeeCordВнешний прокси, который находится между клиентом и сервером (архитектура прокси)
- MLoadBalancerНативный плагин, который перенаправляет игроков напрямую (архитектура балансировщика нагрузки)
Если вы из Minecraft и знаете BungeeCord, MLoadBalancer служит той же цели, но более интегрированным и родным способом для Hytale!
Что это такое?
MLoadBalancer позволяет один лобби-сервер автоматически распределяет игроков между Несколько игровых серверов. Это как «входные ворота», которые направляют игроков в разные игровые комнаты.
Как это работает:
- Игрок подключается к лоббист сервер
- Лобби создает безопасный токен (JWT) для игрока
- лобби перенаправлять Игрок в одной из цель серверы
- Цель Сервер проверяет токен и позволяет игроку присоединиться
- Прямые соединения с целями являются заблокированный (безопасность)
Особенности
Плавная многосерверная маршрутизация . без внешнего прокси-сервера. Безопасная передача на основе JWT между лобби и целевыми серверами. Горячая перезаряжаемая конфигурация . для изменений нулевого времени простоя. Поддерживает как автоматическое, так и перенаправление на основе команд. Дополнительные командные сервера для более быстрого UX .. Интегрируется с плагинами через API ..
MLoadBalancer предназначен для реальных серверных сред, где игроки должны беспрепятственно перемещаться между экземплярами, не замечая инфраструктуру, стоящую за ним. Плагин поддерживает как перенаправление лобби, так и валидацию цели с помощью безопасности JWT. Вместо того, чтобы требовать прокси-сервера, такого как BungeeCord, все происходит внутри Hytale.
Ключевые возможности включают балансировку нагрузки, безопасную передачу токенов, необязательную маршрутизацию на основе команд, ярлыки на сервере, доступ с учетом разрешений (в режиме COMMANDS) и горячую перезагружаемую конфигурацию, чтобы операторы могли вносить изменения без перезагрузки сети.
Режимы диспетчеризации
Игроки могут быть перенаправлены автоматически (LOAD_BALANCER) или выбрать пункт назначения вручную (COMMANDS), в зависимости от сетевого дизайна и потока игроков. Автоматическое перенаправление идеально подходит, когда лобби действует исключительно как маршрутизатор входа, в то время как режим COMMANDS больше подходит для хабов, где игрокам нужен выбор, многоуровневый доступ или постоянное социальное пространство.
Пользовательские команды Per-Server
При использовании режима команд серверы могут необязательно определять пользователь Блок. Это позволяет выполнять такие задачи, как /выживание или vipделает перенаправление более быстрым и интуитивно понятным для игроков, которым в противном случае может потребоваться печатать /Перенаправленная выживаемость .. Пользовательские команды сосуществуют с глобальной командой перенаправления, и если глобальная команда не определена, она просто не будет зарегистрирована.
Разрешения
Проверки разрешений применяются только в режиме COMMANDS и позволяют контролировать доступ на основе ролей, таких как VIP-серверы, бэкэнды только для персонала или многоуровневый опыт. Когда разрешение установлено нулевойСервер открыт для всех игроков. Эта модель отражает обычные сети Minecraft BungeeCord, оставаясь родной для Hytale.
Будущие улучшения
Будущая работа включает в себя поддержку разрешений в режиме LOAD_BALANCER, взвешенную балансировку .️, подсчет игроков ., проверки здоровья . и расширенные параметры UX .. перенаправление на основе графического интерфейса .️ и перенаправление на основе мирового портала . также запланированы, чтобы игроки могли выбирать серверы через интерактивные элементы, а не только через COMMANDS. Эти функции UX будут основаны на существующем API и аутентификации.
Интеграция API плагина
MLoadBalancer предоставляет API интеграции, который позволяет внешним плагинам участвовать в маршрутизации сервера или прикреплять пользовательские данные полезной нагрузки к токену JWT .. Это позволяет перенаправлять задания, ранги игроков, состояние очереди или другой игровой контекст из лобби на целевой сервер без изобретения новых сетевых протоколов.
Целевые серверы могут позже считывать пересылаемые данные и действовать на них, обеспечивая более богатые кросс-серверные потоки, такие как автоматическое сватовство, игры в очереди или мини-игры между серверами.
конфигурация
Конфигурация для MLoadBalancer живет в:
config/com.machina/mloadbalancer/config.json5(предпочтительнее при написании)- запасной вариант:
mods/com.machina/mloadbalancer/config.json5(когда основной путь не может быть прописан)
Файлы конфигурации используют JSON5, позволяющие запятые и комментарии.
Кроме того, локализованные/переводимые сообщения, обращенные к игроку, живут в:
config/com.machina/mloadbalancer/translation.json5- запасной вариант:
mods/com.machina/mloadbalancer/translation.json5
Это делает конфигурационные пути согласованными во всех плагинах Machina. JSON5, позволяющие запятые и комментарии.
Основные настройки
включенный: мастер-переключатель для включения балансира нагрузкироль:лоббистилицельОпределение поведения сервераjwt.secret: общий секрет HMAC для подписания / проверки токеновjwt.expirationПротоколы: окно действительности для реферальных токенов
Настройки лобби
отправка Режим:LOAD_BALANCER(автоматический) илиКоманды(выбранный игрок)Предотвратить прямые контактыИзбегайте игроков, находящихся в лоббиloadBalancer.strategy:круглый робинилислучайныйСерверы[ ]Список целевых серверов с хостом, портом, включенным и разрешением
Команды Режим
имя командыГлобальная команда перенаправления (например).перенаправить)Серверы.customCommand.name: факультативная сокращенная команда per-serverСерверы[править править код]Ограничить доступ при входеКомандырежим
Глобальная команда является необязательной; если она отсутствует, она не регистрируется. Команды Per-Server остаются доступными.
Настройки цели
Роль = цельСервер принимает только JWT-аутентифицированные лобби
Поддержка развития
Вы можете поддержать разработку здесь , чтобы помочь подпитывать будущие обновления и функции:
https://machinastudios.net/support-us
сообщество
Вы можете поддержать разработку здесь , чтобы помочь подпитывать будущие обновления и функции:
https://machinastudios.net/support-us
сообщество
предрасположенность Присоединяйтесь к нашему сообществу!
Получите помощь, поделитесь идеями и свяжитесь с другими разработчиками:
- Поддержка и устранение неполадок
- Предложения и отзывы
- Сообщество и сотрудничество
😉 Присоединяйтесь к нашему серверу Discord: https://discord.gg/QAFrzj48EN
Показать оригинальное описание (English)
MLoadBalancer
A load balancer system for Hytale servers with JWT authentication. Supports two operation modes: lobby (redirects players) and target (receives redirected players).
BungeeCord Alternative for Hytale
MLoadBalancer is a native alternative to BungeeCord (Minecraft proxies) specifically developed for Hytale.
Why use MLoadBalancer instead of BungeeCord?
- Native to Hytale: Built specifically for Hytale's API, no external proxy needed
- Integrated Authentication: JWT with HMAC signature, security built into the game itself
- Simpler: No need to run a separate proxy server - works as a plugin inside the server
- Better Performance: Native Hytale redirection, no intermediary
- Easy Configuration: Everything in a single JSON5 file, no complex network setup
Quick comparison:
- BungeeCord: External proxy that sits between client and servers (proxy architecture)
- MLoadBalancer: Native plugin that redirects players directly (load balancer architecture)
If you're coming from Minecraft and know BungeeCord, MLoadBalancer serves the same purpose, but in a more integrated and native way for Hytale!
What is this?
MLoadBalancer allows you to have one lobby server that automatically distributes players to multiple game servers. It's like an "entry gate" that directs players to different game rooms.
How it works:
- Player connects to the lobby server
- Lobby creates a secure token (JWT) for the player
- Lobby redirects the player to one of the target servers
- Target server validates the token and allows the player to join
- Direct connections to targets are blocked (security)
Features
Smooth multi-server player routing 🚀 with no external proxy required. Secure JWT-based handoff between lobby and target servers 🔐. Hot-reloadable configuration 🎛 for zero-downtime changes. Supports both automatic and COMMANDS-based redirection 📡. Optional per-server COMMANDS for faster UX 🔌. Integrates with plugins via API 🧩.
MLoadBalancer is designed for real server environments where players should seamlessly move between instances without noticing the infrastructure behind it. The plugin supports both lobby redirection and target validation with JWT security. Instead of requiring a proxy like BungeeCord, everything happens natively inside Hytale.
Key capabilities include load balancing, secure token handoff, optional command-based routing, per-server shortcuts, permission-aware access (in COMMANDS mode), and a hot-reloadable configuration so operators can make changes without rebooting the network.
Dispatch Modes
Players can be redirected automatically (LOAD_BALANCER) or choose their destination manually (COMMANDS), depending on network design and player flow 🎮. Automatic redirection is ideal when the lobby acts purely as an entry router, while COMMANDS mode is more suitable for hubs where players need choice, tiered access or a persistent social space.
Per-Server Custom Commands
When using COMMANDS mode, servers may optionally define a customCommand block. This enables shortcut COMMANDS such as /survival or /vip, making redirection faster and more intuitive for players who might otherwise need to type /redirect survival 🧭. Custom commands coexist with the global redirect command, and if a global command is not defined, it simply will not be registered.
Permissions
Permission checks apply only in COMMANDS mode and allow role‑based access control such as VIP‑only servers, staff‑only backends or tiered experiences 🔑. When permission is set to null, the server is open to all players. This model mirrors common Minecraft BungeeCord networks while remaining native to Hytale.
Future Enhancements
Future work includes support for permissions in LOAD_BALANCER mode, weighted balancing ⚖️, player counts 📊, health checks 🩺, and expanded UX options 🎨. GUI-based redirection 🖱️ and world portal-based redirection 🌀 are also planned so players can select servers through interactive elements rather than only via COMMANDS. These UX features will build on the existing API and authentication pipeline.
Plugin API Integration
MLoadBalancer exposes an integration API that allows external plugins to participate in server routing or attach custom payload data to the JWT token 📦. This makes it possible to forward matchmaking assignments, player ranks, queue state or other gameplay context from the lobby to the target server without inventing new network protocols.
Target servers can later read the forwarded data and act on it, enabling richer cross‑server flows such as automated matchmaking, queued games or inter‑server minigames 🧩.
Configuration
Configuration for MLoadBalancer lives in:
config/com.machina/mloadbalancer/config.json5(preferred when writable)- fallback:
mods/com.machina/mloadbalancer/config.json5(when the primary path cannot be written)
Configuration files use JSON5, allowing trailing commas and comments.
In addition, localized/translatable player-facing messages live in:
config/com.machina/mloadbalancer/translation.json5- fallback:
mods/com.machina/mloadbalancer/translation.json5
This makes configuration paths consistent across all Machina plugins. JSON5, allowing trailing commas and comments.
Core Settings
enabled: master switch for enabling the load balancerrole:lobbyortarget, defining the server's behaviorjwt.secret: shared HMAC secret for token signing/validationjwt.expirationMinutes: validity window for referral tokens
Lobby Settings
dispatchMode:LOAD_BALANCER(automatic) orCOMMANDS(player‑selected)lobby.preventDirectConnections: avoid players staying in lobbyloadBalancer.strategy:round-robinorrandomservers[]: list of target servers with host, port, enabled and permission
COMMANDS Mode
command.name: global redirect command (e.g.redirect)servers[].customCommand.name: optional per‑server shorthand commandservers[].permission: restrict access when inCOMMANDSmode
A global command is optional; if absent, it is not registered. Per‑server commands remain available.
Target Settings
role = target: server accepts only JWT‑authenticated lobby referrals
Support Development
You can support development here 💖 to help fuel future updates and features:
https://machinastudios.net/support-us
Community
You can support development here 💖 to help fuel future updates and features:
https://machinastudios.net/support-us
Community
💬 Join our Discord community!
Get help, share ideas, and connect with other developers 🧑💻:
- 🆘 Support and troubleshooting
- 💡 Suggestions and feedback
- 🤝 Community and collaboration
👉 Join our Discord Server: https://discord.gg/QAFrzj48EN