Skip to content

Curseforge pack containing Cleanroom relauncher #4282

Description

@jagprog7

Enhancement Type

Improve an existing feature

Describe the enhancement

This is a issue extended from the discussion seen here: here. In particular:

I do not see a documented path that combines Auto CurseForge managed modpack loader installation with an arbitrary Cleanroom installer.

This is blocking issue for me.

Consider adding a way of resolving a curseforge pack to a generic pack before the Cleanroom installer is used. Or, recommend a way that I can workaround this issue - I can spend the time to figure out how to convert a curseforge pack to a generic pack manually, but this is a pain, and it's surprising that this flow isn't supported since it is supported without cleanroom. thanks

Activity

  1. itzg commented on Sep 21, 2026

    @itzg
    Owner

    I would have preferred you continued at the discussion you linked. I'm not sure why cleanroom is needed server side since their install section says it isn't needed

    image

    from https://github.com/Nomi-CEu/Nomi-CEu/wiki/Page-1:-Player-Information#32-cleanroom-installation

    As far as Nomi-CEu, why can't you just install using this image's native CurseForge modpack support from https://www.curseforge.com/minecraft/modpacks/nomi-ceu

  2. jagprog7 commented on Sep 22, 2026

    @jagprog7
    Author

    @itzg

    I would have preferred you continued at the discussion you linked.

    I feel that the distinction between a discussion and a tracking issue is important here. Discussions are open-ended, vs this is a specific articulable goal.

    I'm not sure why cleanroom is needed server side since their install section says it isn't needed

    My functional requirement is server side performance. I noticed a difference, in particular a lack of stuttering, which I want on multiplayer. Java 25 is mega good compared to Java 8. And, current 1.12.2 distant horizons requires it as well.

    Nomi-CEu

    I don't know what "Nomi-CEu" is. My use case is a curse forge pack zip, which contains Cleanroom.

  3. itzg commented on Sep 22, 2026

    @itzg
    Owner

    I don't know what "Nomi-CEu" is. My use case is a curse forge pack zip, which contains Cleanroom.

    The discussion you referenced

    image

    Can you point to an example of a modpack that uses cleanroom?

  4. itzg commented on Sep 22, 2026

    @itzg
    Owner

    I'm sorry, I didn't know anything about Cleanroom until quizzing Gemini about it. It's only been brought up in the discussion you linked so hadn't been on my radar.

    Cleanroom handles modloader setup differently than standard Forge, so implementing support for it requires a bit of research.

    Specifically, I'm pondering:

    1. Auto-Detection vs. Explicit Toggle: Evaluating whether I can reliably auto-detect Cleanroom requirement (e.g., via client-side relauncher mods in the pack) versus providing a clean, explicit configuration toggle (e.g., TYPE=CLEANROOM or USE_CLEANROOM=true) so you have deterministic control.
    2. Version Resolution: Investigating whether I can extract a specific Cleanroom version directly from the modpack’s bundled config files (like config/relauncher.json or config/cleanroom_relauncher.cfg) versus accepting a user input parameter (e.g., CLEANROOM_VERSION) that defaults to the latest GitHub release.

    Do you have any preferences or advice on these setup approaches? Also, that specific example modpack that uses Cleanroom, will help to expedite my research and testing.

  5. itzg commented on Sep 22, 2026

    @itzg
    Owner

    Oh and if anyone is interested in helping out, it'll actually be an enhancement over here

    https://github.com/itzg/mc-image-helper/blob/main/src/main/java/me/itzg/helpers/curseforge/InstallCurseForgeCommand.java

  6. jagprog7 commented on Sep 22, 2026

    @jagprog7
    Author

    @itzg

    any preferences or advice

    Not much unfortunately but I can help out with test cases.

    Here's what an example profile looks like: Example Cleanroom Relauncher.zip

    And here's the cfg file that relauncher generates on first startup:

    $ cat config/relauncher.json
    {
      "latestVersion": "0.6.13-alpha",
      "targetJavaVersion": 0,
      "args": "",
      "autoSetup": false,
      "enableRelauncher": true,
      "fetchUpdates": true,
      "clearCleanroomFolder": false,
      "clearJavaProvisionFolder": false,
      "darkMode": false
    }

    After going through the first time UI (and I selected a java arg):

    {
      "selectedVersion": "0.6.13-alpha",
      "latestVersion": "0.6.13-alpha",
      "targetJavaVersion": 25,
      "targetVendor": "Azul Zulu",
      "javaPath": "C:\\Users\\redacted\\.cleanroom\\java\\zulu25.36.205-ca-jdk25.0.4.1-win_x64\\zulu25.36.205-ca-jdk25.0.4.1-win_x64\\bin\\javaw.exe",
      "args": "-XX:+UseCompactObjectHeaders -XX:+UseZGC ",
      "autoSetup": true,
      "enableRelauncher": true,
      "fetchUpdates": true,
      "clearCleanroomFolder": false,
      "clearJavaProvisionFolder": false,
      "darkMode": false
    }

    This may be relevant: https://cleanroommc.com/wiki/end-user-guide/installation/install-server

  7. itzg commented on Sep 22, 2026

    @itzg
    Owner

    That server installation link helped; however, they didn't seem to clarify that Forge server needs to be installed first. Looking at https://github.com/itzg/docker-minecraft-server/blob/master/notes/start-script-flow.drawio.png I'll have this logic added in at the end of start-finalSetupModpack when the modloader family has been identified as "forge".

    I'll also need to have that step swap out SERVER with the cleanroom-{version}-universal.jar as the entry point. I'm not going to mess with the "relauncher" part since this image already manages the automation and doesn't need and really doesn't work with an additional bootstrap phase.

  8. jagprog7 commented on Sep 26, 2026

    @jagprog7
    Author

    @itzg no pressure, how long until this is available? trying to decide if I should invest time in a workaround or just wait. again no pressure!

  9. itzg commented on Sep 26, 2026

    @itzg
    Owner

    I'm afraid it might be a while before I can get to this. In fact, I probably need someone from the community to pick this up. I've got a day job and I'm trying to kick off my own business, so I'm very tight on spare time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions