前言
- 本教程适用于拥有正版Don't Starve Together账号及自己的服务器并想和自己的基友一起在服务器中玩耍的人阅读
- 本教程完成后将搭建一个正版,可以添加MOD的Don't Starve Together服务器,请酌情阅读
准备
-
一个可以正常访问的windows server 2012服务器
- 本教程使用腾讯云主机进行演示
-
饥荒联机版服务器包: Don't Starve Together Dedicated Server
- 在steam上打开库→工具,找到 Don't Starve Together Dedicated Server 双击下载
- 在steam上打开库→工具,找到 Don't Starve Together Dedicated Server 双击下载
- 本地游戏端
- 直接在steam上下载游戏即可
服务器搭建
和别的游戏不同,饥荒联机版的服务器根目录和服务器管理目录是不同的。我们绝大多数的操作将在服务器管理目录下进行,在服务器根目录下进行的操作只有mod添加及打开服务器。而饥荒联机版是不会创建管理目录的。所以首先让我们先来完成服务器管理目录的建设吧。
还有什么我需要了解的?
- 饥荒联机版根目录(服务器所在目录):
\steam\SteamApps\common\Don't Starve Together Dedicated Server\
- 饥荒联机版配置目录(服务器地图存档及配置文件目录):
Klei\DoNotStarveTogether\MyDediServer
创建服务器管理目录
服务器管理目录需要创建在Klei\DoNotStarveTogether\
目录下,该目录同样也是饥荒联机版的存档所在位置。创建服务器管理目录有以下两种方法:
下载我整理好的
服务器管理文件包(密码:39gf)注意!该方案虽然可用,但依旧建议使用游戏内新建存档的方式获得该目录 并将其解压至服务器的(我的)文档\Klei\DoNotStarveTogether\
目录下,注意!请确保解压之后的MyDediServer文件夹下即为Master、Caves文件夹和两个文件,而没有夹杂额外的文件夹。按下图在
(我的)文档\Klei\DoNotStarveTogether\
目录下新建目录并填充文件:
具体文件内容参见本教程末尾的附录-服务器配置文件内容
MyDediServer —— 服务器管理目录
├ Caves —— 洞穴地图存档目录
├ server.ini —— 洞穴配置文件
├ modoverrides.lua —— 服务器MOD设置文件
└ worldgenoverride.lua —— 洞穴地形文件
├ Master —— 地面地图存档目录
├ server.ini —— 地面配置文件
├ modoverrides.lua ——此文件和Caves文件夹中的modoverrides.lua文件内容完全一致
└ worldgenoverride.lua —— 地图地形文件(留空为随机地形)
├ cluster.ini —— 服务器配置文件
└ cluster_token.txt —— 服务器令牌(接下来会通过游戏获取到)
申请服务器令牌
为了方便管理,饥荒联机版的服务器都需要申请一个服务器令牌,而申请该令牌的玩家将自动成为服务器的第一个管理员,申请令牌有以下两种方式:
- 控制台指令申请:
- 打开游戏并上线,在确保输入法为英文的情况下按ESC下方的~键打开控制台:
- 输入TheNet:GenerateClusterToken()并回车,控制台会自动关闭。
- 在
(我的)文档\Klei\DoNotStarveTogether\
目录下找到新生成的cluster_token.txt文件,用其替换掉(我的)文档\Klei\DoNotStarveTogether\MyDediServer\cluster_token.txt
文件。
- 个人资料申请:
- 打开游戏并上线,点击右下角第二个图标进入个人资料:
-
拖动页面至底部,点击橙黄色的Generate Server Token按钮生成令牌(红框里的一段字符):
复制令牌并粘贴至
Klei\DoNotStarveTogether\MyDediServer\cluster_token.txt
文件中。
配置并启动服务器
- 服务器配置:打开
MyDediServer\cluster.ini
文件,填写服务器名称、服务器密码、服务器简介并按照中文提示设置相关选项,然后保存关闭。 - 创建服务器启动文件:进入
\steam\SteamApps\common\Don't Starve Together Dedicated Server\bin
路径,并在其下新建文本文档,填入以下内容后保存并改名为start,.bat
@echo off
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves
- 启动服务器:双击start.bat运行服务器,此时会生成两个cmd窗口,一个负责地面,一个负责洞穴。当出现以下字样时说明服务器启动成功:
至此,我们已经完成了一个纯净饥荒联机版服务器的搭建,现在就可以登陆游戏搜索你的服务器和小伙伴愉快的开黑啦。不过我们的服务器搭建并没有到此完结,若希望自定义地图和添加mod,请继续阅读接下来的服务器维护章节
服务器维护
该章节将介绍mod添加与删除、服务器地图更换、服务器管理指令等内容,请配合目录进行阅读。注意!接下来的操作中,mod管理与更换地图均需关闭服务器进行,未关闭服务器进行操作将会导致未知错误的发生。
mod添加、配置与删除
饥荒联机版的mod管理分为两部分,分别为mod的下载与更新(位于\steam\SteamApps\common\Don't Starve Together Dedicated Server\mod
路径下,由其中的dedicated_server_mods_setup.lua进行控制)和mod的启用和配置(由(我的)文档\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\modoverrides.lua
进行控制)。
mod的下载与更新
由于饥荒联机版加入了steam的创意工坊,这就使得mod的管理变的异常方便。我们甚至不需要去下载mod,只需要找到mod的编号,将其以ServerModSetup("mod编号")
的方式加入\steam\SteamApps\common\Don't Starve Together Dedicated Server\mod\dedicated_server_mods_setup.lua
文件即可(没有分号,一行一个)。如图:
这样,下次服务器启动时会检查该列表并自动访问创意工坊下载或更新所需的mod
我该怎么得知我需要的mod编号为多少?
- 打开创意工坊,找到自己想要添加的mod:
- 打开mod页面,观察上方地址栏,红框标记出来的即为mod编号:
mod的启用与配置
- 启用mod:在
dedicated_server_mods_setup.lua
文件中添加的mod是默认关闭的。如果想启用mod,就需要访问(我的)文档\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\modoverrides.lua
文件,进行以下修改
return {
["workshop-MOD编号"] = {enabled=true},--添加该条语句将启用对应的mod。一行一个,使用,分隔
}
注意!该文件在Caves和Master文件夹中均有一份,内容完全一样,请在修改一份后及时复制更新另一份
注意!请确保该文件中的mod已经添加在dedicated_server_mods_setup.lua文件中,否则可能出现无法预计的错误
- 配置mod:该操作有两种方法:
- (不推荐)修改
(我的)文档\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\modoverrides.lua
文件对所需配置mod行进行如下修改:
["workshop-MOD编号"]={
configuration_options={
配置项1 = "配置内容",
配置项2 = "配置内容",
},
enabled = true
},
- (推荐)进入
\steam\SteamApps\common\Don't Starve Together Dedicated Server\mod\workshop-MOD编号
目录,打开modinfo.lua文件,其中有详细的mod配置信息可以进行修改(该方法修改的内容会在生效后自动同步至方法1的modoverrides.lua`文件中):
地图更换
当第一次运行时,服务器会根据MyDediServer\Master\
和MyDediServer\Caves\
中的worldgenoverride.lua文件生成地图。倘若未对这两个文件进行修改,服务器将会随机生成地图,生成的地图存档就保存在上述两个文件夹内。而我们若是想游玩自己准备好的地图,就按接下来的步骤找到自己的存档,并将其覆盖至MyDediServer\Master\
和MyDediServer\Caves\
文件夹中,重新启动服务器即可。
注意!更换地图后请确保地图存档中mod列表的一致性,如需修改请根据上文的的mod添加、配置与删除小节进行修改。
我该怎么找到自己的存档?
- 登陆游戏,找到自己的存档编号:
-
打开
(我的)文档\Klei\DoNotStarveTogether\
目录,其中的Cluster_1 ~ 5即为存档文件夹,根据自己的存档编号找到自己的存档文件夹: 打开自己的存档文件夹,将Caves文件夹里的东西复制到
MyDediServer\Caves\
中,将Master文件夹里的东西复制到MyDediServer\Master\
中。检查存档文件modoverrides.lua中是否存在
服务器根目录\mod\dedicated_server_mods_setup.lua
文件中没有的mod,若存在请根据上一小节进行修改。
服务器管理指令
添加管理员
- 向你的朋友询问他的id,可以登陆游戏后在个人资料中查看:
新建adminlist.txt文件,将好友的id填入该文件,一行一个,无需分割符。
将该文件分别放入
\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\
中。重启服务器。
常用服务器命令
下列指令请以管理员权限进入游戏后在控制台输入:
- TheNet:Kick(userid)--踢出用户ID为“userid”的玩家
- TheNet:Ban(userid)--禁止用户ID为“userid”的玩家加入
- c_save()--立即保存当前世界(一般会在每天早上自动保存)
- c_reset(true|false)--true删除当前世界并新建一个全新的世界;false重新加载当前世界。
- c_shutdown(true|false)--true保存并关闭当前世界;false不保存直接关闭当前世界
- c_rollback()回档 c_rollback(1)回滚一个存档 c_rollback(2)回滚两个存档 c_rollback(3)回滚三个存档
- 服务器没有回过档时理论可以回到任何一个档,但是如果回档一次,最多只能往前回5个档
参考资料:流年饥荒控制台指令大全
附录-服务器配置文件内容
cluster.ini
文档\Klei\DoNotStarveTogether\MyDediServer\cluster.ini
[GAMEPLAY]
game_mode = endless ;游戏模式,可选项有三个 survival(生存)、wilderness(荒野)、endless (无尽)
max_players = 6 ;游戏最大玩家数
pvp = false ;是否启用玩家伤害
pause_when_empty = true ;当服务器内没人时暂停时间
[NETWORK]
cluster_name = 服务器名称
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
文档\Klei\DoNotStarveTogether\MyDediServer\Master\server.ini
[NETWORK]
server_port = 10999
[SHARD]
is_master = true
[STEAM]
master_server_port = 10000
authentication_port = 20000
[ACCOUNT]
encode_user_path = true
Caves\server.ini
文档\Klei\DoNotStarveTogether\MyDediServer\Caves\server.ini
[NETWORK]
server_port = 11000
[SHARD]
is_master = false
name = Caves
id = 4276971209
[STEAM]
master_server_port = 10001
authentication_port = 20001
[ACCOUNT]
encode_user_path = true
Caves\worldgenoverride.lua
文档\Klei\DoNotStarveTogether\MyDediServer\Caves\worldgenoverride.lua
return {
override_enabled = true,
preset = "DST_CAVE",
}
Caves\modoverrides.lua
文档\Klei\DoNotStarveTogether\MyDediServer\Caves\modoverrides.lua
return {
--["workshop-MOD编号"] = {enabled=true},
}