Built-in Plugins Reference
Built-in Plugins Reference
Section titled “Built-in Plugins Reference”Hytale ships with 32 built-in plugin packages that demonstrate modding patterns and provide core gameplay features. Some packages (notably adventure/) contain multiple independent plugin classes — the actual plugin count is over 45. This reference documents each plugin, its components, and how to learn from them.
Package Location
Section titled “Package Location”com.hypixel.hytale.builtin
Complete Plugin List
Section titled “Complete Plugin List”All 32 built-in plugin packages organized by category:
Core Gameplay
Section titled “Core Gameplay”| Plugin | Directory | Description |
|---|---|---|
| WeatherPlugin | weather/ | Dynamic weather systems |
| CraftingPlugin | crafting/ | Crafting benches and recipes |
| TeleportPlugin | teleport/ | Teleportation and warps |
| PortalsPlugin | portals/ | Inter-world portals |
| BedsPlugin | beds/ | Spawn points and sleeping |
| InstancesPlugin | instances/ | Instanced dungeons/areas |
Movement & Combat
Section titled “Movement & Combat”| Plugin | Directory | Description |
|---|---|---|
| MountPlugin | mounts/ | Mounts and riding |
| MantlingPlugin | mantling/ | Ledge climbing |
| SprintForcePlugin | sprintforce/ | Sprint mechanics |
| CrouchSlidePlugin | crouchslide/ | Crouch sliding |
| SafetyRollPlugin | safetyroll/ | Fall damage reduction |
| ParkourPlugin | parkour/ | Parkour mechanics |
| DeployablesPlugin | deployables/ | Deployable items |
World Systems
Section titled “World Systems”| Plugin | Directory | Description |
|---|---|---|
| FluidPlugin | fluid/ | Fluid simulation |
| BlockPhysicsPlugin | blockphysics/ | Block physics |
| BlockTickPlugin | blocktick/ | Block updates/growth |
| WorldGenPlugin | worldgen/ | World generation hooks |
| HytaleGenerator | hytalegenerator/ | Default world generator |
| BlockSpawnerPlugin | blockspawner/ | Block-based spawners |
| AmbiencePlugin | ambience/ | Ambient sounds/effects |
| LANDiscoveryPlugin | landiscovery/ | LAN game discovery |
Adventure Mode
Section titled “Adventure Mode”Tools & Editors
Section titled “Tools & Editors”| Plugin | Directory | Description |
|---|---|---|
| NPCEditorPlugin | npceditor/ | NPC editing commands |
| BuilderToolsPlugin | buildertools/ | World building tools |
| AssetEditorPlugin | asseteditor/ | Asset editing utilities |
| MacroCommandPlugin | commandmacro/ | Command macros |
| CreativeHubPlugin | creativehub/ | Creative mode hub |
AI & NPCs
Section titled “AI & NPCs”| Plugin | Directory | Description |
|---|---|---|
| NPCCombatActionEvaluatorPlugin | npccombatactionevaluator/ | NPC combat AI |
| PathPlugin | path/ | Pathfinding utilities |
| Plugin | Directory | Description |
|---|---|---|
| ModelPlugin | model/ | Model utilities |
| TagSetPlugin | tagset/ | Tag set management |
| RandomTickPlugin | randomtick/ | Random block ticking (grass spread, block changes) |
WeatherPlugin
Section titled “WeatherPlugin”Location: builtin/weather/
Manages dynamic weather systems per world.
Components
Section titled “Components”| Component | Store | Description |
|---|---|---|
WeatherTracker | EntityStore | Tracks weather per player |
WeatherResource | EntityStore | World weather state |
Systems
Section titled “Systems”WeatherSystem.WorldAddedSystem // Initialize weather for new worldsWeatherSystem.PlayerAddedSystem // Send weather to joining playersWeatherSystem.TickingSystem // Update weather over timeWeatherSystem.InvalidateWeatherAfterTeleport // Sync after teleportCommands
Section titled “Commands”/weather <type>- Change weather
Key Patterns
Section titled “Key Patterns”// Register resourceweatherResourceType = EntityStore.REGISTRY.registerResource( WeatherResource.class, WeatherResource::new);
// Register componentweatherTrackerComponentType = EntityStore.REGISTRY.registerComponent( WeatherTracker.class, WeatherTracker::new);
// Register systemsentityStoreRegistry.registerSystem(new WeatherSystem.TickingSystem());CraftingPlugin
Section titled “CraftingPlugin”Location: builtin/crafting/
Complete crafting system with benches, recipes, and UI.
Components
Section titled “Components”| Component | Store | Description |
|---|---|---|
CraftingManager | EntityStore | Player crafting state |
BenchState | BlockState | Crafting bench state |
ProcessingBenchState | BlockState | Processing bench state |
Block States
Section titled “Block States”// Register block state for crafting benchesblockStateRegistry.registerBlockState( BenchState.class, "crafting", BenchState.CODEC);Interactions
Section titled “Interactions”OpenBenchPageInteraction // Open crafting UIOpenProcessingBenchInteraction // Open processing UILearnRecipeInteraction // Learn new recipeRecipe System
Section titled “Recipe System”// Get recipes for a benchList<CraftingRecipe> recipes = CraftingPlugin.getBenchRecipes(bench);
// Learn a recipeCraftingPlugin.learnRecipe(ref, recipeId, componentAccessor);
// Check if item is valid materialCraftingPlugin.isValidCraftingMaterialForBench(benchState, itemStack);Commands
Section titled “Commands”/recipe learn <id>- Learn recipe/recipe forget <id>- Forget recipe
TeleportPlugin
Section titled “TeleportPlugin”Location: builtin/teleport/
Teleportation commands and warp points.
Components
Section titled “Components”| Component | Store | Description |
|---|---|---|
TeleportHistory | EntityStore | Player teleport history |
WarpComponent | EntityStore | Warp point marker |
// Get all warpsMap<String, Warp> warps = TeleportPlugin.get().getWarps();
// Warps persist in warps.json in universe folderMap Markers
Section titled “Map Markers”// Warps show on world mapWarpMarkerProvider.INSTANCE // Provides warp markersCommands
Section titled “Commands”/tp <player>- Teleport to player/tp <x> <y> <z>- Teleport to coordinates/warp <name>- Go to warp/warp set <name>- Create warp/spawn- Go to spawn
PortalsPlugin
Section titled “PortalsPlugin”Location: builtin/portals/
Inter-world portal system with void events.
Components
Section titled “Components”| Component | Store | Description |
|---|---|---|
PortalWorld | EntityStore (Resource) | Portal world data |
PortalDevice | ChunkStore | Portal device block |
VoidEvent | EntityStore | Void event state |
VoidSpawner | EntityStore | Void portal spawner |
Interactions
Section titled “Interactions”EnterPortalInteraction // Enter a portalReturnPortalInteraction // Return from portalGameplay Config
Section titled “Gameplay Config”// Register plugin configgetCodecRegistry(GameplayConfig.PLUGIN_CODEC) .register(PortalGameplayConfig.class, "Portal", PortalGameplayConfig.CODEC);Systems
Section titled “Systems”PortalTrackerSystems.TrackerSystemPortalInvalidDestinationSystemCloseWorldWhenBreakingDeviceSystemsVoidEventStagesSystemMountPlugin
Section titled “MountPlugin”Location: builtin/mounts/
Mounting and riding entities.
Key Features
Section titled “Key Features”- Mount/dismount mechanics
- Riding controls
- Mount AI integration
Components
Section titled “Components”| Component | Store | Description |
|---|---|---|
NPCMountComponent | EntityStore | NPC mount state and configuration |
MountedComponent | EntityStore | Entity currently being mounted |
MountedByComponent | EntityStore | Entity being ridden |
BlockMountComponent | ChunkStore | Block-based seating |
MinecartComponent | EntityStore | Minecart mount behavior |
FluidPlugin
Section titled “FluidPlugin”Location: builtin/fluid/
Fluid simulation and water physics.
Key Features
Section titled “Key Features”- Water flow simulation
- Fluid level tracking
- Swimming mechanics
Registrations
Section titled “Registrations”FluidPlugin registers three FluidTicker codecs and six FluidSystems that operate on core chunk components (FluidSection, ChunkSection, BlockChunk, ChunkColumn, WorldChunk).
| FluidTicker Codec | Class | Description |
|---|---|---|
Default | DefaultFluidTicker | Standard fluid spreading |
Fire | FireFluidTicker | Fire fluid behavior |
Finite | FiniteFluidTicker | Finite fluid volumes |
BlockTickPlugin
Section titled “BlockTickPlugin”Location: builtin/blocktick/
Deterministic block update and tick system.
Systems
Section titled “Systems”ChunkBlockTickSystem // Process block ticksMergeWaitingBlocksSystem // Merge pending updatesTick Procedures
Section titled “Tick Procedures”BasicChanceBlockGrowthProcedure // Simple growthSplitChanceBlockGrowthProcedure // Variable growth ratesBedsPlugin
Section titled “BedsPlugin”Location: builtin/beds/
Bed interactions and spawn points.
Key Features
Section titled “Key Features”- Sleep mechanics
- Individual spawn points
- Respawn handling
- Multiplayer sleep notifications
Adventure Mode Plugins
Section titled “Adventure Mode Plugins”The adventure/ package contains 15 independent plugins that together form Hytale’s adventure mode. Each is its own JavaPlugin.
| Plugin | Directory | Description |
|---|---|---|
| CameraPlugin | adventure/camera/ | Camera control and cinematic systems |
| FarmingPlugin | adventure/farming/ | Crop farming mechanics |
| MemoriesPlugin | adventure/memories/ | NPC memory of player interactions |
| NPCObjectivesPlugin | adventure/npcobjectives/ | NPC-driven objective assignments |
| NPCReputationPlugin | adventure/npcreputation/ | NPC-specific reputation effects |
| NPCShopPlugin | adventure/npcshop/ | NPC-specific shop bindings |
| ObjectivePlugin | adventure/objectives/ | Quest and objective tracking |
| ObjectiveReputationPlugin | adventure/objectivereputation/ | Reputation rewards from objectives |
| ObjectiveShopPlugin | adventure/objectiveshop/ | Shop unlocks tied to objectives |
| ReputationPlugin | adventure/reputation/ | Faction/NPC reputation tracking |
| ShopPlugin | adventure/shop/ | Shop system with items and currencies |
| ShopReputationPlugin | adventure/shopreputation/ | Shop pricing based on reputation |
| StashPlugin | adventure/stash/ | Player stash/storage system |
| TeleporterPlugin | adventure/teleporter/ | In-world teleporter devices (with clear-out and portal state systems) |
| WorldLocationConditionPlugin | adventure/worldlocationcondition/ | Location-based conditions |
Common Patterns
Section titled “Common Patterns”Plugin Singleton Pattern
Section titled “Plugin Singleton Pattern”public class MyPlugin extends JavaPlugin { private static MyPlugin instance;
public static MyPlugin get() { return instance; }
public MyPlugin(JavaPluginInit init) { super(init); instance = this; }}Component Registration Pattern
Section titled “Component Registration Pattern”@Overrideprotected void setup() { // Register component myComponentType = EntityStore.REGISTRY.registerComponent( MyComponent.class, MyComponent::new);
// Register system getEntityStoreRegistry().registerSystem(new MySystem());}Event Registration Pattern
Section titled “Event Registration Pattern”@Overrideprotected void setup() { // Register event listener getEventRegistry().register(LoadedAssetsEvent.class, Item.class, this::onItemLoad);
// Register global listener getEventRegistry().registerGlobal(AddWorldEvent.class, event -> initializeWorld(event.getWorld()));}Command Registration Pattern
Section titled “Command Registration Pattern”@Overrideprotected void setup() { // Via CommandRegistry getCommandRegistry().registerCommand(new MyCommand());
// Via CommandManager (system commands) CommandManager.get().registerSystemCommand(new MySystemCommand());}Codec Registration Pattern
Section titled “Codec Registration Pattern”@Overrideprotected void setup() { // Register interaction type getCodecRegistry(Interaction.CODEC) .register("MyInteraction", MyInteraction.class, MyInteraction.CODEC);
// Register block state getBlockStateRegistry().registerBlockState( MyBlockState.class, "myBlockState", MyBlockState.CODEC);}World Event Pattern
Section titled “World Event Pattern”@Overrideprotected void setup() { getEventRegistry().registerGlobal(AddWorldEvent.class, event -> { World world = event.getWorld(); // Initialize per-world state world.getWorldMapManager().addMarkerProvider("markers", myProvider); });}Learning From Built-in Plugins
Section titled “Learning From Built-in Plugins”- Study structure: Each plugin demonstrates proper organization
- Examine codecs: See how serialization is handled
- Follow ECS patterns: Learn component/system design
- Understand lifecycle: See how setup/start/shutdown work
- Review commands: Study command implementation
- Analyze interactions: Learn block/entity interaction patterns
Related
Section titled “Related”- Plugin Lifecycle - Plugin basics
- Event System - Events
- Commands - Command system
- ECS Overview - Components and systems