eml-lib
v2.7.1
Published
Create your Electron Minecraft Launcher easily!
Maintainers
Readme
Electron Minecraft Launcher Lib (EML Lib)
Electron Minecraft Launcher Lib (EML Lib) is a Node.js library. It permits to authenticate, download Java and Minecraft and launch Minecraft.
Features
Authentication
EML Lib supports multiple authentication methods, including Microsoft, Azuriom, Yggdrasil and Crack. This allows you to choose the authentication method that best suits your needs and preferences.
Read the docs for MicrosoftAuth, YggdrasilAuth, AzAuth and CrackAuth.
Launch settings
Choose the Minecraft version and loader that you want to launch. EML Lib supports all Minecraft versions, from Minecraft beta to the latest Minecraft snapshot, and all loaders: Vanilla, Forge, NeoForge, Fabric and Quilt, and even custom loaders. EML Lib also allows you to use Profiles, which are sets of settings (such as Minecraft version, loader, mods, etc.) that you can save and reuse later.
EML Lib can automatically download and install Java to ensure that you have the correct Java version for the Minecraft version you want to launch. It also supports custom Java paths if you prefer to use your own Java installation.
To use all the capacities of EML Lib, you should set up your EML AdminTool website. It will allow you to use features such as news, bootstraps, maintenance, background, and more.
Read the docs for Profiles, Launcher and Java.
Skin and cape management
EML Lib can allow your players to manage their skins and capes. It supports the official Microsoft skin and cape system, as well as custom skins and capes. Players can change their skins and capes directly from the launcher.
Read the docs.
Bootstrap [^1]
Bootstrap is a powerful feature that allows you to auto-update your launcher. It checks for updates on a specified URL and downloads and installs them automatically. This ensures that your launcher is always up to date with the latest features and bug fixes.
Read the docs.
Maintenance mode [^1]
Maintenance mode is a feature that allows you to block the launcher during maintenance. When maintenance mode is enabled, users will see a message indicating that the launcher is under maintenance and will not be able to launch Minecraft until the maintenance is complete.
Read the docs.
Customization [^1]
EML Lib allows you to customize the launcher with various features, including:
- News: Displaying news on the launcher.
- Background: Displaying a background image on the launcher.
- Server status: Displaying server information on the launcher.
Read the docs for News, Background and ServerStatus.
Stats [^1]
Stats is a feature that allows you to collect and send anonymized usage statistics to EML AdminTool. This helps you understand how users are interacting with your launcher and can help you improve the user experience.
Read the docs.
Crash Reports [^1]
Crash Reports is a feature that allows you to collect and send crash reports to EML AdminTool. This helps you understand what went wrong when the launcher crashes and can help you fix the issues.
Read the docs.
Comparison with other solutions
There are already several Node.js libraries to launch Minecraft. Here is how EML Lib compares to the main ones.
| Solution | Language / License | Actively maintained | Auth | Loaders | Ecosystem | | -------------------------------- | ------------------------ | ----------------------- | ------------------------------------ | ----------------------------------------------- | ----------------------------------------- | | EML Lib | TypeScript / MIT | Yes | Microsoft, Azuriom, Yggdrasil, Crack | Vanilla, Forge, NeoForge, Fabric, Quilt, Custom | EML AdminTool, EML Template | | MCLC (Pierce01) | JavaScript / MIT | No (last release: 2023) | Via MSMC (external) | Forge only | None | | minecraft-java-core (Luuxis) | TypeScript / Custom [^2] | Yes | Microsoft, Azuriom, Crack | Vanilla, Forge, NeoForge, Fabric, Quilt, Custom | LuuxCraft Panel (paid), Selvania Launcher | | GMLL (Hanro50) | TypeScript / MIT | No (last release: 2023) | Via MSMC (external) | Forge, Fabric, Quilt | None | | @xmcl packages (Voxelum) | TypeScript / MIT | Yes | — (low-level toolkit) | All | XMCL launcher |
Key difference
Most existing libraries focus on launching Minecraft. EML Lib focuses on guaranteeing that every player runs exactly the expected environment — from authentication to file integrity, Java installation, and modpack distribution.
This is especially useful for:
- private servers that distribute a specific modpack,
- heavily modded servers where client drift causes issues,
- controlled environments where manual client edits are not acceptable.
If you do not need a backend, use agnostic mode with a hosted JSON modpack file. If you want a full administration dashboard, pair EML Lib with EML AdminTool.
Installation
Software requirements
- Node.js 20 or higher: see Node.js;
- For Microsoft authentication: Electron 23 or higher: please install it with
npm i electron.
To get all the capacities of this Node.js library, you should set up your EML AdminTool website! Without it, some features will be unavailable (such as News, Bootstrap, etc.).
EML Lib installation
You need Node.js and Electron.
# Using npm
npm i eml-libeml-lib package includes TypeScript typings, so you don't need to install @types/eml-lib.
Template
You can use the EML Template to create a Minecraft launcher with EML Lib. It is an Electron application that uses EML Lib to launch Minecraft. It is a good starting point to create your own Minecraft launcher.
Quick start
Quick start using the EML AdminTool:
const EMLLib = require('eml-lib')
const launcher = new EMLLib.Launcher({
url: 'https://at.emlproject.com', // Your EML AdminTool URL
root: 'eml',
account: new EMLLib.CrackAuth().auth('GoldFrite')
})
launcher.launch()Please refer to the docs for more information.
Platform compatibility
| OS and Architecture | Supported? | Minimum version supported | | ------------------- | ------------------ | ------------------------- | | Windows x64 | Yes | Windows 7 | | Windows arm64 | Yes | Windows 10 | | macOS x64 | Yes | Mac OS X Lion (10.7) | | macOS arm64 | Yes | macOS Big Sur (11) | | Linux x64 | Probably yes | — | | Linux arm64 | Probably partially | — |
- Yes means that the library has been tested and is known to work on this platform at least for Minecraft 1.6 and above (Vanilla and modded). - Probably yes means that the library has not been tested on this platform, but it is expected to work for Minecraft 1.6 and above (Vanilla and modded), since the Minecraft manifests are complete for this platform. - Probably partially means that the library has not been tested on this platform, and it is expected to work only for some Minecraft versions (Vanilla or modded), since the Minecraft manifests are not fully complete for this platform.
[!WARNING] No support will be provided for any other OS or architecture.
- Windows PCs with Intel or AMD processors;
- Macs with Intel processors;
- x86 Linux distributions.
Since 2020, the ARM architecture has become more widespread with Apple Silicon chips (M1, M2, etc.) and Windows 11 ARM laptops. Since the game was not initially compatible, Apple and Microsoft have integrated virtualization/emulation layers (Rosetta 2 for macOS, Prism/native emulation for Windows). While this simplifies things for developers, it comes at the expense of user performance. Furthermore, Rosetta can sometimes be finicky with very old versions of Minecraft (1.12.2 and earlier), forcing launchers to resort to workarounds.
In 2022, Minecraft finally became available on ARM architecture with the release of version 1.19, enabling a native, high-performance experience. However, given the evolution of operating systems and Apple's announced phased-out support for Rosetta 2 for general applications, launchers must ensure continued access to older versions of the game. This is where EML Lib comes in: the library meticulously corrects and updates every obsolete file in a completely transparent manner. Thanks to a system of smart patches, EML Lib allows Minecraft to run natively on all Macs (Intel and Apple Silicon), from version 1.6 to the latest! A few trade-offs remain, such as minor bugs when resizing the window or incompatibilities with certain older, unupdated mods.
As for Windows 11 ARM, EML Lib has made the strategic choice to rely on the built-in x64 emulation for older versions. Extremely efficient on Windows, this approach guarantees maximum stability and full compatibility with the mod ecosystem.
Contributing
See CONTRIBUTING.md for guidelines on how to contribute to this project.
Important information
- This is not an official library from Mojang Studios, Microsoft, Electron or Node.js. Minecraft is a trademark of Mojang Studios.
- This Node.js library is under the
MITlicense; to get more information, please read the fileLICENSE. It is legally obligatory to respect this license. - If you need some help, you can join this Discord.
[^1]: These features require the use of the EML AdminTool
[^2]: minecraft-java-core is distributed under a custom restrictive license. Commercial use by third parties and closed-source derivatives are prohibited. Read the LICENSE file carefully before adopting it.
