The Hytale server boot process is a multi-stage sequence that initializes the Java environment, loads plugins, and prepares the game universe.
Main.javaThe server application starts in com.hypixel.hytale.Main.main(String[] args).
Locale.ENGLISH.java.awt.headless to true.file.encoding to UTF-8.EarlyPluginLoader.loadEarlyPlugins(args).TransformingClassLoader.LateMain.lateMain(args).LateMain.javaLateMain serves as the bridge between the raw Java environment and the Hytale Server instance.
Options.parse(args).HytaleLogger and HytaleFileHandler.com.hypixel.hytale.server.core.HytaleServer.HytaleServer.javaThe HytaleServer constructor performs the bulk of the initialization.
instance to self.ThreadUtil.createKeepAliveThread.HytaleServerConfig from disk.ServerAuthManager.NettyUtil.init() to prepare the networking stack.AssetRegistryLoader.Universe) via pluginManager.registerCorePlugin(manifest).boot().The boot() method in HytaleServer executes the lifecycle steps:
pluginManager.setup(). This loads plugins from:
builtin directory.mods directory.LoadAssetEvent. If validation fails, the server shuts down.pluginManager.start().
start0() on all enabled plugins.Universe.get().getUniverseReady().Universe (a core plugin) loads worlds and configurations asynchronously.ServerManager.get().waitForBindComplete() to ensure the network socket is open.BootEvent and logs “Hytale Server Booted!”.graph TD
A[Main.main] --> B{Early Plugins?}
B -- Yes --> C[TransformingClassLoader]
B -- No --> D[LateMain.lateMain]
C --> D
D --> E[HytaleServer Constructor]
E --> F[Load Config]
E --> G[Init Netty & Auth]
E --> H[Register Core Plugins]
H --> I["HytaleServer.boot()"]
I --> J["PluginManager.setup()"]
J --> K[LoadAssetEvent]
K --> L["PluginManager.start()"]
L --> M[Universe Ready]
M --> N[Bind Network Port]
N --> O[BootEvent]