Commit 944aa73a authored by insert's avatar insert 🎺


parent 0abbaff5
# libminecraft
In-development! Mostly working, few things missing.
Library for interacting with the Minecraft assets API, Forge website and for launching Minecraft.
## Usage
Install from npm:
npm install --save libminecraft
And import:
import { Install, Launch, ... } from 'libminecraft';
## Features
- Download and install Minecraft
let manifest = await GetVersionManifest(); // all functions are exported in index.ts
let index = GetVersionIndex(manifest); // may be useful in some cases, creates id-version object
let folder = new MinecraftFolder('path', 'to', 'resourceFolder');
let meta = await GetVersionMeta(folder, index['1.12.2']);
// install using the meta we selected
await Install(folder, meta, /** optional */ (progress) => console.log(progress));
// typescript types should give you all the info you need about progress
- Launch Minecraft
- Find and install Forge
- Authenticate through Yggdrasil
\ No newline at end of file
let resourcePath = new MinecraftFolder('.minecraft'); // assets, versions, etc
let gameData = new MinecraftFolder('.game'); // saves, logs, etc
let version = await GetVersionMeta(folder, '1.12.2'); // load version back up from disk
// we can now launch
await Launch({
java: 'java', // path to java executable
auth?: /** see below for getting an Account object */,
resolution?: { width: 123, height: 123 }
- Install Forge Modloader
let page = await GetForgeVersions('1.12.2'); // be sure to check if Forge supports the version
let index = GetForgeIndex(page); // likewise we can get an index, if needed
// install the Forge version, just install the first one we know of
let folder = new MinecraftFolder('.minecraft');
await InstallForgeVersion(folder, page.versions[0], /** optional */ (progress) => console.log(progress));
// progress update is likewise available
- Authenticate through Yggdrasil
// simply pass credentials and an account object will be returned
let account = await Authenticate('username', 'password');
// account can be passed to Launch
// you should probably save the account object instead of credentials
// then later you can refresh it like so:
let newAccount = await Refresh(account);
// newAccount has a new accessToken hence you should overwrite the old account with this
\ No newline at end of file
"name": "libminecraft",
"version": "1.0.1",
"description": "Library for managing Minecraft instances",
"description": "Library for managing Minecraft instances, yggdrasil authentication and Forge versions.",
"main": "dist/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
......@@ -25,5 +25,17 @@
"files": [
"repository": {
"type": "git",
"url": ""
"keywords": [
......@@ -8,10 +8,10 @@ export interface LaunchOptions {
resourcePath: MinecraftFolder
gameData: MinecraftFolder
java: string
version: VersionMeta,
auth?: Account,
version: VersionMeta
auth?: Account
resolution?: {
width: number,
width: number
height: number
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment