run.bat
flags).Following this tutorial in its entirety can take anywhere between 1 and 3 hours. Be prepared for a long ride.
This tutorial includes a part in which you set-up and configure the server. Even if you already have a server configured, we recommend you follow the steps and chance certain configuration files in order to achieve better performance.
server
on our desktop. You can rename or move this folder at any time if you want, as long as the server is offline when you do.server
folder we created earlier.Your paper jar file will have 3 digits instead of ###. This number changes depending on what build PaperMC currently provides.
jdk-14.0.1_windows-x64_bin.exe
button and running the file from your downloads folder.server
folder we created earlier, and create a new text file called run.txt
.run.txt
file and paste in the following startup flags and runtime settings:You can copy the text by clicking in the top rigth-hand side of the codeblock.
You should replace-Xms10G
and-Xmx10G
with the amount of RAM your server can and will use. This is done by replacing the10
in both to the desired amount.
You must replacepaper-###.jar
with the name of the paper installation you have. Otherwise the file is not found and nothing will happen.
paper-###.jar
filename with the correct name, click File
, followed by Save As...
run.txt
to run.batr
and click save.
paper-###.jar
file.Once again, the###
are different depending on your paper version.
If you get the following error:The specified size exceeds the maximum representable size.
You need to either uninstall existing versions of java, such as java 8, through windows or force the command prompt to use the correct version of java by replacingjava
in yourrun.bat
file withC:\Program Files\Java\jdk-14.0.1\bin\java.exe
.
eula.txt
file.eula.txt
file and change eula=false
to eula=true
so your file looks like follows:It can take up to 10 minutes for the server to initialise. Make sure not to close the command promt window, or the opened GUI window before completion.
Timings reset
, close the console by running stop
.or by simply closing the GUI windowNever close the command prompt by simply clicking the red cross at the top. This will cause your server to not save and potentially ruin many different files, configurations and more.
server
folder should now look like this:The images before all the.json
and.yml.
files may be different for me than for you. This is because of different default file editors. I will be using Visual Studio Code for editing configuration files throughout this tutorial. You don't have to download the editor, but I do recommend it as it easily shows errors in many different files (with many different file types).
For most of the information in this section a guide on server performance was used as a reference. Credits go to the author of that piece.
sever.properties
), Bukkit (bukkit.yml
), Spigot
(spigot.yml
), and lastly Paper (paper.yml
). Consider them as layers of both optimisations and added features.Open with
, select Visual Studio Code and click open.view-distance
modifies the number of chunks a player can see in all directions. This increases server load when higher, and increases it exponentially (10 to 12 adds more server load than 8 to 10).network-compression-treshold
changes the compression for server-to-client data packets. Increasing this will make your server's internet speed more optimised (must be a power of 2).bukkit.yml
from the server
folder.autosave: 6000
this setting affects the frequency at which your server automatically saves the state of the server to actual files. Though this is notorious for causing lag on Bukkit servers, paper servers are much less affected by this process. You can increase or decrease this setting to your liking. Make sure not to make it lower than 300 because doing so might cause overlapping auto-save cycles, with possible implications as a result.If you are planning on using / are already using Multiverse to save your worlds, STOP. This plugin uses the extremely inefficient/save-all
command, which causes much higher server loads than needed.
shutdown-message: Server closed
. They do not affect server performance and therefore do not belong in this tutorial./restart
command in-game or restart
in the console. We change this to match our running script file name.tick-inactive-villagers:
setting to false
can already improve server performance severely. I recommend always preemptively using that setting.Spigot.yml
file are per-world settings. You can add the following lines at the bottom of the settings file in order to disable things like anti-xray in the end and nether. This way, you can also make mobs be less active in the end than in the overworld, increasing performance with multiple enderman farms, for example.false
, in order to reduce performance impact.With the current version of EWG (version 8.1.26) this feature is NOT supported. Therefore, thethreads:
setting must equal-1
. You can pre-generate a world first
threads:
setting to equal 2 * CPU_cores will drastically improve chunk generation and loading. When not using EWG (uninstalled the plugin entirely) you can use this setting.page-max:
pages, which prevents this issue. This also prevents a duplication glitch using a similar method as the book-banning does.world-settings:
at the bottom affect certain elements in the server that could cause lag. Many of these are case-specific and will not be mentioned here.nerf-spawner-mobs
setting found in the Spigot settings. Enables water-based mob grinders while also disabling spawned mobs' AI.If your players regularly see the fake blocks while mining (especially with server lag and/or high efficiency pickaxes), it is recommended to useengine-mode: 1
Remove- oak_planks
from thereplacement-blocks:
section, or X-Ray can target wood blocks and still find ores effectively.
true
to disable this check.NETHERRACK: 300
will make both cobblestone and nether-rack despawn after 15 seconds.disable-move-event:
to true
will drastically improve hopper performance. Whereas without this setting, hoppers will update all 5 slots every tick to check stuff, causing serious performance impact, especially on large scales.The same applies as with Spigot.yml, you can add per-world settings at the bottom of the file in the same fashion.
EWG does sometimes work with FAWE (Fast Async World Edit) or Asynchronous World Edit (World Edit Add-on), but we strongly advise against using these while pre-generating. They provide barely, if any, performance increase at the cost of stability.
A strongly recommended, yet optional, add-on is the Maiskorf's Additional Biome Pack (Guide). If you want to add these later on, make sure to download them now, before continuing using this link. The link to the guide will be re-posted at the time it should be installed.
Other options would be the Maiskorf's Mars and / or Moon Landscapes. Installing these is similarly done as to Maiskorf's Additional Biome Pack (Guide)
*/plugins
folder in your server.The Epic Nether Generator plugin comes in the form of a zip file. Extract the file and remove all that comes out except for the EpicNetherGenerator-2.#.#.jar file.
Timings reset
.Timings reset
).
Run the /mv create WorldName normal
command from in game, or without the /
from the console.
Wait for the server to notify you CONSOLE: Complete!
and stop the server.TestWorld
(if you are following along with Multiverse) or the default world
folder (if you are not).You must haveenable-command-block=true
on line 25 of theserver.properties
file.