- 1.12.2 on Java 21
- Latest LWJGL3
- A working mod development template/kit
- Patches for loading incompatible mods
- Built-in Mixin w/ handy bootstrapping
- Develop using Scala 3 + Kotlin 2
- Compatibility to 99% of Forge mods
- CleanroomGradle to replace ForgeGradle
- Classfile API
- Actually useful APIs (See here)
- Optimized
- Minecraft Coder Pack
- CleanroomLoader (Continuation + Revamp of ForgeModLoader)
- Cleanroom Minecraft (Continuation + Revamp of MinecraftForge)
- Customized Mixin
- Bytecode Patcher (Coming Soon) [Inspired by Bansoukou and Bytecode Patcher]
- Fugue, a mod patches many incompatibilities.
- Javassist
- Scalar, a Scala provider. We made Scala libraries become a standalone mod so it can be updated.
- Forgelin-Continuous and LibrarianLib-Continuous
- For MultiMC-based launchers (PolyMC, PrismLauncher), download the MMC instance from release, 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), install the relauncher, launch the game and follow instructions.
- WARNING: Only MultiMC-based launchers are officially supported. This is because of the limit on removing vanilla libraries in other launchers.
- Remember to install Fugue!
- And Scalar!
- If you were told to use action builds (aka bleeding edge), here: Cleanroom jar, Cleanroom MMC zip, Fugue
- You need to log in your GitHub account to download action artifacts.
- Add Scalar and Fugue in your pack.
- Add Relauncher (optional, this will make your pack a full Cleanroom pack)
- Test launching and remove incompatible mods
- Cleanroom mods (Fugue, Scalar) will be ignored by Forge, so then won't crash existed players
- Cleanroom integrated mods (MixinBooter, ConfigAnyTime) will be ignored by Cleanroom, then won't crash new players
- The version of built-in MixinBooter is configurable in forge_early.cfg
- Phosphor: Use Hesperus or Alfheim Lighting Engine
- Forgelin: Use Forgelin-Continuous
- LibrarianLib: Use LibrarianLib-Continuous
- JustEnoughIds: Use RoughlyEnoughIDs
- AdvancedShader: Binary patching, incompatible
- Polyfrost series: Waiting for official fix
- Essential.gg: Patched but still buggy
- Clone this repository
- Import the
build.gradle
into your IDE (most preferably IntelliJ IDEA) - Once the import has finished, run
gradlew setup
- Run
gradlew --stop
to stop the daemon and prevent ForgeGradle gone wrong - 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 clean up these patches manually.
Official template is here: template
A porting guide is available in Cleanroom wiki (WIP).