Skip to content

Built-in Plugins Reference

Hytale includes 31 built-in plugins that demonstrate modding patterns and provide core gameplay features. This reference documents each plugin, its components, and how to learn from them.

com.hypixel.hytale.builtin

All 31 built-in plugins organized by category:

PluginDirectoryDescription
WeatherPluginweather/Dynamic weather systems
CraftingPlugincrafting/Crafting benches and recipes
TeleportPluginteleport/Teleportation and warps
PortalsPluginportals/Inter-world portals
BedsPluginbeds/Spawn points and sleeping
InstancesPlugininstances/Instanced dungeons/areas
PluginDirectoryDescription
MountPluginmounts/Mounts and riding
MantlingPluginmantling/Ledge climbing
SprintForcePluginsprintforce/Sprint mechanics
CrouchSlidePlugincrouchslide/Crouch sliding
SafetyRollPluginsafetyroll/Fall damage reduction
ParkourPluginparkour/Parkour mechanics
DeployablesPlugindeployables/Deployable items
PluginDirectoryDescription
FluidPluginfluid/Fluid simulation
BlockPhysicsPluginblockphysics/Block physics
BlockTickPluginblocktick/Block updates/growth
WorldGenPluginworldgen/World generation hooks
HytaleGeneratorPluginhytalegenerator/Default world generator
BlockSpawnerPluginblockspawner/Block-based spawners
AmbiencePluginambience/Ambient sounds/effects
LanDiscoveryPluginlandiscovery/LAN game discovery
PluginDirectoryDescription
AdventurePluginadventure/Adventure mode (shops, reputation, objectives, memories, farming)
PluginDirectoryDescription
NPCEditorPluginnpceditor/NPC editing commands
BuilderToolsPluginbuildertools/World building tools
AssetEditorPluginasseteditor/Asset editing utilities
CommandMacroPlugincommandmacro/Command macros
CreativeHubPlugincreativehub/Creative mode hub
PluginDirectoryDescription
NPCCombatActionEvaluatorPluginnpccombatactionevaluator/NPC combat AI
PathPluginpath/Pathfinding utilities
PluginDirectoryDescription
ModelPluginmodel/Model utilities
TagSetPlugintagset/Tag set management

Location: builtin/weather/

Manages dynamic weather systems per world.

ComponentStoreDescription
WeatherTrackerEntityStoreTracks weather per player
WeatherResourceEntityStoreWorld weather state
WeatherSystem.WorldAddedSystem // Initialize weather for new worlds
WeatherSystem.PlayerAddedSystem // Send weather to joining players
WeatherSystem.TickingSystem // Update weather over time
WeatherSystem.InvalidateWeatherAfterTeleport // Sync after teleport
  • /weather <type> - Change weather
// Register resource
weatherResourceType = EntityStore.REGISTRY.registerResource(
WeatherResource.class, WeatherResource::new);
// Register component
weatherTrackerComponentType = EntityStore.REGISTRY.registerComponent(
WeatherTracker.class, WeatherTracker::new);
// Register systems
entityStoreRegistry.registerSystem(new WeatherSystem.TickingSystem());

Location: builtin/crafting/

Complete crafting system with benches, recipes, and UI.

ComponentStoreDescription
CraftingManagerEntityStorePlayer crafting state
BenchStateBlockStateCrafting bench state
ProcessingBenchStateBlockStateProcessing bench state
// Register block state for crafting benches
blockStateRegistry.registerBlockState(
BenchState.class, "crafting", BenchState.CODEC);
OpenBenchPageInteraction // Open crafting UI
OpenProcessingBenchInteraction // Open processing UI
LearnRecipeInteraction // Learn new recipe
// Get recipes for a bench
List<CraftingRecipe> recipes = CraftingPlugin.getBenchRecipes(bench);
// Learn a recipe
CraftingPlugin.learnRecipe(ref, recipeId, componentAccessor);
// Check if item is valid material
CraftingPlugin.isValidCraftingMaterialForBench(benchState, itemStack);
  • /recipe learn <id> - Learn recipe
  • /recipe forget <id> - Forget recipe

Location: builtin/teleport/

