- Kotlin 100%
| composeApp | ||
| gradle | ||
| scripts | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
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.