最近游玩 幻兽帕鲁,记录一下服务器搭建过程

一.拉取docker镜像

仓库地址:jammsen/docker-palworld-dedicated-server: Docker container to easily provision and manage Palworld Dedicated Server (github.com)

1
docker pull jammsen/palworld-dedicated-server

创建游戏目录给权限

1
2
3
mkdir game
chomd 755 game
chown -R 1000:1000 game/

下载仓库中的docker-compose.yml,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '3.9'
services:
palworld-dedicated-server:
#build: .
container_name: palworld-dedicated-server-three
image: jammsen/palworld-dedicated-server:latest
restart: unless-stopped
ports:
- target: 8211 # Gamerserver port inside of the container
published: 8283 # Gamerserver port on your host
protocol: udp
mode: host
- target: 25575 # RCON port inside of the container
published: 25570 # RCON port on your host
protocol: tcp
mode: host
env_file:
- ./default.env
volumes:
- ./game:/palworld

下载default.env,博主这里做了少量的修改

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Change this for logging and backup, see "Environment variables" in the README.md
TZ=Asia/Shanghai
ALWAYS_UPDATE_ON_START=true
MULTITHREAD_ENABLED=true
COMMUNITY_SERVER=true
BACKUP_ENABLED=true
BACKUP_CRON_EXPRESSION=0 * * * *
BACKUP_RETENTION_POLICY=false
BACKUP_RETENTION_AMOUNT_TO_KEEP=30
STEAMCMD_VALIDATE_FILES=true
# Change this to manual if you want to edit your configs yourself
SERVER_SETTINGS_MODE=auto
NETSERVERMAXTICKRATE=120
DIFFICULTY=None
DAYTIME_SPEEDRATE=1.000000
NIGHTTIME_SPEEDRATE=1.000000
EXP_RATE=1.000000
PAL_CAPTURE_RATE=1.000000
PAL_SPAWN_NUM_RATE=1.000000
PAL_DAMAGE_RATE_ATTACK=1.000000
PAL_DAMAGE_RATE_DEFENSE=1.000000
PLAYER_DAMAGE_RATE_ATTACK=1.000000
PLAYER_DAMAGE_RATE_DEFENSE=1.000000
PLAYER_STOMACH_DECREASE_RATE=1.000000
PLAYER_STAMINA_DECREACE_RATE=1.000000
PLAYER_AUTO_HP_REGENE_RATE=1.000000
PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000
PAL_STOMACH_DECREACE_RATE=1.000000
PAL_STAMINA_DECREACE_RATE=1.000000
PAL_AUTO_HP_REGENE_RATE=1.000000
PAL_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000
BUILD_OBJECT_DAMAGE_RATE=1.000000
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=1.000000
COLLECTION_DROP_RATE=1.000000
COLLECTION_OBJECT_HP_RATE=1.000000
COLLECTION_OBJECT_RESPAWN_SPEED_RATE=1.000000
ENEMY_DROP_ITEM_RATE=1.000000
DEATH_PENALTY=None
ENABLE_PLAYER_TO_PLAYER_DAMAGE=false
ENABLE_FRIENDLY_FIRE=false
ENABLE_INVADER_ENEMY=true
ACTIVE_UNKO=false
ENABLE_AIM_ASSIST_PAD=true
ENABLE_AIM_ASSIST_KEYBOARD=false
DROP_ITEM_MAX_NUM=3000
DROP_ITEM_MAX_NUM_UNKO=100
BASE_CAMP_MAX_NUM=128
BASE_CAMP_WORKER_MAXNUM=15
DROP_ITEM_ALIVE_MAX_HOURS=1.000000
AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=false
AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=72.000000
GUILD_PLAYER_MAX_NUM=20
PAL_EGG_DEFAULT_HATCHING_TIME=0.100000
WORK_SPEED_RATE=1.000000
IS_MULTIPLAY=false
IS_PVP=false
CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=false
ENABLE_NON_LOGIN_PENALTY=true
ENABLE_FAST_TRAVEL=true
IS_START_LOCATION_SELECT_BY_MAP=true
EXIST_PLAYER_AFTER_LOGOUT=false
ENABLE_DEFENSE_OTHER_GUILD_PLAYER=false
COOP_PLAYER_MAX_NUM=4
MAX_PLAYERS=32
SERVER_NAME=你不干帕鲁也不干
SERVER_DESCRIPTION=你不干帕鲁也不干
ADMIN_PASSWORD=www.123.com
SERVER_PASSWORD=58.216.178.10
PUBLIC_PORT=8211
PUBLIC_IP=58.216.178.10
RCON_ENABLED=true
RCON_PORT=25575
REGION=
USEAUTH=true
BAN_LIST_URL=https://api.palworldgame.com/api/banlist.txt

启动服务器

1
docker compose up -d && docker-compose logs -f

看到如下内容则启动成功
image.png

二.优化服务器

1.替换第三方优化插件

安装非官方修复,可降低一定内存占用,提高服务器帧率(1.4.0后停止更新,官方已修复)
VeroFess/PalWorld-Server-Unoffical-Fix: This is an unofficial palworld server binary distribution project that fixes some problems with the original server. (github.com)

将下载的文件,替换game/Pal/Binaries/Linux/PalServer-Linux-Test

2.提高服务器帧率限制

vi game/Pal/Saved/Config/LinuxServer/Engine.ini

添加以下代码,将帧率调整为最大120帧:

1
2
[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=120

三.新增mod

模组区分服务器模组与客户端模组.安装时请注意是服务器还是客户端模组
模组下载地址:https://www.nexusmods.com/palworld
Releases · UE4SS-RE/RE-UE4SS (github.com)

1.安装UE4SS_Xinput

将下载好并解压的的UE4SS_Xinput,放入到服务器中的game/Pal/Binaries/Linux目录下

2.上传mod

将对应的mod放到game/Pal/Content/Paks目录下

3.重启docker容器

1
docker compose restart

四.存档管理后台

项目地址:
zaigie/palworld-server-tool: 基于Level.sav存档解析和RCON优雅地用可视化界面管理幻兽帕鲁专用服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看docker容器内部地址:
docker inspect <container_id> | grep IPAddress
# docker inspect 74d8405b370d | grep IPAddress

docker run -d --name pst \
-p 8099:8080 \
-m 8192M \
-v /home/ubuntu/palworld3/game/Pal/Saved/SaveGames/0/789EB9C6EF394C7D828CBF98CD322A88:/game \
-v /home/ubuntu/palworld3/pst.db:/app/pst.db \
-e WEB__PASSWORD="管理密码" \
-e RCON__ADDRESS="172.21.0.2:25575" \
-e RCON__PASSWORD="自己的密码" \
-e SAVE__PATH="/game/Level.sav" \
-e SAVE__SYNC_INTERVAL=120 \
--network palworld3_default \
jokerwho/palworld-server-tool:latest

显示效果: