![]()
Forge 1.21.1 compatibility layer for Fabric's maintained Sponge Mixin fork.
BlendIn lets Forge 1.21.1 projects use the maintained Fabric Sponge Mixin fork while keeping Forge's normal ModLauncher environment.
BlendIn is a Forge 1.21.1 mod and ModLauncher transformation service that integrates Fabric's maintained Mixin implementation into Forge.
It handles the cursed runtime plumbing so developers don't have to.
Forge 1.21.1
│
▼
ModLauncher
│
▼
BlendIn
│
├── replaces the Mixin launch plugin
├── provides Fabric Sponge Mixin
└── integrates it with Forge's secure module system
If your project needs Fabric Mixin's APIs or annotations, use the Fabric Mixin fork as a compile-time-only dependency:
repositories {
mavenCentral() //for fabric's mixin fork
maven{ url "" rel="noopener nofollow" target="_blank">https://peaksuperior885.github.io/peaks_maven/files/" } //for blendin
}
dependencies {
compileOnly "net.fabricmc:sponge-mixin:0.17.4+mixin.0.8.7"
implementation "com.peak885:blendin:1.0.0-forge-1.21.1"
}
compileOnly is intentional. Your mod should not package another copy of Mixin. BlendIn provides the runtime implementation and handles the Forge/ModLauncher integration.
| Component | Version |
|---|---|
| Minecraft | 1.21.1 |
| Forge | 52.x |
| Java | 21 |
| Fabric Sponge Mixin | 0.17.4 + Mixin 0.8.7 |
BlendIn is currently intended specifically for Forge 1.21.1.
During ModLauncher startup, BlendIn registers its transformation service and replaces the existing Mixin module with the bundled Fabric Mixin implementation.
It also integrates the replacement module with Forge's secure module/class-loader system and handles package signer state when necessary.
In other words:
You write the mod — BlendIn deals with the JVM wizardry.
And yes, the JVM wizardry was significantly more annoying than expected.
BlendIn is currently on Release stage 😊.
The project has successfully demonstrated:
Real-world mod and Mixin compatibility testing is still recommended before using BlendIn in a large production environment.
BlendIn uses:
Fabric Sponge Mixin
net.fabricmc:sponge-mixin:0.17.4+mixin.0.8.7
Parts of BlendIn's runtime integration were adapted from MixinTransmogrifier by Sinytra and its contributors.
Please see the relevant upstream project and licenses for attribution and licensing information.
BlendIn is licensed under PGCL-1.0 — Peak's General Cave License v1.0.
See LICENSE.txt for the complete license.
🗿 The Rock has veto power.
Found a problem or compatibility issue?
Open an issue with:
Please include enough information to reproduce the issue.
If the public API doesn't provide what you need, open an issue before reaching for ASM.
Seriously.
Forge's Mixin implementation is no longer where BlendIn needs it to be, while Fabric's maintained Sponge Mixin fork provides functionality that Forge's bundled implementation does not.
So naturally, the completely reasonable solution was to replace Mixin during ModLauncher startup, integrate a different Mixin module into Forge's secure module system, deal with JVM package signer state, and somehow make the whole thing work.
It works.
We aren't going to question it.
Does it work?
Yes.
Should it exist?
Probably.
Was it a massive pain in the ass?
Absolutely.
Would we do it again?
...probably.
🪨 Approved by The Rock.
Made by Peak885.
🪨 Approved by The Rock.