Don't Starve Together

Don't Starve Together

449 ratings
DST Dedicated Server服务器配置教程
By raphael008
指南旨在帮助各位在Windows平台上使用以下任意一种方法建立DST Dedicated Server
未经许可,禁止转载。
I. Preconfigured Server (过时)
II. SteamCMD Server (最新)
个人PC用户请先确定端口是否畅通再进行以下操作
   
Award
Favorite
Favorited
Unfavorite
未来走向
对于某些国内网站原封不动剽窃并声称自行整理的行为表示很无奈,降低技术门槛也同时降低了剽窃成本。
近日更新允许玩家使用投票功能进行回滚存档,重置世界,建议关闭投票功能以免不必要的损失。
新版本:steamcmd +login anonymous +force_install_dir C:\server +app_update 343050 validate -beta anewreignbeta +quit
世界生成新选项:
disease_delay = "default", -- "none", "random", "long", "default", "short"
prefabswaps_start = "default", -- "classic", "default", "highly random"
petrification = "default", -- "none", "few", "default", "many", "max"
  • 洞穴配置√
  • Mod配置×
  • Windows Server 视频教程×
  • Linux Server 指南×
  • Linux Server 视频教程×
I. ---------------------------------------------------
Preconfigured Server
该部分指南基于Windows 10 Pro x64编写,Windows 7及以后通用。
I. 配置需求
  • Steam账号内必须拥有Don't Starve Together,拥有DST即可建立多个独立服务器(Dedicated Server)。
  • 独立服务器没有使用DST游戏内建立服务器的路由穿透技术,服务器必须为游戏客户端开放一个合适的端口,服务器默认通信方式:UDP协议,端口号:10999

建立一个稳定的独立服务器必须确保系统满足以下要求:
  1. 网络上传速度:8KB/玩家/秒。如果按照独立服务器最大人数为6人来换算,网络上传速度必须达到50KB/秒或以上才能让6个玩家同时进行游戏,当然网络上传带宽越大越好,较差的网络通信会导致连接独立服务器的玩家动作卡顿以及卡屏。
  2. 内存:大约65MB/玩家。如果按照独立服务器最大人数为6人来换算,可用内存大小必须达到500MB或以上才能让6个玩家同时进行游戏。
  3. CPU:官方网站没有明确说明。
  4. 游戏运行库:VCRedist_2008(x86),DST游戏根目录文件夹内有,对着DST右键->属性->本地文件->浏览本地文件
I. 建服准备工作——获取令牌
如果要建立一个向公众开放的独立服务器,则必须要获得服务器令牌,这样做的目的是能够让开发者关停违反了服务条款的服务器。

根据以下步骤获得令牌:
注意:所有符号及标点全部使用半角模式输入。
  1. 运行Don't Starve Together。
  2. 点击Play !。
  3. 点击界面右下方Acct Info,获取Token。
  4. 如下图在控制台内输入指令:TheNet:GenerateClusterToken()
I. 建服准备工作——修改配置文件
2.1.1-配置文件路径
如下图settings.ini位于C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether路径下。



2.1.2-注意:因为DST不支持Unicode,以下内容请全部使用英文。
若以下内容settings.ini内没有可自行加上,也可不加,服务器出现任何问题后果自负。
[network]网络配置
  1. default_server_name = 这里填服务器名。
  2. default_server_description = 描述一下你的服务器(可不填)。
  3. server_port = 10999,服务器通信端口,最好不要改动,对端口映射及网络类型熟悉的人员可自行更改。
  4. server_password = 这里填服务器密码,如果要对公众开放则不填,如果想和妹纸或基友单独干羞羞的事自行填写密码。
  5. max_players =[1-64]最大玩家数1到64,根据计算机性能和网络负载能力填写,默认6。
  6. pvp = true [ true | false ]是否开启PVP(玩家可以互相攻击)。
  7. game_mode = [ endless,survival,wilderness ]游戏模式三个里面选一个填。
  8. override_dns = [填写DNS服务器]覆盖DNS设置,如果log in很慢的情况下,可以改成8.8.8.8,8.8.8.8。
  9. enable_vote_kick = [ true | false ]是否允许投票踢人,默认true。
  10. enable_snapshots = [ true | false ]是否允许服务器回退到一个之前的状态(等同于回档,可用来防止烧家的熊孩子),开发者称这项功能在一些服务器上会导致问题的发生,默认false。
  11. enable_autosaver = [ true | false ]是否开启自动保存功能,默认开启,新的一天开始服务器会自动保存。
  12. tick_rate = [ 10 | 15 | 30 | 60 ]类似于FPS,这个值越高客户端动作越流畅,这取决于服务器的网络带宽和CPU,默认30。
  13. connection_timeout = [填写毫秒数,1秒=1000毫秒],中断与没有响应的客户端的等待时间,默认8000。
  14. server_save_slot = [1-5]服务器加载哪一个存档,默认1。
  15. pause_when_empty = [ true | false ]服务器空闲时是否自动暂停,当有玩家进入时继续,最好用于有密码的私人服务器,默认false。

