Minestaller is a retro-futuristic Minecraft management platform. It consists of:
- Java Terminal Client: A cross-platform Java desktop application styled as a cyber-terminal to browse Modrinth database entries. [NOT THE MAIN PROJECT]
- Node.js Companion Web Agent & Dashboard: A local web companion server and dashboard interface that scans local profile folders, updates world NBT attributes, manages datapacks, toggles shaders/resourcepacks, and downloads Modrinth resources directly into local folders.
- Language: Java 17+
- Build System: Maven (Local portable instance included in project)
- UI Framework: Swing styled with FlatLaf for a terminal feel, kinda looks pro and silly at the same time.
- API Client: Asynchronous
HttpClient - JSON Parsing: Gson
- Platform: Node.js & Express
- Parsing Engines: Custom binary NBT parser (level.dat modifier)
- Frontend UI: Vanilla HTML5, CSS (Multiple Themes), and modular JavaScript
- Connectors: Multi-platform installer scripts (
connect.bat,connect.sh,connect.ps1)
- Retro Terminal Cold-Boot Sequence: Simulation of a cyber-terminal loading modules before establishing a directory connection.
- System Diagnostics (Directory Scan):
- Verifies the selected directory structure (
options.txt,mods/,resourcepacks/,shaderpacks/). - Automatically detects the Minecraft version and active mod loader (Fabric, Forge, NeoForge, Quilt).
- Verifies the selected directory structure (
- Interactive Companion Dashboard:
- Modern, responsive web browser-based dashboard interface.
- Direct Profile Controls: Turn shaders and resource packs on/off individually or in bulk.
- Profile Migration: Port configuration files, saves, mods, resourcepacks, and shaders between launcher directories.
- Automated Modpack Installer: Resolves and installs Modrinth modpacks (
.mrpack) with client overrides.
- "Connect With Device" Setup Wizard:
- Interactive pop-up tutorial providing custom batch, bash, and powershell setup scripts.
- Info tooltips explaining the function of each command (e.g. directory changes, server boots, fallback repositories).
- Bloxy Theme:
- This theme is inspired by the Bloxy Cola (From Roblox).
- Looks cool in my opinion.
minestaller/
│
├── routes/ # Express router modules
│ ├── config.js # Global configs & scanning APIs
│ ├── instance.js # Active profile metadata & toggles
│ ├── migrater.js # Folder routing, detection, & migration
│ ├── mods.js # Modrinth modpack resolution & downloads daemon
│ └── worlds.js # Save files & world NBT/datapack APIs
│
├── utils/ # Backend utility modules
│ ├── file.js # Recursive file actions & folder sizes
│ ├── minecraft.js # options.txt & iris.properties parser
│ ├── nbt.js # Binary level.dat NBT reader/writer engine
│ └── sys.js # Core networking, drives & download streams
│
├── public/ # Companion Dashboard static client files
│ ├── index.html # Main UI page & scripts
│ └── connect.* # Windows / macOS / Linux connection scripts
│
├── src/ # Java Terminal application source code
├── pom.xml # Maven build configuration
├── server.js # Node.js backend entry bootstrapper
├── start.bat # Windows startup script launcher
└── minestaller_config.json # Local client configuration cache
The companion dashboard connects to the local computer via Port 5000.
Double-click start.bat in the root folder. It will install dependencies and launch http://localhost:5000 automatically.
Open a terminal in the project directory and run:
npm install
npm startSince Maven is packaged locally inside this directory, you do not need Maven installed on your machine. You only need a Java 17+ JDK.
Open a terminal in the project directory and run:
.\apache-maven-3.9.6\bin\mvn.cmd clean packageThis compiles the code and builds an executable JAR file containing all dependencies in the target/ directory:
target/minestaller-1.0.0.jar
Run the packaged JAR file using Java:
java -jar target/minestaller-1.0.0.jarTo test directory scanning, you can set up a mock Minecraft instance directory on your desktop:
- Create a folder named
mock_instance. - Inside
mock_instance, create an empty file namedoptions.txtand folders namedmods,resourcepacks, andshaderpacks. - Create a file named
instance.cfginsidemock_instancewith the following content:minecraftVersion=1.20.1 iconKey=fabric name=My Fabric Instance
- Start the application, click Browse, select the
mock_instancefolder, and click Connect. - The terminal console will print real-time diagnostic logs, detect Minecraft version
1.20.1and loaderFabric, and render lists of local mods (currently empty). - Click Establish Uplink Database to transition to the database browser, pre-populated with version
1.20.1and loaderFabricfilters. - Search for any mod (e.g.
Sodium), select it, click Initiate Uplink Download, authorize dependencies, and watch the installation write queue download them into your mock instance!