最近这游戏挺火,很多人想跟朋友联机,如果有专用服务器,就不需要房主一直开着电脑,稳定性也好得多。
本人服务器:game.moeuu.cn:8211
参考文章:
https://www.fate.vip/index.php/archives/Palworld-Server.html
https://github.com/Hoshinonyaruko/palworld-go
https://www.51yuanmawu.com/34349/dyym/
其它交叉内容较多不枚举
注意
本文在centos下进行
破游戏非常吃内存且优化极差,内存低于8G不建议开服
且玩家退出不会自动释放内存,需要定时重启
测试版较不稳定,有概率发生坏档现象,建议定时备份
安装服务端
-
创建一个steam用户,并设置密码
useradd -m steam passwd steam
-
赋予新用户权限
usermod -G root steam
-
进入用户目录
sudo -u steam -s cd /home/steam
-
安装steamcmd需要的依赖
yum install glibc libstdc++ -y yum install glibc.i686 libstdc++.i686 -y yum install screen -y
-
切换到steam用户
su - steam
-
创建steamcmd的目录并进入
mkdir Steam && cd Steam
-
下载解压steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
-
运行steamcmd服务
./steamcmd.sh
-
匿名登录steamcmd
login anonymous
PS:需要看到出现三次OK才算成功,如果出现Retrying,按ctrl+c退出 重新运行SteamCMD继续登陆,直到出现OK为止!
-
下载幻兽帕鲁服务端及其依赖,后续更新也是同样的命令
app_update 2394010 app_update 1007
完成之后输入quit(貌似是exit)退出steamcmd
-
建立库链接,新建.steam文件夹及SDK64文件夹
mkdir /home/steam/.steam mkdir /home/steam/.steam/sdk64 cp -r /home/steam/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so /home/steam/.steam/sdk64
-
启动游戏
screen -r pal cd /home/steam/Steam/steamapps/common/PalServer ./PalServer.sh
后续断开ssh之后,输入screen -r即可再次进入会话
服务端配置
服主需要在前面创建的Steam目录下的steamapps/common/PalServer/Pal/Saved/Config/LinuxServer目录下找到PalWorldSettings.ini配置相应参数,建议是至少设置一个AdminPassword,这样你的账号才能获取超级管理员权限
一些常用命令(游戏内输入):
/AdminPassword {AdminPassword}
登录获取管理权限。
/Shutdown {Seconds} {MessageText}
服务器关闭后的秒数将通知您的 MessageText。
/DoExit
强制停止服务器。
/Broadcast {MessageText}
向服务器中的所有玩家发送消息。
/KickPlayer {SteamID}
将玩家从服务器中踢出。
/BanPlayer {SteamID}
从服务器禁止玩家。
/TeleportToPlayer {SteamID}
传送到目标玩家的当前位置。
/TeleportToMe {SteamID}
目标玩家传送到您当前的位置。
/ShowPlayers
显示所有已连接玩家的信息。
/Info
显示服务器信息。
/Save
保存世界数据。
更多参数可以参考这里
服务器优化(可选)
前面说到了服务端十分的吃资源,非常容易导致服务器boom进一步导致存档丢失
所以目前暂时通过自动备份+定时重启的方式运行
定时备份
推荐用1panel创建定时备份任务,简单快捷,只需备份前面说到的Steam文件夹下steamapps/common/PalServer/Pal下面的Saved文件夹即可,恢复备份时需要保证Saved下面SaveGames/0下的文件夹的随机ID一直致(暂时是这样),并且依旧可能出现存档问题,期待官方优化
定时重启
同样可以在1panel下的进程守护创建,只需要一个擅长思考的大脑和一双爱动的手
通过手动执行sh文件启动的服务叫PalServer-Linux,可以通过top等命令配合grep的强大能力来实现kill掉进程,然后重新启动即可。或者注册到systemctl吧啦吧啦
强烈推荐的工具
项目地址:https://github.com/Hoshinonyaruko/palworld-go
工具功能相当丰富,项目进度也相当快速,懒得写在这里了,官方群号:587997911
食用方法
在GitHub仓库下载对应操作系统和内核架构的版本,丢到跟PalServer同级目录下并 chmod o+x
一下
./{文件名}
即可启动,需要放行52000端口,然后访问ip:52000访问webui
列举一部分功能
- 可自定义全服广播通知
- 内存占用高时自动清理并将资源转移到虚拟内存降低压力
- 自动检测内存,超出预设百分比即重启服务端
- 服务器即将重启时全服通知(可自定义内容)
- 自动定时备份Saved文件夹到指定目录
webui使用
- 打开~/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini配置文件
- 修改RCONEnabled=False,把False改为True启用Rcon,修改AdminPassword=""在""中设置你的管理员密码
- 首次启动程序会重置配置文件,按Ctrl+c退出程序,然后编辑多出来的json文件,详情见GitHub主页链接
- 必须修改
adminPassword
字段为前面设置的管理员密码,然后使用服务器名作为用户名,刚刚设置的密码为密码登录,登录成功后就可以快捷的管理各种数值了,不用手动编辑配置文件
应用程序不依赖于原本的程序,所以在关服的情况下也可以进行web操作,非常的方便,还能远程开关服务器,所以也可以将程序注册为系统服务防止掉线
参与讨论