Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

RLCraft 2.9.3 is a Minecraft 1.12.2 pack that expects Java 8 and Forge 14.23.5.2860. A newer Java runtime, a changed mod, an incompatible OptiFine build, or an unprepared world is the usual reason a server fails to start, crashes, or times out. Match the server and every client to the same pack release, then work through the checks below in order.

Start with the symptom

Do not reinstall everything immediately. The wording in the console or crash report usually identifies which branch to follow. Stop the server, copy its logs and world folder, and then use this quick map.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
What you see Most likely cause First action
AppClassLoader cannot be cast to class java.net.URLClassLoader during boot Java newer than Java 8 Run the server with a Java 8 installation and confirm the selected runtime with java -version.
Forge stops while loading a mod, or the server crashes after a mod was added or updated Mod version conflict Restore the last known-good mod set, then disable suspect mods in batches while checking each new log.
Client crashes as the game opens, especially after installing OptiFine Client-side OptiFine/Forge incompatibility Remove OptiFine, launch once, and test the 1.12.2 build recommended for the pack.
Server appears frozen, runs out of memory, or times out while players explore Heavy generation of new chunks Pre-generate the intended playing area before inviting players.
Server starts but a player is rejected Different pack release, closed port, whitelist, or firewall Match 2.9.3 on both sides, then check TCP port 25565, the whitelist, and the host firewall.

Confirm the supported RLCraft installation

Use the same release everywhere

The target release for this guide is RLCraft 2.9.3. The server files and every connecting client should use that exact release, built for Minecraft 1.12.2. A client on 2.9.2d or an older 2.8 build has been reported to be rejected by servers expecting 2.9.3. That version-mismatch observation comes from a hosting note rather than an official compatibility matrix, but matching the complete release is the safest rule.

Use the matching Forge loader

RLCraft v2.9 is listed with Forge 14.23.5.2860, commonly called Forge 2860. Do not substitute a current 1.12.2 Forge build just because it has the same Minecraft version; the pack’s mods were assembled and tested against the specified loader. Record the Forge number shown in the server console and in the client’s profile before troubleshooting anything else.

Component Required target Why it matters
RLCraft 2.9.3 Server and clients must agree on the modpack release.
Minecraft 1.12.2 The pack’s mods and configuration target this game version.
Forge 14.23.5.2860 (Forge 2860) Changing the loader can alter dependency and registry behavior.
Java Java 8 Later runtimes, including commonly installed Java 17 and 21, are reported to fail during startup.

Fix Java startup errors

Recognize the Java 8 failure

The message AppClassLoader cannot be cast to class java.net.URLClassLoader is the clearest reported sign that the process is running on a runtime newer than Java 8. RLCraft 2.9.3 is an old 1.12.2/Forge pack; installing a modern Java release does not make it compatible.

Check which Java the server actually uses

  1. Open the same terminal, control-panel console, or startup environment used to launch the server.
  2. Run java -version. The output should identify a Java 8 runtime (often shown as 1.8.0_xxx), not 17, 21, or another later major version.
  3. If the result is wrong, locate the Java 8 executable and select it in the hosting panel’s runtime setting, or call it by its full path in the startup script. Installing Java 8 alongside a newer Java is fine; only this server process needs to use Java 8.
  4. Restart and read the first 30–50 console lines. A successful change should move past the class-loader error and continue into Forge and mod initialization.

On a self-hosted machine, avoid relying on the system-wide default if multiple Java versions are installed. A script that invokes the Java 8 executable explicitly is less likely to change behavior after an operating-system update. On a managed host, the equivalent is a per-server runtime selector; changing the global machine Java is unnecessary.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If one Java 8 build still fails

A 2020 Forge forum report described one Java 8 build (jre1.8.0_199) working where a later Java 8 build (jre1.8.0_261) did not. This is a single user report, not an RLCraft requirement. Treat it as a last-resort compatibility clue: first verify the path, 64-bit architecture, memory settings, and mod files before trying another Java 8 update.

Find and remove mod conflicts

Why an apparently unrelated mod can break boot