[account]账号配置
  • dedicated_lan_server = false [ true | false ]是否只允许局域网游戏,默认关闭。
I. 建服准备工作——端口映射
2.2.1-注意:服务器开启无法正常运行(游戏右边列表没有自己的服务器,其他玩家无法加入自己的服务器)再尝试以下步骤:

2.2.2-确定网络类型
  • ADSL拨号上网
    1. 有路由器(市面上路由器种类太多,不单独作某一型号路由器说明,方法大同小异。):进入路由器设置页面,找到端口映射功能,添加需要映射的端口:协议选UDP,端口号填10999。
    2. 无路由器:打开控制面板->系统和安全->windows防火墙->高级设置->入站规则右键新建规则->勾选端口->勾选UDP,特定本地端口:填10999。
  • FTTH光纤入户
    1. 无超级管理员密码
      根据光猫型号自行百度方法破解(请自行斟酌!破解失败导致的各种问题与作者无关),得到超级管理员密码后请看下文。
    2. 有超级管理员密码
      1. 光猫有端口映射功能:在光猫内设置端口映射,方法上文已经提及,自行查阅。
      2. 光猫没有端口映射功能:此方法适合有一定技术水平及动手能力的人员(操作不当可能导致网络中断及家庭固话无法拨打和接通),将光猫更改为桥接模式,使用路由器拨号上网,在路由器内设置端口映射,方法上文已经提及,自行查阅。


2.2.3-确定是否拥有独立公网IP
测试是否拥有独立公网IP[www.ip138.com]

若以上步骤设置完毕都无法开启服务器请自行百度或Google求助。
I. 开启服务器——测试是否成功运行服务器
根据以下步骤来开启服务器:
  1. 打开DST Dedicated Server。
  2. 打开Don't Starve Together。
  3. 点击Play!,稍等片刻。
  4. Server-Type服务器类型筛选选择Dedicated Server。
  5. 若自己的服务器出现在右边列表中并且显示Dedicated Server,说明服务器成功运行(并且邀请其他玩家测试是否能够进入自己的服务器)如下图第一个服务器(不小心暴露了服务器名)。

  6. 检查是否成功开启服务器点这里[my.jacklul.com]
I. 开启服务器——局域网服务器
  1. 局域网服务器只能使用指定范围端口10998到11018。
  2. 在配置文件settings.ini内[account]下添加dedicated_lan_server = true即可被局域网内其他终端发现。
I. 开启服务器——运行多个服务器
首先确保计算机硬件和网络带宽是否强大到能够同时运行多个服务器。

创建新的服务器路径:
  • 在服务器的启动选项内输入-conf_dir <文件夹名>

    新的文件夹会存储在Documents\Klei下,此时就可以开启一个新的服务器。
I. 服务器管理——控制台指令
4.0.1-根据以下步骤获取管理员权限:
  1. 生成令牌的用户会自动获得管理员权限。
  2. 拥有管理员权限的用户能够从服务器内踢出其他用户或者封禁其他用户,也能执行LUA脚本。
  3. 如果想授予其他用户管理员权限,需要在Documents\Klei\DoNotStarveTogether\save\下新建一个名为adminlist的txt文件。
  4. 服务器关闭状态下在新建的adminlist文件里添加User ID(格式为KU_****),每行只能填写一个User ID,保存后关闭文件,开启服务器后所添加的用户即拥有了管理员权限。

      目前有3种方法能够获取USER ID
    • 玩家在游戏内通过Klei官方查询网站查询,Play->Host server->Account info。


    • 服主通过查询服务端获得USER ID

    • 玩家在游戏内通过Backspace键(←)在屏幕右下角查询自身USER ID

