Files
palworld-server-docker/scripts/start.sh

91 lines
2.4 KiB
Bash
Raw Normal View History

#!/bin/bash
2024-01-19 18:22:08 +01:00
2024-01-27 19:49:43 -05:00
if [ "${UPDATE_ON_BOOT}" = true ]; then
printf "\e[0;32m*****STARTING INSTALL/UPDATE*****\e[0m\n"
/home/steam/steamcmd/steamcmd.sh +force_install_dir "/palworld" +login anonymous +app_update 2394010 validate +quit
fi
STARTCOMMAND=("./PalServer.sh")
2024-01-21 20:04:45 +01:00
if [ -n "${PORT}" ]; then
STARTCOMMAND+=("-port=${PORT}")
2024-01-21 20:04:45 +01:00
fi
if [ -n "${PLAYERS}" ]; then
STARTCOMMAND+=("-players=${PLAYERS}")
2024-01-21 20:04:45 +01:00
fi
2024-01-19 14:58:51 +01:00
2024-01-19 18:22:08 +01:00
if [ "${COMMUNITY}" = true ]; then
STARTCOMMAND+=("EpicApp=PalServer")
2024-01-19 18:22:08 +01:00
fi
if [ -n "${PUBLIC_IP}" ]; then
STARTCOMMAND+=("-publicip=${PUBLIC_IP}")
2024-01-19 18:22:08 +01:00
fi
if [ -n "${PUBLIC_PORT}" ]; then
STARTCOMMAND+=("-publicport=${PUBLIC_PORT}")
2024-01-19 18:22:08 +01:00
fi
2024-01-19 19:06:05 +01:00
if [ -n "${SERVER_NAME}" ]; then
STARTCOMMAND+=("-servername=${SERVER_NAME}")
2024-01-19 19:06:05 +01:00
fi
2024-01-25 21:45:05 -05:00
if [ -n "${SERVER_DESCRIPTION}" ]; then
2024-01-26 12:26:11 -05:00
STARTCOMMAND+=("-serverdescription=${SERVER_DESCRIPTION}")
2024-01-25 21:45:05 -05:00
fi
2024-01-19 18:22:08 +01:00
if [ -n "${SERVER_PASSWORD}" ]; then
STARTCOMMAND+=("-serverpassword=${SERVER_PASSWORD}")
2024-01-19 18:22:08 +01:00
fi
2024-01-19 14:58:51 +01:00
if [ -n "${ADMIN_PASSWORD}" ]; then
STARTCOMMAND+=("-adminpassword=${ADMIN_PASSWORD}")
fi
2024-01-23 20:46:30 +01:00
if [ -n "${QUERY_PORT}" ]; then
STARTCOMMAND+=("-queryport=${QUERY_PORT}")
2024-01-23 20:46:30 +01:00
fi
2024-01-19 14:58:51 +01:00
if [ "${MULTITHREADING}" = true ]; then
STARTCOMMAND+=("-useperfthreads" "-NoAsyncLoadingThread" "-UseMultithreadForDS")
fi
2024-01-19 18:22:08 +01:00
cd /palworld || exit
2024-01-22 19:12:41 +01:00
printf "\e[0;32m*****CHECKING FOR EXISTING CONFIG*****\e[0m\n"
2024-01-19 18:22:08 +01:00
2024-01-26 15:51:56 -05:00
# shellcheck disable=SC2143
if [ ! "$(grep -s '[^[:space:]]' /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini)" ]; then
2024-01-22 19:12:41 +01:00
printf "\e[0;32m*****GENERATING CONFIG*****\e[0m\n"
# Server will generate all ini files after first run.
2024-01-27 23:01:33 -05:00
timeout --preserve-status 15s ./PalServer.sh 1> /dev/null
2024-01-22 19:12:41 +01:00
# Wait for shutdown
sleep 5
cp /palworld/DefaultPalWorldSettings.ini /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
fi
2024-01-19 18:22:08 +01:00
2024-01-22 19:12:41 +01:00
if [ -n "${RCON_ENABLED}" ]; then
echo "RCON_ENABLED=${RCON_ENABLED}"
sed -i "s/RCONEnabled=[a-zA-Z]*/RCONEnabled=$RCON_ENABLED/" /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
fi
if [ -n "${RCON_PORT}" ]; then
echo "RCON_PORT=${RCON_PORT}"
sed -i "s/RCONPort=[0-9]*/RCONPort=$RCON_PORT/" /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
fi
2024-01-23 11:22:52 +01:00
# Configure RCON settings
cat >/home/steam/server/rcon.yaml <<EOL
default:
address: "127.0.0.1:${RCON_PORT}"
password: ${ADMIN_PASSWORD}
2024-01-23 11:22:52 +01:00
EOL
2024-01-22 19:12:41 +01:00
printf "\e[0;32m*****STARTING SERVER*****\e[0m\n"
echo "${STARTCOMMAND[*]}"
2024-01-27 19:49:43 -05:00
"${STARTCOMMAND[@]}"