premium banner
Teleport through different servers using a menu!

Description

HyServerSelector

HyServerSelector is a Hytale server selector + router for multi-server networks.

It uses a HUB & SPOKE setup:

  • HUB (Lobby): accepts TCP links from spokes and shows the full network list.
  • SPOKE (Game servers): connects to the hub and can transfer players via hub routing.

Use it to run a network like: Lobby → HollowCrown → Everroot → etc


Join us


Features

  • Server Selector UI (/ss)
    • Server cards (region tab, type badge, player count, ping, optional MOTD line, favorites)
    • List updates when you change filters, region, or search; live tick refresh while the UI stays open is off by default in code (can be enabled for development)
  • Cross-server routing
    • Hub knows where each spoke lives (game host/port)
    • Spokes ask hub to resolve transfers
  • Region tabs
    • Tabs from MenuConfig.json5
    • Optional tab permissions (LuckPerms)
  • Permissions
    • Gate /ss
    • Gate CONNECT per-server with optional node
  • Optional portal system (WIP)
    • portals.json5 config exists
    • Item/block wiring depends on Hytale item/block APIs

Commands

  • /ss
    • Opens the server selector UI
  • /server <serverId>
    • Transfers you to a server by id
  • /lobby
    • Transfers you to the lobby server id (configurable)
  • /ss p <portalName>
    • Portal item helper (requires item API wiring; may be stubbed)
  • /ss configkey
    • Portal config key helper (requires item API wiring; may be stubbed)

Ping shown in /ss

  • Your current server: shows your real client ping (tab-list RTT).
  • Other servers: shows hub link RTT (HUB ↔ spoke TCP), not your client ping.

Reason: the server cannot measure your client RTT to a server you are not connected to.


Install

  1. Drop the mod/plugin JAR into your server’s plugins/mods folder (whatever your Hytale server build uses).
  2. Start the server once.
  3. Edit generated config files in mods/HyServerSelector/.
  4. Restart.

Configuration

Config files are generated on first run:

  • mods/HyServerSelector/config.json5
    • serverId, secret, gameHost, gamePort, display fields
  • mods/HyServerSelector/Forwarder/hub.json5
    • set "enabled": true on the HUB
    • choose listen host/port
  • mods/HyServerSelector/Forwarder/spoke.json5
    • set "enabled": true on each SPOKE
    • set hub host/port
  • mods/HyServerSelector/MenuConfig.json5
    • region tabs, labels, tab permissions
  • mods/HyServerSelector/portals.json5
    • named portals (UI or server transfer)

Permissions (LuckPerms)

This mod integrates with LuckPerms.

Common nodes:

  • Use /ss: hyserverselector.serverselector
  • Portal admin: hyserverselector.portal.admin
  • Optional per-server CONNECT node: set connectPermission in config.json5 on that server

Notes / Limits

  • Player transfer call depends on official Hytale transfer API.
  • Portal item / block events depend on official Hytale item + block event APIs.
  • Server display data is read from the Hytale game Config.json when present (same fields as the stock server file). The mod resolves several relative paths (game root vs Server/ cwd, Config.json / config.json on case-sensitive filesystems, parent folder). Useful keys include:
    • ServerName → card title (else serverId)
    • MaxPlayerscurrent / max
    • MOTD or Description → subtitle line under the name
    • Version → forwarded to the hub for display metadata
  • Enable debug: true in mods/HyServerSelector/config.json5 to log which path was loaded (helps Docker / wrong cwd).

Support

If something looks wrong, enable debug in mods/HyServerSelector/config.json5 and check server logs.