@mclc/main
v4.0.0
Published
Lightweight module that downloads and runs Minecraft using javascript / NodeJS
Downloads
54
Maintainers
Readme
This repository contains the rewritten version of MCLC. When the PR will be approved, this package will be obsolete
MCLC (Minecraft Launcher Core) is a NodeJS solution for launching modded and vanilla Minecraft without having to download and format everything yourself. Basically a core for your Electron or script based launcher.
Getting support
Do you need to get in contact with me or get help? Join my Discord Server
Installing
# npm
npm i minecraft-launcher-core
# Yarn
yarn add minecraft-launcher-core
# pnpm
pnpm add minecraft-launcher-core
Example
import { Client, offline, onLog } from 'minecraft-launcher-core';
const client = new Client({
// This will launch in offline mode, if you want to use
// a Microsoft Account, see details below
authorization: offline('Steve'),
// 1.14.4 is the default version, you can remove it if you are using it
version: {
number: '1.14.4',
type: 'release',
},
});
await client.install();
await client.launch();
onLog('debug', (e) => console.log(e));
onLog('data', (e) => console.log(e));
Using a Microsoft Account
In order to authenticate with a Microsoft Account, you would need to use MSMC. Make sure to install it, as it doesn't come by default.
Example
import { Client, onLog } from 'minecraft-launcher-core';
import { Auth } from 'msmc';
const authManager = new Auth('select_account');
const xboxManager = await authManager.launch('raw'); // Can be 'electron' or 'nwjs'
const token = await xboxManager.getMinecraft();
const client = new Client({
authorization: token.mclc(),
});
await client.install();
await client.launch();
onLog('debug', (e) => console.log(e));
onLog('data', (e) => console.log(e));
Modded versions
MCLC only supports installing Vanilla automatically, but it also supports installing Forge and NeoForge for you (you would need to install the installer yourself)
Example
import { join } from 'path';
import { Client, offline, onLog } from 'minecraft-launcher-core';
const client = new Client({
authorization: offline('Steve'),
version: {
number: '1.14.4',
type: 'release',
forge: join('path', 'to', 'forge-installer.jar'),
},
});
await client.install();
await client.launch();
onLog('debug', (e) => console.log(e));
onLog('data', (e) => console.log(e));
Contributors
These are the people that helped out that aren't listed here!
- Pyker - Forge dependency parsing.
- Khionu - Research on how Minecraft's
natives
are handled. - Coding-Kiwi - Pointed out I didn't pass
clientToken
in initial authentication function. - maxbsoft - Pointed out that a certain JVM option causes OSX Minecraft to bug out.
- Noé - Pointed out launch args weren't being passed for Forge 1.13+.
Related projects
- MSMC - Allows using a Microsoft Account for the authorization
- tomate-loaders - Downloads mod loaders automatically