RLCraft depends on a particular set of mod versions, configuration files, and Forge behavior. Adding a convenience mod or updating one file can create duplicate classes, missing dependencies, registry conflicts, or mixin errors. The fact that a mod worked in another 1.12.2 pack does not establish that it works in RLCraft.

Use the crash report instead of guessing

  1. Stop the server and save the newest file in crash-reports, together with logs/latest.log.
  2. Search from the bottom upward for Caused by:, Failed to load, MissingModsException, Duplicate, or a named mod. The first named mod is a lead, not automatic proof; dependency errors can name the component that noticed the problem rather than the component that introduced it.
  3. List every mod changed since the last successful start. Include configuration changes and library jars, not only large gameplay mods.
  4. Restore the original pack files if possible. If you cannot, move about half of the added or updated mods out of the mods folder, restart, and compare the new log.
  5. Continue the half-at-a-time process. When one half starts successfully and the other fails, split the failing half again until the conflicting file is isolated.

Leave the identified mod out, or install the exact version intended for RLCraft 2.9.3. Do not copy a replacement jar from an unrelated pack without checking its Minecraft and Forge requirements. Back up the world before testing because a mod that adds blocks, entities, or world data may make a save unsafe to open after removal.

Handle OptiFine crashes on player computers

OptiFine is a client-side graphics addition; it is not a server repair. If the dedicated server starts but a player’s game crashes while the RLCraft profile opens, remove OptiFine first and test a clean client. A Forge forum discussion and issue reports associate some 1.12.2 OptiFine builds with startup crashes.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

One compatibility guide reports that the pack author preferred the latest OptiFine G5 build for 1.12.2 rather than E3. That recommendation is low-confidence and may depend on the rest of the client configuration, so use it as a compatibility clue rather than a universal rule:

  1. Launch RLCraft 2.9.3 without OptiFine.
  2. If the clean profile works, add only the OptiFine build documented for your exact pack distribution and test again.
  3. Do not place OptiFine in the dedicated server’s mods folder unless the pack’s server instructions explicitly require it; graphics mods belong on clients.
  4. When reporting a client crash, include the OptiFine version, Forge 2860, Java version, and the complete crash report.

Reduce world-generation freezes and out-of-memory failures

Why exploration can look like a crash

RLCraft generates complex terrain and structures. A fresh area can make the server spend a long time generating and saving chunks. During that work, the tick loop may stall, players may time out, and the process can eventually run out of memory. A host console that stops printing for a while is not by itself proof that the process has crashed.

Pre-generate before opening the server to players

  1. Make a full backup of the world and server files.
  2. Install and configure a chunk-pregeneration tool that supports Minecraft 1.12.2 and your Forge 2860 environment.
  3. Run generation while no players are connected, monitor memory and disk space, and use a conservative radius appropriate for the area you actually need.
  4. Wait for the tool to finish and verify that the server returns to a normal tick rate before inviting players.

Search results sometimes cite a radius of 10,000 blocks or a threshold of more than 10 players, but those figures could not be tied to an identified source and should not be treated as requirements. The correct radius depends on your map, storage, memory, and expected travel area. Generate incrementally rather than reserving a huge region you may never use.

When players cannot join

Check version and loader first

A server can be healthy while rejecting one client. Confirm that the player has RLCraft 2.9.3, Minecraft 1.12.2, Forge 2860, and the same mod and configuration set. A 2.9.2d or 2.8 client is not interchangeable with a 2.9.3 server.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check the network path

  • Use the server’s reachable address and TCP port 25565 unless you deliberately configured another port.
  • Allow inbound TCP 25565 in the host operating system’s firewall and in the router’s port-forwarding rule when the server is inside a home network.
  • Confirm that the server is listening on the expected interface and that a local connection works before testing from outside the network.
  • If only unlisted players are rejected, inspect whitelist.json and the whitelist setting. Add the player’s exact account name, then have them reconnect.

Timeouts usually indicate routing, firewall, overloaded world generation, or a server that is not responding quickly enough. An immediate “incompatible” or missing-mod message points back to the client/server pack comparison instead.

Allocate RAM without treating estimates as guarantees

