Minetest is a voxel game engine written from scratch in C++ and licensed under the LGPL (version 2.1 or later). It has easy game and mod creation using Lua, and comes bundled with a "Minetest Game" that's similar to Minecraft. Minetest supports both survival and creative modes along with multiplayer support, dynamic lighting, and an "infinite" map generator.
Several Debian packages are available, which you can install depending on your needs.
minetest: installs the game and its data
minetest-server: only installs the server part
minetestmapper: utility to generate a map from a Minetest world
minetest-mod-*: optional third-party mods
If you run Debian Stable, you might want to install Minetest from the backports. In short, add the backports repository, then install with:
apt install -t bullseye-backports minetest
Note: Minetest servers running recent versions will often disallow older versions from joining because of incompatibilities. Mods also often set version requirements on the most recent release. For this reason, you're recommended to use the version from backports if you intend to be using mods or playing multiplayer.
After installing, you can either find it in the launcher for your desktop or open it in your terminal by running:
The location of the configuration files is ~/.minetest (created during the first start of the game).
The configuration file contains minetest.conf player preferences (key, name, server address, ...), it is possible to change these settings in the file or directly from the game.
More details on the page on the minetest wiki.
Display the in-game console with F10 key.
Some of the important in-game commands are:
/status - Get the status of the server: roster, message of the day.
/privs - View privileges.
/privs <player> - See privileges 'player'. Requires privilege 'privs'.
/grant <player> <priv> - Leave a privilege to 'player'. Requires privilege 'privs'.
/revoke <player> <priv> - Remove a privilege to 'player'. Requires privilege 'privs'.
/time <time> - Set the time of day. 0 and 24000 correspond to midnight, 12000 and 5000 at noon at dawn. (time * 1000) . Requires privilege 'time'.
/shutdown - Turn off the server.
/setting <name> = <value> - Adds or replaces a parameter in the configuration file. The parameter can not be applied properly before restarting the server.
/teleport <x>,<y>,<z> - Teleport to the indicated position. Requires privilege 'teleport'.
/grantme <priv> - Grant yourself privileges. To easily grant yourself all privileges in singleplayer, you might consider running /grantme all
List of privileges:
- Build - build/dig
- Teleport - allow command /#teleport to teleport
- Settime - authorize the /#time command to set the time
- Privs - allow commands /#grant and /#revoke to add and remove privileges
- Shout - to talk with other players.
Setting up a server
For a public internet server, it is necessary that the specified port (30000 UDP by default) is open on the internet box/gateway.
minetest-server package comes with the systemd unit files, also available as a template format if you plan to run several servers on the same host.
A Debian-minetest system user is set up during the package installation process, which is used to run minetest servers. User home is in /var/games/minetest-server.
If you use the default systemd unit, server config file is located at /etc/minetest/minetest.conf. This unit is enabled right after package installation.
systemctl status minetest-server.service
If you plan to use the templated unit, server config file will be located at /etc/minetest/$MYSERVERNAME.conf. You have to enable the corresponding unit.
systemctl enable firstname.lastname@example.org
Server files, including worlds and their configuration (users registered, world specific settings...) are saved under /var/games/minetest-server/.minetest
You can find a commented server configuration file on /usr/share/doc/minetest/minetest.conf.example.gz.
zcat /usr/share/doc/minetest/minetest.conf.example.gz > /etc/minetest/myservername.conf
Interesting parameters start with the Server / Singleplayer section, you may delete client parameters prior to that.
Install and enable mods
Install a mod
You can install the packages you want from the available mods.
If you need to install mods which aren't packaged yet in Debian (for instance, mobs_animal and mobs_monster), you can add them in the ~/.minetest/mods directory for local client installations or the /var/games/minetest-server/.minetest/mods directory for machine-wide server installations (create it if needed).
As of 5.0.0, there is also an in-game content database that lets you easily add and update mods, games, and texture packs. Mods in the content database are not necessarily freely licensed, and though curated by the game's developers prior to being published, are still third-party. Use an appropriate level of caution when installing and using items from here.
Enable a mod
You will need to enable mods after they're installed. Mod activation does not apply to your entire game, but to each specific world they're enabled on.
Once a server is started, it should create world files, and refresh them to add configuration lines with the available mods in the world.mt file.
$ cat /var/games/minetest-server/.minetest/worlds/world/world.mt creative_mode = false auth_backend = sqlite3 player_backend = sqlite3 gameid = minetest enable_damage = true backend = sqlite3 load_mod_mobs_animal = true load_mod_mobs = true load_mod_mobs_monster = false
First, stop the server running the world. Then edit this file to enable the mod, just change the value from false to true on the corresponding load_mod_* lines.