Install a Minecraft server with CraftBukkit and Multiverse on Ubuntu Linux

By | January 13, 2022

I started with a bare bones Ubuntu 20.04 server but this should be doable on anything that supports a recent version of Java.

What are CraftBukkit and Multiverse?

Mojang provides the official Minecraft server for anyone to download. The official server doesn’t include any mechanism to add modifications. Some other people made a thing called Bukkit which is an API that provides programming hooks for people to modify the behavior of the Minecraft server. CraftBukkit combines the Bukkit API and the official Minecraft server to create a server that can be modified with plugins.

There is a related project called Spigot that makes additional optimizations to the Minecraft server to make it less demanding on your computer. You’ll want to choose Spigot over CraftBukkit if you have limited CPU or memory available to run your Minecraft server. You can make the choice in the “Download and Build CraftBukkit” stage.

Multiverse is a Bukkit plugin (actually a set of plugins) that allows you create a Minecraft server with an arbitrary number of worlds. Normally a Minecraft server has 3 “worlds” – the overworld, the nether, and the end. With Multiverse, you can add more worlds. The various Multiverse plugins allow you to control the way players interact with and among the worlds.

You can learn more about Multiverse at https://github.com/Multiverse

Set up the CraftBukkit Server

Install Java

If you don’t already have Java installed:

sudo apt install default-jdk

If for some reason you have a java version incompatibility when you start up CraftBukkit, see How to use a different Java version on Ubuntu.

Download and Build CraftBukkit

This section is based on the Setting up a server article on the bukkit wiki.

Due to code licensing issues, you can’t download CraftBukkit directly. Instead you have to build it. The Spigot project provides a convenient utility called BuildTools that will collect all the pieces and assemble the CraftBukkit server for you. You can find more information about BuildTools including additional options at www.spigotmc.org/wiki/buildtools. I generally start in my user directory (/home/myusername), but you can put this anywhere you want. To get BuildTools:

mkdir buildtools
cd buildtools
curl "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" -o BuildTools.jar

Run BuildTools to build CraftBukkit (this will take a few minutes):

java -jar BuildTools.jar --rev latest --compile craftbukkit

That should give you craftbukkit-<minecraftversion>.jar. So for Minecraft 1.18.1 you should get craftbukkit-1.18.1.jar. If you get the wrong Minecraft version, you might have to force a specific version. For example, the last time I built this with the above command, I should have gotten craftbukkit-1.18.1.jar but I got craftbukkit-1.18.jar instead. So, you might have to redo this and specify the version you want.

java -jar BuildTools.jar --rev 1.18.1 --compile craftbukkit

And if you want Spigot instead of CraftBukkit just remove the “–compile carftbukkit” part, like this:

java -jar BuildTools.jar --rev latest

Move the resulting CraftBukkit (or Spigot) jar to wherever you want your server files and then move to that directory. I put mine in /home/myusername/minecraft. So do:

mv craftbukkit-<version>.jar /home/myusername/minecraft
cd /home/myusername/minecraft

Create a file called craftbukkit.sh with the following contents (this is directly from Setting up a server):

#!/bin/sh
BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
java -jar craftbukkit-<version>.jar

Make sure craftbukkit.sh is in the same directory as your craftbukkit or spigot jar and the “craftbukkit-<version>.jar” on the last line is the exact name of your jar file (So something like craftbukkit-1.18.1.jar or spigot-1.18.1.jar). Make craftbukkit.sh executable and run it to start the server:

chmod +x craftbukkit.sh
./craftbukkit.sh

The server will fail to start because you haven’t agreed to the EULA. The script will have created a file called eula.txt. If you agree to the Minecraft EULA you can change eula=false to eula=true in eula.txt. You can edit the file in your favorite text editor or just do:

sed -i 's/eula=false/eula=true/g' eula.txt

Now start the server again:

./craftbukkit.sh

You should now have a working server. Make sure you can connect to the server. If you can’t you might have to troubleshoot your network or firewall setup. I’m going to call that outside the scope of this article for now. Once you are sure you can join the server, it’s time to install the plugins.

Before continuing, stop the server with the “stop” command at the server console.

Install the Multiverse plugins (and also LuckPerms)

I’m going to install the following plugins:

  • Multiverse Core – provides the basic Multiverse functionality to create, and manage your various worlds. Also allows you to teleport among the worlds.
  • Multiverse Portals – provides the ability to create portals among worlds.
  • Multiverse Nether Portals – allows the connection of separate nether and end worlds to each overworld.
  • Multiverse Inventories – allows different inventories and player stats for different worlds or groups of worlds.
  • LuckPerms (not part of Multiverse, and not strictly necessary) – set which players or groups of players are able to access particular worlds or use particular commands.

Plugins are packaged as java .jar files. The jar files need to go in the plugins directory inside your main Minecraft folder. The plugins directory was created when you first started CraftBukkit. Unfortunately there is no straightforward way to download the Multiverse jars from the command line (or at least I haven’t found it. If you have, let me know). You’ll have to download the files from the web browser and copy them over. If you don’t have a GUI with a web browser on your linux system (I don’t), you can use scp (secure file copy over SSH) to copy the files over. For example, if you had Multiverse-Core.jar on your local system you could copy it to your server like this:

scp Multiverse-Core.jar yourusername@server.host.name:/home/yourusername/minecraft/plugins/

You could also use some type of ftp.

To get the Multiverse plugins, go to the pages I linked in the list above and click the blue button in the top left corner that says “Download Latest File.” For LuckPerms, go to https://luckperms.net/download and get the one for Bukkit.

When you have all of the plugin jars in the plugins directory, restart the server (or start it if it’s not already running).

Start the server

A simple way to run the server and also be able to use your terminal for something else (or even log out completely, leaving the server running) is to use screen. If you don’t have screen you can install it with:

sudo apt install screen

Start a screen session named ‘minecraft’ (or whatever you want to name it). Then start your server in the screen session.

screen -S minecraft
./crafbukkit.sh

When your server is running, you can detach from the screen session using Ctrl+a d. When you want to resume the screen session and interact with the Minecraft server console, use:

screen -r minecraft

You should now have a working Minecraft server with all of the Multiverse plugins installed. If you type ‘mv’ at the Minecraft console (or /mv in game), you should get a list of available Multiverse commands.

Now that you have your server up and running, you might like to know How to Configure Minecraft Multiverse.