4.0.2-管理员指令
按~(数字键1左边的按键)开启控制台后再按CTRL切换到Remote模式输入指令,再按一次~键关闭控制台,若还有控制台文字信息显示在屏幕上按CTRL+L关闭。
  1. c_reset(true)true:删除当前世界的存档并且新建一个全新的世界,false:重新加载当前世界。
  2. c_shutdown(true)true:保存并且关闭服务器,false:不保存直接关闭服务器。
  3. c_spawn(“prefab name”)在鼠标所指的位置刷出物品。
  4. c_give(“item name”)在物品栏内刷出物品。

4.0.3-服务器指令
使用以下指令会覆盖settings.ini的配置内容。
  1. -port [1024-65535]强制服务器使用特定的端口。
  2. -tick [15-60]强制服务器使用特定的tickrate(类似于FPS)。
  3. -players [1-64]强制更改服务器的最大玩家数量。
  4. -lan强制更改服务器为局域网服务器,只有在同一网络下的玩家才能加入。
  5. -conf_dir DoNotStarveServerDirectory强制服务器读取备用目录的数据和设定。
I. 服务器管理——自定义世界
目前有2种方法可以自定义世界(更改生物群落数量,季节长短等)。
  1. 通过Lua文件自定义世界(无法覆盖当前世界选项,只对创建新世界有效)
    • 如果server_save_slot对应的存档为空,则会自动创建新世界。
    • 首先在Documents\Klei\DoNotStarveTogether下新建一个名为worldgenoverride后缀为lua的文件
    • 使用记事本打开,并根据以下提供网址内的代码修改,请注意查看网址中的各行options语句所提供的选项。
      点击查看[notepad.cc]

  2. 通过客户端自定义世界
    • 打开DST客户端,点击Play!后,确保Save Slot有空位可用,点击HOST SERVER创建好自定义世界后记住保存在哪一个Save Slot位,Save Slot位共有5个,分别对应1,2,3,4,5。

    • 打开settings.ini文件,将server_save_slot = 填写数字(1,2,3,4,5)修改为之前创建好的自定义世界所对应的Save Slot位,保存后关闭。
I. 服务器管理——MOD管理
4.2.1-开启MOD,官方提供了2个方法启用服务器Mod

首先将SteamLibrary\SteamApps\common\Don't Starve Together Beta\mods路径下的文件全部复制到SteamLibrary\SteamApps\common\Don't Starve Together Dedicated Server\mods路径下
  1. 修改dedicated_server_mods_setup.lua文件
    ServerModSetup("此处填写Mod的创意工坊ID")
    这种方法默认不启用MOD,需要通过以下2种方法来启用MOD。


  2. 修改modsettings.lua文件
    这种方法要保证客户端也有服务器的Mod,所以不推荐。
    modsettings.lua文件位于SteamLibrary\SteamApps\common\Don't Starve Together Dedicated Server\mods路径下。
    在文件内添加ForceEnableMod("workshop-*********")则强制启用Mod,Mod ID可以在mods文件夹下找到,将需要启用Mod ID分别用ForceEnableMod("****")语句填入modsettings.lua文件并保存。



  3. 新建modoverrides.lua文件(推荐)
    在Documents\Klei\DoNotStarveTogether下新建一个名为modoverrides后缀为lua的文件,使用记事本(任何编辑器即可)打开。
    输入以下语句,图中MOD ID仅供参考,请根据实际安装MOD填写。(请使用半角或者纯英文输入法):


    开启服务器,进入游戏,进入自己的服务器后查看Mod是否成功启用。

4.2.2-如何让其他玩家查看服务器已经启用的Mods
  1. 用记事本打开位于DST Dedicated Server路径下各个MOD的modinfo.lua文件和modoverride.lua文件如下图。

  2. 修改文件中字段client_only_mod = true:服务器View Mods里不显示此Mod;false:服务器View Mods里显示此Mod
  3. 修改文件中字段all_clients_require_mod = true:客户端都必须拥有此Mod才能加入游戏;false:客户端没有此Mod也能加入游戏。
