Head Pic: 00:34 A.M. / Koe@眠不足

前要

在尼尔森进行第114514次编译并上传更新后,原有的启动项更新已经无法使用,所有以此启动项开服的用户均会被引导指此页面,此为新版开服教程文档,本教程仅本土化+简化以及配图,在此次更新后开服器已支持Linux平台开服,并且能够跨平台游玩,这预计是尼尔森发布4.0前做的一个准备——分离服务端与客户端,很高兴看到这样有这样的分离使得服务器更加方便管理与游戏更新编译分离
本教程为Windows开服教程

准备

在Windows的运行环境下您需要准备以下程序:

  • SteamCMD (您也可以直接通过Steam下载,请看后文)
  • 文本编辑软件(比如NotePad or 自带记事本)
  • 或许需要使用梯子
  • 公网IP或内网映射

SteamCMD的下载

您有可以在此下载SteamCMD

官方下载757kb

安装

您可以向下滑看到更新的使用Steam安装,相较于个人服务器更加友好与快捷

若仅是个人开服请使用下方的Steam安装方法更加方便以及无需翻墙


将你的下好的SteamCMD打开,里面会有一个steamcmd.exe,在你硬盘的任意位置新建一个文件夹并放入其中,并以管理员身份运行(为什么要使用管理员身份呢,为了以防一些不必要的麻烦并且是出于对Steam的信任所以以管理员身份运行)
而后出来的黑框会自动补全文件,仅需等待即可

现已确认江西移动、宿迁联通均不能正常连接至SteamCMD服务器获取更新,请尝试使用梯子SSTap之类或加速器以及离线包

若仅是个人开服请使用下方的Steam安装方法更加方便以及无需翻墙

出现报错Fatal Error:Steam needs to be online to update. Please confirm your network connection and try again回车后闪退即是无法连接服务器

离线包请酌情选择百度上的资源或者使用蘑菇下载器在蘑菇下载器内搜索SteamCMD下载使用
以及欢迎加QQ群:721720174 来探讨您遇到的问题

使用SteamCMD安装

若仅是个人开服请使用下方的Steam安装方法更加方便以及无需翻墙

  1. 启动SteamCMD,以匿名用户登录
login anonymous
  1. 安装服务端(时间比较久,大约1.7G,并且可能需要梯子,请注意日志)同时本指令可以用于以后的服务端更新
app_update 1110390
  1. 输入以下指令关闭SteamCMD(不建议直接叉掉,我也不知道为什么)
quit
  1. 现在你的服务端文件将存于SteamCMD目录/steamapps/common/U3DS

使用Steam安装服务端

  1. 登录你的Steam,打开库,下拉过滤选项
  2. 在列表中找到Unturned Dedicated Server,下载安装
  3. 安装好Unturned Dedicated Server后右键它,点击属性,选择本地文件选项卡,浏览本地文件

打开文件夹后看下一步

建立

  1. 打开你的服务器文件夹,在空白处右键新建文本文档,打开,并输入以下内容
start "" "%~dp0ServerHelper.bat" +InternetServer/MyServer

其中的MyServer可以替换为其它名称,但是这只是文件夹名字,建议使用英文


若是只想开放在局域网内请输入以下内容(MyServer依旧同理)

start "" "%~dp0ServerHelper.bat" +LanServer/MyServer
  1. 保存文本文档,重命名为tutorials.bat(名字依旧可以自定义,请保证后缀是.bat),启动,等待加载完毕

加载完毕后请施展你的光速(输入)shutdown技巧

  1. 在你的U3DS目录内有一个Servers文件夹,里面有一个以你服务器名字为名的文件夹,比如我的就叫YourServer里面的就是YourServer文件夹,打开后进入到Server文件夹,里面有一个Commands.bat文件,点开,选择用文本编辑软件(记事本,Notepad之类的文本编辑软件)

接下来需要你凭空填写,下面介绍各个项与值

类型默认
MapPEIPEI、Washington等
Port2701527015、27018等
NameServerNameYourServer、other等
Password-123456等
PerspectiveBothFirst、Third、Both、Vehicle
CheatsFalseFalse、True

或许你可能不知道这些代表着什么,下面逐一介绍

  • Map ——此类型可以选择地图
    示例:

    Map Russia

