Minetest

games
Report Issue

An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.

Contributors:
README

Minetest

An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.

Stopping the server

For the server to be able to stop properly you have to give the admin/console user the permission server else you will have to kill the server and no date will be saved!

Console

The console is currently bugged. It does work but the startup message is messed up.

Rewrite

A special thank you to Tealk for helping me rewrite this egg.

Docker Images (1)
Name Image
Minetest ghcr.io/ptero-eggs/games:minetest
Startup Command
luanti --server --port {{SERVER_PORT}} --gameid {{DEFAULT_GAME}} --world /home/container/.minetest/worlds/{{WORLD_NAME}} --terminal --config /home/container/.minetest/minetest.conf --logfile /home/container/server.log
Variables (16)

Name of the admin player.

When running a server, clients connecting with this name are admins.

Environment:
SERVER_ADMIN_NAME
Default:
changeme
User Viewable:
User Editable:
Rules:
required|string|max:32

Server name

Name of the server, to be displayed when players join and in the serverlist.

Environment:
SERVER_NAME
Default:
Minetest server
User Viewable:
User Editable:
Rules:
required|string|max:64

Description of the server

Description of server, to be displayed when players join and in the serverlist.

Environment:
SERVER_DESC
Default:
mine here
User Viewable:
User Editable:
Rules:
required|string|max:64

Domain name of the server

Domain name of server, to be displayed in the serverlist.

Environment:
SERVER_DOMAIN
Default:
game.minetest.net
User Viewable:
User Editable:
Rules:
required|string|

Server url

Homepage of server, to be displayed in the serverlist.

Environment:
SERVER_URL
Default:
https://minetest.net
User Viewable:
User Editable:
Rules:
required|string|

Show in server list

Automatically report to the serverlist.

Environment:
SERVER_ANNOUNCE
Default:
true
User Viewable:
User Editable:
Rules:
string|in:true,false

Announce serverlist

Announce to this serverlist.

Environment:
SERVER_LIST_URL
Default:
servers.minetest.net
User Viewable:
User Editable:
Rules:
required|string|

message of the day

Message of the day displayed to players connecting.

Environment:
SERVER_MOTD
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:128

Max Players

Maximum number of players that can be connected simultaneously.

Environment:
SERVER_MAX_USERS
Default:
15
User Viewable:
User Editable:
Rules:
required|string|min:0|max:65535

Server password

New users need to input this password.

Environment:
SERVER_PASSWORD
Default:
None
User Viewable:
User Editable:
Rules:
nullable|string|max:64

World name

The name of the world

Environment:
WORLD_NAME
Default:
world
User Viewable:
User Editable:
Rules:
required|string|max:32

Game name

Default game when creating a new world. Only change if you have already uploaded the game!

Environment:
DEFAULT_GAME
Default:
minetest
User Viewable:
User Editable:
Rules:
required|string|max:32

Community download

Download a community game. Needs COMMUNITY_GAME_NAME and COMMUNITY_GAME_AUTOR

Environment:
COMMUNITY_DOWNLOAD
Default:
1
User Viewable:
User Editable:
Rules:
required|boolean

Community game name

Case sensitive! Example: https://content.minetest.net/packages/Wuzzy/mineclone2/ then this should be mineclone2

Environment:
COMMUNITY_GAME_NAME
Default:
minetest_game
User Viewable:
User Editable:
Rules:
nullable|string|max:64

Community game author

Case-sensitive! Example: https://content.minetest.net/packages/Wuzzy/mineclone2/ then this should be Wuzzy

Environment:
COMMUNITY_GAME_AUTOR
Default:
Minetest
User Viewable:
User Editable:
Rules:
nullable|string|max:64

Game PATH

Environment:
MINETEST_GAME_PATH
Default:
/home/container/.minetest/games
User Viewable:
User Editable:
Rules:
required|string|max:64
Installation Script
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/bin/bash
# Minetest Installation Script
mkdir -p /mnt/server/.minetest

apt update
apt -y install curl unzip

# Create server.log
LOG_FILE=/mnt/server/server.log
if [ -f "$LOG_FILE" ]; then
  echo "Log file already exists."
else 
  echo "Log file does not exist. Making one..."
  touch "$LOG_FILE"
fi

# Create minetest.conf
CONFIG_FILE=/mnt/server/.minetest/minetest.conf
if [ -f "$CONFIG_FILE" ]; then
  echo "Config file already exists."
else 
  echo "Config file does not exist. Making one..."
  curl -sSL -o /mnt/server/.minetest/minetest.conf.example https://raw.githubusercontent.com/minetest/minetest/master/minetest.conf.example
  echo -e "## Server settings generated by pterodactyl\nname\nserver_name\nserver_description\nserver_address\nserver_url\nserver_announce\nserverlist_url\nmotd\nmax_users\nbind_address\ndefault_password\ndefault_game\n\n## Custom server settings\n" >> "$CONFIG_FILE"
fi

# Create games folder
GAMES_FOLDER=/mnt/server/.minetest/games
if [ -d "$GAMES_FOLDER" ]; then
  echo "GAMES folder already exists."
else 
  echo "GAMES folder does not exist. Making one..."
  mkdir -p $GAMES_FOLDER
fi

# Create mods folder
MOD_FOLDER=/mnt/server/.minetest/mods
if [ -d "$MOD_FOLDER" ]; then
  echo "Mods folder already exists."
else 
  echo "Mods folder does not exist. Making one..."
  mkdir -p $MOD_FOLDER
  curl -sSL -o "$MOD_FOLDER"/mods_here.txt https://raw.githubusercontent.com/minetest/minetest/master/mods/mods_here.txt
fi

# Install Gamemode
if [ "$COMMUNITY_DOWNLOAD" == "1" ]; then
    if ! [ -z "$COMMUNITY_GAME_NAME" ]; then
		  if ! [ -z "$COMMUNITY_GAME_AUTOR" ]; then
		  	echo "Download $COMMUNITY_GAME_NAME"
				D_URL=$(curl -s https://content.luanti.org/packages/$COMMUNITY_GAME_AUTOR/$COMMUNITY_GAME_NAME/ | grep -i download | grep packages | grep download | grep -o 'href=".*"' |  cut -d "=" -f2- | egrep title= | awk -F' ' '{print $1}' | tr -d '"')
				curl -sSL -o /mnt/server/.minetest/games.zip https://content.luanti.org/$D_URL >/dev/null 2>&1
				unzip -o /mnt/server/.minetest/games.zip -d /mnt/server/.minetest/games >/dev/null 2>&1
				rm /mnt/server/.minetest/games.zip
		  else
		    echo "The COMMUNITY_GAME_AUTOR variable is required to download a community game"
		  fi
    else
      echo "The COMMUNITY_GAME_NAME variable is required to download a community game"
    fi
fi

# Done!
echo "Installation was successfully completed!"