# CmlLib.Core
**Repository Path**: TieScript/CmlLib.Core
## Basic Information
- **Project Name**: CmlLib.Core
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-01-04
- **Last Updated**: 2025-01-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CmlLib.Core
## Minecraft Launcher Library
[](https://www.nuget.org/packages/CmlLib.Core)
[](https://github.com/CmlLib/CmlLib.Core/blob/master/LICENSE)
[](https://www.codacy.com/gh/CmlLib/CmlLib.Core/dashboard?utm_source=github.com\&utm_medium=referral\&utm_content=CmlLib/CmlLib.Core\&utm_campaign=Badge_Grade)
[](https://discord.gg/cDW2pvwHSc)
CmlLib.Core is a Minecraft launcher library for .NET\
support all vanilla and mod versions (including Forge, Fabric, etc...)
[한국어 문서](https://alphabs.gitbook.io/cmllib/v/v4-kr)
## Features
* 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](https://alphabs.gitbook.io/cmllib)
## Install
Install the [CmlLib.Core Nuget package](https://www.nuget.org/packages/CmlLib.Core)
## QuickStart
### Get All Versions
```csharp
using CmlLib.Core;
var launcher = new MinecraftLauncher();
var versions = await launcher.GetAllVersionsAsync();
foreach (var version in versions)
{
Console.WriteLine($"{version.Type} {version.Name}");
}
```
### Launch the Game
```csharp
using CmlLib.Core;
using CmlLib.Core.ProcessBuilder;
var launcher = new MinecraftLauncher();
var process = await launcher.InstallAndBuildProcessAsync("1.21", new MLaunchOption());
process.Start();
```
### Launch the Game with Options
```csharp
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();
```
## Documentation
**[Official documentation](https://alphabs.gitbook.io/cmllib)**
**[한국어 문서](https://alphabs.gitbook.io/cmllib/v/v4-kr)**
## Example
[Sample Launcher](https://github.com/CmlLib/CmlLib-Minecraft-Launcher)
## Contributors
Made with [contrib.rocks](https://contrib.rocks).