Egg Repository

Pterodactyl Community Egg Repository

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.

Read Me

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.

Yolks
NameTag
Minetestghcr.io/ptero-eggs/games:minetest
Variables and Startup

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

Name of the admin player.

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

Environment Variable: SERVER_ADMIN_NAME
Default Value: changeme
User Viewable:
User Editable:
Server name

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

Environment Variable: SERVER_NAME
Default Value: Minetest server
User Viewable:
User Editable:
Description of the server

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

Environment Variable: SERVER_DESC
Default Value: mine here
User Viewable:
User Editable:
Domain name of the server

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

Environment Variable: SERVER_DOMAIN
Default Value: game.minetest.net
User Viewable:
User Editable:
Server url

Homepage of server, to be displayed in the serverlist.

Environment Variable: SERVER_URL
Default Value: https://minetest.net
User Viewable:
User Editable:
Show in server list

Automatically report to the serverlist.

Environment Variable: SERVER_ANNOUNCE
Default Value: true
User Viewable:
User Editable:
Announce serverlist

Announce to this serverlist.

Environment Variable: SERVER_LIST_URL
Default Value: servers.minetest.net
User Viewable:
User Editable:
message of the day

Message of the day displayed to players connecting.

Environment Variable: SERVER_MOTD
Default Value:
User Viewable:
User Editable:
Max Players

Maximum number of players that can be connected simultaneously.

Environment Variable: SERVER_MAX_USERS
Default Value: 15
User Viewable:
User Editable:
Server password

New users need to input this password.

Environment Variable: SERVER_PASSWORD
Default Value:
User Viewable:
User Editable:
World name

The name of the world

Environment Variable: WORLD_NAME
Default Value: world
User Viewable:
User Editable:
Game name

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

Environment Variable: DEFAULT_GAME
Default Value: minetest
User Viewable:
User Editable:
Community download

Download a community game. Needs COMMUNITY_GAME_NAME and COMMUNITY_GAME_AUTOR

Environment Variable: COMMUNITY_DOWNLOAD
Default Value: 1
User Viewable:
User Editable:
Community game name

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

Environment Variable: COMMUNITY_GAME_NAME
Default Value: minetest_game
User Viewable:
User Editable:
Community game author

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

Environment Variable: COMMUNITY_GAME_AUTOR
Default Value: Minetest
User Viewable:
User Editable:
Game PATH

Environment Variable: MINETEST_GAME_PATH
Default Value: /home/container/.minetest/games
User Viewable:
User Editable:
Install Script
#!/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!"
Installation Imageghcr.io/ptero-eggs/installers:debianInstallation Entrypointbash