Don't Starve Together

Don't Starve Together

42 ratings
Windows+Steam客户端,快速配置Dedicated Server
By Max and 1 collaborators
很少的操作,即可完成个人独立服务器的架设。
   
Award
Favorite
Favorited
Unfavorite
介绍
不用第三方脚本,不用繁琐的手动操作,使用steam和饥荒游戏的图形界面,即可快速完成独立服务器的配置。使用此方法搭建的专服,服务器程序、mod均可以随steam启动自动更新,免除后续维护的烦恼。
搭建服务器的教程很多,本教程旨在进一步简化操作,抛砖引玉。

本指南基于windows平台编写,对应安装有steam图形客户端的场景,对服务器和客户端在同一机器的普通用户更为友好。如果本机无steam图形客户端,请参考其他包含SteamCMD方式安装的指南。

本文只说明最基本的操作,如果想对服务器进行微调,请参阅文末的文档列表,按需查询。
服务器文件结构
饥荒游戏安装完成后,会生成一个DoNotStarveTogether文件夹,位于:
C:\Users\%当前用户%\Documents\Klei
游戏的所有存档默认保存在此处。
为便于管理,建立一个名为MyDediServer的文件夹,用于单独存放独立服务器的相关文件。

对于一个常规的服务器存档,目录结构如下:
─MyDediServer └─Cluster_1 │ cluster.ini 服务器主体配置文件 │ cluster_token.txt token文件 │ ├─Caves 洞穴 │ │ modoverrides.lua mod定义文件 │ │ server.ini 洞穴服务器配置文件 │ │ server_chat_log.txt 洞穴里聊天记录 │ │ server_log.txt 洞穴服务器日志 │ │ worldgenoverride.lua 洞穴世界地貌初始化配置文件 │ │ │ ├─backup 备份(服务器日志和聊天日志) │ └─save 洞穴存档 └─Master 地面世界 │ modoverrides.lua mod定义文件 │ server.ini 地上世界服务器配置文件 │ server_chat_log.txt 地上世界聊天记录 │ server_log.txt 地上世界服务器日志 │ worldgenoverride.lua 地上世界地貌初始化配置文件 │ ├─backup 备份 └─save 地上世界存档

为了得到想要的服务器设定,调整相应的配置文件即可。

Tip: 饥荒的地上和洞穴是两个独立server,共同运行。mod配置文件要求完全一致,不然运行会报错。 也因为是两个server运行,在物理机配置较低的情况下,可以把地面世界和洞穴世界分别放在两台物理机上运行。
安装服务器工具
此处正式开始服务器设定过程。

从steam安装Don't Starve Together Dedicated Server工具。
打开steam客户端,点击 库-->工具,在列表中找到Don't Starve Together Dedicated Server,右键,选择安装游戏。

Don't Starve Together Dedicated Server工具默认安装在
%steam安装路径%\steamapps\common\Don't Starve Together Dedicated Server
添加常用服务器mod到steam合集
在开始服务器mod设定之前,需要手动将常用的服务器mod添加到steam的一个合集,以方便专服调用。步骤如下:

打开创意工坊,在如下位置找到合集的菜单,点击


点击创建合集

给自己的合集取一个合适的名字,创建。

点击想要使用的服务器mod,如下图:

点击“添加到合集”按钮,将其加入刚刚创建的合集中。

依次重复动作,将常用的所有服务器端mod加入合集。

接下来要获取刚刚创建合集的id,方法是:
使用浏览器访问自己的个人资料页——>点击右侧边栏的“创意工坊物品”——>点击“合集”选项卡——>点击刚刚创建的合集

此时地址栏里会有类似
https://steamproxy.net/sharedfiles/filedetails/?id=xxxxxxx
的链接,id后的xxxxxxx就是此合集的编号。

转到专用服务器程序目录,修改mods目录下的dedicated_server_mods_setup.lua,添加一行
ServerModCollectionSetup("xxxxxxx")
将xxxxxxx替换为自己的合集编号。

此步骤完毕。
设定服务器mod和世界
此步骤,可以利用饥荒的游戏客户端来完成。这是最安全,门槛最低的配置方法。
完成后只需要简单点复制粘贴即可完成所有设定。

详细步骤如下:
  1. 打开游戏主界面,点击“Host Game”
  2. 选择一个空槽(假设我们选择1号槽),开始进行服务器设定,世界设定和服务器端mod设定。通常只需要点点鼠标,勾选需要的项目即可。
  3. 完成所有设定后,点击Generate World,开启游戏。等待进入选人界面,即可选择退出。

在执行以上操作后,默认存档位置会生成一个Cluster_1文件夹,配置文件也已经由官方客户端生成完毕。

将Cluster_1文件夹拷贝至..\MyDediServer目录下。拷贝完成后,存档目录的结构如下:
DoNotStarveTogether ├─Cluster_1 └─MyDediServer └─Cluster_1