Teleportation commands and warp points.

ComponentStoreDescription
TeleportHistoryEntityStorePlayer teleport history
WarpComponentEntityStoreWarp point marker
// Get all warps
Map<String, Warp> warps = TeleportPlugin.get().getWarps();
// Warps persist in warps.json in universe folder
// Warps show on world map
WarpMarkerProvider.INSTANCE // Provides warp markers
  • /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

Location: builtin/portals/

Inter-world portal system with void events.

ComponentStoreDescription
PortalWorldEntityStore (Resource)Portal world data
PortalDeviceChunkStorePortal device block
VoidEventEntityStoreVoid event state
VoidSpawnerEntityStoreVoid portal spawner
EnterPortalInteraction // Enter a portal
ReturnPortalInteraction // Return from portal
// Register plugin config
getCodecRegistry(GameplayConfig.PLUGIN_CODEC)
.register(PortalGameplayConfig.class, "Portal", PortalGameplayConfig.CODEC);
PortalTrackerSystems.TrackerSystem
PortalInvalidDestinationSystem
CloseWorldWhenBreakingDeviceSystems
VoidEventStagesSystem

Location: builtin/mounts/

Mounting and riding entities.

  • Mount/dismount mechanics
  • Riding controls
  • Mount AI integration
ComponentStoreDescription
MountComponentEntityStoreMount state
RiderComponentEntityStoreRider state

Location: builtin/fluid/

Fluid simulation and water physics.

  • Water flow simulation
  • Fluid level tracking
  • Swimming mechanics
ComponentStoreDescription
FluidStateChunkStoreFluid block state

Location: builtin/blocktick/

Block update and tick system.

ChunkBlockTickSystem // Process block ticks
MergeWaitingBlocksSystem // Merge pending updates
BasicChanceBlockGrowthProcedure // Simple growth
SplitChanceBlockGrowthProcedure // Variable growth rates

Location: builtin/beds/

Bed interactions and spawn points.

  • Sleep mechanics
  • Individual spawn points
  • Respawn handling

Location: builtin/adventure/shop/

NPC shop system with items and currencies.

Location: builtin/adventure/reputation/

Faction/NPC reputation tracking.

Location: builtin/adventure/objectives/

Quest and objective tracking.

Location: builtin/adventure/memories/

NPC memory of player interactions.


public class MyPlugin extends JavaPlugin {
private static MyPlugin instance;
public static MyPlugin get() {
return instance;
}
public MyPlugin(JavaPluginInit init) {
super(init);
instance = this;
}
}
@Override
protected void setup() {
// Register component
myComponentType = EntityStore.REGISTRY.registerComponent(
MyComponent.class, MyComponent::new);
// Register system
getEntityStoreRegistry().registerSystem(new MySystem());
}
@Override
protected void setup() {
// Register event listener
getEventRegistry().register(LoadedAssetsEvent.class, Item.class,
this::onItemLoad);
// Register global listener
getEventRegistry().registerGlobal(AddWorldEvent.class,
event -> initializeWorld(event.getWorld()));
}
@Override
protected void setup() {
// Via CommandRegistry
getCommandRegistry().registerCommand(new MyCommand());
// Via CommandManager (system commands)
CommandManager.get().registerSystemCommand(new MySystemCommand());
}
@Override
protected void setup() {
// Register interaction type
getCodecRegistry(Interaction.CODEC)
.register("MyInteraction", MyInteraction.class, MyInteraction.CODEC);
// Register block state
getBlockStateRegistry().registerBlockState(
MyBlockState.class, "myBlockState", MyBlockState.CODEC);
}
@Override
protected void setup() {
getEventRegistry().registerGlobal(AddWorldEvent.class, event -> {
World world = event.getWorld();
// Initialize per-world state
world.getWorldMapManager().addMarkerProvider("markers", myProvider);
});
}

  1. Study structure: Each plugin demonstrates proper organization
  2. Examine codecs: See how serialization is handled
  3. Follow ECS patterns: Learn component/system design
  4. Understand lifecycle: See how setup/start/shutdown work
  5. Review commands: Study command implementation
  6. Analyze interactions: Learn block/entity interaction patterns