- 1.12.2 on Java 21
- LWJGL3
- A working mod development template/kit
- Patches for loading incompatible mods
- Built-in Mixin
- CleanroomGradle to replace ForgeGradle
- No more Late and Early mixin
- Classfile API
- Scala 3 + Kotlin 2
- Actually useful APIs (See here)
- Optimized
- Compatibility
- Minecraft Coder Pack
- CleanroomLoader (Continuation + Revamp of ForgeModLoader)
- Cleanroom Minecraft (Continuation + Revamp of MinecraftForge)
- Mixin (Coming Soon)
- Bytecode Patcher (Coming Soon) [Inspired by Bansoukou and Bytecode Patcher]
- Fugue, a mod patches many incompatibilities. (temporary)
- Scalar, a Scala provider. We made Scala libraries become a standalone mod so it can be updated.
- For MultiMC-based launchers (PolyMC, PrismLauncher), go to CleanroomMMC's action page, download the latest build (Note: Login first!) and import it in your launcher(alternatively unzip patches and json inside to your 1.12 instance).
- For regular launcher (official launcher, AT launcher, FTB, HMCL), go to Cleanroom's action page, click the latest action marked as Build and Upload Test Artifact and download (Note: Login first!) the installer artifact. You could use the installer like the Forge one.
- Remember to install Fugue!
- And Scalar! (experimental branch only)
- Clone this repository
- Import the
build.gradle
into your IDE (most preferably IntelliJ IDEA) - Once the import has finished, run
gradlew setup
- Build with
gradlew build
- Only modify
projects/cleanroom/src/
directory if you want to change vanilla - Run
gradlew genPatches
before commit, or the changes won't exist - Modifications on
src/
doesn't need generating patches - Tips from Forge are still apply, keep the patches clean!
- The current patches is full of useless hunks after we switched to VineFlower, we encourage contributors to manual clean up their patches
There's an unofficial template exist. Note: You need to build before run.
A porting guide is available in Cleanroom wiki.
graph TD;
A(Mixin integration)-->D(Bouncepad overhaul - we are here);
B(LWJGL compat)-->D;
C(Newer Java compat)-->D;
D-->E(Config any time);
D-->G(Minor improvement and fixes)
E-->F(Greater improvement needs configs)
X(Cleanroom Gradle)-->D
D-->X
D-->Y(Better Mixin Integration)
Y-->D