Skip to content

Move installation of the client from the installer to runtime#2847

Open
marchermans wants to merge 10 commits into
1.21.11from
feature/dynamic-installer
Open

Move installation of the client from the installer to runtime#2847
marchermans wants to merge 10 commits into
1.21.11from
feature/dynamic-installer

Conversation

@marchermans

@marchermans marchermans commented Dec 1, 2025

Copy link
Copy Markdown
Member

TLDR: Automatic installation at startup

This PR changes the way the installer creates the client, the end goal is to provide a simple version.json and have the launcher deal with downloading the libraries, and then have FML invoke a discovery and installation service which will trigger the installation.


Changes:

  • Updated FML to the new version with the new ELS.
  • Create the AutoInstall module which implements this new interface, whoes jar contains the neoform mappings, as well as the binary patches.
  • Add the minecraft client mappings, the AutoInstall and the Universal Jar to the libraries of the launchers version.json, causing it to download them and put them on the classpath of the launch.

TODO:

  • Discuss isolation of the autoinstaller (right now it is shadowed and works properly without isolation, but we might want to have CL Isolation?)
  • Clean this up, right now the launcher puts the mappings on the CP as a jar.... not a text file which makes looking things up annoying
  • Clean up the ELS Interface, neoforge version should not be there.

Requires:

Disable package-info generation on formatting of autoinstall subproject.
@neoforged-automation neoforged-automation Bot added the 1.21.10 Targeted at Minecraft 1.21.10 label Dec 1, 2025
@marchermans marchermans changed the title [DRAFT]: Move installation of the client from the installer to runtime Move installation of the client from the installer to runtime Dec 1, 2025
@neoforged-pr-publishing

neoforged-pr-publishing Bot commented Dec 1, 2025

Copy link
Copy Markdown
  • Publish PR to GitHub Packages

Last commit published: 6f5950a1417ac7384f9547737722e675f8a9ff9a - version: 21.10.74-pr-2847-feature-dynamic-installer

PR Publishing

The artifacts published by this PR:

Repository Declaration

In order to use the artifacts published by the PR, add the following repository to your buildscript:

repositories {
    maven {
        name = "Maven for PR #2847" // https://github.com/neoforged/NeoForge/pull/2847
        url = uri("https://prmaven.neoforged.net/NeoForge/pr2847")
        content {
            includeModule("net.neoforged", "neoforge")
            includeModule("net.neoforged", "testframework")
        }
    }
}

MDK installation

In order to setup a MDK using the latest PR version, run the following commands in a terminal.
The script works on both *nix and Windows as long as you have the JDK bin folder on the path.
The script will clone the MDK in a folder named NeoForge-pr2847.
On Powershell you will need to remove the -L flag from the curl invocation.

mkdir NeoForge-pr2847
cd NeoForge-pr2847
curl -L https://prmaven.neoforged.net/NeoForge/pr2847/net/neoforged/neoforge/21.10.74-pr-2847-feature-dynamic-installer/mdk-pr2847.zip -o mdk.zip
jar xf mdk.zip
rm mdk.zip || del mdk.zip

To test a production environment, you can download the installer from here.

@neoforged-automation

Copy link
Copy Markdown
Contributor

@marchermans, this pull request has conflicts, please resolve them for this PR to move forward.

@sciwhiz12 sciwhiz12 added the enhancement New (or improvement to existing) feature or request label May 7, 2026
@sciwhiz12

Copy link
Copy Markdown
Member

Will we still continue to push for this as a feature?

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

Labels

1.21.10 Targeted at Minecraft 1.21.10 enhancement New (or improvement to existing) feature or request needs rebase

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants