1Download the installer
neoforged.net lists NeoForge's installer files by Minecraft version: pick yours, then Click Here to Download Installer. A NeoForge version shows its Minecraft version: 26.2.0.88 is for Minecraft 26.2, and older ones leave off the 1, so 21.1.252 is for 1.21.1. On 29 Sep, NeoForge for 26.3 was still in beta, so this guide uses 26.2, the newest with a stable build.
# An empty folder for the server
mkdir neoforge-server && cd neoforge-server
curl -O https://maven.neoforged.net/releases/net/neoforged/neoforge/26.2.0.88/neoforge-26.2.0.88-installer.jar
java -jar neoforge-26.2.0.88-installer.jar --installServer
./run.sh nogui
:: In an empty folder, with the installer downloaded into it
java -jar neoforge-26.2.0.88-installer.jar --installServer
run.bat nogui
When NeoForge's Maven is offline, neoforged.net says so and gives the install command with --mirror https://maven.creeperhost.net added.
2Install it
The installer is 3.6 MB. On Java 25, ours took 5 seconds and ended with The server installed successfully. It left three files beside the libraries it downloaded, 135 MB of them:
run.shandrun.batstart the server:run.shon Linux and macOS,run.baton Windows. Each passes Java the arguments inuser_jvm_args.txtand in a file NeoForge keeps under libraries.user_jvm_args.txtis where your memory goes. It holds only comments at first, among them: A good default for a modded server is 4GB. Uncomment the next line to set it. The line is-Xmx4G.
Minecraft 26.1 and newer need Java 25, and 1.21 Java 21. The installer isn't needed again, and says You can delete this installer file now if you wish.
3Start it, and accept the EULA
Run it once
It stops with You need to agree to the EULA in order to run the server. NeoForge then adds FatalStartupException: Couldn't find Minecraft server thread. Startup likely failed, which here only means the server stopped at the EULA.
Accept the EULA
Open eula.txt, change eula=false to eula=true, and save it.
Run it again
The log says NeoForge mod loading, version 26.2.0.88, for MC 26.2. With -Xmx4G, ours was ready 11 seconds after it started, and used about 770 MB of memory with nobody on.
Players connect on port 25565: port forwarding covers the router and the firewall.
4Add mods, and what went wrong
The first start makes a mods folder. Download mods marked for NeoForge and your exact Minecraft version, from Modrinth or CurseForge, into it, with the mods each depends on, and restart. These are the three mistakes we made on purpose:
Waystones, without the two mods it needs
[16:07:45] [main/ERROR] [ne.ne.fm.st.Entrypoint/]: Failed to start FML: net.neoforged.fml.ModLoadingException: Loading errors encountered:
- Mod waystones requires balm 26.2.0.7 or above
Currently, balm is not installed
- Mod waystones requires shogi 26.2.0.5 or above
Currently, shogi is not installed
Add each mod it names, in that version or newer. With Balm and Shogi in, it started.
Balm built for 26.1, on 26.2
[16:09:05] [modloading-worker-0/ERROR] [ne.ne.fm.ja.FMLModContainer/LOADING]: Failed to create mod instance. ModID: balm, class net.blay09.mods.balm.neoforge.internal.NeoForgeBalm
java.lang.NoClassDefFoundError: net/neoforged/neoforge/event/level/BlockEvent$BreakEvent
NeoForge didn't refuse this file: it says it works on 26.1 or newer, as many mods' files do. It crashed a few seconds into the start instead, with Mod loading has failed and a crash report ending in -fml.txt. Use the file made for your version.
Sodium, a mod for players' games, on the server
java.lang.NoClassDefFoundError: org/lwjgl/Version
LWJGL draws the game on players' screens, and servers don't have it. Take graphics and menu mods off the server. A Fabric server skipped the same mod without a word: how Fabric handles it.
5What players need
Our test client, which has no mods at all, tried to join NeoForge 26.1.2.112:
| Mods on the server | A player with the plain game |
|---|---|
| FerriteCore, which only lowers the server's memory use | Joined |
| FerriteCore and Nature's Compass, which adds an item | Turned away: You are trying to connect to a server that is running NeoForge, but you are not. Please install NeoForge Version: 26.1.2.112 to connect to this server. |
So players need NeoForge in the server's version, and every mod that adds blocks, items or mobs, in the same versions. A pack file for the Modrinth App or Prism Launcher gives them all of it at once.
6The one-click way
Playkeeper runs your server on a VPS you rent, and installs NeoForge for you. Install it with one command:
curl -fsSL https://playkeeper.io/install | sudo sh
Choose NeoForge and a version
New server offers each Minecraft version's newest stable NeoForge, or its newest beta where there's no stable one yet. It checks the installer against the SHA-512 NeoForge publishes, runs it, and starts the server on the Java it needs.
Add mods from the Mods tab
It lists Modrinth's mods for NeoForge and your version, and adds the mods each needs with it. Each file is checked against Modrinth's checksum.

When a mod fails to start
The Overview names it. For our Balm crash it said Balm failed to start, and offered to update or remove its file.
Share the mods with friends
Share with friends makes one link to a page with a file for the Modrinth App or Prism Launcher. Server-only mods stay out of it.
Questions
Where do I download the NeoForge server?
From neoforged.net: download the installer for your Minecraft version and run it with --installServer. There is no separate server download.
Which NeoForge version goes with my Minecraft version?
The one that shows it: 26.2.0.88 is for Minecraft 26.2. Older versions leave off the 1, so 21.1.252 is for 1.21.1.
What does Couldn't find Minecraft server thread mean?
The server stopped before it started, and NeoForge says so. Read the lines above it: on a first start, it's the EULA.
Can players join a NeoForge server without NeoForge?
Yes, when every mod only changes the server, like FerriteCore. A mod that adds blocks or items turns them away until they install NeoForge.
How much RAM does a NeoForge server need?
NeoForge's own file suggests 4 GB for a modded server. Ours used about 770 MB with nobody on and no mods; big modpacks use much more: modpack RAM, measured.