这样就是设置Russia地图了,默认不填写情况下是使用PEI地图

  • Port ——此类型选择你的服务器端口
    示例:
Port 23333

这样则是设置了使用23333端口,默认不填写情况下是使用27015

请注意,在改版后,运行公共服务器(也就是Internet模式)需要向你的端口号+1和+2来分别负责与服务器列表通信和与Steam后端通信,比如我使用23333端口来开服,此端口与客户端通信,23334端口来与游戏列表服务器通信,23335来与Steam后端通信,也就是会占用3个端口

  • Name ——你的服务器名称(将会显示在服务器列表)
    示例:
Name 你的服务器名称
  • Password——服务器密码,若填写上去并且后面写入字符将会要求提供密码才能加入服务器,一般不需要填写,也不用写上去
Password 114514

这样就要求提供密码才能加入

  • Perspective ——视角限制,可以填入有First, Third, Both, Vehicle,分别对应仅限第一人称、仅限第三人称、任意、只能在驾驶载具时使用第三人称
    示例;

    Perspective Both

这样就能够第一第三人称任意切换

  • Cheats ——作弊设置,可以填入的有TrueFalse,分别对应开和关,打开后只能管理员作弊,关闭后管理员都不能作弊
Cheats True

这样管理员就能作弊了

下面贴上我服务器的Commands.bat以供参考

  1. 填写完毕后保存,重新回到U3DS文件夹内打开你的bat文件,即可开服,并且在你开放了相应端口以及路由器放行后朋友应该就能连入你的服务器了

设置

可能有很多人以为设置在U3DS\Maps\地图名称的Config.json里,其实是在U3DS\Servers\服务器名称文件夹的Config.json里,这个文件实际控制的是难度与服务器设置并非地图设置,作用相等于单人游戏的高级设置,Json在第24行便能够看到Easy,对应的便是Easy难度的设置,下面我一一列出各项设置