删除MyDediServer\Cluster_1中Master,Caves两个文件夹中的save,backup文件夹,剩余的文件就是运行服务器所有的必要配置文件。
获取token
进入Don't Starve Together游戏,点击主界面的Account

在打开的界面中依次点击“游戏”,“服务器”。

进入“服务器”页面后,点击页面底部的“添加新服务器”。
点击之后,会生成一段长代码,将长代码复制到cluster_1目录的cluster_token.txt中,替换原有内容,保存退出。
启动服务器
为方便服务器启动,使用一个批处理文件来控制。
进入Don't Starve Together Dedicated Server安装目录的bin文件夹,路径如下
%steam安装路径%\steamapps\common\Don't Starve Together Dedicated Server\bin

在文件夹下建立一个名为start_all.bat的批处理文件
批处理文件内容为:
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer/%1 -shard Master start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer/%1 -shard Caves
Tip:此处MyDediServer对应的绝对路径为 C:\%当前用户%\Documents\Klei\DoNotStarveTogether\MyDediServer\,可以根据需要自行调整绝对路径或使用相对路径
保存退出。


考虑到一个物理机可能会有多个独立存档,上面的批处理文件被设计成了可带参数执行,便于随时启用指定的存档。如果不需要参数,可以将批处理文件中的“%1”直接替换为存档目录名,如Cluster_1

参数使用:
给start_all.bat建立一个快捷方式,右键此快捷方式,属性。
在目标一栏中,填写Cluster_1,保存退出。如下图


此时,双击快捷方式即可启动服务器。

Tip: 传参数通过一个普通的cmd窗口也可以达到同样效果。运行方式类似于start_all Cluster_1 如果需要在同一台物理机上,使用上述批处理文件启动多个服务器,建立多个快捷方式,或传入不同参数即可
端口映射
完成端口映射,其他人在公网上才会看到你的服务器。
端口映射一般在路由器端设置,饥荒独立服务器默认端口为10999。如果此物理机只作为服务器运行使用,直接将10999端口UDP协议,映射到相应IP即可。

注意:不推荐将Dedicated Server的端口设为10999,容易产生冲突。

修改独立服务器端口,参照以下步骤:
  1. 打开Cluster_1\Master文件夹中的server.ini,修改server_port的值,取值范围10998~11018
  2. 打开Cluster_1\Caves文件夹中的server.ini,修改server_port的值,不能与Master中的值相同,取值范围同上
  3. 保存退出

Tip: 端口映射成功,服务器可以在公网搜索到。如果看不到ping值,可以尝试设置路由端的DMZ


设定结束
至此,所有必要的服务器配置都已经结束,可以保证服务器稳定运行。

服务器工具因为是随着steam安装,每次打开steam客户端,会自动更新。
如果物理机没有steam客户端,推荐使用SteamCMD方式更新,详情请参阅文末文档。

本文的所有工作都可以复用,争取做到一次配置,无需后续维护,长期稳定使用。
25 Comments
Max  [author] 25 Aug, 2020 @ 9:34pm 
@食肉黑鹿
端口映射最好去厂商支持那里找下说明书,因为每台路由的操作界面都不一样。
食肉黑鹿 25 Aug, 2020 @ 3:17am 
请问端口映射如何操作鸭,我搜不到自己的服务器,路由器里只有一个虚拟机选项。
如果是这个的话。常用服务器选择什么呢,还有一个内部和外部端口,傻傻分不清。
zhizhi 11 Aug, 2020 @ 10:42pm 
大佬。mod加失败了啊。加了mod但是显示没MOD
Max  [author] 9 Jul, 2020 @ 7:48am 
@hyg12134 不客气
hyg12134 9 Jul, 2020 @ 1:37am 
@Max 已经可以啦,谢谢~
(难怪,,,我之前是用写字板编辑的)
Max  [author] 8 Jul, 2020 @ 6:24am 
@hyg12134 改cluster.ini中game_mode的值,可选survival, endless, wilderness,无尽就是endless。注意,不可用windows记事本或写字板编辑,需用其他的文本编辑器,如:vim,Sublime Text,Notepad++,editplus。
hyg12134 8 Jul, 2020 @ 4:17am 
@Max 就把生存改成无尽,我在创建游戏时改模式和改文档里面的配置文件都没有效果
(刚刚不小心点了一下留言右上角那个小旗子XD
Max  [author] 6 Jul, 2020 @ 8:38pm 
@hyg12134 指的是什么模式?
hyg12134 6 Jul, 2020 @ 7:50am 
请问要怎么样更改模式呢qwq
Max  [author] 18 Mar, 2020 @ 7:35pm 
@天目黑釉
不是大佬。
把失败的日志发给我看看吧。