II. --------------------------------------------------
SteamCMD Server
该部分指南基于Windows Server 2008 R2 x64编写
II. 自动化部署工具
支持的Windows版本:
Windows Server 2008 R2 x64,测试通过√
下载地址:点击下载[raw.githubusercontent.com]
解压后先到客户端生成cluster_token.txt,将cluster_token.txt复制到解压后的目录,运行Initialization.bat即可。
II. 下载SteamCMD
II. 安装SteamCMD
  1. 进入C:\steamcmd目录下
  2. 双击steamcmd.exe进行安装
  3. 依次输入如下代码至steamcmd.exe

  1. login anonymous
  2. force_install_dir C:\Server
  3. app_update 343050 validate
  4. exit

    注意事项:
  • 请预先在C盘根目录新建一个名为Server的文件夹
  • 若app_update 343050 validate这步发生错误,大部分原因是由于网络问题造成,重复输入直至与第4步图中红色圈出字样一致即可。

  • 双击steamcmd.exe后如图:

  • 输入login anonymous后回车

  • 输入force_install_dir C:\Server后回车

  • 输入app_update 343050 validate后回车

  • 输入exit后回车
II. 新建启动脚本文件
  1. 进入C:\Server\bin目录下
  2. 鼠标右键点击目录空白处 -> 新建 -> 文本文档
  3. 打开新建的文本文档
  4. 复制代码至文本文档
  5. 文本文档菜单栏 -> 文件 -> 另存为
  6. 弹出框中保存类型选择所有文件,文件名输入start.bat,点击保存

  • 鼠标右键点击目录空白处 -> 新建 -> 文本文档

  • 复制以下代码至文本文档
dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master

  • 文本文档菜单栏 -> 文件 -> 另存为

  • 弹出框中保存类型选择所有文件,文件名输入start.bat,点击保存

  • 复制以下代码至文本文档
dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves

  • 弹出框中保存类型选择所有文件,文件名输入start2.bat,点击保存

  • 在C:\Server\bin目录下应有名为start.bat和start2.bat的文件
II. 新建令牌配置文件
  1. 打开DST客户端,点击Play,找到Acct Info
  2. 点击Acct Info,在弹出的网页中点击Generate Server Token
  3. 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer目录下
  4. 新建一个名为cluster_token.txt的文件
  5. 将网页中生成的一串字符输入至cluster_token.txt文件中保存

  • 打开DST客户端,点击Play,找到Acct Info

  • 点击Acct Info,在弹出的网页中点击Generate Server Token

  • 新建一个名为cluster_token.txt的文件

  • 将网页中生成的一串字符输入至cluster_token.txt文件中保存
II. 新建世界生成文件
地面世界生成
  1. 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer\Master目录下
  2. 鼠标右键点击目录空白处 -> 新建 -> 文本文档
  3. 打开新建的文本文档
  4. 复制代码至文本文档
  5. 文本文档菜单栏 -> 文件 -> 另存为
  6. 弹出框中保存类型选择所有文件,文件名输入worldgenoverride.lua,点击保存

  • 鼠标右键点击目录空白处 -> 新建 -> 文本文档


  • 弹出框中保存类型选择所有文件,文件名输入worldgenoverride.lua,点击保存

洞穴世界生成
  1. 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer\Cave目录下
  2. 鼠标右键点击目录空白处 -> 新建 -> 文本文档
  3. 打开新建的文本文档
  4. 复制代码至文本文档
  5. 文本文档菜单栏 -> 文件 -> 另存为
  6. 弹出框中保存类型选择所有文件,文件名输入worldgenoverride.lua,点击保存


  • 弹出框中保存类型选择所有文件,文件名输入worldgenoverride.lua,点击保存
II. 修改主要配置文件
修改cluster.ini配置文件
  1. 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer目录下
  2. 找到名为cluster.ini的文件
  3. 打开名为cluster.ini的文件
  4. 复制代码至cluster.ini文件
  5. 保存cluster.ini文件

  • 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer目录下

  • 复制以下代码至cluster.ini文件
