ServerRouter - Multi-Server Network Suite for Hytale
ServerRouter is a Hytale plugin designed for multi-server networks.
It allows players to move between servers using commands, portals, and configurable routes while keeping server availability, player counts, network status, network chat, network events, and optional shared inventory synchronized through a shared MariaDB database.
Starting from ServerRouter 5.2.0, the plugin also includes an optional built-in Shared Inventory module, allowing players to keep the same inventory across connected servers without needing a separate inventory sync plugin.
ServerRouter is built for networks that use a hub or entry server with additional servers such as survival worlds, dungeon servers, minigame servers, creative servers, arena servers, event servers, or any other custom server type.
ServerRouter is fully configurable.
The default routes such as /hub, /survival, and /creative are only examples. They can be renamed, changed, removed, or expanded.
You can add your own routes and servers to match your network structure.
See ServerRouter in Action
You can visit our Hytale server HyTari to see ServerRouter running in a real multi-server network environment.
ServerRouter is used on HyTari for server routing, route commands, portal transfers, live server status, network chat, network events, scoreboard placeholders, and shared inventory between connected servers.
What’s New in ServerRouter 5.2.0
ServerRouter 5.2.0 introduces the new optional Shared Inventory module and improves how generated configuration and language files are organized.
Integrated Shared Inventory
ServerRouter now includes an optional built-in inventory sync module.
When enabled, players can keep the same inventory while moving between servers connected through ServerRouter.
This is useful for networks where players should be able to travel between hubs, survival servers, dungeons, games, arenas, or other routed servers without losing their inventory state.
Optional inventorySync Module
The shared inventory system is controlled by a dedicated
It is disabled by default and can be enabled only when shared inventory is desired.
Example:
Uses Existing ServerRouter Database Settings
The integrated inventory sync module uses the existing ServerRouter database configuration.
You do not need to configure a second database block for shared inventory.
Each server still needs a unique
Inventory Auto-Save
The inventorySync module supports automatic inventory saving with a configurable interval.
Inventory Lock Protection
The shared inventory system includes locking protection to help keep player inventory data safe while players move between servers.
Inventory Language Messages
Inventory loading and locked messages use ServerRouter language keys by default.
Generated language files include dedicated inventory sync message keys, which can be translated or customized like the other ServerRouter messages.
Improved Config and Language Organization
ServerRouter 5.2.0 improves generated file organization.
The
Core Features
Server Transfers
Create custom route commands such as:
Each route can point to a different server host, port, permission, display name, and availability rule.
Before transferring a player, ServerRouter checks whether the target server is:
If the target server is unavailable, the player remains safely on the current server and receives a configurable message.
Fully Configurable Routes and Server Names
ServerRouter does not lock you into fixed server names or fixed commands.
The included default configuration provides example routes for:
But you can freely customize them for your own network.
For example, you can create a setup like:
You can configure:
This makes ServerRouter suitable for both small networks and larger multi-server setups.
Portal Routing
ServerRouter includes route-based portal support.
Portals can be linked to route IDs, allowing players to move between servers without typing commands.
This makes it possible to create:
directly inside the game world.
Portal items can be generated automatically from your configured routes.
Note: Newly generated portal items may require one additional server restart before they appear in the creative inventory.
Auto-Generated Portal Items
ServerRouter can automatically generate portal item assets from the routes configured in your
When you add a route, ServerRouter can create the matching portal item for that route.
For example, if you configure routes such as:
ServerRouter can generate matching portal items for those routes.
This makes it much easier to expand your network without manually editing asset files inside the plugin JAR.
No JAR Editing Required
Portal assets are not stored as fixed items inside the plugin JAR.
ServerRouter generates portal items externally inside:
This means you do not need to edit the JAR to add, update, or keep custom portals.
Generated files are stored outside the JAR, so they can remain available even after plugin updates.
Generated File Structure
After configuration, ServerRouter can generate a structure like this:
Persistent Custom Files
Generated portal files and language files are not overwritten once they already exist.
This allows server owners to customize generated portal items, names, descriptions, categories, and language strings safely.
Your custom generated files stay outside the plugin JAR.
Shared Inventory
ServerRouter 5.2.0 includes an optional integrated shared inventory module.
When enabled, player inventories can be synchronized across connected servers.
This is useful for networks where players should move between different servers while keeping the same inventory experience.
Examples:
The module is optional and can be enabled or disabled from the config.
Important: If you enable the integrated inventorySync module, do not run another standalone inventory sync plugin at the same time.
Portal Safety Protection
ServerRouter includes portal safety handling to help prevent transfer loops.
Players who have just joined a server or have just arrived through a ServerRouter transfer can be temporarily protected from triggering portals again immediately.
This is useful when:
If a portal is temporarily blocked by safety protection, the player can receive a configurable message explaining why the portal is not working yet.
Orphaned Portal Protection
If a portal item still exists but its route was removed from the config, ServerRouter will not crash the server.
Instead, the portal is safely ignored and the player can receive a configurable missing destination message.
This makes route changes safer for server owners.
Heartbeat and Server Status
Each server can publish its current status to the shared database.
Published status can include:
Other servers can then use this information before allowing transfers.
This helps prevent players from being sent to offline, full, or unavailable servers.
Network Chat
ServerRouter can relay normal player chat between servers using the shared database.
This allows players on different servers in the same network to communicate while still showing which server the message came from.
Network chat supports:
This feature is optional and can be disabled in the configuration.
Network Events
ServerRouter can also relay join, quit, and server-switch events between servers.
Supported event types include:
Server-switch handling is designed to avoid unnecessary join/quit spam when players move between servers.
Instead of showing a quit message on one server and a join message on another, ServerRouter can show a cleaner switch message such as:
Network events also support options such as:
This feature is optional and fully configurable.
Scoreboard and Placeholder Integration
Scoreboard support is optional.
ServerRouter can expose live network data through placeholders/API so scoreboard plugins or similar systems can display information such as:
BetterScoreBoard integration is supported, but it is not required for the core routing features.
ServerRouter can run normally without any scoreboard plugin installed.
Generated Language Files
ServerRouter can generate language files for multiple locales:
Default player-facing messages use language keys, making translation and customization cleaner.
Server owners can still write normal text directly in the config if they prefer not to use language keys.
Configuration Auto-Update
ServerRouter includes configuration migration support.
If an existing configuration file is missing newly added options, ServerRouter can automatically add the missing fields while keeping the existing configuration values.
This makes updating easier when new options are added in future versions.
Example Use Cases
ServerRouter can be used for:
Example Network Setup
A simple network can look like this:
A larger network can look like this:
All names, commands, ports, permissions, messages, portal items, inventory sync options, and display names can be changed in the configuration.
Database Requirement
ServerRouter uses a shared MariaDB database to synchronize server status, player counts, network chat, network events, and optional shared inventory between servers.
All servers in the same network should use:
Each server should have its own unique serverId.
Optional Integrations
ServerRouter can work with optional integrations such as:
These integrations are optional.
The core server routing system does not require them.
Upgrade Notes
If you are updating from an older ServerRouter version, replace the old JAR with ServerRouter 5.2.0 on all servers in your network.
ServerRouter includes configuration migration support.
When an existing config file is detected, the plugin can automatically add missing new options while keeping your current values.
This means existing configurations from previous versions can be updated without manually recreating the config from scratch.
For best results:
Existing generated portal files and language files are not overwritten automatically.
Important: Do not enable the integrated inventorySync module while also running a separate standalone inventory sync plugin.
Notes
ServerRouter is designed to be configurable, generic, and suitable for different network layouts.
The included default configuration provides example routes for hub, survival, and creative servers, but these can be changed to match your own network.
You can add more servers, rename commands, change display names, customize messages, configure permissions, generate portal items, translate language files, enable shared inventory, and decide which integrations you want to use.
The plugin does not require a scoreboard plugin to run.
Scoreboard and placeholder support are optional integrations for server owners who want to display live network information to players.
Summary
ServerRouter gives Hytale server owners a flexible multi-server network suite.
It combines:
into one configurable plugin for building a cleaner multi-server Hytale experience.
ServerRouter is a Hytale plugin designed for multi-server networks.
It allows players to move between servers using commands, portals, and configurable routes while keeping server availability, player counts, network status, network chat, network events, and optional shared inventory synchronized through a shared MariaDB database.
Starting from ServerRouter 5.2.0, the plugin also includes an optional built-in Shared Inventory module, allowing players to keep the same inventory across connected servers without needing a separate inventory sync plugin.
ServerRouter is built for networks that use a hub or entry server with additional servers such as survival worlds, dungeon servers, minigame servers, creative servers, arena servers, event servers, or any other custom server type.
ServerRouter is fully configurable.
The default routes such as /hub, /survival, and /creative are only examples. They can be renamed, changed, removed, or expanded.
You can add your own routes and servers to match your network structure.
See ServerRouter in Action
You can visit our Hytale server HyTari to see ServerRouter running in a real multi-server network environment.
ServerRouter is used on HyTari for server routing, route commands, portal transfers, live server status, network chat, network events, scoreboard placeholders, and shared inventory between connected servers.
Code:
play.HyTari.it
What’s New in ServerRouter 5.2.0
ServerRouter 5.2.0 introduces the new optional Shared Inventory module and improves how generated configuration and language files are organized.
Integrated Shared Inventory
ServerRouter now includes an optional built-in inventory sync module.
When enabled, players can keep the same inventory while moving between servers connected through ServerRouter.
This is useful for networks where players should be able to travel between hubs, survival servers, dungeons, games, arenas, or other routed servers without losing their inventory state.
Optional inventorySync Module
The shared inventory system is controlled by a dedicated
inventorySync section inside config.json.It is disabled by default and can be enabled only when shared inventory is desired.
Example:
JSON:
"inventorySync": {
"enabled": false,
"lockTtlSeconds": 120,
"lockRefreshSeconds": 30,
"autoSaveEnabled": true,
"autoSaveIntervalSeconds": 600,
"profileSaveDelayMillis": 1500,
"loadingInventoryMessageEnabled": true,
"loadingInventoryMessage": "server.serverrouter.inventory.loading",
"lockedInventoryMessage": "server.serverrouter.inventory.locked"
}
Uses Existing ServerRouter Database Settings
The integrated inventory sync module uses the existing ServerRouter database configuration.
You do not need to configure a second database block for shared inventory.
Each server still needs a unique
serverId, and all servers that should share inventories must use the same ServerRouter database.Inventory Auto-Save
The inventorySync module supports automatic inventory saving with a configurable interval.
Inventory Lock Protection
The shared inventory system includes locking protection to help keep player inventory data safe while players move between servers.
Inventory Language Messages
Inventory loading and locked messages use ServerRouter language keys by default.
Generated language files include dedicated inventory sync message keys, which can be translated or customized like the other ServerRouter messages.
Code:
serverrouter.inventory.loading=[color:green](color:green)Loading shared inventory...</color>
serverrouter.inventory.locked=[color:red](color:red)Inventory is still being saved on another server. Please try again in a few seconds.</color>
Improved Config and Language Organization
ServerRouter 5.2.0 improves generated file organization.
The
inventorySync config section is added near the other ServerRouter modules, and inventory language messages are grouped into their own language section instead of being appended randomly at the bottom of the file.Core Features
- Multi-server routing
- Command-based server transfers
- Portal-based server transfers
- Auto-generated portal items
- Portal safety protection
- Live server status
- Online / full / closed checks
- MariaDB heartbeat synchronization
- Network chat between servers
- Network join, quit, and switch events
- BetterScoreBoard placeholder support
- Colored status placeholders
- Optional integrated shared inventory
- Generated language files
- Config auto-update
- External generated files outside the JAR
- No JAR editing required
Server Transfers
Create custom route commands such as:
- /hub
- /survival
- /creative
- /dungeon
- /arena
- /games
- /crushers
Each route can point to a different server host, port, permission, display name, and availability rule.
Before transferring a player, ServerRouter checks whether the target server is:
- Online
- Accepting players
- Not full
If the target server is unavailable, the player remains safely on the current server and receives a configurable message.
Fully Configurable Routes and Server Names
ServerRouter does not lock you into fixed server names or fixed commands.
The included default configuration provides example routes for:
- hub
- survival
- creative
But you can freely customize them for your own network.
For example, you can create a setup like:
- main
- dungeons
- games
- skyblock
- events
- arena
- bytecrushers
You can configure:
- Server IDs
- Command names
- Command aliases
- Display names
- Hosts
- Ports
- Permissions
- Messages
- Availability rules
- Portal safety options
- Generated portal items
- Language files
- Inventory sync settings
This makes ServerRouter suitable for both small networks and larger multi-server setups.
Portal Routing
ServerRouter includes route-based portal support.
Portals can be linked to route IDs, allowing players to move between servers without typing commands.
This makes it possible to create:
- Hub portals
- Dungeon entrances
- Arena portals
- Minigame selectors
- Creative server portals
- Server travel areas
- Custom route portals
directly inside the game world.
Portal items can be generated automatically from your configured routes.
Note: Newly generated portal items may require one additional server restart before they appear in the creative inventory.
Auto-Generated Portal Items
ServerRouter can automatically generate portal item assets from the routes configured in your
config.json.When you add a route, ServerRouter can create the matching portal item for that route.
For example, if you configure routes such as:
- hub
- survival
- creative
- dungeon
- arena
- bytecrushers
ServerRouter can generate matching portal items for those routes.
This makes it much easier to expand your network without manually editing asset files inside the plugin JAR.
No JAR Editing Required
Portal assets are not stored as fixed items inside the plugin JAR.
ServerRouter generates portal items externally inside:
Code:
mods/ServerRouter/
This means you do not need to edit the JAR to add, update, or keep custom portals.
Generated files are stored outside the JAR, so they can remain available even after plugin updates.
Generated File Structure
After configuration, ServerRouter can generate a structure like this:
Code:
mods/ServerRouter/
├─ config.json
├─ manifest.json
└─ Server/
├─ Item/
│ └─ Items/
│ └─ Portal/
│ ├─ ServerRouter_Portal_Hub.json
│ ├─ ServerRouter_Portal_Survival.json
│ └─ ServerRouter_Portal_Creative.json
└─ Languages/
├─ en-US/
│ └─ server.lang
├─ it-IT/
│ └─ server.lang
├─ de-DE/
│ └─ server.lang
├─ es-ES/
│ └─ server.lang
├─ fr-FR/
│ └─ server.lang
├─ pt-BR/
│ └─ server.lang
├─ ru-RU/
│ └─ server.lang
└─ tr-TR/
└─ server.lang
Persistent Custom Files
Generated portal files and language files are not overwritten once they already exist.
This allows server owners to customize generated portal items, names, descriptions, categories, and language strings safely.
Your custom generated files stay outside the plugin JAR.
Shared Inventory
ServerRouter 5.2.0 includes an optional integrated shared inventory module.
When enabled, player inventories can be synchronized across connected servers.
This is useful for networks where players should move between different servers while keeping the same inventory experience.
Examples:
- Hub to survival
- Survival to dungeon server
- Dungeon server back to hub
- Main server to minigame server
- Game server back to the previous server
- Creative or event server travel
The module is optional and can be enabled or disabled from the config.
Important: If you enable the integrated inventorySync module, do not run another standalone inventory sync plugin at the same time.
Portal Safety Protection
ServerRouter includes portal safety handling to help prevent transfer loops.
Players who have just joined a server or have just arrived through a ServerRouter transfer can be temporarily protected from triggering portals again immediately.
This is useful when:
- Players spawn near a portal
- Players load slowly after switching server
- A player reconnects after a transfer
- A player disconnects during a server switch
- A portal is placed close to the server spawn
- A player enters the world before the ready event is fully completed
If a portal is temporarily blocked by safety protection, the player can receive a configurable message explaining why the portal is not working yet.
Orphaned Portal Protection
If a portal item still exists but its route was removed from the config, ServerRouter will not crash the server.
Instead, the portal is safely ignored and the player can receive a configurable missing destination message.
This makes route changes safer for server owners.
Heartbeat and Server Status
Each server can publish its current status to the shared database.
Published status can include:
- Online/offline state
- Player count
- Max players
- Accepting players status
- Last heartbeat time
Other servers can then use this information before allowing transfers.
This helps prevent players from being sent to offline, full, or unavailable servers.
Network Chat
ServerRouter can relay normal player chat between servers using the shared database.
This allows players on different servers in the same network to communicate while still showing which server the message came from.
Network chat supports:
- Custom message formats
- Custom server display names
- Server prefixes
- EliteEssentials chat format capture mode
- Fallback formatting
This feature is optional and can be disabled in the configuration.
Network Events
ServerRouter can also relay join, quit, and server-switch events between servers.
Supported event types include:
- Player join
- Player quit
- Player switching from one server to another
Server-switch handling is designed to avoid unnecessary join/quit spam when players move between servers.
Instead of showing a quit message on one server and a join message on another, ServerRouter can show a cleaner switch message such as:
Code:
[Dungeon -> Hub] PlayerName
Network events also support options such as:
- Custom join formats
- Custom quit formats
- Custom switch formats
- Server display names
- Switch join/quit spam suppression
- Vanish respect support
This feature is optional and fully configurable.
Scoreboard and Placeholder Integration
Scoreboard support is optional.
ServerRouter can expose live network data through placeholders/API so scoreboard plugins or similar systems can display information such as:
- Total online players
- Online players per server
- Server status
- Colored status text
- Network-wide player overview
- Max players per server
BetterScoreBoard integration is supported, but it is not required for the core routing features.
ServerRouter can run normally without any scoreboard plugin installed.
Generated Language Files
ServerRouter can generate language files for multiple locales:
- en-US
- it-IT
- de-DE
- es-ES
- fr-FR
- pt-BR
- ru-RU
- tr-TR
Default player-facing messages use language keys, making translation and customization cleaner.
Server owners can still write normal text directly in the config if they prefer not to use language keys.
Configuration Auto-Update
ServerRouter includes configuration migration support.
If an existing configuration file is missing newly added options, ServerRouter can automatically add the missing fields while keeping the existing configuration values.
This makes updating easier when new options are added in future versions.
Example Use Cases
ServerRouter can be used for:
- Hub-to-survival networks
- Dungeon or instance servers
- Minigame or arena servers
- Creative/build servers
- Event servers
- Custom server networks
- Multi-server player routing
- Portal-based server travel
- Automatically generated server portals
- Network-wide chat
- Network join/quit/switch messages
- Live server status displays
- Scoreboard network statistics
- Shared inventory between connected servers
Example Network Setup
A simple network can look like this:
Code:
hub -> Main entry server
survival -> Survival world
creative -> Creative or build server
A larger network can look like this:
Code:
hub -> Main lobby
survival -> Survival world
dungeons -> Dungeon server
games -> Minigame server
creative -> Creative server
events -> Event server
arena -> PvP arena server
bytecrushers -> Custom game server
All names, commands, ports, permissions, messages, portal items, inventory sync options, and display names can be changed in the configuration.
Database Requirement
ServerRouter uses a shared MariaDB database to synchronize server status, player counts, network chat, network events, and optional shared inventory between servers.
All servers in the same network should use:
- The same database
- The same table prefix
- The same ServerRouter jar version
Each server should have its own unique serverId.
Optional Integrations
ServerRouter can work with optional integrations such as:
- BetterScoreBoard placeholders
- Network chat formatting
- Network join/quit/switch events
- Shared inventory module
- External scoreboard or UI systems through API/placeholders
These integrations are optional.
The core server routing system does not require them.
Upgrade Notes
If you are updating from an older ServerRouter version, replace the old JAR with ServerRouter 5.2.0 on all servers in your network.
ServerRouter includes configuration migration support.
When an existing config file is detected, the plugin can automatically add missing new options while keeping your current values.
This means existing configurations from previous versions can be updated without manually recreating the config from scratch.
For best results:
- Install the same ServerRouter version on every server.
- Start the server once to let ServerRouter add missing config options and generate missing files.
- Review the new
inventorySyncsection. - Enable
inventorySynconly if you want shared inventory between servers. - Restart all servers after changing inventorySync settings.
- Restart once more if new portal items were generated.
- Customize generated files inside mods/ServerRouter/, not inside the JAR.
Existing generated portal files and language files are not overwritten automatically.
Important: Do not enable the integrated inventorySync module while also running a separate standalone inventory sync plugin.
Notes
ServerRouter is designed to be configurable, generic, and suitable for different network layouts.
The included default configuration provides example routes for hub, survival, and creative servers, but these can be changed to match your own network.
You can add more servers, rename commands, change display names, customize messages, configure permissions, generate portal items, translate language files, enable shared inventory, and decide which integrations you want to use.
The plugin does not require a scoreboard plugin to run.
Scoreboard and placeholder support are optional integrations for server owners who want to display live network information to players.
Summary
ServerRouter gives Hytale server owners a flexible multi-server network suite.
It combines:
- Command-based server transfers
- Portal-based server transfers
- Automatic route-based portal item generation
- External generated portal assets
- Generated language files
- Server availability checks
- Shared database heartbeat
- Network player counts
- Network chat
- Network join/quit/switch events
- Portal loop protection
- Orphaned portal safety
- Optional shared inventory
- Optional scoreboard placeholders
- Configurable routes, messages, permissions, and server names
into one configurable plugin for building a cleaner multi-server Hytale experience.
