在搭建之前,首先要有一个正版的游戏账号,不论是WeGame还是Steam版本的。
这样搭建完成之后,就可以拥有一个正版的,能添加MOD的,并且在游戏线上能查询到的服务器。
准备
需要一台linux或者Windows的主机,最好是云服务器,24小时开着的那种,个人电脑也可以搭建,但是关机之后就无法访问了。
本例以Steam平台为例,综合介绍Windows下与Linux下搭建的教程。
开始搭建
首先在Steam库里面找到 Don't Starve Together Dedicated Server ,在库→工具
里面。

双击下载,然后下载的时候在饥荒的服务器升申请一个开服的专用Key。没有这个Key是无法将服务器跑起来的。
可以在进入游戏之后,点击左下角的账号
,然后会打开一个页面,在页面的标题栏中选择游戏,然后点击 Don't Starve Together Servers ,打开如下的界面;


之后在C:\Users\cheng\Documents\Klei\DoNotStarveTogether\Cluster_1目录下新建一个名为cluster_token
的TXT文件,将刚刚获得的KEY复制进去即可。
Linux下文件夹的位置为:[用户名]/.klei/DoNotStarveTogether,例如:root/.klei/DoNotStarveTogether/ Cluster_1
如果不存在Cluster_1文件夹,可以手动新建一个,也可以直接将下一步文件夹复制的路径向上一级,也就是到数字哪里为止,直接将Cluster_1文件夹复制过去,但是注意cluster_token.txt文件内的数据不要被覆盖。
修改配置文件
手动生成配置文件的步骤较为繁琐,推荐在客户端中配置好相关地图,生成地图之后,再将生成的地图文件复制至上一步提到的文件夹内即可,客户端内的游戏生成目录为:C:\Users\cheng\Documents\Klei\DoNotStarveTogether\195996497\Cluster_1,其中的一串数字可能不相同,根据文件夹创建的时间判断。此文件夹下会存在master和caves两个文件夹,以及一个cluster.ini和上一步创建的txt文件。master和caves分别是主地图和洞穴地图的地图数据,里面包含对应地图的配置文件,cluster.ini是整个服务器的配置文件,可以在里面修改服务器名称,密码,游戏风格等等。
打开cluster.ini,把lan_only_cluster = true
改为false,且offline_cluster = false
(Linux同)
MyDediServer —— 服务器管理目录
├ Cluster_1
├ Caves —— 洞穴地图存档目录
├ server.ini —— 洞穴配置文件
├ modoverrides.lua —— 服务器MOD设置文件
└ worldgenoverride.lua —— 洞穴地形文件
├ Master —— 地面地图存档目录
├ server.ini —— 地面配置文件
├ modoverrides.lua ——此文件和Caves文件夹中的modoverrides.lua文件内容完全一致
└ worldgenoverride.lua —— 地图地形文件(留空为随机地形)
├ cluster.ini —— 服务器配置文件
└ cluster_token.txt —— 服务器令牌(接下来会通过游戏获取到)
添加MOD
因为之前以及在客户端配置好了启用那些MOD,所以配置文件都是配置好的。windows下只需要将客户端mod文件夹下的文件,复制到最开始下载的 Dedicated Server 目录下的mod文件夹内即可。
Linux下步骤相同,将mod文件复制至服务端本体下的mod文件夹内。
启动服务器
如果不开启洞穴,那么直接运行bin文件夹下exe文件即可运行服务器,但是如果要开启洞穴,那么需新建一个bat文件,然后将下面的内容复制进去,双击bat文件运行。
@echo off
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves
注意路径。可能与本例不同。
Linux下服务端本体安装
前面以及把大致配置介绍以及配置完毕,但是linux下的服务端本体还没有安装。如果linux下有图形界面,那么可以在Steam官网上下载安装linux版的Steam,其余步骤与Windows无异;
下面介绍字符界面的安装步骤:
环境配置
这里我使用的是Ubuntu系统,你可以根据不同的环境来安装不同的依赖库
Ubuntu 64 位环境:
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386
Ubuntu 32 位环境:
sudo apt-get install libstdc++6 libgcc1 libcurl4-gnutls-dev
CentOS系统请将 apt-get 换成 yum
安装STEAMCMD命令行平台及游戏包
下载安装SteamCMD:
mkdir ~/steamcmd
cd ~/steamcmd
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
也可以选择安装精简版 SteamCMD:
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
解压并运行安装shell:
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
在steam>模式下,登录及安装游戏包
login anonymous
force_install_dir ../dstserver
app_update 343050 validate
quit
上面的命令中,第一行以匿名方式登录,当然你也可以登录你自己的 SteamID,然后第三行的343050是 Don't Starve Together 在 Steam 平台中的 ID。
等待更新结束后,平台和游戏包就安装好了,已经完成了一半的工作,接下来是配置了。
配置 Don't Starve Together服务端
生成默认配置文件
cd ~/dstserver/bin
./dontstarve_dedicated_server_nullrenderer
当你看到显示以下文字
[200] Account Failed (6): "E_INVALID_TOKEN"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Your Server Will Not Start !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
按 Ctrl+C 中断,然后完善生成的默认配置
设置 Token
方法同Windows版本。
这里由于搭建的Steam的正版服务器,需要在游戏中获取到一个Token值,先进入Don't Starve Together游戏,然后选择我的资料,在弹出的页下方可以生成 token,复制到 cluster_token.txt 中
cd ~/.klei/DoNotStarveTogether/MyDediServer
vi cluster_token.txt
粘贴后保存该文件。
再次运行:
./dontstarve_dedicated_server_nullrenderer
其他
我该怎么得知我需要的mod编号为多少?
打开创意工坊,找到自己想要添加的mod

打开mod页面,观察上方地址栏,红框标记出来的即为mod编号

mod的启用与配置
1.启用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文件中,否则可能出现无法预计的错误
2.配置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添加、配置与删除小节进行修改。
服务器管理指令
添加管理员:
1.向你的朋友询问他的id,可以登陆游戏后在个人资料中查看,
2.新建adminlist.txt文件,将好友的id填入该文件,一行一个,无需分割符。
3.将该文件分别放入\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\
中。
4.重启服务器。
常用服务器命令
下列指令请以管理员权限进入游戏后在控制台输入:
- 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个档
附录-服务器配置文件内容
Linux系统下路径为[用户名].klei/DoNotStarveTogether/
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},
}
本文部分内容为原创,其余内容参考了:https://www.jianshu.com/p/440d64cd3ac4,
https://www.jianshu.com/p/440d64cd3ac4,
转载请注明来源。
期待你的神评呦~