Technic Launcher is a desktop application built specifically for use with the Technic Platform,
letting players discover, install, update, and play Minecraft modpacks. This repository (LauncherV3)
contains the Java launcher, its Technic Platform and Solder integrations, and platform packaging tools.
- Solder Java runtime overrides — select a Mojang Java runtime for a Solder build, including validation and manual-Java behavior.
- Local Solder integration testing — connect a local Solder instance through the Platform fixture and test with an isolated launcher profile.
- Modern Forge and NeoForge installation — installer processing, shared libraries, cache migration, offline limitations, and corpus verification.
See the changelog for recent changes and history for older releases.
Use the included Gradle wrapper from the repository root. The build uses a Java 25 toolchain with automatic toolchain provisioning configured; production sources target Java 8. The Java runtime needed by a Minecraft modpack is selected separately from the build toolchain.
On Windows, use gradlew.bat in place of ./gradlew.
For local testing, set BUILD_NUMBER=999 so communication with the Technic Platform API works.
On Windows, set this environment variable before invoking gradlew.bat.
# Run the launcher (requires a graphical desktop)
BUILD_NUMBER=999 ./gradlew run
# Build the standalone JAR
BUILD_NUMBER=999 ./gradlew shadowJarThe example produces build/libs/launcher-4.0-999.jar. Without BUILD_NUMBER, the build defaults to 0;
use 999 for local testing.
For local Solder testing without using your normal launcher profile, follow the
isolated-profile guide.
| Command | Purpose |
|---|---|
./gradlew test |
Run the JUnit 5 test suite. |
./gradlew spotlessApply |
Format Java and Gradle/Kotlin build files. |
./gradlew spotlessCheck |
Check formatting without changing files. |
./gradlew check |
Run tests, formatting checks, and shadow-JAR service verification. |
./gradlew build |
Compile, assemble, and verify the application. |
./gradlew package |
Build the shadow JAR, Windows executable, and macOS app ZIP. |
./gradlew previewMemoryWarning |
Preview the memory warning without generating memory pressure. |
Signing during package is enabled when CERT_KEYSTORE is set and also requires CERT_ALIAS,
CERT_STOREPASS, and CERT_KEYPASS. Setting SENTRY_AUTH_TOKEN enables Sentry source bundle
upload. Keep credentials and generated files out of version control.
# Open the real dialog with a simulated 4 GiB heap and 2 GiB available.
./gradlew previewMemoryWarning
# Supply a different simulated heap and available memory, both in MiB.
./gradlew previewMemoryWarning --args="8192 4096"
# Healthy and unknown readings should finish without displaying a warning.
./gradlew previewMemoryWarning --args="4096 8192"
./gradlew previewMemoryWarning --args="4096 -1"The preview reports Cancel or Launch anyway in the terminal. It does not generate memory pressure, load or save launcher settings, or start Minecraft. It uses the production warning dialog; the preview script itself is development-only and is not included in the launcher JAR.
./gradlew test --tests net.technicpack.utilslib.OSUtilsTestThese tests expose synthetic macOS-style functions through JNA and exercise the native calling
interface, ARM64/Intel results, and unavailable or malformed query results. They run locally
without a Mac or C compiler. They do not verify Apple's actual sysctl implementation or
Rosetta; that still requires an Apple Silicon Mac, such as a suitable hosted macOS runner.
src/main/java/net/technicpack/— launcher UI, installation and update flows, and shared utilities.src/main/resources/— bundled images, translations, metadata, and Windows packaging assets.src/main/app/— macOS application assets.src/test/java/— tests mirroring production packages.buildSrc/src/main/kotlin/— custom Gradle build and packaging logic.scripts/— development utilities, including the local Platform fixture.docs/— detailed guides and existing design documents.
The launcher is licensed under the GNU General Public License, version 3 or later. See LICENSE.txt and COPYING.txt for the Technic Launcher Core license notice and bundled license text.