服务器端设置
启动参数
-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
端口转发
- RCON:不转发->25575
- 连接:8888->8211 UDP
- 管理:9999->8212 TCP
软件使用
Palworld-server-protector-DotNet
用途
- 进程守护
- 钉钉通知
配置文件
{
"CmdPath": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\PalServer\\PalServer.exe",
"Parameters": "",
"BackupPath": "",
"GameDataPath": "",
"MemTarget": 90,
"RconHost": "127.0.0.1",
"RconPort": 25575,
"RconPassword": "{RconPassword}",
"RebootSeconds": 10,
"CheckSeconds": 20,
"BackupSeconds": 1800,
"WebhookUrl": "",
"IsReboot": false,
"IsStartProcess": true,
"IsParameters": false,
"IsNoti": false,
"IsSave": false,
"IsGetPlayers": true,
"IsWebhook": false,
"IsWebGetPlayers": false,
"IsWebReboot": false,
"IsWebSave": false,
"IsWebStartProcess": false,
"IsWebPlayerStatus": false,
"IsOutputMemInfo": false
}
palworld-server-toolkit
用途
- 最全面的存档管理编辑软件
- 可用于在 Palworld 世界间转移角色,允许朋友们将他们的角色转移到彼此的服务器上,而不会失去任何进度。
- 亦可以用于编辑玩家所持有的帕鲁、参数、持有物品、金钱等等数据。
- 亦可以移动玩家的公会、删除营地、删除玩家
自己写的备份脚本
用途
- 备份存档
- 上传云盘
脚本
#!/bin/bash
folder_path="/mnt/c/Program Files (x86)/Steam/steamapps/common/PalServer/Pal/Saved"
save_path="/mnt/d/game/pal_backup" # 自定义保存路径
current_time=$(date +"%Y-%m%d-%H%M")
archive_name="${save_path}/Saved_${current_time}.tar.gz"
cd "$folder_path" && tar --exclude="Crashes/*" --exclude="Config/CrashReportClient/*" -czvf "$archive_name" .
# WebDAV服务器地址
WEBDAV_URL="https://cloud.duya12345.top/dav/data/pal_bp"
# WebDAV用户名和密码
USERNAME="{USERNAME}"
PASSWORD="{PASSWORD}"
FILE_NAME=$(basename "$archive_name")
# 使用curl命令上传文件
cd "$save_path" && curl -T "$archive_name" -u "$USERNAME:$PASSWORD" "$WEBDAV_URL/$FILE_NAME"
# 删除24小时前的文件
lastday_date=$(date -d @$(($(date +%s) - 86400)) +"%Y-%m%d-%H%M")
delete_name="Saved_${lastday_date}.tar.gz"
curl -X DELETE -u "$USERNAME:$PASSWORD" "$WEBDAV_URL/$delete_name"
palworld-server-tool
用途
- 服务器远程监控
- 快速查看玩家基本信息
- 远程手动管理(t人/关服等)
配置文件
# WebUI Config相关配置
web:
# WebUI Admin Password 管理模式密码
password: "{password}"
# WebUI Port 服务端口
port: 8212
# Enable TLS 是否开启 TLS HTTPS
tls: false
# TLS Cert 如果开启使用 HTTPS 请输入证书文件路径
cert_path: ""
# TLS Key 如果开启使用 HTTPS 请输入证书密钥文件路径
key_path: ""
# TLS url for sav_cli to communicate 如果开启填入 TLS 证书绑定的地址如 https://yourdomain.com
public_url: ""
# RCON Config 相关配置
rcon:
# RCON Address Port 地址
address: "127.0.0.1:25575"
# 服务器设置的 Server AdminPassword
password: "{password}"
# 请求 RCON Timeout 超时时间,推荐 <= 5
timeout: 5
# 定时向 RCON Interval 服务获取玩家在线情况的间隔,单位秒
sync_interval: 60
# sav_cli Config 存档文件解析相关配置
save:
# Sav File Path 存档文件路径
path: "C:\\Program Files (x86)\\Steam\\steamapps\\common\\PalServer\\Pal\\Saved"
# Sav_cli Path 存档解析工具路径,一般和 pst 在同一目录
decode_path: "C:\\Users\\q7009\\Desktop\\GAME\\pst\\sav_cli.exe"
# Sav Decode Interval 定时从存档获取数据的间隔,单位秒,推荐 >= 120
sync_interval: 120
# Automation Config 自动化管理相关
manage:
# Auto Kick non-whitelisted 玩家不在白名单是否自动踢出
kick_non_whitelist: false
DDNS
用途
- 动态解析域名
脚本代码
#!/bin/bash
CF_TOKEN='{CF_TOKEN}'
CF_ZONE_ID='0ff9797b75fdb81ced7bd1d73fbb3eaa'
CF_RECORD_ID='cdf944431448f5c4ac0966c2b87fd982'
DNS='@'
DNS_RECORD_IP=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/dns_records/${CF_RECORD_ID}" \
-H "Authorization: Bearer ${CF_TOKEN}" \
-H "Content-Type: application/json" | jq -r '.result.content')
INTERNET_IP=`curl -s http://ipv4.icanhazip.com`
if [ "$INTERNET_IP" != "$DNS_RECORD_IP" ]
then
echo "Renew IP: ${DNS_RECORD_IP} to ${INTERNET_IP}"
curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/dns_records/${CF_RECORD_ID}" \
-H "Authorization: Bearer ${CF_TOKEN}" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"'${DNS}'","content":"'${INTERNET_IP}'","ttl":60,"proxied":false}'
else
echo "No change: ${INTERNET_IP}"
fi