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
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Name of the admin player.When running a server, clients connecting with this name are admins.SERVER_ADMIN_NAMEYesYes
Server nameName of the server, to be displayed when players join and in the serverlist.SERVER_NAMEMinetest serverYesYes
Description of the serverDescription of server, to be displayed when players join and in the serverlist.SERVER_DESCmine hereYesYes
Domain name of the serverDomain name of server, to be displayed in the serverlist.SERVER_DOMAINgame.minetest.netYesYes
Server urlHomepage of server, to be displayed in the serverlist.SERVER_URLhttps://minetest.netYesYes
Show in server listAutomatically report to the serverlist.SERVER_ANNOUNCEtrueYesYes
Announce serverlistAnnounce to this serverlist.SERVER_LIST_URLservers.minetest.netYesYes
message of the dayMessage of the day displayed to players connecting.SERVER_MOTDYesYes
Max PlayersMaximum number of players that can be connected simultaneously.SERVER_MAX_USERS15YesNo
Server passwordNew users need to input this password.SERVER_PASSWORDYesYes
World nameThe name of the worldWORLD_NAMEworldYesYes
Game nameDefault game when creating a new world. Only change if you have already uploaded the game!DEFAULT_GAMEminetestYesYes
Community downloadDownload a community game. Needs COMMUNITY_GAME_NAME and COMMUNITY_GAME_AUTORCOMMUNITY_DOWNLOAD0YesYes
Community game nameCase sensitive! Example: https://content.minetest.net/packages/Wuzzy/mineclone2/ then this should be mineclone2COMMUNITY_GAME_NAMEYesYes
Community game authorCase-sensitive! Example: https://content.minetest.net/packages/Wuzzy/mineclone2/ then this should be WuzzyCOMMUNITY_GAME_AUTORYesYes
Game PATHMINETEST_SUBGAME_PATH/home/container/.minetest/gamesNoNo
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.minetest.net/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.minetest.net/$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!"