Available guidance conflicts because it comes from hosting blogs rather than an official RLCraft specification. Use the figures as starting points, not promises of a fixed player capacity.

Reported guidance Qualification How to use it
About 6 GB before anyone joins, plus roughly 0.2 GB per online player One hosting guide’s estimate A starting point for a lightly populated server; monitor actual heap use and garbage collection.
4 GB for 1–3 players; 6 GB for 5–10; 8–10 GB for larger servers A different hosting guide’s tiered estimate Useful as a planning range, not a guaranteed requirement.
3–4 GB minimum One host’s unconfirmed CurseForge minimum Do not assume this is sufficient for exploration, pregeneration, or additional mods.

A practical starting allocation is 6 GB for a small server, provided the machine has additional memory for the operating system and Java overhead. Increase it only after observing a real memory bottleneck; assigning nearly all physical RAM to Java can make the host swap or become unresponsive. World generation, render distance, entity counts, extra mods, and simultaneous exploration matter as much as player count.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check required server settings

Accept the EULA

A standard Minecraft server will not continue until eula.txt contains eula=true after you have read and accepted Mojang’s terms. Change only that value, save the file, and start the server again. If the file is regenerated, check that you edited the copy in the directory actually used by the startup script.

Command blocks and structure generation

Search output has suggested setting enable-command-block=true in server.properties for certain structures to generate correctly. The originating source was not identified, so treat this as an unverified compatibility setting rather than a universal RLCraft requirement. Change it only after backing up the world and only if a specific structure or mod instruction calls for it.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Launcher and installation failures

Older issue reports describe 1.12.2 RLCraft startup failures in MultiMC and a CurseForge issue titled “Crashing on start up.” Those reports date from 2019–2020 and may not describe current launcher behavior. If the server itself works but a launcher fails before Minecraft opens:

  1. Create a fresh RLCraft 2.9.3 instance rather than layering files over an old profile.
  2. Assign Java 8 to that instance, not merely to another profile.
  3. Verify that the launcher downloaded the complete mod and configuration set and that the instance points to its own directory.
  4. Test without optional client additions such as OptiFine, shaders, or performance wrappers.
  5. Compare the launcher’s error log with the game’s crash-reports file; a launcher download or path error requires a different fix from a Forge mod conflict.

A safe recovery sequence

Use this order when the cause is unclear. It minimizes irreversible changes and gives each test a clear result.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Stop the server and back up the world, server.properties, eula.txt, configs, mods, and logs. Remove the accidental leading space in eula.txt if you copy this checklist literally; the actual filename is eula.txt.
  2. Run java -version in the server’s real launch environment and switch to Java 8.
  3. Confirm RLCraft 2.9.3, Minecraft 1.12.2, and Forge 14.23.5.2860 on the server and every client.
  4. Read the newest crash report and logs/latest.log; record the first named mod and the first Caused by: line.
  5. Undo recent mod or configuration changes. If necessary, bisect added mods in batches until the conflict is isolated.
  6. On clients, remove OptiFine and other optional graphics additions, then retest with a clean profile.
  7. If crashes occur during exploration, pregenerate a smaller area while no players are online and monitor memory, CPU, and disk space.
  8. For connection failures, test locally, then verify port 25565, firewall rules, forwarding, and whitelist entries.
  9. Change only one variable at a time and keep a note of the result. Restore the backup if a change damages world loading.

This process separates runtime, loader, mod, world-generation, client, and network problems instead of masking one failure with several simultaneous changes.

What to include when asking for help

A useful support request contains the exact RLCraft release, Minecraft and Forge versions, Java version output, operating system or hosting-panel runtime, allocated RAM, the complete first crash report, the relevant section of latest.log, and a list of every mod or configuration changed. State whether the failure happens during server boot, client launch, world loading, exploration, or connection. Screenshots that omit the exception text make a mod conflict much harder to identify.

With those details, the highest-probability fixes are straightforward: Java 8 for startup, Forge 2860 and RLCraft 2.9.3 everywhere, an untouched tested mod set, a compatible client OptiFine build or no OptiFine, pregenerated terrain for busy worlds, and a correctly exposed port and whitelist for players.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.