CmlLib.Core is a Minecraft launcher library for .NET
support all vanilla and mod versions (including Forge, Fabric, etc...)
- Authenticate with Microsoft Xbox account
- Get vanilla versions and installed versions
- Install vanilla versions
- Launch any vanilla version (tested up to 1.21)
- Launch Forge, Optifine, FabricMC, LiteLoader or any other custom version
- Install Java runtime
- Install LiteLoader, FabricMC
- Launch with options (direct server connecting, screen resolution, JVM arguments)
- Cross-platform (Windows, Linux, macOS)
Go to the wiki for all features
Install the CmlLib.Core Nuget package
using CmlLib.Core;
var launcher = new MinecraftLauncher();
var versions = await launcher.GetAllVersionsAsync();
foreach (var version in versions)
{
Console.WriteLine($"{version.Type} {version.Name}");
}
using CmlLib.Core;
using CmlLib.Core.ProcessBuilder;
var launcher = new MinecraftLauncher();
var process = await launcher.InstallAndBuildProcessAsync("1.21", new MLaunchOption());
process.Start();
using CmlLib.Core;
using CmlLib.Core.Auth;
using CmlLib.Core.ProcessBuilder;
var path = new MinecraftPath("./my_game_dir");
var launcher = new MinecraftLauncher(path);
launcher.FileProgressChanged = (sender, args) =>
{
Console.WriteLine($"Name: {args.Name}");
Console.WriteLine($"Type: {args.EventType}");
Console.WriteLine($"Total: {args.TotalTasks}");
Console.WriteLine($"Progressed: {args.ProgressedTasks}");
};
launcher.ByteProgressChanged = (sender, args) =>
{
Console.WriteLine($"{args.ProgressedBytes} bytes / {args.TotalBytes} bytes");
};
await launcher.InstallAsync("1.20.4");
var process = await launcher.BuildProcessAsync("1.20.4", new MLaunchOption
{
Session = MSession.CreateOfflineSession("Gamer123"),
MaximumRamMb = 4096
});
process.Start();
Made with contrib.rocks.