promotional bannermobile promotional banner

Hyinit | Mixin bootstrapper

Restriction-free Mixin environment in Hytale | Compatible with Hyxin

Support Discord Server

⚠️ Warning: Hyinit is NOT a standard early plugin! Please read the instruction carefully.

🚀 Hyinit

Hyinit is a restriction-free Mixin environment bootstrapper for Hytale.

You run Hyinit in place of HytaleServer.jar, and it bootstraps Mixin before the server starts. This gives your mods the full feature set of Mixin and MixinExtras, lets them reference any server class, and lets them transform classes an early plugin can't reach on its own.

It is also backwards compatible with Hyxin.

✅ Installation

Hyinit is NOT a standard early plugin. Do not place it in the earlyplugins folder. Instead, launch with Hyinit-0.2.1.jar in place of HytaleServer.jar, keeping both JARs in the same directory.

If you normally start the server like this:

  java -Xms10G -Xmx10G -jar HytaleServer.jar --assets=../Assets.zip

Start it through Hyinit instead:

  java -Xms10G -Xmx10G -jar Hyinit-0.2.1.jar --assets=../Assets.zip

Hyinit finds HytaleServer.jar automatically. To point at a specific server jar, pass --server-jar=<path>. To load early plugins from extra directories, pass --early-plugins=<dir1,dir2>.

Now install mod JARs that depend on the Hyinit Mixin environment into the earlyplugins folder.

❓ Why not just an early plugin?

Standard early plugins are loaded by the server, after it has already begun class loading. That sandbox limits which Mixin features work and which classes you can touch.

Hyinit bootstraps it instead:

  Other Mixin bootstrapper Hyinit
Launch model Standard early plugin implements ClassTransformer Replaces the launcher; owns its own classloader
Class loading Delegates to the server's existing loaders Defines classes itself, controls the whole graph
@Accessor / @Invoker / interface injection Not possible Supported, generates synthetic classes via transformer.generateClass()
One jar = Mixins and runtime plugin Not supported Supported
Hyxin manifest format Native Read for compatibility

📖 Developer Info

Hyinit's environment allows ALL standard Mixin and MixinExtras features. To register a Mixin config, add it to your mod's manifest.json:

  {
    "Mixins": [
      "yourmodid.mixins.json"
    ]
  }

Place mods with Mixins in the earlyplugins folder. Configs are read on startup, and classes loaded afterwards are transformed.

Single-jar mods

One earlyplugins jar can be both a Mixin provider and a runtime plugin. Declare both Main and Mixins in a single manifest.json:

  {
    "Main": "yourmodid.YourPlugin",
    "Mixins": [
      "yourmodid.mixins.json"
    ]
  }

Hyinit applies the Mixins, and the server loads Main from the same jar. No need to split into earlyplugins/ and mods/.

Hyxin compatibility

A manifest.json using Hyxin's format is also read:

  {
    "Hyxin": {
      "Configs": [
        "yourmodid.mixins.json"
      ]
    }
  }

The Hyinit | Mixin bootstrapper Team

profile avatar
  • 7
    Followers
  • 4
    Projects
  • 4.5K
    Downloads

More from kabanfriends