CmlLib.Core.Installer.Forge 2.0.0

dotnet add package CmlLib.Core.Installer.Forge --version 2.0.0
                    
NuGet\Install-Package CmlLib.Core.Installer.Forge -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CmlLib.Core.Installer.Forge" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CmlLib.Core.Installer.Forge" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="CmlLib.Core.Installer.Forge" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CmlLib.Core.Installer.Forge --version 2.0.0
                    
#r "nuget: CmlLib.Core.Installer.Forge, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CmlLib.Core.Installer.Forge@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CmlLib.Core.Installer.Forge&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=CmlLib.Core.Installer.Forge&version=2.0.0
                    
Install as a Cake Tool

CmlLib.Core.Installer.Forge

Minecraft Forge Installer

<img src='https://raw.githubusercontent.com/CmlLib/CmlLib.Core/master/icon.png' width=128>

Forge Installer for CmlLib.Core

Features

  • Forge Developer Support! After successfully installing the Forge version, the Forge advertising page will automatically open for you.
  • Automatic change of links to install Forge
  • Automatic installation of the Vanilla version of Minecraft before installing Forge
  • Skipping the Forge re-installation

Supported Forge Versions

1.7.10 ~ 1.20.1 forge versions was successfully tested. All test results

Install

Install the CmlLib.Core.Installer.Forge Nuget package

or download the nupkg in Releases and add references to them in your project.

Documentation

Usages and Examples

NeoForge API (in development)

Forge and NeoForge have separate version models: ForgeVersion and NeoForgeVersion. NeoForge discovery preserves all version names from the NeoForged Maven catalog, including alpha, snapshot, and arbitrary suffixes, and returns them in reverse server response order without sorting. If a release name cannot be mapped to a Minecraft version, discovery throws FormatException containing that name. Minecraft 1.21.0 is normalized to 1.21, and calendar releases such as 26.1 and 26.1.2 are mapped separately.

using CmlLib.Core;
using CmlLib.Core.Installer.Forge;
using CmlLib.Core.Installer.NeoForge;
using CmlLib.Core.Installer.Forge.Versions;

var launcher = new MinecraftLauncher(new MinecraftPath("./minecraft"));
var installer = new NeoForgeInstaller(launcher);
var versions = await installer.GetNeoForgeVersions("1.21.1"); // IReadOnlyList<NeoForgeVersion>
// GetNeoForgeVersions() returns releases for all Minecraft versions.
// The Minecraft version overload filters that list with Where.

// Choose the first release in reverse server order, or specify an exact build.
var installedId = await installer.Install("1.21.1", new ForgeInstallOptions());
// var installedId = await installer.Install("1.21.1", "21.1.252", new ForgeInstallOptions());

// A known model can be installed without querying the catalog.
// var installedId = await installer.Install(
//     new NeoForgeVersion("1.21.1", "21.1.252"), new ForgeInstallOptions());

IForgeInstaller exposes only VersionName and Install; version models are not part of the common interface. The legacy Forge implementations retain their own ForgeVersion properties. ForgeV12Installer accepts only ForgeV12VersionArtifact; ForgeInstallerVersionMapper converts ForgeVersion into that artifact before constructing the installer. The former IForgeInstaller.ForgeVersion property and the ForgeV12Installer constructor and property using ForgeVersion are removed.

NeoForgeInstaller handles discovery and version selection. NeoForgeVersionMapper parses catalog names into the data-only NeoForgeVersion record and normalizes Minecraft versions. NeoForgeInstaller converts that record into ForgeV12VersionArtifact and creates ForgeV12Installer from the artifact. Both Forge and NeoForge use this engine for installer profiles, libraries, processors, and optional embedded version JARs.

An internal InstallerRunner shares the installed-version check, vanilla preparation, Java selection, loader installation, and version-list refresh between both facades. Forge keeps its recommended-version selection and advertising callback. NeoForge does not open the Forge advertising page.

ForgeInstaller uses IForgeVersionLoader and IForgeInstallerVersionMapper. Its existing constructors provide default implementations; the constructor taking MinecraftLauncher, IForgeVersionLoader, and IForgeInstallerVersionMapper allows callers to supply their own implementations.

Catalog, mapper, facade, and installer-profile fixture tests cover the integration. The sample tester below executes actual NeoForge processors and verifies installed libraries and version metadata. It does not launch Minecraft.

Contributors

<a href="https://github.com/CmlLib/CmlLib.Core.Installer.Forge/graphs/contributors"> <img src="https://contrib.rocks/image?repo=CmlLib/CmlLib.Core.Installer.Forge" /> </a>

Made with contrib.rocks.

Special thanks to TaigoStudio for contributing almost entire source codes.

NeoForge installation tester

SampleForgeInstaller/NeoForgeInstallTester.cs installs the first catalog release in reverse server order for each of the 22 editable Minecraft versions. It performs real Java processor execution, completes runtime libraries, checks declared library files and SHA-1 hashes, and exports only the loader's versions and libraries. Game assets are omitted because this tester verifies installation, not game launch.

dotnet run --project SampleForgeInstaller -- --neoforge-test
# Inspect the selected versions without installing:
dotnet run --project SampleForgeInstaller -- --neoforge-test --plan-only
# Retry the saved plan using the installation cache:
dotnet run --project SampleForgeInstaller -- --neoforge-test --resume
# Restrict the saved plan to one Minecraft release:
dotnet run --project SampleForgeInstaller -- --neoforge-test --resume --minecraft 1.21.1

Outputs default to neoforge-installations/minecraft-<mc>-neoforge-<loader>/. The shared work cache and per-version logs live in neoforge-installations.cache/; installation-results.json records successes and failures. --output, --cache, and --java override the corresponding paths. A failed installation returns a nonzero exit code while allowing the remaining targets to run.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on CmlLib.Core.Installer.Forge:

Package Downloads
Gml.Core

Package Description

CmlLib.Core.Installer.Modpack

ModPack Parser for CmlLib

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 800 10/4/2026
1.1.1 13,674 11/25/2025
1.1.0 1,419 4/24/2025
1.0.1 846 12/14/2024
1.0.0 809 7/7/2024
1.0.0-beta.1 165 6/30/2024
0.0.3 528 4/22/2024
0.0.2 2,051 7/8/2023
0.0.1 377 7/1/2023