Legends Reborn: Medieval (LRM)

An immersive RPG modpack where exploration, combat, and medieval survival meet.

File Details

LRM_Server.zip

  • R
  • Feb 20, 2026
  • 250.68 MB
  • 9
  • 1.20.1
  • Fabric

File Name

LRM_Server.zip

Supported Versions

  • 1.20.1

Legends Reborn: Medieval (LRM) — Server

First Time Setup

unzip -o LRM_Server.zip
chmod +x install.sh
./install.sh install
./start.sh

The install script checks Java, installs dependencies, asks you to accept the Minecraft EULA, and lets you choose memory and performance settings. Fabric is downloaded automatically on first start.


Server Configuration

During install, you'll be asked to choose:

  • Memory allocation (minimum 8G)
  • JVM performance profile (safe / optimized / zgc)
  • GC debug logging (on / off)

Your choices are saved in server-lrm.conf. This file is NEVER overwritten by updates — your settings are always preserved.

To change settings later:

./install.sh config

Or edit server-lrm.conf directly:

Setting Values Description
MEMORY 8G, 12G, 24G... Amount of RAM for the server
JVM_PROFILE safe | optimized | zgc Performance profile
GC_LOGGING true | false Write GC logs to logs/gc-*.log

The ZGC profile automatically adapts to your Java version:

  • Java 21+ — Full ZGC with ZGenerational
  • Java 17–20 — Compatibility mode (+UnlockExperimentalVMOptions)

Screen (Server Console)

The server runs inside a screen session called lrm.

Command Action
./start.sh Start the server (auto-creates the screen)
screen -D -r lrm Attach to the server console
Ctrl+A, D Detach from the console (server keeps running)

You can safely close your SSH session after starting. The server stays up.


Stop vs Reboot

Command Action
stop Reboot — server restarts automatically after 5s
/stop Same as stop, but from in-game (requires OP)
Ctrl+C Full shutdown — server stops, screen stays open

The screen session never closes by itself, so you can always read any errors. Press Enter to close it when you're done.


Update the Server

When a new modpack version is available on CurseForge:

  1. Stop the server (Ctrl+C in console)
  2. Download the new server pack from CurseForge
  3. Extract the zip here (overwrites latest/ and install.sh)
  4. Run: ./install.sh update

The script will:

  1. Create a backup automatically (with progress indicator)
  2. Compare old vs new files
  3. Show what changed
  4. Ask for confirmation

Your world, server settings, and server-lrm.conf are never touched. The latest/ folder is cleaned up automatically after a successful update.


Restore a Backup

If something goes wrong after an update:

./install.sh restore

Pick a backup from the list. The script asks if you want to restore the world too.


Check Server Status

./install.sh status

Shows version, configuration, computed JVM values, file counts, world size, Java info, backups, and disk space.


Performance Profiles

Choose your profile during install or with ./install.sh config.

Profile GC Description
Safe G1GC Conservative, works everywhere (default)
Optimized G1GC Tuned for large modpacks (recommended)
ZGC ZGC Ultra low-latency, uses ~20% more RAM (experimental)

Profiles adapt automatically to your Java version and memory setting. JVM parameters like region size, GC pause target, and heap reserves scale dynamically based on your chosen memory allocation.

Optimized Profile — Dynamic Scaling

Heap Region Pause Target IHOP Reserve Young Gen
8G 4M 50ms 20% 20% 30–40%
12G 8M 50ms 20% 20% 30–40%
16G 8M 60ms 25% 15% 35–45%
24G 16M 80ms 30% 10% 40–50%

You don't need to understand these values — just pick your memory and profile, and the scripts handle the rest.

Run ./install.sh status to see the computed values for your config.


Debug: GC Logging

If you experience TPS drops or lag spikes, enable GC logging:

  1. Edit server-lrm.conf: set GC_LOGGING=true (or run ./install.sh config)
  2. Restart the server
  3. Check logs/gc-*.log for garbage collection details

Disable when done to keep the logs/ folder clean.


Pack Structure

install.sh              Server manager (install/update/restore/config/status)
start.sh                Server launcher (reads server-lrm.conf)
server-lrm.conf         Your server settings (RAM, profile, GC logging)
latest/                 New pack files (created when you extract the zip)
├── mods/               Mod jars
├── config/             Server configuration
├── kubejs/             KubeJS scripts & data
├── start.sh            Server launcher (updated version)
├── server.properties   Server settings (first install only)
├── server-icon.png     Server icon (first install only)
└── world/level.dat     World generation settings (first install only)

After install or update, latest/ is deleted automatically. server-lrm.conf is never created inside latest/ and never overwritten.


Common Issues

Error / Problem Solution
latest/ not found Extract the CurseForge zip here first
Server is already installed Use ./install.sh update instead
Server is currently running Ctrl+C in console to shutdown, or stop to reboot
Java is not installed Ask your admin to install OpenJDK 21
screen is not installed Ask your admin to install screen
No server-lrm.conf found Run ./install.sh config to create one
Server keeps crashing Check logs/latest.log or run ./install.sh restore
GC lag / TPS drops Try ./install.sh config → optimized or zgc profile
Need GC debug info Set GC_LOGGING=true in server-lrm.conf