Minecraft

Minecraft is a game about breaking and placing blocks. At first, people built structures to protect against nocturnal monsters, but as the game grew, players worked together to create wonderful, imaginative things.

There are two separate editions of this game: Minecraft Java Edition, and Bedrock Edition. Java Edition is the original version of the game, starting development back in 2009. This edition can be played on Mac, Windows and Linux. Bedrock Edition was originally Pocket Edition, but has since been ported to different platforms. It is currently supported on Windows 10, 11 and Mobile, Amazon FireOS and FireTV, Android and iOS, Xbox One, Playstation 4, Nintendo Switch and Samsung Gear VR devices. The Bedrock Edition client is not supported on Linux officially, but Bedrock server software is available.

Java Edition Client

Installation

The Minecraft client can be installed via the minecraft-launcherAUR package. It provides the official game launcher, a script to launch it and a .desktop file. The package is officially recommended by Mojang on their website.

Firewall configuration for Client/LAN worlds

Most shared Minecraft worlds are hosted using dedicated Minecraft server. If this is how you want to host, see Server section below.

A simpler way is to allow others to join your current Minecraft game. When playing, your Minecraft client also allows others to join the game in progress. Your client automatically broadcasts the info about your game on port 4445. It will also listen for TCP connections on which other players join. This TCP listening port is picked at random every time you start Minecraft. This works well if you do not have a firewall. But if your firewall blocks incoming TCP connections, then it is very tricky to allow this random port in.

In conclusion, to allow your client to host a local LAN game, your firewall needs to allow:

  • UDP port 4445 to broadcast your game
  • random incoming TCP port

See for more information.

Bedrock Edition Server

Installation

The Bedrock Minecraft server can be installed via the minecraft-bedrock-serverAUR package. It provides a systemd unit file. This package creates a separate minecraft-bedrock account.

Starting the server

To start the server, you may either use systemd or run it directly from the command line. Using systemd, you may start and enable the included minecraft-bedrock-server.service. Alternatively, run the following as the minecraft-bedrock user inside the /opt/minecraft-bedrock-server directory:

$ LD_LIBRARY_PATH=. ./bedrock_server

Server Configuration

The configuration file server.properties contains the server settings and additional documentation. Most importantly, server-port determines the UDP port at which the server will listen for incoming connections. The default port is for IPv4, and 19133 for IPv6. UDP ports 43351 for IPv4 and for IPv6 are required for authentication.

Java Edition Server

Installation

The Java Edition Minecraft server can be installed via the package. It provides additional systemd unit files and includes a small control script.

Also see #Alternative servers for an overview of alternative programs allowing to host Minecraft.

Introduction

In the installation process, the user and group is introduced. Establishing a Minecraft-specific user is recommended for security reasons. By running Minecraft under an unprivileged user account, anyone who successfully exploits your Minecraft server will only get access to that user account, and not yours. However, you may safely add your user to the group and add group write permission to the directory /srv/minecraft (default) to modify Minecraft server settings. Make sure that all files in the /srv/minecraft directory are either owned by the user, or that the user has by other means read and write permissions. The server will error out if it is unable to access certain files and might even have insufficient rights to write an according error message to the log.

The package provides a systemd service and timer to take automatic backups. By default, the backups are located in the folder under the server root directory. Though to keep the disk footprint small only the 10 most recent backups are preserved (configurable via ). The related systemd files are minecraftd-backup.timer and . They may easily be adapted to your liking, e.g. to follow a custom backup interval.

Starting the server

To start the server, you may either use systemd or run it directly from the command line. Either way, the server is encapsulated in a tmux session which is owned by the user. Using systemd, you may start/enable the included . Alternatively, run

# minecraftd start

Accepting EULA

In order to run the Minecraft server, you must accept the EULA. This only needs to happen once after installation. The EULA file resides under after being created by the package. You will need to edit this file to state that you have agreed to the contract in order to run the server. All you need to do is change:

eula=false

to the value true. Here is an example of accepted EULA in :

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sat Sep 11 11:11:11 PDT 2011
eula=true

Firewall Configuration for Server Worlds

There are three settings in the server.properties which determine ports that your server will use.

server-port determines the port at which the server will listen for incoming connections. The default port is .

determines the UDP port at which the server will share game info/advertising information. The default port is . Note that since the server and query ports are TCP and UDP, they can share the same port. To enable query, you also have to specify .

rcon.port determines the port if you choose to allow remote access to admin console. The default port is . To enable rcon, you also have to specify and .

You will need to allow incoming connections at least on the server-port. It is advisable to allow query and its . On the other hand, enabling remote console access is a security risk, and you should be careful of allowing it.

The above information is for the official Minecraft server. If you are using an alternative server, please see its documentation for details about its configuration.

See and for more information.

Server management script

To easily control the server, you may use the provided script. It is capable of doing basic commands like , , or attaching to the session with . Moreover, it may be used to display status information with status, backup the server world directory with , restore world data from backups with restore or run single commands in the server console with .

Tweaking

To tweak the default settings (e.g. the maximum RAM, number of threads etc.), edit the file .