[GAMEPLAY] game_mode = survival max_players = 6 pvp = false pause_when_empty = true [NETWORK] cluster_name = My First World cluster_description = cluster_password = cluster_intention = cooperative autosaver_enabled = true enable_vote_kick = false [MISC] console_enabled = true [SHARD] shard_enabled = true bind_ip = 127.0.0.1 master_ip = 127.0.0.1 cluster_key = DontStarveTogetherDedicatedServer

修改Master目录下的server.ini配置文件
  1. 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer\Master目录下
  2. 找到名为server.ini的文件
  3. 打开名为server.ini的文件
  4. 复制代码至serverini文件
  5. 保存server.ini文件

  • 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer\Master目录下

  • 复制以下代码至server.ini文件
[NETWORK] server_port = 10999 [SHARD] is_master = true [STEAM] master_server_port = 10000 authentication_port = 20000

修改Cave目录下的server.ini配置文件
  1. 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer\Cave目录下
  2. 找到名为server.ini的文件
  3. 打开名为server.ini的文件
  4. 复制代码至serverini文件
  5. 保存server.ini文件

  • 进入C:\Users\你的用户名\Documents\Klei\DoNotStarveTogether\MyDediServer\Cave目录下

  • 复制代码至server.ini文件
[NETWORK] server_port = 11000 [SHARD] is_master = false name = Caves id = 4276971209 [STEAM] master_server_port = 10001 authentication_port = 20001
II. 运行并测试服务器
  1. 进入C:\Server\bin目录下
  2. 分别左键双击运行start.bat和start2.bat文件

  • 成功运行如图:
III. -------------------------------------------------
III. 实用网站列表
III. 常见问题解决方法——F.A.Q.
  1. 问:为什么退出服务器后下次进入人物物品全部丢失?
    答:将配置文件内[network]下修改pause_when_empty = false关闭此功能即可解决。

  2. 问:为什么服务器是Good host,但人物动作却很不流畅?
    答:将配置文件内[network]下tick_rate的值更改为60。

  3. 问:为什么开启了服务器却在客户端里找不到自己的服务器?
    答:映射协议为UDP的10999端口(修改过默认端口,根据实际情况映射端口)

  4. 问:无法在游戏内打开控制台怎么办?
    答:在settings.ini文件内[MISC]项下CONSOLE_ENABLED = true [false改为true]

  5. 问:关闭了控制台屏幕上有很多文字怎么办?
    答:按CTRL+L关闭

  6. 问:为什么按照指南步骤做服务器没成功开启呢?
    答:请看建服准备工作——端口映射

  7. 问:使用控制台指令后没有效果或者程序崩溃
    答:所有命令一定要用Remote模式发送给服务器,Remote模式:开启控制台后再按CTRL即可开启。

  8. 问:MOD启用后不生效
    答:将modoverrides.lua放在\Documents\Klei\DoNotStarveTogether\Cluster_1\Master目录下

  9. 有待添加。
III. 特别鸣谢(Acknowledgement)
以下用户均曾指出指南的问题,改进了指南,在此表达对他们的感谢。
排名不分先后(Names listed in no particular order):
< >
293 Comments
三金羊Sheep Sep 5 @ 9:13am 
LAN和connect(127.0.0.1)都能进,端口映射开了之后输端口映射ip进就会提示版本不同,使用的一直是同一个客户端,搞不懂
haoyun1 Jul 30 @ 5:54pm 
这里说填端口号10999,但我的设置分为了开始端口和结束端口怎么填呢
玖璃✿ Aug 17, 2019 @ 6:46pm 
666
劣酒 Sep 20, 2018 @ 7:55pm 
谢谢指导
清池空 Jul 2, 2018 @ 3:17pm 
第二种方式自动化部署无法加载MOD
capsulae Apr 13, 2018 @ 7:17am 
第二种方法没法加mod啊
ulricaye Feb 13, 2018 @ 6:19pm 
mod都加入不了怎么办,用的第二种方法
砂锅粥 Jan 6, 2018 @ 8:08pm 
我先喊一句666
冈门偏右 Nov 4, 2017 @ 7:18am 
socket pept already in use 请问这个是端口映射的问题吗?
NnnSss9527 Nov 1, 2017 @ 8:12am 
mod都启动不了,第二种方式,我是用的我的存档,什么情况呢