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.
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).
Below is a table comparing the feature sets of known Mixin loaders.
Note: A more detailed version of this table is available here.
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
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:
The game will crash if modules are missing dependencies. This can be disabled in the config.
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.
all
-jarThese are not included in releases, they mainly exist for testing purposes. (Note: You can only use a single Mixin module at the same time.)
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.
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.
When editing the source code of modules, please document your changes in the module's CREDITS file. This allows people to easily see what we have changed, and lets other developers know what changes they have to keep in mind when syncing with upstream.
The project needs to be compiled using Java 8. For example: JAVA_HOME=/path/to/jdk8 ./gradlew build
./gradlew module-XXX:build
: builds the module named XXX-Plocal
: use the locally built version of unimix
when building the Mixin module.
./gradlew publishToMavenLocal
in the UniMix repo first to install a local build.-PenableAltMixin
: build alternate flavors of the Mixin module, not just UniMix.A rough roadmap of the project is available here.
See docs/testing.md for a list of mods we have used to test the functionality of various UniMixins modules.
UniMixins is licensed under the Unlicense, with the exception of some modules. See LICENSE for the full details.