[自定义地图]Pavlov新版本开服指南

引子:
在6月13日,官方终于是发布了update29的一个正式版更新,这次更新对国内服务器影响较大的一点就是地图源变成mod.io了,不巧这个网站因为懂得都懂的原因而无法访问,客户端好解决,魔法即可(最简单直接的解决方式),服务器端,就难说了......


正文
大前提
首先,由于我懒,本教程一切步骤均建立在你已经按官方办法搭建好服务器(To host PC Server (non-beta)版本)的基础之上
官方教程:http://wiki.pavlov-vr.com/index.php?title=Dedicated_server
站内教程:站内汉化版教程
这两个教程务必合起来看,比如你选择乌班图20.04来安装服务端,那就要去官方页面寻找乌班图的操作方式(官方给的命令没指明系统的就是所有系统通用)

注意!
关于服务器运营商,Pavlov吃单核心性能,你需要主频至少3.0G的服务器才能有比较良好的体验,基于这一点,想较低成本搭建服务器的就不能选择大厂了。没有广告的说,我个人选择了亿付云(https://www.10cloud.cn/)的云服务器,性能不错还很便宜。

回归正题,现在你已经安装好了基础的服务器组件,并且确定服务器组件已经可以Running

① 现在执行这一行以停止服务器运行(复制这一行到命令窗口,按enter执行即可)
sudo systemctl stop pavlovserver
如果无法执行,确定你配置了这些快捷命令(来源于上述的站内已有教程,也可以到官方wiki页面进行查看)

② 执行下面三行,一行一行执行
① sudo rm /usr/lib/x86_64-linux-gnu/libc++.so
② sudo ln -s /usr/lib/x86_64-linux-gnu/libc++.so.1 /usr/lib/x86_64-linux-gnu/libc++.so
③ ~/Steam/steamcmd.sh +force_install_dir /home/steam/pavlovserver +login anonymous +app_update 622970 -beta default +exit
如果前两行显示没有此文件,直接执行第三行即可。
全部执行完之后,你的服务器就应该可以出现在最新版Pav的服务器列表里了。
③ 添加自定义地图/官方地图到轮播列表中
首先要说的,官方最新的地图命名是UGC+modio map id,除了这一点不同之外,其余Game.ini的配置均可以参照现版本wiki进行修改
例子:比如我想把官方地图sand加入到轮播,你需要在/home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini中添加这一行
MapRotation=(MapId="sand", GameMode="DM")
如果我想添加Mod.io上的玩家自制地图,就加一行
MapRotation=(MapId="UGCxxxxxxx", GameMode="xx")
其中的“xxxxxxx”为地图在mod.io中的资源编号(Resource id),访问地图的modio页面即可看到,是七位纯数字的形式
如果你仔细看过官方wiki,那么你就应该知道地图切换不成功服务器会自动跳回Datacenter这张自带图。属于是噩梦,看到这串字母我就不舒服(真的)
看看日志文件,默认在/home/steam/pavlovserver/Pavlov/Saved/Logs
里面的Pavlov.log就是最新的日志文件了,你的报错会长这样:

这个问题的原因是服务器无法连接到api.mod.io,因为api.mod.io的服务器在海外,国内无法访问
那么如何解决呢?我这里有一套简单的方法——给服务器安装steamcommunity302
steamcommunity302内置了steamdeck的一键安装脚本,除了steamdeck之外同样也能运行在linux服务器上,按照官方教程https://www.dogfight360.com/blog/10327/ 操作(注意,只需要勾选“mod.io访问”即可),获取到以下五个文件

把这五个文件上传到/home/steamcommunity302即可(推荐使用finalshell,嘎嘎好用,文件编辑和上传直接图形化操作,老方便了)

在终端执行
cd /home/steamcommunity302

现在执行
sh install.sh
一切正常的话,命令跑完会提示

输入reboot以重启服务器
reboot
等待重启完成,ssh重新连接服务器,如果pav服务器端没有自动启动

你可以执行
sudo systemctl start pavlovserver
来手动启动一下服务器
此时服务器就已经获得了modio的加速,可以正常使用自定义地图了
在/home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini
文件末尾添加
MapRotation=(MapId="UGC2802847", GameMode="CUSTOM")
或者在RCON网页界面直接换图UGC2802847,如果不知道或者没有rcon界面,查阅官方wiki关于rcon管理面板配置的信息即可,也很简单。

换图之后点refresh scoreboard,如果名称没有变化可以等一会多点几次,一般的地图可以在30秒内看到地图名称显示。

到此,如果操作顺利的话,你就已经获得了一个可以正常切换所有地图的新版Pavlov服务器。
结尾碎碎念
这套方法是我们用了三四天钻研出来的,这几天中我们尝试了几乎所有我们认为可行的方法,包括且不限于更改hosts文件、安装代理软件到服务器、寻找离线加载地图的方式等等,最终我们还是把眼光放在了用于解决Windows无法访问mod.io而编写的steamcommunity302上,结果半小时我们就解决了三天没能解决的问题,遵循互联网分享精神,现在将方法分享给各位也想自己开服务器的玩家,为你们扫除一些障碍,为CN Pav发展出一份力!
本人服务器名称,欢迎来玩鸭!
[CN]nine's server 密码:6666
[CN] new_JB AVAILABLE NOW!!!! 密码:6666

结尾鸣谢
感谢这些人的帮助和支持,没有他们我无法解决这个问题(名单不分先后顺序,有未提及的请见谅)
感谢Steamcommunity302作者Dogfight360,感谢大佬开发的工具!个人网站https://www.dogfight360.com/blog/686/
感谢b站ID@爱内格夫的99 个人主页https://space.bilibili.com/516691704
提供linux服务器技术支持和项目落地执行,没有他的帮助我无法开设自己的服务器
感谢Pav国服部分老玩家对本服务器的建议和指导
感谢Pav一体机群大佬给的大量技术支持
感谢pavlov社区服务器开发Discore频道各管理员的出言献策,都很乐于助人,个个都是人才。