minecraft-launcher/docs/MINECRAFT_LAUNCHER.md

14 KiB

Minecraft Launcher Project - Complete Documentation

Location: /home/admin/ai-lab/_projects/_minecraft/

Last Updated: 2026-04-13


Table of Contents

  1. Project Overview
  2. Current Setup
  3. Build System
  4. Custom Theme
  5. Development History
  6. File Structure
  7. Configuration
  8. Deployment
  9. Troubleshooting
  10. Future Work

Project Overview

This project contains a custom-branded PrismLauncher for Minecraft, themed as "racked.ru" with a minimalist black and red design. The launcher is built from PrismLauncher-Cracked and customized for portable operation (USB-friendly, no installation required).

Key Features

  • Minimalist Design: Black background with red accents
  • Portable Mode: All data stored locally, perfect for USB drives
  • Cross-Platform: Builds available for Windows, Linux, and macOS
  • Stripped Resources: Removed unused themes to minimize size
  • Custom Branding: racked.ru theme and catpack background

Current Setup

Launcher Location

/home/admin/ai-lab/_projects/_minecraft/racked.ru - minecraft/

Current Launcher Contents (as of 2026-04-13)

  • prismlauncher.exe - Main launcher executable (Windows)
  • prismlauncher.cfg - Configuration file with custom theme settings
  • portable.txt - Enables portable mode
  • Qt6*.dll - Qt framework libraries
  • platforms/ - Qt platform plugins
  • iconengines/ - Icon rendering plugins
  • imageformats/ - Image format support
  • themes/racked.ru/ - Custom theme files
  • catpacks/racked_ru.png - Background cat image
  • instances/racked.ru/ - Minecraft instance with mods

Configuration (prismlauncher.cfg)

[General]
ConfigVersion=1.2
ApplicationTheme=racked.ru
IconTheme=flat_white
BackgroundCat=racked_ru
Language=en_US
MenuBarInsteadOfToolBar=true
StatusBarVisible=false
TheCat=true

Build System

Build Repository

The build system and source code are maintained in:

/home/admin/ai-lab/_projects/_minecraft/source/

Build Scripts Available

Linux Scripts

Script Purpose
setup-and-build.sh One-command setup and build
scripts/build-linux-portable.sh Build for Linux
scripts/deploy-to-minecraft-folder.sh Build and deploy automatically
scripts/build-windows-from-linux.sh Cross-compile for Windows
scripts/build-all-platforms-linux.sh Multi-platform build
scripts/create-release.sh Create versioned release packages

Windows Scripts (Legacy)

Script Purpose
scripts/build-windows-portable.bat Build for Windows
scripts/deploy-to-minecraft-folder.bat Deploy to Windows folder

Build Process (Linux)

Quick Build:

cd /home/admin/ai-lab/_projects/_minecraft/source
bash setup-and-build.sh

This:

  1. Installs dependencies (Fedora packages)
  2. Builds the launcher
  3. Creates portable release in release/

Deploy Build:

bash scripts/deploy-to-minecraft-folder.sh

This:

  1. Builds the launcher
  2. Backs up current installation
  3. Deploys new version to racked.ru - minecraft/

Build Dependencies (Fedora)

sudo dnf install -y \
    cmake gcc-c++ make \
    qt6-qtbase-devel qt6-qttools-devel qt6-qtsvg-devel \
    qt6-qtnetworkauth-devel qt6-qtimageformats \
    zlib-devel mesa-libGL-devel

Custom Theme

Theme Location

source/launcher/resources/racked_ru/

Theme Files

theme.json

{
    "colors": {
        "AlternateBase": "#000000",
        "Base": "#000000",
        "BrightText": "#ff0000",
        "Button": "#000000",
        "ButtonText": "#ffffff",
        "Highlight": "#4C4C4C",
        "HighlightedText": "#CCCCCC",
        "Link": "#CD001F",
        "Text": "#ffffff",
        "ToolTipBase": "#ffffff",
        "ToolTipText": "#ffffff",
        "Window": "#000000",
        "WindowText": "#ffffff",
        "fadeAmount": 0.5,
        "fadeColor": "#000000"
    },
    "name": "racked.ru",
    "widgets": "Fusion"
}

themeStyle.css

QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }

Background

  • File: catpacks/racked_ru.png
  • Custom cat image displayed in launcher background
  • Configured via BackgroundCat=racked_ru in config

Theme Changes Made

  1. Removed all default themes (pe_dark, pe_light, pe_blue, etc.)
  2. Kept only flat_white icon theme for minimalism
  3. Added custom racked.ru theme with black/red colors
  4. Set racked.ru as default application theme
  5. Set flat_white as default icon theme

