Skip to content

Latest commit

 

History

History
74 lines (61 loc) · 3.35 KB

File metadata and controls

74 lines (61 loc) · 3.35 KB

Hytale Server API Overview

Base Package

com.hypixel.hytale

Package Hierarchy

Package Purpose Class Count (approx)
server.core.plugin Plugin lifecycle, loading, manifest ~30
server.core.command Command framework and built-in commands ~400+
server.core.permissions Permission system, providers, built-in commands ~25
server.core.event Server events (player, entity, ECS, permissions) ~50
server.core.entity Player, entities, movement, pages ~80
server.core.universe World, PlayerRef, data stores ~60
server.core.modules Built-in server modules (block, item, entity, etc.) ~200+
server.core.registry Client feature registry ~10
server.core.task Task scheduling ~5
event Core event bus, EventRegistry, priorities ~25
component ECS: Holder, Component, Store, Ref, ComponentType ~35
protocol Protocol types: GameMode, packets, enums ~600+
registry Base Registry class ~5
builtin Built-in server modules (adventure, mounts, weather, etc.) ~3000+
common Shared utilities, plugin manifest, semver ~30
math Vectors, transforms, shapes, raycasts ~80
codec Serialization codec system ~60
logger HytaleLogger, Sentry integration ~15

Architecture

Plugin Layer (JavaPlugin → PluginBase)
    ├── EventRegistry (per-plugin event subscriptions)
    ├── CommandRegistry (per-plugin command registration)
    ├── TaskRegistry (scheduled tasks)
    ├── EntityRegistry, BlockStateRegistry
    ├── AssetRegistry, CodecMapRegistry
    └── ComponentRegistryProxy<EntityStore | ChunkStore>

ECS Layer (Entity Component System)
    ├── Store<EntityStore> — entity world container
    ├── Holder<EntityStore> — entity data holder (components array)
    ├── Ref<EntityStore> — live entity reference in a Store
    ├── Component<EntityStore> — attached data (PlayerRef, Player, etc.)
    └── ComponentType<EntityStore, T> — type token for component access

Server Core
    ├── HytaleServer.get() — singleton server instance
    ├── Universe.get() — world/player management
    ├── PermissionsModule.get() — permission provider registry
    └── CommandManager.get() — command dispatch

Entry Points for Plugin Development

  1. JavaPlugin — extend this class, constructor takes JavaPluginInit
  2. manifest.json — plugin metadata (name, version, group, main class, dependencies)
  3. PluginBase — provides getEventRegistry(), getCommandRegistry(), getDataDirectory(), getLogger()

Key Singletons

Singleton Access Purpose
HytaleServer HytaleServer.get() Server instance, event bus
Universe Universe.get() World management, player refs
PermissionsModule PermissionsModule.get() Permission provider management
CommandManager CommandManager.get() Command dispatch
I18nModule I18nModule.get() Translation/localization
AssetModule AssetModule.get() Asset pack management

Decompiled Source Location

../decompiled/com/hypixel/hytale/

Total decompiled files: ~5,234 Java source files covering all Hytale server classes.