Modding Overview
This documentation provides a comprehensive guide to creating mods and plugins for the Hytale dedicated server.
Documentation Sections
Section titled “Documentation Sections”Plugin system, events, commands, permissions, and task scheduling.
🎯 Entity System (ECS)Components, entity stats, physics simulation, and player persistence.
⚙️ Gameplay SystemsDamage, movement, mounts, interactions, projectiles, and effects.
🤖 NPC & AIAI behaviors, spawning, flocking, and navigation.
🌍 World GenerationZones, biomes, and cave systems.
📦 Content & WorldAssets, inventory, prefabs, fluids, time, and lighting.
🌐 NetworkingProtocol handling, packet interception, and network utilities.
📚 JavaDoc API ReferenceFull API documentation for all Hytale server classes, methods, and fields.
Server Architecture
Section titled “Server Architecture”HytaleServer├── PluginManager - Plugin loading, lifecycle, and hot-reloading├── EventBus - Event dispatch system├── CommandManager - Command registration and execution├── Universe - World, entity, and player management├── ServerManager - Network I/O (QUIC/UDP protocol)└── AssetModule - Asset pack loading and managementPlugin Locations
Section titled “Plugin Locations”Plugins are loaded from multiple locations in this order:
- Core plugins - Built-in server functionality
- Builtin directory -
builtin/next to the server JAR - Classpath - Plugins bundled with the server
- Mods directory -
mods/(user plugins) - Additional directories - Specified via
--mods-directoriesoption
Key Concepts
Section titled “Key Concepts”Plugins
Section titled “Plugins”Plugins are Java JAR files placed in the mods/ directory. Each plugin has a manifest.json that defines metadata, dependencies, and the main class. See Plugin Development for details.
Components (ECS)
Section titled “Components (ECS)”Hytale uses an Entity-Component-System architecture. Entities are lightweight references, components store data, and systems process logic. See Entity System for details.
Events
Section titled “Events”The event system allows plugins to react to game occurrences. Events can be synchronous or asynchronous, and support priority ordering. See Events for details.
Registries
Section titled “Registries”Custom content (components, commands, assets) is registered through type-safe registries that handle lifecycle management. See Assets & Registry for details.
Requirements
Section titled “Requirements”- Java 25 or higher (Adoptium/Temurin recommended)
- HytaleServer.jar
Quick Start
Section titled “Quick Start”- Create a new Java project
- Add HytaleServer.jar to your classpath
- Create your plugin class extending
JavaPlugin - Create a
manifest.jsonfile - Build your JAR and place it in the
mods/directory
See Plugin System for a complete guide.
Default Server Port
Section titled “Default Server Port”The default server port is 5520 (UDP with QUIC protocol).