← Back to Roadmap

Plugin Basics

20 min

Set up your first Hytale plugin with manifest and entry point.

Your First Plugin

Every Hytale plugin needs two things:

  • A manifest.json file
  • A main class extending JavaPlugin
  • manifest.json

    json
    {
      "group": "dev.yourname",
      "name": "MyFirstPlugin",
      "version": "1.0.0",
      "main": "dev.yourname.myfirstplugin.MyFirstPlugin",
      "description": "My first Hytale plugin!",
      "authors": ["YourName"]
    }

    Main Class

    java
    package dev.yourname.myfirstplugin;

    import com.hypixel.hytale.server.plugin.JavaPlugin;

    public class MyFirstPlugin extends JavaPlugin {

    @Override public void setup() { getLogger().info("Plugin is loading!"); // Register commands, events, etc. }

    @Override public void teardown() { getLogger().info("Plugin is unloading!"); // Cleanup resources } }

    Lifecycle

  • setup() - Called when plugin loads. Register everything here.
  • teardown() - Called when plugin unloads. Clean up here.
  • Best Practices

    • Use a singleton pattern for accessing your plugin instance
    • Register all systems and listeners in setup()
    • Clean up scheduled tasks in teardown()
    java
    public class MyFirstPlugin extends JavaPlugin {
        private static MyFirstPlugin instance;

    public static MyFirstPlugin getInstance() { return instance; }

    @Override public void setup() { instance = this; // ... } }