幻兽帕鲁-搭服务器/迁服

搭服务器

1.安装SteamCMD和依赖项

sudo add-apt-repository multiverse

sudo dpkg --add-architecture i386

sudo apt update

sudo apt install steamcmd

 注意:幻兽帕鲁里面的服务器启动脚本不能用root账户启动,所以得创非root账户的用户,不然启动不了

2.安装Manually

sudo apt-get install lib32gcc-s1

新建文件夹,下载并解压SteamCMD

mkdir ~/Steam && cd ~/Steam

curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

 

3.下载服务器

运行steamcmd

./steamcmd.sh

下载服务器:

匿名模式登陆:

login anonymous

(显示OK后就登陆成功了)

下载服务器

app_update 2394010 validate

还需要下载一个服务器依赖的包

app_update 1007

下载可能有点慢,多等等

退出SteamCMD

quit

 

建立库链接:

新建.steam文件夹

mkdir ~/.steam

新建sdk64文件夹

mkdir ~/.steam/sdk64
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/

 

4.配置运行服务器

进入服务器文件夹:

cd ~/Steam/steamapps/common/PalServer

调整配置文件:

默认配置文件是

[/Script/Pal.PalGameWorldSettings]

OptionSettings=(Difficulty=None,DayTimeSpeedRate=1.000000,NightTimeSpeedRate=1.000000,ExpRate=1.000000,PalCaptureRate=1.000000,PalSpawnNumRate=1.000000,PalDamageRateAttack=1.000000,PalDamageRateDefense=1.000000,PlayerDamageRateAttack=1.000000,PlayerDamageRateDefense=1.000000,PlayerStomachDecreaceRate=1.000000,PlayerStaminaDecreaceRate=1.000000,PlayerAutoHPRegeneRate=1.000000,PlayerAutoHpRegeneRateInSleep=1.000000,PalStomachDecreaceRate=1.000000,PalStaminaDecreaceRate=1.000000,PalAutoHPRegeneRate=1.000000,PalAutoHpRegeneRateInSleep=1.000000,BuildObjectDamageRate=1.000000,BuildObjectDeteriorationDamageRate=1.000000,CollectionDropRate=1.000000,CollectionObjectHpRate=1.000000,CollectionObjectRespawnSpeedRate=1.000000,EnemyDropItemRate=1.000000,DeathPenalty=All,bEnablePlayerToPlayerDamage=False,bEnableFriendlyFire=False,bEnableInvaderEnemy=True,bActiveUNKO=False,bEnableAimAssistPad=True,bEnableAimAssistKeyboard=False,DropItemMaxNum=3000,DropItemMaxNum_UNKO=100,BaseCampMaxNum=128,BaseCampWorkerMaxNum=15,DropItemAliveMaxHours=1.000000,bAutoResetGuildNoOnlinePlayers=False,AutoResetGuildTimeNoOnlinePlayers=72.000000,GuildPlayerMaxNum=20,PalEggDefaultHatchingTime=72.000000,WorkSpeedRate=1.000000,bIsMultiplay=False,bIsPvP=False,bCanPickupOtherGuildDeathPenaltyDrop=False,bEnableNonLoginPenalty=True,bEnableFastTravel=True,bIsStartLocationSelectByMap=True,bExistPlayerAfterLogout=False,bEnableDefenseOtherGuildPlayer=False,CoopPlayerMaxNum=4,ServerPlayerMaxNum=32,ServerName="Default",ServerDescription="",AdminPassword="",ServerPassword="",PublicPort=8211,PublicIP="106.54.52.31",RCONEnabled=False,RCONPort=25575,Region="China",bUseAuth=True,BanListURL="https://api.palworldgame.com/api/banlist.txt")

把这段内容,修改最后几项的

ServerName服务器名

AdminPassword管理员密码

ServerPassword服务器密码

PublicIP 服务器IP

这几项修改后复制粘贴到下列文件中

Pal/Saved/Config/LinuxServer/PalWorldSettings.ini 

注意要把值写在引号里,比如服务器密码:ServerPassword=""改成ServerPassword="123456"

如果想让自己的服务器能在社群服务器中被搜索到,可以在括号里加上

EpicApp=PalServer

 

简单的办法是复制好内容后,输入指令

vim ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini 

然后把内容粘贴到新弹出来的框里

按ESC,输入 :wq 后按回车(注意要英文输入法,冒号也要打)

运行服务器

./PalServer.sh

 

 

接下來如果你想把 PalServer 掛載成 systemd 可以使用以下教學

第一步: 創建 palserver.service
$ sudo vim /etc/systemd/system/palserver.service

添加以下內容

```
[Unit]
Description=Palworld Server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
WorkingDirectory=/home/ecs-user/Steam/steamapps/common/PalServer

ExecStart=/bin/bash -c "/home/ecs-user/Steam/steamapps/common/PalServer/PalServer.sh -port=8211 -players=16 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS"

LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID

Restart=always
RestartSec=10

User=ecs-user
Group=ecs-user

[Install]
WantedBy=multi-user.target
```

路徑依照你的路徑去修改
PalServer.sh 後面的參數目前只給三個可用 (port, players, 多線程運行) (參考官方文檔)

 

第二步: 重新加载Systemd配置
$ sudo systemctl daemon-reload

// 啟動開機自啟動
$ sudo systemctl enable palserver

// 啟動 palserver
$ sudo systemctl start palserver

// 停止 palserver
$ sudo systemctl stop palserver

// 重新啟動 palserver
$ sudo systemctl restart palserver

// 查看 palserver 狀態
$ sudo systemctl status palserver

// 查看 palserver 日誌
$ sudo journalctl -u palworld.service

 

迁服

大概了解了一下,有几种迁服情况:

1.比如在自己本地创建的档迁到Linux/Win云服务器

2.Linux/Win云服务器迁到另外一个Linux/Win云服务器

3.Linux/Win云服务器迁到本地

 

1.在自己本地创建的档迁到Linux/Win云服务器,那么数据会存在自己电脑本地的steam云存储目录下。需要找到saved文件夹,他是存储档数据的文件,里面有每个人的角色数据,

应该是由steamid+操作系统id+玩家gid组成的唯一ID做的key。看了下脚本的大概原理,sav文件转成json文件,十六进制反解成十进制,把这个唯一ID都替换修改了再转回sav文件。

saved/0/文件夹里面是存储的是以服务器ID开头的文件夹,需要在配置文件里面替换这个服务器ID,能让游戏读到配置。这个服务器ID应该跟配置路径有关。所以当Linux迁到Linux

的时候直接改配置路径就好了,然而在1这种情况下,需要挨个替换json文件里面的key,要用脚本去导做替换逻辑。参考视频 https://b23.tv/jbugfST

2.根据1所述直接替换,但是需要一个坑,我用腾讯云的服务器换到阿里云,这样做是会报错的。不知道是不是ubuntu版本问题,腾讯云ubuntu版本22.04,阿里云ubuntu版本22.04.03,

导致我用这个办法失败了,后面转成新的一个腾讯云,是OK的。最后还是没定位到问题

3.同1的反解,猜测。

posted @ 2024-02-05 17:34  王鹏鑫  阅读(98)  评论(0)    收藏  举报