{
"Browser": {   #指浏览器上信息设置
"Icon": "",   #设置图标,如果没有nginx则直接上传到图床后将URL填入
"Thumbnail": "",   #图标的缩略图,和Icon同理
"Desc_Hint": "",   #服务器描述
"Desc_Full": "",   #服务器完整的描述
"Desc_Server_List": "",    #在列表内的描述(貌似就是下面一行小字)
"Login_Token": ""   #登录Token
},
"Server": {
"VAC_Secure": true,   #Vac设置true为打开false关闭
"BattlEye_Secure": true,   #战眼反作弊设置true为打开false关闭
"Max_Ping_Milliseconds": 750,   #最大延迟(ms)
"Timeout_Queue_Seconds": 15.0,    #在排队时掉线超时时间
"Timeout_Game_Seconds": 30.0,   #在游戏内掉线超时时间
"Max_Packets_Per_Second": 50.0,   #每秒收发数据包数量,越大越流畅,对服务器压力成倍增加
"Enable_Kick_Input_Spam": false,   #启动输入骚扰踢出
"Enable_Kick_Input_Timeout": false,   #启动输入超时踢出
"Chat_Always_Use_Rich_Text": false,   #在聊天中一直使用富文本(富文本是一种文字格式具体百度)
"Validate_EconInfo_Hash": true,   #验证econinfo的哈希值(应该是类似交互安全性吧)
"Validate_MasterBundle_Hashes": true   #验证主包哈希值(同样是交互安全)
},
"UnityEvents": {   #Unity事件,应该是用于处理引擎事件告知的,没有必要开启
"Allow_Server_Messages": false,    #允许服务器信消息
"Allow_Server_Commands": false,    #允许服务器指令
"Allow_Client_Messages": false,   #允许客户端消息
"Allow_Client_Commands": false   #允许客户端指令
}

而后的EasyMediumHard分别对应的都是在该难度下的相关数值(与单人高级设置差不多同理)下面列出如何让物品死亡不掉落
按下Ctrl+F搜索`Lose,你会搜索到24个结果,其中所有都要修改(当然如果你需要哪个难度死亡不掉落你只需要修改相应难度的数值即可)

"Lose_Skills_PvP": 0.75,  #修改为1即是不掉落-技能丢失率(在PVP状态)
"Lose_Skills_PvE": 0.75,  #修改为1即是不掉落-技能丢失率(在PVE状态)
"Lose_Items_PvP": 1.0,  #修改为0即是不掉落-物品丢失率(在PVP状态)
"Lose_Items_PvE": 1.0,  #修改为0即是不掉落-物品丢失率(在PVE状态)
"Lose_Clothes_PvP": true,   #修改为False-衣服是否丢失(在PVP状态)
"Lose_Clothes_PvE": true,   #修改为False-衣服是否丢失(在PVE状态)
"Lose_Weapons_PvP": true,   #修改为False-武器是否丢失(在PVP状态)
"Lose_Weapons_PvE": true,   #修改为False-武器是否丢失(在PVE状态)

PVP和PVE我认为应该是在情况下掉落物品等,比如当Lose_Clothes_PvP为True时是玩家被玩家击杀则会掉落衣服,而Lose_Clothes_PVE为True时则是玩家被僵尸/动物击杀会掉落衣服

剩下的数值请自行探索,学会探索才能让你理解事物,而不是一直依靠教程(其实就是我懒)

创意工坊使用方法

编辑WorkshopDownloadConfig.json这个文件并且添加创意工坊文件ID即可

Rocket与OpenMod

Rocket是一种旧式的插件适配框架,OpenMod是新出的插件框架,Rocket具有更多的插件,OpenMod具有更好的兼容性,两者可以同时使用

Rocket安装方法

  1. 打开服务端文件夹(非服务器文件夹),找到Extras目录,将其中的Rocket.Unturned文件复制
  2. 返回上一级,找到Modules文件夹,将其粘贴在文件夹内即可完成安装

OpenMod安装方法

OpenMod有两种安装方法,一种是通过Rocket安装,还有一种是手动安装

通过Rocket安装OpenMod
  1. 此处下载OpenMod安装程序插件
  2. 将dll文件移动至/Rocket/Plugins文件夹下并且重启服务端
  3. 重启服务器端后在窗口内输入/openmod install并且按照其说明进行安装即可
  4. 安装完毕后您可以在此处查看OpenMod的插件安装方法
通过离线安装OpenMod
  1. 此处下载最新的OpenMod模块,名字通常为OpenMod.Unturned.Module-vX.X.X.zip
  2. 将压缩包中的OpenMod.Unturned文件夹复制到Unturned安装目录中的Modules文件夹中
  3. 启动你的服务器,第一次启动需要一段时间,因为 OpenMod 会下载所需的核心组件
  4. 安装完毕后您可以在此处查看OpenMod的插件安装方法

插件安装方法

Rocket插件安装方法

只需要将dll文间移至/Rocket/Plugins文件夹并重启服务器端即可,而后的内容请参考插件手册

OpenMod插件安装方法

  • 您可以通过NuGet市场OpenMod插件列表来查找您所需的插件
  • 您可以在OpenMod插件列表直接点击COPY INSTALL COMMAND按钮来获得安装命令,将其复制在服务器窗口中并回车即可安装
  • 在NuGet市场中找到您心仪的插件时,您只需要输入openmod install <package id>来安装插件或输入openmod install <package id>@<version>来安装特定版本,以及可以输入openmod install <package id> -Pre来安装测试版(记得去除掉<>)
  • 输入openmod install <package id>来更新插件
  • 您也可以下载好插件以及所需库后将其放置到/openmod/plugins文件夹来手动安装插件,当然如果只有dll也可以通过openmod install <package id>来安装所需库,如果需要更新请自行替换dll
  • 手动安装的插件需要自行删除dll文件,在线安装的插件可以通过openmod remove <package id>来卸载插件
  • 在安装、删除、更新插件后都需要输入openmod reload来重新加载

端口转发与内网穿透

端口转发可以在百度上搜索到,教程很多,若有大量需求我可能会写一篇,请注意!端口转发仅限于有公网ip时才能使用

使用或打算使用内网穿透的服主请注意内网穿透时的端口号一定要与自己本地端口号相同,并且需要映射你端口后2个端口,比如27015是你的设置端口,那么27016和27017均需要设置端口映射

最后修改:2021 年 08 月 10 日
如果觉得我的文章对你有用,请随意赞赏