Featured image of post 幻兽帕鲁服务器搭建

幻兽帕鲁服务器搭建

前言

幻兽帕鲁(Palworld)是一个抓宝可梦打黑工的开放世界冒险游戏,我想实现24h不间断的服务器以供朋友们随时上号可以继续建设共同的世界,不必等待房主上号。

这需要利用游戏提供的幻兽帕鲁私有服务器(Palworld Dedicated Server)工具实现。

环境

  • windows 11

  • Ubuntu 22.04

  • 服务器配置

CPURAMNetwork
4核16GUDP端口8211 端口转发

参考

服务器搭建操作

windows 11

安装官方开服软件

购买游戏后,在steam库中的工具中找到Palworld Dedicated Server并下载安装。

win_download

配置开服软件

打开安装好的开服软件,选择Play Palworld Dedicated Server启动

win_server_1

steamCMD-Windows

官网下载后,新建文件夹steamCMD作为安装目录,解压到该目录下并运行。

win_server_2

  • 下载完成后,设置游戏安装目录
1
force_install_dir D:\steamCMD\palworld
  • 登录
1
2
3
4
5
6
7
8
# 匿名登陆

login anonymous

# 或者使用账号密码登陆

login username 
# 输入密码
  • 下载更新游戏
1
2
3
4
5
6
7

app_update <app_id> [-beta <betaname>] [-betapassword <password>] [validate]

# app_id 为游戏的id,beta为测试版本,有的beta版本有密码,validate为验证文件完整性

# 以幻兽帕鲁为例
# app_update 2394010 validate

steamcmd中下载幻兽帕鲁

1
2
3
4
# steamcmd
login anonymous
app_update 2394010 validate
quit

配置开服软件

1
2
3
# windows命令行
cd D:\steamCMD\steamapps\common\PalServer
PalServer.exe

steamCMD-Ubuntu

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

# 作为root用户,创建steam用户:

sudo useradd -m steam
sudo passwd steam

# 进入其主文件夹:

sudo -u steam -s
cd /home/steam

# 如果无权限sudo
# 切到root用户,修改/etc/sudoers文件,添加一行:
# steam   ALL=(ALL:ALL) ALL

# 下载steamcmd:

sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd

## debian或找不到steamcmd,尝试一下命令

#    sudo apt update; sudo apt install software-properties-common
#
#    sudo apt-add-repository non-free
#
#    sudo dpkg --add-architecture i386
#
#    sudo apt update
#
#    sudo apt install steamcmd

## steamcmd无法运行,尝试命令:

# 查找steamcmd路径,如/usr/lib/games/steam/steamcmd
# dpkg -L steamcmd 

# 创建软链接
#  sudo ln -s /usr/lib/games/steam/steamcmd /usr/local/bin/steamcmd

# 运行steamcmd
# steamcmd
  • 其他同steamCMD-Windows操作

  • 运行./PalServer.sh启动服务器

  • 报错:.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory

1
2
3
mkdir -p ~/.steam/sdk64/
steamcmd +login anonymous +app_update 1007 +quit
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/

之后就好了,不用管报错。

linux端palsever.sh 开机自启动 始终保持运行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# /etc/systemd/system/PalWorldLihan.service
[Unit]
Description=PalWorldLihan
After=network.target

[Service]
ExecStart=/home/steam/Steam/steamapps/common/PalServer/PalServer.sh
Restart=always
WorkingDirectory=/home/steam/Steam/steamapps/common/PalServer/
User=steam
Environment=GIN_MODE=release

[Install]
WantedBy=multi-user.target

steamCMD-Docker

1
2
3
4
5
6
7
8
# wsl

# 下载并启动镜像
docker run -di --name=steamcmd cm2network/steamcmd 

docker exec -it steamcmd /bin/bash

# steamcmd.sh 位于 /home/steam/steamcmd

服务器存档及转移问题

  • 目前只在windows下steamcmd测试过,其他系统未知

存档

  • 专属服务器存档位置

[steamcmd的steamapps路径]\common\PalServer\Pal\Saved\SaveGames\0\[存档名]

  • 例如

D:\steamCMD\steamapps\common\PalServer\Pal\Saved\SaveGames\0\1865165198165165091

存档结构

1
2
3
4
5
6
.
├── Level.sav                  #地图数据
├── LevelMeta.sav
└── Players
    ├── 8HIHSUBI0000000000.sav #玩家数据(steam游戏id)
    └── 88UKBUE30000000000.sav 

配置文件

  • .\steamapps\common\PalServer\DefaultPalWorldSettings.ini文件是默认配置文件模板。

  • .\steamapps\common\PalServer\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini是服务器配置文件

  • D:\steamCMD\steamapps\common\PalServer\Pal\Binaries\Win64\steam_appid.txt是steam游戏id

服务器转移

  • 不要更改服务器配置(如密码等),否则可能会导致存档不兼容。

  • 转移服务器只需要复制替换前文提到的文件或目录:

    • [steamcmd的steamapps路径]\common\PalServer\Pal\Saved游戏存档文件夹
    • .\steamapps\common\PalServer\DefaultPalWorldSettings.ini默认配置模板
    • .\steamapps\common\PalServer\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini配置
    • D:\steamCMD\steamapps\common\PalServer\Pal\Binaries\Win64\steam_appid.txtsteam游戏id(电脑上装了steam和没装,启动steamcmd的palServer的steam_appid.txt不一样)

服务器转移 新

游戏优化

  • 这op游戏有很多问题,内存优化等

内存优化

  • 定期重启服务器(弃用)

有个大佬做了程序,仓库有教程

PalworldServerAutoRestart

使用流程大概就是下载exe,放在PalServer目录下,启动一下,会出现个config.json,跟着教程改一下,打开没问题,开着这个再开着游戏就ok了

  • 服务器内存优化(memreduct)

memreduct是一个内存优化工具,可以在windows下使用。

下载后,打开,按照默认设置,选择到80%或者自定义的值就清理。去掉清理提示。

存档自动备份

由于游戏不是很稳定,加上服务器不稳定,存档迁移等原因,最好定期备份存档。

我自己写了个每分钟备份一次存档,保留最新100次存档的小程序,后续还会继续优化。

目前只保证在winodws上的steamcmd运行的PalServer存档备份(我只测试了这个嘿嘿)。

下载地址:backupPal

潇洒人间一键仙
使用 Hugo 构建
主题 StackJimmy 设计