For example, more advanced users may wish to enable by setting it to . This will enable the management script to suspend the server if no player was online for at least (defaults to 20 minutes). When the server is suspended, an will listen on the Minecraft port using (also called netcat or simply nc for short; needs to be installed; see Network tools#Netcat) and will immediately start the server at the first incoming connection. Though this obviously delays joining for the first time after suspension, it significantly decreases the CPU and memory usage leading to more reasonable resource and power consumption levels.

Note: If running for the first time with this option enabled, the /srv/minecraft/eula.txt file will not get created. You need to disable it to initially start.

Spigot (respectively Craftbukkit)

Spigot is the most widely-used modded Minecraft server in the world. It can be installed as spigotAUR via the AUR. The spigot PKGBUILD builds on top of the files from the package. This means that the spigot server provides its own systemd unit files, spigot script and corresponding script configuration file. The binary is called and is capable of fulfilling the same commands as . The configuration file resides under .

Be sure to read #Setup and replace with wherever you encounter it.

It is somewhat affiliated with Bukkit and has grown in popularity since Bukkit's demise.

Cuberite

Cuberite is a highly efficient and extensively moddable Minecraft server, written in C++ and Lua. It achieves much better performances than the vanilla Minecraft server, but it is not fully compatible with the latest Minecraft client (some game aspects might be missing or not working).

The Cuberite Minecraft server can be installed as a package, which provides a simple web interface by default at port with which most server operations can easily be done through the browser. The cuberite PKGBUILD builds on top of the files from the package. This means that the cuberite server provides its own systemd unit files, cuberite script and corresponding script configuration file. The binary is called and is capable of fulfilling the same commands as . The configuration file resides under .

Be sure to read #Setup and replace with wherever you encounter it.

PaperMC

PaperMC is a Minecraft server, compatible with Spigot plugins which aims to offer better performance. It can be installed via .

Be sure to read #Setup and replace with papermc wherever you encounter it.

Forge

Forge is a widely used Minecraft modding API. The following server packages are available:

  • for the latest Minecraft version (1.19.x)
  • for Minecraft 1.15.2
  • forge-server-1.14.4AUR for Minecraft 1.14.4
  • for Minecraft 1.12.2
  • for Minecraft 1.11.2
  • for Minecraft 1.10.2
  • for Minecraft 1.9.4
  • for Minecraft 1.8.9
  • for Minecraft 1.7.10
  • forge-server-1.6.4AUR for Minecraft 1.6.4

Be sure to read #Setup and replace with ( for legacy versions) wherever you encounter it.

Fabric

Fabric is a lightweight, experimental modding toolchain for Minecraft. The server package can be installed via .

Be sure to read #Setup and replace with wherever you encounter it.

Quilt

Quilt is an open-source, community-driven modding toolchain designed primarily for Minecraft. The server package can be installed via quilt-serverAUR.

Be sure to read #Setup and replace with wherever you encounter it.

It is originally forked from Fabric, meaning it is mostly backwards compatible with Fabric mods.

Additional notes

  • There are several server wrappers available providing everything from automatic backup to managing dozens of servers in parallel; refer to Server Wrappers for more information. However, the management script provided by the AUR packages should suffice most needs.
  • You might want to set up a systemd timer with e.g. mapper to generate periodic maps of your world.
  • Be sure to take periodic backups e.g. using the provided management script (see #Introduction) or plain rsync.

Minecraft mod launchers

You can launch Minecraft from different so called launchers that often include an array of mod packs to enhance one's gameplay and add mods.

  • Feed The Beast Originated as a custom challenge map in Minecraft that made heavy use of multiple tech mods and evolved into a mod package launcher.
https://www.feed-the-beast.com/ || ftbaAUR, ftba-electronAUR, feedthebeast-classicAUR

Other programs and editors

There are several programs and editors which can make your Minecraft experience a little easier to navigate. The most common of these programs are map generators. Using one of these programs will allow you to load up a Minecraft world file and render it as a 2D image, providing you with a top-down map of the world.

    • Mapcrafter A high performance Minecraft map renderer written in C++ which renders worlds to maps with an 3D-isometric perspective. You can view these maps in any webbrowser hence they are easily deployed on one's server. Mapcrafter has a simple configuration file format to specify worlds to render, different rendermodes such as day/night/cave and can also render worlds from different rotations.
    http://mapcrafter.org/[dead link 2022-09-22 ] || mapcrafter-gitAUR

      Troubleshooting

      Logs

      Screen logs are in file. If systemctl fails to start the service, inspect the screen logs.

      Journal logs are under spigot.service.

      Client or server does not start

      It might be a problem with the Java version. Different Minecraft version numbers have different JRE requirements.

      Minecraft VersionMinimum Compatible JRE Version
      < 1.178
      1.1716
      >= 1.1817

      Note that the client/server work with newer versions of Java, such as , but the Minecraft game launcher (and possibly mods) might only work with Java version 8.

      Broken fonts with MinecraftForge

      Force Unicode fonts from the language menu.

      Since you cannot read any of the menu options: in the main menu, choose the bottom-left most button is Options, second-from-the-bottom on the left side is the Language Button. From there, the Force Unicode Font button is on the bottom, on the left side.

      MultiMC unable to build

      If you are trying to install and get an error similar to: The error could be caused by Java missing, which can be fixed by installing . If the error is not fixed by that or Java was properly installed in the first place, the wrong version could still be the default environment:

      You can set the default java version using .

      Cannot change pulseaudio sink

      If you are unable to switch the audio output device (indicated by flag in the output of ), then the following openalsoft config may help

      ~/.alsoftrc
      [pulse]
      allow-moves=yes

      Audio stutters on PipeWire

      OpenAL defaults to using JACK over PipeWire's PulseAudio backend. If that causes issues for you, you can tell OpenAL to use Pulse instead:

      Alternatively, you can set the following environment variable if you do not want to set it for all applications.

      See also

      This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.