# Burrow — Launch Recommendations

## RAM allocation

| Tier | RAM | Notes |
|---|---|---|
| **Minimum** | 6 GB | Will work but stutters on chunk gen with shaders |
| **Recommended** | **8 GB** | Sweet spot for the 149-mod pack with Complementary shaders |
| **Generous** | 10 GB | Headroom for Distant Horizons LOD + multiplayer |
| **Cap** | 12 GB | Diminishing returns above 12 GB; G1GC pause times grow |

Set in **Prism Launcher**: instance → Edit → Settings → Java → Memory.

## JVM args (Java 21, G1GC, modded-MC tuned)

In Prism: instance → Edit → Settings → Java → JVM arguments:

```
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=130
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1HeapRegionSize=32M
-XX:G1NewSizePercent=20
-XX:G1ReservePercent=20
-XX:G1MixedGCCountTarget=3
-XX:InitiatingHeapOccupancyPercent=10
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=0
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
-Dgraal.SpeculativeGuardMovement=true
```

These are based on Aikar's flags, slightly tuned for client-side modded MC with lots of mods.

## Alternative: ZGC (lower latency, more RAM use)

If you have **16+ GB** of RAM and are running on Java 21:

```
-XX:+UseZGC
-XX:+ZGenerational
-XX:+UnlockExperimentalVMOptions
-XX:-ZUncommit
-XX:+AlwaysPreTouch
```

ZGC pause times are ~1ms regardless of heap size. Trade-off: uses more RAM (heap allocated upfront).

## Java version

**Java 21 required** for NeoForge 1.21.1. Prism auto-detects but you can verify in instance settings.

## First-launch settings (auto-applied via `config/options.txt`)

The pack ships these defaults:
- Render distance: 16 chunks
- Simulation distance: 12 chunks
- FOV: 90 (vanilla feel)
- Max FPS: 120
- GUI scale: auto
- Resource packs: Faithful 32x + Better Leaves enabled by default
- Music: 40% volume
- Particles: minimal (perf)
- Biome blend: 2 (perf)

Override anything from in-game Settings menu.

## Shader toggle

Default shader: **Complementary Reimagined** (loaded via `config/iris.properties`).
Press `O` (or open Options → Video → Shaders) to toggle / switch.

Alternate shipped shader: **BSL** (lighter perf cost).

## Multiplayer / server side

- BlueMap web map: `http://server-ip:8100` (auto-renders on first server boot)
- FTB Chunks: `/ftbchunks claim` to claim chunks
- LuckPerms: `/lp user <name> permission set <node>` for fine-grained perms
- FTB Backups 2: auto-backs up every 4 hours by default; configure in `config/ftb-backups-2/`

## Quick troubleshooting

| Symptom | Fix |
|---|---|
| Crash on launch with "Failed to load mod X" | Open Prism → Edit → Mods, disable problem mod, file an issue |
| Low FPS even with shaders off | Check ModernFix + EntityCulling enabled; lower render distance to 12 |
| World doesn't load past spawn | Distant Horizons cache; delete `.minecraft/distant_horizons_server_data/` |
| BlueMap not generating | Check server has internet (downloads tilesets first time); restart server |
| KubeJS scripts not running | Check `kubejs/server_scripts/` and reload via `/kubejs reload server_scripts` |

## Voice chat / Discord

Removed from the pack per design. If you want voice, friends use Discord/Element/Signal externally.