Development History

Timeline

2026-04-13 - Project Creation

  • Cloned upstream PrismLauncher-Cracked repository
  • Created custom racked.ru theme integration
  • Stripped unused themes and resources
  • Implemented cross-platform build system for Linux
  • Created automated deployment scripts
  • Configured portable mode support

Changes Made

  1. Theme Integration

    • Added racked.ru theme with custom colors
    • Set as default theme in Application.cpp
    • Updated main.cpp to load only required resources
    • Modified ThemeManager to remove unused themes
  2. Resource Optimization

    • Removed 10+ unused icon themes
    • Removed unused application themes
    • Reduced build size significantly
    • Kept only flat_white and racked.ru themes
  3. Portable Mode

    • Added portable.txt to launcher root
    • Configured builds to be USB-friendly
    • All data stored locally in launcher directory
  4. Build System

    • Created Linux-first build scripts
    • Added cross-compilation support for Windows
    • Automated deployment to minecraft folder
    • Created release packaging scripts

Upstream Base


File Structure

Current Launcher (Production)

racked.ru - minecraft/
├── prismlauncher.exe           # Main executable
├── prismlauncher.cfg           # Configuration
├── portable.txt                # Enables portable mode
├── Qt6Core.dll                 # Qt libraries
├── Qt6Gui.dll
├── Qt6Widgets.dll
├── Qt6Network.dll
├── ... (other Qt DLLs)
├── platforms/                  # Qt platform plugins
│   └── qwindows.dll
├── iconengines/               # Icon rendering
├── imageformats/              # Image support
├── themes/
│   └── racked.ru/
│       ├── theme.json
│       └── themeStyle.css
├── catpacks/
│   └── racked_ru.png
├── instances/
│   └── racked.ru/            # Minecraft instance
│       └── minecraft/
│           └── config/       # Mod configurations
├── cache/                     # Download cache
├── meta/                      # Metadata
├── translations/             # Language files
└── logs/                      # Log files

Build System (Development)

source/
├── launcher/                  # Source code
│   ├── resources/
│   │   └── racked_ru/        # Custom theme
│   ├── Application.cpp       # Modified defaults
│   └── main.cpp              # Resource loading
├── scripts/
│   ├── setup-and-build.sh
│   ├── build-linux-portable.sh
│   ├── deploy-to-minecraft-folder.sh
│   ├── build-windows-from-linux.sh
│   ├── build-all-platforms-linux.sh
│   └── create-release.sh
├── README_LINUX.md
├── LINUX_SETUP.md
├── LINUX_QUICKSTART.md
├── BUILD_GUIDE.md
├── PROJECT_SUMMARY.md
└── RELEASE_CHECKLIST.md

Configuration

Default Settings

These are the default settings configured in the build:

ApplicationTheme=racked.ru      # Custom black/red theme
IconTheme=flat_white            # Minimal white icons
BackgroundCat=racked_ru         # Custom background image
MenuBarInsteadOfToolBar=true    # Menu bar layout
StatusBarVisible=false          # Minimal UI
TheCat=true                     # Enable background cat

User Configuration

User-specific settings are stored in prismlauncher.cfg in the launcher directory (portable mode) or in system config directory (if portable.txt is removed).

Java Configuration

The launcher auto-detects Java installations. Current settings:

AutomaticJavaDownload=true
AutomaticJavaSwitch=true
JavaVersion=21.0.7
JavaArchitecture=64

Deployment

Deploy to Current Location

Linux (Recommended):

cd /home/admin/ai-lab/_projects/_minecraft/source
bash scripts/deploy-to-minecraft-folder.sh

Manual Deployment:

# Build first
bash scripts/build-linux-portable.sh

# Backup current launcher
mv "racked.ru - minecraft" "racked.ru - minecraft-backup-$(date +%Y%m%d)"

