Skip to content

CleanroomMC/Cleanroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1f55aec · Feb 25, 2025
Feb 14, 2025
Jan 25, 2025
Oct 27, 2024
Jun 16, 2024
Dec 8, 2024
Feb 25, 2025
May 4, 2024
Jan 25, 2025
Feb 18, 2024
Feb 15, 2023
Feb 2, 2025
Oct 27, 2024
Oct 27, 2024
Dec 1, 2023
Feb 15, 2023
Oct 27, 2024
Feb 15, 2023

Repository files navigation

Cleanroom Minecraft

Features

Implemented

  • 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

Planning

  • CleanroomGradle to replace ForgeGradle
  • Classfile API
  • Actually useful APIs (See here)
  • Optimized

Components:

  • 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

Download & Installation:

  • 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), download the installer jar from release. You could use the installer like the Forge one.
  • 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 with a GitHub account to download action artifacts.

Build Instructions:

  1. Clone this repository
  2. Import the build.gradle into your IDE (most preferably IntelliJ IDEA)
  3. Once the import has finished, run gradlew setup
  4. Build with gradlew build

Development Tips:

  • 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.

Mod Development:

There's an unofficial template exist. Note: You need to build before run.

A porting guide is available in Cleanroom wiki.

Roadmap flow chart

Loading
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