UniMixins
UniMixins is a Mixin loader for Minecraft 1.7.10 (with partial 1.8.9~1.12.2 support) designed for maximum compatibility. It aims to combine the features of as many mixin loaders as possible, and its modular nature makes it possible to use along other loaders if desired.
Background
Numerous Mixin loaders exist for 1.7.10, and each one provides a differing set of extra features we refer to as "extras" on top of providing Mixin.
Since each of these loaders is monolithic, different ones cannot be used at the same time due to unavoidable feature overlap. To avoid this problem, UniMixins offers each feature as a separate module (but a combined jar is still provided for convenience).
Comparison table
Below is a table comparing the feature sets of known Mixin loaders.
Note: A more detailed version of this table is available here.

- [NOP]: Does not do anything. (issue)
- [SEP]: Is available as a separate mod.
Usage
Download the -all jar, and put it in your mods directory. Remove any other conflicting Mixin loaders (refer to the above table).
Note: It's important for the jar to be named so that it comes first alphabetically, to avoid a sorting issue with mods that embed Mixin. This is why the jar starts with a
+character. You may need to change this to a!character if you encounter issues with renamed jars.For reference, here is the sorting order of some notable characters:
!<+<0<[<_<a
Advanced usage
You can also assemble your own combination of modules using the module jars. Some modules depend on other modules, see the List of modules section.
Assuming no other Mixin loaders are present, you will generally want the following modules:
- Mixin (any single fork)
- Compat and Mixingasm (optional but highly recommended)
- Modules providing any extras you need
The game will crash if modules are missing dependencies. This can be disabled in the config.
List of modules
All modules depend on the Mixin module. Note that the dependents don't necessarily have to come from UniMixins modules, other mods may also be used to provide them.
Included in all-jar
- Mixin (UniMix): Provides a Mixin fork maintained by the UniMixins developers, based on the Fabric fork.
- SpongeMixins [1.7.10 only]: Provides an emulation of SpongeMixins's extras.
- MixinBooterLegacy [1.7.10 only]: Provides an emulation of MixinBooterLegacy's extras, and a relocated MixinExtras.
- MixinExtras: Provides MixinExtras.
- GasStation [1.7.10 only]: Provides an emulation of GasStation's extras.
- Depends on SpongeMixins.
- Depends on MixinBooterLegacy.
- Depends on MixinExtras
- GTNHMixins [1.7.10 only]: Provides an emulation of GTNHMixins's extras, and a relocated MixinExtras.
- Depends on SpongeMixins.
- Compat: Various compatibility tweaks:
- Remaps invalid references to Mixin classes (specifically the shaded ASM) in mods.
- Adds information about mixins to crash reports. [1.7.10 only]
- Mixingasm: Improves Mixin's compatibility with ASM transformers.
Optional
- Future Compat [1.8.9+ only]: Makes many of the modules usable on 1.8.9+. Needed to run the mod on 1.8+. (Not needed for Mixingasm.)
Very Optional
These are not included in releases, they mainly exist for testing purposes. (Note: You can only use a single Mixin module at the same time.)
- Mixin (SpongePowered): Provides the upstream fork of Mixin.
- Mixin (Fabric): Provides the Fabric fork of Mixin.
- Mixin (GasMix): Provides the GasStation fork of Mixin.
- Mixin (GTNH): Provides the GTNH fork of Mixin.
FAQ
Why another mixin loader? Haven't you seen that one xkcd strip?
Before UniMixins was created, there was far too much fragmentation among Mixin loaders on 1.7.10, with different mods requiring different incompatible loaders. This was partly due to conflicts between their developers, and partly because of technical reasons (the loaders were designed in a monolithic way, which invites incompatibility). This project has neither of those issues.
Why are you using the Fabric fork of Mixin? Isn't this a Forge mod?
The Fabric fork of Mixin is more actively maintained than the upstream fork, and has some extra fixes. Most of the Fabric fork's changes are not Fabric-specific.
What do the "extras" do anyway?
- SpongeMixins, Grimoire, MixinBooterLegacy, GasStation and GTNHMixins offer various ways to let you mix into the classes of non-coremods. (This is something Mixin does not natively support, since all of its phases occur before Forge discovers non-coremods and puts them on the classpath.)
- MixinBooterLegacy, GasStation and GTNHMixins add a "late" mixin phase that is fired right before the first mod construction event is dispatched. At this point all mods have been discovered.
- SpongeMixins lets you manually add mods to the classpath early using their file names. An old, hacky solution.
- We recommend new mods to use GTNHMixins as it's the most actively used and maintained option.
- Mixingasm fixes a Mixin issue that breaks some ASM transformers due to Mixin altering how they are called.
- MixinExtras adds new Mixin features that allow mods to write less intrusive mixins.
Mixin? mixin? SpongeMixins? SpongePowered? What's the difference?
- Mixin: a Java library that lets you transform Java classes in a fluent way.
- SpongePowered: the organization that created Mixin (who also developed a modding API called Sponge).
- mixin: a special Java class defining a "change" that should be applied to a class. These get applied by Mixin.
- SpongeMixins: a Mixin loader created by TimeConqueror that has a very generic name.
License
UniMixins is licensed under the Unlicense, with the exception of some modules. See LICENSE for the full details.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 |
- fix ASMRemapperTransformer by @danyadev in https://github.com/LegacyModdingMC/UniMixins/pull/70
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.3.0...0.3.1
- Remove GTNHMix mixin flavor by @ah-OOG-ah in https://github.com/LegacyModdingMC/UniMixins/pull/65
- optimize ASMRemapperTransformer by @danyadev in https://github.com/LegacyModdingMC/UniMixins/pull/67
## New Contributors
- @danyadev made their first contribution in https://github.com/LegacyModdingMC/UniMixins/pull/67
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.2.1...0.3.0
- Bump publishing Gradle to 7.4.2, hopefully fixing Modrinth publishing by @ah-OOG-ah in https://github.com/LegacyModdingMC/UniMixins/pull/64
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.2.0...0.2.1
- Fix NPE introduced in https://github.com/LegacyModdingMC/UniMixins/pull/50 by @Alexdoru in https://github.com/LegacyModdingMC/UniMixins/pull/51
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.1.21...0.1.22
- Use debug level for printing enabled GTNH mixins by @amyavi in https://github.com/LegacyModdingMC/UniMixins/pull/41
- Added support for OptiFineDevTweaker by @basdxz in https://github.com/LegacyModdingMC/UniMixins/pull/44
- Bump ASM to 9.8 by @ah-OOG-ah in https://github.com/LegacyModdingMC/UniMixins/pull/47
- Add general purpose Mixins / ASM transformers registration system by @Alexdoru in https://github.com/LegacyModdingMC/UniMixins/pull/48
- Merge mixin classes in config file instead of overwriting it by @Taskeren in https://github.com/LegacyModdingMC/UniMixins/pull/50
## New Contributors
- @amyavi made their first contribution in https://github.com/LegacyModdingMC/UniMixins/pull/41
- @basdxz made their first contribution in https://github.com/LegacyModdingMC/UniMixins/pull/44
- @Alexdoru made their first contribution in https://github.com/LegacyModdingMC/UniMixins/pull/48
- @Taskeren made their first contribution in https://github.com/LegacyModdingMC/UniMixins/pull/50
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.1.20...0.1.21
UniMix updated from 0.15.3 to 0.15.4.
- Update release.yml by @mitchej123 in https://github.com/LegacyModdingMC/UniMixins/pull/38
- Update CI by @ah-OOG-ah in https://github.com/LegacyModdingMC/UniMixins/pull/40
- Bump mixin by @ah-OOG-ah in https://github.com/LegacyModdingMC/UniMixins/pull/39
## New Contributors
- @ah-OOG-ah made their first contribution in https://github.com/LegacyModdingMC/UniMixins/pull/40
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.1.19...0.1.20
- Improved compat - Move GTNH LateMixins to pre-init by @mitchej123 in https://github.com/LegacyModdingMC/UniMixins/pull/37
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.1.18...0.1.19
- New mixins 0.8.7, mixinextras 0.4.1, and ASM 9.7.1 by @mitchej123 in https://github.com/LegacyModdingMC/UniMixins/pull/30
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.1.17...01.18
- New mixins 0.8.7, mixinextras 0.4.1, and ASM 9.7.1 by @mitchej123 in https://github.com/LegacyModdingMC/UniMixins/pull/30
- Full Changelog**: https://github.com/LegacyModdingMC/UniMixins/compare/0.1.17...01.18
- Updated to UniMix 0.13.0 (based on version 0.13.1 of the Fabric fork)
- Updated ASM to 9.6
Compat module:
- Added fix for INIT phase mixins not running in non-MultiMC-based launchers when LiteLoader is present as a Forge mod
- Updated to 0.3.5 (by @glowredman)
- Added LiteLoader mod detection to
ILateMixinLoader#getMixins(by @glowredman)
MixinExtras module:
- Updated to 0.3.2
Compat module:
- Added remapping of the
org.objectweb.asmpackage in mixin config plugins and classes annotated with@RemapAsmForMixin.
- Updated to 0.2.1 (by @drori200)
- Made GTNH-relocated MixinExtras unavailable at compile time. It will still be made available at runtime for backwards compatibility (this can be disabled).
- Fix transformers registered after the beginning of the DEFAULT phase not running when late mixins are processed.
Mixingasm module:
- Added a new annotation-based API which does not create a runtime dependency
MixinExtras module:
- Fixed crash with LWJGL3ify
- Source code is now included in the source jar
Compat modules:
- Removed DevCompat module and merged it into Compat module. The old functionality of the DevCompat module can be enabled by setting the
-Dunimixins.compat.hackClasspathModDiscovery=trueJVM flag. - Removed 1.8+ compatibility stub from Compat module since it caused mods to fail to compile. Its functionality has been moved to a new module called **Future Compat**
- Made ASM remapper transformer ~90% more efficient
- Updated to 0.2.0 (by @drori200)
- Fixed module not being functional (by @FIXxp)
- Changed jar names to start with a
+character (because-was causing issues with command line utilities.) - Maven artifact IDs have no special prefix now.
GTNHMixins and SpongeMixins modules:
- Bumped GTNHMixins version (no functionality was changed.)
- Added partial support for 1.8.9~1.12.2. The Mixin, MixinExtras, Compat (mostly) and Mixingasm modules now work on those versions. The Compat module must be present for this to work.
- Mismatching mod versions between the server and the client are now allowed
Mixingasm module:
- Fixed standalone Mixingasm module not working
- Updated Fabric and UniMix flavors to version 0.12.5+mixin.0.8.5 of Fabric's fork
MixinExtras module:
- Updated to 0.2.0-beta.8
- Fixed hot swap agent not working. Now the UniMixins jar can be used as a java agent to enable mixin hot swapping.
- Changed jar names to start with a
-character. This fixes a common sorting issue with jars whose names start with a[character. - Updated ASM to 9.5 for Java 21 compatibility
- Improved sanity checks
- Added warning if Mixin is getting bootstrapped from a foreign jar (can happen with incorrectly renamed jars)
- Added warning if Mixin did not get initialized (can happen in dev with incorrectly configured build scripts)
- Moved warning code to individual modules (instead of only being present in the
-alljar) - Fixed jitpack publishing
> **Note:** Starting from this release, dev jars will be included in releases to aid their discovery.
- Updated to version 0.12.4+mixin.0.8.5 of the Fabric fork
- Added support for v2
mcmod.info(fixes mods like BugTorch and ModernSplash not having their modids show up in error messages)
MixinBooterLegacy module:
- Possibly fixed late mixins not working (by @mark-sheremeta)
General:
- Fixed config not getting loaded if
configdir doesn't exist when the game is started
- Made mixin errors and applied mixins get included in crash reports.
General:
- Overhauled config, it's now a property file (to avoid loading Forge config classes so early.)
- Added
@Modannotation to modules that were missing it. This fixes them not showing up in the mod list GUI and in crash reports.