Server Setup

From Valhelsia

Before Beginning

You should ensure that you are familiar with how to setup a regular (vanilla) Minecraft server. This article on the Minecraft Wiki is a good start.

A key difference between vanilla Minecraft and modded Minecraft is that you will need far more memory to host a server with Valhelsia than you normally do with a vanilla server. Please make sure your server has ample specs before continuing (usually 4-8GB), and please do not try to host a Valhelsia server on the same system that you intend to play the pack on.

Installing Java

Before you start, you will need to make sure you have Java 8 (or OpenJDK 8) 64-bit. One of the most common problems that people encounter when running a server is having 32-bit Java or having a different version to Java 8.

Windows

  • Go to AdoptOpenJDK.net.
  • Select OpenJDK 8 (LTS) as the version and HotSpot as the JVM.
  • Select Latest release if you are downloading it from a 64-bit Windows computer.
  • Otherwise, select Other platforms and change Operating System to Windows and Architecture to x64.

Ubuntu or Debian Linux

  • Run this command from the command line: sudo apt-get install openjdk-8-jre.

Note that the package might have a different name depending on the version of the distribution you are running, so you should get familiar with the `apt` command and how to manage packages on your system.

Fedora, RHEL, or CentOS Linux

  • Run this command from the command line: su -c "yum install java-1.8.0-openjdk"

Note that the package might have a different name depending on the version of the distribution you are running, so you should get familiar with the `yum` command and how to manage packages on your system.

Mac

  • Go to AdoptOpenJDK.net.
  • Select OpenJDK 8 (LTS) as the version and HotSpot as the JVM.
  • Select Latest release if you are downloading it from a 64-bit macOS computer.
  • Otherwise, select Other platforms and change Operating System to macOS and Architecture to x64.

Downloading the Server Pack

Each of our packs has a Server Pack available on CurseForge.

  • From the Valhelsia CurseForge page, select the modpack of choice.
  • Select the Files tab near the top of the page.
  • Scroll down to Additional Files and select the Download button next to the Server Pack to download the latest Server Pack.
  • If you instead wish to use a different version, scroll down to Recent Files and select the version of choice, then follow the above step for that version.

First Time Setup

  • Edit the amount of memory allocated to the server (see Allocating Memory). By default our scripts allocate the minimum amount required to run, but you should normally increase this if at all possible.
  • Launch the server via ServerStart.bat (Windows) or ServerStart.sh (Linux / Mac OS X).
  • After launching the server for the first time, it will close automatically and have created the file eula.txt.
  • Open eula.txt, read and accept the Minecraft EULA, then change eula=false to eula=true to accept the EULA.
  • Launch the server once more. This will now create a number of files and folders, including server.properties.
  • Edit the server.properties file to your liking.
    • In Valhelsia 2 and 3 you can change level-type=default to level-type=biomesoplenty to use Biomes O' Plenty world generation. Valhelsia 1 automatically uses Biomes O' Plenty world generation.
    • In Valhelsia 2 you can change level-type=default to level-type=terraforged to use TerraForged world generation.
    • In Valhelsia 3 you can change level-type=default to level-type=realistic to use Quark's Realistic World Type. Note that this world type does not contain Biomes O' Plenty biomes by default, and requires some customisation to allow them to work that is beyond the scope of this page.
    • You should always set allow-flight=false to allow-flight=true on modded Minecraft servers to prevent issues with some mods.
    • You can get an overview of the remaining server properties at the Server.properties page of the Minecraft Wiki.
  • After editing server.properties, you should delete the world folder to allow settings to take effect.
  • Launch the server one last time.
  • If you enabled the whitelist while editing server.properties, you should whitelist yourself via /whitelist add YourPlayerName.
  • You may also wish to set yourself as a server operator via /op YourPlayerName.

Port Forwarding

If you want to allow access to the server from the Internet, you will need to enable port forwarding to the server from your router. This article on the Minecraft Wiki is a good start for how to do so, but the exact method will vary depending on your router.

Pre-generating Chunks

It is a good idea to pre-generate chunks on any Minecraft server, but it is even more important in a big mod pack as a way to eliminate the lag caused by world generation by doing it in advance.

Forge includes built-in commands to handle this. The examples provided below generate 100,000 chunks in the overworld and 50,000 chunks each in The Nether and The End, in a spiral pattern around the coordinates [0,0]. For reference, an area of 100k chunks is roughly a diameter of 360 chunks, or 5760 blocks. You may want to increase the numbers further depending on the area your players are likely to explore. You should wait until the first command completes entirely before running the next command in the sequence.

/forge generate 0 0 0 100000 minecraft:overworld

/forge generate 0 0 0 50000 minecraft:the_nether

/forge generate 0 0 0 50000 minecraft:the_end

Updating to a New Release

To update a server to a new release of Valhelsia, follow the following steps:

  • Read the changelog for the new release. Some of them have extra steps or warnings that are typically important to be aware of.
  • Download the new server pack.
  • Stop the server (normally using /stop from the console).
  • Make a backup of everything.
  • Delete these folders from the old server: config, defaultconfigs, libraries, openloader, mods, kubejs (note: some versions of Valhelsia have a scripts folder instead of kubejs).
  • Delete the existing Forge jar file. The name of this file will vary depending on the release (and also varies for some hosting providers).
  • Copy the contents of the new server pack over the existing folder.
  • If you changed any of the configs, data packs, or scripts from the deleted folders, you should restore whatever files you modified.
  • Launch the server again using the same method described in First Time Setup.

Troubleshooting Lag

Firstly, please ensure that you are running the latest version of the pack before continuing. We regularly include new fixes to reported performance issues and often simply updating will be enough to help resolve lag. Next you should ensure that your server has enough memory allocated. Keep in mind that servers usually have far more chunks loaded than in single-player and so require more memory to run. This will increase further if you have a high number of players or have chunk-loaders.

Consider adding the Dynamic View mod to servers. It causes a lagging server to load fewer chunks around each player, and a server running well to load more chunks. This will naturally vary over time to try to achieve adequate performance.

If you still have lag after trying the above, you can track the cause of lag on a server by using one of the following tools:

  • Minecraft's built-in debug profiler, detailed on the Minecraft Wiki. It will generate a report that shows the percentage of tick time that each entity and block entity takes up.

You will have to take different action depending on the source of the lag. Sometimes it will be immediately obvious, such as if a specific block or entity type takes up a significant portion of the tick time. If you don't know where on your server the relevant blocks / entities are, there is a useful mod called TellMe that can help. Please read through the mod description for how to use it. Of note is the /tellme locate command, which can search for things in any loaded chunks.

If you are unsure how to proceed, you are welcome to contact us at our Discord server. We will likely need to see the results of your troubleshooting, above, so please ensure that you have completed that step before asking.