A base plugin for the game Hytale, allowing other Hytale plugins to serve web-based content.
Many plugin use cases require serving data via HTTP, such as for webhooks, live maps, or for exposing data about the connected players. However, multiple plugins each opening their own HTTP servers for their respective use cases is unnecessary overhead, and causes headaches for server admins and service providers.
This plugin provides a common solution for plugin developers, and solves typical requirements around web servers in one single place, so that plugins stay compatible with each other.
Game Server Providers are encouraged to detect the presence of this plugin, and to provide it with a configuration that ensures compatibility with their respective hosting platform.
- Secure by default: TLS using self-signed or user-provided certificates, as well as support for certificate retrieval.
- Player Authentication: Players may authenticate based on their Hytale account, allowing plugins to act in the context of that respective player.
- Permission checks: Built-in support for performing authorization checks based on an authenticated player's permissions on the Hytale server.
- Service Accounts (API Users): Allowing server owners to create accounts independent of a player account, which can still be managed using Hytale's permission system.
- Extensibility: All important implementations are behind interfaces, so that they can be replaced
if required. To ensure intercompatibility with other web servers, classes from
jakarta.servlet.httpare used.
Get the JAR file from one of the following sources:
Copy the plugin JAR file into your server's mods/ folder. The web server binds to the game server's port +3 by default.
Create mods/Nitrado_WebServer/config.json to customize settings:
{
"BindHost": "127.0.0.1",
"BindPort": 7003
}- Server Administrator Guide — Installation, TLS configuration, authentication setup, and service account management.
- Plugin Developer Guide — Integrating your plugins with WebServer, registering routes, and handling permissions.
Community contributions are welcome and encouraged. If you are a plugin developer and this plugin does not fulfill your needs, please consider contributing to this repository before building your own web server implementation.
Due to the nature of this plugin, we need to ensure that it is versatile enough to fulfill the needs of plugin developers, but we also need to avoid the plugin becoming bloated with features that would make it cumbersome to use. So if you plan to work on a feature, please open an Issue here on GitHub first.
If you believe to have found a security vulnerability, please report your findings via security@nitrado.net.