There are a few good reasons to set up a small Minecraft server for your kids! One is that you can introduce online gaming in a controlled pace, another reason is that you (together with the kids of course) can decide on what world parameters and what plugins to install. Ultimately it allows the kids to learn a bit about what a server is, what it takes to run it and also administer it themselves.

What hardware do you need?

First of all do you need a computer to run the server on - and the requirements are quite modest. I’ve run the server on an ordinary laptop, a Raspberry PI and also on a Mac Mini that I use as a home server. More hardware (memory and CPU) will of course be better and will support more concurrent users, but as long as the computer runs java you should be fine for a simple set up.

Network?

If you’re going to share the server on the internet (you most likely will as you kids friends might be sitting at their home and you don’t want a 24/7 lan party at you home either) you need to make sure that there is no firewall blocking the server port, you need to open up this port in you router and also make sure that your internet provider doesn’t block the server port chosen. It’s not uncommon that ISPs are blocking the standard server port to prevent you from hosting servers, it’s easy to change this port though.

To make it easier to find your server it can be a good idea to set up a DNS name - I’m using the free option from noip.com and it works good enough. You need to manually extend it every 30 days though. Sometimes you router will have the options to set up a dynamic DNS service as well.

And software?

There are a few options when choosing the server software itself - the official server can be found here, but you are probably better of running some fork of the official version for two reasons. First they tend to be more optimized for performance and they also allow installation of various plugins that is useful when you want to extend the game. I’ve tested a few but found that PaperMC provide a server that runs well on all platforms I’ve tested.

Get started!

Java

Make sure at least version 17 of java is installed by typing java -version in your terminal of choice. If not then follow guide at https://docs.papermc.io/misc/java-install to install the correct version.

Download server

Download the latest version of Paper from https://papermc.io/downloads. As of today that would be version 1.19.2 # 119. The server is contained in a single jar-file that can be put in any directory, easiest is to create a folder “minecraft-server” in your home directory.

Run the server

Run the server by typing the following command in the terminal (replace the paper-1.19.2-119.jar file name with the version you dowloaded) in the directory where you saved the jar file.

java -Xms2G -Xmx2G -jar paper-1.19.2-119.jar --nogui

This will initiate you server and create the necessary files and then boot up the server. But it will fail and you need to do a small file edit before all works.

Look inside the file eula.txt for instructions.

#By changing the setting below to TRUE you are indicating 
your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Tue Aug 09 22:23:03 CEST 2022
eula=false

Then restart the server with the same command again and it will display something like this in the terminal.

[22:29:43 INFO]: Starting minecraft server version 1.19.2
[22:29:43 INFO]: Loading properties
[22:29:43 INFO]: This server is running Paper version git-Paper-119 (MC: 1.19.2) (Implementing API version 1.19.2-R0.1-SNAPSHOT) (Git: e6f8284)
[22:29:43 INFO]: Server Ping Player Sample Count: 12
[22:29:43 INFO]: Using 4 threads for Netty based IO
[22:29:43 INFO]: Default game type: SURVIVAL
[22:29:43 INFO]: Generating keypair
[22:29:43 INFO]: Starting Minecraft server on *:25565
[22:29:43 INFO]: Using default channel type
[22:29:43 INFO]: Paper: Using Java 11 compression from Velocity.
[22:29:43 INFO]: Paper: Using Java cipher from Velocity.
[22:29:43 INFO]: Preparing level "world"
[22:29:53 INFO]: Preparing start region for dimension minecraft:overworld
[22:29:53 INFO]: Time elapsed: 123 ms
[22:29:53 INFO]: Preparing start region for dimension minecraft:the_nether
[22:29:53 INFO]: Preparing spawn area: 0%
[22:29:53 INFO]: Preparing spawn area: 0%
[22:29:53 INFO]: Time elapsed: 237 ms
[22:29:53 INFO]: Preparing start region for dimension minecraft:the_end
[22:29:53 INFO]: Preparing spawn area: 0%
[22:29:53 INFO]: Time elapsed: 83 ms
[22:29:53 INFO]: Running delayed init tasks
[22:29:53 INFO]: Done (10.646s)! For help, type "help"
[22:29:53 INFO]: Timings Reset

The terminal is now showing the server console where you can enter server commands and see the server logs. Try typing help and then press enter to see available commands. Giving the command stop will close the server.

You can find additional info at https://docs.papermc.io/paper/getting-started#running-the-server

Play!

Connect your Minecraft client to the server on port 25565 (the default).

Configuration

Open the server.properties file that was created in the same directory you put the server in - it contains a lot of settings for your server. Read more about configuration at https://docs.papermc.io/paper/configuration