diff --git a/README.md b/README.md index 5c1f1d019..ce9fc6455 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ It is highly recommended you set the following environment values before startin | DISCORD_PRE_START_MESSAGE | Discord message sent when server begins to start | Server is started! | "string" | | DISCORD_PRE_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown | Server is shutting down... | "string" | | DISCORD_POST_SHUTDOWN_MESSAGE | Discord message sent when server has stopped | Server is stopped! | "string" | +| DISABLE_GENERATE_SETTINGS | Whether to automatically generate the PalWorldSettings.ini | false | true/false | *highly recommended to set diff --git a/scripts/start.sh b/scripts/start.sh index 5b07f5421..1582b6c62 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -54,9 +54,30 @@ dirExists "/palworld" || exit isWritable "/palworld" || exit isExecutable "/palworld" || exit -printf "\e[0;32m*****GENERATING CONFIGS*****\e[0m\n" -./compile-settings.sh +if [ "${DISABLE_GENERATE_SETTINGS,,}" = false ]; then + printf "\e[0;32m*****GENERATING CONFIGS*****\e[0m\n" + ./compile-settings.sh +else + printf "\e[0;32m%s\e[0m\n" "*****CHECKING FOR EXISTING CONFIG*****" + + # shellcheck disable=SC2143 + if [ ! "$(grep -s '[^[:space:]]' /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini)" ]; then + + printf "\e[0;32m%s\e[0m\n" "*****GENERATING CONFIG*****" + + # Server will generate all ini files after first run. + if [ "$architecture" == "arm64" ]; then + timeout --preserve-status 15s ./PalServer-arm64.sh 1> /dev/null + else + timeout --preserve-status 15s ./PalServer.sh 1> /dev/null + fi + + # Wait for shutdown + sleep 5 + cp /palworld/DefaultPalWorldSettings.ini /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini + fi +fi cd /palworld || exit