# Copy new build
cp -r release/Racked.ru-PrismLauncher-Linux-Portable/* "racked.ru - minecraft/"

Deployment Locations

Current Production:

/home/admin/ai-lab/_projects/_minecraft/racked.ru - minecraft/

Backup Location (after deploy):

/home/admin/ai-lab/_projects/_minecraft/racked.ru - minecraft-backup-YYYYMMDD/

Release Packages

Release packages are created in:

source/release/
├── racked-prismlauncher-<version>-linux-portable.tar.gz
├── racked-prismlauncher-<version>-windows-portable.zip
└── racked-prismlauncher-<version>-macos-portable.tar.gz

To create a release:

bash scripts/create-release.sh 1.0.0

Troubleshooting

Java Requirements for Minecraft 1.21.10

Minecraft 1.21.10 requires Java 21. Your system has Java 25 which is too new.

Solution: Install Java 21 locally (no root needed)

Quick Install Script:

cd launcher/
mkdir -p java && cd java
wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.5%2B11/OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz
tar xzf OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz

Common Issues

Launcher Won't Start

Linux:

# Check missing dependencies
ldd release/Racked.ru-PrismLauncher-Linux-Portable/bin/prismlauncher

# Install Qt6 if missing
sudo dnf install qt6-qtbase

Windows:

# Ensure all DLLs are present
# Rebuild with: scripts\build-windows-portable.bat

Theme Not Loading

  1. Check prismlauncher.cfg for correct theme settings
  2. Verify theme files exist in themes/racked.ru/
  3. Rebuild launcher if files are missing

Portable Mode Not Working

  1. Ensure portable.txt exists in launcher root
  2. Check file permissions (must be readable)
  3. Delete and recreate if necessary

Build Fails on Linux

# Install dependencies
sudo dnf install cmake gcc-c++ make qt6-qtbase-devel

# Clean build
rm -rf build-linux-portable/ install-linux-portable/
bash scripts/build-linux-portable.sh

Cross-Compilation for Windows Fails

# Install MinGW
sudo dnf install mingw64-gcc-c++ mingw64-qt6-qtbase

# Verify
x86_64-w64-mingw32-g++ --version

Backup and Recovery

Backup Current Launcher:

cp -r "racked.ru - minecraft" "racked.ru - minecraft-backup-$(date +%Y%m%d)"

Restore from Backup:

rm -rf "racked.ru - minecraft"
mv "racked.ru - minecraft-backup-YYYYMMDD" "racked.ru - minecraft"

Preserve Data: Before any deployment, backup:

  • instances/ folder (your Minecraft instances)
  • prismlauncher.cfg (your settings)
  • Any custom mods or resource packs

Future Work

Planned Improvements

1. Automatic Updates

  • Implement update checker
  • Create update script
  • Add update notifications

2. Custom Branding

  • Custom launcher icon
  • Custom splash screen
  • Custom about dialog
  • Branded installer (optional)

3. Performance Optimization

  • Further reduce binary size
  • Optimize startup time
  • Reduce memory footprint

4. Distribution

  • Upload to racked.ru website
  • Create GitHub releases
  • Set up auto-update server
  • Package for Linux distros (Flatpak, AppImage)

5. Documentation

  • User guide
  • Mod installation guide
  • Server connection guide
  • Video tutorial

Known Limitations

  1. macOS Builds: Cannot cross-compile from Linux easily

    • Solution: Build natively on macOS
  2. Windows Builds: Require MinGW or native Windows

    • Currently supports cross-compilation from Linux
  3. Size: Still includes full Qt6 framework

    • ~100-150MB minimum due to Qt dependencies
  4. Updates: Manual update process

    • Must rebuild and redeploy for updates

Wishlist

  • Custom modpack manager
  • Integrated server browser
  • Custom news feed from racked.ru
  • Integrated voice chat
  • Performance monitoring
  • Shader pack manager

Additional Resources

Documentation Files

  • README_LINUX.md - Complete Linux build guide
  • LINUX_SETUP.md - Detailed setup instructions
  • LINUX_QUICKSTART.md - Quick reference
  • BUILD_GUIDE.md - Cross-platform build guide
  • PROJECT_SUMMARY.md - Technical overview
  • RELEASE_CHECKLIST.md - Release verification

External Resources

Support

  • Issues: GitHub Issues in source
  • Discord: (Add your Discord link)
  • Website: https://racked.ru/

Quick Reference

Most Common Commands

Build from scratch:

cd /home/admin/ai-lab/_projects/_minecraft/source
bash setup-and-build.sh

Deploy to minecraft folder:

bash scripts/deploy-to-minecraft-folder.sh

Create release:

bash scripts/create-release.sh 1.0.0

Run built launcher:

cd release/Racked.ru-PrismLauncher-Linux-Portable/
./run.sh

Important Locations

Project Root:     /home/admin/ai-lab/_projects/_minecraft/
Current Launcher: /home/admin/ai-lab/_projects/_minecraft/racked.ru - minecraft/
Build System:     /home/admin/ai-lab/_projects/_minecraft/source/
Upstream Reference: /home/admin/ai-lab/prismlauncher-cracked-upstream/

Version: 1.0.0 (Initial Release)
Build Date: 2026-04-13
Maintained By: racked.ru team
License: GPL-3.0-only (based on PrismLauncher)