服务器搭建
安装steamcmd和游戏服务器
# 创建 steam 用户
useradd -m steam
# 设置密码
echo 123456|passwd --stdin steam
# 切换到steam用户
su - steam
# 进入目录
cd ~
# 创建目录
mkdir Steam
# 进入目录
cd ~/Steam
# 下载steamcmd
wget https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz --no-check-certificate
# 解压
tar -zxvf steamcmd_linux.tar.gz
# 在开始之前,您必须先安装运行 SteamCMD 所需的依赖项
# Ubuntu/Debian 64-Bit
sudo apt-get install lib32gcc1
# RedHat/CentOS
yum install glibc libstdc++
# RedHat/CentOS 64-Bit
yum install glibc.i686 libstdc++.i686
# 下载服务器
./steamcmd.sh +login anonymous +app_update 2394010 validate +quit
#进入目录
cd ~/Steam/steamapps/common/PalServer
#启动服务器
./PalServer.sh
运行steamcmd报错
- 由于 SteamCMD 是一个32位应用,所以需要32位的库。可能会出现以下错误:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
# 基于 Debian 的发行版(Ubuntu,Mint 等。)
sudo apt-get install lib32stdc++6
# 基于Red Hat 的发行版(RHEL,Fedora,CentOS 等。)
yum install glibc.i686 libstdc++.i686
启动服务器报错
- 如果启动时出现以下消息,可以通过执行以下步骤来纠正错误
如果在服务器运行后执行此过程,游戏将从角色重新创建开始。我们建议您不要在已经运行的服务器上执行此操作。
.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory
- 为了解决这个问题
mkdir -p ~/.steam/sdk64/
steamcmd +login anonymous +app_update 1007 +quit
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/
- 启动时显示一次错误。如果显示
.steam/sdk64/steamclient.so OK. (First tried local 'steamclient.so')
,没有问题。
$ ./PalServer.sh
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/ubuntu/.steam/sdk64/steamclient.so' OK. (First tried local 'steamclient.so')
防火墙拦截
如果外部访问不到端口 可能是防火墙的原因
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
setenforce 0
vi /etc/selinux/config
# 将对应行的值修改为disabled
SELINUX=disabled
常用命令
steamcmd位置
/home/steam/Steam/steamcmd.sh
切换到steam用户
su - steam
cd ~/Steam/steamapps/common/PalServer
下载并更新服务器
su - steam
cd ~/Steam
./steamcmd.sh +login anonymous +app_update 2394010 validate +quit
启动服务器
su - steam -c "nohup /home/steam/Steam/steamapps/common/PalServer/PalServer.sh &"
停止服务器
kill $(netstat -luntp|grep udp|grep PalServer|awk '{print $6}'|awk -F "/" '{print $1}')
游戏存档位置
# 存档位置
/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/SaveGames
# 创建备份目录
mkdir /backup
备份存档
cd /home/steam/Steam/steamapps/common/PalServer/Pal/Saved && tar -zcvf /backup/pal_$(date +%F).tar.gz SaveGames
配置文件位置
#参考配置文件
/home/steam/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini
#运行配置文件位置
/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
- 配置参数
我们建议您将默认设置复制到配置文件,然后仅更改必要的设置。另外,一行中间不允许换行。*请注意,有为将来更新保留的参数
参数名 | 参数解释 | 数值范围 | 默认值 |
---|---|---|---|
Difficulty | 困难程度 | None,Casual,Normal,Hard | None |
DayTimeSpeedRate | 白天流逝速度 | 0.1~5 | 1.000000 |
NightTimeSpeedRate | 夜间流逝速度 | 0.1~5 | 1.000000 |
ExpRate | 经验值倍率 | 0.1~20 | 1.000000 |
PalCaptureRate | 捕获概率倍率 | 0.5~2 | 1.000000 |
PalSpawnNumRate | 帕鲁出现数量倍率 | 0.5~3 | 1.000000 |
PalDamageRateAttack | 帕鲁攻击伤害倍率 | 0.1~5 | 1.000000 |
PalDamageRateDefense | 帕鲁承受伤害倍率 | 0.1~5 | 1.000000 |
PlayerDamageRateAttack | 玩家攻击伤害倍率 | 0.1~5 | 1.000000 |
PlayerDamageRateDefense | 玩家承受伤害倍率 | 0.1~5 | 1.000000 |
PlayerStomachDecreaceRate | 玩家饱食度降低倍率 | 0.1~5 | 1.000000 |
PlayerStaminaDecreaceRate | 玩家耐力降低倍率 | 0.1~5 | 1.000000 |
PlayerAutoHPRegeneRate | 玩家生命值自然回复倍率 | 0.1~5 | 1.000000 |
PlayerAutoHpRegeneRateInSleep | 玩家睡眠时生命回复倍率 | 0.1~5 | 1.000000 |
PalStomachDecreaceRate | 帕鲁饱食度降低倍率 | 0.1~5 | 1.000000 |
PalStaminaDecreaceRate | 帕鲁耐力降低倍率 | 0.1~5 | 1.000000 |
PalAutoHPRegeneRate | 帕鲁生命值自然回复倍率 | 0.1~5 | 1.000000 |
PalAutoHpRegeneRateInSleep | 帕鲁睡眠时生命回复倍率 | 0.1~5 | 1.000000 |
BuildObjectDamageRate | 对建筑伤害倍率 | 0.5~3 | 1.000000 |
BuildObjectDeteriorationDamageRate | 建筑物的劣化速度倍率 | 0~10 | 1.000000 |
CollectionDropRate | 道具采集量倍率 | 0.5~3 | 1.000000 |
CollectionObjectHpRate | 可采集物品生命值倍率 | 0.5~3 | 1.000000 |
CollectionObjectRespawnSpeedRate | 可采集物品刷新间隔 | 0.5~3 | 1.000000 |
EnemyDropItemRate | 道具掉落量倍率 | 0.5~3 | 1.000000 |
DeathPenalty | 死亡惩罚 | None:死亡不掉落,Item:死亡掉物品,ItemAndEquipment:死亡掉物品和装备,All:全部掉 | All |
bEnablePlayerToPlayerDamage | 启用玩家之间伤害 | True,False | False |
bEnableFriendlyFire | 启用友军伤害 | True,False | False |
bEnableInvaderEnemy | 启用侵略者敌人 | True,False | True |
bActiveUNKO | 激活UNKO 可能是Unidentified Nocturnal Nocturnal Knock-Off,可能和游戏中的据点袭击事件有关,也可能和据点内帕鲁的工作有关 | True,False | False |
bEnableAimAssistPad | 启用手柄瞄准辅助 | True,False | True |
bEnableAimAssistKeyboard | 启用键盘瞄准辅助 | True,False | False |
DropItemMaxNum | 掉落物品最大数量 | 0~5000 | 3000 |
DropItemMaxNum_UNKO | UNKO掉落物品最大数量 | - | 100 |
BaseCampMaxNum | 服务器据点最大数量 | - | 128 |
BaseCampWorkerMaxNum | 可分派至据点工作的帕鲁数量上限 | - | 15 |
DropItemAliveMaxHours | 掉落物品存活最大时间 | - | 1.000000 |
bAutoResetGuildNoOnlinePlayers | 自动重置没有在线玩家的公会 | True,False | False |
AutoResetGuildTimeNoOnlinePlayers | 自动重置没有在线玩家的公会时间 | 0~240 | 72.000000 |
GuildPlayerMaxNum | 公会人数上限 | 1~100 | 20 |
PalEggDefaultHatchingTime | 巨大化蛋孵化所需时间(小时) | 0~240 | 72.000000 |
WorkSpeedRate | 工作速度倍率 | - | 1.000000 |
bIsMultiplay | 是否为多人游戏 | True,False | False |
bIsPvP | 是否为PvP游戏 | True,False | False |
bCanPickupOtherGuildDeathPenaltyDrop | 是否能拾取其他公会死亡惩罚掉落物品 | True,False | False |
bEnableNonLoginPenalty | 启用非登录惩罚 多人服务器中,超过一定时间不上线,服务器会清理玩家存档以节约资源 | True,False | True |
bEnableFastTravel | 启用快速旅行 | True,False | True |
bIsStartLocationSelectByMap | 通过地图选择起始位置 | True,False | True |
bExistPlayerAfterLogout | 退出后是否存在玩家 | True,False | False |
bEnableDefenseOtherGuildPlayer | 启用防御其他公会玩家 | True,False | False |
CoopPlayerMaxNum | 合作玩家最大数量 | - | 4 |
ServerPlayerMaxNum | 服务器玩家最大数量 | - | 32 |
ServerName | 服务器名称 | - | Default Palworld Server |
ServerDescription | 服务器描述 | - | - |
AdminPassword | 管理员密码 | - | - |
ServerPassword | 设置服务器密码 | - | - |
PublicPort | 公共端口号 | 1~65535 | 8211 |
PublicIP | 公共IP | - | - |
RCONEnabled | 启用RCON | True,False | False |
RCONPort | RCON 的端口号 | 1~65535 | 25575 |
bShowPlayerList | 启用按下esc键显示玩家列表 | True,False | - |
Region | 地区 | - | - |
bUseAuth | 是否使用身份验证,可能是正版验证 | True,False | True |
BanListURL | 封禁列表URL | - | https://api.palworldgame.com/api/banlist.txt |
服务器命令
命令必须在游戏内或通过 RCON 执行,如果你想使用那里的命令。您需要设置
AdminPassword
并使用/AdminPassword
命令获取管理权限。
命令 | 中文解释 |
---|---|
/Shutdown {Seconds} {MessageText} | 服务器关闭后的秒数将通知您的 MessageText |
/DoExit | 强制停止服务器。 |
/Broadcast {MessageText} | 向服务器中的所有玩家发送消息 |
/KickPlayer {SteamID} | 将玩家从服务器中踢出 |
/BanPlayer {SteamID} | 从服务器禁止玩家 |
/TeleportToPlayer {SteamID} | 传送到目标玩家的当前位置 |
/TeleportToMe {SteamID} | 目标玩家传送到您当前的位置 |
/ShowPlayers | 显示所有已连接玩家的信息 |
/Info | 显示服务器信息 |
/Save | 保存世界数据 |
- 关于 SteamID
如果您有管理权限,则可以复制 SteamID。要复制,请在玩家列表上右键单击两次。
- 如何取消封禁玩家
这个时候是无法命令解禁的。不过,可以通过直接编辑文件来解除禁止。该文件位于 Steam 游戏库文件夹中的
steamapps/common/PalServer/Pal/Saved/SaveGames/banlist.txt
中。从此文件中删除您想要取消禁止的玩家的 SteamID。编辑文件后,大约需要 2 分钟才会受到影响
rcon工具
Linux
下载解压
# 下载 pst_{version}_{platform}_{arch}.tar.gz 文件并解压到 pst 目录
mkdir -p pst && tar -xzf pst_v0.5.5_linux_x86_64.tar.gz -C /usr/local/pst
配置
-
打开目录并允许可执行
cd /usr/local/pst chmod +x pst sav_cli
-
找到其中的
config.yaml
文件并按照说明修改。关于其中的
decode_path
,一般就是解压后的 pst 目录加上sav_cli
,如果不知道绝对路径,在终端执行pwd
即可web: # web 相关配置 password: "" # web 管理模式密码 port: 8080 # web 服务端口 tls: false # 是否开启 TLS cert_path: "" # Cert 文件路径 key_path: "" # Key 文件路径 rcon: # RCON 相关配置 address: "127.0.0.1:25575" # RCON 地址 password: "" # 设置的 AdminPassword timeout: 5 # 请求 RCON 超时时间,推荐 <= 5 sync_interval: 60 # 定时向 RCON 服务获取玩家在线情况的间隔,单位秒 save: # 存档文件解析相关配置 path: "/path/to/your/Pal/Saved" # 存档文件路径 decode_path: "/path/to/your/sav_cli" # 存档解析工具路径,一般和 pst 在同一目录 sync_interval: 120 # 定时从存档获取数据的间隔,单位秒,推荐 >= 120 manage: # 管理相关 kick_non_whitelist: false # 玩家不在白名单是否自动踢出
运行
./pst
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:75 | Starting PalWorld Server Tool...
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:76 | Version: Develop
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:77 | Listening on http://127.0.0.1:8080 or http://192.168.1.66:8080
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:78 | Swagger on http://127.0.0.1:8080/swagger/index.html
若需要后台运行(关闭 ssh 窗口后仍运行)
# 后台运行并将日志保存在 server.log
nohup ./pst > server.log 2>&1 &
# 查看日志
tail -f server.log
关闭后台运行
kill $(ps aux | grep 'pst' | awk '{print $2}') | head -n 1
添加到system
cat >/usr/lib/systemd/system/pst.service <<EOF
[Unit]
Description=Palworld pst server
After=network.target
After=syslog.target
[Service]
Type=simple
WorkingDirectory=/usr/local/pst
ExecStart=/usr/local/pst/pst -config /usr/local/pst/config.yaml
StandardOutput=file:/usr/local/pst/output.log
StandardError=file:/usr/local/pst/error.log
[Install]
WantedBy=multi-user.target
EOF
Windows
下载解压
解压 pst_v0.5.5_windows_x86_64.zip
到任意目录(推荐命名文件夹目录名称为 pst
)
配置
找到解压目录中的 config.yaml
文件并按照说明修改。
关于其中的 decode_path
,一般就是解压后的 pst 目录加上 sav_cli.exe
你也可以直接鼠标右键——“属性”,查看路径和文件名,再将它们拼接起来。(存档文件路径和工具路径同理)
[!WARNING] 请不要直接将复制的路径粘贴到
config.yaml
中,而是需要在所有的 '\' 前面再加一个 '\',像下面展示的一样还有比较重要的是,请确保
config.yaml
文件为 ANSI 编码,其它编码格式将会导致路径错误等问题!!
# WebUI 设置
web:
# WebUI 管理员密码
password: ""
# WebUI 访问端口
port: 8080
# 是否开启使用 HTTPS TLS 访问
tls: false
# TLS Cert 如果开启使用 HTTPS 请输入证书文件路径
cert_path: ""
# TLS Key 如果开启使用 HTTPS 请输入证书密钥文件路径
key_path: ""
# 若开启 HTTPS 访问请填写你的 HTTPS 证书绑定的域名 eg. https://yourdomain.com
public_url: ""
# RCON 相关设置
rcon:
# RCON 的地址和端口
address: "127.0.0.1:25575"
# 服务 端设置的 RCON AdminPassword
password: ""
# RCON 通信超时时间,推荐 <= 5
timeout: 5
# 定时向 RCON 服务获取玩家在线情况的间隔,单位秒
sync_interval: 60
# sav_cli Config 存档文件解析相关配置
save:
# 存档文件路径
path: "/path/to/your/Pal/Saved"
# Sav_cli Path 存档解析工具路径,一般和 pst 在同一目录
decode_path: "/path/to/your/sav_cli"
# Sav Decode Interval Sec 定时从存档获取数据的间隔,单位秒,推荐 >= 120
sync_interval: 120
# Automation Config 自动化管理相关
manage:
# 玩家不在白名单是否自动踢出
kick_non_whitelist: false
运行
这里有两种方式可以在 Windows 下运行
-
start.bat(推荐)
找到解压目录下的
start.bat
文件,双击运行 -
按下
Win + R
,输入powershell
打开 Powershell,通过cd
命令到下载的可执行文件目录.\pst.exe
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:75 | Starting PalWorld Server Tool...
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:76 | Version: Develop
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:77 | Listening on http://127.0.0.1:8080 or http://192.168.31.214:8080
2024/01/31 - 22:39:20 | INFO | palworld-server-tool/main.go:78 | Swagger on http://127.0.0.1:8080/swagger/index.html
- 看到上述界面表示成功运行,请保持窗口打开
0 条评论