Skip to content

Latest commit

 

History

2,204 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Technic Launcher

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.

Documentation

See the changelog for recent changes and history for older releases.

Development

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 shadowJar

The 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.

Common commands

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.

Memory warning preview

# 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.

Native architecture checks without a Mac

./gradlew test --tests net.technicpack.utilslib.OSUtilsTest

These 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.

Project layout

  • 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.

License

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.

About

Minecraft launcher for the Technic Platform

Resources

Stars

66 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages