主页
文章
分类
标签
关于
搭建幻兽帕鲁服务器
发布于: 2024-1-30   更新于: 2024-1-30   收录于: liunx
文章字数: 2517   阅读时间: 6 分钟   阅读量:

使用docker搭建幻兽帕鲁服务器

提示

不知道从何开始? 看看这里吧!

这是一个 Docker 容器,可帮助您创建自己的 幻兽帕鲁 专用服务器。

此容器经测试可正常在 (Ubuntu/Debian) 和 Windows 10 上运行。

重要

目前,Xbox Game Pass/Xbox 主机玩家无法加入专用服务器。

他们只能通过邀请码加入,并且最多允许 4 人游玩。

服务器配置需求

资源最小推荐
CPU4 核4+ 核以上
内存16GB推荐 32GB 以上以稳定运行
存储空间4GB12GB

国内云服务器购买,便宜为主,推荐阿里云 腾讯云

CentOS Docker 安装

使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

可以选择国内的一些源地址:

阿里云

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

启动 Docker

$ sudo systemctl start docker

验证

通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community 。

$ sudo docker run hello-world

Ubuntu Docker 安装

安装命令如下:

 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

Compose 安装

$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Docker Compose 存放在 GitHub,不太稳定。

你可以也通过执行下面的命令,高速安装 Docker Compose。

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

将可执行权限应用于二进制文件:

$ sudo chmod +x /usr/local/bin/docker-compose

创建软链:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

$ docker-compose version
cker-compose version 1.24.1, build 4667896b

开始使用

注意,您需要配置 环境变量。

Docker Compose

您可以直接使用 docker-compose.yml 来配置您的服务器:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
services:
  palworld:
    image: thijsvanloef/palworld-server-docker:latest
    restart: unless-stopped
    container_name: palworld-server
    ports:
      - 8211:8211/udp
      - 27015:27015/udp
    environment:
      - PUID=1000
      - PGID=1000
      - PORT=8211 # 可选但推荐
      - PLAYERS=16 # 可选但推荐
      - SERVER_PASSWORD="worldofpals" # 可选但推荐
      - MULTITHREADING=true
      - RCON_ENABLED=true
      - RCON_PORT=25575
      - TZ=Asia/Shanghai
      - ADMIN_PASSWORD="adminPasswordHere"
      - COMMUNITY=false  # 如果您希望服务器显示在社区服务器页中,请启用此选项(注意配置SERVER_PASSWORD!)
      - SERVER_NAME="World of Pals"
    volumes:
      - ./palworld:/palworld/

Docker Run

将<palworld-folder>修改为您自己的路径。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
docker run -d \
    --name palworld-server \
    -p 8211:8211/udp \
    -p 27015:27015/udp \
    -v ./<palworld-folder>:/palworld/ \
    -e PUID=1000 \
    -e PGID=1000 \
    -e PORT=8211 \
    -e PLAYERS=16 \
    -e MULTITHREADING=true \
    -e RCON_ENABLED=true \
    -e RCON_PORT=25575 \
    -e TZ=Asia/Shanghai \
    -e ADMIN_PASSWORD="adminPasswordHere" \
    -e SERVER_PASSWORD="worldofpals" \
    -e COMMUNITY=false \
    -e SERVER_NAME="World of Pals" \
    --restart unless-stopped \
    thijsvanloef/palworld-server-docker:latest

环境变量

您可以使用以下值来修改服务器设置。

强烈建议您在启动服务器之前设置以下变量:

  • PLAYERS
  • PORT
  • PUID
  • PGID
变量信息默认值允许值
TZ备份服务器时所使用的时间戳。UTC参见 时区列表
PLAYERS*可同加入服务器的最大玩家数。161-32
PORT*服务器将开放的 UDP 端口。82111024-65535
PUID*服务器运行时的用户的 UID。1000!0
PGID*服务器运行时的组的 GID。1000!0
MULTITHREADING**提高多线程 CPU 环境下的性能。它最多对 4 个线程有效,分配超过这个数量的线程没有太大意义。falsetrue/false
COMMUNITY服务器是否显示在社区服务器页中(建议设置SERVER_PASSWORD)。falsetrue/false
PUBLIC_IP您可以手动指定服务器 IP 地址。若未指定,将自动检测。x.x.x.x
PUBLIC_PORT您可以手动指定服务器端口。若未指定,将自动检测。1024-65535
SERVER_NAME服务器名称。“string”
SERVER_PASSWORD为服务器设置密码。“string”
ADMIN_PASSWORD为服务器设置管理员密码。“string”
UPDATE_ON_BOOT**在启动 Docker 容器时更新/安装服务器(需要在第一次运行时启用)。truetrue/false
RCON_ENABLED***为服务器启用 RCON。truetrue/false
RCON_PORTRCON 连接端口。255751024-65535
QUERY_PORT用于与 Steam 服务器通信的查询端口。270151024-65535
  • 强烈建议设置。

** 启用该选项时,请确保您知道自己在做什么。

*** 是使用docker命令保存并关闭服务器的必要条件。

重要

环境变量中使用的布尔值区分大小写,因为它们是在 shell 脚本中使用的。

必须准确使用 true 或 false 设置它们,选项才能生效。

Game Ports

端口信息
8211游戏端口 (UDP)
27015查询端口 (UDP)
25575RCON 端口 (TCP)

使用 RCON

RCON 已在此项目中默认开启。

使用 RCON CLI 非常简单:

1
docker exec -it palworld-server rcon-cli

这将打开一个 CLI,使用 RCON 使用服务器命令。

命令列表

命令信息
Shutdown {秒} {信息}服务器将在{秒}后关闭
DoExit强制关闭服务器。
Broadcast向服务器中所有玩家发送消息。
KickPlayer {SteamID}从服务器中踢出玩家。
BanPlayer {SteamID}从服务器中封禁玩家。
TeleportToPlayer {SteamID}传送到目标玩家。
TeleportToMe {SteamID}将目标玩家传送到身边。
ShowPlayers显示所有已连接玩家信息。
Info显示服务器信息。
Save保存游戏。

请查看 官方文档 以获取所有命令。

创建备份

想要在游戏保存的时间点创建一个备份,使用以下命令:

1
docker exec palworld-server backup

执行后将在 /palworld/backups/ 文件夹中生成备份。

若启用了 RCON,服务器将在备份前进行保存。

使用 Cron 执行自动备份

服务器将在每天午夜根据 TZ 设置的时区自动备份。

设置 BACKUP_ENABLED 启用或禁用自动备份(默认启用)。

BACKUP_CRON_EXPRESSION 是一个 cron 表达式,在 Cron 表达式中,您可以定义运行作业的间隔。

提示

这个镜像使用 Supercronic 来执行 cron 任务。

查阅 supercronic 或者 Crontab Generat.

设置 BACKUP_CRON_EXPRESSION 来更改默认计划。

使用示例:如果 BACKUP_CRON_EXPRESSION 设置为 0 2 * * *,备份脚本将在每天凌晨 2:00 运行。

编辑服务器配置

使用环境变量

重要

这些环境变量/设置可能会随着游戏的测试而改变。

查阅 official webpage for the supported parameters 。

