Don’t Starve Together(饥荒)服务器搭建

0x00 背景

为了跟同学一起玩《饥荒》,建了一个服务器。现在网络上流传的一些配置方法已经过时完全无法使用了,我整理了一下最新的配置方法。

0x01 基本服务器配置

首先根据这篇官方文章,在服务器上安装好Steam,如果你的服务器是64位的,还要安装一些32位的库,可以参考这篇文章

接下来就是坑了,因为官方的文章的配置方法已经过时了,我整理了一下最新的配置方法。

1.使用Steam将饥荒服务器到最新版本:

cd /home/steam/Steam
./steamcmd.sh +login anonymous +force_install_dir /home/steam/steamapps/DST +app_update 343050 validate +quit

2.在/home/steam/.klei/DoNotStarveTogether/Cluster_1目录下放上cluster.ini,cluster_token.txt文件,cluster.ini文件配置如下:

[network]
cluster_name = nevermoe and his friends
cluster_intention = cooperative
cluster_description = nevermoe and his friends
cluster_port = 10999
cluster_password = password

[misc]
console_enabled = true

[gameplay]
max_players = 10
pvp = false
game_mode = endless
pause_when_empty = true

3.启动服务器:

cd /home/steam/steamapps/DST/bin
chmod a+rw `tty`
screen -S "DST" ./dontstarve_dedicated_server_nullrenderer

4.你可以在这个网站查看你的服务器状态:http://my.jacklul.com/dstservers/。或者在你的游戏客户端的console中测输入c_connect("161+1.243.128.103", 10999, "password")来测试服务器连接,这个好处是可以显示更多一点的信息,比如服务器没有更新到最新版本导致无法连接时会给出具体提示。

5.安装mod:
在/home/steam/steamapps/DST/mods目录下的dedicated_server_mods_setup.lua文件里写上

ServerModSetup("378160973")

然后在
/home/steam/.klei/DoNotStarveTogether/Cluster_1/Master目录下设置modoverrides.lua文件,写上如下内容:

return {
["workshop-378160973"] = { enabled = true }, -- put the mod name here so you remember
}

重启服务器即可。

6.管理员设置:
在/home/steam/.klei/DoNotStarveTogether/Cluster_1/Master/save目录下放上adminlist.txt文件,里面写上user id。user id可以在用户连接服务器时通过服务器log查看到。

7.重新attach上screen的方法:
先用screen -ls列出screen列表,然后用

script /dev/null
screen -r "DST" # 引号里的值根据你的screen -ls结果设置

恢复screen即可。

0x02 洞穴设置

1./home/steam/.klei/DoNotStarveTogether/Cluster_1/目录下新建Caves文件夹,在Caves文件夹下新建server.ini,内容如下:

[NETWORK]
server_port = 10998

[SHARD]
is_master = false
name = Caves
id = 2377032596

[STEAM]
master_server_port = 27017
authentication_port = 8767

2.在/home/steam/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini中写入以下配置:

[NETWORK]
server_port = 10999

[SHARD]
is_master = true

3.在/home/steam/.klei/DoNotStarveTogether/Cluster_1/cluster.ini文件中追加以下内容:

[shard]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10888
cluster_key = defaultPass

4.启动Master服务器:

screen -S "DST" ./dontstarve_dedicated_server_nullrenderer

5.启动洞穴服务器:

screen -S "DST" ./dontstarve_dedicated_server_nullrenderer -shard Caves