Custom Minecraft launcher template for creating launchers for mods / modpacks/ servers. etc
Find a file Use this template
2026-04-25 16:38:15 +02:00
composeApp try on minecraft launch 2026-04-25 16:19:02 +02:00
gradle initial commit + base app 2026-04-18 10:37:55 +02:00
scripts cleaning variables and saving launcher files in appdata 2026-04-25 13:57:28 +02:00
.gitignore added ressource generator script + only direct links accepted for ressources 2026-04-25 09:24:08 +02:00
build.gradle.kts initial commit + base app 2026-04-18 10:37:55 +02:00
gradle.properties initial commit + base app 2026-04-18 10:37:55 +02:00
gradlew initial commit + base app 2026-04-18 10:37:55 +02:00
gradlew.bat initial commit + base app 2026-04-18 10:37:55 +02:00
LICENSE added readme and license 2026-04-25 16:38:15 +02:00
README.md added readme and license 2026-04-25 16:38:15 +02:00
settings.gradle.kts initial commit + base app 2026-04-18 10:37:55 +02:00

Custom Minecraft Launcher

A fork-ready Minecraft launcher designed to target a single version of the game. Ideal for server administrators and modpack creators who need a controlled, reproducible launch environment.


Overview

This project provides a customizable Minecraft launcher built with Kotlin Multiplatform and Compose. Before building and distributing, you must override the configuration files and assets described below to tailor the launcher to your use case.


Configuration

All configuration files are located in:

src/jcmMain/composeResources/files/config

GameConfig

Controls Minecraft behavior on first launch.

{
  "version": "1.21.11",
  "loader": "fabric",
  "loader_version": "0.19.2",
  "settings": {
    "renderDistance": 11,
    "fov": 0.5,
    "gamma": 1.0
  },
  "servers": [
    "mc.hypixel.net"
  ]
}
Field Description
version Target Minecraft version
loader Mod loader — supported values: vanilla, fabric, forge, neoforge, quilt
loader_version Version of the selected mod loader
settings Initial values written to options.txt on first launch
servers Server addresses pre-populated in the server list on first launch

LauncherConfig

Controls the launcher window appearance.

{
  "name": "CustomLauncher"
}
Field Description
name Title displayed in the launcher window

ResourcesConfig

Points the launcher to the remote modpack manifest. The file at the provided URL is downloaded at launch to resolve all mods, configurations, resource packs, and shader packs.

{
  "resourcesLink": "https://some.link.com/to.json"
}

To generate the resources manifest JSON, use the bundled script GenerateRessourcesJson.main.kts. Provide a .txt file listing your download links along with the JSON from a Modrinth export (.mrpack), and the script will produce the required manifest automatically.


Asset Overrides

You can replace the following images in src/jcmMain/composeResources/drawable:

File Purpose
icon.png Application icon
logo.png Logo displayed in the launcher UI
banner.png Banner image

The application version can also be updated in:

src/jcmMain/composeResources/files/version

Building

Run locally

./gradlew :composeApp:run

Package for distribution

Platform Command
Windows ./gradlew :composeApp:packageMsi
Linux ./gradlew :composeApp:packageDeb
macOS ./gradlew :composeApp:packageDmg

License

This project is distributed under the GNU General Public License v3.0.

You may not distribute closed-source versions of this software. Any derivative work must credit the original author. For full license terms, refer to the GPL v3.0 license.