Server Setup
A server is a way of running Minecraft that separates the game into two parts. The server simulates the world, while a client displays and handles input/output from each player and rendering the world. The two communicate constantly to create the game; a breakdown of this communication can cause lag. Running GT:NH as a separate server is required for more than one player to access the same world, as BetterQuesting does not support LAN. A Minecraft license is not needed for the server, but each player connecting must have a valid Minecraft account. Servers also need to be online to authenticate joining players.
Pros/Cons
Servers enable multiplayer fun, can improve TPS even in a single player (SP) world on the same machine, allow chunk-loaded areas to run 24/7 for passive resource production, and supports party progress in the Quest Book. There are also downsides to server play. Having machines running constantly can cause breakdowns if maintenance isn't automated or something unforeseen happens in-game. Servers are more complicated to set up than a SP instance of GT:NH and require regular technical support (restarts, backups, updates, lag-busting, etc.) An improperly secured server can leave its host machine vulnerable to DDoS attacks, becoming a bitcoin farming bot, or accessed by 3rd parties. Renting a remote hosting service is safer, but usually carries a monthly fee. If self-hosting, a second computer is usually used to run just the server which has its own cost.
Versions
Servers can run either the Java8 or Java17+ build of GT:NH. JRE 17+ is strongly recommended unless a hybrid server setup is being deployed. Players connecting to the server can run either Java8 or Java17+ with their own launcher; it doesn't have to match the server's, nor do all players need to use the same launcher/Java to play. The version of GTNH (ex. 2.4.0) must match exactly between all clients and the server. If the server updates to a different version, all players will have to update as well to join again.
Lost?
- Check out the Lexicon
Hardware and Specs
Any computer that can run Java8+ can, in theory, be used as a modded Minecraft server. Re-purposing an old machine as a server is a common choice with practical benefits. The most important specs for decent performance will be single thread CPU frequency (Minecraft does not take advantage of multi-core threading), sufficient RAM and lots of storage space. For residential remote hosts, internet connection upload speed will be the limiting factor as both upload and download are used equally for a server. The closer the client(s) and server are to each other, the lower the latency and generally the better the connection will be.
Recommended Minimum:
- i3/i5 or better processor
- 6GB of RAM +0.5GB per extra player (early game)
- 6GB of RAM +1GB per extra player (~UV tier+)
- 20GB+ storage. Platter is feasible, SSD is preferred
CPUs
You can generally compare CPUs that are on the same architecture (e.g. 13th gen Intels are all largely comparable) but you can't compare across platforms (12th gen and 13th gen are different). This topic also gets even more complicated now that Intel is adopting a mixed architecture on their newer CPUs. The single-threaded benchmark results are good enough for most comparisons, paired with the understanding that more cores does not equal better performance for Minecraft.
Storage
Minimum storage needs depends on number of worlds, range of exploration and frequency of backups. Figure ~1-2GB for an early game world, more as other dimensions get explored, and another 1-2GB for the pack/server files. Each backup is going to be a similar size, so having too many of these will quickly balloon the storage requirements. A SSD is faster and will reduce load/save times for chunks and player inventories. Most of Minecraft runs in RAM and slower platter drives should still be usable if nothing better is available. The suggestions in Low End PCs can be used to help improve performance with lower end machines.
Connection Speed
Connection speeds are rated in Mb / Mbps, or megabits per second. This is not the same as MB, the more commonly known megabytes. One megabit is only 1/8th of a megabyte. Be aware of this when comparing server packages, especially with paid hosts. Companies advertise maximum upload/download rates under ideal conditions, rarely actual values which will vary based on local infrastructure and location. Utilities like https://fast.com/ can be used to check real download/upload speed. Click "Show more info" for upload.
Server Files
While the single player pack is hosted on many launchers, a repository of all releases is maintained on the gtnewhorizons.com domain. Server packs should only be downloaded from there or links in #announcements
on the official Discord.
There are two variations of the pack, both for the server and the client. ..._Server.zip
is for Java 8, _Server_Java_17_20.zip
is for Java 17+. Make sure to pick the .zip file that matches the Java version the server will be running, or it will fail.
Unless you have a reason not to, you should use the Java 17+ version as it has better garbage collection & performance on modern hardware. The only major reason not to use Java 17+ for a server is Thermos compatibility - and if you know what Thermos is, you know how to setup your own server more likely than not.
- Download the server pack from here: http://downloads.gtnewhorizons.com/ServerPacks/
- Download the client pack from here: http://downloads.gtnewhorizons.com/Multi_mc_downloads/
- Need an older client? Archive links are available in the
#announcements
channel on the GT:NH Discord - Files marked MMC or Multi_mc are also compatible with Prism launcher
- Need an older client? Archive links are available in the
- (Optional) Download Prism launcher from here: https://prismlauncher.org/download/
- (Optional) Download Java 17+ from here: https://adoptium.net/
- Get the JRE (not JDK), and make sure it matches your OS / architecture
While Java 17 is the most widely tested with New Horizons, any Java build of 17 or later should suffice. Check if any versions of Java are already installed on your machine before downloading more. Oracle's closed source Java will also work with GT:NH, if preferred.
Even though the filenames for the Java 17+ server and client packs seem to imply they're only compatible with Java versions 17 through 20, Java version 21 is also officially supported.
Setup Guides
Platform and Hosting | |
---|---|
Windows | Linux |
Note: The Linux Remote Hosting Certain contains parts that are Hetzner Cloud specific, but most parts should work with other server hosts as well. Ask the GT:NH Discord for help if you have trouble installing.
Server Update
- Choose a version. The latest stable will be highest version number linked below, and marked "stable" in the Discord
#annoucnements
channel. - Download a new server version of GTNH.
- Backup your entire server folder.
- Delete the
config
(folder JourneymapServer from config will be needed later),libraries
,mods
,resources
(if present) andscripts
(if present) folders from your server folder. e.g., on a Linux server, use the following commands:cd you_server_folder rm -r config libraries mods resources scripts
- Replace the deleted folders with the ones from the downloaded archive. Newer versions won't have
/resources/
or/scripts/
, this is normal. - Transfer any customized config settings. Use your backup as a reference. Do not just copy old
/configs/
folders over! Move your changes as necessary or you may miss out on new functionality. - Restore the JourneymapServer folder. This folder contains your world UUID inside a config file. If this file is lost, the server would generate a new map UUID and clients would lose their journeymap map data for your server.
- If you are using the Java 17+ version, then update and use these files from the downloaded archive to start the server:
lwjgl3ify-forgePatches.jar
,java9args.txt
,startserver-java9.bat
andstartserver-java9.sh
.
Servers on newer Java versions (17+) Java 17+ servers should be fully configured as downloaded. For additional instructions consult https://github.com/GTNewHorizons/lwjgl3ify#server |
Whitelisting Players
Syntax: whitelist add <playername>
Example: whitelist add shawnbyday
Server Backups
The server files do not have backups running by default. You should use your own prefered solution.
One option is ServerUtilities. While the mod is included by default, backups are turned off. You can change this in the your_instance/serverutilities/serverutilities.cfg
configuration file. There, you can also adjust the time between backups and the number of backups kept. Make sure you have enough space for the world and all its backups! If you run out of space you could corrupt your world save.
Chunk Loading
To allow chunk loading on your server, one option is to use ServerUtilities which is included in GTNH. To use the mod for that purpose you need to allow chunkclaiming and chunkloading in the your_instance/serverutilities/serverutilities.cfg
configuration file. If you do so, it is also highly recommended to turn on ranks in the same configuration file. That allows you to adjust the number of chunks your players can claim and load in your_instance/serverutilities/server/ranks.txt
.
FAQ (Frequently Asked Questions)
- How do I connect to my server?
- On the Multiplayer Game you need to add a server and the server address can be (note by default the server is set to use the default Minecraft port which is 25565):
- localhost
- 127.0.0.1
- On the Multiplayer Game you need to add a server and the server address can be (note by default the server is set to use the default Minecraft port which is 25565):
- How do I let my friends connect?
- You will need to find out what your external IP address is (you can find this using Google).
- You then need to setup port forwarding on your modem/router (this is outside the scope of this guide and requires special attention to detail for privacy and security reasons - again Google is your friend here).