In diesem Post erfährst du, wie du für deinen selbst aufgesetzten Palworld-Server ein Restart-Script erstellst und einrichtest. Restarts können helfen, wenn der Palworld-Server langsam wird (schlechte Performance), immer wieder abstürzt oder nicht mehr erreichbar ist.

Dieser Guide setzt voraus, dass man sich mit Linux, Docker und Docker-Compose auskennt. Wenn du bereits einen eigenen Server mit unserem Guide aufgesetzt hast, sollten die Änderungen kein Problem für dich sein.

Restart Script ohne In-Game Warnungen

Möchtest du deinen Server einfach nur neustarten, ohne dass die Spieler eine Meldung bekommen, ist dies relativ einfach.

Script erstellen

Zuerst musst du das Restart-Script erstellen. Dazu gehst du in den Ordner, in welchem bereits deine docker-compose.yml liegt. Dort erstellst du mit nano restart-palworld.sh das Restart-Script und fügst den Code aus dem nächsten Code-Block ein.

#!/bin/bash

# Change to the directory where this script is located
cd "$(dirname "$0")"

# Stop current Docker Compose setup
docker-compose down

# Pull the latest images (not needed)
docker-compose pull

# Start Docker Compose in detached mode
docker-compose up -d

Script ausführbar machen

Anschließend führe noch chmod +x restart-palworld.sh nach dem Beenden von Nano aus, damit das Script ausführbar ist.

Script als Cronjob eintragen

Um das Script als Cronjob einzutragen, musst du 'crontab -e' ausführen. Daraufhin kannst du den Editor wählen, wobei sich für die meisten Nano empfiehlt. Für einen Restart um 21 Uhr habe ich bei mir z.B. folgende Zeile eingetragen.

0 21 * * * /root/docker-compose/palworld/restart_palworld.sh

Weißt du nicht den vollständigen Pfad zu der Datei, aber befindest dich im Ordner, in welchem die Datei liegt, kann folgender Befehl helfen:

readlink -f restart_palworld.sh

Falls du nicht weißt, welche Zeiten du für andere Restart-Zeiten deines Scripts in den Crontab eintragen musst, kann folgender Link helfen:

https://crontab.guru/

Entspricht die Zeit auf deinem Server nicht deiner Zeitzone, kannst du mit dem Befehl date die aktuelle Serverzeit herausfinden und dies dann entsprechend in deinem Crontab anpassen.

Willst du mehrere Restart-Zeiten festlegen, kannst du auch mehrere Zeilen im Crontab eintragen.

Erweitertes Script mit In-Game Warnungen

Änderungen - docker-compose.yml

Änderungen, die im Docker Compose File des Palworld Servers wichtig sind: Alle Einträge sollten entsprechend vorhanden sein und 'serverip' sowie 'adminpassword' durch deine entsprechenden Daten ersetzt werden.

    ports:
      - target: 8211 # Gamerserver port inside of the container
        published: 8211 # Gamerserver port on your host
        protocol: udp
        mode: host
      - target: 25575 # RCON port inside of the container
        published: 25575 # RCON port on your host
        protocol: tcp
        mode: host  
    environment:
      - RCON_ENABLED=true
      - RCON_PORT=25575
  rcon:
    image: outdead/rcon:latest
    entrypoint: ['/rcon', '-a', 'serverip:25575', '-p', 'adminpassword']
    profiles: ['rcon'] 

Restart-Script

#!/bin/bash

# Define a function to send broadcast messages
broadcast() {
    message=${1// /_}
    docker-compose run --rm rcon "broadcast $message"
}

# Define a function to save the game
save_game() {
    docker-compose run --rm rcon save
}

# Define a function to gracefully shut down the server
shutdown_server() {
    docker-compose run --rm rcon DoExit
}

# Change to the directory where this script is located
cd "$(dirname "$0")"

# Broadcasting restart warnings
broadcast "Server will restart in 5 minutes!"
sleep 50s

broadcast "Server will restart in 4 minutes!"
sleep 50s

broadcast "Server will restart in 3 minutes!"
sleep 50s

broadcast "Server will restart in 2 minutes!"
sleep 50s

broadcast "Server will restart in 1 minute!"
sleep 50s

# Save game and broadcast message
broadcast "Saving game and preparing for restart..."
save_game

# Gracefully shut down the server
broadcast "Shutting down the server..."
shutdown_server

# Stop current Docker Compose setup
docker-compose down

# Pull the latest images
docker-compose pull

# Start Docker Compose in detached mode
docker-compose up -d

Die Beschreibung oben ist natürlich auch für das Einrichten des erweiterten Scripts gültig. Viel Spaß mit deinem Palworld-Server :)