@torba/lwjgl3ify
v1.0.9
Published
[lwjgl3ify](https://github.com/GTNewHorizons/lwjgl3ify) support for torba — runs Minecraft 1.7.10 with LWJGL 3 and modern Java (17+, defaults to Java 25 per upstream).
Downloads
44
Readme
@torba/lwjgl3ify
lwjgl3ify support for torba — runs Minecraft 1.7.10 with LWJGL 3 and modern Java (17+, defaults to Java 25 per upstream).
lwjgl3ify is a compatibility layer (RetroFuturaBootstrap + a forgePatches jar that replaces Java-incompatible Forge classes) that lets old 1.7.10 modpacks run under a modern JVM with LWJGL 3 graphics.
Install
npm install @torba/lwjgl3ify @torba/minecraft @torba/core zodUsage
import { resolveLwjgl3ify } from '@torba/lwjgl3ify';
const lw = await resolveLwjgl3ify({ version: '3.0.16' });
lw.artifacts; // 1.7.10 client + assets + libs (Mojang + Forge + lwjgl3ify + lwjgl3)
lw.vars; // Vars including merged classpath
lw.launch; // Assembled Launch using RetroFuturaBootstrap as the JVM main class
lw.jvmArgs; // JVM args alone (Valset)
lw.mainClass; // RFB main class wrapped as a Val
lw.gameArgs; // Game args alone (Valset)Version input
- Exact tag —
'3.0.16'. 'latest'— newest non-prerelease GitHub release.'prerelease'— newest GitHub release including prereleases.
Options
resolveLwjgl3ify({
version: string,
repo?: string, // default: 'GTNewHorizons/lwjgl3ify'
token?: string, // optional GitHub token for higher rate limits
});How it works
- Resolves the requested
versionagainsthttps://api.github.com/repos/<repo>/releasesand picks the matching release'sversion.jsonasset. - Fetches that JSON — it's a self-contained Mojang-format client manifest (
inheritsFrom: null) that carries the vanilla 1.7.10 client URL, asset index, and the full library list inline (vanilla 1.7.10 libs + Forge 1.7.10 libs + lwjgl3ify + LWJGL 3 + native classifiers). - Hands the manifest to
parseClient+clientToTemplatefrom@torba/minecraftfor all the well-formed entries (including the LWJGL 3 native classifier libs that get extracted into${natives_directory}). - Resurrects the 15 "repo-style" library entries the strict Mojang schema drops — these have only
name(maven coord) +url(maven repo base), nodownloads.artifact. They cover: lwjgl3ify'sforgePatches, Forge'suniversaljar, Scala/Akka runtime,lzma, and Guava 17. URLs are synthesized fromrepo + coordPath; sha1/size are not available upstream so these download without integrity verification (Forge maven and Mojang's libraries CDN are stable enough that this is acceptable). - Appends the resurrected libs onto each per-OS classpath entry from
clientToTemplate. - Emits the lwjgl3ify mod jar (
lwjgl3ify-<v>.jar) as an artifact under${game_directory}/mods/. RetroFuturaBootstrap'sPluginLoaderscans the mods folder at startup for RFB plugin descriptors — that's where the Pack200 redirect transformer lives, so the mod jar must be present before FML loads (theforgePatchesjar alone isn't enough). The MMC bundle leaves this to the user; this package deploys it automatically. - Sets
mainClasstocom.gtnewhorizons.retrofuturabootstrap.MainStartOnFirstThread(from the manifest) with the upstream's fullarguments.jvmarray — including-Djava.system.class.loader=…RfbSystemClassLoader,--enable-native-access ALL-UNNAMED, and a long list of--add-opensflags forjava.base,java.desktop,jdk.dynalink, etc.
Notes
- Java 17+ is required; upstream defaults to Java 25 for 3.x. torba does not manage JVMs, so configure your launch's
commandfield (e.g.launch: { ...lw.launch, command: '/path/to/java25/javaw' }) accordingly. - The resolved manifest is the same one PrismLauncher / MultiMC consume from the lwjgl3ify MMC instance zip — no custom installer or install processors are involved.
- Forge 1.7.10's universal jar is downloaded from Forge maven without sha1, since the manifest lists it in repo-style form.
@torba/installer's integrity step is a no-op for entries without an integrity field.