环境变量描述默认值可用值
DIFFICULTY游戏难度NoneNone,Normal,Difficult
DAYTIME_SPEEDRATE白天流逝速度 - 更小的值代表更快的白天1.000000Float
NIGHTTIME_SPEEDRATE夜晚流逝速度 - 更小的值代表更快的夜晚1.000000Float
EXP_RATE经验值获取比率1.000000Float
PAL_CAPTURE_RATE帕鲁捕捉比率1.000000Float
PAL_SPAWN_NUM_RATE帕鲁刷新比率1.000000Float
PAL_DAMAGE_RATE_ATTACK多人游戏中来自帕鲁的伤害比率1.000000Float
PAL_DAMAGE_RATE_DEFENSE多人游戏中对帕鲁的伤害比率1.000000Float
PLAYER_DAMAGE_RATE_ATTACK多人游戏中来自玩家的伤害比率1.000000Float
PLAYER_DAMAGE_RATE_DEFENSE多人游戏中对玩家的伤害比率1.000000Float
PLAYER_STOMACH_DECREASE_RATE玩家饱食度流逝比率1.000000Float
PLAYER_STAMINA_DECREASE_RATE玩家体力减少比率1.000000Float
PLAYER_AUTO_HP_REGEN_RATE玩家生命值自动恢复比率1.000000Float
PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP玩家睡眠时生命值自动恢复比率1.000000Float
PAL_STOMACH_DECREASE_RATE帕鲁饱食度流逝比率1.000000Float
PAL_STAMINA_DECREASE_RATE帕鲁体力减少比率1.000000Float
PAL_AUTO_HP_REGEN_RATE帕鲁生命值自动恢复比率1.000000Float
PAL_AUTO_HP_REGEN_RATE_IN_SLEEP帕鲁生命值自动恢复比率(在终端盒中)1.000000Float
BUILD_OBJECT_DAMAGE_RATE多人游戏中对建筑结构的伤害比率1.000000Float
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE建筑结构的自然劣化比率1.000000Float
COLLECTION_DROP_RATE多人游戏中道具掉落比率1.000000Float
COLLECTION_OBJECT_HP_RATE多人游戏中对象生命比率1.000000Float
COLLECTION_OBJECT_RESPAWN_SPEED_RATE可获取对象的刷新速度 - 更小的值代表更快的刷新速度1.000000Float
ENEMY_DROP_ITEM_RATE多人游戏中敌人掉落道具的比率1.000000Float
DEATH_PENALTY死亡惩罚
None: 没有死亡惩罚
Item: 更高几率掉落道具
ItemAndEquipment: 掉落所有道具
All: 掉落所有道具和帕鲁
AllNone,Item,ItemAndEquipment,All
ENABLE_PLAYER_TO_PLAYER_DAMAGE允许 PVP 伤害FalseBoolean
ENABLE_FRIENDLY_FIRE允许队友伤害FalseBoolean
ENABLE_INVADER_ENEMY启用营地入侵TrueBoolean
ACTIVE_UNKO启用 UNKO (?)FalseBoolean
ENABLE_AIM_ASSIST_PAD启用控制器辅助瞄准TrueBoolean
ENABLE_AIM_ASSIST_KEYBOARD启用键盘辅助瞄准FalseBoolean
DROP_ITEM_MAX_NUM世界中最大掉落物品数量3000Integer
DROP_ITEM_MAX_NUM_UNKO世界中最大 UNKO 掉落数量100Integer
BASE_CAMP_MAX_NUM最大营地数量128Integer
BASE_CAMP_WORKER_MAXNUM营地最大工位数量15Integer
DROP_ITEM_ALIVE_MAX_HOURS掉落物品移除时间1.000000Float
AUTO_RESET_GUILD_NO_ONLINE_PLAYERS无玩家在线时自动重置公会FalseBool
AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS无玩家在线时自动重置公会的时间72.000000Float
GUILD_PLAYER_MAX_NUM公会最大成员数量20Integer
PAL_EGG_DEFAULT_HATCHING_TIME孵化巨大型帕鲁蛋所需消耗时间(小时)72.000000Float
WORK_SPEED_RATE多人游戏中的工作速度比率1.000000Float
IS_MULTIPLAY启用多人游戏FalseBoolean
IS_PVP启用 PVPFalseBoolean
CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP允许玩家拾取其他公会玩家的掉落物品或死亡惩罚FalseBoolean
ENABLE_NON_LOGIN_PENALTY启用无登录惩罚TrueBoolean
ENABLE_FAST_TRAVEL启用快速旅行TrueBoolean
IS_START_LOCATION_SELECT_BY_MAP启用出生地选择TrueBoolean
EXIST_PLAYER_AFTER_LOGOUT玩家注销时是否删除玩家FalseBoolean
ENABLE_DEFENSE_OTHER_GUILD_PLAYER允许防御其他公会玩家FalseBoolean
COOP_PLAYER_MAX_NUM工会中的最大玩家数量4Integer
REGION地区String
USEAUTH使用授权验证TrueBoolean
BAN_LIST_URL使用禁用列表https://api.palworldgame.com/api/banlist.txtstring

修改服务器设置

服务器启动时,PalWorldSettings.ini 文件将在 <mount_folder>/Pal/Saved/Config/LinuxServer 文件夹中生成。

所有更改将在服务器下次启动时生效。

请注意,环境变量将始终覆盖对 PalWorldSettings.ini 所做的更改。