Skip to content
This repository was archived by the owner on May 6, 2026. It is now read-only.

Latest commit

 

History

History

README.md

Launcher Core Module

npm version Downloads Install size npm Build Status

Provide the core function to parse Minecraft version and launch.

Usage

Parse Version JSON

Parse minecraft version as a resolved version, which is used for launching process. You can also read version info from it if you want.

import { Version } from "@xmcl/core";
const minecraftLocation: string;
const minecraftVersionId: string;

const resolvedVersion: ResolvedVersion = await Version.parse(minecraftLocation, minecraftVersionId);

Launch Game

Launch minecraft from a version:

import { launch } from "@xmcl/core"
const version: string; // full version id, like 1.13, or your forge version like, 1.13-forge-<someForgeVersion>
const javaPath: string; // java executable path
const gamePath: string; // .minecraft path
const proc: Promise<ChildProcess> = launch({ gamePath, javaPath, version });

Detach from the parent process. So your launcher's exit/crash won't affact the Minecraft running.

const proc: Promise<ChildProcess> = Launcher.launch({ gamePath, javaPath, version, extraExecOption: { detached: true } });

Launching with Server Connection

For newer Minecraft versions, use the quickPlayMultiplayer option to directly connect to a server:

import { launch, createQuickPlayMultiplayer } from "@xmcl/core"

// Option 1: Use quickPlayMultiplayer directly
const proc = launch({
  gamePath,
  javaPath,
  version,
  quickPlayMultiplayer: 'play.hypixel.net:25565'
});

// Option 2: Use helper function
const proc = launch({
  gamePath,
  javaPath,
  version,
  quickPlayMultiplayer: createQuickPlayMultiplayer('mc.example.com', 8080)
});

For backward compatibility, the legacy server option is still supported:

// Legacy server option (still works)
const proc = launch({
  gamePath,
  javaPath,
  version,
  server: { ip: 'play.hypixel.net', port: 25565 }
});

Both quickPlayMultiplayer and server options can be used together for compatibility:

// Both options together for compatibility
const proc = launch({
  gamePath,
  javaPath,
  version,
  quickPlayMultiplayer: 'play.hypixel.net:25565',
  server: { ip: 'play.hypixel.net', port: 25565 }
});