mcNows
Nows Loader 0.10.0 / Minecraft 26.2

Mixin

Configure Nows Mixin transformer support and declare mod-owned mixin configs.

Some APIs may still change or behave unevenly because they do not have enough real-world use cases and test coverage yet.

Mixin

integrations/mixin provides Nows’ own IMixinService and IGlobalPropertyService. The Mixin transformer is inserted directly into NowsClassLoader before class definition, including synthetic class generation. Fabric Loader is not required.

Declare mod-owned mixin configs in metadata:

mod id="my_mod" name="My Mod" version="1.0.0" minecraft="26.2" {
    runtime {
        mixin "my_mod.mixins.json"
        entrypoint "com.example.MyMod"
    }
}

The config file itself is standard SpongePowered Mixin JSON:

{
  "required": true,
  "package": "com.example.mixin",
  "compatibilityLevel": "JAVA_17",
  "mixins": [
    "TitleScreenMixin"
  ]
}

Loader Integration

NowsMixinService attaches to the active NowsClassLoader, exposes raw class bytes to Mixin, creates the Mixin transformer when SpongePowered Mixin offers its transformer factory, and lets Nows run that transformer in its own class-definition pipeline.

The service name reported to Mixin is Nows. Its initial phase is PREINIT. The service clears tracked invalid classes and transformer exclusions when the game class loader is attached or detached.

Mixin bootstrap also reports useful startup progress. Built-in mixin configs and mod-declared configs are logged and surfaced through the Nows loading bar so a bad or slow config is visible during game startup instead of becoming a silent pause.

Practical Notes

Mixin targets are still Minecraft-version-sensitive. Nows removes the Fabric Loader requirement, but it does not make target methods, descriptors or local variables stable across Minecraft versions. Keep mixin configs close to the adapter version they target, and prefer normal Nows adapter APIs when a stable helper already exists.