MCPcopy Index your code
hub / github.com/CleanroomMC/Cleanroom

github.com/CleanroomMC/Cleanroom @0.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.2.0 ↗ · + Follow
12,295 symbols 30,658 edges 1,272 files 2,152 documented · 18% updated today0.5.15-alpha · 2026-06-29★ 58535 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Cleanroom Minecraft

Features

Implemented

  • 1.12.2 on Java 21
  • LWJGL3
  • A working mod development template/kit
  • Patches for loading incompatible mods
  • Built-in Mixin

Planning

  • CleanroomGradle to replace ForgeGradle
  • No more Late and Early mixin
  • Classfile API
  • Scala 3 + Kotlin 2
  • Actually useful APIs (See here)
  • Optimized
  • Compatibility

Components:

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

Download & Installation:

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

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 manual clean up their patches

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

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

Extension points exported contracts — how you extend this code

Renderable (Interface)
Simple interface to things that can be Rendered. @author $Author$ @version $Revision$ $Id$ [10 implementers]
src/main/java/org/lwjgl/util/Renderable.java
IPollution (Interface)
(no doc) [6 implementers]
src/test/java/net/minecraftforge/debug/world/ChunkCapabilityTest.java
ReadableVector2f (Interface)
@author foo [17 implementers]
src/main/java/org/lwjgl/util/vector/ReadableVector2f.java
IExampleCapability (Interface)
(no doc) [4 implementers]
src/test/java/net/minecraftforge/debug/mod/CapabilityTest.java
ReadableVector3f (Interface)
@author foo [9 implementers]
src/main/java/org/lwjgl/util/vector/ReadableVector3f.java
IRainTimer (Interface)
(no doc) [2 implementers]
src/test/java/net/minecraftforge/debug/world/WorldCapabilityTest.java
IVertexConsumer (Interface)
Assumes that the data length is not less than e.getElementCount(). Also assumes that element index passed will increment [8 …
src/main/java/net/minecraftforge/client/model/pipeline/IVertexConsumer.java
IExtraSleeping (Interface)
(no doc) [2 implementers]
src/test/java/net/minecraftforge/debug/gameplay/NoBedSleepingTest.java

Core symbols most depended-on inside this repo

put
called by 839
src/main/java/net/minecraftforge/client/model/pipeline/IVertexConsumer.java
add
called by 719
src/main/java/net/minecraftforge/common/ticket/ITicketManager.java
get
called by 652
src/main/java/net/minecraftforge/client/model/ModelFluid.java
get
called by 383
src/main/java/net/minecraftforge/fml/client/config/IConfigElement.java
getAddress
called by 257
src/main/java/org/lwjgl/MemoryUtil.java
error
called by 221
src/main/java/org/lwjgl/util/glu/GLUtessellatorCallback.java
format
called by 210
src/main/java/net/minecraftforge/common/util/TextTable.java
size
called by 209
src/main/java/net/minecraftforge/common/config/ConfigCategory.java

Shape

Method 10,329
Class 1,742
Interface 144
Enum 80

Languages

Java100%

Modules by API surface

src/main/java/org/lwjgl/opengl/GL11.java223 symbols
src/main/java/org/lwjgl/opengl/EXTDirectStateAccess.java204 symbols
src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java178 symbols
src/main/java/net/minecraftforge/client/model/obj/OBJModel.java124 symbols
src/main/java/net/minecraftforge/client/model/b3d/B3DModel.java114 symbols
src/main/java/org/lwjgl/opengl/GL45.java103 symbols
src/main/java/org/lwjgl/opengl/GL30.java86 symbols
src/test/java/net/minecraftforge/debug/client/model/ModelLoaderRegistryTest.java83 symbols
src/main/java/net/minecraftforge/common/ForgeHooks.java79 symbols
src/main/java/org/lwjgl/opengl/ARBDirectStateAccess.java78 symbols
src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java77 symbols
src/main/java/net/minecraftforge/client/model/ModelLoader.java76 symbols

For agents

$ claude mcp add Cleanroom \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact