How to Make an RLCraft Server: Forge 1.12.2, Java 8 and Pregen
Set up an RLCraft 2.9.3 server: Forge 1.12.2 on Java 8, the official server pack, the four server.properties settings it needs, and world pre-generation.
RLCraft is older than most packs you'll put on a server. It runs on Minecraft 1.12.2, Forge and Java 8, and its last release, v2.9.3, came out in June 2023. That age is behind most RLCraft server problems: current Java breaks it, current Forge doesn't exist for it, and the server needs four settings in server.properties that its author documents only in a text file inside the server pack.
This guide sets up an RLCraft server on GameServerKings from the official server pack, applies those settings, and covers pre-generating the world, which RLCraft's author recommends for any server with more than ten players.
What RLCraft 2.9.3 needs
Minecraft 1.12.2 · Forge 1.12.2-14.23.5.2860 or newer (the CurseForge page: "RLCraft v2.9 comes with and requires Forge 2860") · Java 8 · the RLCraft Server Pack 1.12.2 - Release v2.9.3 zip (334 MB) from the pack's CurseForge Additional Files.
Step 1: Get Forge 1.12.2 Running
Set the Docker Image in the Startup tab to Java 8 first, whichever route you take. Mojang's own metadata lists Java 8 as the runtime for 1.12.2, and the Pixelmon wiki, writing about the same Forge era, warns that "Newer Java versions will not work with Minecraft 1.12.2."
There are two ways to install Forge, because the panel's installer and RLCraft want slightly different Forge builds.
Route A: let the panel install Forge
- Startup tab: Framework
FORGE, Minecraft Version1.12.2. - Settings → Reinstall.
This is the simplest route, but read the build: the install script takes Forge's recommended build for the Minecraft version, and for 1.12.2 that is 14.23.5.2859, one build before RLCraft's stated minimum. The Build Number variable can't change it. Forge's changelog lists only one difference between 2859 and 2860: 2860 stops downloading one log4j library ("Don't download log4j-slf4j18-impl"). The Log4Shell fix itself arrived earlier, in 2856, so 2859 has it. We haven't yet run RLCraft on 2859, or this old Forge installer, on one of our servers. If the install fails or the pack won't start, use Route B or contact support.
Route B: upload Forge 2860 yourself
To match RLCraft's required build exactly, install Forge on your own computer and upload the result:
- Download the Forge 1.12.2-14.23.5.2860 installer from Forge's 1.12.2 downloads and run it with Install server into an empty folder.
- Upload the Forge server jar the installer created (its name starts with
forge-1.12.2-14.23.5.2860), the vanillaminecraft_serverjar and thelibraries/folder to the server root (zip them, upload, Unarchive). - In Startup, set Server Jar File to the exact filename of that Forge jar. The server now starts that jar directly.
Don't run Reinstall after Route B. The install script deletes the file named in Server Jar File and installs its own Forge build instead.
Step 2: Upload the RLCraft Server Pack
- On RLCraft's CurseForge page, open Files, click RLCraft 1.12.2 - Release v2.9.3, and download RLCraft Server Pack 1.12.2 - Release v2.9.3.zip from its Additional Files. The CurseForge app can't fetch it.
- At 334 MB it's too big for the browser uploader on most of our nodes (100 MB limit), so upload it over SFTP on port 2022 (How to upload files via SFTP).
- Unarchive it in the Files tab. It unpacks straight into the root:
mods/(182 jars),config/,resources/,structures/,scripts/, plus aserver.propertiesand a readme calledFOR SERVERS ONLY - SET THESE IN SERVER.PROPERTIES.txt. - Delete the zip.
The server pack contains no Forge jar. That's why Step 1 comes first. The options.txt, optionsof.txt and changelog files are client leftovers and do nothing on a server.
There is also an RLCraft v2.9.3 HARDCORE Server Setup file in the same Additional Files list, for servers that want the pack's hardcore rules.
Step 3: The Four server.properties Settings RLCraft Needs
The readme in the server pack is blunt about these:
| Key | Value | The readme's reason |
|---|---|---|
enable-command-block |
true |
"MUST be TRUE for villagers to spawn correctly in generated structures" |
allow-flight |
true |
"for things like mounts that fly and fairy ring, or the server will kick players using those" |
difficulty |
3 |
Hard, "the difficulty RLCraft is balanced around" |
max-tick-time |
-1 |
Large structures take a long time to generate, and this "prevents forge from thinking the server crashed and auto shutting it down" |
The pack's own server.properties already has all four, plus view-distance=10. The readme says 10 is "for full compatibility", and that you can lower it to 8 or 6 under load, "but shouldn't go below that".
It also sets level-name=World, with a capital W. If the server already had a lowercase world folder you want to keep, change level-name back to world. Otherwise the server generates a new world beside the old one. The panel rewrites server-port and server-ip on every boot, so ignore those two. The full key reference is in Minecraft server.properties.
Now start the server and watch the Console.
Step 4: Pre-generate the World
RLCraft's large structures take a long time to generate, which is why the readme sets max-tick-time=-1. The readme says: "YOU SHOULD PREGEN YOUR WORLD IF YOU PLAN TO RUN A SERVER WITH MORE THAN 10 PLAYERS". It uses the Chunk Pregenerator mod (the 1.12.2 version goes in mods/, then restart). Then type these in the panel Console:
/pregen utils setPriority pregenerator
/pregen timepertick 250
/pregen gen startradius square 0 0 b10000 That generates a 10,000-block square around 0,0. To pause automatically when anyone is online, add /pregen utils setPlayerLimit 1. Restart the server when it finishes. World Management covers world borders and why pre-generation helps.
Memory
RLCraft's page gives only a client figure: "The default 1GB of RAM that is allocated is NOT enough. Recommend allocating 3 to 4GB's of RAM." A server holds every player's surroundings at once, so start at the top of that range and add more for a group. On our servers the heap is 95% of the plan's RAM (-XX:MaxRAMPercentage=95.0), so choosing the plan sets the heap. The JVM arguments on RLCraft's page (-XX:+UseConcMarkSweepGC and so on) are for the launcher and have no effect here.
Running RLCraft Long-Term
- Don't add VanillaFix or BetterFPS. The pack page: "STOP USING VANILLAFIX AND BETTERFPS WITH RLCRAFT, THEY ARE NOT COMPATIBLE".
- Upgrading a world from 2.9 or 2.9.1c. The readme says to run
/bq_admin default loadand/bqs_loot default loadin the console, to update quests and loot tables. Back up first (How to create a backup). - Very long-running, busy servers. The readme recommends occasionally deleting
Village.datin the world folder, because it "can get too big and begin to memory leak" after months of play. Stop the server first. - Restarts are optional. The readme says 2.9+ is "MUCH better about cache and garbage collection" and frequent restarts "are no longer needed". Scheduled restarts are still an easy safety net.
Troubleshooting
Server exits immediately with a Java error. The Docker image isn't Java 8. Change it and start again. No reinstall needed.
Villages have no villagers. enable-command-block was false when those chunks generated. Set it to true. The setting only affects structures generated after the change.
Players riding flying mounts get kicked. allow-flight is false.
The server "crashes" during exploration and the log mentions a tick taking too long. That's the watchdog. Set max-tick-time to -1, as the readme says, and pre-generate.
A player can't join, with a mod-list error. They aren't on RLCraft 2.9.3, or they added client mods that also need to be on the server. See Mismatched mod channel list.
The server runs out of memory hours in. See OutOfMemoryError: Java heap space and size the plan up.
For the general modpack workflow, see How to Make a Modded Minecraft Server. For crash reports, see Reading Minecraft Server Logs and Crash Reports.
Made with 💜 by GameServerKings

Need a Minecraft server?
Deploy an instantly-provisioned Minecraft server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $4.80 /month